PreviousUpNext

15.4.577  src/lib/compiler/front/parser/yacc/nada.grammar.pkg

generic package nada_lr_vals_fun(package token:  Token;)
 : (weak) api { package parser_data : Parser_Data;
       package tokens : Nada_Tokens;
   }
 { 
package parser_data{
package header { 
## nada.grammar
## Copyright 1989, 1992 by AT&T Bell Laboratories
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.

# Compiled by:
#     src/lib/compiler/front/parser/parser.sublib

# NB: None of the 'nada' stuff is current usable or used.
#     I'm keeping it as a place-holder in case I decide
#     to support an alternate syntax like prolog or lisp.





# This is the Nada syntax grammar file.
# Mythryl-Yacc consumes this and spits out an LALR (1)
# parser which eats ASCII text and excretes
# raw_syntax syntax trees -- see
#
#     compiler/parse/raw-syntax/raw-syntax.api
#     compiler/parse/raw-syntax/raw-syntax.pkg
#
# The file syntax here is very close to classic
# YACC input syntax, with SML substituting for
# C in the actions.  The biggest difference is
# that when we declare nonterminal symbols via
# '%nonterm', we also declare types for them.
#
#  The top section (to the first double-percent-sign
#  separator) contains arbitrary SML code -- support
# for rule actions.



###      "A language that doesn't affect the
###       way you think about programming, is
###       not worth knowing."
###
###                       -- Alan Perlis


#                DESIGN PRINCIPLES
#
# All statements end with a semicolon:  Semicolon is -not- a seperator.
#
# Reserved punctuation symbols are ` ' " ( ) { } [ ]
#
# Identifiers are [_A-Za-z][_A-Za-z0-9]*[']*
# Infix operators are composed from & $ hashmark ! ~ - + * / % : < = > ? @ ^ | \ ; . ,
# Prefix and suffix operators are single characters from the above,
# except | > may not be prefix and > | ; : ' , may not be suffix operators.

# That means we are barring from  infix operators: ( ) { } [ ] " ' `
#                           from prefix operators: ( ) { } [ ] " ' ` | < >
#                       and from suffix operators: ( ) { } [ ] " ' ` | < > ; : ' ,
#
# Also prefix '.' is pre-empted for record selection,
# and  prefix '*' is pre-empted for dereferencing,
# and  prefix '/' is pre-empted for regular expressions.
# The set of user prefix operators is thus > & $ hashmark ! ~ - + % : = > ? @ ^ \ ; . ,
# The set of user suffix operators is thus < & $ hashmark ! ~ - + % = ? @ ^ \ .
#
# The set of user-definable bracket operators is <a> |a| { a} [a] /a/
#
# On reflection, I think we should also allow
# QED style mismatched bracket operators:
#
#     <a| <a} <a] <a/
#     |a> |a} |a] |a/
#     { a> { a| { a] { a/
#     [a> [a| [a} [a/
#     /a> /a| /a} /a]
#
# I don't expect them to be heavily used, but
# I figure type errors (in particular, "operator
# undefined") will catch typoes just fine, so there
# seems vanishingly little reason not to allow them.
#
# SML operators are composed from:  ! % & $ hashmark + - / : < = > ? @ \ ~ ` ^ | *
# That means they are reserving: = ( ) { } [ ] " ' ` , . ;
#
# Equality is == not =
#
# Individual values may be named via
#
#     variable = expression;
#
# Assignment to more complicated patterns is handled as
#
#     pattern = expression;
#
# Function definition syntax is:
#   fun pattern = expression;
# or
#   fun pattern => expression;
#       pattern => expression;
#       ...
#   end;
#
# Switch syntax is: 
#
#   case expression of
#       pattern => expression;
#       pattern => expression;
#       ...
#   end;
#
#  If-then-else is
#
#      if   expression then
#           statements;
#      else
#           statements;
#      fi;
#
#  C-style 'for' loops are
#  
#      for statements;; expression;; statements do
#          statements;
#      end;
#  
#      -- How about:
#      for statements while expression end statements do
#      end.
#
#      -- Also a special but common case
#      for 0 < i < n do        -- <= allowed too.
#          statements.
#      end.



package raw =  raw_syntax;                      # raw_syntax                            is from   src/lib/compiler/front/parser/raw-syntax/raw-syntax.pkg

include package   raw_syntax;
include package   error_message;
include package   symbol;
include package   fast_symbol;
include package   raw_syntax_junk;
include package   fixity;

Raw_Symbol = fast_symbol::Raw_Symbol;



# Two little fns for use in rule actions, which
# annotate syntax expression and declaration trees
# with the corresponding source file line+column
# number range (s).
#
# They do nothing if the tree is already so annotated:

fun note_expression_location (e as SOURCE_CODE_REGION_FOR_EXPRESSION _, _, _)
        =>
        e;

    note_expression_location (e, a, b)
        =>
        SOURCE_CODE_REGION_FOR_EXPRESSION (e, (a, b));
end;

fun note_declaration_location (d as SOURCE_CODE_REGION_FOR_DECLARATION _, _, _)
        =>
        d;

    note_declaration_location (d, a, b)
        =>
        SOURCE_CODE_REGION_FOR_DECLARATION (d, (a, b));
end;


# A few handy constants for use in rule actions:

package_string     = "package";
package_hash       = hash_string::hash_string "package";

api_string         = "api";
api_hash           = hash_string::hash_string "api";

macro_string       = "macro";
macro_hash         = hash_string::hash_string "macro";

transparent_string = "transparent";
transparent_hash   = hash_string::hash_string "transparent";

opaque_string      = "opaque";
opaque_hash        = hash_string::hash_string "opaque";

underbar_hash      = hash_string::hash_string "_";
underbar_string    = "_";

equal_hash         = hash_string::hash_string "=";
equal_string       = "=";

bogus_hash         = hash_string::hash_string "BOGUS";
bogus_string       = "BOGUS";

quoted_bogus_hash   = hash_string::hash_string "'BOGUS";
quoted_bogus_string = "'BOGUS";



# The grammar token declaration section starts after this marker:


};
package lr_table = token::lr_table;
package token = token;
stipulate include package   lr_table; herein 
my table={   action_rows =
"\
\\x01\x00\x00\x00\
\\x01\x00\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\x2e\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\x28\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\x01\x00\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x23\x00\x32\x00\
\\x25\x00\x30\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\x33\x00\x8b\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\x3f\x00\x23\x00\
\\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\x43\x00\x1f\x00\
\\x6f\x00\x1e\x00\x74\x00\x1b\x00\x00\x00\
\\x01\x00\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x23\x00\x32\x00\
\\x25\x00\x30\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\x33\x00\x8d\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\x3f\x00\x23\x00\
\\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\x43\x00\x1f\x00\
\\x6f\x00\x1e\x00\x74\x00\x1b\x00\x00\x00\
\\x01\x00\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x23\x00\x32\x00\
\\x25\x00\x30\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\x34\x00\x2b\x00\
\\x36\x00\x2a\x00\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\
\\x3d\x00\x25\x00\x3e\x00\x24\x00\x3f\x00\x23\x00\x40\x00\x22\x00\
\\x41\x00\x21\x00\x42\x00\x20\x00\x43\x00\x1f\x00\x61\x00\x84\x00\
\\x6f\x00\x1e\x00\x74\x00\x1b\x00\x00\x00\
\\x01\x00\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x23\x00\x32\x00\
\\x25\x00\x30\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\x34\x00\x2b\x00\
\\x36\x00\x2a\x00\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\
\\x3d\x00\x25\x00\x3e\x00\x24\x00\x3f\x00\x23\x00\x40\x00\x22\x00\
\\x41\x00\x21\x00\x42\x00\x20\x00\x43\x00\x1f\x00\x6f\x00\x1e\x00\
\\x74\x00\x1b\x00\x00\x00\
\\x01\x00\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\x3f\x00\x23\x00\
\\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0e\x00\x3a\x00\x15\x00\x38\x00\x17\x00\x37\x00\x18\x00\x36\x00\
\\x31\x00\x2d\x00\x32\x00\x2c\x00\x34\x00\x2b\x00\x36\x00\x2a\x00\
\\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\
\\x3e\x00\x24\x00\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\
\\x42\x00\x20\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x15\x00\x7b\x00\x2e\x00\x7a\x00\x31\x00\x79\x00\x32\x00\x78\x00\
\\x34\x00\x77\x00\x36\x00\x76\x00\x3c\x00\x75\x00\x60\x00\x74\x00\
\\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x2e\x00\x7a\x00\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\
\\x36\x00\x76\x00\x3c\x00\xf3\x01\x60\x00\x74\x00\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x2e\x00\x7a\x00\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\
\\x36\x00\x76\x00\x60\x00\x74\x00\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x31\x00\x79\x00\x32\x00\x78\x00\x33\x00\xe9\x00\x34\x00\x77\x00\
\\x36\x00\x76\x00\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x31\x00\x79\x00\x32\x00\x78\x00\x33\x00\xeb\x00\x34\x00\x77\x00\
\\x36\x00\x76\x00\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\x36\x00\x76\x00\
\\x60\x00\xed\x00\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\x36\x00\x76\x00\
\\x61\x00\xe0\x00\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\x36\x00\x76\x00\
\\x71\x00\x73\x00\x00\x00\
\\x01\x00\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0e\x00\x7d\x00\x31\x00\x79\x00\x32\x00\x78\x00\
\\x34\x00\x77\x00\x36\x00\x76\x00\x71\x00\x73\x00\x00\x00\
\\x01\x00\x03\x00\xa0\x00\x05\x00\x9f\x00\x00\x00\
\\x01\x00\x04\x00\x9b\x00\x00\x00\
\\x01\x00\x04\x00\xb8\x00\x06\x00\xb7\x00\x15\x00\x38\x00\x37\x00\x29\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x04\x00\x56\x01\x00\x00\
\\x01\x00\x04\x00\x56\x01\x1d\x00\x55\x01\x00\x00\
\\x01\x00\x05\x00\x0b\x01\x00\x00\
\\x01\x00\x06\x00\x47\x00\x07\x00\x67\x00\x15\x00\x38\x00\x35\x00\x88\x00\
\\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x47\x00\x07\x00\x67\x00\x15\x00\x38\x00\x35\x00\x18\x01\
\\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x47\x00\x07\x00\x67\x00\x15\x00\x38\x00\x37\x00\x29\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x47\x00\x0c\x00\x7f\x01\x15\x00\x38\x00\x17\x00\x7e\x01\
\\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x47\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x47\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\xd5\x01\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x47\x00\x15\x00\x38\x00\x37\x00\xde\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x47\x00\x15\x00\x38\x00\x37\x00\x1a\x02\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x5d\x00\x15\x00\x38\x00\x17\x00\x98\x01\x2f\x00\x97\x01\
\\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x5d\x00\x15\x00\x38\x00\x2f\x00\xc7\x01\x37\x00\x29\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x5d\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\x5d\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x70\x00\xd2\x01\x00\x00\
\\x01\x00\x06\x00\x5d\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x70\x00\xe3\x01\x00\x00\
\\x01\x00\x06\x00\xac\x00\x0c\x00\xab\x00\x00\x00\
\\x01\x00\x06\x00\xac\x00\x0c\x00\xab\x00\x0d\x00\xaa\x00\x34\x00\xa9\x00\
\\x36\x00\xa8\x00\x00\x00\
\\x01\x00\x06\x00\xac\x00\x0c\x00\xab\x00\x0d\x00\xaa\x00\x34\x00\xa9\x00\
\\x36\x00\x8f\x01\x00\x00\
\\x01\x00\x06\x00\xe6\x00\x07\x00\x67\x00\x15\x00\x38\x00\x2b\x00\xe5\x00\
\\x35\x00\xe4\x00\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\
\\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\xe6\x00\x07\x00\x67\x00\x15\x00\x38\x00\x2b\x00\xe5\x00\
\\x37\x00\x29\x00\x3a\x00\x27\x00\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x01\x00\x06\x00\xce\x01\x00\x00\
\\x01\x00\x06\x00\x11\x02\x0c\x00\x10\x02\x00\x00\
\\x01\x00\x0c\x00\x5e\x00\x00\x00\
\\x01\x00\x0c\x00\x9c\x00\x00\x00\
\\x01\x00\x0c\x00\xee\x00\x00\x00\
\\x01\x00\x0c\x00\xfd\x00\x00\x00\
\\x01\x00\x0c\x00\x72\x01\x00\x00\
\\x01\x00\x0c\x00\x7f\x01\x17\x00\x7e\x01\x00\x00\
\\x01\x00\x0c\x00\xc9\x01\x00\x00\
\\x01\x00\x0c\x00\xca\x01\x00\x00\
\\x01\x00\x13\x00\x0d\x02\x1c\x00\x0c\x02\x00\x00\
\\x01\x00\x14\x00\x55\x00\x1a\x00\xcb\x00\x20\x00\x54\x00\x2d\x00\x53\x00\
\\x3b\x00\x52\x00\x73\x00\x51\x00\x00\x00\
\\x01\x00\x14\x00\x55\x00\x20\x00\x54\x00\x29\x00\x22\x01\x2d\x00\x53\x00\
\\x3b\x00\x52\x00\x73\x00\x51\x00\x00\x00\
\\x01\x00\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x39\x00\x0a\x01\
\\x3b\x00\x52\x00\x73\x00\x51\x00\x00\x00\
\\x01\x00\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x61\x00\xf3\x00\x65\x00\xd0\x00\x73\x00\x51\x00\x00\x00\
\\x01\x00\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x65\x00\xd0\x00\x73\x00\x51\x00\x00\x00\
\\x01\x00\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x6c\x00\xfe\x00\x73\x00\x51\x00\x00\x00\
\\x01\x00\x15\x00\x7b\x00\x00\x00\
\\x01\x00\x15\x00\x92\x01\x00\x00\
\\x01\x00\x16\x00\xd6\x00\x2a\x00\x05\x01\x00\x00\
\\x01\x00\x16\x00\xd6\x00\x2c\x00\xd5\x00\x00\x00\
\\x01\x00\x16\x00\xd6\x00\x2c\x00\x3e\x01\x00\x00\
\\x01\x00\x16\x00\xd6\x00\x3b\x00\x35\x01\x61\x00\x34\x01\x65\x00\x33\x01\x00\x00\
\\x01\x00\x16\x00\x3a\x01\x2c\x00\x8b\x02\x35\x00\x0e\x03\x64\x00\x39\x01\
\\x65\x00\x0e\x03\x00\x00\
\\x01\x00\x1b\x00\x83\x01\x00\x00\
\\x01\x00\x1c\x00\xff\x00\x00\x00\
\\x01\x00\x1c\x00\x04\x01\x00\x00\
\\x01\x00\x1c\x00\x0d\x01\x00\x00\
\\x01\x00\x1c\x00\x1f\x01\x00\x00\
\\x01\x00\x1c\x00\x23\x01\x00\x00\
\\x01\x00\x1c\x00\x47\x01\x00\x00\
\\x01\x00\x1c\x00\x69\x01\x00\x00\
\\x01\x00\x1c\x00\x80\x01\x00\x00\
\\x01\x00\x1c\x00\x8a\x01\x00\x00\
\\x01\x00\x1c\x00\xb8\x01\x00\x00\
\\x01\x00\x1c\x00\xe4\x01\x00\x00\
\\x01\x00\x1c\x00\xf5\x01\x00\x00\
\\x01\x00\x1c\x00\x33\x02\x64\x00\xbb\x01\x00\x00\
\\x01\x00\x1c\x00\x3f\x02\x00\x00\
\\x01\x00\x1c\x00\x40\x02\x00\x00\
\\x01\x00\x1c\x00\x45\x02\x00\x00\
\\x01\x00\x1d\x00\x34\x00\x2e\x00\xc8\x00\x00\x00\
\\x01\x00\x1d\x00\x92\x00\x00\x00\
\\x01\x00\x1d\x00\x92\x00\x24\x00\x91\x00\x00\x00\
\\x01\x00\x1e\x00\x00\x00\x67\x00\x00\x00\x00\x00\
\\x01\x00\x22\x00\xe5\x01\x00\x00\
\\x01\x00\x24\x00\x31\x00\x2e\x00\x85\x01\x00\x00\
\\x01\x00\x24\x00\x91\x00\x00\x00\
\\x01\x00\x26\x00\xfb\x00\x00\x00\
\\x01\x00\x26\x00\x67\x01\x00\x00\
\\x01\x00\x26\x00\xf1\x01\x00\x00\
\\x01\x00\x26\x00\x1b\x02\x00\x00\
\\x01\x00\x26\x00\x1c\x02\x00\x00\
\\x01\x00\x26\x00\x32\x02\x00\x00\
\\x01\x00\x28\x00\x11\x01\x61\x00\x5e\x01\x00\x00\
\\x01\x00\x28\x00\x11\x01\x61\x00\x5e\x01\x65\x00\x8c\x01\x00\x00\
\\x01\x00\x2c\x00\xce\x00\x00\x00\
\\x01\x00\x2c\x00\xf4\x00\x00\x00\
\\x01\x00\x2c\x00\x09\x01\x00\x00\
\\x01\x00\x2c\x00\x36\x01\x00\x00\
\\x01\x00\x2c\x00\x40\x01\x00\x00\
\\x01\x00\x2c\x00\x48\x01\x00\x00\
\\x01\x00\x2c\x00\x4c\x01\x00\x00\
\\x01\x00\x2c\x00\x6a\x01\x00\x00\
\\x01\x00\x2c\x00\x6b\x01\x00\x00\
\\x01\x00\x2c\x00\x9b\x01\x00\x00\
\\x01\x00\x2c\x00\xb0\x01\x00\x00\
\\x01\x00\x2c\x00\xc8\x01\x00\x00\
\\x01\x00\x2c\x00\xdd\x01\x00\x00\
\\x01\x00\x2c\x00\xfe\x01\x00\x00\
\\x01\x00\x2c\x00\x0e\x02\x00\x00\
\\x01\x00\x2c\x00\x2d\x02\x00\x00\
\\x01\x00\x2e\x00\x1a\x01\x60\x00\x74\x00\x00\x00\
\\x01\x00\x33\x00\xf7\x00\x00\x00\
\\x01\x00\x33\x00\xf9\x00\x00\x00\
\\x01\x00\x33\x00\x3b\x01\x00\x00\
\\x01\x00\x33\x00\x3d\x01\x00\x00\
\\x01\x00\x35\x00\xf6\x00\x00\x00\
\\x01\x00\x35\x00\x37\x01\x00\x00\
\\x01\x00\x35\x00\x61\x01\x00\x00\
\\x01\x00\x36\x00\x71\x01\x00\x00\
\\x01\x00\x36\x00\x71\x01\x64\x00\x3b\x02\x00\x00\
\\x01\x00\x37\x00\x64\x01\x00\x00\
\\x01\x00\x37\x00\x65\x01\x00\x00\
\\x01\x00\x38\x00\xb1\x00\x00\x00\
\\x01\x00\x38\x00\xb4\x00\x00\x00\
\\x01\x00\x38\x00\xba\x00\x00\x00\
\\x01\x00\x38\x00\xbc\x00\x00\x00\
\\x01\x00\x38\x00\xca\x00\x00\x00\
\\x01\x00\x3a\x00\x6d\x01\x6f\x00\x6c\x01\x00\x00\
\\x01\x00\x3a\x00\x9e\x01\x6f\x00\x9d\x01\x00\x00\
\\x01\x00\x3a\x00\xf0\x01\x6f\x00\xef\x01\x00\x00\
\\x01\x00\x3c\x00\x1b\x01\x00\x00\
\\x01\x00\x3c\x00\x1d\x01\x00\x00\
\\x01\x00\x3c\x00\x1e\x01\x00\x00\
\\x01\x00\x60\x00\xed\x00\x00\x00\
\\x01\x00\x61\x00\xf2\x00\x00\x00\
\\x01\x00\x61\x00\x5c\x01\x00\x00\
\\x01\x00\x61\x00\x8b\x01\x00\x00\
\\x01\x00\x61\x00\xac\x01\x00\x00\
\\x01\x00\x61\x00\xae\x01\x00\x00\
\\x01\x00\x61\x00\xcb\x01\x00\x00\
\\x01\x00\x61\x00\x12\x02\x00\x00\
\\x01\x00\x61\x00\x14\x02\x64\x00\xbb\x01\x00\x00\
\\x01\x00\x63\x00\xd4\x00\x00\x00\
\\x01\x00\x64\x00\x5f\x01\x00\x00\
\\x01\x00\x64\x00\xdc\x01\x00\x00\
\\x01\x00\x64\x00\x01\x02\x00\x00\
\\x01\x00\x64\x00\x25\x02\x00\x00\
\\x01\x00\x64\x00\x43\x02\x00\x00\
\\x01\x00\x67\x00\x4c\x00\x00\x00\
\\x01\x00\x67\x00\xfa\x00\x00\x00\
\\x01\x00\x67\x00\x00\x01\x00\x00\
\\x01\x00\x67\x00\x03\x01\x00\x00\
\\x01\x00\x67\x00\x20\x01\x00\x00\
\\x01\x00\x67\x00\xcc\x01\x00\x00\
\\x01\x00\x67\x00\xe6\x01\x00\x00\
\\x01\x00\x67\x00\xf2\x01\x00\x00\
\\x01\x00\x67\x00\x13\x02\x00\x00\
\\x01\x00\x68\x00\xd3\x00\x00\x00\
\\x01\x00\x69\x00\xd2\x00\x00\x00\
\\x01\x00\x6a\x00\xd1\x00\x00\x00\
\\x01\x00\x6b\x00\xcf\x00\x00\x00\
\\x01\x00\x6d\x00\x19\x01\x00\x00\
\\x01\x00\x6d\x00\x2e\x02\x00\x00\
\\x01\x00\x70\x00\x1d\x00\x00\x00\
\\x49\x02\x00\x00\
\\x4a\x02\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\x2e\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\x28\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\x4b\x02\x00\x00\
\\x4c\x02\x00\x00\
\\x4d\x02\x13\x00\x4d\x00\x00\x00\
\\x4e\x02\x13\x00\x58\x00\x00\x00\
\\x4f\x02\x13\x00\x50\x00\x00\x00\
\\x50\x02\x13\x00\x4f\x00\x00\x00\
\\x51\x02\x00\x00\
\\x52\x02\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\x2e\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\x28\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\x53\x02\x00\x00\
\\x54\x02\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\x2e\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\x28\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\x55\x02\x00\x00\
\\x56\x02\x10\x00\x45\x00\x64\x00\x44\x00\x00\x00\
\\x57\x02\x00\x00\
\\x58\x02\x28\x00\x11\x01\x00\x00\
\\x59\x02\x14\x00\x55\x00\x3b\x00\x52\x00\x00\x00\
\\x5a\x02\x14\x00\x55\x00\x00\x00\
\\x5b\x02\x00\x00\
\\x5c\x02\x00\x00\
\\x5d\x02\x00\x00\
\\x5e\x02\x00\x00\
\\x5f\x02\x00\x00\
\\x60\x02\x14\x00\x55\x00\x20\x00\x54\x00\x3b\x00\x52\x00\x00\x00\
\\x61\x02\x14\x00\x55\x00\x20\x00\x54\x00\x3b\x00\x52\x00\x00\x00\
\\x62\x02\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\x3f\x00\x23\x00\
\\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\x6f\x00\x1e\x00\x00\x00\
\\x63\x02\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x47\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\x3f\x00\x23\x00\
\\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\x6f\x00\x1e\x00\x00\x00\
\\x64\x02\x0f\x00\x48\x00\x00\x00\
\\x65\x02\x0f\x00\x48\x00\x00\x00\
\\x66\x02\x12\x00\x49\x00\x00\x00\
\\x67\x02\x12\x00\x49\x00\x00\x00\
\\x68\x02\x00\x00\
\\x69\x02\x00\x00\
\\x6a\x02\x00\x00\
\\x6b\x02\x00\x00\
\\x6c\x02\x00\x00\
\\x6d\x02\x00\x00\
\\x6e\x02\x6d\x00\x4e\x00\x00\x00\
\\x6f\x02\x00\x00\
\\x70\x02\x00\x00\
\\x71\x02\x00\x00\
\\x72\x02\x00\x00\
\\x73\x02\x00\x00\
\\x74\x02\x00\x00\
\\x75\x02\x00\x00\
\\x76\x02\x00\x00\
\\x77\x02\x00\x00\
\\x78\x02\x00\x00\
\\x79\x02\x00\x00\
\\x7a\x02\x00\x00\
\\x7b\x02\x00\x00\
\\x7c\x02\x00\x00\
\\x7d\x02\x00\x00\
\\x7e\x02\x00\x00\
\\x7f\x02\x00\x00\
\\x80\x02\x00\x00\
\\x81\x02\x00\x00\
\\x82\x02\x00\x00\
\\x83\x02\x00\x00\
\\x84\x02\x00\x00\
\\x85\x02\x00\x00\
\\x86\x02\x00\x00\
\\x87\x02\x00\x00\
\\x88\x02\x00\x00\
\\x89\x02\x00\x00\
\\x8a\x02\x00\x00\
\\x8b\x02\x00\x00\
\\x8b\x02\x2c\x00\xa4\x00\x00\x00\
\\x8b\x02\x6d\x00\xcd\x00\x00\x00\
\\x8b\x02\x6d\x00\x1c\x01\x00\x00\
\\x8c\x02\x00\x00\
\\x8c\x02\x0c\x00\x72\x01\x00\x00\
\\x8d\x02\x00\x00\
\\x8d\x02\x06\x00\x47\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x8d\x02\x06\x00\x47\x00\x15\x00\x32\x01\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x8e\x02\x00\x00\
\\x8f\x02\x00\x00\
\\x8f\x02\x06\x00\x47\x00\x15\x00\x38\x00\x37\x00\x04\x02\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x90\x02\x00\x00\
\\x91\x02\x00\x00\
\\x92\x02\x00\x00\
\\x93\x02\x00\x00\
\\x94\x02\x00\x00\
\\x95\x02\x00\x00\
\\x96\x02\x00\x00\
\\x97\x02\x00\x00\
\\x98\x02\x00\x00\
\\x99\x02\x6d\x00\xf1\x00\x00\x00\
\\x9a\x02\x00\x00\
\\x9b\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x65\x00\xd0\x00\x73\x00\x51\x00\x00\x00\
\\x9c\x02\x00\x00\
\\x9d\x02\x65\x00\xf5\x00\x00\x00\
\\x9e\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\x9f\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x65\x00\xf8\x00\x73\x00\x51\x00\x00\x00\
\\xa0\x02\x00\x00\
\\xa1\x02\x00\x00\
\\xa2\x02\x00\x00\
\\xa3\x02\x03\x00\xa0\x00\x00\x00\
\\xa4\x02\x00\x00\
\\xa5\x02\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\xc1\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\xc0\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\xa6\x02\x00\x00\
\\xa7\x02\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\xc1\x00\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\xc0\x00\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\xa8\x02\x00\x00\
\\xa9\x02\x00\x00\
\\xaa\x02\x00\x00\
\\xab\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xac\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xad\x02\x00\x00\
\\xae\x02\x13\x00\x4b\x00\x00\x00\
\\xaf\x02\x00\x00\
\\xb0\x02\x13\x00\x4a\x00\x00\x00\
\\xb1\x02\x13\x00\x57\x00\x75\x00\x56\x00\x00\x00\
\\xb2\x02\x13\x00\x06\x01\x00\x00\
\\xb3\x02\x00\x00\
\\xb4\x02\x13\x00\x4a\x00\x00\x00\
\\xb5\x02\x06\x00\x5d\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\xb6\x02\x00\x00\
\\xb7\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xb8\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xb9\x02\x13\x00\x4b\x00\x00\x00\
\\xba\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xbb\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xbc\x02\x64\x00\x02\x01\x00\x00\
\\xbd\x02\x28\x00\x11\x01\x00\x00\
\\xbe\x02\x13\x00\x4a\x01\x00\x00\
\\xbf\x02\x13\x00\x81\x01\x00\x00\
\\xc0\x02\x00\x00\
\\xc1\x02\x00\x00\
\\xc2\x02\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\x36\x00\x76\x00\
\\x71\x00\x73\x00\x00\x00\
\\xc3\x02\x00\x00\
\\xc4\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xc5\x02\x13\x00\x4a\x00\x00\x00\
\\xc6\x02\x28\x00\x11\x01\x00\x00\
\\xc7\x02\x13\x00\x57\x00\x00\x00\
\\xc8\x02\x00\x00\
\\xc9\x02\x00\x00\
\\xca\x02\x00\x00\
\\xcb\x02\x00\x00\
\\xcc\x02\x65\x00\x87\x01\x00\x00\
\\xcd\x02\x00\x00\
\\xce\x02\x06\x00\xac\x00\x0c\x00\xab\x00\x0d\x00\xaa\x00\x34\x00\xa9\x00\
\\x36\x00\xa8\x00\x00\x00\
\\xcf\x02\x28\x00\x11\x01\x00\x00\
\\xd0\x02\x13\x00\x06\x01\x00\x00\
\\xd1\x02\x06\x00\xac\x00\x0c\x00\xab\x00\x0d\x00\xaa\x00\x2c\x00\x08\x01\
\\x34\x00\xa9\x00\x36\x00\xa8\x00\x00\x00\
\\xd2\x02\x28\x00\x11\x01\x00\x00\
\\xd3\x02\x00\x00\
\\xd4\x02\x00\x00\
\\xd4\x02\x65\x00\x5d\x01\x00\x00\
\\xd5\x02\x00\x00\
\\xd6\x02\x28\x00\x11\x01\x00\x00\
\\xd7\x02\x65\x00\x5d\x01\x00\x00\
\\xd8\x02\x00\x00\
\\xd9\x02\x00\x00\
\\xda\x02\x00\x00\
\\xdb\x02\x00\x00\
\\xdc\x02\x00\x00\
\\xdd\x02\x00\x00\
\\xde\x02\x00\x00\
\\xdf\x02\x06\x00\xac\x00\x0c\x00\xab\x00\x0d\x00\xaa\x00\x34\x00\xa9\x00\
\\x36\x00\x10\x01\x00\x00\
\\xe0\x02\x00\x00\
\\xe1\x02\x00\x00\
\\xe2\x02\x65\x00\x60\x01\x00\x00\
\\xe3\x02\x00\x00\
\\xe4\x02\x28\x00\x11\x01\x00\x00\
\\xe5\x02\x28\x00\x11\x01\x65\x00\x8c\x01\x00\x00\
\\xe6\x02\x00\x00\
\\xe7\x02\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x11\x00\x7c\x00\
\\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\x36\x00\x76\x00\
\\x71\x00\x73\x00\x00\x00\
\\xe8\x02\x00\x00\
\\xe9\x02\x14\x00\x55\x00\x20\x00\x54\x00\x2d\x00\x53\x00\x3b\x00\x52\x00\
\\x73\x00\x51\x00\x00\x00\
\\xea\x02\x16\x00\xd6\x00\x00\x00\
\\xeb\x02\x28\x00\x11\x01\x00\x00\
\\xec\x02\x64\x00\xdb\x00\x00\x00\
\\xed\x02\x02\x00\x81\x00\x06\x00\x80\x00\x07\x00\x3f\x00\x08\x00\x3e\x00\
\\x0b\x00\x7f\x00\x0c\x00\x7e\x00\x0e\x00\x7d\x00\x10\x00\xda\x00\
\\x11\x00\x7c\x00\x31\x00\x79\x00\x32\x00\x78\x00\x34\x00\x77\x00\
\\x36\x00\x76\x00\x71\x00\x73\x00\x00\x00\
\\xee\x02\x00\x00\
\\xef\x02\x0f\x00\xd8\x00\x00\x00\
\\xf0\x02\x0f\x00\xd8\x00\x00\x00\
\\xf1\x02\x12\x00\xd7\x00\x00\x00\
\\xf2\x02\x12\x00\xd7\x00\x00\x00\
\\xf3\x02\x00\x00\
\\xf4\x02\x00\x00\
\\xf5\x02\x00\x00\
\\xf6\x02\x00\x00\
\\xf7\x02\x00\x00\
\\xf8\x02\x00\x00\
\\xf9\x02\x00\x00\
\\xfa\x02\x00\x00\
\\xfb\x02\x00\x00\
\\xfc\x02\x00\x00\
\\xfd\x02\x00\x00\
\\xfe\x02\x00\x00\
\\xff\x02\x00\x00\
\\x00\x03\x00\x00\
\\x01\x03\x00\x00\
\\x02\x03\x00\x00\
\\x03\x03\x00\x00\
\\x04\x03\x00\x00\
\\x05\x03\x00\x00\
\\x06\x03\x00\x00\
\\x07\x03\x00\x00\
\\x08\x03\x00\x00\
\\x09\x03\x00\x00\
\\x0a\x03\x65\x00\x38\x01\x00\x00\
\\x0b\x03\x00\x00\
\\x0c\x03\x00\x00\
\\x0d\x03\x16\x00\xd6\x00\x00\x00\
\\x0f\x03\x16\x00\xd6\x00\x00\x00\
\\x10\x03\x16\x00\xaf\x01\x28\x00\x11\x01\x00\x00\
\\x11\x03\x16\x00\xd6\x00\x00\x00\
\\x12\x03\x16\x00\xd6\x00\x65\x00\x3c\x01\x00\x00\
\\x13\x03\x00\x00\
\\x14\x03\x16\x00\xd6\x00\x3b\x00\xad\x01\x00\x00\
\\x15\x03\x00\x00\
\\x16\x03\x13\x00\x4d\x00\x00\x00\
\\x17\x03\x64\x00\xbb\x01\x00\x00\
\\x18\x03\x36\x00\xba\x01\x00\x00\
\\x19\x03\x00\x00\
\\x1a\x03\x00\x00\
\\x1b\x03\x00\x00\
\\x1c\x03\x73\x00\xb1\x01\x00\x00\
\\x1d\x03\x73\x00\xb1\x01\x00\x00\
\\x1e\x03\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\xc3\x01\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\xc2\x01\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\x1f\x03\x00\x00\
\\x20\x03\x01\x00\x43\x00\x02\x00\x42\x00\x04\x00\x41\x00\x06\x00\x40\x00\
\\x07\x00\x3f\x00\x08\x00\x3e\x00\x09\x00\x3d\x00\x0b\x00\x3c\x00\
\\x0c\x00\x3b\x00\x0e\x00\x3a\x00\x11\x00\x39\x00\x15\x00\x38\x00\
\\x17\x00\x37\x00\x18\x00\x36\x00\x19\x00\x35\x00\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x23\x00\x32\x00\x24\x00\x31\x00\x25\x00\x30\x00\
\\x2e\x00\x2f\x00\x30\x00\xc3\x01\x31\x00\x2d\x00\x32\x00\x2c\x00\
\\x34\x00\x2b\x00\x36\x00\x2a\x00\x37\x00\x29\x00\x38\x00\xc2\x01\
\\x3a\x00\x27\x00\x3c\x00\x26\x00\x3d\x00\x25\x00\x3e\x00\x24\x00\
\\x3f\x00\x23\x00\x40\x00\x22\x00\x41\x00\x21\x00\x42\x00\x20\x00\
\\x43\x00\x1f\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\
\\x74\x00\x1b\x00\x00\x00\
\\x21\x03\x00\x00\
\\x22\x03\x13\x00\x4d\x00\x00\x00\
\\x23\x03\x13\x00\x50\x00\x00\x00\
\\x24\x03\x00\x00\
\\x25\x03\x00\x00\
\\x26\x03\x06\x00\x5d\x00\x15\x00\x38\x00\x17\x00\x98\x01\x1d\x00\x34\x00\
\\x21\x00\x33\x00\x24\x00\x31\x00\x2e\x00\x2f\x00\x2f\x00\x97\x01\
\\x30\x00\xee\x01\x37\x00\x29\x00\x38\x00\xc2\x01\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x70\x00\x1d\x00\x72\x00\x1c\x00\x00\x00\
\\x27\x03\x00\x00\
\\x28\x03\x1d\x00\x34\x00\x21\x00\x33\x00\x24\x00\x31\x00\x2e\x00\x2f\x00\
\\x30\x00\xee\x01\x38\x00\xc2\x01\x70\x00\x1d\x00\x72\x00\x1c\x00\x00\x00\
\\x29\x03\x00\x00\
\\x2a\x03\x13\x00\x4d\x00\x00\x00\
\\x2b\x03\x13\x00\x50\x00\x00\x00\
\\x2c\x03\x00\x00\
\\x2d\x03\x00\x00\
\\x2e\x03\x64\x00\x30\x01\x00\x00\
\\x2f\x03\x73\x00\xb1\x01\x00\x00\
\\x30\x03\x73\x00\xb1\x01\x00\x00\
\\x31\x03\x13\x00\x58\x00\x00\x00\
\\x32\x03\x73\x00\xb1\x01\x00\x00\
\\x33\x03\x00\x00\
\\x34\x03\x00\x00\
\\x35\x03\x00\x00\
\\x36\x03\x06\x00\xaa\x01\x1d\x00\xa9\x01\x1f\x00\xa8\x01\x21\x00\xa7\x01\
\\x27\x00\xa6\x01\x38\x00\xa5\x01\x62\x00\xa4\x01\x70\x00\xa3\x01\x00\x00\
\\x36\x03\x1d\x00\xa9\x01\x1f\x00\xa8\x01\x21\x00\xa7\x01\x27\x00\xa6\x01\
\\x38\x00\xa5\x01\x62\x00\xa4\x01\x70\x00\xa3\x01\x00\x00\
\\x37\x03\x00\x00\
\\x38\x03\x00\x00\
\\x39\x03\x1d\x00\xa9\x01\x1f\x00\xa8\x01\x21\x00\xa7\x01\x27\x00\xa6\x01\
\\x38\x00\xa5\x01\x62\x00\xa4\x01\x70\x00\xa3\x01\x00\x00\
\\x3a\x03\x13\x00\x24\x02\x00\x00\
\\x3b\x03\x13\x00\x38\x02\x00\x00\
\\x3c\x03\x13\x00\xfb\x01\x00\x00\
\\x3d\x03\x13\x00\xfb\x01\x00\x00\
\\x3e\x03\x13\x00\x00\x02\x00\x00\
\\x3f\x03\x13\x00\x08\x02\x00\x00\
\\x40\x03\x13\x00\x57\x00\x75\x00\x09\x02\x00\x00\
\\x41\x03\x73\x00\xb1\x01\x00\x00\
\\x42\x03\x00\x00\
\\x43\x03\x13\x00\xfd\x01\x00\x00\
\\x44\x03\x13\x00\x4a\x00\x00\x00\
\\x45\x03\x06\x00\x47\x00\x15\x00\x38\x00\x37\x00\x29\x00\x3a\x00\x27\x00\
\\x3c\x00\x26\x00\x6f\x00\x1e\x00\x00\x00\
\\x46\x03\x00\x00\
\\x47\x03\x13\x00\x24\x02\x00\x00\
\\x48\x03\x2c\x00\x41\x02\x73\x00\xb1\x01\x00\x00\
\\x49\x03\x00\x00\
\\x4a\x03\x13\x00\x38\x02\x00\x00\
\\x4b\x03\x00\x00\
\\x4c\x03\x00\x00\
\\x4d\x03\x73\x00\xb1\x01\x00\x00\
\\x4e\x03\x13\x00\xfb\x01\x00\x00\
\\x4f\x03\x2c\x00\xfc\x01\x00\x00\
\\x50\x03\x28\x00\x11\x01\x00\x00\
\\x51\x03\x13\x00\x08\x02\x00\x00\
\\x52\x03\x06\x00\xac\x00\x0c\x00\xab\x00\x0d\x00\xaa\x00\x34\x00\xa9\x00\
\\x36\x00\xa8\x00\x00\x00\
\\x53\x03\x28\x00\x11\x01\x00\x00\
\\x54\x03\x13\x00\x00\x02\x00\x00\
\\x55\x03\x28\x00\x11\x01\x00\x00\
\\x56\x03\x13\x00\xfd\x01\x00\x00\
\\x57\x03\x00\x00\
\\x58\x03\x00\x00\
\\x59\x03\x2c\x00\xfe\x01\x00\x00\
\\x5a\x03\x00\x00\
\\x5b\x03\x13\x00\x0d\x02\x00\x00\
\\x5c\x03\x00\x00\
\\x5d\x03\x28\x00\x11\x01\x00\x00\
\\x5e\x03\x13\x00\x50\x00\x00\x00\
\\x5f\x03\x64\x00\xbb\x01\x00\x00\
\\x60\x03\x00\x00\
\\x61\x03\x36\x00\xba\x01\x00\x00\
\\x62\x03\x00\x00\
\\x63\x03\x00\x00\
\\x64\x03\x36\x00\xba\x01\x00\x00\
\\x65\x03\x00\x00\
\\x66\x03\x00\x00\
\\x67\x03\x36\x00\xba\x01\x00\x00\
\\x68\x03\x36\x00\x71\x01\x00\x00\
\\x69\x03\x00\x00\
\\x6a\x03\x73\x00\xb1\x01\x00\x00\
\\x6b\x03\x00\x00\
\\x6c\x03\x36\x00\x71\x01\x64\x00\x70\x01\x00\x00\
\\x6d\x03\x00\x00\
\\x6e\x03\x00\x00\
\\x6f\x03\x13\x00\x4f\x00\x00\x00\
\\x70\x03\x73\x00\xb1\x01\x00\x00\
\";
    action_row_numbers =
"\x01\x00\xb4\x00\xc0\x00\xc2\x00\
\\xc6\x00\xc4\x00\xc8\x00\x12\x01\
\\x15\x01\xa7\x00\xca\x00\x13\x01\
\\x97\x00\xab\x00\xaa\x00\x0f\x01\
\\xd2\x00\xcc\x00\xae\x00\xad\x00\
\\x14\x01\x11\x01\x16\x01\xe6\x00\
\\xac\x00\x05\x00\x21\x00\x2b\x00\
\\xf5\x00\x05\x00\x05\x00\x05\x00\
\\x05\x00\x05\x00\x19\x00\x05\x00\
\\xf3\x00\xf2\x00\x08\x00\xef\x00\
\\x04\x00\x17\x00\x02\x00\x03\x00\
\\xb0\x00\x54\x00\x05\x00\x0f\x00\
\\x0f\x00\x12\x00\x2c\x00\x05\x00\
\\x11\x00\x00\x00\xed\x00\x06\x00\
\\xce\x00\x07\x00\xd0\x00\xcf\x00\
\\xe8\x00\xe7\x00\xea\x00\xd3\x00\
\\xd1\x00\xe5\x00\x25\x00\x06\x00\
\\xc3\x00\xe9\x00\x06\x00\xc7\x00\
\\xa6\x00\x7d\x00\xa8\x00\x7e\x00\
\\x13\x00\x7f\x00\x80\x00\x0a\x01\
\\x05\x00\x05\x00\x0f\x00\x05\x00\
\\xa6\x00\x52\x00\x81\x00\x34\x00\
\\xfa\x00\x18\x01\x1a\x01\xeb\x00\
\\x61\x00\xbf\x00\xa3\x00\x38\x00\
\\xa2\x00\xa1\x00\xa0\x00\xd6\x00\
\\xfc\x00\xfd\x00\x91\x00\x5d\x01\
\\x3d\x00\x61\x01\x60\x01\x5b\x01\
\\x59\x01\x57\x01\x55\x01\x53\x01\
\\x52\x01\x65\x01\x1b\x00\x1d\x00\
\\x0e\x00\x27\x00\x0b\x00\x0c\x00\
\\x0d\x00\x2d\x00\x0f\x00\x62\x01\
\\x10\x00\x63\x01\xfe\x00\x64\x01\
\\x89\x00\x37\x00\xd9\x00\x62\x00\
\\x02\x01\x76\x00\xd7\x00\x72\x00\
\\x04\x01\xd8\x00\x73\x00\xda\x00\
\\x98\x00\x59\x00\xb1\x00\x0f\x00\
\\x2e\x00\x39\x00\x42\x00\x99\x00\
\\x21\x01\x9a\x00\x43\x00\x3c\x00\
\\x17\x01\x36\x01\x63\x00\x36\x00\
\\x16\x00\x06\x01\x07\x00\x44\x00\
\\xc9\x00\xcb\x00\x05\x00\x39\x01\
\\x45\x01\xb6\x00\x25\x00\x18\x00\
\\x41\x01\x46\x01\xa4\x00\xc1\x00\
\\xc5\x00\x2a\x01\x1e\x01\x71\x00\
\\xa9\x00\x7b\x01\x85\x00\xd4\x00\
\\xd5\x00\xec\x00\xf6\x00\xd5\x01\
\\x86\x00\xc4\x01\x87\x00\x45\x00\
\\x0b\x01\x9b\x00\x0a\x00\x0a\x01\
\\xb7\x00\x35\x00\x46\x00\xb8\x00\
\\x19\x01\x2c\x01\x53\x00\x96\x01\
\\x3a\x00\x00\x00\x1b\x01\x21\x00\
\\x25\x00\xde\x00\x05\x00\xe2\x00\
\\xe1\x00\xe0\x00\xdf\x00\x05\x00\
\\x0f\x00\x5a\x01\x0f\x00\x56\x01\
\\x0f\x00\x25\x00\x21\x01\x93\x01\
\\xf1\x00\x3f\x00\x6b\x01\x64\x00\
\\x77\x00\x70\x01\x6a\x01\x71\x01\
\\x40\x00\x74\x00\x77\x01\x66\x01\
\\x75\x00\x68\x01\x3e\x00\x1b\x00\
\\x65\x00\x5c\x01\x5e\x01\x21\x00\
\\xdd\x00\xdc\x00\x05\x00\x19\x00\
\\xdb\x00\xe3\x00\x05\x00\xe4\x00\
\\xb2\x00\xb0\x00\x47\x00\x66\x00\
\\x00\x00\x23\x01\x27\x01\x67\x00\
\\x25\x00\x4d\x01\xb9\x00\x05\x00\
\\x12\x00\x37\x01\x21\x00\x15\x00\
\\x0f\x00\x07\x01\x08\x01\xcd\x00\
\\x10\x01\x44\x01\x25\x00\x25\x00\
\\x8a\x00\x3a\x01\x5f\x00\x92\x00\
\\x48\x01\x78\x00\x3f\x01\x24\x00\
\\x88\x00\x1b\x00\x13\x00\x7b\x00\
\\x7c\x00\xbc\x00\x0c\x01\x5a\x00\
\\x05\x00\xb5\x00\x48\x00\xfb\x00\
\\x2b\x01\xff\x00\x00\x01\x1d\x01\
\\x50\x01\x58\x01\x54\x01\x51\x01\
\\x68\x00\x69\x00\x82\x00\xd2\x01\
\\xee\x00\x0f\x00\x6c\x01\x0f\x00\
\\x0f\x00\x6f\x01\x28\x00\x25\x00\
\\x0f\x00\x67\x01\x0f\x00\x69\x01\
\\x05\x00\x21\x01\x30\x00\x5f\x01\
\\x03\x01\x01\x01\x05\x01\xb3\x00\
\\x49\x00\x24\x01\x15\x00\x41\x00\
\\x57\x00\x28\x01\x05\x00\x22\x01\
\\x4e\x01\x4f\x01\x35\x01\x38\x01\
\\x2d\x01\x2f\x01\x31\x01\x24\x00\
\\x33\x01\x4a\x00\x09\x01\x8b\x00\
\\x60\x00\x3c\x01\x3b\x01\x26\x00\
\\x40\x01\x25\x00\x19\x00\x42\x01\
\\x47\x01\xf7\x00\x3b\x00\x1b\x00\
\\x0d\x01\x0a\x01\xbe\x00\xbb\x00\
\\x05\x00\x1f\x00\x30\x00\x30\x00\
\\x6a\x00\x93\x01\x83\x00\x9b\x01\
\\x79\x00\x8c\x00\x79\x01\x8d\x00\
\\x73\x01\x72\x01\x75\x01\x74\x01\
\\x78\x01\x1c\x01\x6b\x00\x97\x01\
\\x9c\x01\x98\x01\xaf\x00\x57\x00\
\\x2e\x01\x00\x00\x25\x01\x58\x00\
\\x29\x01\x14\x00\x30\x01\x34\x01\
\\xba\x00\x43\x01\x25\x00\x3e\x01\
\\x3d\x01\x25\x00\x4a\x01\x49\x01\
\\x2f\x00\x4b\x00\x1f\x01\x7d\x01\
\\x7c\x01\x83\x01\x83\x01\x94\x01\
\\x95\x01\x20\x00\x6c\x00\x31\x00\
\\x32\x00\xd1\x01\x8e\x00\x9d\x01\
\\x9c\x00\x29\x00\x22\x00\x1c\x00\
\\x1a\x00\x1b\x00\x29\x00\x52\x00\
\\x93\x00\x6d\x00\x6d\x01\x0f\x00\
\\x6e\x01\x0f\x00\x05\x00\x23\x00\
\\x4c\x00\x26\x01\x56\x00\x32\x01\
\\x4c\x01\x4b\x01\x9d\x00\x7f\x01\
\\x8b\x01\x84\x00\x87\x01\x5b\x00\
\\x89\x01\x88\x01\x84\x01\x9e\x00\
\\x09\x00\x83\x01\x4d\x00\xc6\x01\
\\xc7\x01\x83\x01\x1f\x00\xd3\x01\
\\xd4\x01\xce\x01\x9f\x01\xa2\x01\
\\xb5\x01\xa9\x01\xbe\x01\x6e\x00\
\\x21\x00\xa4\x01\x94\x00\xf4\x00\
\\x1b\x00\xa7\x01\xb8\x01\xa5\x01\
\\xa3\x01\xa6\x01\x30\x00\x30\x00\
\\x7a\x01\x76\x01\x20\x01\x33\x00\
\\x6f\x00\x2a\x00\x99\x01\xbd\x00\
\\x0e\x01\x8f\x01\x8f\x00\x91\x01\
\\x90\x01\x8c\x01\x9f\x00\x90\x00\
\\x83\x01\x30\x00\x30\x00\x1f\x00\
\\x85\x01\x1e\x00\x5c\x00\x7e\x01\
\\xc8\x01\x5d\x00\xc5\x01\xcf\x01\
\\x9e\x01\x29\x00\x25\x00\x22\x00\
\\x21\x00\xbd\x01\x1b\x00\x25\x00\
\\xa0\x01\x95\x00\xf0\x00\xa8\x01\
\\xab\x01\xb9\x01\x1b\x00\xa6\x00\
\\xd0\x01\xd6\x01\x9a\x01\x23\x00\
\\x21\x00\x70\x00\xf8\x00\xa5\x00\
\\xcd\x01\x8d\x01\xca\x01\x5e\x00\
\\x81\x01\x82\x01\x4e\x00\x86\x01\
\\xf0\x00\x83\x01\x20\x00\xb4\x01\
\\xb6\x01\xbc\x01\xc0\x01\xbf\x01\
\\xba\x01\xbb\x01\x1b\x00\x30\x00\
\\xa1\x01\x7a\x00\xac\x01\xb7\x01\
\\xaa\x01\xc1\x01\xc2\x01\x25\x00\
\\x2a\x00\xcc\x01\x8e\x01\xcb\x01\
\\x83\x01\x80\x01\x4f\x00\x50\x00\
\\xad\x01\xae\x01\x1b\x00\xb1\x01\
\\x96\x00\x1b\x00\xc3\x01\xf9\x00\
\\x51\x00\x8a\x01\xc9\x01\x21\x00\
\\xb0\x01\x30\x00\xb2\x01\x92\x01\
\\xaf\x01\xb3\x01\x55\x00";
   goto_table =
"\
\\x04\x00\x18\x00\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\
\\x28\x00\x14\x00\x29\x00\x13\x00\x2b\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\x0e\x00\x3e\x00\x0d\x00\
\\x3f\x00\x0c\x00\x4d\x00\x0b\x00\x52\x00\x0a\x00\x56\x00\x09\x00\
\\x57\x00\x46\x02\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\
\\x61\x00\x05\x00\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\
\\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x52\x00\x0a\x00\
\\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\x63\x00\x44\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x57\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x19\x00\x5a\x00\x1a\x00\x59\x00\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x5d\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\x5f\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x58\x00\x5e\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\x5f\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x58\x00\x60\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\x5f\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x58\x00\x61\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\x5f\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x58\x00\x62\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x2d\x00\x64\x00\x4f\x00\x63\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\x5f\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x58\x00\x66\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x68\x00\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x81\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x58\x00\x80\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x2d\x00\x64\x00\x49\x00\x85\x00\x4a\x00\x84\x00\x4f\x00\x83\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\x88\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x30\x00\x87\x00\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\x88\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x30\x00\x8a\x00\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x04\x00\x18\x00\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\
\\x28\x00\x14\x00\x29\x00\x13\x00\x2b\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\x0e\x00\x35\x00\x8e\x00\
\\x3b\x00\x8d\x00\x3e\x00\x0d\x00\x3f\x00\x8c\x00\x4d\x00\x0b\x00\
\\x52\x00\x0a\x00\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\
\\x61\x00\x05\x00\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\
\\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x91\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x0b\x00\x94\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x26\x00\x93\x00\x27\x00\x92\x00\
\\x2c\x00\x6a\x00\x2f\x00\x69\x00\x44\x00\x67\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x97\x00\x44\x00\x67\x00\x46\x00\x96\x00\x4e\x00\x95\x00\x00\x00\
\\x1e\x00\x98\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x9b\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x08\x00\x9c\x00\x00\x00\
\\x09\x00\x9f\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x52\x00\x0a\x00\
\\x60\x00\x06\x00\x62\x00\xa0\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x52\x00\xa1\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\xa5\x00\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x07\x00\x17\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x52\x00\x0a\x00\
\\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\x63\x00\x03\x00\
\\x64\x00\xab\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x52\x00\x0a\x00\
\\x60\x00\x06\x00\x61\x00\xac\x00\x62\x00\x04\x00\x00\x00\
\\x00\x00\
\\x5a\x00\xad\x00\x00\x00\
\\x4d\x00\xae\x00\x00\x00\
\\x04\x00\x18\x00\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\
\\x28\x00\x14\x00\x29\x00\x13\x00\x2b\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\x0e\x00\x3e\x00\x0d\x00\
\\x3f\x00\x0c\x00\x4d\x00\x0b\x00\x52\x00\x0a\x00\x56\x00\xb0\x00\
\\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x3e\x00\xb1\x00\x00\x00\
\\x17\x00\xb4\x00\x19\x00\xb3\x00\x2d\x00\x58\x00\x00\x00\
\\x2b\x00\xb7\x00\x00\x00\
\\x29\x00\xb9\x00\x00\x00\
\\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\x28\x00\x14\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbd\x00\
\\x34\x00\xbc\x00\x3a\x00\xbb\x00\x4d\x00\x0b\x00\x52\x00\x0a\x00\
\\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\xc0\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\xc1\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x97\x00\x44\x00\x67\x00\x46\x00\xc2\x00\x4e\x00\x95\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\xc3\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x5a\x00\xc4\x00\x00\x00\
\\x1d\x00\xc5\x00\x00\x00\
\\x04\x00\xc7\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x19\x00\x5a\x00\x1a\x00\xca\x00\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0d\x00\xd7\x00\x0e\x00\x6d\x00\x0f\x00\x6c\x00\x10\x00\x6b\x00\
\\x2c\x00\x6a\x00\x2f\x00\x69\x00\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\xda\x00\x00\x00\
\\x2d\x00\xdb\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\xdd\x00\x44\x00\x67\x00\x00\x00\
\\x2d\x00\x64\x00\x47\x00\xe1\x00\x48\x00\xe0\x00\x4f\x00\xdf\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\xe6\x00\x44\x00\x67\x00\x45\x00\xe5\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\xe6\x00\x44\x00\x67\x00\x45\x00\xe8\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\xea\x00\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x0f\x00\xed\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x2c\x00\x6a\x00\x2f\x00\x69\x00\x44\x00\xee\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0b\x00\x94\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x26\x00\x93\x00\x27\x00\xfa\x00\
\\x2c\x00\x6a\x00\x2f\x00\x69\x00\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x3c\x00\xff\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\x05\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x52\x00\x0a\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x0c\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x1b\x00\xa4\x00\x53\x00\x0d\x01\x00\x00\
\\x00\x00\
\\x03\x00\x12\x01\x1b\x00\xa4\x00\x53\x00\x11\x01\x59\x00\x10\x01\x00\x00\
\\x2d\x00\x64\x00\x4b\x00\x15\x01\x4c\x00\x14\x01\x4f\x00\x13\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x52\x00\x0a\x00\
\\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\x63\x00\x44\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x68\x00\x44\x00\x67\x00\x00\x00\
\\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\x28\x00\x14\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbd\x00\
\\x34\x00\xbc\x00\x3a\x00\x1f\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\
\\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x09\x00\x22\x01\x00\x00\
\\x00\x00\
\\x19\x00\x23\x01\x2d\x00\x58\x00\x00\x00\
\\x03\x00\x24\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x26\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x58\x00\x25\x01\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x27\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x28\x01\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x0e\x00\x29\x01\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\
\\x2f\x00\x69\x00\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x0b\x00\x2a\x01\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x44\x00\x67\x00\x00\x00\
\\x03\x00\x2b\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x3c\x00\x2c\x01\x00\x00\
\\x51\x00\x2d\x01\x00\x00\
\\x2d\x00\x2f\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x3d\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x19\x00\x3f\x01\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x40\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x2d\x00\x64\x00\x49\x00\x41\x01\x4a\x00\x84\x00\x4f\x00\x83\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x88\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x30\x00\x42\x01\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x04\x00\x18\x00\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\
\\x28\x00\x14\x00\x29\x00\x13\x00\x2b\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\x0e\x00\x35\x00\x43\x01\
\\x3e\x00\x0d\x00\x3f\x00\x8c\x00\x4d\x00\x0b\x00\x52\x00\x0a\x00\
\\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x04\x00\x18\x00\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\
\\x28\x00\x14\x00\x29\x00\x13\x00\x2b\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\x0e\x00\x35\x00\x8e\x00\
\\x3b\x00\x44\x01\x3e\x00\x0d\x00\x3f\x00\x8c\x00\x4d\x00\x0b\x00\
\\x52\x00\x0a\x00\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\
\\x61\x00\x05\x00\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\
\\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x09\x00\x47\x01\x00\x00\
\\x00\x00\
\\x0b\x00\x94\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x26\x00\x93\x00\x27\x00\x49\x01\
\\x2c\x00\x6a\x00\x2f\x00\x69\x00\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x03\x00\x4b\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x97\x00\x44\x00\x67\x00\x46\x00\x4c\x01\x4e\x00\x95\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x4d\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x1e\x00\x4e\x01\x00\x00\
\\x00\x00\
\\x19\x00\x4f\x01\x2d\x00\x58\x00\x00\x00\
\\x11\x00\x52\x01\x12\x00\x51\x01\x1c\x00\x50\x01\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x97\x00\x44\x00\x67\x00\x46\x00\x55\x01\x4e\x00\x95\x00\x00\x00\
\\x00\x00\
\\x08\x00\x56\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\x58\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x5b\x00\x57\x01\x00\x00\
\\x03\x00\x59\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1b\x00\x60\x01\x00\x00\
\\x00\x00\
\\x2d\x00\xdb\x00\x00\x00\
\\x17\x00\x61\x01\x19\x00\x23\x01\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\x28\x00\x14\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbd\x00\
\\x34\x00\x64\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x66\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x23\x00\x6d\x01\x25\x00\x6c\x01\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\xe6\x00\x44\x00\x67\x00\x45\x00\x71\x01\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x3d\x00\x73\x01\x43\x00\x72\x01\x44\x00\x67\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x74\x01\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x2d\x00\x64\x00\x47\x00\xe1\x00\x48\x00\x75\x01\x4f\x00\xdf\x00\x00\x00\
\\x03\x00\x76\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x77\x01\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\xe6\x00\x44\x00\x67\x00\x45\x00\x78\x01\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x79\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x3c\x00\x7a\x01\x00\x00\
\\x01\x00\x7b\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x11\x00\x52\x01\x12\x00\x51\x01\x1c\x00\x80\x01\x00\x00\
\\x00\x00\
\\x28\x00\x82\x01\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x84\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1b\x00\x86\x01\x00\x00\
\\x03\x00\x87\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1b\x00\xa4\x00\x53\x00\x8c\x01\x59\x00\x8b\x01\x00\x00\
\\x00\x00\
\\x03\x00\x8e\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x2d\x00\x64\x00\x4b\x00\x8f\x01\x4c\x00\x14\x01\x4f\x00\x13\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x2f\x01\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x1d\x00\x16\x00\x20\x00\x15\x00\x28\x00\x14\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbd\x00\
\\x34\x00\xbc\x00\x3a\x00\x91\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\
\\x5a\x00\x08\x00\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\
\\x62\x00\x04\x00\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x20\x00\x92\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x02\x00\x94\x01\x19\x00\x93\x01\x2d\x00\x58\x00\x00\x00\
\\x01\x00\x97\x01\x00\x00\
\\x01\x00\x98\x01\x00\x00\
\\x00\x00\
\\x51\x00\x9a\x01\x00\x00\
\\x00\x00\
\\x05\x00\xa0\x01\x06\x00\x9f\x01\x22\x00\x9e\x01\x36\x00\x9d\x01\x00\x00\
\\x23\x00\xa9\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x05\x00\xa0\x01\x06\x00\x9f\x01\x36\x00\xb0\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x28\x00\xb1\x01\x00\x00\
\\x00\x00\
\\x09\x00\xb2\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x11\x00\x52\x01\x12\x00\xb3\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\xb5\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x5b\x00\xb4\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\x12\x01\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x54\x00\xb7\x01\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\xbe\x01\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x37\x00\xbb\x01\
\\x3e\x00\xba\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\xbe\x01\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x37\x00\xc2\x01\
\\x3e\x00\xba\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x19\x00\xc4\x01\x2a\x00\xc3\x01\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x5c\x00\xcb\x01\x00\x00\
\\x19\x00\xcf\x01\x2d\x00\x58\x00\x42\x00\xce\x01\x50\x00\xcd\x01\x00\x00\
\\x2d\x00\xd2\x01\x5e\x00\xd1\x01\x00\x00\
\\x01\x00\xd5\x01\x2d\x00\xd4\x01\x00\x00\
\\x1f\x00\xd7\x01\x2d\x00\xd6\x01\x00\x00\
\\x5c\x00\xd8\x01\x00\x00\
\\x1d\x00\xd9\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x3d\x00\xdc\x01\x43\x00\x72\x01\x44\x00\x67\x00\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\xdd\x01\x44\x00\x67\x00\x00\x00\
\\x07\x00\x17\x00\x20\x00\xde\x01\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x52\x00\x0a\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x19\x00\xe0\x01\x2d\x00\x58\x00\x5f\x00\xdf\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x02\x00\xeb\x01\x14\x00\xea\x01\x16\x00\xe9\x01\x19\x00\x93\x01\
\\x1d\x00\x16\x00\x28\x00\x14\x00\x29\x00\xe8\x01\x2d\x00\x58\x00\
\\x31\x00\xe7\x01\x38\x00\xe6\x01\x3e\x00\xe5\x01\x4d\x00\x0b\x00\
\\x5a\x00\x08\x00\x5d\x00\x07\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0b\x00\x70\x00\x0c\x00\x6f\x00\x0d\x00\x6e\x00\x0e\x00\x6d\x00\
\\x0f\x00\x6c\x00\x10\x00\x6b\x00\x2c\x00\x6a\x00\x2f\x00\x69\x00\
\\x43\x00\x68\x00\x44\x00\x67\x00\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\xbe\x01\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x37\x00\xf2\x01\
\\x3e\x00\xba\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x54\x00\xf4\x01\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\xbe\x01\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x37\x00\xf5\x01\
\\x3e\x00\xba\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x02\x00\xf6\x01\x19\x00\x93\x01\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x23\x00\xf7\x01\x00\x00\
\\x05\x00\xa0\x01\x06\x00\xf8\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x19\x00\xcf\x01\x2d\x00\x58\x00\x42\x00\xfd\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x01\x02\x40\x00\x00\x02\x00\x00\
\\x2d\x00\x04\x02\x2e\x00\x03\x02\x00\x00\
\\x00\x00\
\\x03\x00\x05\x02\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x01\x00\x08\x02\x00\x00\
\\x01\x00\x09\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x18\x00\x0d\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\xbe\x01\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x37\x00\x13\x02\
\\x3e\x00\xba\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x01\x00\x14\x02\x00\x00\
\\x01\x00\x15\x02\x00\x00\
\\x02\x00\x16\x02\x19\x00\x93\x01\x2d\x00\x58\x00\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\x17\x02\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x3e\x00\xba\x01\
\\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\x5d\x00\x07\x00\
\\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\x63\x00\x03\x00\
\\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x2d\x00\xdb\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x5c\x00\x1b\x02\x00\x00\
\\x03\x00\x1c\x02\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x19\x00\xcf\x01\x2d\x00\x58\x00\x42\x00\xce\x01\x50\x00\x1d\x02\x00\x00\
\\x19\x00\x1f\x02\x2d\x00\x58\x00\x42\x00\x1e\x02\x00\x00\
\\x00\x00\
\\x2d\x00\xd2\x01\x5e\x00\x20\x02\x00\x00\
\\x03\x00\x21\x02\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x25\x02\x55\x00\x24\x02\x00\x00\
\\x00\x00\
\\x2d\x00\x04\x02\x2e\x00\x26\x02\x00\x00\
\\x00\x00\
\\x1f\x00\x27\x02\x2d\x00\xd6\x01\x00\x00\
\\x5a\x00\x28\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x19\x00\xe0\x01\x2d\x00\x58\x00\x5f\x00\x29\x02\x00\x00\
\\x19\x00\x2a\x02\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x54\x00\x2d\x02\x00\x00\
\\x14\x00\xea\x01\x16\x00\x2e\x02\x1d\x00\x16\x00\x28\x00\x14\x00\
\\x29\x00\xe8\x01\x31\x00\xe7\x01\x3e\x00\xe5\x01\x4d\x00\x0b\x00\
\\x5a\x00\x08\x00\x5d\x00\x07\x00\x00\x00\
\\x54\x00\x2f\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x2f\x01\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\xbe\x01\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x37\x00\x32\x02\
\\x3e\x00\xba\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x19\x00\xc4\x01\x2a\x00\x33\x02\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x01\x02\x40\x00\x34\x02\x00\x00\
\\x01\x00\x35\x02\x00\x00\
\\x00\x00\
\\x23\x00\x38\x02\x24\x00\x37\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\x3a\x02\x1b\x00\xa4\x00\x53\x00\xa3\x00\x00\x00\
\\x18\x00\x3b\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x17\x00\x13\x00\xbf\x01\x15\x00\xbe\x01\x1d\x00\x16\x00\
\\x20\x00\x15\x00\x28\x00\x14\x00\x29\x00\xbd\x01\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x31\x00\x0f\x00\x32\x00\xbc\x01\x37\x00\x3c\x02\
\\x3e\x00\xba\x01\x4d\x00\x0b\x00\x52\x00\x0a\x00\x5a\x00\x08\x00\
\\x5d\x00\x07\x00\x60\x00\x06\x00\x61\x00\x05\x00\x62\x00\x04\x00\
\\x63\x00\x03\x00\x64\x00\x02\x00\x65\x00\x01\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x25\x02\x55\x00\x40\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2d\x00\x42\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x19\x00\x44\x02\x2d\x00\x58\x00\x00\x00\
\\x00\x00\
\\x01\x00\x45\x02\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\";
   numstates = 583;
   numrules = 296;
 s = REF "";  index = REF 0;
    string_to_int = \\ () = 
    {    i = *index;
         index := i+2;
         string::get_byte(*s, i) + string::get_byte(*s, i+1) * 256;
    };

    string_to_list = \\ s' =
    {   len = string::length_in_bytes s';
        fun f () =
           if (*index < len)
           string_to_int() ! f();
           else NIL; fi;
        index := 0;
        s := s';
        f ();
   };

   string_to_pairlist =   \\ (conv_key, conv_entry) =   f
   where 
         fun f ()
             =
             case (string_to_int ())
                 0 => EMPTY;
                 n => PAIR (conv_key (n - 1), conv_entry (string_to_int()), f());
             esac;
   end;

   string_to_pairlist_default =   \\ (conv_key, conv_entry) =
    {   conv_row = string_to_pairlist (conv_key, conv_entry);
       \\ () =
       {   default = conv_entry (string_to_int());
           row = conv_row();
          (row, default);
       };
   };

    string_to_table = \\ (convert_row, s') =
    {   len = string::length_in_bytes s';
        fun f ()
            =
           if (*index < len)
              convert_row() ! f();
           else NIL; fi;
        s := s';
        index := 0;
        f ();
     };

stipulate
  memo = rw_vector::make_rw_vector (numstates+numrules, ERROR);
  my _ ={   fun g i
                =
                {   rw_vector::set (memo, i, REDUCE (i-numstates));
                    g (i+1);
                };

            fun f i
                =
                if   (i == numstates)
                     g i;
                else    rw_vector::set (memo, i, SHIFT (STATE i));
                         f (i+1);
                fi;

            f 0
            except
                INDEX_OUT_OF_BOUNDS =  ();
        };
herein
    entry_to_action
        =
        \\ 0 =>  ACCEPT;
           1 =>  ERROR;
           j =>  rw_vector::get (memo, (j - 2));
        end;
end;

   goto_table = rw_vector::from_list (string_to_table (string_to_pairlist (NONTERM, STATE), goto_table));
   action_rows = string_to_table (string_to_pairlist_default (TERM, entry_to_action), action_rows);
   action_row_numbers = string_to_list action_row_numbers;
   action_table
    =
    {   action_row_lookup
            =
            {   a=rw_vector::from_list (action_rows);

                \\ i =   rw_vector::get (a, i);
            };

        rw_vector::from_list (map action_row_lookup action_row_numbers);
    };

    lr_table::make_lr_table {
        actions => action_table,
        gotos   => goto_table,
        rule_count   => numrules,
        state_count  => numstates,
        initial_state => STATE 0   };
};
end;
stipulate include package   header; herein
Source_Position = Int;
Arg = (Source_Position, Source_Position) -> error_message::Plaint_Sink;
package values { 
Semantic_Value = TM_VOID | NT_VOID  Void -> Void | SUFFIX_OP Void ->  (fast_symbol::Raw_Symbol) | PREFIX_OP Void ->  (fast_symbol::Raw_Symbol) | LOOSE_INFIX_OP Void ->  (fast_symbol::Raw_Symbol)
 | TIGHT_INFIX_OP Void ->  (fast_symbol::Raw_Symbol) | UNT Void ->  (multiword_int::Int) | TYPEVAR_ID Void ->  (fast_symbol::Raw_Symbol) | TYPE_ID Void ->  (fast_symbol::Raw_Symbol)
 | STRING Void ->  (String) | SHEBANG Void ->  (String) | REAL Void ->  (String) | INT0 Void ->  (multiword_int::Int) | INT Void ->  (multiword_int::Int) | VALUE_ID Void ->  (fast_symbol::Raw_Symbol)
 | ENDQ Void ->  (String) | CONSTRUCTOR_ID Void ->  (fast_symbol::Raw_Symbol) | CHUNKL Void ->  (String) | CHAR Void ->  (String) | ANTIQUOTE_ID Void ->  (fast_symbol::Raw_Symbol)
 | QQ_LOOSE_INFIX_EXPRESSION Void ->  (Raw_Expression) | QQ_APPLY_EXPRESSION Void ->  (Raw_Expression) | QQ_INFIX_EXPRESSION Void ->  (Raw_Expression) | QQ_PREFIX_EXPRESSION Void ->  (Raw_Expression)
 | QQ_SUFFIX_EXPRESSION Void ->  (Raw_Expression) | QQ_TYPED_EXPRESSION Void ->  (Raw_Expression) | QQ_WHERE_ON_API Void ->  (List Where_Spec )
 | QQ_VALUE_IN_API Void ->  (List ( (Symbol, Any_Type) ) ) | QQ_NAMED_VALUE Void ->  (List Named_Value ) | QQ_TYPE_IN_API Void ->  (List ( (Symbol, List Typevar, Null_Or Any_Type) ) )
 | QQ_TYPEFUN_ARGLIST Void ->  (List Any_Type ) | QQ_NAMED_TYPES Void ->  (List Named_Type ) | QQ_TUPLE_TYPOID Void ->  (List Any_Type ) | QQ_TUPLE_CONTENTS Void ->  (List Raw_Expression )
 | QQ_TOPLEVEL_STATEMENT Void ->  (Declaration) | QQ_TOPLEVEL_PACKAGE_DECLARATIONS Void ->  (Declaration) | QQ_GENERIC_IN_API Void ->  (List ( (Symbol, Generic_Api_Expression) ) )
 | QQ_GENERIC_ARGS Void ->  (List ( (Package_Expression, Bool) ) ) | QQ_SIMPLE_TYPE Void ->  (Any_Type) | QQ_EXPRESSION_ELEMENT Void ->  (Raw_Expression)
 | QQ_OPTIONAL_API_CAST Void ->  (Package_Cast Api_Expression ) | QQ_SHARING_IN_API Void ->  (List Api_Element ) | QQ_SELECTOR Void ->  (Symbol) | QQ_RULE Void ->  (Case_Rule)
 | QQ_NAMED_RECURSIVE_VALUES Void ->  (List Named_Recursive_Value ) | QQ_RECORD_TYPE_ELEMENT Void ->  ((Symbol, Any_Type)) | QQ_RECORD_TYPE_CONTENTS Void ->  (List ( (Symbol, Any_Type) ) )
 | QQ_RECORD_ELEMENT Void ->  ((Symbol, Raw_Expression)) | QQ_RECORD_CONTENTS Void ->  (List ( (Symbol, Raw_Expression) ) ) | QQ_RECORD_PATTERNS Void ->  ((List ((Symbol, Case_Pattern)), Bool))
 | QQ_RECORD_PATTERN Void ->  ((Symbol, Case_Pattern)) | QQ_PATTERN_MATCH Void ->  (List Case_Rule ) | QQ_PATTERN_LIST Void ->  (List Case_Pattern ) | QQ_PATTERN_ELEMENT Void ->  (Case_Pattern)
 | QQ_PATTERN Void ->  (Case_Pattern) | QQ_PATH_EQUATION Void ->  ((fast_symbol::Raw_Symbol ->Symbol) -> List List Symbol  ) | QQ_PAT_2C Void ->  (List Case_Pattern )
 | QQ_PACKAGE_IN_API Void ->  (List ( (Symbol, Api_Expression, Null_Or Path) ) ) | QQ_MODULE_DECLARATION Void ->  (Declaration) | QQ_NAMED_PACKAGES Void ->  (List Named_Package )
 | QQ_OR_PATTERN_LIST Void ->  (List Case_Pattern ) | QQ_OPTIONAL_TYPE_CONSTRAINT Void ->  (Null_Or Any_Type ) | QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS Void ->  (Declaration)
 | QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS Void ->  (Declaration) | QQ_OPTIONAL_LOCAL_DECLARATIONS Void ->  (Declaration) | QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS Void ->  (Declaration)
 | QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE Void ->  (Declaration) | QQ_OPTIONAL_API_ELEMENTS Void ->  (List Api_Element ) | QQ_LOCAL_PACKAGE_DECLARATIONS Void ->  (Declaration)
 | QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS Void ->  (Declaration) | QQ_LOCAL_DECLARATIONS Void ->  (Declaration) | QQ_LOCAL_DECLARATION_OR_EXPRESSION Void ->  (Declaration)
 | QQ_LOCAL_DECLARATION Void ->  (Declaration) | QQ_LIST_CONTENTS Void ->  (List Raw_Expression ) | QQ_INT Void ->  (multiword_int::Int) | QQ_IDENTS Void ->  (List Api_Element )
 | QQ_VALUE_ID Void ->  (fast_symbol::Raw_Symbol) | QQ_ID Void ->  (fast_symbol::Raw_Symbol) | QQ_GENERIC_API_NAMINGS Void ->  (List Named_Generic_Api )
 | QQ_GENERIC_EXPRESSION Void ->  (Package_Cast Generic_Api_Expression -> Generic_Expression ) | QQ_GENERIC_NAMINGS Void ->  (List Named_Generic )
 | QQ_NAMED_FUNCTIONS Void ->  (List Nada_Named_Function ) | QQ_FUNCTION_CLAUSES Void ->  (List Nada_Pattern_Clause ) | QQ_FUNCTION_CLAUSE Void ->  (Nada_Pattern_Clause)
 | QQ_OPTIONAL_GENERIC_API_CAST Void ->  (Package_Cast Generic_Api_Expression ) | QQ_A_GENERIC_API Void ->  (Generic_Api_Expression)
 | QQ_GENERIC_PARAMETERS Void ->  (List ( (Null_Or Symbol, Api_Expression)) ) | QQ_GENERIC_PARAMETER Void ->  ((Null_Or Symbol, Api_Expression)) | QQ_EXPRESSIONS Void ->  (List Raw_Expression )
 | QQ_EXPRESSION Void ->  (Raw_Expression) | QQ_EXCEPTION_IN_API Void ->  (List ( (Symbol, Null_Or Any_Type) ) ) | QQ_EXCEPTION_NAMINGS Void ->  (List Named_Exception )
 | QQ_SUMTYPES Void ->  (List Sumtype ) | QQ_ENUM_NAMING Void ->  (Sumtype_Right_Hand_Side) | QQ_DOTTED_TYPE Void ->  (List Symbol ) | QQ_DOTTED_IDENTIFIER_P Void ->  (List List symbol::Symbol  )
 | QQ_QUALIFIED_VALUE_ID Void ->  ((fast_symbol::Raw_Symbol -> Symbol) -> List Symbol ) | QQ_QUALIFIED_TYPE_ID Void ->  ((fast_symbol::Raw_Symbol -> Symbol) -> List Symbol )
 | QQ_QUALIFIED_CONSTRUCTOR_ID Void ->  ((fast_symbol::Raw_Symbol -> Symbol) -> List Symbol ) | QQ_DECLARATIONS_IN_GENERIC_ARGS Void ->  (Declaration)
 | QQ_DECLARATIONS_IN_PACKAGE Void ->  (Declaration) | QQ_DECLARATION_IN_GENERIC_ARGS Void ->  (Declaration) | QQ_DECLARATION_IN_PACKAGE Void ->  (Declaration)
 | QQ_CONSTRUCTORS Void ->  (List ( (Symbol, Null_Or Any_Type)) ) | QQ_CONSTRUCTOR Void ->  ((Symbol, Null_Or Any_Type)) | QQ_TYPED_PATTERN Void ->  (Case_Pattern)
 | QQ_PREFIX_PATTERN Void ->  (Case_Pattern) | QQ_SUFFIX_PATTERN Void ->  (Case_Pattern) | QQ_INFIX_PATTERN Void ->  (Case_Pattern) | QQ_APPLY_PATTERN Void ->  (Case_Pattern)
 | QQ_LOOSE_INFIX_PATTERN Void ->  (Case_Pattern) | QQ_BLOCK_DECLARATIONS_AND_EXPRESSIONS Void ->  (List Declaration ) | QQ_BLOCK_CONTENTS Void ->  (Raw_Expression)
 | QQ_BACKQUOTATION_CONTENTS Void ->  (List Raw_Expression ) | QQ_BACKQUOTATION Void ->  (List Raw_Expression ) | QQ_API_ELEMENTS Void ->  (List Api_Element )
 | QQ_API_ELEMENT Void ->  (List Api_Element ) | QQ_API_NAMINGS Void ->  (List Named_Api ) | QQ_ANY_TYPE Void ->  (Any_Type) | QQ_A_PACKAGE Void ->  (Package_Expression)
 | QQ_AN_API Void ->  (Api_Expression);
};
Semantic_Value = values::Semantic_Value;
Result = Declaration;
end;
package error_recovery{
include package lr_table;
infix my 60 @@;
fun x @@ y = y ! x;
is_keyword =
\\ (TERM 18) => TRUE; (TERM 19) => TRUE; (TERM 20) => TRUE; (TERM 21) => TRUE; (TERM 22) => TRUE; (TERM 24) => TRUE; (TERM 41) => TRUE; (TERM 25) => TRUE; (TERM 42) => TRUE; (TERM 26) => TRUE; (TERM 
27) => TRUE; (TERM 28) => TRUE; (TERM 30) => TRUE; (TERM 31) => TRUE; (TERM 32) => TRUE; (TERM 33) => TRUE; (TERM 34) => TRUE; (TERM 35) => TRUE; (TERM 36) => TRUE; (TERM 37) => TRUE; (TERM 38)
 => TRUE; (TERM 45) => TRUE; (TERM 46) => TRUE; (TERM 47) => TRUE; (TERM 55) => TRUE; (TERM 56) => TRUE; (TERM 58) => TRUE; (TERM 59) => TRUE; (TERM 66) => TRUE; (TERM 95) => TRUE; (TERM 97) => TRUE; 
(TERM 107) => TRUE; (TERM 111) => TRUE; (TERM 113) => TRUE; (TERM 114) => TRUE; (TERM 115) => TRUE; (TERM 116) => TRUE; _ => FALSE; end;
my preferred_change:   List( (List( Terminal ), List( Terminal )) ) = 
(NIL
, NIL
 @@ (TERM 55)) ! 
(NIL
, NIL
 @@ (TERM 107)) ! 
(NIL
, NIL
 @@ (TERM 26)) ! 
(NIL
, NIL
 @@ (TERM 33)) ! 
(NIL
, NIL
 @@ (TERM 53)) ! 
(NIL
, NIL
 @@ (TERM 96)) ! 
(NIL
, NIL
 @@ (TERM 102)) ! 
(NIL
 @@ (TERM 41), NIL
 @@ (TERM 43)) ! 
(NIL
 @@ (TERM 43), NIL
 @@ (TERM 41)) ! 
(NIL
 @@ (TERM 18), NIL
 @@ (TERM 19)) ! 
(NIL
 @@ (TERM 102), NIL
 @@ (TERM 100)) ! 
(NIL
 @@ (TERM 100), NIL
 @@ (TERM 102)) ! 
(NIL
, NIL
 @@ (TERM 27) @@ (TERM 5) @@ (TERM 37)) ! 
(NIL
, NIL
 @@ (TERM 5) @@ (TERM 26)) ! 
NIL;
no_shift = 
\\ (TERM 29) => TRUE; _ => FALSE; end;
show_terminal =
\\ (TERM 0) => "ANTIQUOTE_ID"
; (TERM 1) => "CHAR"
; (TERM 2) => "CHUNKL"
; (TERM 3) => "CONSTRUCTOR_ID"
; (TERM 4) => "ENDQ"
; (TERM 5) => "VALUE_ID"
; (TERM 6) => "INT"
; (TERM 7) => "INT0"
; (TERM 8) => "REAL"
; (TERM 9) => "SHEBANG"
; (TERM 10) => "STRING"
; (TERM 11) => "TYPE_ID"
; (TERM 12) => "TYPEVAR_ID"
; (TERM 13) => "UNT"
; (TERM 14) => "TIGHT_INFIX_OP"
; (TERM 15) => "LOOSE_INFIX_OP"
; (TERM 16) => "PREFIX_OP"
; (TERM 17) => "SUFFIX_OP"
; (TERM 18) => "ALSO_T"
; (TERM 19) => "AND_T"
; (TERM 20) => "API_T"
; (TERM 21) => "AS_T"
; (TERM 22) => "BEGIN_T"
; (TERM 23) => "BEGINQ"
; (TERM 24) => "CASE_T"
; (TERM 25) => "DO_T"
; (TERM 26) => "ELSE_T"
; (TERM 27) => "END_T"
; (TERM 28) => "ENUM_T"
; (TERM 29) => "EOF"
; (TERM 30) => "EQTYPE_T"
; (TERM 31) => "EXCEPT_T"
; (TERM 32) => "EXCEPTION_T"
; (TERM 33) => "FI_T"
; (TERM 34) => "FN_T"
; (TERM 35) => "FUN_T"
; (TERM 36) => "IF_T"
; (TERM 37) => "IN_T"
; (TERM 38) => "INCLUDE_T"
; (TERM 39) => "INFIX_ARROW"
; (TERM 40) => "INFIX_BANGBANG"
; (TERM 41) => "INFIX_DARROW"
; (TERM 42) => "INFIX_DOTDOTDOT"
; (TERM 43) => "INFIX_EQUAL"
; (TERM 44) => "INFIX_QMARKQMARK"
; (TERM 45) => "LAZY_T"
; (TERM 46) => "LET_T"
; (TERM 47) => "LOCAL_T"
; (TERM 48) => "LOOSE_INFIX_LVECTOR"
; (TERM 49) => "LOOSE_INFIX_LBRACKET"
; (TERM 50) => "LOOSE_INFIX_RBRACKET"
; (TERM 51) => "LOOSE_INFIX_LBRACE"
; (TERM 52) => "LOOSE_INFIX_RBRACE"
; (TERM 53) => "LPAREN"
; (TERM 54) => "MACRO"
; (TERM 55) => "MY_T"
; (TERM 56) => "OF_T"
; (TERM 57) => "OPAQUE"
; (TERM 58) => "OR_T"
; (TERM 59) => "PACKAGE_T"
; (TERM 60) => "PREFIX_BAR"
; (TERM 61) => "PREFIX_DOT"
; (TERM 62) => "PREFIX_LANGLE"
; (TERM 63) => "PREFIX_LBRACE"
; (TERM 64) => "PREFIX_LBRACKET"
; (TERM 65) => "PREFIX_SLASH"
; (TERM 66) => "RAISE_T"
; (TERM 67) => "RAW_AMPERSAND"
; (TERM 68) => "RAW_UNDERBAR"
; (TERM 69) => "RAW_DOLLAR"
; (TERM 70) => "RAW_SHARP"
; (TERM 71) => "RAW_BANG"
; (TERM 72) => "RAW_TILDA"
; (TERM 73) => "RAW_DASH"
; (TERM 74) => "RAW_PLUS"
; (TERM 75) => "RAW_STAR"
; (TERM 76) => "RAW_SLASH"
; (TERM 77) => "RAW_PERCENT"
; (TERM 78) => "RAW_COLON"
; (TERM 79) => "RAW_LANGLE"
; (TERM 80) => "RAW_RANGLE"
; (TERM 81) => "RAW_LBRACE"
; (TERM 82) => "RAW_RBRACE"
; (TERM 83) => "RAW_LBRACKET"
; (TERM 84) => "RAW_RBRACKET"
; (TERM 85) => "RAW_EQUAL"
; (TERM 86) => "RAW_QUESTION"
; (TERM 87) => "RAW_ATSIGN"
; (TERM 88) => "RAW_CARET"
; (TERM 89) => "RAW_BAR"
; (TERM 90) => "RAW_BACKSLASH"
; (TERM 91) => "RAW_SEMI"
; (TERM 92) => "RAW_DOT"
; (TERM 93) => "RAW_COMMA"
; (TERM 94) => "RAW_WHITESPACE"
; (TERM 95) => "REC_T"
; (TERM 96) => "RPAREN"
; (TERM 97) => "SHARING_T"
; (TERM 98) => "SUFFIX_BAR"
; (TERM 99) => "SUFFIX_COLON"
; (TERM 100) => "SUFFIX_COMMA"
; (TERM 101) => "SUFFIX_DOT"
; (TERM 102) => "SUFFIX_SEMI"
; (TERM 103) => "SUFFIX_RANGLE"
; (TERM 104) => "SUFFIX_RBRACE"
; (TERM 105) => "SUFFIX_RBRACKET"
; (TERM 106) => "SUFFIX_SLASH"
; (TERM 107) => "THEN_T"
; (TERM 108) => "TIGHT_INFIX_COLON"
; (TERM 109) => "TIGHT_INFIX_DOT"
; (TERM 110) => "TRANSPARENT"
; (TERM 111) => "TYPE_T"
; (TERM 112) => "UNDERBAR"
; (TERM 113) => "USE"
; (TERM 114) => "WHERE_T"
; (TERM 115) => "WHILE_T"
; (TERM 116) => "WITH_T"
; (TERM 117) => "XXX"
; (TERM 118) => "YYY"
; (TERM 119) => "ZZZ"
; _ => "bogus-term"; end;
stipulate include package   header; herein
errtermvalue=
\\ (TERM 5) => values::VALUE_ID(\\ () = (raw_symbol (bogus_hash, bogus_string))); 
(TERM 12) => values::TYPEVAR_ID(\\ () = (raw_symbol (quoted_bogus_hash, quoted_bogus_string))); 
(TERM 6) => values::INT(\\ () = (multiword_int::from_int 1)); 
(TERM 7) => values::INT0(\\ () = (multiword_int::from_int 0)); 
(TERM 13) => values::UNT(\\ () = (multiword_int::from_int 0)); 
(TERM 8) => values::REAL(\\ () = ("0.0")); 
(TERM 10) => values::STRING(\\ () = ("")); 
(TERM 1) => values::CHAR(\\ () = ("a")); 
_ => values::TM_VOID;
 end; end;
my terms:  List( Terminal ) = NIL
 @@ (TERM 119) @@ (TERM 118) @@ (TERM 117) @@ (TERM 116) @@ (TERM 115) @@ (TERM 114) @@ (TERM 113) @@ (TERM 112) @@ (TERM 111) @@ (TERM 110) @@ (TERM 109) @@ (TERM 108) @@ (TERM 107) @@ (TERM 106) @@ 
(TERM 105) @@ (TERM 104) @@ (TERM 103) @@ (TERM 102) @@ (TERM 101) @@ (TERM 100) @@ (TERM 99) @@ (TERM 98) @@ (TERM 97) @@ (TERM 96) @@ (TERM 95) @@ (TERM 94) @@ (TERM 93) @@ (TERM 92) @@ (TERM 91)
 @@ (TERM 90) @@ (TERM 89) @@ (TERM 88) @@ (TERM 87) @@ (TERM 86) @@ (TERM 85) @@ (TERM 84) @@ (TERM 83) @@ (TERM 82) @@ (TERM 81) @@ (TERM 80) @@ (TERM 79) @@ (TERM 78) @@ (TERM 77) @@ (TERM 76) @@ 
(TERM 75) @@ (TERM 74) @@ (TERM 73) @@ (TERM 72) @@ (TERM 71) @@ (TERM 70) @@ (TERM 69) @@ (TERM 68) @@ (TERM 67) @@ (TERM 66) @@ (TERM 65) @@ (TERM 64) @@ (TERM 63) @@ (TERM 62) @@ (TERM 61) @@ 
(TERM 60) @@ (TERM 59) @@ (TERM 58) @@ (TERM 57) @@ (TERM 56) @@ (TERM 55) @@ (TERM 54) @@ (TERM 53) @@ (TERM 52) @@ (TERM 51) @@ (TERM 50) @@ (TERM 49) @@ (TERM 48) @@ (TERM 47) @@ (TERM 46) @@ 
(TERM 45) @@ (TERM 44) @@ (TERM 43) @@ (TERM 42) @@ (TERM 41) @@ (TERM 40) @@ (TERM 39) @@ (TERM 38) @@ (TERM 37) @@ (TERM 36) @@ (TERM 35) @@ (TERM 34) @@ (TERM 33) @@ (TERM 32) @@ (TERM 31) @@ 
(TERM 30) @@ (TERM 29) @@ (TERM 28) @@ (TERM 27) @@ (TERM 26) @@ (TERM 25) @@ (TERM 24) @@ (TERM 23) @@ (TERM 22) @@ (TERM 21) @@ (TERM 20) @@ (TERM 19) @@ (TERM 18);
};
package actions {
exception MLY_ACTION Int;
stipulate include package   header; herein
actions = 
\\ (i392, default_position, stack, 
    (error): Arg) = 
case (i392, stack)
  ( 0,  ( ( _,  ( values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS toplevel_package_declarations1,  (toplevel_package_declarationsleft as toplevel_package_declarations1left),  (
toplevel_package_declarationsright as toplevel_package_declarations1right))) !  rest671)) => {  my  result = values::QQ_TOPLEVEL_STATEMENT (\\  _ =  {  my  (toplevel_package_declarations as 
toplevel_package_declarations1) = toplevel_package_declarations1 ();
 (
note_declaration_location (toplevel_package_declarations,
                                                             toplevel_package_declarationsleft,
                                                             toplevel_package_declarationsright)
);
 } );
 ( lr_table::NONTERM 86,  ( result,  toplevel_package_declarations1left,  toplevel_package_declarations1right),  rest671);
 } 
;  ( 1,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_MODULE_DECLARATION module_declaration1,  (module_declarationleft as module_declaration1left),  module_declarationright)) !  rest671
)) => {  my  result = values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS (\\  _ =  {  my  (module_declaration as module_declaration1) = module_declaration1 ();
 (
note_declaration_location (module_declaration, module_declarationleft, module_declarationright));
 } );
 ( lr_table::NONTERM 85,  ( result,  module_declaration1left,  suffix_semi1right),  rest671)
;
 } 
;  ( 2,  ( ( _,  ( values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS toplevel_package_declarations1,  _,  toplevel_package_declarations1right)) !  _ !  ( _,  ( values::QQ_MODULE_DECLARATION module_declaration1
,  (module_declarationleft as module_declaration1left),  module_declarationright)) !  rest671)) => {  my  result = values::QQ_TOPLEVEL_PACKAGE_DECLARATIONS (\\  _ =  {  my  (module_declaration as 
module_declaration1) = module_declaration1 ();
 my  (toplevel_package_declarations as toplevel_package_declarations1) = toplevel_package_declarations1 ();
 (
   make_declaration_sequence (
                                                        note_declaration_location (module_declaration, module_declarationleft, module_declarationright),
                                                        toplevel_package_declarations
                                                )   
);
 } );
 ( lr_table::NONTERM 85,  ( result,  module_declaration1left,  toplevel_package_declarations1right),  rest671);
 } 
;  ( 3,  ( ( _,  ( values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1,  (local_declaration_or_expressionleft as local_declaration_or_expression1left),  (
local_declaration_or_expressionright as local_declaration_or_expression1right))) !  rest671)) => {  my  result = values::QQ_MODULE_DECLARATION (\\  _ =  {  my  (local_declaration_or_expression as 
local_declaration_or_expression1) = local_declaration_or_expression1 ();
 (
note_declaration_location (   local_declaration_or_expression,
                                                                local_declaration_or_expressionleft,
                                                                local_declaration_or_expressionright
                                                )           
);
 } );
 ( lr_table::NONTERM 62,  ( result,  local_declaration_or_expression1left,  local_declaration_or_expression1right),  rest671);
 } 
;  ( 4,  ( ( _,  ( values::QQ_NAMED_PACKAGES named_packages1,  named_packages1left,  named_packages1right)) !  rest671)) => {  my  result = values::QQ_MODULE_DECLARATION (\\  _ =  {  my  (
named_packages as named_packages1) = named_packages1 ();
 (PACKAGE_DECLARATIONS         named_packages           );
 } );
 ( lr_table::NONTERM 62,  ( result,  named_packages1left,  
named_packages1right),  rest671);
 } 
;  ( 5,  ( ( _,  ( values::QQ_API_NAMINGS api_namings1,  api_namings1left,  api_namings1right)) !  rest671)) => {  my  result = values::QQ_MODULE_DECLARATION (\\  _ =  {  my  (api_namings as 
api_namings1) = api_namings1 ();
 (API_DECLARATIONS         api_namings               );
 } );
 ( lr_table::NONTERM 62,  ( result,  api_namings1left,  api_namings1right),  rest671);
 } 
;  ( 6,  ( ( _,  ( values::QQ_GENERIC_NAMINGS generic_namings1,  generic_namings1left,  generic_namings1right)) !  rest671)) => {  my  result = values::QQ_MODULE_DECLARATION (\\  _ =  {  my  (
generic_namings as generic_namings1) = generic_namings1 ();
 (GENERIC_DECLARATIONS           generic_namings     );
 } );
 ( lr_table::NONTERM 62,  ( result,  generic_namings1left,  
generic_namings1right),  rest671);
 } 
;  ( 7,  ( ( _,  ( values::QQ_GENERIC_API_NAMINGS generic_api_namings1,  generic_api_namings1left,  generic_api_namings1right)) !  rest671)) => {  my  result = values::QQ_MODULE_DECLARATION (\\  _ = 
 {  my  (generic_api_namings as generic_api_namings1) = generic_api_namings1 ();
 (GENERIC_API_DECLARATIONS generic_api_namings );
 } );
 ( lr_table::NONTERM 62,  ( result,  generic_api_namings1left, 
 generic_api_namings1right),  rest671);
 } 
;  ( 8,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS optional_local_package_declarations2,  optional_local_package_declarations2left,  
optional_local_package_declarations2right)) !  _ !  ( _,  ( values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS optional_local_package_declarations1,  optional_local_package_declarations1left,  
optional_local_package_declarations1right)) !  ( _,  ( _,  local_t1left,  _)) !  rest671)) => {  my  result = values::QQ_MODULE_DECLARATION (\\  _ =  {  my  optional_local_package_declarations1 = 
optional_local_package_declarations1 ();
 my  optional_local_package_declarations2 = optional_local_package_declarations2 ();
 (
   LOCAL_DECLARATIONS (
                                                        note_declaration_location (   optional_local_package_declarations1,
                                                                       optional_local_package_declarations1left,
                                                                       optional_local_package_declarations1right
                                                                   ),
                                                        note_declaration_location (   optional_local_package_declarations2,
                                                                       optional_local_package_declarations2left,
                                                                       optional_local_package_declarations2right
                                                                   )
                                                )   
);
 } );
 ( lr_table::NONTERM 62,  ( result,  local_t1left,  end_t1right),  rest671);
 } 
;  ( 9,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS (\\  _ =  (SEQUENTIAL_DECLARATIONS []));
 ( lr_table::NONTERM 58,  ( result,  default_position,  default_position
),  rest671);
 } 
;  ( 10,  ( ( _,  ( values::QQ_LOCAL_PACKAGE_DECLARATIONS local_package_declarations1,  local_package_declarations1left,  local_package_declarations1right)) !  rest671)) => {  my  result = 
values::QQ_OPTIONAL_LOCAL_PACKAGE_DECLARATIONS (\\  _ =  {  my  (local_package_declarations as local_package_declarations1) = local_package_declarations1 ();
 (local_package_declarations);
 } );
 ( 
lr_table::NONTERM 58,  ( result,  local_package_declarations1left,  local_package_declarations1right),  rest671);
 } 
;  ( 11,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_MODULE_DECLARATION module_declaration1,  module_declaration1left,  _)) !  rest671)) => {  my  result = 
values::QQ_LOCAL_PACKAGE_DECLARATIONS (\\  _ =  {  my  (module_declaration as module_declaration1) = module_declaration1 ();
 (module_declaration);
 } );
 ( lr_table::NONTERM 52,  ( result,  
module_declaration1left,  suffix_semi1right),  rest671);
 } 
;  ( 12,  ( ( _,  ( values::QQ_LOCAL_PACKAGE_DECLARATIONS local_package_declarations1,  _,  local_package_declarations1right)) !  _ !  ( _,  ( values::QQ_MODULE_DECLARATION module_declaration1,  (
module_declarationleft as module_declaration1left),  module_declarationright)) !  rest671)) => {  my  result = values::QQ_LOCAL_PACKAGE_DECLARATIONS (\\  _ =  {  my  (module_declaration as 
module_declaration1) = module_declaration1 ();
 my  (local_package_declarations as local_package_declarations1) = local_package_declarations1 ();
 (
   make_declaration_sequence (
                                                        note_declaration_location (
                                                            module_declaration,
                                                            module_declarationleft,
                                                            module_declarationright
                                                        ),
                                                        local_package_declarations
                                                )   
);
 } );
 ( lr_table::NONTERM 52,  ( result,  module_declaration1left,  local_package_declarations1right),  rest671);
 } 
;  ( 13,  ( ( _,  ( values::QQ_LOOSE_INFIX_EXPRESSION loose_infix_expression1,  loose_infix_expression1left,  loose_infix_expression1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION (\\ 
 _ =  {  my  (loose_infix_expression as loose_infix_expression1) = loose_infix_expression1 ();
 (loose_infix_expression);
 } );
 ( lr_table::NONTERM 31,  ( result,  loose_infix_expression1left,  
loose_infix_expression1right),  rest671);
 } 
;  ( 14,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_PATTERN_MATCH pattern_match1,  _,  _)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  expression1left,  _)) !  rest671)) => {  my  
result = values::QQ_EXPRESSION (\\  _ =  {  my  (expression as expression1) = expression1 ();
 my  (pattern_match as pattern_match1) = pattern_match1 ();
 (
EXCEPT_EXPRESSION { expression, rules=>pattern_match } );
 } );
 ( lr_table::NONTERM 31,  ( result,  expression1left,  end_t1right),  rest671);
 } 
;  ( 15,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  _ !  ( _,  ( values::QQ_LOOSE_INFIX_EXPRESSION loose_infix_expression1,  loose_infix_expression1left,  _)) !  rest671)) =>
 {  my  result = values::QQ_EXPRESSION (\\  _ =  {  my  (loose_infix_expression as loose_infix_expression1) = loose_infix_expression1 ();
 my  (any_type as any_type1) = any_type1 ();
 (
TYPE_CONSTRAINT_EXPRESSION { expression=>loose_infix_expression, constraint=>any_type } );
 } );
 ( lr_table::NONTERM 31,  ( result,  loose_infix_expression1left,  any_type1right),  rest671);
 } 
;  ( 16,  ( ( _,  ( values::QQ_EXPRESSION expression2,  expression2left,  expression2right)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  expression1left,  expression1right)) !  rest671)) => { 
 my  result = values::QQ_EXPRESSION (\\  _ =  {  my  expression1 = expression1 ();
 my  expression2 = expression2 ();
 (
OR_EXPRESSION (
                                                    note_expression_location (expression1, expression1left, expression1right),
                                                    note_expression_location (expression2, expression2left, expression2right)
                                                ) 
);
 } );
 ( lr_table::NONTERM 31,  ( result,  expression1left,  expression2right),  rest671);
 } 
;  ( 17,  ( ( _,  ( values::QQ_EXPRESSION expression2,  expression2left,  expression2right)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  expression1left,  expression1right)) !  rest671)) => { 
 my  result = values::QQ_EXPRESSION (\\  _ =  {  my  expression1 = expression1 ();
 my  expression2 = expression2 ();
 (
AND_EXPRESSION (
                                                    note_expression_location (expression1, expression1left, expression1right),
                                                    note_expression_location (expression2, expression2left, expression2right)
                                                ) 
);
 } );
 ( lr_table::NONTERM 31,  ( result,  expression1left,  expression2right),  rest671);
 } 
;  ( 18,  ( ( _,  ( _,  _,  (end_tright as end_t1right))) !  ( _,  ( values::QQ_PATTERN_MATCH pattern_match1,  _,  _)) !  ( _,  ( _,  (fn_tleft as fn_t1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION (\\  _ =  {  my  (pattern_match as pattern_match1) = pattern_match1 ();
 (note_expression_location (FN_EXPRESSION pattern_match, fn_tleft, end_tright));
 } );
 ( 
lr_table::NONTERM 31,  ( result,  fn_t1left,  end_t1right),  rest671);
 } 
;  ( 19,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_PATTERN_MATCH pattern_match1,  _,  pattern_matchright)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  _,  _)) !  ( _,  ( _,  (
case_tleft as case_t1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION (\\  _ =  {  my  (expression as expression1) = expression1 ();
 my  (pattern_match as pattern_match1) = 
pattern_match1 ();
 (note_expression_location (
                                                    CASE_EXPRESSION { expression, rules=>pattern_match },
                                                    case_tleft, pattern_matchright
                                                ) )
;
 } );
 ( lr_table::NONTERM 31,  ( result,  case_t1left,  end_t1right),  rest671);
 } 
;  ( 20,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_BLOCK_CONTENTS block_contents1,  block_contentsleft,  block_contentsright)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  
expressionleft,  expressionright)) !  ( _,  ( _,  while_t1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION (\\  _ =  {  my  (expression as expression1) = expression1 ();
 my  (
block_contents as block_contents1) = block_contents1 ();
 (
WHILE_EXPRESSION
                                                    {   test       => note_expression_location (expression,     expressionleft,     expressionright    ),
                                                        expression => note_expression_location (block_contents, block_contentsleft, block_contentsright)
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 31,  ( result,  while_t1left,  end_t1right),  rest671);
 } 
;  ( 21,  ( ( _,  ( _,  _,  (end_tright as end_t1right))) !  ( _,  ( values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS optional_local_declarations_and_expressions1,  
optional_local_declarations_and_expressionsleft,  optional_local_declarations_and_expressionsright)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  (expressionleft as expression1left),  
expressionright)) !  rest671)) => {  my  result = values::QQ_EXPRESSION (\\  _ =  {  my  (expression as expression1) = expression1 ();
 my  (optional_local_declarations_and_expressions as 
optional_local_declarations_and_expressions1) = optional_local_declarations_and_expressions1 ();
 (
note_expression_location (
                                                    LET_EXPRESSION {
                                                        declaration => note_declaration_location (optional_local_declarations_and_expressions,
                                                                                  optional_local_declarations_and_expressionsleft,
                                                                                  optional_local_declarations_and_expressionsright),
                                                        expression  => note_expression_location (expression, expressionleft, expressionright)
                                                    },
                                                    expressionleft, end_tright
                                                ) 
);
 } );
 ( lr_table::NONTERM 31,  ( result,  expression1left,  end_t1right),  rest671);
 } 
;  ( 22,  ( ( _,  ( _,  _,  fi_t1right)) !  ( _,  ( values::QQ_BLOCK_CONTENTS block_contents2,  block_contents2left,  block_contents2right)) !  _ !  ( _,  ( values::QQ_BLOCK_CONTENTS block_contents1, 
 block_contents1left,  block_contents1right)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  _,  _)) !  ( _,  ( _,  if_t1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION (\\  _ = 
 {  my  expression1 = expression1 ();
 my  block_contents1 = block_contents1 ();
 my  block_contents2 = block_contents2 ();
 (
IF_EXPRESSION
                                                    { test_case => expression1,
                                                      then_case => note_expression_location (block_contents1, block_contents1left, block_contents1right),
                                                      else_case => note_expression_location (block_contents2, block_contents2left, block_contents2right)
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 31,  ( result,  if_t1left,  fi_t1right),  rest671);
 } 
;  ( 23,  ( ( _,  ( values::QQ_EXPRESSION expression3,  expression3left,  expression3right)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression2,  expression2left,  expression2right)) !  _ !  ( _,  ( 
values::QQ_EXPRESSION expression1,  expression1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION (\\  _ =  {  my  expression1 = expression1 ();
 my  expression2 = expression2 ();
 my  
expression3 = expression3 ();
 (
IF_EXPRESSION
                                                    { test_case => expression1,
                                                      then_case => note_expression_location (expression2, expression2left, expression2right),
                                                      else_case => note_expression_location (expression3, expression3left, expression3right)
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 31,  ( result,  expression1left,  expression3right),  rest671);
 } 
;  ( 24,  ( ( _,  ( values::QQ_EXPRESSION expression1,  expressionleft,  (expressionright as expression1right))) !  ( _,  ( _,  (raise_tleft as raise_t1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION (\\  _ =  {  my  (expression as expression1) = expression1 ();
 (
note_expression_location (
                                                    note_expression_location (RAISE_EXPRESSION expression, expressionleft, expressionright),
                                                    raise_tleft, expressionright
                                                ) );
 } );
 ( 
lr_table::NONTERM 31,  ( result,  raise_t1left,  expression1right),  rest671);
 } 
;  ( 25,  ( ( _,  ( values::QQ_APPLY_EXPRESSION apply_expression1,  apply_expression1left,  apply_expression1right)) !  rest671)) => {  my  result = values::QQ_LOOSE_INFIX_EXPRESSION (\\  _ =  {  my 
 (apply_expression as apply_expression1) = apply_expression1 ();
 (apply_expression);
 } );
 ( lr_table::NONTERM 100,  ( result,  apply_expression1left,  apply_expression1right),  rest671);
 } 
;  ( 26,  ( ( _,  ( values::QQ_APPLY_EXPRESSION apply_expression1,  _,  apply_expression1right)) !  ( _,  ( values::LOOSE_INFIX_OP loose_infix_op1,  _,  _)) !  ( _,  ( 
values::QQ_LOOSE_INFIX_EXPRESSION loose_infix_expression1,  loose_infix_expression1left,  _)) !  rest671)) => {  my  result = values::QQ_LOOSE_INFIX_EXPRESSION (\\  _ =  {  my  (loose_infix_expression
 as loose_infix_expression1) = loose_infix_expression1 ();
 my  (loose_infix_op as loose_infix_op1) = loose_infix_op1 ();
 my  (apply_expression as apply_expression1) = apply_expression1 ();
 (
APPLY_EXPRESSION { function =>  VARIABLE_IN_EXPRESSION [make_value_symbol loose_infix_op],
                                                                    argument =>  TUPLE_EXPRESSION [loose_infix_expression, apply_expression]
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 100,  ( result,  loose_infix_expression1left,  apply_expression1right),  rest671);
 } 
;  ( 27,  ( ( _,  ( values::QQ_INFIX_EXPRESSION infix_expression1,  infix_expression1left,  infix_expression1right)) !  rest671)) => {  my  result = values::QQ_APPLY_EXPRESSION (\\  _ =  {  my  (
infix_expression as infix_expression1) = infix_expression1 ();
 (infix_expression);
 } );
 ( lr_table::NONTERM 99,  ( result,  infix_expression1left,  infix_expression1right),  rest671);
 } 
;  ( 28,  ( ( _,  ( values::QQ_INFIX_EXPRESSION infix_expression1,  _,  infix_expression1right)) !  ( _,  ( values::QQ_APPLY_EXPRESSION apply_expression1,  apply_expression1left,  _)) !  rest671)) =>
 {  my  result = values::QQ_APPLY_EXPRESSION (\\  _ =  {  my  (apply_expression as apply_expression1) = apply_expression1 ();
 my  (infix_expression as infix_expression1) = infix_expression1 ();
 (
APPLY_EXPRESSION { function =>  apply_expression,
                                                                    argument =>  infix_expression
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 99,  ( result,  apply_expression1left,  infix_expression1right),  rest671);
 } 
;  ( 29,  ( ( _,  ( values::QQ_SUFFIX_EXPRESSION suffix_expression1,  suffix_expression1left,  suffix_expression1right)) !  rest671)) => {  my  result = values::QQ_INFIX_EXPRESSION (\\  _ =  {  my  (
suffix_expression as suffix_expression1) = suffix_expression1 ();
 (suffix_expression);
 } );
 ( lr_table::NONTERM 98,  ( result,  suffix_expression1left,  suffix_expression1right),  rest671);
 } 
;  ( 30,  ( ( _,  ( values::QQ_SUFFIX_EXPRESSION suffix_expression1,  _,  suffix_expression1right)) !  ( _,  ( values::TIGHT_INFIX_OP tight_infix_op1,  _,  _)) !  ( _,  ( values::QQ_INFIX_EXPRESSION 
infix_expression1,  infix_expression1left,  _)) !  rest671)) => {  my  result = values::QQ_INFIX_EXPRESSION (\\  _ =  {  my  (infix_expression as infix_expression1) = infix_expression1 ();
 my  (
tight_infix_op as tight_infix_op1) = tight_infix_op1 ();
 my  (suffix_expression as suffix_expression1) = suffix_expression1 ();
 (
APPLY_EXPRESSION { function =>  VARIABLE_IN_EXPRESSION [make_value_symbol tight_infix_op],
                                                                    argument =>  TUPLE_EXPRESSION [infix_expression, suffix_expression]
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 98,  ( result,  infix_expression1left,  suffix_expression1right),  rest671);
 } 
;  ( 31,  ( ( _,  ( values::QQ_PREFIX_EXPRESSION prefix_expression1,  prefix_expression1left,  prefix_expression1right)) !  rest671)) => {  my  result = values::QQ_SUFFIX_EXPRESSION (\\  _ =  {  my  (
prefix_expression as prefix_expression1) = prefix_expression1 ();
 (prefix_expression);
 } );
 ( lr_table::NONTERM 96,  ( result,  prefix_expression1left,  prefix_expression1right),  rest671);
 } 
;  ( 32,  ( ( _,  ( values::SUFFIX_OP suffix_op1,  _,  suffix_op1right)) !  ( _,  ( values::QQ_SUFFIX_EXPRESSION suffix_expression1,  suffix_expression1left,  _)) !  rest671)) => {  my  result = 
values::QQ_SUFFIX_EXPRESSION (\\  _ =  {  my  (suffix_expression as suffix_expression1) = suffix_expression1 ();
 my  (suffix_op as suffix_op1) = suffix_op1 ();
 (
APPLY_EXPRESSION { function =>  VARIABLE_IN_EXPRESSION [make_value_symbol suffix_op],
                                                                    argument =>  suffix_expression
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 96,  ( result,  suffix_expression1left,  suffix_op1right),  rest671);
 } 
;  ( 33,  ( ( _,  ( values::QQ_TYPED_EXPRESSION typed_expression1,  typed_expression1left,  typed_expression1right)) !  rest671)) => {  my  result = values::QQ_PREFIX_EXPRESSION (\\  _ =  {  my  (
typed_expression as typed_expression1) = typed_expression1 ();
 (typed_expression);
 } );
 ( lr_table::NONTERM 97,  ( result,  typed_expression1left,  typed_expression1right),  rest671);
 } 
;  ( 34,  ( ( _,  ( values::QQ_PREFIX_EXPRESSION prefix_expression1,  _,  prefix_expression1right)) !  ( _,  ( values::PREFIX_OP prefix_op1,  prefix_op1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PREFIX_EXPRESSION (\\  _ =  {  my  (prefix_op as prefix_op1) = prefix_op1 ();
 my  (prefix_expression as prefix_expression1) = prefix_expression1 ();
 (
APPLY_EXPRESSION { function =>  VARIABLE_IN_EXPRESSION [make_value_symbol prefix_op],
                                                                    argument =>  prefix_expression
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 97,  ( result,  prefix_op1left,  prefix_expression1right),  rest671);
 } 
;  ( 35,  ( ( _,  ( values::QQ_EXPRESSION_ELEMENT expression_element1,  expression_element1left,  expression_element1right)) !  rest671)) => {  my  result = values::QQ_TYPED_EXPRESSION (\\  _ =  { 
 my  (expression_element as expression_element1) = expression_element1 ();
 (expression_element);
 } );
 ( lr_table::NONTERM 95,  ( result,  expression_element1left,  expression_element1right),  
rest671);
 } 
;  ( 36,  ( ( _,  ( values::QQ_EXPRESSION_ELEMENT expression_element1,  _,  expression_element1right)) !  ( _,  ( values::TYPE_ID type_id1,  type_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TYPED_EXPRESSION (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 my  (expression_element as expression_element1) = expression_element1 ();
 (
TYPE_CONSTRAINT_EXPRESSION { expression=>expression_element, constraint=>TYPE_TYPE ([make_type_symbol type_id], []) } );
 } );
 ( lr_table::NONTERM 95,  ( result,  type_id1left,  
expression_element1right),  rest671);
 } 
;  ( 37,  ( ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (value_id as value_id1) = value_id1
 ();
 (VARIABLE_IN_EXPRESSION ([ make_value_symbol value_id ] ));
 } );
 ( lr_table::NONTERM 81,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 38,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_BLOCK_CONTENTS block_contents1,  _,  _)) !  ( _,  ( _,  begin_t1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT
 (\\  _ =  {  my  (block_contents as block_contents1) = block_contents1 ();
 (block_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  begin_t1left,  end_t1right),  rest671);
 } 
;  ( 39,  ( ( _,  ( values::UNT unt1,  unt1left,  unt1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (unt as unt1) = unt1 ();
 (UNT_CONSTANT_IN_EXPRESSION unt)
;
 } );
 ( lr_table::NONTERM 81,  ( result,  unt1left,  unt1right),  rest671);
 } 
;  ( 40,  ( ( _,  ( values::REAL real1,  real1left,  real1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (real as real1) = real1 ();
 (
FLOAT_CONSTANT_IN_EXPRESSION real);
 } );
 ( lr_table::NONTERM 81,  ( result,  real1left,  real1right),  rest671);
 } 
;  ( 41,  ( ( _,  ( values::STRING string1,  string1left,  string1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (string as string1) = string1 ();
 (
STRING_CONSTANT_IN_EXPRESSION string);
 } );
 ( lr_table::NONTERM 81,  ( result,  string1left,  string1right),  rest671);
 } 
;  ( 42,  ( ( _,  ( values::CHAR char1,  char1left,  char1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (char as char1) = char1 ();
 (
CHAR_CONSTANT_IN_EXPRESSION char);
 } );
 ( lr_table::NONTERM 81,  ( result,  char1left,  char1right),  rest671);
 } 
;  ( 43,  ( ( _,  ( values::QQ_INT int1,  int1left,  int1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (int as int1) = int1 ();
 (
INT_CONSTANT_IN_EXPRESSION int);
 } );
 ( lr_table::NONTERM 81,  ( result,  int1left,  int1right),  rest671);
 } 
;  ( 44,  ( ( _,  ( values::CONSTRUCTOR_ID constructor_id1,  constructor_id1left,  constructor_id1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (constructor_id
 as constructor_id1) = constructor_id1 ();
 (VARIABLE_IN_EXPRESSION ([ make_value_symbol constructor_id ] ));
 } );
 ( lr_table::NONTERM 81,  ( result,  constructor_id1left,  constructor_id1right),  
rest671);
 } 
;  ( 45,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  _,  qualified_value_id1right)) !  _ !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result
 = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 (
VARIABLE_IN_EXPRESSION (make_package_symbol value_id   !   qualified_value_id make_value_symbol));
 } );
 ( lr_table::NONTERM 81,  ( result,  value_id1left,  qualified_value_id1right),  rest671);
 } 
;  ( 46,  ( ( _,  ( values::QQ_QUALIFIED_CONSTRUCTOR_ID qualified_constructor_id1,  _,  qualified_constructor_id1right)) !  _ !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  _)) !  rest671)
) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (qualified_constructor_id as qualified_constructor_id1) = qualified_constructor_id1 ()
;
 (VARIABLE_IN_EXPRESSION (make_package_symbol value_id   !   qualified_constructor_id make_value_symbol));
 } );
 ( lr_table::NONTERM 81,  ( result,  value_id1left,  qualified_constructor_id1right)
,  rest671);
 } 
;  ( 47,  ( ( _,  ( values::QQ_SELECTOR selector1,  _,  (selectorright as selector1right))) !  ( _,  ( _,  (prefix_dotleft as prefix_dot1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (selector as selector1) = selector1 ();
 (note_expression_location (RECORD_SELECTOR_EXPRESSION selector, prefix_dotleft, selectorright));
 } );
 ( 
lr_table::NONTERM 81,  ( result,  prefix_dot1left,  selector1right),  rest671);
 } 
;  ( 48,  ( ( _,  ( _,  _,  loose_infix_rbrace1right)) !  ( _,  ( _,  loose_infix_lbrace1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  (RECORD_IN_EXPRESSION NIL))
;
 ( lr_table::NONTERM 81,  ( result,  loose_infix_lbrace1left,  loose_infix_rbrace1right),  rest671);
 } 
;  ( 49,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( _,  loose_infix_lbracket1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  (LIST_EXPRESSION     NIL
));
 ( lr_table::NONTERM 81,  ( result,  loose_infix_lbracket1left,  loose_infix_rbracket1right),  rest671);
 } 
;  ( 50,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  (void_expression));
 ( lr_table::NONTERM 81,  ( 
result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 51,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( _,  loose_infix_lvector1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  (
VECTOR_IN_EXPRESSION   NIL));
 ( lr_table::NONTERM 81,  ( result,  loose_infix_lvector1left,  loose_infix_rbracket1right),  rest671);
 } 
;  ( 52,  ( ( _,  ( _,  _,  (loose_infix_rbraceright as loose_infix_rbrace1right))) !  ( _,  ( values::QQ_RECORD_CONTENTS record_contents1,  _,  _)) !  ( _,  ( _,  (loose_infix_lbraceleft as 
loose_infix_lbrace1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (record_contents as record_contents1) = record_contents1 ();
 (
note_expression_location (RECORD_IN_EXPRESSION record_contents, loose_infix_lbraceleft, loose_infix_rbraceright));
 } );
 ( lr_table::NONTERM 81,  ( result,  loose_infix_lbrace1left,  
loose_infix_rbrace1right),  rest671);
 } 
;  ( 53,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_EXPRESSION expression1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _
 =  {  my  (expression as expression1) = expression1 ();
 (expression);
 } );
 ( lr_table::NONTERM 81,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 54,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_TUPLE_CONTENTS tuple_contents1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT
 (\\  _ =  {  my  (tuple_contents as tuple_contents1) = tuple_contents1 ();
 (TUPLE_EXPRESSION    tuple_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  lparen1left,  rparen1right),  rest671)
;
 } 
;  ( 55,  ( ( _,  ( _,  _,  suffix_slash1right)) !  ( _,  ( values::QQ_TUPLE_CONTENTS tuple_contents1,  _,  _)) !  ( _,  ( _,  prefix_slash1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (tuple_contents as tuple_contents1) = tuple_contents1 ();
 (TUPLE_EXPRESSION    tuple_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  
prefix_slash1left,  suffix_slash1right),  rest671);
 } 
;  ( 56,  ( ( _,  ( _,  _,  suffix_bar1right)) !  ( _,  ( values::QQ_TUPLE_CONTENTS tuple_contents1,  _,  _)) !  ( _,  ( _,  prefix_bar1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (tuple_contents as tuple_contents1) = tuple_contents1 ();
 (TUPLE_EXPRESSION    tuple_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  
prefix_bar1left,  suffix_bar1right),  rest671);
 } 
;  ( 57,  ( ( _,  ( _,  _,  suffix_rangle1right)) !  ( _,  ( values::QQ_TUPLE_CONTENTS tuple_contents1,  _,  _)) !  ( _,  ( _,  prefix_langle1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (tuple_contents as tuple_contents1) = tuple_contents1 ();
 (TUPLE_EXPRESSION    tuple_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  
prefix_langle1left,  suffix_rangle1right),  rest671);
 } 
;  ( 58,  ( ( _,  ( _,  _,  suffix_rbrace1right)) !  ( _,  ( values::QQ_TUPLE_CONTENTS tuple_contents1,  _,  _)) !  ( _,  ( _,  prefix_lbrace1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (tuple_contents as tuple_contents1) = tuple_contents1 ();
 (TUPLE_EXPRESSION    tuple_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  
prefix_lbrace1left,  suffix_rbrace1right),  rest671);
 } 
;  ( 59,  ( ( _,  ( _,  _,  suffix_rbracket1right)) !  ( _,  ( values::QQ_TUPLE_CONTENTS tuple_contents1,  _,  _)) !  ( _,  ( _,  prefix_lbracket1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (tuple_contents as tuple_contents1) = tuple_contents1 ();
 (TUPLE_EXPRESSION    tuple_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  
prefix_lbracket1left,  suffix_rbracket1right),  rest671);
 } 
;  ( 60,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( values::QQ_LIST_CONTENTS list_contents1,  _,  _)) !  ( _,  ( _,  loose_infix_lbracket1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (list_contents as list_contents1) = list_contents1 ();
 (LIST_EXPRESSION     list_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  
loose_infix_lbracket1left,  loose_infix_rbracket1right),  rest671);
 } 
;  ( 61,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( values::QQ_LIST_CONTENTS list_contents1,  _,  _)) !  ( _,  ( _,  loose_infix_lvector1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (list_contents as list_contents1) = list_contents1 ();
 (VECTOR_IN_EXPRESSION   list_contents);
 } );
 ( lr_table::NONTERM 81,  ( result,  
loose_infix_lvector1left,  loose_infix_rbracket1right),  rest671);
 } 
;  ( 62,  ( ( _,  ( values::ANTIQUOTE_ID antiquote_id1,  antiquote_id1left,  antiquote_id1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (antiquote_id as 
antiquote_id1) = antiquote_id1 ();
 (VARIABLE_IN_EXPRESSION ( [ make_value_symbol antiquote_id ] ) );
 } );
 ( lr_table::NONTERM 81,  ( result,  antiquote_id1left,  antiquote_id1right),  rest671);
 } 
;  ( 63,  ( ( _,  ( values::QQ_BACKQUOTATION backquotation1,  backquotation1left,  backquotation1right)) !  rest671)) => {  my  result = values::QQ_EXPRESSION_ELEMENT (\\  _ =  {  my  (backquotation
 as backquotation1) = backquotation1 ();
 (LIST_EXPRESSION backquotation);
 } );
 ( lr_table::NONTERM 81,  ( result,  backquotation1left,  backquotation1right),  rest671);
 } 
;  ( 64,  ( ( _,  ( values::INT int1,  int1left,  int1right)) !  rest671)) => {  my  result = values::QQ_INT (\\  _ =  {  my  (int as int1) = int1 ();
 (int);
 } );
 ( lr_table::NONTERM 46,  ( result
,  int1left,  int1right),  rest671);
 } 
;  ( 65,  ( ( _,  ( values::INT0 int01,  int01left,  int01right)) !  rest671)) => {  my  result = values::QQ_INT (\\  _ =  {  my  (int0 as int01) = int01 ();
 (int0);
 } );
 ( lr_table::NONTERM 46,  (
 result,  int01left,  int01right),  rest671);
 } 
;  ( 66,  ( ( _,  ( values::VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_VALUE_ID (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 (
value_id);
 } );
 ( lr_table::NONTERM 44,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 67,  ( ( _,  ( _,  api_t1left,  api_t1right)) !  rest671)) => {  my  result = values::QQ_VALUE_ID (\\  _ =  (raw_symbol (        api_hash,         api_string)));
 ( lr_table::NONTERM 44,  ( 
result,  api_t1left,  api_t1right),  rest671);
 } 
;  ( 68,  ( ( _,  ( _,  macro1left,  macro1right)) !  rest671)) => {  my  result = values::QQ_VALUE_ID (\\  _ =  (raw_symbol (      macro_hash,       macro_string)));
 ( lr_table::NONTERM 44,  ( 
result,  macro1left,  macro1right),  rest671);
 } 
;  ( 69,  ( ( _,  ( _,  opaque1left,  opaque1right)) !  rest671)) => {  my  result = values::QQ_VALUE_ID (\\  _ =  (raw_symbol (     opaque_hash,      opaque_string)));
 ( lr_table::NONTERM 44,  ( 
result,  opaque1left,  opaque1right),  rest671);
 } 
;  ( 70,  ( ( _,  ( _,  package_t1left,  package_t1right)) !  rest671)) => {  my  result = values::QQ_VALUE_ID (\\  _ =  (raw_symbol (    package_hash,     package_string)));
 ( lr_table::NONTERM 44, 
 ( result,  package_t1left,  package_t1right),  rest671);
 } 
;  ( 71,  ( ( _,  ( _,  transparent1left,  transparent1right)) !  rest671)) => {  my  result = values::QQ_VALUE_ID (\\  _ =  (raw_symbol (transparent_hash, transparent_string)));
 ( lr_table::NONTERM 
44,  ( result,  transparent1left,  transparent1right),  rest671);
 } 
;  ( 72,  ( ( _,  ( values::CONSTRUCTOR_ID constructor_id1,  constructor_id1left,  constructor_id1right)) !  rest671)) => {  my  result = values::QQ_QUALIFIED_CONSTRUCTOR_ID (\\  _ =  {  my  (
constructor_id as constructor_id1) = constructor_id1 ();
 (\\ kind = [kind constructor_id]);
 } );
 ( lr_table::NONTERM 22,  ( result,  constructor_id1left,  constructor_id1right),  rest671);
 } 
;  ( 73,  ( ( _,  ( values::QQ_QUALIFIED_CONSTRUCTOR_ID qualified_constructor_id1,  _,  qualified_constructor_id1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671))
 => {  my  result = values::QQ_QUALIFIED_CONSTRUCTOR_ID (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (qualified_constructor_id as qualified_constructor_id1) = 
qualified_constructor_id1 ();
 (\\ kind = make_package_symbol value_id   !   qualified_constructor_id kind);
 } );
 ( lr_table::NONTERM 22,  ( result,  value_id1left,  qualified_constructor_id1right)
,  rest671);
 } 
;  ( 74,  ( ( _,  ( values::TYPE_ID type_id1,  type_id1left,  type_id1right)) !  rest671)) => {  my  result = values::QQ_QUALIFIED_TYPE_ID (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 (
\\ kind = [kind type_id]);
 } );
 ( lr_table::NONTERM 23,  ( result,  type_id1left,  type_id1right),  rest671);
 } 
;  ( 75,  ( ( _,  ( values::QQ_QUALIFIED_TYPE_ID qualified_type_id1,  _,  qualified_type_id1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_QUALIFIED_TYPE_ID (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (qualified_type_id as qualified_type_id1) = qualified_type_id1 ();
 (
\\ kind = make_package_symbol value_id   !   qualified_type_id kind);
 } );
 ( lr_table::NONTERM 23,  ( result,  value_id1left,  qualified_type_id1right),  rest671);
 } 
;  ( 76,  ( ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_QUALIFIED_VALUE_ID (\\  _ =  {  my  (value_id as value_id1) = value_id1
 ();
 (\\ kind = [kind value_id]);
 } );
 ( lr_table::NONTERM 24,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 77,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  _,  qualified_value_id1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_QUALIFIED_VALUE_ID (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 (
\\ kind = make_package_symbol value_id   !   qualified_value_id kind);
 } );
 ( lr_table::NONTERM 24,  ( result,  value_id1left,  qualified_value_id1right),  rest671);
 } 
;  ( 78,  ( ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_SELECTOR (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 (
make_label_symbol value_id);
 } );
 ( lr_table::NONTERM 78,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 79,  ( ( _,  ( values::INT int1,  int1left,  int1right)) !  rest671)) => {  my  result = values::QQ_SELECTOR (\\  _ =  {  my  (int as int1) = int1 ();
 (
symbol::make_label_symbol (multiword_int::to_string int));
 } );
 ( lr_table::NONTERM 78,  ( result,  int1left,  int1right),  rest671);
 } 
;  ( 80,  ( ( _,  ( values::VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_ID (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 (value_id)
;
 } );
 ( lr_table::NONTERM 43,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 81,  ( ( _,  ( values::QQ_TUPLE_CONTENTS tuple_contents1,  _,  tuple_contents1right)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  expression1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TUPLE_CONTENTS (\\  _ =  {  my  (expression as expression1) = expression1 ();
 my  (tuple_contents as tuple_contents1) = tuple_contents1 ();
 (expression ! tuple_contents);
 } );
 ( 
lr_table::NONTERM 87,  ( result,  expression1left,  tuple_contents1right),  rest671);
 } 
;  ( 82,  ( ( _,  ( values::QQ_EXPRESSION expression2,  _,  expression2right)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  expression1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TUPLE_CONTENTS (\\  _ =  {  my  expression1 = expression1 ();
 my  expression2 = expression2 ();
 ( [ expression1, expression2 ] );
 } );
 ( lr_table::NONTERM 87,  ( result,  
expression1left,  expression2right),  rest671);
 } 
;  ( 83,  ( ( _,  ( values::QQ_RECORD_CONTENTS record_contents1,  _,  record_contents1right)) !  _ !  ( _,  ( values::QQ_RECORD_ELEMENT record_element1,  record_element1left,  _)) !  rest671)) => { 
 my  result = values::QQ_RECORD_CONTENTS (\\  _ =  {  my  (record_element as record_element1) = record_element1 ();
 my  (record_contents as record_contents1) = record_contents1 ();
 (
record_element ! record_contents);
 } );
 ( lr_table::NONTERM 72,  ( result,  record_element1left,  record_contents1right),  rest671);
 } 
;  ( 84,  ( ( _,  ( values::QQ_RECORD_ELEMENT record_element1,  record_element1left,  record_element1right)) !  rest671)) => {  my  result = values::QQ_RECORD_CONTENTS (\\  _ =  {  my  (record_element
 as record_element1) = record_element1 ();
 ([ record_element ]);
 } );
 ( lr_table::NONTERM 72,  ( result,  record_element1left,  record_element1right),  rest671);
 } 
;  ( 85,  ( ( _,  ( values::QQ_EXPRESSION expression1,  _,  expression1right)) !  _ !  ( _,  ( values::QQ_SELECTOR selector1,  selector1left,  _)) !  rest671)) => {  my  result = 
values::QQ_RECORD_ELEMENT (\\  _ =  {  my  (selector as selector1) = selector1 ();
 my  (expression as expression1) = expression1 ();
 (selector, expression);
 } );
 ( lr_table::NONTERM 73,  ( result
,  selector1left,  expression1right),  rest671);
 } 
;  ( 86,  ( ( _,  ( values::QQ_EXPRESSION expression1,  expression1left,  expression1right)) !  rest671)) => {  my  result = values::QQ_LIST_CONTENTS (\\  _ =  {  my  (expression as expression1) = 
expression1 ();
 ( [ expression ] );
 } );
 ( lr_table::NONTERM 47,  ( result,  expression1left,  expression1right),  rest671);
 } 
;  ( 87,  ( ( _,  ( values::QQ_LIST_CONTENTS list_contents1,  _,  list_contents1right)) !  _ !  ( _,  ( values::QQ_EXPRESSION expression1,  expression1left,  _)) !  rest671)) => {  my  result = 
values::QQ_LIST_CONTENTS (\\  _ =  {  my  (expression as expression1) = expression1 ();
 my  (list_contents as list_contents1) = list_contents1 ();
 (expression ! list_contents);
 } );
 ( 
lr_table::NONTERM 47,  ( result,  expression1left,  list_contents1right),  rest671);
 } 
;  ( 88,  ( ( _,  ( values::ENDQ endq1,  _,  endq1right)) !  ( _,  ( _,  beginq1left,  _)) !  rest671)) => {  my  result = values::QQ_BACKQUOTATION (\\  _ =  {  my  (endq as endq1) = endq1 ();
 (
 [ quote_expression endq ] );
 } );
 ( lr_table::NONTERM 6,  ( result,  beginq1left,  endq1right),  rest671);
 } 
;  ( 89,  ( ( _,  ( values::ENDQ endq1,  _,  endq1right)) !  ( _,  ( values::QQ_BACKQUOTATION_CONTENTS backquotation_contents1,  _,  _)) !  ( _,  ( _,  beginq1left,  _)) !  rest671)) => {  my  result
 = values::QQ_BACKQUOTATION (\\  _ =  {  my  (backquotation_contents as backquotation_contents1) = backquotation_contents1 ();
 my  (endq as endq1) = endq1 ();
 (
backquotation_contents @ [ quote_expression endq ] );
 } );
 ( lr_table::NONTERM 6,  ( result,  beginq1left,  endq1right),  rest671);
 } 
;  ( 90,  ( ( _,  ( values::QQ_EXPRESSION_ELEMENT expression_element1,  _,  expression_element1right)) !  ( _,  ( values::CHUNKL chunkl1,  chunkl1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BACKQUOTATION_CONTENTS (\\  _ =  {  my  (chunkl as chunkl1) = chunkl1 ();
 my  (expression_element as expression_element1) = expression_element1 ();
 (
 [ quote_expression chunkl,   antiquote_expression expression_element ] );
 } );
 ( lr_table::NONTERM 7,  ( result,  chunkl1left,  expression_element1right),  rest671);
 } 
;  ( 91,  ( ( _,  ( values::QQ_BACKQUOTATION_CONTENTS backquotation_contents1,  _,  backquotation_contents1right)) !  ( _,  ( values::QQ_EXPRESSION_ELEMENT expression_element1,  _,  _)) !  ( _,  ( 
values::CHUNKL chunkl1,  chunkl1left,  _)) !  rest671)) => {  my  result = values::QQ_BACKQUOTATION_CONTENTS (\\  _ =  {  my  (chunkl as chunkl1) = chunkl1 ();
 my  (expression_element as 
expression_element1) = expression_element1 ();
 my  (backquotation_contents as backquotation_contents1) = backquotation_contents1 ();
 (
   quote_expression chunkl
                                                    !
                                                    antiquote_expression expression_element
                                                    !
                                                    backquotation_contents
                                                
);
 } );
 ( lr_table::NONTERM 7,  ( result,  chunkl1left,  backquotation_contents1right),  rest671);
 } 
;  ( 92,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS (\\  _ =  (SEQUENTIAL_DECLARATIONS NIL));
 ( lr_table::NONTERM 57,  ( result,  default_position,  
default_position),  rest671);
 } 
;  ( 93,  ( ( _,  ( values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS local_declarations_and_expressions1,  local_declarations_and_expressions1left,  local_declarations_and_expressions1right)) !  rest671)
) => {  my  result = values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS (\\  _ =  {  my  (local_declarations_and_expressions as local_declarations_and_expressions1) = 
local_declarations_and_expressions1 ();
 (local_declarations_and_expressions);
 } );
 ( lr_table::NONTERM 57,  ( result,  local_declarations_and_expressions1left,  
local_declarations_and_expressions1right),  rest671);
 } 
;  ( 94,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1,  local_declaration_or_expression1left,  _)) !  rest671)) => { 
 my  result = values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS (\\  _ =  {  my  (local_declaration_or_expression as local_declaration_or_expression1) = local_declaration_or_expression1 ();
 (
local_declaration_or_expression);
 } );
 ( lr_table::NONTERM 51,  ( result,  local_declaration_or_expression1left,  suffix_semi1right),  rest671);
 } 
;  ( 95,  ( ( _,  ( values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS local_declarations_and_expressions1,  _,  local_declarations_and_expressions1right)) !  _ !  ( _,  ( 
values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1,  (local_declaration_or_expressionleft as local_declaration_or_expression1left),  local_declaration_or_expressionright)) !  
rest671)) => {  my  result = values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS (\\  _ =  {  my  (local_declaration_or_expression as local_declaration_or_expression1) = local_declaration_or_expression1 ()
;
 my  (local_declarations_and_expressions as local_declarations_and_expressions1) = local_declarations_and_expressions1 ();
 (
make_declaration_sequence   (note_declaration_location   (   local_declaration_or_expression,
                                                                                             local_declaration_or_expressionleft,
                                                                                             local_declaration_or_expressionright
                                                                                         ),
                                                                                         local_declarations_and_expressions
                                                )                          
);
 } );
 ( lr_table::NONTERM 51,  ( result,  local_declaration_or_expression1left,  local_declarations_and_expressions1right),  rest671);
 } 
;  ( 96,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( _,  _,  end_tright)) !  ( _,  ( values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS optional_local_declarations_and_expressions2,  
optional_local_declarations_and_expressions2left,  optional_local_declarations_and_expressions2right)) !  _ !  ( _,  ( values::QQ_OPTIONAL_LOCAL_DECLARATIONS_AND_EXPRESSIONS 
optional_local_declarations_and_expressions1,  optional_local_declarations_and_expressions1left,  optional_local_declarations_and_expressions1right)) !  ( _,  ( _,  (local_tleft as local_t1left),  _))
 !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATIONS_AND_EXPRESSIONS (\\  _ =  {  my  optional_local_declarations_and_expressions1 = optional_local_declarations_and_expressions1 ();
 my  
optional_local_declarations_and_expressions2 = optional_local_declarations_and_expressions2 ();
 (
   note_declaration_location (
                                                        LOCAL_DECLARATIONS (
                                                            note_declaration_location (optional_local_declarations_and_expressions1,
                                                                        optional_local_declarations_and_expressions1left,
                                                                        optional_local_declarations_and_expressions1right),
                                                            note_declaration_location (optional_local_declarations_and_expressions2,
                                                                        optional_local_declarations_and_expressions2left,
                                                                        optional_local_declarations_and_expressions2right)
                                                        ),
                                                        local_tleft,
                                                        end_tright
                                                    )
                                                
);
 } );
 ( lr_table::NONTERM 51,  ( result,  local_t1left,  suffix_semi1right),  rest671);
 } 
;  ( 97,  ( ( _,  ( values::QQ_LOCAL_DECLARATION local_declaration1,  local_declaration1left,  local_declaration1right)) !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATION_OR_EXPRESSION (\\ 
 _ =  {  my  (local_declaration as local_declaration1) = local_declaration1 ();
 (local_declaration);
 } );
 ( lr_table::NONTERM 49,  ( result,  local_declaration1left,  local_declaration1right),  
rest671);
 } 
;  ( 98,  ( ( _,  ( values::QQ_EXPRESSION expression1,  _,  (expressionright as expression1right))) !  _ !  ( _,  ( values::VALUE_ID value_id1,  (value_idleft as value_id1left),  _)) !  rest671)) =>
 {  my  result = values::QQ_LOCAL_DECLARATION_OR_EXPRESSION (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (expression as expression1) = expression1 ();
 (
   note_declaration_location (
                                                        VALUE_DECLARATIONS (
                                                            [   NAMED_VALUE {
                                                                    expression,
                                                                    pattern    => (VARIABLE_IN_PATTERN [make_value_symbol value_id]),
                                                                    is_lazy      => FALSE
                                                                }
                                                            ],
                                                            NIL
                                                        ),
                                                        value_idleft,
                                                        expressionright
                                                    )
                                                
);
 } );
 ( lr_table::NONTERM 49,  ( result,  value_id1left,  expression1right),  rest671);
 } 
;  ( 99,  ( ( _,  ( values::QQ_EXPRESSION expression1,  (expressionleft as expression1left),  (expressionright as expression1right))) !  rest671)) => {  my  result = 
values::QQ_LOCAL_DECLARATION_OR_EXPRESSION (\\  _ =  {  my  (expression as expression1) = expression1 ();
 (
   note_declaration_location (
                                                        VALUE_DECLARATIONS (
                                                            [   NAMED_VALUE {
                                                                    expression,
                                                                    pattern    => WILDCARD_PATTERN,
                                                                    is_lazy      => FALSE
                                                                }
                                                            ],
                                                            NIL
                                                        ),
                                                        expressionleft,
                                                        expressionright
                                                    )
                                                
);
 } );
 ( lr_table::NONTERM 49,  ( result,  expression1left,  expression1right),  rest671);
 } 
;  ( 100,  ( ( _,  ( values::QQ_NAMED_VALUE named_value1,  named_value1left,  named_value1right)) !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATION (\\  _ =  {  my  (named_value as 
named_value1) = named_value1 ();
 (VALUE_DECLARATIONS (named_value, NIL));
 } );
 ( lr_table::NONTERM 48,  ( result,  named_value1left,  named_value1right),  rest671);
 } 
;  ( 101,  ( ( _,  ( values::QQ_NAMED_RECURSIVE_VALUES named_recursive_values1,  named_recursive_values1left,  named_recursive_values1right)) !  rest671)) => {  my  result = 
values::QQ_LOCAL_DECLARATION (\\  _ =  {  my  (named_recursive_values as named_recursive_values1) = named_recursive_values1 ();
 (RECURSIVE_VALUE_DECLARATIONS (named_recursive_values, NIL));
 } );
 ( 
lr_table::NONTERM 48,  ( result,  named_recursive_values1left,  named_recursive_values1right),  rest671);
 } 
;  ( 102,  ( ( _,  ( values::QQ_NAMED_FUNCTIONS named_functions1,  named_functions1left,  named_functions1right)) !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATION (\\  _ =  {  my  (
named_functions as named_functions1) = named_functions1 ();
 (NADA_FUNCTION_DECLARATIONS (named_functions, NIL));
 } );
 ( lr_table::NONTERM 48,  ( result,  named_functions1left,  
named_functions1right),  rest671);
 } 
;  ( 103,  ( ( _,  ( values::QQ_NAMED_TYPES named_types1,  named_types1left,  named_types1right)) !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATION (\\  _ =  {  my  (named_types as 
named_types1) = named_types1 ();
 (TYPE_DECLARATIONS named_types);
 } );
 ( lr_table::NONTERM 48,  ( result,  named_types1left,  named_types1right),  rest671);
 } 
;  ( 104,  ( ( _,  ( values::QQ_SUMTYPES sumtypes1,  sumtypes1left,  sumtypes1right)) !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATION (\\  _ =  {  my  (sumtypes as sumtypes1) = sumtypes1
 ();
 (SUMTYPE_DECLARATIONS { sumtypes, with_types => [] } );
 } );
 ( lr_table::NONTERM 48,  ( result,  sumtypes1left,  sumtypes1right),  rest671);
 } 
;  ( 105,  ( ( _,  ( values::QQ_EXCEPTION_NAMINGS exception_namings1,  _,  exception_namings1right)) !  ( _,  ( _,  exception_t1left,  _)) !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATION
 (\\  _ =  {  my  (exception_namings as exception_namings1) = exception_namings1 ();
 (EXCEPTION_DECLARATIONS exception_namings);
 } );
 ( lr_table::NONTERM 48,  ( result,  exception_t1left,  
exception_namings1right),  rest671);
 } 
;  ( 106,  ( ( _,  ( values::QQ_DOTTED_IDENTIFIER_P dotted_identifier_p1,  _,  dotted_identifier_p1right)) !  ( _,  ( _,  use1left,  _)) !  rest671)) => {  my  result = values::QQ_LOCAL_DECLARATION
 (\\  _ =  {  my  (dotted_identifier_p as dotted_identifier_p1) = dotted_identifier_p1 ();
 (INCLUDE_DECLARATIONS dotted_identifier_p);
 } );
 ( lr_table::NONTERM 48,  ( result,  use1left,  
dotted_identifier_p1right),  rest671);
 } 
;  ( 107,  ( ( _,  ( values::QQ_NAMED_TYPES named_types1,  _,  named_types1right)) !  _ !  ( _,  ( values::QQ_SUMTYPES sumtypes1,  sumtypes1left,  _)) !  rest671)) => {  my  result = 
values::QQ_LOCAL_DECLARATION (\\  _ =  {  my  (sumtypes as sumtypes1) = sumtypes1 ();
 my  (named_types as named_types1) = named_types1 ();
 (
SUMTYPE_DECLARATIONS { sumtypes, with_types => named_types } );
 } );
 ( lr_table::NONTERM 48,  ( result,  sumtypes1left,  named_types1right),  rest671);
 } 
;  ( 108,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  qualified_value_id1left,  qualified_value_id1right)) !  rest671)) => {  my  result = values::QQ_DOTTED_IDENTIFIER_P (\\  _ = 
 {  my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 ( [ qualified_value_id make_package_symbol ] );
 } );
 ( lr_table::NONTERM 25,  ( result,  qualified_value_id1left,  
qualified_value_id1right),  rest671);
 } 
;  ( 109,  ( ( _,  ( values::QQ_DOTTED_IDENTIFIER_P dotted_identifier_p1,  _,  dotted_identifier_p1right)) !  ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  qualified_value_id1left,  _))
 !  rest671)) => {  my  result = values::QQ_DOTTED_IDENTIFIER_P (\\  _ =  {  my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 my  (dotted_identifier_p as dotted_identifier_p1
) = dotted_identifier_p1 ();
 (   qualified_value_id make_package_symbol   !   dotted_identifier_p);
 } );
 ( lr_table::NONTERM 25,  ( result,  qualified_value_id1left,  dotted_identifier_p1right),  
rest671);
 } 
;  ( 110,  ( ( _,  ( values::QQ_EXPRESSION expression1,  _,  (expressionright as expression1right))) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  patternleft,  _)) !  _ !  ( _,  ( _,  my_t1left,  _))
 !  rest671)) => {  my  result = values::QQ_NAMED_VALUE (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 my  (expression as expression1) = expression1 ();
 (
   [   SOURCE_CODE_REGION_FOR_NAMED_VALUE (
                                                            NAMED_VALUE {
                                                                expression,
                                                                pattern,
                                                                is_lazy      => TRUE
                                                            },
                                                            (patternleft, expressionright)
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 92,  ( result,  my_t1left,  expression1right),  rest671);
 } 
;  ( 111,  ( ( _,  ( values::QQ_EXPRESSION expression1,  _,  (expressionright as expression1right))) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  patternleft,  _)) !  ( _,  ( _,  my_t1left,  _)) !  
rest671)) => {  my  result = values::QQ_NAMED_VALUE (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 my  (expression as expression1) = expression1 ();
 (
   [   SOURCE_CODE_REGION_FOR_NAMED_VALUE (
                                                            NAMED_VALUE {
                                                                expression,
                                                                pattern,
                                                                is_lazy      => FALSE
                                                            },
                                                            (patternleft, expressionright)
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 92,  ( result,  my_t1left,  expression1right),  rest671);
 } 
;  ( 112,  ( ( _,  ( values::QQ_NAMED_RECURSIVE_VALUES named_recursive_values2,  _,  named_recursive_values2right)) !  _ !  ( _,  ( values::QQ_NAMED_RECURSIVE_VALUES named_recursive_values1,  
named_recursive_values1left,  _)) !  rest671)) => {  my  result = values::QQ_NAMED_RECURSIVE_VALUES (\\  _ =  {  my  named_recursive_values1 = named_recursive_values1 ();
 my  named_recursive_values2
 = named_recursive_values2 ();
 (named_recursive_values1 @ named_recursive_values2);
 } );
 ( lr_table::NONTERM 76,  ( result,  named_recursive_values1left,  named_recursive_values2right),  rest671)
;
 } 
;  ( 113,  ( ( _,  ( values::QQ_EXPRESSION expression1,  _,  (expressionright as expression1right))) !  _ !  ( _,  ( values::QQ_OPTIONAL_TYPE_CONSTRAINT optional_type_constraint1,  _,  _)) !  ( _,  ( 
values::QQ_VALUE_ID value_id1,  value_idleft,  value_idright)) !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_NAMED_RECURSIVE_VALUES (\\  _ =  {  my  (value_id as 
value_id1) = value_id1 ();
 my  (optional_type_constraint as optional_type_constraint1) = optional_type_constraint1 ();
 my  (expression as expression1) = expression1 ();
 (
   {   my (variable_symbol, fixity)
                                                            =
                                                            make_value_and_fixity_symbols value_id;

                                                        [   SOURCE_CODE_REGION_FOR_RECURSIVELY_NAMED_VALUE (
                                                                NAMED_RECURSIVE_VALUE {
                                                                    variable_symbol,
                                                                    fixity         => THE (fixity, (value_idleft, value_idright)),
                                                                    null_or_type   => optional_type_constraint,
                                                                    expression,
                                                                    is_lazy         => FALSE
                                                                },
                                                                (value_idleft, expressionright)
                                                            )
                                                        ];
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 76,  ( result,  my_t1left,  expression1right),  rest671);
 } 
;  ( 114,  ( ( _,  ( values::QQ_EXPRESSION expression1,  _,  (expressionright as expression1right))) !  _ !  ( _,  ( values::QQ_OPTIONAL_TYPE_CONSTRAINT optional_type_constraint1,  _,  _)) !  ( _,  ( 
values::QQ_VALUE_ID value_id1,  value_idleft,  value_idright)) !  _ !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_NAMED_RECURSIVE_VALUES (\\  _ =  {  my  (value_id as 
value_id1) = value_id1 ();
 my  (optional_type_constraint as optional_type_constraint1) = optional_type_constraint1 ();
 my  (expression as expression1) = expression1 ();
 (
   {   my (variable_symbol, fixity)
                                                            =
                                                            make_value_and_fixity_symbols value_id;

                                                        [   SOURCE_CODE_REGION_FOR_RECURSIVELY_NAMED_VALUE (
                                                                NAMED_RECURSIVE_VALUE {
                                                                    variable_symbol,
                                                                    fixity          => THE (fixity, (value_idleft, value_idright)),
                                                                    null_or_type    => optional_type_constraint,
                                                                    expression,
                                                                    is_lazy         => TRUE
                                                                },
                                                                (value_idleft, expressionright)
                                                            )
                                                        ];
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 76,  ( result,  my_t1left,  expression1right),  rest671);
 } 
;  ( 115,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_TYPE_CONSTRAINT (\\  _ =  (NULL));
 ( lr_table::NONTERM 59,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 116,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  ( _,  ( _,  suffix_colon1left,  _)) !  rest671)) => {  my  result = values::QQ_OPTIONAL_TYPE_CONSTRAINT (\\  _ =  {  my  (
any_type as any_type1) = any_type1 ();
 (THE any_type);
 } );
 ( lr_table::NONTERM 59,  ( result,  suffix_colon1left,  any_type1right),  rest671);
 } 
;  ( 117,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_FUNCTION_CLAUSES function_clauses1,  function_clausesleft,  function_clausesright)) !  ( _,  ( _,  fun_t1left,  _)) !  rest671)) => { 
 my  result = values::QQ_NAMED_FUNCTIONS (\\  _ =  {  my  (function_clauses as function_clauses1) = function_clauses1 ();
 (
 [ SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, FALSE), (function_clausesleft, function_clausesright)) ]    );
 } );
 ( lr_table::NONTERM 39,  ( result,  
fun_t1left,  end_t1right),  rest671);
 } 
;  ( 118,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_FUNCTION_CLAUSES function_clauses1,  function_clausesleft,  function_clausesright)) !  _ !  ( _,  ( _,  lazy_t1left,  _)) !  rest671))
 => {  my  result = values::QQ_NAMED_FUNCTIONS (\\  _ =  {  my  (function_clauses as function_clauses1) = function_clauses1 ();
 (
 [ SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, TRUE ), (function_clausesleft, function_clausesright)) ]    );
 } );
 ( lr_table::NONTERM 39,  ( result,  
lazy_t1left,  end_t1right),  rest671);
 } 
;  ( 119,  ( ( _,  ( values::QQ_NAMED_FUNCTIONS named_functions1,  _,  named_functions1right)) !  _ !  _ !  ( _,  ( values::QQ_FUNCTION_CLAUSES function_clauses1,  function_clausesleft,  
function_clausesright)) !  ( _,  ( _,  fun_t1left,  _)) !  rest671)) => {  my  result = values::QQ_NAMED_FUNCTIONS (\\  _ =  {  my  (function_clauses as function_clauses1) = function_clauses1 ();
 my 
 (named_functions as named_functions1) = named_functions1 ();
 (
   SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, FALSE), (function_clausesleft, function_clausesright)) ! named_functions);
 } );
 ( lr_table::NONTERM 39,  ( 
result,  fun_t1left,  named_functions1right),  rest671);
 } 
;  ( 120,  ( ( _,  ( values::QQ_NAMED_FUNCTIONS named_functions1,  _,  named_functions1right)) !  _ !  _ !  ( _,  ( values::QQ_FUNCTION_CLAUSES function_clauses1,  function_clausesleft,  
function_clausesright)) !  _ !  ( _,  ( _,  lazy_t1left,  _)) !  rest671)) => {  my  result = values::QQ_NAMED_FUNCTIONS (\\  _ =  {  my  (function_clauses as function_clauses1) = function_clauses1 ()
;
 my  (named_functions as named_functions1) = named_functions1 ();
 (
   SOURCE_CODE_REGION_FOR_NADA_NAMED_FUNCTION (NADA_NAMED_FUNCTION (function_clauses, TRUE ), (function_clausesleft, function_clausesright)) ! named_functions);
 } );
 ( lr_table::NONTERM 39,  ( 
result,  lazy_t1left,  named_functions1right),  rest671);
 } 
;  ( 121,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_FUNCTION_CLAUSE function_clause1,  function_clause1left,  _)) !  rest671)) => {  my  result = values::QQ_FUNCTION_CLAUSES (\\  _
 =  {  my  (function_clause as function_clause1) = function_clause1 ();
 ([ function_clause ]);
 } );
 ( lr_table::NONTERM 38,  ( result,  function_clause1left,  suffix_semi1right),  rest671);
 } 
;  ( 122,  ( ( _,  ( values::QQ_FUNCTION_CLAUSES function_clauses1,  _,  function_clauses1right)) !  _ !  ( _,  ( values::QQ_FUNCTION_CLAUSE function_clause1,  function_clause1left,  _)) !  rest671))
 => {  my  result = values::QQ_FUNCTION_CLAUSES (\\  _ =  {  my  (function_clause as function_clause1) = function_clause1 ();
 my  (function_clauses as function_clauses1) = function_clauses1 ();
 (
function_clause ! function_clauses);
 } );
 ( lr_table::NONTERM 38,  ( result,  function_clause1left,  function_clauses1right),  rest671);
 } 
;  ( 123,  ( ( _,  ( values::QQ_EXPRESSION expression1,  expressionleft,  (expressionright as expression1right))) !  _ !  ( _,  ( values::QQ_OPTIONAL_TYPE_CONSTRAINT optional_type_constraint1,  _,  _)
) !  ( _,  ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1,  loose_infix_pattern1left,  _)) !  rest671)) => {  my  result = values::QQ_FUNCTION_CLAUSE (\\  _ =  {  my  (loose_infix_pattern as 
loose_infix_pattern1) = loose_infix_pattern1 ();
 my  (optional_type_constraint as optional_type_constraint1) = optional_type_constraint1 ();
 my  (expression as expression1) = expression1 ();
 (
   NADA_PATTERN_CLAUSE {
                                                        pattern    => loose_infix_pattern,
                                                        result_type => optional_type_constraint,
                                                        expression => note_expression_location (expression, expressionleft, expressionright)
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 37,  ( result,  loose_infix_pattern1left,  expression1right),  rest671);
 } 
;  ( 124,  ( ( _,  ( values::QQ_NAMED_TYPES named_types2,  _,  named_types2right)) !  _ !  ( _,  ( values::QQ_NAMED_TYPES named_types1,  named_types1left,  _)) !  rest671)) => {  my  result = 
values::QQ_NAMED_TYPES (\\  _ =  {  my  named_types1 = named_types1 ();
 my  named_types2 = named_types2 ();
 (named_types1 @ named_types2);
 } );
 ( lr_table::NONTERM 89,  ( result,  named_types1left
,  named_types2right),  rest671);
 } 
;  ( 125,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  any_typeleft,  (any_typeright as any_type1right))) !  _ !  ( _,  ( values::TYPE_ID type_id1,  _,  _)) !  ( _,  ( _,  type_t1left,  _)) !  rest671))
 => {  my  result = values::QQ_NAMED_TYPES (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 (
   [   SOURCE_CODE_REGION_FOR_NAMED_TYPE (
                                                            NAMED_TYPE {
                                                                typevars   => NIL,
                                                                name_symbol      => make_type_symbol type_id,
                                                                definition       => any_type
                                                            },
                                                            (any_typeleft, any_typeright)
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 89,  ( result,  type_t1left,  any_type1right),  rest671);
 } 
;  ( 126,  ( ( _,  ( values::QQ_SUMTYPES sumtypes2,  _,  sumtypes2right)) !  _ !  ( _,  ( values::QQ_SUMTYPES sumtypes1,  sumtypes1left,  _)) !  rest671)) => {  my  result = values::QQ_SUMTYPES (\\  _
 =  {  my  sumtypes1 = sumtypes1 ();
 my  sumtypes2 = sumtypes2 ();
 (sumtypes1 @ sumtypes2);
 } );
 ( lr_table::NONTERM 28,  ( result,  sumtypes1left,  sumtypes2right),  rest671);
 } 
;  ( 127,  ( ( _,  ( values::QQ_ENUM_NAMING enum_naming1,  _,  enum_naming1right)) !  _ !  ( _,  ( values::TYPE_ID type_id1,  _,  _)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  result = 
values::QQ_SUMTYPES (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 my  (enum_naming as enum_naming1) = enum_naming1 ();
 (
   [   raw::SUM_TYPE {
                                                            name_symbol      => make_type_symbol type_id,
                                                            typevars   => NIL,
                                                            right_hand_side  => enum_naming,
                                                            is_lazy          => FALSE
                                                        }
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 28,  ( result,  enum_t1left,  enum_naming1right),  rest671);
 } 
;  ( 128,  ( ( _,  ( values::QQ_ENUM_NAMING enum_naming1,  _,  enum_naming1right)) !  _ !  ( _,  ( values::TYPE_ID type_id1,  _,  _)) !  _ !  ( _,  ( _,  lazy_t1left,  _)) !  rest671)) => {  my  
result = values::QQ_SUMTYPES (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 my  (enum_naming as enum_naming1) = enum_naming1 ();
 (
   [   raw::SUM_TYPE {
                                                            name_symbol      => make_type_symbol type_id,
                                                            typevars   => NIL,
                                                            right_hand_side  => enum_naming,
                                                            is_lazy          => TRUE
                                                        }
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 28,  ( result,  lazy_t1left,  enum_naming1right),  rest671);
 } 
;  ( 129,  ( ( _,  ( values::QQ_CONSTRUCTORS constructors1,  constructors1left,  constructors1right)) !  rest671)) => {  my  result = values::QQ_ENUM_NAMING (\\  _ =  {  my  (constructors as 
constructors1) = constructors1 ();
 (VALCONS constructors);
 } );
 ( lr_table::NONTERM 27,  ( result,  constructors1left,  constructors1right),  rest671);
 } 
;  ( 130,  ( ( _,  ( values::QQ_DOTTED_TYPE dotted_type1,  _,  dotted_type1right)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  result = values::QQ_ENUM_NAMING (\\  _ =  {  my  (dotted_type
 as dotted_type1) = dotted_type1 ();
 (REPLICAS dotted_type);
 } );
 ( lr_table::NONTERM 27,  ( result,  enum_t1left,  dotted_type1right),  rest671);
 } 
;  ( 131,  ( ( _,  ( values::QQ_CONSTRUCTOR constructor1,  constructor1left,  constructor1right)) !  rest671)) => {  my  result = values::QQ_CONSTRUCTORS (\\  _ =  {  my  (constructor as constructor1)
 = constructor1 ();
 ([constructor]);
 } );
 ( lr_table::NONTERM 17,  ( result,  constructor1left,  constructor1right),  rest671);
 } 
;  ( 132,  ( ( _,  ( values::QQ_CONSTRUCTORS constructors1,  _,  constructors1right)) !  _ !  ( _,  ( values::QQ_CONSTRUCTOR constructor1,  constructor1left,  _)) !  rest671)) => {  my  result = 
values::QQ_CONSTRUCTORS (\\  _ =  {  my  (constructor as constructor1) = constructor1 ();
 my  (constructors as constructors1) = constructors1 ();
 (constructor ! constructors);
 } );
 ( 
lr_table::NONTERM 17,  ( result,  constructor1left,  constructors1right),  rest671);
 } 
;  ( 133,  ( ( _,  ( values::CONSTRUCTOR_ID constructor_id1,  constructor_id1left,  constructor_id1right)) !  rest671)) => {  my  result = values::QQ_CONSTRUCTOR (\\  _ =  {  my  (constructor_id as 
constructor_id1) = constructor_id1 ();
 (make_value_symbol constructor_id,   NULL   );
 } );
 ( lr_table::NONTERM 16,  ( result,  constructor_id1left,  constructor_id1right),  rest671);
 } 
;  ( 134,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  ( _,  ( values::CONSTRUCTOR_ID constructor_id1,  constructor_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_CONSTRUCTOR (\\  _ =  {  my  (constructor_id as constructor_id1) = constructor_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 (make_value_symbol constructor_id,   THE any_type);
 } )
;
 ( lr_table::NONTERM 16,  ( result,  constructor_id1left,  any_type1right),  rest671);
 } 
;  ( 135,  ( ( _,  ( values::QQ_EXCEPTION_NAMINGS exception_namings2,  _,  exception_namings2right)) !  _ !  ( _,  ( values::QQ_EXCEPTION_NAMINGS exception_namings1,  exception_namings1left,  _)) !  
rest671)) => {  my  result = values::QQ_EXCEPTION_NAMINGS (\\  _ =  {  my  exception_namings1 = exception_namings1 ();
 my  exception_namings2 = exception_namings2 ();
 (
exception_namings1 @ exception_namings2);
 } );
 ( lr_table::NONTERM 29,  ( result,  exception_namings1left,  exception_namings2right),  rest671);
 } 
;  ( 136,  ( ( _,  ( values::CONSTRUCTOR_ID constructor_id1,  constructor_id1left,  constructor_id1right)) !  rest671)) => {  my  result = values::QQ_EXCEPTION_NAMINGS (\\  _ =  {  my  (constructor_id
 as constructor_id1) = constructor_id1 ();
 (   [   NAMED_EXCEPTION {
                                                            exception_symbol => (make_value_symbol constructor_id),
                                                            exception_type   => NULL
                                                        }
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 29,  ( result,  constructor_id1left,  constructor_id1right),  rest671);
 } 
;  ( 137,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  ( _,  ( values::CONSTRUCTOR_ID constructor_id1,  constructor_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_EXCEPTION_NAMINGS (\\  _ =  {  my  (constructor_id as constructor_id1) = constructor_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 (
   [   NAMED_EXCEPTION {
                                                            exception_symbol => (make_value_symbol constructor_id),
                                                            exception_type   => THE any_type
                                                        }
                                                    ]
                                                );
 } );
 ( lr_table::NONTERM 29,  ( 
result,  constructor_id1left,  any_type1right),  rest671);
 } 
;  ( 138,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  _,  qualified_value_id1right)) !  _ !  ( _,  ( values::CONSTRUCTOR_ID constructor_id1,  constructor_id1left,  _)) !  rest671))
 => {  my  result = values::QQ_EXCEPTION_NAMINGS (\\  _ =  {  my  (constructor_id as constructor_id1) = constructor_id1 ();
 my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();

 (   [   DUPLICATE_NAMED_EXCEPTION {
                                                            exception_symbol => make_value_symbol constructor_id,
                                                            equal_to         => qualified_value_id make_value_symbol
                                                        }
                                                    ]
                                                )
;
 } );
 ( lr_table::NONTERM 29,  ( result,  constructor_id1left,  qualified_value_id1right),  rest671);
 } 
;  ( 139,  ( ( _,  ( values::QQ_SIMPLE_TYPE simple_type1,  simple_type1left,  simple_type1right)) !  rest671)) => {  my  result = values::QQ_ANY_TYPE (\\  _ =  {  my  (simple_type as simple_type1) = 
simple_type1 ();
 (simple_type);
 } );
 ( lr_table::NONTERM 2,  ( result,  simple_type1left,  simple_type1right),  rest671);
 } 
;  ( 140,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_TUPLE_TYPOID tuple_typoid1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_ANY_TYPE (\\  _ =  { 
 my  (tuple_typoid as tuple_typoid1) = tuple_typoid1 ();
 (TUPLE_TYPE (tuple_typoid));
 } );
 ( lr_table::NONTERM 2,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 141,  ( ( _,  ( values::QQ_ANY_TYPE any_type2,  _,  any_type2right)) !  _ !  ( _,  ( values::QQ_ANY_TYPE any_type1,  any_type1left,  _)) !  rest671)) => {  my  result = values::QQ_ANY_TYPE (\\  _
 =  {  my  any_type1 = any_type1 ();
 my  any_type2 = any_type2 ();
 (TYPE_TYPE ( [arrow_type], [any_type1, any_type2]));
 } );
 ( lr_table::NONTERM 2,  ( result,  any_type1left,  any_type2right),  
rest671);
 } 
;  ( 142,  ( ( _,  ( values::QQ_SIMPLE_TYPE simple_type2,  _,  simple_type2right)) !  _ !  ( _,  ( values::QQ_SIMPLE_TYPE simple_type1,  simple_type1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TUPLE_TYPOID (\\  _ =  {  my  simple_type1 = simple_type1 ();
 my  simple_type2 = simple_type2 ();
 ( [ simple_type1, simple_type2 ] );
 } );
 ( lr_table::NONTERM 88,  ( result,  
simple_type1left,  simple_type2right),  rest671);
 } 
;  ( 143,  ( ( _,  ( values::QQ_TUPLE_TYPOID tuple_typoid1,  _,  tuple_typoid1right)) !  _ !  ( _,  ( values::QQ_SIMPLE_TYPE simple_type1,  simple_type1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TUPLE_TYPOID (\\  _ =  {  my  (simple_type as simple_type1) = simple_type1 ();
 my  (tuple_typoid as tuple_typoid1) = tuple_typoid1 ();
 (simple_type ! tuple_typoid);
 } );
 ( 
lr_table::NONTERM 88,  ( result,  simple_type1left,  tuple_typoid1right),  rest671);
 } 
;  ( 144,  ( ( _,  ( _,  _,  loose_infix_rbrace1right)) !  ( _,  ( _,  loose_infix_lbrace1left,  _)) !  rest671)) => {  my  result = values::QQ_SIMPLE_TYPE (\\  _ =  (RECORD_TYPE []));
 ( 
lr_table::NONTERM 82,  ( result,  loose_infix_lbrace1left,  loose_infix_rbrace1right),  rest671);
 } 
;  ( 145,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_SIMPLE_TYPE (\\  _ =  {  my 
 (any_type as any_type1) = any_type1 ();
 (any_type);
 } );
 ( lr_table::NONTERM 82,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 146,  ( ( _,  ( values::TYPEVAR_ID typevar_id1,  (typevar_idleft as typevar_id1left),  (typevar_idright as typevar_id1right))) !  rest671)) => {  my  result = values::QQ_SIMPLE_TYPE (\\  _ =  { 
 my  (typevar_id as typevar_id1) = typevar_id1 ();
 (
   SOURCE_CODE_REGION_FOR_TYPE (
                                                        TYPEVAR_TYPE   (TYPEVAR (make_typevar_symbol typevar_id)),
                                                        (typevar_idleft, typevar_idright)
                                                )   
);
 } );
 ( lr_table::NONTERM 82,  ( result,  typevar_id1left,  typevar_id1right),  rest671);
 } 
;  ( 147,  ( ( _,  ( _,  _,  (loose_infix_rbraceright as loose_infix_rbrace1right))) !  ( _,  ( values::QQ_RECORD_TYPE_CONTENTS record_type_contents1,  _,  _)) !  ( _,  ( _,  (loose_infix_lbraceleft
 as loose_infix_lbrace1left),  _)) !  rest671)) => {  my  result = values::QQ_SIMPLE_TYPE (\\  _ =  {  my  (record_type_contents as record_type_contents1) = record_type_contents1 ();
 (
    SOURCE_CODE_REGION_FOR_TYPE (
                                                         RECORD_TYPE record_type_contents,
                                                         (loose_infix_lbraceleft, loose_infix_rbraceright)
                                                )    
);
 } );
 ( lr_table::NONTERM 82,  ( result,  loose_infix_lbrace1left,  loose_infix_rbrace1right),  rest671);
 } 
;  ( 148,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_TYPEFUN_ARGLIST typefun_arglist1,  _,  _)) !  _ !  ( _,  ( values::QQ_DOTTED_TYPE dotted_type1,  (dotted_typeleft as dotted_type1left)
,  dotted_typeright)) !  rest671)) => {  my  result = values::QQ_SIMPLE_TYPE (\\  _ =  {  my  (dotted_type as dotted_type1) = dotted_type1 ();
 my  (typefun_arglist as typefun_arglist1) = 
typefun_arglist1 ();
 (
    SOURCE_CODE_REGION_FOR_TYPE (
                                                         TYPE_TYPE (
                                                             dotted_type,
                                                             typefun_arglist
                                                         ),
                                                         (   dotted_typeleft,
                                                             dotted_typeright
                                                         )
                                                )    
);
 } );
 ( lr_table::NONTERM 82,  ( result,  dotted_type1left,  rparen1right),  rest671);
 } 
;  ( 149,  ( ( _,  ( values::QQ_SIMPLE_TYPE simple_type1,  _,  simple_type1right)) !  ( _,  ( values::QQ_DOTTED_TYPE dotted_type1,  (dotted_typeleft as dotted_type1left),  dotted_typeright)) !  
rest671)) => {  my  result = values::QQ_SIMPLE_TYPE (\\  _ =  {  my  (dotted_type as dotted_type1) = dotted_type1 ();
 my  (simple_type as simple_type1) = simple_type1 ();
 (
    SOURCE_CODE_REGION_FOR_TYPE (
                                                        TYPE_TYPE (
                                                            dotted_type,
                                                            [simple_type]
                                                        ),
                                                        (   dotted_typeleft,
                                                            dotted_typeright
                                                        )
                                                )    
);
 } );
 ( lr_table::NONTERM 82,  ( result,  dotted_type1left,  simple_type1right),  rest671);
 } 
;  ( 150,  ( ( _,  ( values::QQ_DOTTED_TYPE dotted_type1,  (dotted_typeleft as dotted_type1left),  (dotted_typeright as dotted_type1right))) !  rest671)) => {  my  result = values::QQ_SIMPLE_TYPE (\\ 
 _ =  {  my  (dotted_type as dotted_type1) = dotted_type1 ();
 (
    SOURCE_CODE_REGION_FOR_TYPE (
                                                        TYPE_TYPE (
                                                            dotted_type,
                                                            []
                                                        ),
                                                        (    dotted_typeleft,
                                                             dotted_typeright
                                                        )
                                                )    
);
 } );
 ( lr_table::NONTERM 82,  ( result,  dotted_type1left,  dotted_type1right),  rest671);
 } 
;  ( 151,  ( ( _,  ( values::TYPE_ID type_id1,  type_id1left,  type_id1right)) !  rest671)) => {  my  result = values::QQ_DOTTED_TYPE (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 (
 [make_type_symbol type_id] );
 } );
 ( lr_table::NONTERM 26,  ( result,  type_id1left,  type_id1right),  rest671);
 } 
;  ( 152,  ( ( _,  ( values::QQ_DOTTED_TYPE dotted_type1,  _,  dotted_type1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_DOTTED_TYPE (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (dotted_type as dotted_type1) = dotted_type1 ();
 (make_package_symbol value_id ! dotted_type);
 } );
 ( 
lr_table::NONTERM 26,  ( result,  value_id1left,  dotted_type1right),  rest671);
 } 
;  ( 153,  ( ( _,  ( values::QQ_RECORD_TYPE_ELEMENT record_type_element1,  record_type_element1left,  record_type_element1right)) !  rest671)) => {  my  result = values::QQ_RECORD_TYPE_CONTENTS (\\  _
 =  {  my  (record_type_element as record_type_element1) = record_type_element1 ();
 ([ record_type_element ]);
 } );
 ( lr_table::NONTERM 74,  ( result,  record_type_element1left,  
record_type_element1right),  rest671);
 } 
;  ( 154,  ( ( _,  ( values::QQ_RECORD_TYPE_CONTENTS record_type_contents1,  _,  record_type_contents1right)) !  _ !  ( _,  ( values::QQ_RECORD_TYPE_ELEMENT record_type_element1,  
record_type_element1left,  _)) !  rest671)) => {  my  result = values::QQ_RECORD_TYPE_CONTENTS (\\  _ =  {  my  (record_type_element as record_type_element1) = record_type_element1 ();
 my  (
record_type_contents as record_type_contents1) = record_type_contents1 ();
 (record_type_element ! record_type_contents);
 } );
 ( lr_table::NONTERM 74,  ( result,  record_type_element1left,  
record_type_contents1right),  rest671);
 } 
;  ( 155,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  _ !  ( _,  ( values::QQ_SELECTOR selector1,  selector1left,  _)) !  rest671)) => {  my  result = 
values::QQ_RECORD_TYPE_ELEMENT (\\  _ =  {  my  (selector as selector1) = selector1 ();
 my  (any_type as any_type1) = any_type1 ();
 (selector, any_type );
 } );
 ( lr_table::NONTERM 75,  ( result,  
selector1left,  any_type1right),  rest671);
 } 
;  ( 156,  ( ( _,  ( values::QQ_ANY_TYPE any_type2,  _,  any_type2right)) !  _ !  ( _,  ( values::QQ_ANY_TYPE any_type1,  any_type1left,  _)) !  rest671)) => {  my  result = values::QQ_TYPEFUN_ARGLIST
 (\\  _ =  {  my  any_type1 = any_type1 ();
 my  any_type2 = any_type2 ();
 ( [any_type1, any_type2] );
 } );
 ( lr_table::NONTERM 90,  ( result,  any_type1left,  any_type2right),  rest671);
 } 
;  ( 157,  ( ( _,  ( values::QQ_TYPEFUN_ARGLIST typefun_arglist1,  _,  typefun_arglist1right)) !  _ !  ( _,  ( values::QQ_ANY_TYPE any_type1,  any_type1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TYPEFUN_ARGLIST (\\  _ =  {  my  (any_type as any_type1) = any_type1 ();
 my  (typefun_arglist as typefun_arglist1) = typefun_arglist1 ();
 (any_type ! typefun_arglist);
 } );
 ( 
lr_table::NONTERM 90,  ( result,  any_type1left,  typefun_arglist1right),  rest671);
 } 
;  ( 158,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_RULE rule1,  rule1left,  _)) !  rest671)) => {  my  result = values::QQ_PATTERN_MATCH (\\  _ =  {  my  (rule as rule1) = rule1 ()
;
 ( [rule] );
 } );
 ( lr_table::NONTERM 69,  ( result,  rule1left,  suffix_semi1right),  rest671);
 } 
;  ( 159,  ( ( _,  ( values::QQ_PATTERN_MATCH pattern_match1,  _,  pattern_match1right)) !  _ !  ( _,  ( values::QQ_RULE rule1,  rule1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PATTERN_MATCH (\\  _ =  {  my  (rule as rule1) = rule1 ();
 my  (pattern_match as pattern_match1) = pattern_match1 ();
 (rule ! pattern_match);
 } );
 ( lr_table::NONTERM 69,  ( result,  
rule1left,  pattern_match1right),  rest671);
 } 
;  ( 160,  ( ( _,  ( values::QQ_EXPRESSION expression1,  expressionleft,  (expressionright as expression1right))) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  pattern1left,  _)) !  rest671)) => { 
 my  result = values::QQ_RULE (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 my  (expression as expression1) = expression1 ();
 (
   CASE_RULE {
                                                        pattern, 
                                                        expression => note_expression_location (   expression,
                                                                                    expressionleft,
                                                                                    expressionright
                                                                                )
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 77,  ( result,  pattern1left,  expression1right),  rest671);
 } 
;  ( 161,  ( ( _,  ( values::QQ_PATTERN pattern2,  _,  pattern2right)) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  pattern1left,  _)) !  rest671)) => {  my  result = values::QQ_PATTERN (\\  _ =  { 
 my  pattern1 = pattern1 ();
 my  pattern2 = pattern2 ();
 (layered   (pattern1,   pattern2,   error (pattern1left, pattern2right)));
 } );
 ( lr_table::NONTERM 66,  ( result,  pattern1left,  
pattern2right),  rest671);
 } 
;  ( 162,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  _ !  ( _,  ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1,  loose_infix_pattern1left,  _)) !  rest671)) => {  my  
result = values::QQ_PATTERN (\\  _ =  {  my  (loose_infix_pattern as loose_infix_pattern1) = loose_infix_pattern1 ();
 my  (any_type as any_type1) = any_type1 ();
 (
TYPE_CONSTRAINT_PATTERN { pattern=>loose_infix_pattern, type_constraint=>any_type } );
 } );
 ( lr_table::NONTERM 66,  ( result,  loose_infix_pattern1left,  any_type1right),  rest671);
 } 
;  ( 163,  ( ( _,  ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1,  loose_infix_pattern1left,  loose_infix_pattern1right)) !  rest671)) => {  my  result = values::QQ_PATTERN (\\  _ =  {  my  (
loose_infix_pattern as loose_infix_pattern1) = loose_infix_pattern1 ();
 (loose_infix_pattern);
 } );
 ( lr_table::NONTERM 66,  ( result,  loose_infix_pattern1left,  loose_infix_pattern1right),  
rest671);
 } 
;  ( 164,  ( ( _,  ( values::QQ_APPLY_PATTERN apply_pattern1,  apply_pattern1left,  apply_pattern1right)) !  rest671)) => {  my  result = values::QQ_LOOSE_INFIX_PATTERN (\\  _ =  {  my  (apply_pattern
 as apply_pattern1) = apply_pattern1 ();
 (apply_pattern);
 } );
 ( lr_table::NONTERM 10,  ( result,  apply_pattern1left,  apply_pattern1right),  rest671);
 } 
;  ( 165,  ( ( _,  ( values::QQ_LOOSE_INFIX_PATTERN loose_infix_pattern1,  _,  loose_infix_pattern1right)) !  ( _,  ( values::LOOSE_INFIX_OP loose_infix_op1,  _,  _)) !  ( _,  ( 
values::QQ_APPLY_PATTERN apply_pattern1,  apply_pattern1left,  _)) !  rest671)) => {  my  result = values::QQ_LOOSE_INFIX_PATTERN (\\  _ =  {  my  (apply_pattern as apply_pattern1) = apply_pattern1 ()
;
 my  (loose_infix_op as loose_infix_op1) = loose_infix_op1 ();
 my  (loose_infix_pattern as loose_infix_pattern1) = loose_infix_pattern1 ();
 (
APPLY_PATTERN    {  constructor=>VARIABLE_IN_PATTERN [make_value_symbol loose_infix_op],
                                                                     argument=>TUPLE_PATTERN [loose_infix_pattern, apply_pattern]
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 10,  ( result,  apply_pattern1left,  loose_infix_pattern1right),  rest671);
 } 
;  ( 166,  ( ( _,  ( values::QQ_INFIX_PATTERN infix_pattern1,  infix_pattern1left,  infix_pattern1right)) !  rest671)) => {  my  result = values::QQ_APPLY_PATTERN (\\  _ =  {  my  (infix_pattern as 
infix_pattern1) = infix_pattern1 ();
 (infix_pattern);
 } );
 ( lr_table::NONTERM 11,  ( result,  infix_pattern1left,  infix_pattern1right),  rest671);
 } 
;  ( 167,  ( ( _,  ( values::QQ_INFIX_PATTERN infix_pattern1,  _,  infix_pattern1right)) !  ( _,  ( values::QQ_APPLY_PATTERN apply_pattern1,  apply_pattern1left,  _)) !  rest671)) => {  my  result = 
values::QQ_APPLY_PATTERN (\\  _ =  {  my  (apply_pattern as apply_pattern1) = apply_pattern1 ();
 my  (infix_pattern as infix_pattern1) = infix_pattern1 ();
 (
APPLY_PATTERN    {  constructor=>apply_pattern,
                                                                     argument=>infix_pattern
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 11,  ( result,  apply_pattern1left,  infix_pattern1right),  rest671);
 } 
;  ( 168,  ( ( _,  ( values::QQ_SUFFIX_PATTERN suffix_pattern1,  suffix_pattern1left,  suffix_pattern1right)) !  rest671)) => {  my  result = values::QQ_INFIX_PATTERN (\\  _ =  {  my  (suffix_pattern
 as suffix_pattern1) = suffix_pattern1 ();
 (suffix_pattern);
 } );
 ( lr_table::NONTERM 12,  ( result,  suffix_pattern1left,  suffix_pattern1right),  rest671);
 } 
;  ( 169,  ( ( _,  ( values::QQ_SUFFIX_PATTERN suffix_pattern1,  _,  suffix_pattern1right)) !  ( _,  ( values::TIGHT_INFIX_OP tight_infix_op1,  _,  _)) !  ( _,  ( values::QQ_INFIX_PATTERN 
infix_pattern1,  infix_pattern1left,  _)) !  rest671)) => {  my  result = values::QQ_INFIX_PATTERN (\\  _ =  {  my  (infix_pattern as infix_pattern1) = infix_pattern1 ();
 my  (tight_infix_op as 
tight_infix_op1) = tight_infix_op1 ();
 my  (suffix_pattern as suffix_pattern1) = suffix_pattern1 ();
 (
APPLY_PATTERN    {  constructor=>VARIABLE_IN_PATTERN [make_value_symbol tight_infix_op],
                                                                     argument=>TUPLE_PATTERN [infix_pattern, suffix_pattern]
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 12,  ( result,  infix_pattern1left,  suffix_pattern1right),  rest671);
 } 
;  ( 170,  ( ( _,  ( values::QQ_PREFIX_PATTERN prefix_pattern1,  prefix_pattern1left,  prefix_pattern1right)) !  rest671)) => {  my  result = values::QQ_SUFFIX_PATTERN (\\  _ =  {  my  (prefix_pattern
 as prefix_pattern1) = prefix_pattern1 ();
 (prefix_pattern);
 } );
 ( lr_table::NONTERM 13,  ( result,  prefix_pattern1left,  prefix_pattern1right),  rest671);
 } 
;  ( 171,  ( ( _,  ( values::SUFFIX_OP suffix_op1,  _,  suffix_op1right)) !  ( _,  ( values::QQ_SUFFIX_PATTERN suffix_pattern1,  suffix_pattern1left,  _)) !  rest671)) => {  my  result = 
values::QQ_SUFFIX_PATTERN (\\  _ =  {  my  (suffix_pattern as suffix_pattern1) = suffix_pattern1 ();
 my  (suffix_op as suffix_op1) = suffix_op1 ();
 (
APPLY_PATTERN    {  constructor=>VARIABLE_IN_PATTERN [make_value_symbol suffix_op],
                                                                     argument=>suffix_pattern
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 13,  ( result,  suffix_pattern1left,  suffix_op1right),  rest671);
 } 
;  ( 172,  ( ( _,  ( values::QQ_TYPED_PATTERN typed_pattern1,  typed_pattern1left,  typed_pattern1right)) !  rest671)) => {  my  result = values::QQ_PREFIX_PATTERN (\\  _ =  {  my  (typed_pattern as 
typed_pattern1) = typed_pattern1 ();
 (typed_pattern);
 } );
 ( lr_table::NONTERM 14,  ( result,  typed_pattern1left,  typed_pattern1right),  rest671);
 } 
;  ( 173,  ( ( _,  ( values::QQ_PREFIX_PATTERN prefix_pattern1,  _,  prefix_pattern1right)) !  ( _,  ( values::PREFIX_OP prefix_op1,  prefix_op1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PREFIX_PATTERN (\\  _ =  {  my  (prefix_op as prefix_op1) = prefix_op1 ();
 my  (prefix_pattern as prefix_pattern1) = prefix_pattern1 ();
 (
APPLY_PATTERN    {  constructor=>VARIABLE_IN_PATTERN [make_value_symbol prefix_op],
                                                                     argument=>prefix_pattern
                                                                  }
                                                
);
 } );
 ( lr_table::NONTERM 14,  ( result,  prefix_op1left,  prefix_pattern1right),  rest671);
 } 
;  ( 174,  ( ( _,  ( values::QQ_PATTERN_ELEMENT pattern_element1,  pattern_element1left,  pattern_element1right)) !  rest671)) => {  my  result = values::QQ_TYPED_PATTERN (\\  _ =  {  my  (
pattern_element as pattern_element1) = pattern_element1 ();
 (pattern_element);
 } );
 ( lr_table::NONTERM 15,  ( result,  pattern_element1left,  pattern_element1right),  rest671);
 } 
;  ( 175,  ( ( _,  ( values::QQ_PATTERN_ELEMENT pattern_element1,  _,  pattern_element1right)) !  ( _,  ( values::TYPE_ID type_id1,  type_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TYPED_PATTERN (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 my  (pattern_element as pattern_element1) = pattern_element1 ();
 (
TYPE_CONSTRAINT_PATTERN { pattern=>pattern_element, type_constraint=>TYPE_TYPE ([make_type_symbol type_id], []) } );
 } );
 ( lr_table::NONTERM 15,  ( result,  type_id1left,  pattern_element1right),  
rest671);
 } 
;  ( 176,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  _,  qualified_value_id1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result =
 values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 (
VARIABLE_IN_PATTERN (make_package_symbol value_id   !   qualified_value_id make_value_symbol));
 } );
 ( lr_table::NONTERM 67,  ( result,  value_id1left,  qualified_value_id1right),  rest671);
 } 
;  ( 177,  ( ( _,  ( values::QQ_ID id1,  id1left,  id1right)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (id as id1) = id1 ();
 (
VARIABLE_IN_PATTERN [make_value_symbol id]);
 } );
 ( lr_table::NONTERM 67,  ( result,  id1left,  id1right),  rest671);
 } 
;  ( 178,  ( ( _,  ( values::QQ_INT int1,  int1left,  int1right)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (int as int1) = int1 ();
 (
INT_CONSTANT_IN_PATTERN       int);
 } );
 ( lr_table::NONTERM 67,  ( result,  int1left,  int1right),  rest671);
 } 
;  ( 179,  ( ( _,  ( values::UNT unt1,  unt1left,  unt1right)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (unt as unt1) = unt1 ();
 (UNT_CONSTANT_IN_PATTERN       unt)
;
 } );
 ( lr_table::NONTERM 67,  ( result,  unt1left,  unt1right),  rest671);
 } 
;  ( 180,  ( ( _,  ( values::STRING string1,  string1left,  string1right)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (string as string1) = string1 ();
 (
STRING_CONSTANT_IN_PATTERN    string);
 } );
 ( lr_table::NONTERM 67,  ( result,  string1left,  string1right),  rest671);
 } 
;  ( 181,  ( ( _,  ( values::CHAR char1,  char1left,  char1right)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (char as char1) = char1 ();
 (
CHAR_CONSTANT_IN_PATTERN char);
 } );
 ( lr_table::NONTERM 67,  ( result,  char1left,  char1right),  rest671);
 } 
;  ( 182,  ( ( _,  ( _,  underbar1left,  underbar1right)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  (WILDCARD_PATTERN));
 ( lr_table::NONTERM 67,  ( result,  underbar1left, 
 underbar1right),  rest671);
 } 
;  ( 183,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( _,  loose_infix_lbracket1left,  _)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  (LIST_PATTERN   NIL));
 ( 
lr_table::NONTERM 67,  ( result,  loose_infix_lbracket1left,  loose_infix_rbracket1right),  rest671);
 } 
;  ( 184,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( values::QQ_PATTERN_LIST pattern_list1,  _,  _)) !  ( _,  ( _,  loose_infix_lbracket1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (pattern_list as pattern_list1) = pattern_list1 ();
 (LIST_PATTERN   pattern_list);
 } );
 ( lr_table::NONTERM 67,  ( result,  loose_infix_lbracket1left,  
loose_infix_rbracket1right),  rest671);
 } 
;  ( 185,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( _,  loose_infix_lvector1left,  _)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  (VECTOR_PATTERN NIL));
 ( 
lr_table::NONTERM 67,  ( result,  loose_infix_lvector1left,  loose_infix_rbracket1right),  rest671);
 } 
;  ( 186,  ( ( _,  ( _,  _,  loose_infix_rbracket1right)) !  ( _,  ( values::QQ_PATTERN_LIST pattern_list1,  _,  _)) !  ( _,  ( _,  loose_infix_lvector1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (pattern_list as pattern_list1) = pattern_list1 ();
 (VECTOR_PATTERN pattern_list);
 } );
 ( lr_table::NONTERM 67,  ( result,  loose_infix_lvector1left,  
loose_infix_rbracket1right),  rest671);
 } 
;  ( 187,  ( ( _,  ( _,  _,  loose_infix_rbrace1right)) !  ( _,  ( _,  loose_infix_lbrace1left,  _)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  (void_pattern));
 ( 
lr_table::NONTERM 67,  ( result,  loose_infix_lbrace1left,  loose_infix_rbrace1right),  rest671);
 } 
;  ( 188,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  (void_pattern));
 ( lr_table::NONTERM 67,  ( result,  
lparen1left,  rparen1right),  rest671);
 } 
;  ( 189,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_PATTERN pattern1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  { 
 my  (pattern as pattern1) = pattern1 ();
 (pattern);
 } );
 ( lr_table::NONTERM 67,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 190,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_PATTERN_LIST pattern_list1,  _,  _)) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671
)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 my  (pattern_list as pattern_list1) = pattern_list1 ();
 (
TUPLE_PATTERN ( pattern ! pattern_list));
 } );
 ( lr_table::NONTERM 67,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 191,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_OR_PATTERN_LIST or_pattern_list1,  _,  _)) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  
rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 my  (or_pattern_list as or_pattern_list1) = or_pattern_list1 ();
 (
OR_PATTERN (pattern ! or_pattern_list) );
 } );
 ( lr_table::NONTERM 67,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 192,  ( ( _,  ( _,  _,  (loose_infix_rbraceright as loose_infix_rbrace1right))) !  ( _,  ( values::QQ_RECORD_PATTERNS record_patterns1,  _,  _)) !  ( _,  ( _,  (loose_infix_lbraceleft as 
loose_infix_lbrace1left),  _)) !  rest671)) => {  my  result = values::QQ_PATTERN_ELEMENT (\\  _ =  {  my  (record_patterns as record_patterns1) = record_patterns1 ();
 (
   {   my (definition, is_incomplete)
                                                            =
                                                            record_patterns;

                                                        SOURCE_CODE_REGION_FOR_PATTERN (
                                                            RECORD_PATTERN {
                                                                definition,
                                                                is_incomplete
                                                            },
                                                            (loose_infix_lbraceleft, loose_infix_rbraceright)
                                                        );
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 67,  ( result,  loose_infix_lbrace1left,  loose_infix_rbrace1right),  rest671);
 } 
;  ( 193,  ( ( _,  ( values::QQ_RECORD_PATTERN record_pattern1,  record_pattern1left,  record_pattern1right)) !  rest671)) => {  my  result = values::QQ_RECORD_PATTERNS (\\  _ =  {  my  (
record_pattern as record_pattern1) = record_pattern1 ();
 ([record_pattern], FALSE);
 } );
 ( lr_table::NONTERM 71,  ( result,  record_pattern1left,  record_pattern1right),  rest671);
 } 
;  ( 194,  ( ( _,  ( _,  infix_dotdotdot1left,  infix_dotdotdot1right)) !  rest671)) => {  my  result = values::QQ_RECORD_PATTERNS (\\  _ =  (NIL, TRUE));
 ( lr_table::NONTERM 71,  ( result,  
infix_dotdotdot1left,  infix_dotdotdot1right),  rest671);
 } 
;  ( 195,  ( ( _,  ( values::QQ_RECORD_PATTERNS record_patterns1,  _,  record_patterns1right)) !  _ !  ( _,  ( values::QQ_RECORD_PATTERN record_pattern1,  record_pattern1left,  _)) !  rest671)) => { 
 my  result = values::QQ_RECORD_PATTERNS (\\  _ =  {  my  (record_pattern as record_pattern1) = record_pattern1 ();
 my  (record_patterns as record_patterns1) = record_patterns1 ();
 (
   {   my (a, (b, fx))
                                                            =
                                                            (record_pattern, record_patterns);

                                                        (a ! b, fx);
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 71,  ( result,  record_pattern1left,  record_patterns1right),  rest671);
 } 
;  ( 196,  ( ( _,  ( values::QQ_PATTERN pattern1,  _,  pattern1right)) !  _ !  ( _,  ( values::QQ_SELECTOR selector1,  selector1left,  _)) !  rest671)) => {  my  result = values::QQ_RECORD_PATTERN
 (\\  _ =  {  my  (selector as selector1) = selector1 ();
 my  (pattern as pattern1) = pattern1 ();
 ((selector, pattern));
 } );
 ( lr_table::NONTERM 70,  ( result,  selector1left,  pattern1right),  
rest671);
 } 
;  ( 197,  ( ( _,  ( values::VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_RECORD_PATTERN (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 (
make_label_symbol value_id,   VARIABLE_IN_PATTERN [ make_value_symbol value_id ] );
 } );
 ( lr_table::NONTERM 70,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 198,  ( ( _,  ( values::QQ_PATTERN pattern1,  _,  pattern1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_RECORD_PATTERN (\\  _
 =  {  my  (value_id as value_id1) = value_id1 ();
 my  (pattern as pattern1) = pattern1 ();
 (
   make_label_symbol value_id, 
                                                    AS_PATTERN {
                                                        variable_pattern   => VARIABLE_IN_PATTERN [make_value_symbol value_id], 
                                                        expression_pattern => pattern
                                                    }
                                                );
 } );
 
( lr_table::NONTERM 70,  ( result,  value_id1left,  pattern1right),  rest671);
 } 
;  ( 199,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_RECORD_PATTERN
 (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 (
   make_label_symbol value_id,
                                                    TYPE_CONSTRAINT_PATTERN {
                                                        pattern        => VARIABLE_IN_PATTERN [ make_value_symbol value_id ],
                                                        type_constraint => any_type
                                                    }
                                                )
;
 } );
 ( lr_table::NONTERM 70,  ( result,  value_id1left,  any_type1right),  rest671);
 } 
;  ( 200,  ( ( _,  ( values::QQ_PATTERN pattern1,  _,  pattern1right)) !  _ !  ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  _)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  
rest671)) => {  my  result = values::QQ_RECORD_PATTERN (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 my  (pattern as pattern1) = pattern1 ();

 (
   make_label_symbol value_id,
                                                    AS_PATTERN {
                                                        variable_pattern => TYPE_CONSTRAINT_PATTERN {
                                                                              pattern        => VARIABLE_IN_PATTERN [ make_value_symbol value_id ],
                                                                              type_constraint => any_type
                                                                  },
                                                        expression_pattern => pattern
                                                    }
                                                
);
 } );
 ( lr_table::NONTERM 70,  ( result,  value_id1left,  pattern1right),  rest671);
 } 
;  ( 201,  ( ( _,  ( values::QQ_PATTERN pattern1,  pattern1left,  pattern1right)) !  rest671)) => {  my  result = values::QQ_PATTERN_LIST (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 (
 [ pattern ] );
 } );
 ( lr_table::NONTERM 68,  ( result,  pattern1left,  pattern1right),  rest671);
 } 
;  ( 202,  ( ( _,  ( values::QQ_PATTERN_LIST pattern_list1,  _,  pattern_list1right)) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  pattern1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PATTERN_LIST (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 my  (pattern_list as pattern_list1) = pattern_list1 ();
 (   pattern ! pattern_list);
 } );
 ( lr_table::NONTERM 68,  ( 
result,  pattern1left,  pattern_list1right),  rest671);
 } 
;  ( 203,  ( ( _,  ( values::QQ_PATTERN pattern1,  pattern1left,  pattern1right)) !  rest671)) => {  my  result = values::QQ_OR_PATTERN_LIST (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 (
 [ pattern ] );
 } );
 ( lr_table::NONTERM 60,  ( result,  pattern1left,  pattern1right),  rest671);
 } 
;  ( 204,  ( ( _,  ( values::QQ_OR_PATTERN_LIST or_pattern_list1,  _,  or_pattern_list1right)) !  _ !  ( _,  ( values::QQ_PATTERN pattern1,  pattern1left,  _)) !  rest671)) => {  my  result = 
values::QQ_OR_PATTERN_LIST (\\  _ =  {  my  (pattern as pattern1) = pattern1 ();
 my  (or_pattern_list as or_pattern_list1) = or_pattern_list1 ();
 (pattern ! or_pattern_list);
 } );
 ( 
lr_table::NONTERM 60,  ( result,  pattern1left,  or_pattern_list1right),  rest671);
 } 
;  ( 205,  ( ( _,  ( values::QQ_NAMED_PACKAGES named_packages2,  _,  named_packages2right)) !  _ !  ( _,  ( values::QQ_NAMED_PACKAGES named_packages1,  named_packages1left,  _)) !  rest671)) => {  my 
 result = values::QQ_NAMED_PACKAGES (\\  _ =  {  my  named_packages1 = named_packages1 ();
 my  named_packages2 = named_packages2 ();
 (named_packages1 @ named_packages2);
 } );
 ( lr_table::NONTERM 
61,  ( result,  named_packages1left,  named_packages2right),  rest671);
 } 
;  ( 206,  ( ( _,  ( values::QQ_A_PACKAGE a_package1,  _,  (a_packageright as a_package1right))) !  _ !  ( _,  ( values::QQ_OPTIONAL_API_CAST optional_api_cast1,  _,  _)) !  ( _,  ( 
values::QQ_VALUE_ID value_id1,  value_idleft,  _)) !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_NAMED_PACKAGES (\\  _ =  {  my  (value_id as value_id1) = value_id1 ()
;
 my  (optional_api_cast as optional_api_cast1) = optional_api_cast1 ();
 my  (a_package as a_package1) = a_package1 ();
 (
   [   SOURCE_CODE_REGION_FOR_NAMED_PACKAGE (
                                                            NAMED_PACKAGE {
                                                                name_symbol => make_package_symbol value_id,
                                                                definition  => a_package, 
                                                                constraint  => optional_api_cast,
                                                                kind        => PLAIN_PACKAGE
                                                            },
                                                            (value_idleft, a_packageright)
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 61,  ( result,  my_t1left,  a_package1right),  rest671);
 } 
;  ( 207,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  (qualified_value_idleft as qualified_value_id1left),  (qualified_value_idright as qualified_value_id1right))) !  rest671)) =>
 {  my  result = values::QQ_A_PACKAGE (\\  _ =  {  my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 (
   (   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                            PACKAGE_BY_NAME (qualified_value_id make_package_symbol),
                                                            (qualified_value_idleft, qualified_value_idright)
                                                )   )   );
 } );
 ( 
lr_table::NONTERM 1,  ( result,  qualified_value_id1left,  qualified_value_id1right),  rest671);
 } 
;  ( 208,  ( ( _,  ( _,  _,  (end_tright as end_t1right))) !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package1,  _,  _)) !  ( _,  (
 _,  (begin_tleft as begin_t1left),  _)) !  rest671)) => {  my  result = values::QQ_A_PACKAGE (\\  _ =  {  my  (optional_declarations_and_expressions_in_package as 
optional_declarations_and_expressions_in_package1) = optional_declarations_and_expressions_in_package1 ();
 (
   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                        PACKAGE_DEFINITION  optional_declarations_and_expressions_in_package,
                                                        (begin_tleft, end_tright)
                                                )   );
 } );
 ( lr_table::NONTERM 1,  ( result, 
 begin_t1left,  end_t1right),  rest671);
 } 
;  ( 209,  ( ( _,  ( values::QQ_GENERIC_ARGS generic_args1,  _,  (generic_argsright as generic_args1right))) !  ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  (qualified_value_idleft as 
qualified_value_id1left),  _)) !  rest671)) => {  my  result = values::QQ_A_PACKAGE (\\  _ =  {  my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 my  (generic_args as 
generic_args1) = generic_args1 ();
 (
   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                        CALL_OF_GENERIC (qualified_value_id make_generic_symbol, generic_args),
                                                        (qualified_value_idleft, generic_argsright)
                                                )   );
 } );
 ( 
lr_table::NONTERM 1,  ( result,  qualified_value_id1left,  generic_args1right),  rest671);
 } 
;  ( 210,  ( ( _,  ( _,  _,  (end_tright as end_t1right))) !  ( _,  ( values::QQ_A_PACKAGE a_package1,  _,  _)) !  _ !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE 
optional_declarations_and_expressions_in_package1,  _,  _)) !  ( _,  ( _,  (let_tleft as let_t1left),  _)) !  rest671)) => {  my  result = values::QQ_A_PACKAGE (\\  _ =  {  my  (
optional_declarations_and_expressions_in_package as optional_declarations_and_expressions_in_package1) = optional_declarations_and_expressions_in_package1 ();
 my  (a_package as a_package1) = 
a_package1 ();
 (   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                        LET_IN_PACKAGE (optional_declarations_and_expressions_in_package, a_package),
                                                        (let_tleft, end_tright)
                                                )   );
 } );
 ( 
lr_table::NONTERM 1,  ( result,  let_t1left,  end_t1right),  rest671);
 } 
;  ( 211,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  (an_apiright as an_api1right))) !  _ !  _ !  ( _,  ( values::QQ_A_PACKAGE a_package1,  (a_packageleft as a_package1left),  _)) !  rest671)) => { 
 my  result = values::QQ_A_PACKAGE (\\  _ =  {  my  (a_package as a_package1) = a_package1 ();
 my  (an_api as an_api1) = an_api1 ();
 (
   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                        PACKAGE_CAST (a_package, WEAK_PACKAGE_CAST an_api),
                                                        (a_packageleft, an_apiright)
                                                )   );
 } );
 ( lr_table::NONTERM 1,  ( result,  a_package1left
,  an_api1right),  rest671);
 } 
;  ( 212,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  (an_apiright as an_api1right))) !  _ !  _ !  ( _,  ( values::QQ_A_PACKAGE a_package1,  (a_packageleft as a_package1left),  _)) !  rest671)) => { 
 my  result = values::QQ_A_PACKAGE (\\  _ =  {  my  (a_package as a_package1) = a_package1 ();
 my  (an_api as an_api1) = an_api1 ();
 (
   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                        PACKAGE_CAST (a_package, STRONG_PACKAGE_CAST an_api),
                                                        (a_packageleft, an_apiright)
                                                )   );
 } );
 ( lr_table::NONTERM 1,  ( result,  
a_package1left,  an_api1right),  rest671);
 } 
;  ( 213,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE (\\  _ =  (SEQUENTIAL_DECLARATIONS []));
 ( lr_table::NONTERM 54,  ( result,  default_position,  
default_position),  rest671);
 } 
;  ( 214,  ( ( _,  ( values::QQ_DECLARATIONS_IN_PACKAGE declarations_in_package1,  declarations_in_package1left,  declarations_in_package1right)) !  rest671)) => {  my  result = 
values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE (\\  _ =  {  my  (declarations_in_package as declarations_in_package1) = declarations_in_package1 ();
 (declarations_in_package);
 } );
 ( 
lr_table::NONTERM 54,  ( result,  declarations_in_package1left,  declarations_in_package1right),  rest671);
 } 
;  ( 215,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_DECLARATION_IN_PACKAGE declaration_in_package1,  declaration_in_package1left,  _)) !  rest671)) => {  my  result = 
values::QQ_DECLARATIONS_IN_PACKAGE (\\  _ =  {  my  (declaration_in_package as declaration_in_package1) = declaration_in_package1 ();
 (declaration_in_package);
 } );
 ( lr_table::NONTERM 20,  ( 
result,  declaration_in_package1left,  suffix_semi1right),  rest671);
 } 
;  ( 216,  ( ( _,  ( values::QQ_DECLARATIONS_IN_PACKAGE declarations_in_package1,  _,  declarations_in_package1right)) !  _ !  ( _,  ( values::QQ_DECLARATION_IN_PACKAGE declaration_in_package1,  (
declaration_in_packageleft as declaration_in_package1left),  declaration_in_packageright)) !  rest671)) => {  my  result = values::QQ_DECLARATIONS_IN_PACKAGE (\\  _ =  {  my  (declaration_in_package
 as declaration_in_package1) = declaration_in_package1 ();
 my  (declarations_in_package as declarations_in_package1) = declarations_in_package1 ();
 (
   make_declaration_sequence (
                                                        note_declaration_location (   declaration_in_package,
                                                                       declaration_in_packageleft,
                                                                       declaration_in_packageright
                                                                   ),
                                                        declarations_in_package
                                                )   
);
 } );
 ( lr_table::NONTERM 20,  ( result,  declaration_in_package1left,  declarations_in_package1right),  rest671);
 } 
;  ( 217,  ( ( _,  ( values::QQ_NAMED_PACKAGES named_packages1,  named_packages1left,  named_packages1right)) !  rest671)) => {  my  result = values::QQ_DECLARATION_IN_PACKAGE (\\  _ =  {  my  (
named_packages as named_packages1) = named_packages1 ();
 (PACKAGE_DECLARATIONS named_packages);
 } );
 ( lr_table::NONTERM 18,  ( result,  named_packages1left,  named_packages1right),  rest671);
 } 
;  ( 218,  ( ( _,  ( values::QQ_GENERIC_NAMINGS generic_namings1,  generic_namings1left,  generic_namings1right)) !  rest671)) => {  my  result = values::QQ_DECLARATION_IN_PACKAGE (\\  _ =  {  my  (
generic_namings as generic_namings1) = generic_namings1 ();
 (GENERIC_DECLARATIONS   generic_namings);
 } );
 ( lr_table::NONTERM 18,  ( result,  generic_namings1left,  generic_namings1right),  
rest671);
 } 
;  ( 219,  ( ( _,  ( values::QQ_LOCAL_DECLARATION_OR_EXPRESSION local_declaration_or_expression1,  (local_declaration_or_expressionleft as local_declaration_or_expression1left),  (
local_declaration_or_expressionright as local_declaration_or_expression1right))) !  rest671)) => {  my  result = values::QQ_DECLARATION_IN_PACKAGE (\\  _ =  {  my  (local_declaration_or_expression as 
local_declaration_or_expression1) = local_declaration_or_expression1 ();
 (
note_declaration_location (   local_declaration_or_expression,
                                                                local_declaration_or_expressionleft,
                                                                local_declaration_or_expressionright
                                                            )
                                                
);
 } );
 ( lr_table::NONTERM 18,  ( result,  local_declaration_or_expression1left,  local_declaration_or_expression1right),  rest671);
 } 
;  ( 220,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package2,  
optional_declarations_and_expressions_in_package2left,  optional_declarations_and_expressions_in_package2right)) !  _ !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE 
optional_declarations_and_expressions_in_package1,  optional_declarations_and_expressions_in_package1left,  optional_declarations_and_expressions_in_package1right)) !  ( _,  ( _,  local_t1left,  _))
 !  rest671)) => {  my  result = values::QQ_DECLARATION_IN_PACKAGE (\\  _ =  {  my  optional_declarations_and_expressions_in_package1 = optional_declarations_and_expressions_in_package1 ();
 my  
optional_declarations_and_expressions_in_package2 = optional_declarations_and_expressions_in_package2 ();
 (
   LOCAL_DECLARATIONS (
                                                        note_declaration_location (optional_declarations_and_expressions_in_package1,
                                                                    optional_declarations_and_expressions_in_package1left,
                                                                    optional_declarations_and_expressions_in_package1right
                                                                   ),
                                                        note_declaration_location (optional_declarations_and_expressions_in_package2,
                                                                    optional_declarations_and_expressions_in_package2left,
                                                                    optional_declarations_and_expressions_in_package2right
                                                                   )
                                                )   
);
 } );
 ( lr_table::NONTERM 18,  ( result,  local_t1left,  end_t1right),  rest671);
 } 
;  ( 221,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS (\\  _ =  (SEQUENTIAL_DECLARATIONS []));
 ( lr_table::NONTERM 55,  ( result,  default_position,  
default_position),  rest671);
 } 
;  ( 222,  ( ( _,  ( values::QQ_DECLARATIONS_IN_GENERIC_ARGS declarations_in_generic_args1,  declarations_in_generic_args1left,  declarations_in_generic_args1right)) !  rest671)) => {  my  result = 
values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS (\\  _ =  {  my  (declarations_in_generic_args as declarations_in_generic_args1) = declarations_in_generic_args1 ();
 (declarations_in_generic_args)
;
 } );
 ( lr_table::NONTERM 55,  ( result,  declarations_in_generic_args1left,  declarations_in_generic_args1right),  rest671);
 } 
;  ( 223,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_DECLARATION_IN_GENERIC_ARGS declaration_in_generic_args1,  declaration_in_generic_args1left,  _)) !  rest671)) => {  my  result =
 values::QQ_DECLARATIONS_IN_GENERIC_ARGS (\\  _ =  {  my  (declaration_in_generic_args as declaration_in_generic_args1) = declaration_in_generic_args1 ();
 (declaration_in_generic_args);
 } );
 ( 
lr_table::NONTERM 21,  ( result,  declaration_in_generic_args1left,  suffix_semi1right),  rest671);
 } 
;  ( 224,  ( ( _,  ( values::QQ_DECLARATIONS_IN_GENERIC_ARGS declarations_in_generic_args1,  _,  declarations_in_generic_args1right)) !  _ !  ( _,  ( values::QQ_DECLARATION_IN_GENERIC_ARGS 
declaration_in_generic_args1,  (declaration_in_generic_argsleft as declaration_in_generic_args1left),  declaration_in_generic_argsright)) !  rest671)) => {  my  result = 
values::QQ_DECLARATIONS_IN_GENERIC_ARGS (\\  _ =  {  my  (declaration_in_generic_args as declaration_in_generic_args1) = declaration_in_generic_args1 ();
 my  (declarations_in_generic_args as 
declarations_in_generic_args1) = declarations_in_generic_args1 ();
 (
   make_declaration_sequence (
                                                        note_declaration_location (   declaration_in_generic_args,
                                                                       declaration_in_generic_argsleft,
                                                                       declaration_in_generic_argsright
                                                                   ),
                                                        declarations_in_generic_args
                                                )   
);
 } );
 ( lr_table::NONTERM 21,  ( result,  declaration_in_generic_args1left,  declarations_in_generic_args1right),  rest671);
 } 
;  ( 225,  ( ( _,  ( values::QQ_NAMED_PACKAGES named_packages1,  named_packages1left,  named_packages1right)) !  rest671)) => {  my  result = values::QQ_DECLARATION_IN_GENERIC_ARGS (\\  _ =  {  my  (
named_packages as named_packages1) = named_packages1 ();
 (PACKAGE_DECLARATIONS named_packages);
 } );
 ( lr_table::NONTERM 19,  ( result,  named_packages1left,  named_packages1right),  rest671);
 } 
;  ( 226,  ( ( _,  ( values::QQ_GENERIC_NAMINGS generic_namings1,  generic_namings1left,  generic_namings1right)) !  rest671)) => {  my  result = values::QQ_DECLARATION_IN_GENERIC_ARGS (\\  _ =  { 
 my  (generic_namings as generic_namings1) = generic_namings1 ();
 (GENERIC_DECLARATIONS   generic_namings);
 } );
 ( lr_table::NONTERM 19,  ( result,  generic_namings1left,  generic_namings1right),  
rest671);
 } 
;  ( 227,  ( ( _,  ( values::QQ_LOCAL_DECLARATION local_declaration1,  (local_declarationleft as local_declaration1left),  (local_declarationright as local_declaration1right))) !  rest671)) => {  my  
result = values::QQ_DECLARATION_IN_GENERIC_ARGS (\\  _ =  {  my  (local_declaration as local_declaration1) = local_declaration1 ();
 (
note_declaration_location (   local_declaration,
                                                                local_declarationleft,
                                                                local_declarationright
                                                            )
                                                
);
 } );
 ( lr_table::NONTERM 19,  ( result,  local_declaration1left,  local_declaration1right),  rest671);
 } 
;  ( 228,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package2,  
optional_declarations_and_expressions_in_package2left,  optional_declarations_and_expressions_in_package2right)) !  _ !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE 
optional_declarations_and_expressions_in_package1,  optional_declarations_and_expressions_in_package1left,  optional_declarations_and_expressions_in_package1right)) !  ( _,  ( _,  local_t1left,  _))
 !  rest671)) => {  my  result = values::QQ_DECLARATION_IN_GENERIC_ARGS (\\  _ =  {  my  optional_declarations_and_expressions_in_package1 = optional_declarations_and_expressions_in_package1 ();
 my  
optional_declarations_and_expressions_in_package2 = optional_declarations_and_expressions_in_package2 ();
 (
   LOCAL_DECLARATIONS (
                                                        note_declaration_location (optional_declarations_and_expressions_in_package1,
                                                                    optional_declarations_and_expressions_in_package1left,
                                                                    optional_declarations_and_expressions_in_package1right
                                                                   ),
                                                        note_declaration_location (optional_declarations_and_expressions_in_package2,
                                                                    optional_declarations_and_expressions_in_package2left,
                                                                    optional_declarations_and_expressions_in_package2right
                                                                   )
                                                )   
);
 } );
 ( lr_table::NONTERM 19,  ( result,  local_t1left,  end_t1right),  rest671);
 } 
;  ( 229,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_API_CAST (\\  _ =  (     NO_PACKAGE_CAST         ));
 ( lr_table::NONTERM 80,  ( result,  default_position,  default_position),  rest671)
;
 } 
;  ( 230,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  _ !  ( _,  ( _,  suffix_colon1left,  _)) !  rest671)) => {  my  result = values::QQ_OPTIONAL_API_CAST (\\  _ =  {  my  (an_api
 as an_api1) = an_api1 ();
 (   WEAK_PACKAGE_CAST (an_api));
 } );
 ( lr_table::NONTERM 80,  ( result,  suffix_colon1left,  an_api1right),  rest671);
 } 
;  ( 231,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  _ !  ( _,  ( _,  suffix_colon1left,  _)) !  rest671)) => {  my  result = values::QQ_OPTIONAL_API_CAST (\\  _ =  {  my  (an_api
 as an_api1) = an_api1 ();
 ( STRONG_PACKAGE_CAST (an_api));
 } );
 ( lr_table::NONTERM 80,  ( result,  suffix_colon1left,  an_api1right),  rest671);
 } 
;  ( 232,  ( ( _,  ( values::QQ_API_NAMINGS api_namings2,  _,  api_namings2right)) !  _ !  ( _,  ( values::QQ_API_NAMINGS api_namings1,  api_namings1left,  _)) !  rest671)) => {  my  result = 
values::QQ_API_NAMINGS (\\  _ =  {  my  api_namings1 = api_namings1 ();
 my  api_namings2 = api_namings2 ();
 (api_namings1 @ api_namings2);
 } );
 ( lr_table::NONTERM 3,  ( result,  api_namings1left
,  api_namings2right),  rest671);
 } 
;  ( 233,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  _ !  ( _,  ( values::TYPE_ID type_id1,  _,  _)) !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = 
values::QQ_API_NAMINGS (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 my  (an_api as an_api1) = an_api1 ();
 (
   [   NAMED_API {
                                                            name_symbol => make_api_symbol type_id,
                                                            definition => an_api
                                                        }
                                                    ]
                                                );
 } );
 ( lr_table::NONTERM 3,  ( result,  my_t1left,  an_api1right)
,  rest671);
 } 
;  ( 234,  ( ( _,  ( values::TYPE_ID type_id1,  (type_idleft as type_id1left),  (type_idright as type_id1right))) !  rest671)) => {  my  result = values::QQ_AN_API (\\  _ =  {  my  (type_id as 
type_id1) = type_id1 ();
 (   SOURCE_CODE_REGION_FOR_API (
                                                        API_BY_NAME (make_api_symbol type_id),
                                                        (type_idleft, type_idright)
                                                )   );
 } );
 ( lr_table::NONTERM 0,  ( 
result,  type_id1left,  type_id1right),  rest671);
 } 
;  ( 235,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_OPTIONAL_API_ELEMENTS optional_api_elements1,  optional_api_elementsleft,  optional_api_elementsright)) !  ( _,  ( _,  begin_t1left,  _
)) !  rest671)) => {  my  result = values::QQ_AN_API (\\  _ =  {  my  (optional_api_elements as optional_api_elements1) = optional_api_elements1 ();
 (
   SOURCE_CODE_REGION_FOR_API (
                                                        API_DEFINITION (optional_api_elements),
                                                        (optional_api_elementsleft, optional_api_elementsright)
                                                )   );
 } );
 ( lr_table::NONTERM 0,  ( result,  
begin_t1left,  end_t1right),  rest671);
 } 
;  ( 236,  ( ( _,  ( _,  _,  end_t1right)) !  ( _,  ( values::QQ_WHERE_ON_API where_on_api1,  _,  where_on_apiright)) !  _ !  ( _,  ( values::QQ_AN_API an_api1,  (an_apileft as an_api1left),  _)) !  
rest671)) => {  my  result = values::QQ_AN_API (\\  _ =  {  my  (an_api as an_api1) = an_api1 ();
 my  (where_on_api as where_on_api1) = where_on_api1 ();
 (
   SOURCE_CODE_REGION_FOR_API (
                                                        API_WITH_WHERE_SPECS (an_api, where_on_api),
                                                        (an_apileft, where_on_apiright)
                                                )   );
 } );
 ( lr_table::NONTERM 0,  ( result,  an_api1left,  
end_t1right),  rest671);
 } 
;  ( 237,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_API_ELEMENTS (\\  _ =  ( [] ));
 ( lr_table::NONTERM 53,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 238,  ( ( _,  ( values::QQ_API_ELEMENTS api_elements1,  api_elements1left,  api_elements1right)) !  rest671)) => {  my  result = values::QQ_OPTIONAL_API_ELEMENTS (\\  _ =  {  my  (api_elements
 as api_elements1) = api_elements1 ();
 (api_elements);
 } );
 ( lr_table::NONTERM 53,  ( result,  api_elements1left,  api_elements1right),  rest671);
 } 
;  ( 239,  ( ( _,  ( values::QQ_API_ELEMENTS api_elements1,  _,  api_elements1right)) !  _ !  ( _,  ( values::QQ_API_ELEMENT api_element1,  api_element1left,  _)) !  rest671)) => {  my  result = 
values::QQ_API_ELEMENTS (\\  _ =  {  my  (api_element as api_element1) = api_element1 ();
 my  (api_elements as api_elements1) = api_elements1 ();
 (api_element @ api_elements);
 } );
 ( 
lr_table::NONTERM 5,  ( result,  api_element1left,  api_elements1right),  rest671);
 } 
;  ( 240,  ( ( _,  ( _,  _,  suffix_semi1right)) !  ( _,  ( values::QQ_API_ELEMENT api_element1,  api_element1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENTS (\\  _ =  {  my  (
api_element as api_element1) = api_element1 ();
 (api_element);
 } );
 ( lr_table::NONTERM 5,  ( result,  api_element1left,  suffix_semi1right),  rest671);
 } 
;  ( 241,  ( ( _,  ( values::QQ_PACKAGE_IN_API package_in_api1,  _,  package_in_api1right)) !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  {  my 
 (package_in_api as package_in_api1) = package_in_api1 ();
 ( [ PACKAGES_IN_API package_in_api ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  my_t1left,  package_in_api1right),  rest671);
 } 
;  ( 242,  ( ( _,  ( values::QQ_GENERIC_IN_API generic_in_api1,  _,  generic_in_api1right)) !  _ !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  { 
 my  (generic_in_api as generic_in_api1) = generic_in_api1 ();
 ( [ GENERICS_IN_API generic_in_api ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  my_t1left,  generic_in_api1right),  rest671);
 } 
;  ( 243,  ( ( _,  ( values::QQ_TYPE_IN_API type_in_api1,  _,  type_in_api1right)) !  ( _,  ( _,  type_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  {  my  (type_in_api
 as type_in_api1) = type_in_api1 ();
 ( [ TYPES_IN_API (type_in_api, FALSE) ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  type_t1left,  type_in_api1right),  rest671);
 } 
;  ( 244,  ( ( _,  ( values::QQ_TYPE_IN_API type_in_api1,  _,  type_in_api1right)) !  ( _,  ( _,  eqtype_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  {  my  (
type_in_api as type_in_api1) = type_in_api1 ();
 ( [ TYPES_IN_API (type_in_api, TRUE ) ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  eqtype_t1left,  type_in_api1right),  rest671);
 } 
;  ( 245,  ( ( _,  ( values::QQ_VALUE_IN_API value_in_api1,  _,  value_in_api1right)) !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  {  my  (
value_in_api as value_in_api1) = value_in_api1 ();
 ( [ VALUES_IN_API value_in_api ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  my_t1left,  value_in_api1right),  rest671);
 } 
;  ( 246,  ( ( _,  ( values::QQ_EXCEPTION_IN_API exception_in_api1,  _,  exception_in_api1right)) !  ( _,  ( _,  exception_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ = 
 {  my  (exception_in_api as exception_in_api1) = exception_in_api1 ();
 ( [ EXCEPTIONS_IN_API exception_in_api ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  exception_t1left,  exception_in_api1right
),  rest671);
 } 
;  ( 247,  ( ( _,  ( values::QQ_SUMTYPES sumtypes1,  _,  sumtypes1right)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  {  my  (sumtypes as 
sumtypes1) = sumtypes1 ();
 ( [ VALCONS_IN_API { sumtypes, with_types => NIL } ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  enum_t1left,  sumtypes1right),  rest671);
 } 
;  ( 248,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  ( _,  ( _,  include_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  {  my  (an_api as an_api1) = 
an_api1 ();
 ( [ IMPORT_IN_API an_api ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  include_t1left,  an_api1right),  rest671);
 } 
;  ( 249,  ( ( _,  ( values::QQ_IDENTS idents1,  _,  idents1right)) !  ( _,  ( values::QQ_VALUE_ID value_id1,  _,  _)) !  ( _,  ( _,  include_t1left,  _)) !  rest671)) => {  my  result = 
values::QQ_API_ELEMENT (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (idents as idents1) = idents1 ();
 (IMPORT_IN_API (API_BY_NAME (fast_symbol::make_api_symbol value_id)) ! idents)
;
 } );
 ( lr_table::NONTERM 4,  ( result,  include_t1left,  idents1right),  rest671);
 } 
;  ( 250,  ( ( _,  ( values::QQ_SHARING_IN_API sharing_in_api1,  _,  sharing_in_api1right)) !  ( _,  ( _,  sharing_t1left,  _)) !  rest671)) => {  my  result = values::QQ_API_ELEMENT (\\  _ =  {  my 
 (sharing_in_api as sharing_in_api1) = sharing_in_api1 ();
 (sharing_in_api);
 } );
 ( lr_table::NONTERM 4,  ( result,  sharing_t1left,  sharing_in_api1right),  rest671);
 } 
;  ( 251,  ( ( _,  ( values::QQ_NAMED_TYPES named_types1,  _,  named_types1right)) !  _ !  ( _,  ( values::QQ_SUMTYPES sumtypes1,  _,  _)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  
result = values::QQ_API_ELEMENT (\\  _ =  {  my  (sumtypes as sumtypes1) = sumtypes1 ();
 my  (named_types as named_types1) = named_types1 ();
 (
 [ VALCONS_IN_API { sumtypes, with_types => named_types  } ] );
 } );
 ( lr_table::NONTERM 4,  ( result,  enum_t1left,  named_types1right),  rest671);
 } 
;  ( 252,  ( ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_IDENTS (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 (
 [ IMPORT_IN_API (API_BY_NAME (fast_symbol::make_api_symbol value_id)) ] );
 } );
 ( lr_table::NONTERM 45,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 253,  ( ( _,  ( values::QQ_IDENTS idents1,  _,  idents1right)) !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_IDENTS (\\  _ =  {  my  (
value_id as value_id1) = value_id1 ();
 my  (idents as idents1) = idents1 ();
 (   IMPORT_IN_API (API_BY_NAME (fast_symbol::make_api_symbol value_id)) ! idents);
 } );
 ( lr_table::NONTERM 45,  ( 
result,  value_id1left,  idents1right),  rest671);
 } 
;  ( 254,  ( ( _,  ( values::QQ_PACKAGE_IN_API package_in_api2,  _,  package_in_api2right)) !  _ !  ( _,  ( values::QQ_PACKAGE_IN_API package_in_api1,  package_in_api1left,  _)) !  rest671)) => {  my 
 result = values::QQ_PACKAGE_IN_API (\\  _ =  {  my  package_in_api1 = package_in_api1 ();
 my  package_in_api2 = package_in_api2 ();
 (package_in_api1 @ package_in_api2);
 } );
 ( lr_table::NONTERM 
63,  ( result,  package_in_api1left,  package_in_api2right),  rest671);
 } 
;  ( 255,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  _ !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_PACKAGE_IN_API (\\  _
 =  {  my  (value_id as value_id1) = value_id1 ();
 my  (an_api as an_api1) = an_api1 ();
 ( [ (make_package_symbol value_id, an_api, NULL) ] );
 } );
 ( lr_table::NONTERM 63,  ( result,  
value_id1left,  an_api1right),  rest671);
 } 
;  ( 256,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  _,  qualified_value_id1right)) !  _ !  ( _,  ( values::QQ_AN_API an_api1,  _,  _)) !  _ !  ( _,  ( values::QQ_VALUE_ID 
value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_PACKAGE_IN_API (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (an_api as an_api1) = an_api1 ();
 my  (
qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 ( [ (make_package_symbol value_id, an_api, THE (qualified_value_id make_package_symbol)) ] );
 } );
 ( lr_table::NONTERM 63,  ( 
result,  value_id1left,  qualified_value_id1right),  rest671);
 } 
;  ( 257,  ( ( _,  ( values::QQ_GENERIC_IN_API generic_in_api2,  _,  generic_in_api2right)) !  _ !  ( _,  ( values::QQ_GENERIC_IN_API generic_in_api1,  generic_in_api1left,  _)) !  rest671)) => {  my 
 result = values::QQ_GENERIC_IN_API (\\  _ =  {  my  generic_in_api1 = generic_in_api1 ();
 my  generic_in_api2 = generic_in_api2 ();
 (generic_in_api1 @ generic_in_api2);
 } );
 ( lr_table::NONTERM 
84,  ( result,  generic_in_api1left,  generic_in_api2right),  rest671);
 } 
;  ( 258,  ( ( _,  ( values::QQ_A_GENERIC_API a_generic_api1,  _,  a_generic_api1right)) !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = 
values::QQ_GENERIC_IN_API (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (a_generic_api as a_generic_api1) = a_generic_api1 ();
 ( [ (make_generic_symbol value_id, a_generic_api) ] )
;
 } );
 ( lr_table::NONTERM 84,  ( result,  value_id1left,  a_generic_api1right),  rest671);
 } 
;  ( 259,  ( ( _,  ( values::QQ_VALUE_ID value_id1,  _,  value_id1right)) !  ( _,  ( _,  suffix_colon1left,  _)) !  rest671)) => {  my  result = values::QQ_A_GENERIC_API (\\  _ =  {  my  (value_id as 
value_id1) = value_id1 ();
 (GENERIC_API_BY_NAME (make_generic_api_symbol value_id));
 } );
 ( lr_table::NONTERM 35,  ( result,  suffix_colon1left,  value_id1right),  rest671);
 } 
;  ( 260,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  _ !  ( _,  ( values::QQ_GENERIC_PARAMETERS generic_parameters1,  generic_parameters1left,  _)) !  rest671)) => {  my  result = 
values::QQ_A_GENERIC_API (\\  _ =  {  my  (generic_parameters as generic_parameters1) = generic_parameters1 ();
 my  (an_api as an_api1) = an_api1 ();
 (
   GENERIC_API_DEFINITION {
                                                        parameter => generic_parameters,
                                                        result    => an_api
                                                    }
                                                );
 } );
 ( lr_table::NONTERM 35,  ( result,  generic_parameters1left,  an_api1right), 
 rest671);
 } 
;  ( 261,  ( ( _,  ( values::QQ_TYPE_IN_API type_in_api2,  _,  type_in_api2right)) !  _ !  ( _,  ( values::QQ_TYPE_IN_API type_in_api1,  type_in_api1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TYPE_IN_API (\\  _ =  {  my  type_in_api1 = type_in_api1 ();
 my  type_in_api2 = type_in_api2 ();
 (type_in_api1 @ type_in_api2);
 } );
 ( lr_table::NONTERM 91,  ( result,  type_in_api1left
,  type_in_api2right),  rest671);
 } 
;  ( 262,  ( ( _,  ( values::VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_TYPE_IN_API (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 (
 [ (make_type_symbol value_id, NIL, NULL        ) ] );
 } );
 ( lr_table::NONTERM 91,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 263,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_TYPE_IN_API (\\  _
 =  {  my  (value_id as value_id1) = value_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 ( [ (make_type_symbol value_id, NIL, THE any_type) ] );
 } );
 ( lr_table::NONTERM 91,  ( result,  
value_id1left,  any_type1right),  rest671);
 } 
;  ( 264,  ( ( _,  ( values::QQ_EXCEPTION_IN_API exception_in_api2,  _,  exception_in_api2right)) !  _ !  ( _,  ( values::QQ_EXCEPTION_IN_API exception_in_api1,  exception_in_api1left,  _)) !  rest671
)) => {  my  result = values::QQ_EXCEPTION_IN_API (\\  _ =  {  my  exception_in_api1 = exception_in_api1 ();
 my  exception_in_api2 = exception_in_api2 ();
 (exception_in_api1 @ exception_in_api2)
;
 } );
 ( lr_table::NONTERM 30,  ( result,  exception_in_api1left,  exception_in_api2right),  rest671);
 } 
;  ( 265,  ( ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  value_id1right)) !  rest671)) => {  my  result = values::QQ_EXCEPTION_IN_API (\\  _ =  {  my  (value_id as value_id1) = value_id1
 ();
 ( [ (make_value_symbol value_id, NULL         ) ] );
 } );
 ( lr_table::NONTERM 30,  ( result,  value_id1left,  value_id1right),  rest671);
 } 
;  ( 266,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_EXCEPTION_IN_API
 (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 ( [ (make_value_symbol value_id, THE any_type) ] );
 } );
 ( lr_table::NONTERM 30,  ( result,  
value_id1left,  any_type1right),  rest671);
 } 
;  ( 267,  ( ( _,  ( values::QQ_VALUE_IN_API value_in_api2,  _,  value_in_api2right)) !  _ !  ( _,  ( values::QQ_VALUE_IN_API value_in_api1,  value_in_api1left,  _)) !  rest671)) => {  my  result = 
values::QQ_VALUE_IN_API (\\  _ =  {  my  value_in_api1 = value_in_api1 ();
 my  value_in_api2 = value_in_api2 ();
 (value_in_api1 @ value_in_api2);
 } );
 ( lr_table::NONTERM 93,  ( result,  
value_in_api1left,  value_in_api2right),  rest671);
 } 
;  ( 268,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  _ !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_VALUE_IN_API
 (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 ( [ (make_value_symbol value_id, any_type) ] );
 } );
 ( lr_table::NONTERM 93,  ( result,  
value_id1left,  any_type1right),  rest671);
 } 
;  ( 269,  ( ( _,  ( values::QQ_SHARING_IN_API sharing_in_api2,  _,  sharing_in_api2right)) !  _ !  ( _,  ( values::QQ_SHARING_IN_API sharing_in_api1,  sharing_in_api1left,  _)) !  rest671)) => {  my 
 result = values::QQ_SHARING_IN_API (\\  _ =  {  my  sharing_in_api1 = sharing_in_api1 ();
 my  sharing_in_api2 = sharing_in_api2 ();
 (sharing_in_api1 @ sharing_in_api2);
 } );
 ( lr_table::NONTERM 
79,  ( result,  sharing_in_api1left,  sharing_in_api2right),  rest671);
 } 
;  ( 270,  ( ( _,  ( values::QQ_PATH_EQUATION path_equation1,  path_equationleft,  (path_equationright as path_equation1right))) !  ( _,  ( _,  type_t1left,  _)) !  rest671)) => {  my  result = 
values::QQ_SHARING_IN_API (\\  _ =  {  my  (path_equation as path_equation1) = path_equation1 ();
 (
   [   SOURCE_CODE_REGION_FOR_API_ELEMENT (
                                                            TYPE_SHARING_IN_API (path_equation make_type_symbol),
                                                            (path_equationleft, path_equationright)
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 79,  ( result,  type_t1left,  path_equation1right),  rest671);
 } 
;  ( 271,  ( ( _,  ( values::QQ_PATH_EQUATION path_equation1,  (path_equationleft as path_equation1left),  (path_equationright as path_equation1right))) !  rest671)) => {  my  result = 
values::QQ_SHARING_IN_API (\\  _ =  {  my  (path_equation as path_equation1) = path_equation1 ();
 (
   [   SOURCE_CODE_REGION_FOR_API_ELEMENT (
                                                            PACKAGE_SHARING_IN_API (path_equation make_package_symbol),
                                                            (path_equationleft, path_equationright)
                                                        )
                                                    ]
                                                );
 } )
;
 ( lr_table::NONTERM 79,  ( result,  path_equation1left,  path_equation1right),  rest671);
 } 
;  ( 272,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id2,  _,  qualified_value_id2right)) !  _ !  ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  qualified_value_id1left,  _)
) !  rest671)) => {  my  result = values::QQ_PATH_EQUATION (\\  _ =  {  my  qualified_value_id1 = qualified_value_id1 ();
 my  qualified_value_id2 = qualified_value_id2 ();
 (
\\ kind = [qualified_value_id1 kind,   qualified_value_id2 kind]);
 } );
 ( lr_table::NONTERM 65,  ( result,  qualified_value_id1left,  qualified_value_id2right),  rest671);
 } 
;  ( 273,  ( ( _,  ( values::QQ_PATH_EQUATION path_equation1,  _,  path_equation1right)) !  _ !  ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  qualified_value_id1left,  _)) !  rest671))
 => {  my  result = values::QQ_PATH_EQUATION (\\  _ =  {  my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 my  (path_equation as path_equation1) = path_equation1 ();
 (
\\ kind =  qualified_value_id kind ! path_equation kind);
 } );
 ( lr_table::NONTERM 65,  ( result,  qualified_value_id1left,  path_equation1right),  rest671);
 } 
;  ( 274,  ( ( _,  ( values::QQ_WHERE_ON_API where_on_api2,  _,  where_on_api2right)) !  _ !  ( _,  ( values::QQ_WHERE_ON_API where_on_api1,  where_on_api1left,  _)) !  rest671)) => {  my  result = 
values::QQ_WHERE_ON_API (\\  _ =  {  my  where_on_api1 = where_on_api1 ();
 my  where_on_api2 = where_on_api2 ();
 (where_on_api1 @ where_on_api2);
 } );
 ( lr_table::NONTERM 94,  ( result,  
where_on_api1left,  where_on_api2right),  rest671);
 } 
;  ( 275,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id2,  _,  qualified_value_id2right)) !  _ !  ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  qualified_value_id1left,  _)
) !  rest671)) => {  my  result = values::QQ_WHERE_ON_API (\\  _ =  {  my  qualified_value_id1 = qualified_value_id1 ();
 my  qualified_value_id2 = qualified_value_id2 ();
 (
 [ WHERE_PACKAGE (qualified_value_id1 make_package_symbol, qualified_value_id2 make_package_symbol) ] );
 } );
 ( lr_table::NONTERM 94,  ( result,  qualified_value_id1left,  qualified_value_id2right)
,  rest671);
 } 
;  ( 276,  ( ( _,  ( values::QQ_ANY_TYPE any_type1,  _,  any_type1right)) !  _ !  ( _,  ( values::QQ_QUALIFIED_TYPE_ID qualified_type_id1,  _,  _)) !  ( _,  ( _,  type_t1left,  _)) !  rest671)) => { 
 my  result = values::QQ_WHERE_ON_API (\\  _ =  {  my  (qualified_type_id as qualified_type_id1) = qualified_type_id1 ();
 my  (any_type as any_type1) = any_type1 ();
 (
 [ WHERE_TYPE      (qualified_type_id make_type_symbol, NIL, any_type) ] );
 } );
 ( lr_table::NONTERM 94,  ( result,  type_t1left,  any_type1right),  rest671);
 } 
;  ( 277,  ( ( _,  ( values::QQ_GENERIC_NAMINGS generic_namings2,  _,  generic_namings2right)) !  _ !  ( _,  ( values::QQ_GENERIC_NAMINGS generic_namings1,  generic_namings1left,  _)) !  rest671)) =>
 {  my  result = values::QQ_GENERIC_NAMINGS (\\  _ =  {  my  generic_namings1 = generic_namings1 ();
 my  generic_namings2 = generic_namings2 ();
 (generic_namings1 @ generic_namings2);
 } );
 ( 
lr_table::NONTERM 40,  ( result,  generic_namings1left,  generic_namings2right),  rest671);
 } 
;  ( 278,  ( ( _,  ( values::QQ_A_PACKAGE a_package1,  _,  (a_packageright as a_package1right))) !  _ !  ( _,  ( values::QQ_OPTIONAL_API_CAST optional_api_cast1,  _,  _)) !  ( _,  ( 
values::QQ_GENERIC_PARAMETERS generic_parameters1,  _,  _)) !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_idleft,  _)) !  _ !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = 
values::QQ_GENERIC_NAMINGS (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (generic_parameters as generic_parameters1) = generic_parameters1 ();
 my  (optional_api_cast as 
optional_api_cast1) = optional_api_cast1 ();
 my  (a_package as a_package1) = a_package1 ();
 (
   [   SOURCE_CODE_REGION_FOR_NAMED_GENERIC (
                                                            NAMED_GENERIC {
                                                                name_symbol => make_generic_symbol value_id,
                                                                definition => GENERIC_DEFINITION {
                                                                                 parameters => generic_parameters,
                                                                                 body       => a_package,       
                                                                                 constraint => optional_api_cast
                                                                             }
                                                            },
                                                            (value_idleft, a_packageright)
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 40,  ( result,  my_t1left,  a_package1right),  rest671);
 } 
;  ( 279,  ( ( _,  ( values::QQ_GENERIC_EXPRESSION generic_expression1,  _,  (generic_expressionright as generic_expression1right))) !  _ !  ( _,  ( values::QQ_OPTIONAL_GENERIC_API_CAST 
optional_generic_api_cast1,  _,  _)) !  ( _,  ( values::QQ_VALUE_ID value_id1,  value_idleft,  _)) !  _ !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_NAMINGS
 (\\  _ =  {  my  (value_id as value_id1) = value_id1 ();
 my  (optional_generic_api_cast as optional_generic_api_cast1) = optional_generic_api_cast1 ();
 my  (generic_expression as 
generic_expression1) = generic_expression1 ();
 (
   [   SOURCE_CODE_REGION_FOR_NAMED_GENERIC (
                                                            NAMED_GENERIC {
                                                                name_symbol => make_generic_symbol value_id,
                                                                definition => generic_expression (optional_generic_api_cast)
                                                            },
                                                            (value_idleft, generic_expressionright)
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 40,  ( result,  my_t1left,  generic_expression1right),  rest671);
 } 
;  ( 280,  ( ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  qualified_value_id1left,  qualified_value_id1right)) !  rest671)) => {  my  result = values::QQ_GENERIC_EXPRESSION (\\  _ =  { 
 my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 (\\ constraint = GENERIC_BY_NAME (qualified_value_id make_generic_symbol, constraint));
 } );
 ( lr_table::NONTERM 41,  ( 
result,  qualified_value_id1left,  qualified_value_id1right),  rest671);
 } 
;  ( 281,  ( ( _,  ( values::QQ_GENERIC_ARGS generic_args1,  _,  (generic_argsright as generic_args1right))) !  ( _,  ( values::QQ_QUALIFIED_VALUE_ID qualified_value_id1,  (qualified_value_idleft as 
qualified_value_id1left),  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_EXPRESSION (\\  _ =  {  my  (qualified_value_id as qualified_value_id1) = qualified_value_id1 ();
 my  (generic_args
 as generic_args1) = generic_args1 ();
 (
\\ constraint = SOURCE_CODE_REGION_FOR_GENERIC (
                                                                      CONSTRAINED_CALL_OF_GENERIC (
                                                                          qualified_value_id make_generic_symbol,
                                                                          generic_args,
                                                                          constraint
                                                                      ),
                                                                      (qualified_value_idleft, generic_argsright)
                                                )                 
);
 } );
 ( lr_table::NONTERM 41,  ( result,  qualified_value_id1left,  generic_args1right),  rest671);
 } 
;  ( 282,  ( ( _,  ( _,  _,  (end_tright as end_t1right))) !  ( _,  ( values::QQ_GENERIC_EXPRESSION generic_expression1,  _,  _)) !  _ !  ( _,  ( 
values::QQ_OPTIONAL_DECLARATIONS_AND_EXPRESSIONS_IN_PACKAGE optional_declarations_and_expressions_in_package1,  _,  _)) !  ( _,  ( _,  (let_tleft as let_t1left),  _)) !  rest671)) => {  my  result = 
values::QQ_GENERIC_EXPRESSION (\\  _ =  {  my  (optional_declarations_and_expressions_in_package as optional_declarations_and_expressions_in_package1) = 
optional_declarations_and_expressions_in_package1 ();
 my  (generic_expression as generic_expression1) = generic_expression1 ();
 (
\\ constraint = SOURCE_CODE_REGION_FOR_GENERIC (
                                                                      LET_IN_GENERIC (optional_declarations_and_expressions_in_package, generic_expression constraint),
                                                                      (let_tleft, end_tright)
                                                )                 
);
 } );
 ( lr_table::NONTERM 41,  ( result,  let_t1left,  end_t1right),  rest671);
 } 
;  ( 283,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_A_PACKAGE a_package1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_ARGS (\\  _ =  { 
 my  (a_package as a_package1) = a_package1 ();
 ([(a_package, TRUE)]);
 } );
 ( lr_table::NONTERM 83,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 284,  ( ( _,  ( values::QQ_GENERIC_ARGS generic_args1,  _,  generic_args1right)) !  _ !  ( _,  ( values::QQ_A_PACKAGE a_package1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  
result = values::QQ_GENERIC_ARGS (\\  _ =  {  my  (a_package as a_package1) = a_package1 ();
 my  (generic_args as generic_args1) = generic_args1 ();
 ((a_package, TRUE) ! generic_args);
 } );
 ( 
lr_table::NONTERM 83,  ( result,  lparen1left,  generic_args1right),  rest671);
 } 
;  ( 285,  ( ( _,  ( values::QQ_GENERIC_ARGS generic_args1,  _,  generic_args1right)) !  _ !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS optional_declarations_in_generic_args1,  
optional_declarations_in_generic_argsleft,  optional_declarations_in_generic_argsright)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_ARGS (\\  _ =  {  my  (
optional_declarations_in_generic_args as optional_declarations_in_generic_args1) = optional_declarations_in_generic_args1 ();
 my  (generic_args as generic_args1) = generic_args1 ();
 (
   (   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                            PACKAGE_DEFINITION
                                                                optional_declarations_in_generic_args,
                                                            (   optional_declarations_in_generic_argsleft,
                                                                optional_declarations_in_generic_argsright
                                                            )
                                                        ),
                                                        FALSE
                                                    )
                                                    !
                                                    generic_args
                                                
);
 } );
 ( lr_table::NONTERM 83,  ( result,  lparen1left,  generic_args1right),  rest671);
 } 
;  ( 286,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_OPTIONAL_DECLARATIONS_IN_GENERIC_ARGS optional_declarations_in_generic_args1,  optional_declarations_in_generic_argsleft,  
optional_declarations_in_generic_argsright)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_ARGS (\\  _ =  {  my  (optional_declarations_in_generic_args as 
optional_declarations_in_generic_args1) = optional_declarations_in_generic_args1 ();
 (
   [   (   SOURCE_CODE_REGION_FOR_PACKAGE (
                                                                PACKAGE_DEFINITION
                                                                    optional_declarations_in_generic_args,
                                                                (   optional_declarations_in_generic_argsleft,
                                                                    optional_declarations_in_generic_argsright
                                                                )
                                                            ),
                                                            FALSE
                                                        )
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 83,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 287,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_GENERIC_PARAMETER generic_parameter1,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = 
values::QQ_GENERIC_PARAMETERS (\\  _ =  {  my  (generic_parameter as generic_parameter1) = generic_parameter1 ();
 ( [ generic_parameter ] );
 } );
 ( lr_table::NONTERM 34,  ( result,  lparen1left,  
rparen1right),  rest671);
 } 
;  ( 288,  ( ( _,  ( values::QQ_GENERIC_PARAMETERS generic_parameters1,  _,  generic_parameters1right)) !  _ !  ( _,  ( values::QQ_GENERIC_PARAMETER generic_parameter1,  _,  _)) !  ( _,  ( _,  
lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_PARAMETERS (\\  _ =  {  my  (generic_parameter as generic_parameter1) = generic_parameter1 ();
 my  (generic_parameters as 
generic_parameters1) = generic_parameters1 ();
 (   generic_parameter ! generic_parameters);
 } );
 ( lr_table::NONTERM 34,  ( result,  lparen1left,  generic_parameters1right),  rest671);
 } 
;  ( 289,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  _ !  ( _,  ( values::VALUE_ID value_id1,  value_id1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_PARAMETER (\\  _
 =  {  my  (value_id as value_id1) = value_id1 ();
 my  (an_api as an_api1) = an_api1 ();
 (   (   THE (make_package_symbol value_id), an_api) );
 } );
 ( lr_table::NONTERM 33,  ( result,  
value_id1left,  an_api1right),  rest671);
 } 
;  ( 290,  ( ( _,  ( values::QQ_OPTIONAL_API_ELEMENTS optional_api_elements1,  (optional_api_elementsleft as optional_api_elements1left),  (optional_api_elementsright as optional_api_elements1right)))
 !  rest671)) => {  my  result = values::QQ_GENERIC_PARAMETER (\\  _ =  {  my  (optional_api_elements as optional_api_elements1) = optional_api_elements1 ();
 (
   (   NULL,
                                                        SOURCE_CODE_REGION_FOR_API (
                                                            API_DEFINITION (optional_api_elements), 
                                                            (optional_api_elementsleft, optional_api_elementsright)
                                                )   )   );
 } );
 ( 
lr_table::NONTERM 33,  ( result,  optional_api_elements1left,  optional_api_elements1right),  rest671);
 } 
;  ( 291,  ( rest671)) => {  my  result = values::QQ_OPTIONAL_GENERIC_API_CAST (\\  _ =  (     NO_PACKAGE_CAST));
 ( lr_table::NONTERM 36,  ( result,  default_position,  default_position),  rest671)
;
 } 
;  ( 292,  ( ( _,  ( values::TYPE_ID type_id1,  _,  type_id1right)) !  _ !  ( _,  ( _,  suffix_colon1left,  _)) !  rest671)) => {  my  result = values::QQ_OPTIONAL_GENERIC_API_CAST (\\  _ =  {  my  (
type_id as type_id1) = type_id1 ();
 (   WEAK_PACKAGE_CAST (GENERIC_API_BY_NAME (make_generic_api_symbol type_id)));
 } );
 ( lr_table::NONTERM 36,  ( result,  suffix_colon1left,  type_id1right),  
rest671);
 } 
;  ( 293,  ( ( _,  ( values::TYPE_ID type_id1,  _,  type_id1right)) !  _ !  ( _,  ( _,  suffix_colon1left,  _)) !  rest671)) => {  my  result = values::QQ_OPTIONAL_GENERIC_API_CAST (\\  _ =  {  my  (
type_id as type_id1) = type_id1 ();
 ( STRONG_PACKAGE_CAST (GENERIC_API_BY_NAME (make_generic_api_symbol type_id)));
 } );
 ( lr_table::NONTERM 36,  ( result,  suffix_colon1left,  type_id1right),  
rest671);
 } 
;  ( 294,  ( ( _,  ( values::QQ_GENERIC_API_NAMINGS generic_api_namings2,  _,  generic_api_namings2right)) !  _ !  ( _,  ( values::QQ_GENERIC_API_NAMINGS generic_api_namings1,  
generic_api_namings1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_API_NAMINGS (\\  _ =  {  my  generic_api_namings1 = generic_api_namings1 ();
 my  generic_api_namings2 = 
generic_api_namings2 ();
 (generic_api_namings1 @ generic_api_namings2);
 } );
 ( lr_table::NONTERM 42,  ( result,  generic_api_namings1left,  generic_api_namings2right),  rest671);
 } 
;  ( 295,  ( ( _,  ( values::QQ_AN_API an_api1,  _,  an_api1right)) !  _ !  ( _,  ( values::QQ_GENERIC_PARAMETERS generic_parameters1,  _,  _)) !  ( _,  ( values::TYPE_ID type_id1,  _,  _)) !  _ !  _
 !  _ !  ( _,  ( _,  my_t1left,  _)) !  rest671)) => {  my  result = values::QQ_GENERIC_API_NAMINGS (\\  _ =  {  my  (type_id as type_id1) = type_id1 ();
 my  (generic_parameters as 
generic_parameters1) = generic_parameters1 ();
 my  (an_api as an_api1) = an_api1 ();
 (
   [   NAMED_GENERIC_API {
                                                                    name_symbol => make_generic_api_symbol type_id,
                                                                    definition => GENERIC_API_DEFINITION {
                                                                                     parameter => generic_parameters,
                                                                                     result    => an_api
                                                                                 }
                                                        }
                                                    ]
                                                
);
 } );
 ( lr_table::NONTERM 42,  ( result,  my_t1left,  an_api1right),  rest671);
 } 
; _ => raise exception (MLY_ACTION i392);
esac;
end;
void = values::TM_VOID;
extract = \\ a = (\\ values::QQ_TOPLEVEL_STATEMENT x => x;
 _ => { exception PARSE_INTERNAL;
         raise exception PARSE_INTERNAL; }; end ) a ();
};
};
package tokens : (weak) Nada_Tokens {
Semantic_Value = parser_data::Semantic_Value;
Token (X,Y) = token::Token(X,Y);
fun antiquote_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 0, (parser_data::values::ANTIQUOTE_ID (\\ () = i), p1, p2));
fun char (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 1, (parser_data::values::CHAR (\\ () = i), p1, p2));
fun chunkl (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 2, (parser_data::values::CHUNKL (\\ () = i), p1, p2));
fun constructor_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 3, (parser_data::values::CONSTRUCTOR_ID (\\ () = i), p1, p2));
fun endq (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 4, (parser_data::values::ENDQ (\\ () = i), p1, p2));
fun value_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 5, (parser_data::values::VALUE_ID (\\ () = i), p1, p2));
fun int (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 6, (parser_data::values::INT (\\ () = i), p1, p2));
fun int0 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 7, (parser_data::values::INT0 (\\ () = i), p1, p2));
fun real (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 8, (parser_data::values::REAL (\\ () = i), p1, p2));
fun shebang (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 9, (parser_data::values::SHEBANG (\\ () = i), p1, p2));
fun string (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 10, (parser_data::values::STRING (\\ () = i), p1, p2));
fun type_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 11, (parser_data::values::TYPE_ID (\\ () = i), p1, p2));
fun typevar_id (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 12, (parser_data::values::TYPEVAR_ID (\\ () = i), p1, p2));
fun unt (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 13, (parser_data::values::UNT (\\ () = i), p1, p2));
fun tight_infix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 14, (parser_data::values::TIGHT_INFIX_OP (\\ () = i), p1, p2));
fun loose_infix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 15, (parser_data::values::LOOSE_INFIX_OP (\\ () = i), p1, p2));
fun prefix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 16, (parser_data::values::PREFIX_OP (\\ () = i), p1, p2));
fun suffix_op (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 17, (parser_data::values::SUFFIX_OP (\\ () = i), p1, p2));
fun also_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 18, (parser_data::values::TM_VOID, p1, p2));
fun and_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 19, (parser_data::values::TM_VOID, p1, p2));
fun api_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 20, (parser_data::values::TM_VOID, p1, p2));
fun as_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 21, (parser_data::values::TM_VOID, p1, p2));
fun begin_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 22, (parser_data::values::TM_VOID, p1, p2));
fun beginq (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 23, (parser_data::values::TM_VOID, p1, p2));
fun case_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 24, (parser_data::values::TM_VOID, p1, p2));
fun do_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 25, (parser_data::values::TM_VOID, p1, p2));
fun else_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 26, (parser_data::values::TM_VOID, p1, p2));
fun end_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 27, (parser_data::values::TM_VOID, p1, p2));
fun enum_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 28, (parser_data::values::TM_VOID, p1, p2));
fun eof (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 29, (parser_data::values::TM_VOID, p1, p2));
fun eqtype_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 30, (parser_data::values::TM_VOID, p1, p2));
fun except_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 31, (parser_data::values::TM_VOID, p1, p2));
fun exception_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 32, (parser_data::values::TM_VOID, p1, p2));
fun fi_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 33, (parser_data::values::TM_VOID, p1, p2));
fun fn_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 34, (parser_data::values::TM_VOID, p1, p2));
fun fun_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 35, (parser_data::values::TM_VOID, p1, p2));
fun if_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 36, (parser_data::values::TM_VOID, p1, p2));
fun in_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 37, (parser_data::values::TM_VOID, p1, p2));
fun include_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 38, (parser_data::values::TM_VOID, p1, p2));
fun infix_arrow (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 39, (parser_data::values::TM_VOID, p1, p2));
fun infix_bangbang (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 40, (parser_data::values::TM_VOID, p1, p2));
fun infix_darrow (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 41, (parser_data::values::TM_VOID, p1, p2));
fun infix_dotdotdot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 42, (parser_data::values::TM_VOID, p1, p2));
fun infix_equal (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 43, (parser_data::values::TM_VOID, p1, p2));
fun infix_qmarkqmark (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 44, (parser_data::values::TM_VOID, p1, p2));
fun lazy_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 45, (parser_data::values::TM_VOID, p1, p2));
fun let_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 46, (parser_data::values::TM_VOID, p1, p2));
fun local_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 47, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_lvector (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 48, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_lbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 49, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_rbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 50, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_lbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 51, (parser_data::values::TM_VOID, p1, p2));
fun loose_infix_rbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 52, (parser_data::values::TM_VOID, p1, p2));
fun lparen (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 53, (parser_data::values::TM_VOID, p1, p2));
fun macro (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 54, (parser_data::values::TM_VOID, p1, p2));
fun my_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 55, (parser_data::values::TM_VOID, p1, p2));
fun of_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 56, (parser_data::values::TM_VOID, p1, p2));
fun opaque (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 57, (parser_data::values::TM_VOID, p1, p2));
fun or_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 58, (parser_data::values::TM_VOID, p1, p2));
fun package_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 59, (parser_data::values::TM_VOID, p1, p2));
fun prefix_bar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 60, (parser_data::values::TM_VOID, p1, p2));
fun prefix_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 61, (parser_data::values::TM_VOID, p1, p2));
fun prefix_langle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 62, (parser_data::values::TM_VOID, p1, p2));
fun prefix_lbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 63, (parser_data::values::TM_VOID, p1, p2));
fun prefix_lbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 64, (parser_data::values::TM_VOID, p1, p2));
fun prefix_slash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 65, (parser_data::values::TM_VOID, p1, p2));
fun raise_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 66, (parser_data::values::TM_VOID, p1, p2));
fun raw_ampersand (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 67, (parser_data::values::TM_VOID, p1, p2));
fun raw_underbar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 68, (parser_data::values::TM_VOID, p1, p2));
fun raw_dollar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 69, (parser_data::values::TM_VOID, p1, p2));
fun raw_sharp (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 70, (parser_data::values::TM_VOID, p1, p2));
fun raw_bang (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 71, (parser_data::values::TM_VOID, p1, p2));
fun raw_tilda (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 72, (parser_data::values::TM_VOID, p1, p2));
fun raw_dash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 73, (parser_data::values::TM_VOID, p1, p2));
fun raw_plus (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 74, (parser_data::values::TM_VOID, p1, p2));
fun raw_star (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 75, (parser_data::values::TM_VOID, p1, p2));
fun raw_slash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 76, (parser_data::values::TM_VOID, p1, p2));
fun raw_percent (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 77, (parser_data::values::TM_VOID, p1, p2));
fun raw_colon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 78, (parser_data::values::TM_VOID, p1, p2));
fun raw_langle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 79, (parser_data::values::TM_VOID, p1, p2));
fun raw_rangle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 80, (parser_data::values::TM_VOID, p1, p2));
fun raw_lbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 81, (parser_data::values::TM_VOID, p1, p2));
fun raw_rbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 82, (parser_data::values::TM_VOID, p1, p2));
fun raw_lbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 83, (parser_data::values::TM_VOID, p1, p2));
fun raw_rbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 84, (parser_data::values::TM_VOID, p1, p2));
fun raw_equal (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 85, (parser_data::values::TM_VOID, p1, p2));
fun raw_question (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 86, (parser_data::values::TM_VOID, p1, p2));
fun raw_atsign (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 87, (parser_data::values::TM_VOID, p1, p2));
fun raw_caret (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 88, (parser_data::values::TM_VOID, p1, p2));
fun raw_bar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 89, (parser_data::values::TM_VOID, p1, p2));
fun raw_backslash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 90, (parser_data::values::TM_VOID, p1, p2));
fun raw_semi (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 91, (parser_data::values::TM_VOID, p1, p2));
fun raw_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 92, (parser_data::values::TM_VOID, p1, p2));
fun raw_comma (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 93, (parser_data::values::TM_VOID, p1, p2));
fun raw_whitespace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 94, (parser_data::values::TM_VOID, p1, p2));
fun rec_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 95, (parser_data::values::TM_VOID, p1, p2));
fun rparen (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 96, (parser_data::values::TM_VOID, p1, p2));
fun sharing_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 97, (parser_data::values::TM_VOID, p1, p2));
fun suffix_bar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 98, (parser_data::values::TM_VOID, p1, p2));
fun suffix_colon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 99, (parser_data::values::TM_VOID, p1, p2));
fun suffix_comma (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 100, (parser_data::values::TM_VOID, p1, p2));
fun suffix_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 101, (parser_data::values::TM_VOID, p1, p2));
fun suffix_semi (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 102, (parser_data::values::TM_VOID, p1, p2));
fun suffix_rangle (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 103, (parser_data::values::TM_VOID, p1, p2));
fun suffix_rbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 104, (parser_data::values::TM_VOID, p1, p2));
fun suffix_rbracket (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 105, (parser_data::values::TM_VOID, p1, p2));
fun suffix_slash (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 106, (parser_data::values::TM_VOID, p1, p2));
fun then_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 107, (parser_data::values::TM_VOID, p1, p2));
fun tight_infix_colon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 108, (parser_data::values::TM_VOID, p1, p2));
fun tight_infix_dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 109, (parser_data::values::TM_VOID, p1, p2));
fun transparent (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 110, (parser_data::values::TM_VOID, p1, p2));
fun type_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 111, (parser_data::values::TM_VOID, p1, p2));
fun underbar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 112, (parser_data::values::TM_VOID, p1, p2));
fun use (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 113, (parser_data::values::TM_VOID, p1, p2));
fun where_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 114, (parser_data::values::TM_VOID, p1, p2));
fun while_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 115, (parser_data::values::TM_VOID, p1, p2));
fun with_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 116, (parser_data::values::TM_VOID, p1, p2));
fun xxx (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 117, (parser_data::values::TM_VOID, p1, p2));
fun yyy (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 118, (parser_data::values::TM_VOID, p1, p2));
fun zzz (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 119, (parser_data::values::TM_VOID, p1, p2));
};
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext