File ‹StrictC.grm.sml›

functor StrictCLrValsFun(structure Token : TOKEN)
 : sig structure ParserData : PARSER_DATA
       structure Tokens : StrictC_TOKENS
   end
 = 
struct
structure ParserData=
struct
structure Header = 
struct
(**
 ** Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
 ** Copyright (c) 2022 Apple Inc. All rights reserved.
 **
 ** SPDX-License-Identifier: BSD-2-Clause
 **)

open Absyn NameGeneration
val errorStr' = Feedback.errorStr'
val warnStr' = Feedback.warnStr'
val bogus = SourcePos.bogus

fun lleft [] = bogus
  | lleft (h :: t) = left h
fun lright [] = bogus
  | lright x = right (List.last x)
type adecl = (expr ctype -> expr ctype) wrap
type 'a ddecl = string wrap
                * adecl
                * (expr ctype * string wrap option) wrap list option
                * 'a list
type addecl = gcc_attribute ddecl

(* composition of declarators *)
fun ooa(adec1, adec2) = let
  (* composition of abstract declarators *)
  val a1 = node adec1
  val a2 = node adec2
in
  wrap(a1 o a2, left adec1, right adec2)
end

fun ood(ddw, adec) = let
  val (nm, adec0, params, data) = node ddw
in
  wrap((nm, ooa(adec0,adec), params, data), left ddw, right adec)
end

infix ood

fun add_attributes(ddw, attrs) = let
  val (nm, adec, ps, data0) = node ddw
in
  wrap((nm, adec, ps, attrs @ data0), left ddw, right ddw)
end


fun addparams(dw : 'a ddecl wrap, ps) : 'a ddecl wrap = let
  val (nm, a, pso, data) = node dw
in
  case pso of
    SOME _ => dw
  | NONE => wrap((nm,a,SOME ps,data), left dw, right dw)
end

fun check_params ctxt
      (plist : (expr ctype * string wrap option) wrap list wrap)
      : (expr ctype * string wrap option) wrap list =
    case node plist of
      [] => (Feedback.warnStr' ctxt (left plist, right plist,
                               "Avoid empty parameter lists in C; \
                               \prefer \"(void)\"");
             [])
    | x as [tysw] => (case node tysw of
                        (Void, NONE) => []
                      | _ => x)
    | x => x



fun fndecl l r (ps : expr ctype list) =
    wrap((fn ty => Function(ty, ps)), l, r)
fun ptrdecl l r = wrap (Ptr, l, r)
fun arraydecl l r n = wrap ((fn ty => Array (ty, n)), l, r)

val one_const = expr_int 1
val zero_const = expr_int 0
fun postinc_expr e = PostOp(e,Plus_Plus)
fun postdec_expr e = PostOp(e,Minus_Minus)

fun preinc_expr e = PreOp(e,Plus_Plus)
fun predec_expr e = PreOp(e,Minus_Minus)

fun resolve_fnname ctxt e =
    case enode e of
      Var (s,_) => s
    | _ => (errorStr' ctxt (eleft e, eright e,
                      "Can't use this expression as function name");
            "_bad name_")


fun handle_builtin_fns ctxt e =
    case enode e of
      EFnCall (_, fn_e, args) => let
      in
        case enode fn_e of
          Var(s,_) =>
          if s = NameGeneration.mkIdentUScoreSafe "__builtin_expect" then
            case args of
              [x,y] => x
            | _ => (Feedback.errorStr' ctxt (eleft e, eright e,
                                       "__builtin_expect must take 2 args.");
                    expr_int 0)
          else e
        | _ => e
      end
    | _ => e

fun delvoidcasts e =
    case enode e of
      TypeCast (tywrap, e0) => let
      in
        case node tywrap of
          Void => e0
        | _ => e
      end
    | _ => e


fun parse_stdassignop ctxt (e1,opn,e2) = let
  val e2 = handle_builtin_fns ctxt e2
  val r_e = case opn of
              NONE => e2
            | SOME abop => ewrap(BinOp(abop,e1,e2), eleft e2, eright e2)
in
  case enode e2 of
    EFnCall (_, f_e, args) => let
      fun e_ok e =
          case enode e of
            Var _ => true
          | StructDot(e0, fld) => e_ok e0
          | _ => false
    in
      if e_ok e1 andalso opn = NONE then
        AssignFnCall(SOME e1, f_e, args)
      else
        Assign(e1,map_origin (K AstDatatype.Statement) r_e)
    end
  | _ => Assign(e1,r_e)
end

fun parse_stdassignop_expr ctxt (e1,opn,e2) = let
  val e2 = handle_builtin_fns ctxt e2
  val r_e = case opn of
              NONE => e2
            | SOME abop => ewrap(BinOp(abop,e1,e2), eleft e2, eright e2)
in
  AssignE(AstDatatype.Expression, e1, r_e)
end

fun check_names ctxt (fname:string) plist = let
  fun check i ps =
      case ps of
        [] => []
      | pw :: rest =>
          (case node pw of
             (ty, SOME nm) => (ty,nm) :: check (i + 1) rest
           | (ty, NONE) => (errorStr' ctxt (left pw, right pw,
                                      "Parameter #"^Int.toString i^
                                      " of function "^fname^
                                      " has no name");
                            (ty, wrap("__fake", bogus, bogus)) ::
                            check (i + 1) rest))
in
  check 1 plist
end

type struct_field = (expr ctype * string wrap * expr option * gcc_attribute list)
type struct_fields = struct_field list
type struct_id_decl = string wrap * struct_fields * gcc_attribute list wrap

fun extract_unions_and_structs (sd: struct_id_decl) =
  sd |> #2 |> map #1 |> map CType.nested_types |> flat
  |> filter (fn ty => CType.is_struct_type ty orelse CType.is_union_type ty)

local val scount = Unsynchronized.ref 0
in
fun gen_struct_id () =
      (scount := !scount + 1;
       NameGeneration.internalAnonStructPfx^Int.toString (!scount))
end

datatype storage_class_specifier = TypeDef | Extern | Static | Auto | Register | Thread_Local
datatype type_qualifier = Const | Volatile | Restrict
datatype typespectok = ts_unsigned
                     | ts_signed
                     | ts_bool
                     | ts_char
                     | ts_int
                     | ts_long
                     | ts_longlong
                     | ts_int128
                     | ts_short
                     | ts_void
                     | ts_bitint of expr
type struct_or_union_specifier = expr ctype wrap * struct_id_decl wrap list
type enum_specifier = (string option wrap *
                       (string wrap * expr option) list) wrap
datatype type_specifier = Tstok of typespectok wrap
                        | Tsstruct of struct_or_union_specifier
                        | Tsenum of enum_specifier
                        | Tstypeid of string wrap
                        | Tstypeof of expr wrap
fun tsleft (Tstok tok) = left tok
  | tsleft (Tsstruct (ty, _)) = left ty
  | tsleft (Tstypeid s) = left s
  | tsleft (Tsenum es) = left es
  | tsleft (Tstypeof e) = left e
fun tsright (Tstok tok) = right tok
  | tsright (Tsstruct (ty,_)) = right ty
  | tsright (Tstypeid s) = right s
  | tsright (Tsenum es) = right es
  | tsright (Tstypeof e) = right e

datatype decl_specifier = Storage of storage_class_specifier wrap
                        | TypeQual of type_qualifier wrap
                        | TypeSpec of type_specifier
                        | FunSpec of Absyn.fnspec wrap

fun scs_to_SC scs =
  case scs of
      Extern => SOME SC_EXTERN
    | Static => SOME SC_STATIC
    | Thread_Local => SOME SC_THRD_LOCAL
    | Register => SOME SC_REGISTER
    | Auto => SOME SC_AUTO
    | TypeDef => NONE

val extract_storage_specs =
  List.mapPartial (fn Storage scs_w => scs_to_SC (node scs_w)
                    | _ => NONE)

fun dslleft [] = raise Fail "dslleft: nil"
  | dslleft (h :: t) =
    case h of
      Storage s => left s
    | TypeQual s => left s
    | FunSpec s => left s
    | TypeSpec ts => tsleft ts
fun dslright dsl =
    case dsl of
      [] => raise Fail "dslright: nil"
    | [h] => (case h of
                Storage s => right s
              | TypeQual s => right s
              | FunSpec s => right s
              | TypeSpec ts => tsright ts)
    | h::t => dslright t


fun parse_siddecl ctxt (kind: expr ctype, s : struct_id_decl wrap) : declaration wrap =
  let
    val (nm, fields, attrs) = node s
    val decl = case kind of StructTy _ => StructDecl | UnionTy _ => UnionDecl
             | _ => (errorStr' ctxt (left s, right s, "Expected 'struct' or 'union'"); StructDecl)
    fun f (ty : expr ctype, s : string wrap, opbit : expr option, attrs : gcc_attribute list) =
      let
        val ty' : expr ctype =
            case opbit of
              NONE => ty
            | SOME e =>  Bitfield(ty, e)
      in
        (ty',s,attrs)
      end
    val fields' = map f fields
  in
    wrap(decl(nm, fields', attrs), left s, right s)
  end

fun tag_siddecls ty sdecls =
  let
    val unions_and_structs = sdecls |> map node |> map extract_unions_and_structs |> flat

    fun match name (CType.UnionTy s) = (s = name)
      | match name (CType.StructTy s) = (s = name)
      | match _ _ = false

    fun tag tys sd =
      let
        val name = sd |> node |> #1 |> node
        val ty = the (find_first (match name) tys)
      in
        (ty, sd)
      end
  in
    map (tag (node ty::unions_and_structs)) sdecls
  end


fun empty_enumspec es = [(wrap(EnumDecl (node es), left es, right es))]
fun empty_declarator ctxt (ds : decl_specifier list) : declaration wrap list =
    case ds of
      [] => raise Fail "empty_declarator: nil"
    | Storage x :: rest =>
                (errorStr' ctxt (left x, right x,
                           "Storage class qualifier not accompanied by \
                           \declarator");
                 empty_declarator ctxt rest)
    | TypeQual tq :: rest =>
                 (errorStr' ctxt (left tq, right tq,
                            "Type-qualifier not accompanied by declarator");
                  empty_declarator ctxt rest)
    | FunSpec fs :: rest =>
                 (errorStr' ctxt (left fs, right fs,
                            "Function-specifier not accompanied by declarator");
                  empty_declarator ctxt rest)
    | TypeSpec (Tstok tok) :: rest =>
                 (errorStr' ctxt (left tok, right tok,
                            "Type not accompanied by declarator");
                  empty_declarator ctxt rest)
    | TypeSpec (Tstypeid s) :: rest =>
                 (errorStr' ctxt (left s, right s,
                            "Type-id ("^node s^ ") not accompanied by declarator");
                  empty_declarator ctxt rest)
    | [TypeSpec (Tsstruct (kind, siddecls))] =>
        (map (parse_siddecl ctxt)) (tag_siddecls kind siddecls)
    | TypeSpec (Tsstruct s) :: rest =>
                 (errorStr' ctxt (dslleft rest, dslright rest,
                            "Extraneous crap after struct declaration");
                  empty_declarator ctxt [TypeSpec (Tsstruct s)])
    | [TypeSpec (Tsenum es)] => empty_enumspec es
    | TypeSpec (Tsenum es) :: rest =>
                 (errorStr' ctxt (dslleft rest, dslright rest,
                            "Extraneous crap after enum declaration");
                  empty_enumspec es)

fun ity_of_tok tstok =
    case node tstok of
      ts_int => Int
    | ts_char => Char
    | ts_short => Short
    | ts_long => Long
    | ts_longlong => LongLong
    | ts_int128 => Int128
    | ts_bitint e => BitInt e
    | x => raise Fail "ty_of_tok: invariant failure"

fun sort_toks (bases, sgnmods) dsl =
    case dsl of
      [] => (bases, sgnmods)
    | TypeSpec (Tstok tk) :: r =>
            (case node tk of
               ts_unsigned => sort_toks (bases, tk :: sgnmods) r
             | ts_signed => sort_toks (bases, tk :: sgnmods) r
             | _ => sort_toks (wrap(Tstok tk, left tk, right tk) :: bases,
                               sgnmods) r)
    | TypeSpec (x as Tsstruct (ty,_)) :: r =>
        sort_toks (wrap(x, left ty, right ty)::bases, sgnmods) r
    | TypeSpec (x as Tstypeid sw) :: r =>
        sort_toks (wrap(x,left sw,right sw)::bases, sgnmods) r
    | TypeSpec (x as Tsenum es) :: r =>
        sort_toks (wrap(x,left es, right es)::bases, sgnmods) r
    | TypeSpec (x as Tstypeof e) :: r =>
        sort_toks (wrap(x,left e, right e)::bases, sgnmods) r
    | _ :: r => sort_toks (bases, sgnmods) r

fun extract_fnspecs (dsl : decl_specifier list) : fnspec list =
    List.mapPartial (fn FunSpec fs => SOME (node fs) | _ => NONE) dsl

fun extract_fnspec_attrs (fs : fnspec list) : gcc_attribute list =
  case fs of
      [] => []
    | gcc_attribs gcc_as::rest => gcc_as @ extract_fnspec_attrs rest
    | _ :: rest => extract_fnspec_attrs rest

fun extract_type ctxt (dsl : decl_specifier list wrap) : expr ctype wrap = let
  val (bases : type_specifier wrap list,
       sgnmods : typespectok wrap list) = sort_toks ([], []) (node dsl)
  fun is_base b (tn : type_specifier wrap) =
      case node tn of
          Tstok t => node t = b
        | _ => false
  fun is_intmod (tn : type_specifier wrap) =
      case node tn of
          Tstok t => (case node t of
                          ts_short => true
                        | ts_long => true
                        | _ => false)
        | _ => false
  fun handle_integral_remainder had_int list =
      case list of
          [] => NONE
        | [x] => if had_int then
                   if is_intmod x then SOME x
                   else
                     (errorStr' ctxt (left x, right x, "Bad combination with 'int'");
                      SOME x)
                 else SOME x
        | [x,y] => (case (node x, node y) of
                        (Tstok k1, Tstok k2) => let
                          (* order here is reverse of occurrence in input *)
                          val l = left y and r = right x
                        in
                          if node k1 = ts_long andalso node k2 = ts_long then
                            SOME (wrap (Tstok (wrap(ts_longlong, l, r)), l, r))
                          else
                            (errorStr' ctxt (l, r, "Two type-specifiers"); SOME x)
                        end
                      | _ => (errorStr' ctxt (left x, right x, "Two type-specifiers");
                              SOME x))
        | h::t => (errorStr' ctxt (left h, right h, "Too many type-specifiers");
                   SOME h)

  fun check_baseclashes list =
      case list of
        [] => NONE
      | [x] => SOME x
      | _ =>
        case List.partition (is_base ts_int) list of
            ([], _) => handle_integral_remainder false list
          | ([_], rest) => handle_integral_remainder true rest
          | (t::_, _) => (errorStr' ctxt (left t, right t, "Too many 'int' specifiers");
                          SOME t)

  fun check_modclashes list =
      case list of
        [] => NONE
      | [x] => SOME x
      | h :: t => (errorStr' ctxt (left h, right h, "Multiple type-specifiers");
                   SOME h)
  val basety = check_baseclashes bases
  val sgnmod = check_modclashes sgnmods
in
  case (basety, sgnmod) of
    (NONE, NONE) => (errorStr' ctxt (left dsl, right dsl,
                               "No base type in declaration");
                     wrap(Signed Int, bogus, bogus))
  | (SOME b, NONE) => let
    in
      case node b of
        Tstok tk => (case node tk of
                       ts_void => wrap(Void, left tk, right tk)
                     | ts_char => wrap(PlainChar, left tk, right tk)
                     | ts_bool => wrap(Bool, left tk, right tk)
                     | x => wrap(Signed (ity_of_tok tk),
                                 left tk, right tk))
      | Tsstruct (ty, _) => ty
      | Tstypeid s => wrap(Ident (node s), left s, right s)
      | Tsenum e => wrap (EnumTy (node (#1 (node e))), left e, right e)
      | Tstypeof e => wrap (TypeOf (node e), left e, right e)
    end
  | (NONE, SOME m) =>
    (case node m of
       ts_unsigned => wrap(Unsigned Int, left m, right m)
     | ts_signed => wrap (Signed Int, left m, right m)
     | x => raise Fail "finalty2: inv failure")
  | (SOME b, SOME m) =>
     case node b of
       Tstok tk =>
       (case node tk of
            ts_void => (errorStr' ctxt (left m, right m,
                                  "Signedness modifier on void");
                        wrap(Void, left tk, right tk))
          | ts_bool => (errorStr' ctxt (left m, right m,
                                  "Signedness modifier on _Bool");
                        wrap(Bool, left tk, right tk))
          | _ =>
            let
            in
              case node m of
                  ts_unsigned => wrap(Unsigned (ity_of_tok tk),
                                      left m, right tk)
                | ts_signed => wrap(Signed (ity_of_tok tk),
                                    left m, right tk)
                | x => raise Fail "finalty3: inv failure"
            end)
     | Tstypeid s => (errorStr' ctxt (left m, right m,
                                "Signedness modifier on typedef id");
                      wrap(Ident (node s), left s, right s))
     | Tsstruct (ty,_) => (errorStr' ctxt (left m, right m,
                                    "Signedness modifier on struct");
                          ty)
     | Tsenum e => (errorStr' ctxt (left m, right m, "Signedness modifier on enum");
                    wrap(EnumTy (node (#1 (node e))), left e, right e))
     | Tstypeof e => (errorStr' ctxt (left m, right m, "Signedness modifier on typeof");
                    wrap(TypeOf (node e), left e, right e))
end

(* returns a (SourcePos.t * SourcePos.t) option *)
fun has_typedef (dsl : decl_specifier list wrap) = let
  fun check dsls =
      case dsls of
        [] => NONE
      | Storage s :: rest =>
                (case node s of TypeDef => SOME (left s, right s)
                              | _ => check rest)
      | _ :: rest => check rest
in
  check (node dsl)
end

(* returns a (SourcePos.t * SourcePos.t) option *)
fun has_extern (dsl : decl_specifier list wrap) = let
  fun check dsls =
      case dsls of
        [] => NONE
      | Storage s :: rest => (case node s of Extern => SOME (left s, right s)
                                           | _ => check rest)
      | _ :: rest => check rest
in
  check (node dsl)
end


fun first_sdecls (dsl : decl_specifier list) =
    case dsl of
      [] => []
    | TypeSpec (Tsstruct(ty, sdecls)) :: _ => sdecls
    | _ :: rest => first_sdecls rest



fun tag_first_sdecls (dsl : decl_specifier list) =
    case dsl of
      [] => []
    | TypeSpec (Tsstruct(ty, sdecls)) :: _ => tag_siddecls ty sdecls
    | _ :: rest => tag_first_sdecls rest

fun first_enum_dec (dsl : decl_specifier list) =
    case dsl of
      [] => NONE
    | TypeSpec (Tsenum es) :: rest => if null (#2 (node es)) then
                                        first_enum_dec rest
                                      else SOME es
    | _ :: rest => first_enum_dec rest

fun wonky_pdec_check ctxt dsl = let
  val _ =
      case has_typedef dsl of
        NONE => ()
      | SOME (l,r) => errorStr' ctxt (l, r, "Typedefs forbidden in parameters")
  val _ =
      case has_extern dsl of
        NONE => ()
      | SOME (l,r) => errorStr' ctxt (l,r, "Extern forbidden in parameters")
  val _ = case first_sdecls (node dsl) of
            [] => ()
          | sd :: _ => let
              val sw = #1 (node sd)
            in
              errorStr' ctxt (left sw, right sw,
                         "Don't declare structs / unions in parameters")
            end
  val _ = case first_enum_dec (node dsl) of
            NONE => ()
          | SOME es  => errorStr' ctxt (left es, right es,
                                  "Don't declare enumerations in parameters")
in
  ()
end

fun unwrap_params pms =
    map (fn w => apsnd (Option.map node) (node w)) (the pms)


(* is not a function definition, is at least one declarator
   This means this could be a
     a) list of variable/function declarations (initialised or not)
     b) list of typedefs
 *)
fun make_declaration ctxt (dsl : decl_specifier list wrap)
                     (idl : (addecl wrap * initializer option) wrap list) =
let
  val basetype = extract_type ctxt dsl
  val is_typedef = is_some (has_typedef dsl)
  val is_extern = is_some (has_extern dsl)
  val sdecls = tag_first_sdecls (node dsl)
  val endecs = case first_enum_dec (node dsl) of
                 NONE => []
               | SOME es => [wrap(EnumDecl (node es), left es, right es)]
  val fnspecs = extract_fnspecs (node dsl)
  val storage_specs = extract_storage_specs (node dsl)
  val fnspec_attrs = extract_fnspec_attrs fnspecs

  fun handle_declarator idw = let
    val (d : addecl wrap, iopt : initializer option) = node idw
    val (nm, a : adecl, params, attrs) = node d
    val finaltype = (node a) (node basetype)
  in
    if is_typedef then let
        val _ = case iopt of
                  SOME i => errorStr' ctxt (left idw, right idw,
                                      "Can't initialise a typedef")
                | _ => ()
      in
        wrap(TypeDecl[(finaltype,nm,bogwrap (attrs @ fnspec_attrs))], left idw, right idw)
      end
    else
      case finaltype of
        Function(rettype, ptys) => let
          val _ = case iopt of
                    SOME _ => errorStr' ctxt (left idw, right idw,
                                        "Can't initialise a function!")
                  | NONE => ()
        in
          wrap(ExtFnDecl { rettype = rettype, name = nm,
                           params = unwrap_params params,
                           specs = merge_specs [gcc_attribs attrs] fnspecs},
               left idw, right idw)
        end
      | _ => let
          val _ =
              if is_extern andalso is_some iopt then
                errorStr' ctxt (left idw, right idw, "Don't initialise externs")
              else ()
        in
          wrap(VarDecl(finaltype, nm, storage_specs, iopt,
                       fnspec_attrs @ attrs ),
               left idw, right idw)
        end
  end
in
  endecs @
  map handle_declarator idl @
  map (parse_siddecl ctxt) sdecls
end

val last_blockitem = the o StmtDecl.last_blockitem

fun CaseEndBI bi =
    case bi of
      BI_Stmt st => CaseEndStmt st
    | BI_Decl d => false
and CaseEndStmt st =
    case snode st of
      Break => true
    | Return _ => true
    | ReturnFnCall _ => true
    | IfStmt(g, t, e) => CaseEndStmt t andalso CaseEndStmt e
    | Block (_, bilist) => CaseEndBI (last_blockitem bilist)
    | Switch _ => true
    | Trap (BreakT, e) => CaseEndStmt e
    | _ => false

fun front [] = []
  | front [h] = []
  | front (x::xs) = x :: front xs

fun removelast_if_break bilist = let
  fun singcase bi =
      case bi of
        BI_Stmt st => let
        in
          case snode st of
            Break => []
          | Block (kind, bilist) => [BI_Stmt
                                 (swrap (Block (kind, removelast_if_break bilist),
                                         sleft st, sright st))]
          | _ => [bi]
        end
      | _ => [bi]
in
  case bilist of
    [] => []
  | [bi] => singcase bi
  | bi :: bis => bi :: removelast_if_break bis
end

fun mk_defaultcase_last ctxt caselist = let
  fun extract_default caselist =
      case caselist of
        [] => (NONE, [])
      | (c as (labs, bilist)) :: rest => let
          fun is_dflt lab =
              case node lab of
                NONE => true
              | _ => false
        in
          case List.find is_dflt (node labs) of
            NONE => let
              val (df, rest) = extract_default rest
            in
              (df, c::rest)
            end
          | SOME d => let
            in
              if length (node labs) > 1 then
                warnStr' ctxt (left d, right d,
                         "This default: label should be the only label\
                         \ associated with this case")
              else ();
              (SOME (wrap([d], left labs, right labs), bilist), rest)
            end
        end
  val (dflt, rest) = extract_default caselist
in
  case dflt of
    NONE => caselist @ [(bogwrap [bogwrap NONE],
                         [BI_Stmt (swrap(EmptyStmt, bogus, bogus))])]
  | SOME d => rest @ [d]
end


fun switch_check ctxt scaselist leftp rightp = let
  val _ = case length scaselist of
            0 => errorStr' ctxt (leftp, rightp, "Switch has no cases")
          | 1 => errorStr' ctxt (leftp, rightp, "Switch has only one case")
          | _ => ()
  fun check_for_breaks (labs, bilist) =
      if not (CaseEndBI (last_blockitem bilist)) then
        errorStr' ctxt (left labs, right labs,
                  "Switch case beginning here does not end with a break \
                  \or return or a nested switch statement")
      else ()
  val _ = app check_for_breaks (front scaselist)
          (* only check front of list, allowing for last case to fall through
             to end without a break *)
  val scaselist = mk_defaultcase_last ctxt scaselist
  fun striplabwrap (lab : expr option wrap) = node lab
  fun striplablist llist = map striplabwrap (node llist)
in
  map (fn (labs,bod) => (striplablist labs, removelast_if_break bod)) scaselist
end


fun check_for_proto ctxt d = let
  val dec = node d
in
  case dec of
    ExtFnDecl _ => (errorStr' ctxt (left d, right d,
                              "Don't put function prototypes other than at \
                              \top level"); d)
  | _ => d
end


end
structure LrTable = Token.LrTable
structure Token = Token
local open LrTable in 
val table=let val actionRows =
"\
\\001\000\001\000\000\000\000\000\
\\001\000\001\000\051\002\000\000\
\\001\000\001\000\052\002\009\000\050\000\012\000\049\000\035\000\048\000\
\\049\000\047\000\063\000\046\000\064\000\045\000\065\000\044\000\
\\066\000\043\000\067\000\042\000\068\000\041\000\069\000\040\000\
\\070\000\039\000\071\000\038\000\072\000\037\000\075\000\036\000\
\\077\000\035\000\078\000\034\000\079\000\033\000\080\000\032\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\085\000\028\000\
\\086\000\027\000\087\000\026\000\088\000\025\000\089\000\024\000\
\\090\000\023\000\091\000\022\000\094\000\021\000\096\000\020\000\
\\099\000\019\000\102\000\018\000\104\000\017\000\000\000\
\\001\000\001\000\053\002\000\000\
\\001\000\001\000\054\002\009\000\054\002\012\000\054\002\035\000\054\002\
\\049\000\054\002\063\000\054\002\064\000\054\002\065\000\054\002\
\\066\000\054\002\067\000\054\002\068\000\054\002\069\000\054\002\
\\070\000\054\002\071\000\054\002\072\000\054\002\075\000\054\002\
\\077\000\054\002\078\000\054\002\079\000\054\002\080\000\054\002\
\\081\000\054\002\082\000\054\002\083\000\054\002\085\000\054\002\
\\086\000\054\002\087\000\054\002\088\000\054\002\089\000\054\002\
\\090\000\054\002\091\000\054\002\094\000\054\002\096\000\054\002\
\\099\000\054\002\102\000\054\002\104\000\054\002\000\000\
\\001\000\001\000\055\002\009\000\055\002\012\000\055\002\035\000\055\002\
\\049\000\055\002\063\000\055\002\064\000\055\002\065\000\055\002\
\\066\000\055\002\067\000\055\002\068\000\055\002\069\000\055\002\
\\070\000\055\002\071\000\055\002\072\000\055\002\075\000\055\002\
\\077\000\055\002\078\000\055\002\079\000\055\002\080\000\055\002\
\\081\000\055\002\082\000\055\002\083\000\055\002\085\000\055\002\
\\086\000\055\002\087\000\055\002\088\000\055\002\089\000\055\002\
\\090\000\055\002\091\000\055\002\094\000\055\002\096\000\055\002\
\\099\000\055\002\102\000\055\002\104\000\055\002\000\000\
\\001\000\001\000\056\002\009\000\056\002\012\000\056\002\035\000\056\002\
\\049\000\056\002\063\000\056\002\064\000\056\002\065\000\056\002\
\\066\000\056\002\067\000\056\002\068\000\056\002\069\000\056\002\
\\070\000\056\002\071\000\056\002\072\000\056\002\075\000\056\002\
\\077\000\056\002\078\000\056\002\079\000\056\002\080\000\056\002\
\\081\000\056\002\082\000\056\002\083\000\056\002\085\000\056\002\
\\086\000\056\002\087\000\056\002\088\000\056\002\089\000\056\002\
\\090\000\056\002\091\000\056\002\094\000\056\002\096\000\056\002\
\\099\000\056\002\102\000\056\002\104\000\056\002\000\000\
\\001\000\001\000\093\002\002\000\093\002\005\000\093\002\007\000\093\002\
\\008\000\093\002\009\000\093\002\012\000\093\002\018\000\093\002\
\\020\000\093\002\021\000\093\002\022\000\093\002\023\000\093\002\
\\024\000\093\002\035\000\093\002\036\000\093\002\038\000\093\002\
\\039\000\093\002\040\000\093\002\041\000\093\002\042\000\093\002\
\\043\000\093\002\044\000\093\002\045\000\093\002\046\000\093\002\
\\047\000\093\002\048\000\093\002\049\000\093\002\050\000\093\002\
\\063\000\093\002\064\000\093\002\065\000\093\002\066\000\093\002\
\\067\000\093\002\068\000\093\002\069\000\093\002\070\000\093\002\
\\071\000\093\002\072\000\093\002\074\000\093\002\075\000\093\002\
\\076\000\093\002\077\000\093\002\078\000\093\002\079\000\093\002\
\\080\000\093\002\081\000\093\002\082\000\093\002\083\000\093\002\
\\085\000\093\002\086\000\093\002\087\000\093\002\088\000\093\002\
\\089\000\093\002\090\000\093\002\091\000\093\002\092\000\093\002\
\\093\000\093\002\094\000\093\002\096\000\093\002\097\000\093\002\
\\099\000\093\002\100\000\093\002\102\000\093\002\103\000\093\002\
\\104\000\093\002\000\000\
\\001\000\001\000\094\002\002\000\094\002\005\000\094\002\007\000\094\002\
\\008\000\094\002\009\000\094\002\012\000\094\002\018\000\094\002\
\\020\000\094\002\021\000\094\002\022\000\094\002\023\000\094\002\
\\024\000\094\002\035\000\094\002\036\000\094\002\038\000\094\002\
\\039\000\094\002\040\000\094\002\041\000\094\002\042\000\094\002\
\\043\000\094\002\044\000\094\002\045\000\094\002\046\000\094\002\
\\047\000\094\002\048\000\094\002\049\000\094\002\050\000\094\002\
\\063\000\094\002\064\000\094\002\065\000\094\002\066\000\094\002\
\\067\000\094\002\068\000\094\002\069\000\094\002\070\000\094\002\
\\071\000\094\002\072\000\094\002\074\000\094\002\075\000\094\002\
\\076\000\094\002\077\000\094\002\078\000\094\002\079\000\094\002\
\\080\000\094\002\081\000\094\002\082\000\094\002\083\000\094\002\
\\085\000\094\002\086\000\094\002\087\000\094\002\088\000\094\002\
\\089\000\094\002\090\000\094\002\091\000\094\002\092\000\094\002\
\\093\000\094\002\094\000\094\002\096\000\094\002\097\000\094\002\
\\099\000\094\002\100\000\094\002\102\000\094\002\103\000\094\002\
\\104\000\094\002\000\000\
\\001\000\001\000\103\002\009\000\103\002\012\000\103\002\035\000\103\002\
\\049\000\103\002\063\000\103\002\064\000\103\002\065\000\103\002\
\\066\000\103\002\067\000\103\002\068\000\103\002\069\000\103\002\
\\070\000\103\002\071\000\103\002\072\000\103\002\075\000\103\002\
\\077\000\103\002\078\000\103\002\079\000\103\002\080\000\103\002\
\\081\000\103\002\082\000\103\002\083\000\103\002\085\000\103\002\
\\086\000\103\002\087\000\103\002\088\000\103\002\089\000\103\002\
\\090\000\103\002\091\000\103\002\094\000\103\002\096\000\103\002\
\\099\000\103\002\102\000\103\002\104\000\103\002\000\000\
\\001\000\001\000\111\002\002\000\111\002\005\000\111\002\006\000\111\002\
\\007\000\111\002\008\000\111\002\009\000\111\002\012\000\111\002\
\\018\000\111\002\020\000\111\002\021\000\111\002\022\000\111\002\
\\023\000\111\002\024\000\111\002\035\000\111\002\036\000\111\002\
\\037\000\111\002\038\000\111\002\039\000\111\002\040\000\111\002\
\\041\000\111\002\042\000\111\002\043\000\111\002\044\000\111\002\
\\045\000\111\002\046\000\111\002\047\000\111\002\048\000\111\002\
\\049\000\111\002\050\000\111\002\063\000\111\002\064\000\111\002\
\\065\000\111\002\066\000\111\002\067\000\111\002\068\000\111\002\
\\069\000\111\002\070\000\111\002\071\000\111\002\072\000\111\002\
\\074\000\111\002\075\000\111\002\076\000\111\002\077\000\111\002\
\\078\000\111\002\079\000\111\002\080\000\111\002\081\000\111\002\
\\082\000\111\002\083\000\111\002\085\000\111\002\086\000\111\002\
\\087\000\111\002\088\000\111\002\089\000\111\002\090\000\111\002\
\\091\000\111\002\092\000\111\002\093\000\111\002\094\000\111\002\
\\096\000\111\002\097\000\111\002\098\000\111\002\099\000\111\002\
\\100\000\111\002\102\000\111\002\103\000\111\002\104\000\111\002\000\000\
\\001\000\002\000\057\002\005\000\057\002\006\000\057\002\009\000\057\002\
\\011\000\057\002\012\000\057\002\035\000\057\002\049\000\057\002\
\\063\000\057\002\064\000\057\002\065\000\057\002\066\000\057\002\
\\067\000\057\002\068\000\057\002\069\000\057\002\070\000\057\002\
\\071\000\057\002\072\000\057\002\074\000\057\002\075\000\057\002\
\\077\000\057\002\078\000\057\002\079\000\057\002\080\000\057\002\
\\081\000\057\002\082\000\057\002\083\000\057\002\085\000\057\002\
\\086\000\057\002\087\000\057\002\088\000\057\002\089\000\057\002\
\\090\000\057\002\091\000\057\002\094\000\057\002\096\000\057\002\
\\099\000\057\002\102\000\057\002\104\000\057\002\000\000\
\\001\000\002\000\058\002\005\000\058\002\006\000\058\002\009\000\058\002\
\\011\000\058\002\012\000\058\002\035\000\058\002\049\000\058\002\
\\063\000\058\002\064\000\058\002\065\000\058\002\066\000\058\002\
\\067\000\058\002\068\000\058\002\069\000\058\002\070\000\058\002\
\\071\000\058\002\072\000\058\002\074\000\058\002\075\000\058\002\
\\077\000\058\002\078\000\058\002\079\000\058\002\080\000\058\002\
\\081\000\058\002\082\000\058\002\083\000\058\002\085\000\058\002\
\\086\000\058\002\087\000\058\002\088\000\058\002\089\000\058\002\
\\090\000\058\002\091\000\058\002\094\000\058\002\096\000\058\002\
\\099\000\058\002\102\000\058\002\104\000\058\002\000\000\
\\001\000\002\000\059\002\005\000\059\002\006\000\059\002\009\000\059\002\
\\011\000\059\002\012\000\059\002\035\000\059\002\049\000\059\002\
\\063\000\059\002\064\000\059\002\065\000\059\002\066\000\059\002\
\\067\000\059\002\068\000\059\002\069\000\059\002\070\000\059\002\
\\071\000\059\002\072\000\059\002\074\000\059\002\075\000\059\002\
\\077\000\059\002\078\000\059\002\079\000\059\002\080\000\059\002\
\\081\000\059\002\082\000\059\002\083\000\059\002\085\000\059\002\
\\086\000\059\002\087\000\059\002\088\000\059\002\089\000\059\002\
\\090\000\059\002\091\000\059\002\094\000\059\002\096\000\059\002\
\\099\000\059\002\102\000\059\002\104\000\059\002\000\000\
\\001\000\002\000\060\002\005\000\060\002\006\000\060\002\009\000\060\002\
\\011\000\060\002\012\000\060\002\035\000\060\002\049\000\060\002\
\\063\000\060\002\064\000\060\002\065\000\060\002\066\000\060\002\
\\067\000\060\002\068\000\060\002\069\000\060\002\070\000\060\002\
\\071\000\060\002\072\000\060\002\074\000\060\002\075\000\060\002\
\\077\000\060\002\078\000\060\002\079\000\060\002\080\000\060\002\
\\081\000\060\002\082\000\060\002\083\000\060\002\085\000\060\002\
\\086\000\060\002\087\000\060\002\088\000\060\002\089\000\060\002\
\\090\000\060\002\091\000\060\002\094\000\060\002\096\000\060\002\
\\099\000\060\002\102\000\060\002\104\000\060\002\000\000\
\\001\000\002\000\061\002\005\000\061\002\006\000\061\002\009\000\061\002\
\\011\000\061\002\012\000\061\002\035\000\061\002\049\000\061\002\
\\063\000\061\002\064\000\061\002\065\000\061\002\066\000\061\002\
\\067\000\061\002\068\000\061\002\069\000\061\002\070\000\061\002\
\\071\000\061\002\072\000\061\002\074\000\061\002\075\000\061\002\
\\077\000\061\002\078\000\061\002\079\000\061\002\080\000\061\002\
\\081\000\061\002\082\000\061\002\083\000\061\002\085\000\061\002\
\\086\000\061\002\087\000\061\002\088\000\061\002\089\000\061\002\
\\090\000\061\002\091\000\061\002\094\000\061\002\096\000\061\002\
\\099\000\061\002\102\000\061\002\104\000\061\002\000\000\
\\001\000\002\000\062\002\005\000\062\002\006\000\062\002\009\000\062\002\
\\011\000\062\002\012\000\062\002\035\000\062\002\049\000\062\002\
\\063\000\062\002\064\000\062\002\065\000\062\002\066\000\062\002\
\\067\000\062\002\068\000\062\002\069\000\062\002\070\000\062\002\
\\071\000\062\002\072\000\062\002\074\000\062\002\075\000\062\002\
\\077\000\062\002\078\000\062\002\079\000\062\002\080\000\062\002\
\\081\000\062\002\082\000\062\002\083\000\062\002\085\000\062\002\
\\086\000\062\002\087\000\062\002\088\000\062\002\089\000\062\002\
\\090\000\062\002\091\000\062\002\094\000\062\002\096\000\062\002\
\\099\000\062\002\102\000\062\002\104\000\062\002\000\000\
\\001\000\002\000\063\002\005\000\063\002\006\000\063\002\009\000\063\002\
\\011\000\063\002\012\000\063\002\035\000\063\002\049\000\063\002\
\\063\000\063\002\064\000\063\002\065\000\063\002\066\000\063\002\
\\067\000\063\002\068\000\063\002\069\000\063\002\070\000\063\002\
\\071\000\063\002\072\000\063\002\074\000\063\002\075\000\063\002\
\\077\000\063\002\078\000\063\002\079\000\063\002\080\000\063\002\
\\081\000\063\002\082\000\063\002\083\000\063\002\085\000\063\002\
\\086\000\063\002\087\000\063\002\088\000\063\002\089\000\063\002\
\\090\000\063\002\091\000\063\002\094\000\063\002\096\000\063\002\
\\099\000\063\002\102\000\063\002\104\000\063\002\000\000\
\\001\000\002\000\064\002\005\000\064\002\006\000\064\002\009\000\064\002\
\\011\000\064\002\012\000\064\002\035\000\064\002\049\000\064\002\
\\063\000\064\002\064\000\064\002\065\000\064\002\066\000\064\002\
\\067\000\064\002\068\000\064\002\069\000\064\002\070\000\064\002\
\\071\000\064\002\072\000\064\002\074\000\064\002\075\000\064\002\
\\077\000\064\002\078\000\064\002\079\000\064\002\080\000\064\002\
\\081\000\064\002\082\000\064\002\083\000\064\002\085\000\064\002\
\\086\000\064\002\087\000\064\002\088\000\064\002\089\000\064\002\
\\090\000\064\002\091\000\064\002\094\000\064\002\096\000\064\002\
\\099\000\064\002\102\000\064\002\104\000\064\002\000\000\
\\001\000\002\000\065\002\005\000\065\002\006\000\065\002\009\000\065\002\
\\011\000\065\002\012\000\065\002\035\000\065\002\049\000\065\002\
\\063\000\065\002\064\000\065\002\065\000\065\002\066\000\065\002\
\\067\000\065\002\068\000\065\002\069\000\065\002\070\000\065\002\
\\071\000\065\002\072\000\065\002\074\000\065\002\075\000\065\002\
\\077\000\065\002\078\000\065\002\079\000\065\002\080\000\065\002\
\\081\000\065\002\082\000\065\002\083\000\065\002\085\000\065\002\
\\086\000\065\002\087\000\065\002\088\000\065\002\089\000\065\002\
\\090\000\065\002\091\000\065\002\094\000\065\002\096\000\065\002\
\\099\000\065\002\102\000\065\002\104\000\065\002\000\000\
\\001\000\002\000\066\002\005\000\066\002\006\000\066\002\009\000\066\002\
\\011\000\066\002\012\000\066\002\035\000\066\002\049\000\066\002\
\\063\000\066\002\064\000\066\002\065\000\066\002\066\000\066\002\
\\067\000\066\002\068\000\066\002\069\000\066\002\070\000\066\002\
\\071\000\066\002\072\000\066\002\074\000\066\002\075\000\066\002\
\\077\000\066\002\078\000\066\002\079\000\066\002\080\000\066\002\
\\081\000\066\002\082\000\066\002\083\000\066\002\085\000\066\002\
\\086\000\066\002\087\000\066\002\088\000\066\002\089\000\066\002\
\\090\000\066\002\091\000\066\002\094\000\066\002\096\000\066\002\
\\099\000\066\002\102\000\066\002\104\000\066\002\000\000\
\\001\000\002\000\067\002\005\000\067\002\006\000\067\002\007\000\067\002\
\\009\000\067\002\011\000\067\002\012\000\067\002\013\000\067\002\
\\015\000\067\002\018\000\067\002\020\000\067\002\021\000\067\002\
\\022\000\067\002\023\000\067\002\024\000\067\002\035\000\067\002\
\\036\000\067\002\038\000\067\002\039\000\067\002\040\000\067\002\
\\041\000\067\002\042\000\067\002\043\000\067\002\044\000\067\002\
\\045\000\067\002\048\000\067\002\049\000\067\002\050\000\067\002\
\\063\000\067\002\064\000\067\002\065\000\067\002\066\000\067\002\
\\067\000\067\002\068\000\067\002\069\000\067\002\070\000\067\002\
\\071\000\067\002\072\000\067\002\074\000\067\002\075\000\067\002\
\\076\000\067\002\077\000\067\002\078\000\067\002\079\000\067\002\
\\080\000\067\002\081\000\067\002\082\000\067\002\083\000\067\002\
\\085\000\067\002\086\000\067\002\087\000\067\002\088\000\067\002\
\\089\000\067\002\090\000\067\002\091\000\067\002\092\000\067\002\
\\093\000\067\002\094\000\067\002\096\000\067\002\097\000\067\002\
\\099\000\067\002\100\000\067\002\102\000\067\002\103\000\067\002\
\\104\000\067\002\000\000\
\\001\000\002\000\068\002\005\000\068\002\006\000\068\002\007\000\068\002\
\\009\000\068\002\011\000\068\002\012\000\068\002\013\000\068\002\
\\015\000\068\002\018\000\068\002\020\000\068\002\021\000\068\002\
\\022\000\068\002\023\000\068\002\024\000\068\002\035\000\068\002\
\\036\000\068\002\038\000\068\002\039\000\068\002\040\000\068\002\
\\041\000\068\002\042\000\068\002\043\000\068\002\044\000\068\002\
\\045\000\068\002\048\000\068\002\049\000\068\002\050\000\068\002\
\\063\000\068\002\064\000\068\002\065\000\068\002\066\000\068\002\
\\067\000\068\002\068\000\068\002\069\000\068\002\070\000\068\002\
\\071\000\068\002\072\000\068\002\074\000\068\002\075\000\068\002\
\\076\000\068\002\077\000\068\002\078\000\068\002\079\000\068\002\
\\080\000\068\002\081\000\068\002\082\000\068\002\083\000\068\002\
\\085\000\068\002\086\000\068\002\087\000\068\002\088\000\068\002\
\\089\000\068\002\090\000\068\002\091\000\068\002\092\000\068\002\
\\093\000\068\002\094\000\068\002\096\000\068\002\097\000\068\002\
\\099\000\068\002\100\000\068\002\102\000\068\002\103\000\068\002\
\\104\000\068\002\000\000\
\\001\000\002\000\069\002\005\000\069\002\006\000\069\002\007\000\069\002\
\\009\000\069\002\011\000\069\002\012\000\069\002\013\000\069\002\
\\015\000\069\002\018\000\069\002\020\000\069\002\021\000\069\002\
\\022\000\069\002\023\000\069\002\024\000\069\002\035\000\069\002\
\\036\000\069\002\038\000\069\002\039\000\069\002\040\000\069\002\
\\041\000\069\002\042\000\069\002\043\000\069\002\044\000\069\002\
\\045\000\069\002\048\000\069\002\049\000\069\002\050\000\069\002\
\\063\000\069\002\064\000\069\002\065\000\069\002\066\000\069\002\
\\067\000\069\002\068\000\069\002\069\000\069\002\070\000\069\002\
\\071\000\069\002\072\000\069\002\074\000\069\002\075\000\069\002\
\\076\000\069\002\077\000\069\002\078\000\069\002\079\000\069\002\
\\080\000\069\002\081\000\069\002\082\000\069\002\083\000\069\002\
\\085\000\069\002\086\000\069\002\087\000\069\002\088\000\069\002\
\\089\000\069\002\090\000\069\002\091\000\069\002\092\000\069\002\
\\093\000\069\002\094\000\069\002\096\000\069\002\097\000\069\002\
\\099\000\069\002\100\000\069\002\102\000\069\002\103\000\069\002\
\\104\000\069\002\000\000\
\\001\000\002\000\073\002\005\000\073\002\006\000\073\002\009\000\050\000\
\\011\000\073\002\012\000\073\002\035\000\073\002\049\000\073\002\
\\063\000\073\002\064\000\073\002\065\000\073\002\066\000\073\002\
\\067\000\073\002\068\000\073\002\069\000\073\002\070\000\073\002\
\\071\000\073\002\072\000\073\002\074\000\073\002\075\000\073\002\
\\077\000\073\002\078\000\073\002\079\000\073\002\080\000\073\002\
\\081\000\073\002\082\000\073\002\083\000\073\002\085\000\073\002\
\\086\000\073\002\087\000\073\002\088\000\073\002\089\000\073\002\
\\090\000\073\002\091\000\073\002\094\000\073\002\096\000\020\000\
\\099\000\073\002\102\000\018\000\104\000\073\002\000\000\
\\001\000\002\000\074\002\005\000\074\002\006\000\074\002\009\000\074\002\
\\011\000\074\002\012\000\074\002\035\000\074\002\049\000\074\002\
\\063\000\074\002\064\000\074\002\065\000\074\002\066\000\074\002\
\\067\000\074\002\068\000\074\002\069\000\074\002\070\000\074\002\
\\071\000\074\002\072\000\074\002\074\000\074\002\075\000\074\002\
\\077\000\074\002\078\000\074\002\079\000\074\002\080\000\074\002\
\\081\000\074\002\082\000\074\002\083\000\074\002\085\000\074\002\
\\086\000\074\002\087\000\074\002\088\000\074\002\089\000\074\002\
\\090\000\074\002\091\000\074\002\094\000\074\002\096\000\074\002\
\\099\000\074\002\102\000\074\002\104\000\074\002\000\000\
\\001\000\002\000\095\002\005\000\095\002\006\000\095\002\009\000\050\000\
\\011\000\095\002\012\000\095\002\035\000\048\000\049\000\047\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\074\000\095\002\075\000\036\000\
\\077\000\035\000\078\000\034\000\079\000\033\000\080\000\032\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\085\000\028\000\
\\086\000\027\000\087\000\026\000\088\000\025\000\089\000\024\000\
\\090\000\023\000\091\000\022\000\094\000\021\000\096\000\020\000\
\\099\000\019\000\102\000\018\000\104\000\017\000\000\000\
\\001\000\002\000\096\002\005\000\096\002\006\000\096\002\009\000\096\002\
\\011\000\096\002\012\000\096\002\074\000\096\002\000\000\
\\001\000\002\000\097\002\005\000\097\002\006\000\097\002\009\000\050\000\
\\011\000\097\002\012\000\097\002\035\000\048\000\049\000\047\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\074\000\097\002\075\000\036\000\
\\077\000\035\000\078\000\034\000\079\000\033\000\080\000\032\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\085\000\028\000\
\\086\000\027\000\087\000\026\000\088\000\025\000\089\000\024\000\
\\090\000\023\000\091\000\022\000\094\000\021\000\096\000\020\000\
\\099\000\019\000\102\000\018\000\104\000\017\000\000\000\
\\001\000\002\000\098\002\005\000\098\002\006\000\098\002\009\000\098\002\
\\011\000\098\002\012\000\098\002\074\000\098\002\000\000\
\\001\000\002\000\099\002\005\000\099\002\006\000\099\002\009\000\050\000\
\\011\000\099\002\012\000\099\002\035\000\048\000\049\000\047\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\074\000\099\002\075\000\036\000\
\\077\000\035\000\078\000\034\000\079\000\033\000\080\000\032\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\085\000\028\000\
\\086\000\027\000\087\000\026\000\088\000\025\000\089\000\024\000\
\\090\000\023\000\091\000\022\000\094\000\021\000\096\000\020\000\
\\099\000\019\000\102\000\018\000\104\000\017\000\000\000\
\\001\000\002\000\100\002\005\000\100\002\006\000\100\002\009\000\100\002\
\\011\000\100\002\012\000\100\002\074\000\100\002\000\000\
\\001\000\002\000\101\002\005\000\101\002\006\000\101\002\009\000\050\000\
\\011\000\101\002\012\000\101\002\035\000\048\000\049\000\047\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\074\000\101\002\075\000\036\000\
\\077\000\035\000\078\000\034\000\079\000\033\000\080\000\032\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\085\000\028\000\
\\086\000\027\000\087\000\026\000\088\000\025\000\089\000\024\000\
\\090\000\023\000\091\000\022\000\094\000\021\000\096\000\020\000\
\\099\000\019\000\102\000\018\000\104\000\017\000\000\000\
\\001\000\002\000\102\002\005\000\102\002\006\000\102\002\009\000\102\002\
\\011\000\102\002\012\000\102\002\074\000\102\002\000\000\
\\001\000\002\000\114\002\005\000\114\002\007\000\114\002\008\000\114\002\
\\009\000\114\002\012\000\114\002\018\000\114\002\020\000\114\002\
\\021\000\114\002\022\000\114\002\023\000\114\002\024\000\114\002\
\\035\000\114\002\036\000\114\002\038\000\114\002\039\000\114\002\
\\040\000\114\002\041\000\114\002\042\000\114\002\043\000\114\002\
\\044\000\114\002\045\000\114\002\046\000\114\002\047\000\114\002\
\\048\000\114\002\049\000\114\002\050\000\114\002\063\000\114\002\
\\064\000\114\002\065\000\114\002\066\000\114\002\067\000\114\002\
\\068\000\114\002\069\000\114\002\070\000\114\002\071\000\114\002\
\\072\000\114\002\074\000\114\002\075\000\114\002\076\000\114\002\
\\077\000\114\002\078\000\114\002\079\000\114\002\080\000\114\002\
\\081\000\114\002\082\000\114\002\083\000\114\002\085\000\114\002\
\\086\000\114\002\087\000\114\002\088\000\114\002\089\000\114\002\
\\090\000\114\002\091\000\114\002\092\000\114\002\093\000\114\002\
\\094\000\114\002\096\000\114\002\097\000\114\002\099\000\114\002\
\\100\000\114\002\102\000\114\002\103\000\114\002\104\000\114\002\000\000\
\\001\000\002\000\115\002\005\000\115\002\007\000\115\002\008\000\115\002\
\\009\000\115\002\012\000\115\002\018\000\115\002\020\000\115\002\
\\021\000\115\002\022\000\115\002\023\000\115\002\024\000\115\002\
\\035\000\115\002\036\000\115\002\038\000\115\002\039\000\115\002\
\\040\000\115\002\041\000\115\002\042\000\115\002\043\000\115\002\
\\044\000\115\002\045\000\115\002\046\000\115\002\047\000\115\002\
\\048\000\115\002\049\000\115\002\050\000\115\002\063\000\115\002\
\\064\000\115\002\065\000\115\002\066\000\115\002\067\000\115\002\
\\068\000\115\002\069\000\115\002\070\000\115\002\071\000\115\002\
\\072\000\115\002\074\000\115\002\075\000\115\002\076\000\115\002\
\\077\000\115\002\078\000\115\002\079\000\115\002\080\000\115\002\
\\081\000\115\002\082\000\115\002\083\000\115\002\085\000\115\002\
\\086\000\115\002\087\000\115\002\088\000\115\002\089\000\115\002\
\\090\000\115\002\091\000\115\002\092\000\115\002\093\000\115\002\
\\094\000\115\002\096\000\115\002\097\000\115\002\099\000\115\002\
\\100\000\115\002\102\000\115\002\103\000\115\002\104\000\115\002\000\000\
\\001\000\002\000\122\002\005\000\122\002\006\000\122\002\009\000\122\002\
\\012\000\122\002\035\000\048\000\049\000\047\000\063\000\046\000\
\\064\000\045\000\065\000\044\000\066\000\043\000\067\000\042\000\
\\068\000\041\000\069\000\040\000\070\000\039\000\071\000\038\000\
\\072\000\037\000\074\000\122\002\075\000\036\000\077\000\035\000\
\\078\000\034\000\081\000\031\000\082\000\030\000\083\000\029\000\000\000\
\\001\000\002\000\123\002\005\000\123\002\006\000\123\002\009\000\123\002\
\\012\000\123\002\074\000\123\002\000\000\
\\001\000\002\000\124\002\005\000\124\002\006\000\124\002\009\000\124\002\
\\012\000\124\002\035\000\048\000\049\000\047\000\063\000\046\000\
\\064\000\045\000\065\000\044\000\066\000\043\000\067\000\042\000\
\\068\000\041\000\069\000\040\000\070\000\039\000\071\000\038\000\
\\072\000\037\000\074\000\124\002\075\000\036\000\077\000\035\000\
\\078\000\034\000\081\000\031\000\082\000\030\000\083\000\029\000\000\000\
\\001\000\002\000\125\002\005\000\125\002\006\000\125\002\009\000\125\002\
\\012\000\125\002\074\000\125\002\000\000\
\\001\000\002\000\126\002\005\000\126\002\006\000\126\002\009\000\126\002\
\\011\000\126\002\012\000\126\002\035\000\126\002\049\000\126\002\
\\063\000\126\002\064\000\126\002\065\000\126\002\066\000\126\002\
\\067\000\126\002\068\000\126\002\069\000\126\002\070\000\126\002\
\\071\000\126\002\072\000\126\002\074\000\126\002\075\000\126\002\
\\077\000\126\002\078\000\126\002\079\000\126\002\080\000\126\002\
\\081\000\126\002\082\000\126\002\083\000\126\002\085\000\126\002\
\\086\000\126\002\087\000\126\002\088\000\126\002\089\000\126\002\
\\090\000\126\002\091\000\126\002\094\000\126\002\096\000\126\002\
\\099\000\126\002\102\000\126\002\104\000\126\002\000\000\
\\001\000\002\000\127\002\005\000\127\002\006\000\127\002\009\000\127\002\
\\011\000\127\002\012\000\127\002\035\000\127\002\049\000\127\002\
\\063\000\127\002\064\000\127\002\065\000\127\002\066\000\127\002\
\\067\000\127\002\068\000\127\002\069\000\127\002\070\000\127\002\
\\071\000\127\002\072\000\127\002\074\000\127\002\075\000\127\002\
\\077\000\127\002\078\000\127\002\079\000\127\002\080\000\127\002\
\\081\000\127\002\082\000\127\002\083\000\127\002\085\000\127\002\
\\086\000\127\002\087\000\127\002\088\000\127\002\089\000\127\002\
\\090\000\127\002\091\000\127\002\094\000\127\002\096\000\127\002\
\\099\000\127\002\102\000\127\002\104\000\127\002\000\000\
\\001\000\002\000\128\002\005\000\128\002\006\000\128\002\009\000\128\002\
\\011\000\128\002\012\000\128\002\035\000\128\002\049\000\128\002\
\\063\000\128\002\064\000\128\002\065\000\128\002\066\000\128\002\
\\067\000\128\002\068\000\128\002\069\000\128\002\070\000\128\002\
\\071\000\128\002\072\000\128\002\074\000\128\002\075\000\128\002\
\\077\000\128\002\078\000\128\002\079\000\128\002\080\000\128\002\
\\081\000\128\002\082\000\128\002\083\000\128\002\085\000\128\002\
\\086\000\128\002\087\000\128\002\088\000\128\002\089\000\128\002\
\\090\000\128\002\091\000\128\002\094\000\128\002\096\000\128\002\
\\099\000\128\002\102\000\128\002\104\000\128\002\000\000\
\\001\000\002\000\129\002\005\000\129\002\006\000\129\002\009\000\129\002\
\\011\000\129\002\074\000\129\002\081\000\031\000\082\000\030\000\
\\083\000\029\000\096\000\129\002\102\000\129\002\000\000\
\\001\000\002\000\130\002\005\000\130\002\006\000\130\002\009\000\130\002\
\\011\000\130\002\074\000\130\002\096\000\130\002\102\000\130\002\000\000\
\\001\000\002\000\158\002\005\000\158\002\006\000\158\002\007\000\158\002\
\\009\000\158\002\011\000\158\002\012\000\158\002\035\000\158\002\
\\049\000\158\002\063\000\158\002\064\000\158\002\065\000\158\002\
\\066\000\158\002\067\000\158\002\068\000\158\002\069\000\158\002\
\\070\000\158\002\071\000\158\002\072\000\158\002\074\000\158\002\
\\075\000\158\002\077\000\158\002\078\000\158\002\079\000\158\002\
\\080\000\158\002\081\000\158\002\082\000\158\002\083\000\158\002\
\\085\000\158\002\086\000\158\002\087\000\158\002\088\000\158\002\
\\089\000\158\002\090\000\158\002\091\000\158\002\094\000\158\002\
\\096\000\158\002\099\000\158\002\102\000\158\002\104\000\158\002\000\000\
\\001\000\002\000\159\002\005\000\159\002\006\000\159\002\007\000\159\002\
\\009\000\159\002\011\000\159\002\012\000\159\002\035\000\159\002\
\\049\000\159\002\063\000\159\002\064\000\159\002\065\000\159\002\
\\066\000\159\002\067\000\159\002\068\000\159\002\069\000\159\002\
\\070\000\159\002\071\000\159\002\072\000\159\002\074\000\159\002\
\\075\000\159\002\077\000\159\002\078\000\159\002\079\000\159\002\
\\080\000\159\002\081\000\159\002\082\000\159\002\083\000\159\002\
\\085\000\159\002\086\000\159\002\087\000\159\002\088\000\159\002\
\\089\000\159\002\090\000\159\002\091\000\159\002\094\000\159\002\
\\096\000\159\002\099\000\159\002\102\000\159\002\104\000\159\002\000\000\
\\001\000\002\000\160\002\005\000\160\002\006\000\160\002\007\000\115\000\
\\009\000\160\002\011\000\160\002\012\000\160\002\035\000\160\002\
\\049\000\160\002\063\000\160\002\064\000\160\002\065\000\160\002\
\\066\000\160\002\067\000\160\002\068\000\160\002\069\000\160\002\
\\070\000\160\002\071\000\160\002\072\000\160\002\074\000\160\002\
\\075\000\160\002\077\000\160\002\078\000\160\002\079\000\160\002\
\\080\000\160\002\081\000\160\002\082\000\160\002\083\000\160\002\
\\085\000\160\002\086\000\160\002\087\000\160\002\088\000\160\002\
\\089\000\160\002\090\000\160\002\091\000\160\002\094\000\160\002\
\\096\000\160\002\099\000\160\002\102\000\160\002\104\000\160\002\000\000\
\\001\000\002\000\161\002\005\000\161\002\006\000\161\002\009\000\161\002\
\\011\000\161\002\012\000\161\002\035\000\161\002\049\000\161\002\
\\063\000\161\002\064\000\161\002\065\000\161\002\066\000\161\002\
\\067\000\161\002\068\000\161\002\069\000\161\002\070\000\161\002\
\\071\000\161\002\072\000\161\002\074\000\161\002\075\000\161\002\
\\077\000\161\002\078\000\161\002\079\000\161\002\080\000\161\002\
\\081\000\161\002\082\000\161\002\083\000\161\002\085\000\161\002\
\\086\000\161\002\087\000\161\002\088\000\161\002\089\000\161\002\
\\090\000\161\002\091\000\161\002\094\000\161\002\096\000\161\002\
\\099\000\161\002\102\000\161\002\104\000\161\002\000\000\
\\001\000\002\000\162\002\005\000\162\002\006\000\162\002\009\000\162\002\
\\011\000\162\002\012\000\162\002\035\000\162\002\049\000\162\002\
\\063\000\162\002\064\000\162\002\065\000\162\002\066\000\162\002\
\\067\000\162\002\068\000\162\002\069\000\162\002\070\000\162\002\
\\071\000\162\002\072\000\162\002\074\000\162\002\075\000\162\002\
\\077\000\162\002\078\000\162\002\079\000\162\002\080\000\162\002\
\\081\000\162\002\082\000\162\002\083\000\162\002\085\000\162\002\
\\086\000\162\002\087\000\162\002\088\000\162\002\089\000\162\002\
\\090\000\162\002\091\000\162\002\094\000\162\002\096\000\162\002\
\\099\000\162\002\102\000\162\002\104\000\162\002\000\000\
\\001\000\002\000\163\002\005\000\163\002\006\000\163\002\009\000\163\002\
\\011\000\163\002\012\000\163\002\035\000\163\002\049\000\163\002\
\\063\000\163\002\064\000\163\002\065\000\163\002\066\000\163\002\
\\067\000\163\002\068\000\163\002\069\000\163\002\070\000\163\002\
\\071\000\163\002\072\000\163\002\074\000\163\002\075\000\163\002\
\\077\000\163\002\078\000\163\002\079\000\163\002\080\000\163\002\
\\081\000\163\002\082\000\163\002\083\000\163\002\085\000\163\002\
\\086\000\163\002\087\000\163\002\088\000\163\002\089\000\163\002\
\\090\000\163\002\091\000\163\002\094\000\163\002\096\000\163\002\
\\099\000\163\002\102\000\163\002\104\000\163\002\000\000\
\\001\000\002\000\164\002\005\000\164\002\006\000\164\002\007\000\112\000\
\\009\000\164\002\011\000\164\002\012\000\164\002\035\000\164\002\
\\049\000\164\002\063\000\164\002\064\000\164\002\065\000\164\002\
\\066\000\164\002\067\000\164\002\068\000\164\002\069\000\164\002\
\\070\000\164\002\071\000\164\002\072\000\164\002\074\000\164\002\
\\075\000\164\002\077\000\164\002\078\000\164\002\079\000\164\002\
\\080\000\164\002\081\000\164\002\082\000\164\002\083\000\164\002\
\\085\000\164\002\086\000\164\002\087\000\164\002\088\000\164\002\
\\089\000\164\002\090\000\164\002\091\000\164\002\094\000\164\002\
\\096\000\164\002\099\000\164\002\102\000\164\002\104\000\164\002\000\000\
\\001\000\002\000\165\002\005\000\165\002\006\000\165\002\009\000\165\002\
\\011\000\165\002\012\000\165\002\035\000\165\002\049\000\165\002\
\\063\000\165\002\064\000\165\002\065\000\165\002\066\000\165\002\
\\067\000\165\002\068\000\165\002\069\000\165\002\070\000\165\002\
\\071\000\165\002\072\000\165\002\074\000\165\002\075\000\165\002\
\\077\000\165\002\078\000\165\002\079\000\165\002\080\000\165\002\
\\081\000\165\002\082\000\165\002\083\000\165\002\085\000\165\002\
\\086\000\165\002\087\000\165\002\088\000\165\002\089\000\165\002\
\\090\000\165\002\091\000\165\002\094\000\165\002\096\000\165\002\
\\099\000\165\002\102\000\165\002\104\000\165\002\000\000\
\\001\000\002\000\166\002\005\000\166\002\006\000\166\002\009\000\166\002\
\\011\000\166\002\012\000\166\002\035\000\166\002\049\000\166\002\
\\063\000\166\002\064\000\166\002\065\000\166\002\066\000\166\002\
\\067\000\166\002\068\000\166\002\069\000\166\002\070\000\166\002\
\\071\000\166\002\072\000\166\002\074\000\166\002\075\000\166\002\
\\077\000\166\002\078\000\166\002\079\000\166\002\080\000\166\002\
\\081\000\166\002\082\000\166\002\083\000\166\002\085\000\166\002\
\\086\000\166\002\087\000\166\002\088\000\166\002\089\000\166\002\
\\090\000\166\002\091\000\166\002\094\000\166\002\096\000\166\002\
\\099\000\166\002\102\000\166\002\104\000\166\002\000\000\
\\001\000\002\000\167\002\005\000\167\002\006\000\167\002\009\000\167\002\
\\011\000\167\002\012\000\167\002\035\000\167\002\049\000\167\002\
\\063\000\167\002\064\000\167\002\065\000\167\002\066\000\167\002\
\\067\000\167\002\068\000\167\002\069\000\167\002\070\000\167\002\
\\071\000\167\002\072\000\167\002\074\000\167\002\075\000\167\002\
\\077\000\167\002\078\000\167\002\079\000\167\002\080\000\167\002\
\\081\000\167\002\082\000\167\002\083\000\167\002\085\000\167\002\
\\086\000\167\002\087\000\167\002\088\000\167\002\089\000\167\002\
\\090\000\167\002\091\000\167\002\094\000\167\002\096\000\167\002\
\\099\000\167\002\102\000\167\002\104\000\167\002\000\000\
\\001\000\002\000\168\002\005\000\168\002\006\000\168\002\009\000\168\002\
\\011\000\168\002\012\000\168\002\035\000\168\002\049\000\168\002\
\\063\000\168\002\064\000\168\002\065\000\168\002\066\000\168\002\
\\067\000\168\002\068\000\168\002\069\000\168\002\070\000\168\002\
\\071\000\168\002\072\000\168\002\074\000\168\002\075\000\168\002\
\\077\000\168\002\078\000\168\002\079\000\168\002\080\000\168\002\
\\081\000\168\002\082\000\168\002\083\000\168\002\085\000\168\002\
\\086\000\168\002\087\000\168\002\088\000\168\002\089\000\168\002\
\\090\000\168\002\091\000\168\002\094\000\168\002\096\000\168\002\
\\099\000\168\002\102\000\168\002\104\000\168\002\000\000\
\\001\000\002\000\169\002\005\000\169\002\006\000\169\002\009\000\169\002\
\\011\000\169\002\012\000\169\002\035\000\169\002\049\000\169\002\
\\063\000\169\002\064\000\169\002\065\000\169\002\066\000\169\002\
\\067\000\169\002\068\000\169\002\069\000\169\002\070\000\169\002\
\\071\000\169\002\072\000\169\002\074\000\169\002\075\000\169\002\
\\077\000\169\002\078\000\169\002\079\000\169\002\080\000\169\002\
\\081\000\169\002\082\000\169\002\083\000\169\002\085\000\169\002\
\\086\000\169\002\087\000\169\002\088\000\169\002\089\000\169\002\
\\090\000\169\002\091\000\169\002\094\000\169\002\096\000\169\002\
\\099\000\169\002\102\000\169\002\104\000\169\002\000\000\
\\001\000\002\000\170\002\005\000\170\002\006\000\170\002\009\000\170\002\
\\011\000\170\002\012\000\170\002\035\000\170\002\049\000\170\002\
\\063\000\170\002\064\000\170\002\065\000\170\002\066\000\170\002\
\\067\000\170\002\068\000\170\002\069\000\170\002\070\000\170\002\
\\071\000\170\002\072\000\170\002\074\000\170\002\075\000\170\002\
\\077\000\170\002\078\000\170\002\079\000\170\002\080\000\170\002\
\\081\000\170\002\082\000\170\002\083\000\170\002\085\000\170\002\
\\086\000\170\002\087\000\170\002\088\000\170\002\089\000\170\002\
\\090\000\170\002\091\000\170\002\094\000\170\002\096\000\170\002\
\\099\000\170\002\102\000\170\002\104\000\170\002\000\000\
\\001\000\002\000\171\002\005\000\171\002\006\000\171\002\009\000\171\002\
\\011\000\171\002\012\000\171\002\035\000\171\002\049\000\171\002\
\\063\000\171\002\064\000\171\002\065\000\171\002\066\000\171\002\
\\067\000\171\002\068\000\171\002\069\000\171\002\070\000\171\002\
\\071\000\171\002\072\000\171\002\074\000\171\002\075\000\171\002\
\\077\000\171\002\078\000\171\002\079\000\171\002\080\000\171\002\
\\081\000\171\002\082\000\171\002\083\000\171\002\085\000\171\002\
\\086\000\171\002\087\000\171\002\088\000\171\002\089\000\171\002\
\\090\000\171\002\091\000\171\002\094\000\171\002\096\000\171\002\
\\099\000\171\002\102\000\171\002\104\000\171\002\000\000\
\\001\000\002\000\172\002\005\000\172\002\006\000\172\002\009\000\172\002\
\\011\000\172\002\012\000\172\002\035\000\172\002\049\000\172\002\
\\063\000\172\002\064\000\172\002\065\000\172\002\066\000\172\002\
\\067\000\172\002\068\000\172\002\069\000\172\002\070\000\172\002\
\\071\000\172\002\072\000\172\002\074\000\172\002\075\000\172\002\
\\077\000\172\002\078\000\172\002\079\000\172\002\080\000\172\002\
\\081\000\172\002\082\000\172\002\083\000\172\002\085\000\172\002\
\\086\000\172\002\087\000\172\002\088\000\172\002\089\000\172\002\
\\090\000\172\002\091\000\172\002\094\000\172\002\096\000\172\002\
\\099\000\172\002\102\000\172\002\104\000\172\002\000\000\
\\001\000\002\000\173\002\005\000\173\002\006\000\173\002\009\000\173\002\
\\011\000\173\002\012\000\173\002\035\000\173\002\049\000\173\002\
\\063\000\173\002\064\000\173\002\065\000\173\002\066\000\173\002\
\\067\000\173\002\068\000\173\002\069\000\173\002\070\000\173\002\
\\071\000\173\002\072\000\173\002\074\000\173\002\075\000\173\002\
\\077\000\173\002\078\000\173\002\079\000\173\002\080\000\173\002\
\\081\000\173\002\082\000\173\002\083\000\173\002\085\000\173\002\
\\086\000\173\002\087\000\173\002\088\000\173\002\089\000\173\002\
\\090\000\173\002\091\000\173\002\094\000\173\002\096\000\173\002\
\\099\000\173\002\102\000\173\002\104\000\173\002\000\000\
\\001\000\002\000\174\002\005\000\174\002\006\000\174\002\009\000\174\002\
\\011\000\174\002\012\000\174\002\035\000\174\002\049\000\174\002\
\\063\000\174\002\064\000\174\002\065\000\174\002\066\000\174\002\
\\067\000\174\002\068\000\174\002\069\000\174\002\070\000\174\002\
\\071\000\174\002\072\000\174\002\074\000\174\002\075\000\174\002\
\\077\000\174\002\078\000\174\002\079\000\174\002\080\000\174\002\
\\081\000\174\002\082\000\174\002\083\000\174\002\085\000\174\002\
\\086\000\174\002\087\000\174\002\088\000\174\002\089\000\174\002\
\\090\000\174\002\091\000\174\002\094\000\174\002\096\000\174\002\
\\099\000\174\002\102\000\174\002\104\000\174\002\000\000\
\\001\000\002\000\175\002\005\000\175\002\006\000\175\002\009\000\175\002\
\\011\000\175\002\012\000\175\002\035\000\175\002\049\000\175\002\
\\063\000\175\002\064\000\175\002\065\000\175\002\066\000\175\002\
\\067\000\175\002\068\000\175\002\069\000\175\002\070\000\175\002\
\\071\000\175\002\072\000\175\002\074\000\175\002\075\000\175\002\
\\077\000\175\002\078\000\175\002\079\000\175\002\080\000\175\002\
\\081\000\175\002\082\000\175\002\083\000\175\002\085\000\175\002\
\\086\000\175\002\087\000\175\002\088\000\175\002\089\000\175\002\
\\090\000\175\002\091\000\175\002\094\000\175\002\096\000\175\002\
\\099\000\175\002\102\000\175\002\104\000\175\002\000\000\
\\001\000\002\000\176\002\005\000\176\002\006\000\176\002\009\000\176\002\
\\011\000\176\002\012\000\176\002\035\000\176\002\049\000\176\002\
\\063\000\176\002\064\000\176\002\065\000\176\002\066\000\176\002\
\\067\000\176\002\068\000\176\002\069\000\176\002\070\000\176\002\
\\071\000\176\002\072\000\176\002\074\000\176\002\075\000\176\002\
\\077\000\176\002\078\000\176\002\079\000\176\002\080\000\176\002\
\\081\000\176\002\082\000\176\002\083\000\176\002\085\000\176\002\
\\086\000\176\002\087\000\176\002\088\000\176\002\089\000\176\002\
\\090\000\176\002\091\000\176\002\094\000\176\002\096\000\176\002\
\\099\000\176\002\102\000\176\002\104\000\176\002\000\000\
\\001\000\002\000\177\002\005\000\177\002\006\000\177\002\009\000\177\002\
\\011\000\177\002\012\000\177\002\035\000\177\002\049\000\177\002\
\\063\000\177\002\064\000\177\002\065\000\177\002\066\000\177\002\
\\067\000\177\002\068\000\177\002\069\000\177\002\070\000\177\002\
\\071\000\177\002\072\000\177\002\074\000\177\002\075\000\177\002\
\\077\000\177\002\078\000\177\002\079\000\177\002\080\000\177\002\
\\081\000\177\002\082\000\177\002\083\000\177\002\085\000\177\002\
\\086\000\177\002\087\000\177\002\088\000\177\002\089\000\177\002\
\\090\000\177\002\091\000\177\002\094\000\177\002\096\000\177\002\
\\099\000\177\002\102\000\177\002\104\000\177\002\000\000\
\\001\000\002\000\178\002\005\000\178\002\006\000\178\002\009\000\178\002\
\\011\000\178\002\012\000\178\002\035\000\178\002\049\000\178\002\
\\063\000\178\002\064\000\178\002\065\000\178\002\066\000\178\002\
\\067\000\178\002\068\000\178\002\069\000\178\002\070\000\178\002\
\\071\000\178\002\072\000\178\002\074\000\178\002\075\000\178\002\
\\077\000\178\002\078\000\178\002\079\000\178\002\080\000\178\002\
\\081\000\178\002\082\000\178\002\083\000\178\002\085\000\178\002\
\\086\000\178\002\087\000\178\002\088\000\178\002\089\000\178\002\
\\090\000\178\002\091\000\178\002\094\000\178\002\096\000\178\002\
\\099\000\178\002\102\000\178\002\104\000\178\002\000\000\
\\001\000\002\000\179\002\005\000\179\002\006\000\179\002\009\000\179\002\
\\011\000\179\002\012\000\179\002\035\000\179\002\049\000\179\002\
\\063\000\179\002\064\000\179\002\065\000\179\002\066\000\179\002\
\\067\000\179\002\068\000\179\002\069\000\179\002\070\000\179\002\
\\071\000\179\002\072\000\179\002\074\000\179\002\075\000\179\002\
\\077\000\179\002\078\000\179\002\079\000\179\002\080\000\179\002\
\\081\000\179\002\082\000\179\002\083\000\179\002\085\000\179\002\
\\086\000\179\002\087\000\179\002\088\000\179\002\089\000\179\002\
\\090\000\179\002\091\000\179\002\094\000\179\002\096\000\179\002\
\\099\000\179\002\102\000\179\002\104\000\179\002\000\000\
\\001\000\002\000\180\002\005\000\180\002\006\000\180\002\009\000\180\002\
\\011\000\180\002\012\000\180\002\035\000\180\002\049\000\180\002\
\\063\000\180\002\064\000\180\002\065\000\180\002\066\000\180\002\
\\067\000\180\002\068\000\180\002\069\000\180\002\070\000\180\002\
\\071\000\180\002\072\000\180\002\074\000\180\002\075\000\180\002\
\\077\000\180\002\078\000\180\002\079\000\180\002\080\000\180\002\
\\081\000\180\002\082\000\180\002\083\000\180\002\085\000\180\002\
\\086\000\180\002\087\000\180\002\088\000\180\002\089\000\180\002\
\\090\000\180\002\091\000\180\002\094\000\180\002\096\000\180\002\
\\099\000\180\002\102\000\180\002\104\000\180\002\000\000\
\\001\000\002\000\181\002\005\000\181\002\006\000\181\002\009\000\181\002\
\\011\000\181\002\012\000\181\002\035\000\181\002\049\000\181\002\
\\063\000\181\002\064\000\181\002\065\000\181\002\066\000\181\002\
\\067\000\181\002\068\000\181\002\069\000\181\002\070\000\181\002\
\\071\000\181\002\072\000\181\002\074\000\181\002\075\000\181\002\
\\077\000\181\002\078\000\181\002\079\000\181\002\080\000\181\002\
\\081\000\181\002\082\000\181\002\083\000\181\002\085\000\181\002\
\\086\000\181\002\087\000\181\002\088\000\181\002\089\000\181\002\
\\090\000\181\002\091\000\181\002\094\000\181\002\096\000\181\002\
\\099\000\181\002\102\000\181\002\104\000\181\002\000\000\
\\001\000\002\000\182\002\005\000\182\002\006\000\182\002\009\000\182\002\
\\011\000\182\002\012\000\182\002\035\000\182\002\049\000\182\002\
\\063\000\182\002\064\000\182\002\065\000\182\002\066\000\182\002\
\\067\000\182\002\068\000\182\002\069\000\182\002\070\000\182\002\
\\071\000\182\002\072\000\182\002\074\000\182\002\075\000\182\002\
\\077\000\182\002\078\000\182\002\079\000\182\002\080\000\182\002\
\\081\000\182\002\082\000\182\002\083\000\182\002\085\000\182\002\
\\086\000\182\002\087\000\182\002\088\000\182\002\089\000\182\002\
\\090\000\182\002\091\000\182\002\094\000\182\002\096\000\182\002\
\\099\000\182\002\102\000\182\002\104\000\182\002\000\000\
\\001\000\002\000\183\002\005\000\183\002\006\000\183\002\009\000\183\002\
\\011\000\183\002\012\000\183\002\035\000\183\002\049\000\183\002\
\\063\000\183\002\064\000\183\002\065\000\183\002\066\000\183\002\
\\067\000\183\002\068\000\183\002\069\000\183\002\070\000\183\002\
\\071\000\183\002\072\000\183\002\074\000\183\002\075\000\183\002\
\\077\000\183\002\078\000\183\002\079\000\183\002\080\000\183\002\
\\081\000\183\002\082\000\183\002\083\000\183\002\085\000\183\002\
\\086\000\183\002\087\000\183\002\088\000\183\002\089\000\183\002\
\\090\000\183\002\091\000\183\002\094\000\183\002\096\000\183\002\
\\099\000\183\002\102\000\183\002\104\000\183\002\000\000\
\\001\000\002\000\184\002\005\000\184\002\006\000\184\002\009\000\184\002\
\\011\000\184\002\012\000\184\002\035\000\184\002\049\000\184\002\
\\063\000\184\002\064\000\184\002\065\000\184\002\066\000\184\002\
\\067\000\184\002\068\000\184\002\069\000\184\002\070\000\184\002\
\\071\000\184\002\072\000\184\002\074\000\184\002\075\000\184\002\
\\077\000\184\002\078\000\184\002\079\000\184\002\080\000\184\002\
\\081\000\184\002\082\000\184\002\083\000\184\002\085\000\184\002\
\\086\000\184\002\087\000\184\002\088\000\184\002\089\000\184\002\
\\090\000\184\002\091\000\184\002\094\000\184\002\096\000\184\002\
\\099\000\184\002\102\000\184\002\104\000\184\002\000\000\
\\001\000\002\000\185\002\005\000\185\002\006\000\185\002\009\000\185\002\
\\011\000\185\002\012\000\185\002\035\000\185\002\049\000\185\002\
\\063\000\185\002\064\000\185\002\065\000\185\002\066\000\185\002\
\\067\000\185\002\068\000\185\002\069\000\185\002\070\000\185\002\
\\071\000\185\002\072\000\185\002\074\000\185\002\075\000\185\002\
\\077\000\185\002\078\000\185\002\079\000\185\002\080\000\185\002\
\\081\000\185\002\082\000\185\002\083\000\185\002\085\000\185\002\
\\086\000\185\002\087\000\185\002\088\000\185\002\089\000\185\002\
\\090\000\185\002\091\000\185\002\094\000\185\002\096\000\185\002\
\\099\000\185\002\102\000\185\002\104\000\185\002\000\000\
\\001\000\002\000\186\002\005\000\186\002\006\000\186\002\007\000\148\000\
\\009\000\186\002\011\000\186\002\012\000\186\002\035\000\186\002\
\\049\000\186\002\063\000\186\002\064\000\186\002\065\000\186\002\
\\066\000\186\002\067\000\186\002\068\000\186\002\069\000\186\002\
\\070\000\186\002\071\000\186\002\072\000\186\002\074\000\186\002\
\\075\000\186\002\077\000\186\002\078\000\186\002\079\000\186\002\
\\080\000\186\002\081\000\186\002\082\000\186\002\083\000\186\002\
\\085\000\186\002\086\000\186\002\087\000\186\002\088\000\186\002\
\\089\000\186\002\090\000\186\002\091\000\186\002\094\000\186\002\
\\096\000\186\002\099\000\186\002\102\000\186\002\104\000\186\002\000\000\
\\001\000\002\000\207\002\005\000\207\002\007\000\207\002\018\000\207\002\
\\020\000\207\002\021\000\207\002\022\000\207\002\023\000\207\002\
\\024\000\207\002\048\000\207\002\050\000\207\002\074\000\207\002\
\\076\000\207\002\100\000\207\002\000\000\
\\001\000\002\000\215\002\005\000\215\002\018\000\215\002\020\000\215\002\
\\021\000\215\002\022\000\215\002\023\000\215\002\024\000\215\002\
\\048\000\215\002\050\000\215\002\074\000\215\002\076\000\215\002\
\\100\000\215\002\000\000\
\\001\000\002\000\216\002\005\000\216\002\018\000\216\002\020\000\216\002\
\\021\000\216\002\022\000\216\002\023\000\216\002\024\000\216\002\
\\048\000\216\002\050\000\216\002\074\000\216\002\076\000\216\002\
\\100\000\216\002\000\000\
\\001\000\002\000\217\002\005\000\217\002\018\000\217\002\020\000\217\002\
\\021\000\217\002\022\000\217\002\023\000\217\002\024\000\217\002\
\\048\000\217\002\050\000\217\002\074\000\217\002\076\000\217\002\
\\100\000\217\002\000\000\
\\001\000\002\000\218\002\005\000\218\002\018\000\218\002\020\000\218\002\
\\021\000\218\002\022\000\218\002\023\000\218\002\024\000\218\002\
\\048\000\218\002\050\000\218\002\074\000\218\002\076\000\218\002\
\\100\000\218\002\000\000\
\\001\000\002\000\219\002\005\000\219\002\018\000\219\002\020\000\219\002\
\\021\000\219\002\022\000\219\002\023\000\219\002\024\000\219\002\
\\048\000\219\002\050\000\219\002\074\000\219\002\076\000\219\002\
\\100\000\219\002\000\000\
\\001\000\002\000\220\002\005\000\220\002\018\000\220\002\020\000\220\002\
\\021\000\220\002\022\000\220\002\023\000\220\002\024\000\220\002\
\\048\000\220\002\050\000\220\002\074\000\220\002\076\000\220\002\
\\100\000\220\002\000\000\
\\001\000\002\000\221\002\005\000\221\002\018\000\221\002\020\000\221\002\
\\021\000\221\002\022\000\221\002\023\000\221\002\024\000\221\002\
\\048\000\221\002\050\000\221\002\074\000\221\002\076\000\221\002\
\\100\000\221\002\000\000\
\\001\000\002\000\222\002\005\000\222\002\018\000\222\002\020\000\222\002\
\\021\000\222\002\022\000\222\002\023\000\222\002\024\000\222\002\
\\048\000\222\002\050\000\222\002\074\000\222\002\076\000\222\002\
\\100\000\222\002\000\000\
\\001\000\002\000\223\002\005\000\223\002\018\000\223\002\020\000\223\002\
\\021\000\223\002\022\000\223\002\023\000\223\002\024\000\223\002\
\\048\000\223\002\050\000\223\002\074\000\223\002\076\000\223\002\
\\100\000\223\002\000\000\
\\001\000\002\000\224\002\005\000\224\002\018\000\224\002\020\000\224\002\
\\021\000\224\002\022\000\224\002\023\000\224\002\024\000\224\002\
\\048\000\224\002\050\000\224\002\074\000\224\002\076\000\224\002\
\\100\000\224\002\000\000\
\\001\000\002\000\225\002\005\000\225\002\018\000\225\002\020\000\225\002\
\\021\000\225\002\022\000\225\002\023\000\225\002\024\000\225\002\
\\048\000\225\002\050\000\225\002\074\000\225\002\076\000\225\002\
\\100\000\225\002\000\000\
\\001\000\002\000\227\002\005\000\227\002\007\000\227\002\008\000\227\002\
\\009\000\227\002\012\000\227\002\018\000\227\002\020\000\227\002\
\\021\000\227\002\022\000\227\002\023\000\227\002\024\000\227\002\
\\035\000\227\002\036\000\227\002\037\000\227\002\038\000\227\002\
\\039\000\227\002\040\000\227\002\041\000\227\002\042\000\227\002\
\\043\000\227\002\044\000\227\002\045\000\227\002\046\000\227\002\
\\047\000\227\002\048\000\227\002\049\000\227\002\050\000\227\002\
\\063\000\227\002\064\000\227\002\065\000\227\002\066\000\227\002\
\\067\000\227\002\068\000\227\002\069\000\227\002\070\000\227\002\
\\071\000\227\002\072\000\227\002\074\000\227\002\075\000\227\002\
\\076\000\227\002\077\000\227\002\078\000\227\002\079\000\227\002\
\\080\000\227\002\081\000\227\002\082\000\227\002\083\000\227\002\
\\085\000\227\002\086\000\227\002\087\000\227\002\088\000\227\002\
\\089\000\227\002\090\000\227\002\091\000\227\002\092\000\227\002\
\\093\000\227\002\094\000\227\002\096\000\227\002\097\000\227\002\
\\098\000\227\002\099\000\227\002\100\000\227\002\102\000\227\002\
\\103\000\227\002\104\000\227\002\000\000\
\\001\000\002\000\228\002\005\000\228\002\007\000\228\002\008\000\228\002\
\\009\000\228\002\012\000\228\002\018\000\228\002\020\000\228\002\
\\021\000\228\002\022\000\228\002\023\000\228\002\024\000\228\002\
\\035\000\228\002\036\000\228\002\037\000\228\002\038\000\228\002\
\\039\000\228\002\040\000\228\002\041\000\228\002\042\000\228\002\
\\043\000\228\002\044\000\228\002\045\000\228\002\046\000\228\002\
\\047\000\228\002\048\000\228\002\049\000\228\002\050\000\228\002\
\\063\000\228\002\064\000\228\002\065\000\228\002\066\000\228\002\
\\067\000\228\002\068\000\228\002\069\000\228\002\070\000\228\002\
\\071\000\228\002\072\000\228\002\074\000\228\002\075\000\228\002\
\\076\000\228\002\077\000\228\002\078\000\228\002\079\000\228\002\
\\080\000\228\002\081\000\228\002\082\000\228\002\083\000\228\002\
\\085\000\228\002\086\000\228\002\087\000\228\002\088\000\228\002\
\\089\000\228\002\090\000\228\002\091\000\228\002\092\000\228\002\
\\093\000\228\002\094\000\228\002\096\000\228\002\097\000\228\002\
\\098\000\228\002\099\000\228\002\100\000\228\002\102\000\228\002\
\\103\000\228\002\104\000\228\002\000\000\
\\001\000\002\000\229\002\005\000\229\002\007\000\229\002\008\000\229\002\
\\009\000\229\002\012\000\229\002\018\000\229\002\020\000\229\002\
\\021\000\229\002\022\000\229\002\023\000\229\002\024\000\229\002\
\\035\000\229\002\036\000\229\002\037\000\229\002\038\000\229\002\
\\039\000\229\002\040\000\229\002\041\000\229\002\042\000\229\002\
\\043\000\229\002\044\000\229\002\045\000\229\002\046\000\229\002\
\\047\000\229\002\048\000\229\002\049\000\229\002\050\000\229\002\
\\063\000\229\002\064\000\229\002\065\000\229\002\066\000\229\002\
\\067\000\229\002\068\000\229\002\069\000\229\002\070\000\229\002\
\\071\000\229\002\072\000\229\002\074\000\229\002\075\000\229\002\
\\076\000\229\002\077\000\229\002\078\000\229\002\079\000\229\002\
\\080\000\229\002\081\000\229\002\082\000\229\002\083\000\229\002\
\\085\000\229\002\086\000\229\002\087\000\229\002\088\000\229\002\
\\089\000\229\002\090\000\229\002\091\000\229\002\092\000\229\002\
\\093\000\229\002\094\000\229\002\096\000\229\002\097\000\229\002\
\\098\000\229\002\099\000\229\002\100\000\229\002\102\000\229\002\
\\103\000\229\002\104\000\229\002\000\000\
\\001\000\002\000\230\002\005\000\230\002\007\000\230\002\008\000\230\002\
\\009\000\230\002\012\000\230\002\018\000\230\002\020\000\230\002\
\\021\000\230\002\022\000\230\002\023\000\230\002\024\000\230\002\
\\035\000\230\002\036\000\230\002\037\000\230\002\038\000\230\002\
\\039\000\230\002\040\000\230\002\041\000\230\002\042\000\230\002\
\\043\000\230\002\044\000\230\002\045\000\230\002\046\000\230\002\
\\047\000\230\002\048\000\230\002\049\000\230\002\050\000\230\002\
\\063\000\230\002\064\000\230\002\065\000\230\002\066\000\230\002\
\\067\000\230\002\068\000\230\002\069\000\230\002\070\000\230\002\
\\071\000\230\002\072\000\230\002\074\000\230\002\075\000\230\002\
\\076\000\230\002\077\000\230\002\078\000\230\002\079\000\230\002\
\\080\000\230\002\081\000\230\002\082\000\230\002\083\000\230\002\
\\085\000\230\002\086\000\230\002\087\000\230\002\088\000\230\002\
\\089\000\230\002\090\000\230\002\091\000\230\002\092\000\230\002\
\\093\000\230\002\094\000\230\002\096\000\230\002\097\000\230\002\
\\098\000\230\002\099\000\230\002\100\000\230\002\102\000\230\002\
\\103\000\230\002\104\000\230\002\000\000\
\\001\000\002\000\231\002\005\000\231\002\007\000\231\002\008\000\231\002\
\\009\000\231\002\012\000\231\002\018\000\231\002\020\000\231\002\
\\021\000\231\002\022\000\231\002\023\000\231\002\024\000\231\002\
\\035\000\231\002\036\000\231\002\037\000\231\002\038\000\231\002\
\\039\000\231\002\040\000\231\002\041\000\231\002\042\000\231\002\
\\043\000\231\002\044\000\231\002\045\000\231\002\046\000\231\002\
\\047\000\231\002\048\000\231\002\049\000\231\002\050\000\231\002\
\\063\000\231\002\064\000\231\002\065\000\231\002\066\000\231\002\
\\067\000\231\002\068\000\231\002\069\000\231\002\070\000\231\002\
\\071\000\231\002\072\000\231\002\074\000\231\002\075\000\231\002\
\\076\000\231\002\077\000\231\002\078\000\231\002\079\000\231\002\
\\080\000\231\002\081\000\231\002\082\000\231\002\083\000\231\002\
\\085\000\231\002\086\000\231\002\087\000\231\002\088\000\231\002\
\\089\000\231\002\090\000\231\002\091\000\231\002\092\000\231\002\
\\093\000\231\002\094\000\231\002\096\000\231\002\097\000\231\002\
\\098\000\231\002\099\000\231\002\100\000\231\002\102\000\231\002\
\\103\000\231\002\104\000\231\002\000\000\
\\001\000\002\000\232\002\005\000\232\002\007\000\232\002\008\000\232\002\
\\009\000\232\002\012\000\232\002\018\000\232\002\020\000\232\002\
\\021\000\232\002\022\000\232\002\023\000\232\002\024\000\232\002\
\\035\000\232\002\036\000\232\002\037\000\232\002\038\000\232\002\
\\039\000\232\002\040\000\232\002\041\000\232\002\042\000\232\002\
\\043\000\232\002\044\000\232\002\045\000\232\002\046\000\232\002\
\\047\000\232\002\048\000\232\002\049\000\232\002\050\000\232\002\
\\063\000\232\002\064\000\232\002\065\000\232\002\066\000\232\002\
\\067\000\232\002\068\000\232\002\069\000\232\002\070\000\232\002\
\\071\000\232\002\072\000\232\002\074\000\232\002\075\000\232\002\
\\076\000\232\002\077\000\232\002\078\000\232\002\079\000\232\002\
\\080\000\232\002\081\000\232\002\082\000\232\002\083\000\232\002\
\\085\000\232\002\086\000\232\002\087\000\232\002\088\000\232\002\
\\089\000\232\002\090\000\232\002\091\000\232\002\092\000\232\002\
\\093\000\232\002\094\000\232\002\096\000\232\002\097\000\232\002\
\\098\000\232\002\099\000\232\002\100\000\232\002\102\000\232\002\
\\103\000\232\002\104\000\232\002\000\000\
\\001\000\002\000\233\002\005\000\233\002\007\000\233\002\008\000\233\002\
\\009\000\233\002\012\000\233\002\018\000\233\002\020\000\233\002\
\\021\000\233\002\022\000\233\002\023\000\233\002\024\000\233\002\
\\035\000\233\002\036\000\233\002\037\000\233\002\038\000\233\002\
\\039\000\233\002\040\000\233\002\041\000\233\002\042\000\233\002\
\\043\000\233\002\044\000\233\002\045\000\233\002\046\000\233\002\
\\047\000\233\002\048\000\233\002\049\000\233\002\050\000\233\002\
\\063\000\233\002\064\000\233\002\065\000\233\002\066\000\233\002\
\\067\000\233\002\068\000\233\002\069\000\233\002\070\000\233\002\
\\071\000\233\002\072\000\233\002\074\000\233\002\075\000\233\002\
\\076\000\233\002\077\000\233\002\078\000\233\002\079\000\233\002\
\\080\000\233\002\081\000\233\002\082\000\233\002\083\000\233\002\
\\085\000\233\002\086\000\233\002\087\000\233\002\088\000\233\002\
\\089\000\233\002\090\000\233\002\091\000\233\002\092\000\233\002\
\\093\000\233\002\094\000\233\002\096\000\233\002\097\000\233\002\
\\098\000\233\002\099\000\233\002\100\000\233\002\102\000\233\002\
\\103\000\233\002\104\000\233\002\000\000\
\\001\000\002\000\234\002\005\000\234\002\007\000\234\002\008\000\234\002\
\\009\000\234\002\012\000\234\002\018\000\234\002\020\000\234\002\
\\021\000\234\002\022\000\234\002\023\000\234\002\024\000\234\002\
\\035\000\234\002\036\000\234\002\037\000\234\002\038\000\234\002\
\\039\000\234\002\040\000\234\002\041\000\234\002\042\000\234\002\
\\043\000\234\002\044\000\234\002\045\000\234\002\046\000\234\002\
\\047\000\234\002\048\000\234\002\049\000\234\002\050\000\234\002\
\\063\000\234\002\064\000\234\002\065\000\234\002\066\000\234\002\
\\067\000\234\002\068\000\234\002\069\000\234\002\070\000\234\002\
\\071\000\234\002\072\000\234\002\074\000\234\002\075\000\234\002\
\\076\000\234\002\077\000\234\002\078\000\234\002\079\000\234\002\
\\080\000\234\002\081\000\234\002\082\000\234\002\083\000\234\002\
\\085\000\234\002\086\000\234\002\087\000\234\002\088\000\234\002\
\\089\000\234\002\090\000\234\002\091\000\234\002\092\000\234\002\
\\093\000\234\002\094\000\234\002\096\000\234\002\097\000\234\002\
\\098\000\234\002\099\000\234\002\100\000\234\002\102\000\234\002\
\\103\000\234\002\104\000\234\002\000\000\
\\001\000\002\000\235\002\005\000\235\002\007\000\235\002\008\000\235\002\
\\009\000\235\002\012\000\235\002\018\000\235\002\020\000\235\002\
\\021\000\235\002\022\000\235\002\023\000\235\002\024\000\235\002\
\\035\000\235\002\036\000\235\002\037\000\235\002\038\000\235\002\
\\039\000\235\002\040\000\235\002\041\000\235\002\042\000\235\002\
\\043\000\235\002\044\000\235\002\045\000\235\002\046\000\235\002\
\\047\000\235\002\048\000\235\002\049\000\235\002\050\000\235\002\
\\063\000\235\002\064\000\235\002\065\000\235\002\066\000\235\002\
\\067\000\235\002\068\000\235\002\069\000\235\002\070\000\235\002\
\\071\000\235\002\072\000\235\002\074\000\235\002\075\000\235\002\
\\076\000\235\002\077\000\235\002\078\000\235\002\079\000\235\002\
\\080\000\235\002\081\000\235\002\082\000\235\002\083\000\235\002\
\\085\000\235\002\086\000\235\002\087\000\235\002\088\000\235\002\
\\089\000\235\002\090\000\235\002\091\000\235\002\092\000\235\002\
\\093\000\235\002\094\000\235\002\096\000\235\002\097\000\235\002\
\\098\000\235\002\099\000\235\002\100\000\235\002\102\000\235\002\
\\103\000\235\002\104\000\235\002\000\000\
\\001\000\002\000\236\002\005\000\236\002\007\000\236\002\008\000\236\002\
\\009\000\236\002\012\000\236\002\018\000\236\002\020\000\236\002\
\\021\000\236\002\022\000\236\002\023\000\236\002\024\000\236\002\
\\035\000\236\002\036\000\236\002\037\000\236\002\038\000\236\002\
\\039\000\236\002\040\000\236\002\041\000\236\002\042\000\236\002\
\\043\000\236\002\044\000\236\002\045\000\236\002\046\000\236\002\
\\047\000\236\002\048\000\236\002\049\000\236\002\050\000\236\002\
\\063\000\236\002\064\000\236\002\065\000\236\002\066\000\236\002\
\\067\000\236\002\068\000\236\002\069\000\236\002\070\000\236\002\
\\071\000\236\002\072\000\236\002\074\000\236\002\075\000\236\002\
\\076\000\236\002\077\000\236\002\078\000\236\002\079\000\236\002\
\\080\000\236\002\081\000\236\002\082\000\236\002\083\000\236\002\
\\085\000\236\002\086\000\236\002\087\000\236\002\088\000\236\002\
\\089\000\236\002\090\000\236\002\091\000\236\002\092\000\236\002\
\\093\000\236\002\094\000\236\002\096\000\236\002\097\000\236\002\
\\098\000\236\002\099\000\236\002\100\000\236\002\102\000\236\002\
\\103\000\236\002\104\000\236\002\000\000\
\\001\000\002\000\237\002\005\000\237\002\007\000\237\002\008\000\237\002\
\\009\000\237\002\012\000\237\002\018\000\237\002\020\000\237\002\
\\021\000\237\002\022\000\237\002\023\000\237\002\024\000\237\002\
\\035\000\237\002\036\000\237\002\037\000\006\002\038\000\237\002\
\\039\000\237\002\040\000\237\002\041\000\237\002\042\000\237\002\
\\043\000\237\002\044\000\237\002\045\000\237\002\046\000\237\002\
\\047\000\237\002\048\000\237\002\049\000\237\002\050\000\237\002\
\\063\000\237\002\064\000\237\002\065\000\237\002\066\000\237\002\
\\067\000\237\002\068\000\237\002\069\000\237\002\070\000\237\002\
\\071\000\237\002\072\000\237\002\074\000\237\002\075\000\237\002\
\\076\000\237\002\077\000\237\002\078\000\237\002\079\000\237\002\
\\080\000\237\002\081\000\237\002\082\000\237\002\083\000\237\002\
\\085\000\237\002\086\000\237\002\087\000\237\002\088\000\237\002\
\\089\000\237\002\090\000\237\002\091\000\237\002\092\000\237\002\
\\093\000\237\002\094\000\237\002\096\000\237\002\097\000\237\002\
\\098\000\237\002\099\000\237\002\100\000\237\002\102\000\237\002\
\\103\000\237\002\104\000\237\002\000\000\
\\001\000\002\000\238\002\005\000\238\002\007\000\238\002\008\000\238\002\
\\009\000\238\002\012\000\238\002\018\000\238\002\020\000\238\002\
\\021\000\238\002\022\000\238\002\023\000\238\002\024\000\238\002\
\\035\000\238\002\036\000\238\002\037\000\238\002\038\000\238\002\
\\039\000\238\002\040\000\238\002\041\000\238\002\042\000\238\002\
\\043\000\238\002\044\000\238\002\045\000\238\002\046\000\238\002\
\\047\000\238\002\048\000\238\002\049\000\238\002\050\000\238\002\
\\063\000\238\002\064\000\238\002\065\000\238\002\066\000\238\002\
\\067\000\238\002\068\000\238\002\069\000\238\002\070\000\238\002\
\\071\000\238\002\072\000\238\002\074\000\238\002\075\000\238\002\
\\076\000\238\002\077\000\238\002\078\000\238\002\079\000\238\002\
\\080\000\238\002\081\000\238\002\082\000\238\002\083\000\238\002\
\\085\000\238\002\086\000\238\002\087\000\238\002\088\000\238\002\
\\089\000\238\002\090\000\238\002\091\000\238\002\092\000\238\002\
\\093\000\238\002\094\000\238\002\096\000\238\002\097\000\238\002\
\\098\000\238\002\099\000\238\002\100\000\238\002\102\000\238\002\
\\103\000\238\002\104\000\238\002\000\000\
\\001\000\002\000\239\002\005\000\239\002\007\000\239\002\008\000\239\002\
\\009\000\239\002\012\000\239\002\018\000\239\002\020\000\239\002\
\\021\000\239\002\022\000\239\002\023\000\239\002\024\000\239\002\
\\035\000\239\002\036\000\239\002\037\000\239\002\038\000\239\002\
\\039\000\239\002\040\000\239\002\041\000\239\002\042\000\239\002\
\\043\000\239\002\044\000\239\002\045\000\239\002\046\000\239\002\
\\047\000\239\002\048\000\239\002\049\000\239\002\050\000\239\002\
\\063\000\239\002\064\000\239\002\065\000\239\002\066\000\239\002\
\\067\000\239\002\068\000\239\002\069\000\239\002\070\000\239\002\
\\071\000\239\002\072\000\239\002\074\000\239\002\075\000\239\002\
\\076\000\239\002\077\000\239\002\078\000\239\002\079\000\239\002\
\\080\000\239\002\081\000\239\002\082\000\239\002\083\000\239\002\
\\085\000\239\002\086\000\239\002\087\000\239\002\088\000\239\002\
\\089\000\239\002\090\000\239\002\091\000\239\002\092\000\239\002\
\\093\000\239\002\094\000\239\002\096\000\239\002\097\000\239\002\
\\098\000\239\002\099\000\239\002\100\000\239\002\102\000\239\002\
\\103\000\239\002\104\000\239\002\000\000\
\\001\000\002\000\240\002\005\000\240\002\007\000\240\002\008\000\240\002\
\\009\000\240\002\012\000\240\002\018\000\240\002\020\000\240\002\
\\021\000\240\002\022\000\240\002\023\000\240\002\024\000\240\002\
\\035\000\240\002\036\000\240\002\037\000\240\002\038\000\240\002\
\\039\000\240\002\040\000\240\002\041\000\240\002\042\000\240\002\
\\043\000\240\002\044\000\240\002\045\000\240\002\046\000\240\002\
\\047\000\240\002\048\000\240\002\049\000\240\002\050\000\240\002\
\\063\000\240\002\064\000\240\002\065\000\240\002\066\000\240\002\
\\067\000\240\002\068\000\240\002\069\000\240\002\070\000\240\002\
\\071\000\240\002\072\000\240\002\074\000\240\002\075\000\240\002\
\\076\000\240\002\077\000\240\002\078\000\240\002\079\000\240\002\
\\080\000\240\002\081\000\240\002\082\000\240\002\083\000\240\002\
\\085\000\240\002\086\000\240\002\087\000\240\002\088\000\240\002\
\\089\000\240\002\090\000\240\002\091\000\240\002\092\000\240\002\
\\093\000\240\002\094\000\240\002\096\000\240\002\097\000\240\002\
\\098\000\240\002\099\000\240\002\100\000\240\002\102\000\240\002\
\\103\000\240\002\104\000\240\002\000\000\
\\001\000\002\000\241\002\005\000\241\002\007\000\241\002\008\000\241\002\
\\009\000\241\002\012\000\241\002\018\000\241\002\020\000\241\002\
\\021\000\241\002\022\000\241\002\023\000\241\002\024\000\241\002\
\\035\000\241\002\036\000\241\002\037\000\241\002\038\000\241\002\
\\039\000\241\002\040\000\241\002\041\000\241\002\042\000\241\002\
\\043\000\241\002\044\000\241\002\045\000\241\002\046\000\241\002\
\\047\000\241\002\048\000\241\002\049\000\241\002\050\000\241\002\
\\063\000\241\002\064\000\241\002\065\000\241\002\066\000\241\002\
\\067\000\241\002\068\000\241\002\069\000\241\002\070\000\241\002\
\\071\000\241\002\072\000\241\002\074\000\241\002\075\000\241\002\
\\076\000\241\002\077\000\241\002\078\000\241\002\079\000\241\002\
\\080\000\241\002\081\000\241\002\082\000\241\002\083\000\241\002\
\\085\000\241\002\086\000\241\002\087\000\241\002\088\000\241\002\
\\089\000\241\002\090\000\241\002\091\000\241\002\092\000\241\002\
\\093\000\241\002\094\000\241\002\096\000\241\002\097\000\241\002\
\\098\000\241\002\099\000\241\002\100\000\241\002\102\000\241\002\
\\103\000\241\002\104\000\241\002\000\000\
\\001\000\002\000\242\002\005\000\242\002\007\000\242\002\008\000\242\002\
\\009\000\242\002\012\000\242\002\018\000\242\002\020\000\242\002\
\\021\000\242\002\022\000\242\002\023\000\242\002\024\000\242\002\
\\035\000\242\002\036\000\242\002\037\000\242\002\038\000\242\002\
\\039\000\242\002\040\000\242\002\041\000\242\002\042\000\242\002\
\\043\000\242\002\044\000\242\002\045\000\242\002\046\000\242\002\
\\047\000\242\002\048\000\242\002\049\000\242\002\050\000\242\002\
\\063\000\242\002\064\000\242\002\065\000\242\002\066\000\242\002\
\\067\000\242\002\068\000\242\002\069\000\242\002\070\000\242\002\
\\071\000\242\002\072\000\242\002\074\000\242\002\075\000\242\002\
\\076\000\242\002\077\000\242\002\078\000\242\002\079\000\242\002\
\\080\000\242\002\081\000\242\002\082\000\242\002\083\000\242\002\
\\085\000\242\002\086\000\242\002\087\000\242\002\088\000\242\002\
\\089\000\242\002\090\000\242\002\091\000\242\002\092\000\242\002\
\\093\000\242\002\094\000\242\002\096\000\242\002\097\000\242\002\
\\098\000\242\002\099\000\242\002\100\000\242\002\102\000\242\002\
\\103\000\242\002\104\000\242\002\000\000\
\\001\000\002\000\243\002\005\000\243\002\007\000\243\002\008\000\243\002\
\\009\000\243\002\012\000\243\002\018\000\243\002\020\000\243\002\
\\021\000\243\002\022\000\243\002\023\000\243\002\024\000\243\002\
\\035\000\243\002\036\000\243\002\037\000\243\002\038\000\243\002\
\\039\000\243\002\040\000\243\002\041\000\243\002\042\000\243\002\
\\043\000\243\002\044\000\243\002\045\000\243\002\046\000\243\002\
\\047\000\243\002\048\000\243\002\049\000\243\002\050\000\243\002\
\\063\000\243\002\064\000\243\002\065\000\243\002\066\000\243\002\
\\067\000\243\002\068\000\243\002\069\000\243\002\070\000\243\002\
\\071\000\243\002\072\000\243\002\074\000\243\002\075\000\243\002\
\\076\000\243\002\077\000\243\002\078\000\243\002\079\000\243\002\
\\080\000\243\002\081\000\243\002\082\000\243\002\083\000\243\002\
\\085\000\243\002\086\000\243\002\087\000\243\002\088\000\243\002\
\\089\000\243\002\090\000\243\002\091\000\243\002\092\000\243\002\
\\093\000\243\002\094\000\243\002\096\000\243\002\097\000\243\002\
\\098\000\243\002\099\000\243\002\100\000\243\002\102\000\243\002\
\\103\000\243\002\104\000\243\002\000\000\
\\001\000\002\000\244\002\005\000\244\002\007\000\244\002\008\000\244\002\
\\009\000\244\002\012\000\244\002\018\000\244\002\020\000\244\002\
\\021\000\244\002\022\000\244\002\023\000\244\002\024\000\244\002\
\\035\000\244\002\036\000\244\002\037\000\244\002\038\000\244\002\
\\039\000\244\002\040\000\244\002\041\000\244\002\042\000\244\002\
\\043\000\244\002\044\000\244\002\045\000\244\002\046\000\244\002\
\\047\000\244\002\048\000\244\002\049\000\244\002\050\000\244\002\
\\063\000\244\002\064\000\244\002\065\000\244\002\066\000\244\002\
\\067\000\244\002\068\000\244\002\069\000\244\002\070\000\244\002\
\\071\000\244\002\072\000\244\002\074\000\244\002\075\000\244\002\
\\076\000\244\002\077\000\244\002\078\000\244\002\079\000\244\002\
\\080\000\244\002\081\000\244\002\082\000\244\002\083\000\244\002\
\\085\000\244\002\086\000\244\002\087\000\244\002\088\000\244\002\
\\089\000\244\002\090\000\244\002\091\000\244\002\092\000\244\002\
\\093\000\244\002\094\000\244\002\096\000\244\002\097\000\244\002\
\\098\000\244\002\099\000\244\002\100\000\244\002\102\000\244\002\
\\103\000\244\002\104\000\244\002\000\000\
\\001\000\002\000\245\002\005\000\245\002\007\000\245\002\008\000\245\002\
\\009\000\245\002\012\000\245\002\018\000\245\002\020\000\245\002\
\\021\000\245\002\022\000\245\002\023\000\245\002\024\000\245\002\
\\035\000\245\002\036\000\245\002\037\000\245\002\038\000\245\002\
\\039\000\245\002\040\000\245\002\041\000\245\002\042\000\245\002\
\\043\000\245\002\044\000\245\002\045\000\245\002\046\000\245\002\
\\047\000\245\002\048\000\245\002\049\000\245\002\050\000\245\002\
\\063\000\245\002\064\000\245\002\065\000\245\002\066\000\245\002\
\\067\000\245\002\068\000\245\002\069\000\245\002\070\000\245\002\
\\071\000\245\002\072\000\245\002\074\000\245\002\075\000\245\002\
\\076\000\245\002\077\000\245\002\078\000\245\002\079\000\245\002\
\\080\000\245\002\081\000\245\002\082\000\245\002\083\000\245\002\
\\085\000\245\002\086\000\245\002\087\000\245\002\088\000\245\002\
\\089\000\245\002\090\000\245\002\091\000\245\002\092\000\245\002\
\\093\000\245\002\094\000\245\002\096\000\245\002\097\000\245\002\
\\098\000\245\002\099\000\245\002\100\000\245\002\102\000\245\002\
\\103\000\245\002\104\000\245\002\000\000\
\\001\000\002\000\246\002\005\000\246\002\007\000\246\002\008\000\246\002\
\\009\000\246\002\012\000\246\002\018\000\246\002\020\000\246\002\
\\021\000\246\002\022\000\246\002\023\000\246\002\024\000\246\002\
\\035\000\246\002\036\000\246\002\037\000\246\002\038\000\246\002\
\\039\000\246\002\040\000\246\002\041\000\246\002\042\000\246\002\
\\043\000\246\002\044\000\246\002\045\000\246\002\046\000\246\002\
\\047\000\246\002\048\000\246\002\049\000\246\002\050\000\246\002\
\\063\000\246\002\064\000\246\002\065\000\246\002\066\000\246\002\
\\067\000\246\002\068\000\246\002\069\000\246\002\070\000\246\002\
\\071\000\246\002\072\000\246\002\074\000\246\002\075\000\246\002\
\\076\000\246\002\077\000\246\002\078\000\246\002\079\000\246\002\
\\080\000\246\002\081\000\246\002\082\000\246\002\083\000\246\002\
\\085\000\246\002\086\000\246\002\087\000\246\002\088\000\246\002\
\\089\000\246\002\090\000\246\002\091\000\246\002\092\000\246\002\
\\093\000\246\002\094\000\246\002\096\000\246\002\097\000\246\002\
\\098\000\246\002\099\000\246\002\100\000\246\002\102\000\246\002\
\\103\000\246\002\104\000\246\002\000\000\
\\001\000\002\000\247\002\005\000\247\002\007\000\247\002\008\000\247\002\
\\009\000\247\002\012\000\247\002\018\000\247\002\020\000\247\002\
\\021\000\247\002\022\000\247\002\023\000\247\002\024\000\247\002\
\\035\000\247\002\036\000\247\002\037\000\247\002\038\000\247\002\
\\039\000\247\002\040\000\247\002\041\000\247\002\042\000\247\002\
\\043\000\247\002\044\000\247\002\045\000\247\002\046\000\247\002\
\\047\000\247\002\048\000\247\002\049\000\247\002\050\000\247\002\
\\063\000\247\002\064\000\247\002\065\000\247\002\066\000\247\002\
\\067\000\247\002\068\000\247\002\069\000\247\002\070\000\247\002\
\\071\000\247\002\072\000\247\002\074\000\247\002\075\000\247\002\
\\076\000\247\002\077\000\247\002\078\000\247\002\079\000\247\002\
\\080\000\247\002\081\000\247\002\082\000\247\002\083\000\247\002\
\\085\000\247\002\086\000\247\002\087\000\247\002\088\000\247\002\
\\089\000\247\002\090\000\247\002\091\000\247\002\092\000\247\002\
\\093\000\247\002\094\000\247\002\096\000\247\002\097\000\247\002\
\\098\000\247\002\099\000\247\002\100\000\247\002\102\000\247\002\
\\103\000\247\002\104\000\247\002\000\000\
\\001\000\002\000\009\003\005\000\009\003\007\000\009\003\009\000\009\003\
\\012\000\009\003\018\000\009\003\020\000\009\003\021\000\009\003\
\\022\000\009\003\023\000\009\003\024\000\009\003\036\000\009\003\
\\038\000\009\003\039\000\009\003\040\000\009\003\041\000\009\003\
\\042\000\009\003\043\000\009\003\044\000\009\003\045\000\009\003\
\\048\000\009\003\050\000\009\003\074\000\009\003\076\000\009\003\
\\092\000\009\003\093\000\009\003\096\000\009\003\097\000\009\003\
\\100\000\009\003\102\000\009\003\103\000\009\003\000\000\
\\001\000\002\000\010\003\005\000\010\003\007\000\010\003\009\000\010\003\
\\012\000\010\003\018\000\010\003\020\000\010\003\021\000\010\003\
\\022\000\010\003\023\000\010\003\024\000\010\003\036\000\010\003\
\\038\000\010\003\039\000\010\003\040\000\010\003\041\000\010\003\
\\042\000\010\003\043\000\010\003\044\000\010\003\045\000\010\003\
\\048\000\010\003\050\000\010\003\074\000\010\003\076\000\010\003\
\\084\000\061\001\092\000\010\003\093\000\010\003\096\000\010\003\
\\097\000\010\003\100\000\010\003\102\000\010\003\103\000\010\003\000\000\
\\001\000\002\000\011\003\005\000\011\003\007\000\011\003\009\000\011\003\
\\012\000\011\003\018\000\011\003\020\000\011\003\021\000\011\003\
\\022\000\011\003\023\000\011\003\024\000\011\003\036\000\011\003\
\\038\000\011\003\039\000\011\003\040\000\011\003\041\000\011\003\
\\042\000\011\003\043\000\011\003\044\000\011\003\045\000\011\003\
\\048\000\011\003\050\000\011\003\074\000\011\003\076\000\011\003\
\\092\000\011\003\093\000\011\003\096\000\011\003\097\000\011\003\
\\100\000\011\003\102\000\011\003\103\000\011\003\000\000\
\\001\000\002\000\015\003\005\000\015\003\007\000\015\003\009\000\015\003\
\\012\000\015\003\018\000\015\003\020\000\015\003\021\000\015\003\
\\022\000\015\003\023\000\015\003\024\000\015\003\036\000\015\003\
\\038\000\015\003\039\000\015\003\040\000\015\003\041\000\015\003\
\\042\000\015\003\043\000\015\003\044\000\015\003\045\000\015\003\
\\046\000\255\001\047\000\254\001\048\000\015\003\050\000\015\003\
\\074\000\015\003\076\000\015\003\092\000\015\003\093\000\015\003\
\\096\000\015\003\097\000\015\003\100\000\015\003\102\000\015\003\
\\103\000\015\003\000\000\
\\001\000\002\000\016\003\005\000\016\003\007\000\016\003\009\000\016\003\
\\012\000\016\003\018\000\016\003\020\000\016\003\021\000\016\003\
\\022\000\016\003\023\000\016\003\024\000\016\003\036\000\016\003\
\\038\000\016\003\039\000\016\003\040\000\016\003\041\000\016\003\
\\042\000\016\003\043\000\016\003\044\000\016\003\045\000\016\003\
\\048\000\016\003\050\000\016\003\074\000\016\003\076\000\016\003\
\\092\000\016\003\093\000\016\003\096\000\016\003\097\000\016\003\
\\100\000\016\003\102\000\016\003\103\000\016\003\000\000\
\\001\000\002\000\017\003\005\000\017\003\007\000\017\003\009\000\017\003\
\\012\000\017\003\018\000\017\003\020\000\017\003\021\000\017\003\
\\022\000\017\003\023\000\017\003\024\000\017\003\036\000\017\003\
\\038\000\017\003\039\000\017\003\040\000\017\003\041\000\017\003\
\\042\000\017\003\043\000\017\003\044\000\017\003\045\000\017\003\
\\046\000\017\003\047\000\017\003\048\000\017\003\050\000\017\003\
\\074\000\017\003\076\000\017\003\092\000\017\003\093\000\017\003\
\\096\000\017\003\097\000\017\003\100\000\017\003\102\000\017\003\
\\103\000\017\003\000\000\
\\001\000\002\000\018\003\005\000\018\003\007\000\018\003\009\000\018\003\
\\012\000\018\003\018\000\018\003\020\000\018\003\021\000\018\003\
\\022\000\018\003\023\000\018\003\024\000\018\003\036\000\018\003\
\\038\000\018\003\039\000\018\003\040\000\018\003\041\000\018\003\
\\042\000\018\003\043\000\018\003\044\000\018\003\045\000\018\003\
\\046\000\018\003\047\000\018\003\048\000\018\003\050\000\018\003\
\\074\000\018\003\076\000\018\003\092\000\018\003\093\000\018\003\
\\096\000\018\003\097\000\018\003\100\000\018\003\102\000\018\003\
\\103\000\018\003\000\000\
\\001\000\002\000\019\003\005\000\019\003\012\000\019\003\018\000\019\003\
\\020\000\019\003\021\000\019\003\022\000\019\003\023\000\019\003\
\\024\000\019\003\048\000\019\003\050\000\019\003\074\000\019\003\
\\076\000\019\003\100\000\019\003\000\000\
\\001\000\002\000\020\003\005\000\020\003\012\000\020\003\018\000\020\003\
\\020\000\020\003\021\000\020\003\022\000\020\003\023\000\020\003\
\\024\000\020\003\048\000\020\003\050\000\020\003\074\000\020\003\
\\076\000\020\003\100\000\020\003\000\000\
\\001\000\002\000\067\003\003\000\067\003\004\000\067\003\006\000\067\003\
\\008\000\067\003\010\000\067\003\011\000\067\003\012\000\067\003\
\\013\000\067\003\014\000\067\003\017\000\067\003\018\000\067\003\
\\021\000\067\003\051\000\067\003\052\000\067\003\053\000\067\003\
\\054\000\067\003\055\000\067\003\056\000\067\003\057\000\067\003\
\\058\000\067\003\059\000\067\003\060\000\067\003\061\000\067\003\
\\062\000\067\003\092\000\067\003\000\000\
\\001\000\002\000\068\003\003\000\068\003\004\000\068\003\006\000\068\003\
\\008\000\068\003\010\000\068\003\011\000\068\003\012\000\068\003\
\\013\000\068\003\014\000\068\003\017\000\068\003\018\000\068\003\
\\021\000\068\003\051\000\068\003\052\000\068\003\053\000\068\003\
\\054\000\068\003\055\000\068\003\056\000\068\003\057\000\068\003\
\\058\000\068\003\059\000\068\003\060\000\068\003\061\000\068\003\
\\062\000\068\003\092\000\068\003\000\000\
\\001\000\002\000\069\003\003\000\069\003\004\000\069\003\006\000\069\003\
\\008\000\069\003\010\000\069\003\011\000\069\003\012\000\069\003\
\\013\000\069\003\014\000\069\003\017\000\069\003\018\000\069\003\
\\021\000\069\003\051\000\069\003\052\000\069\003\053\000\069\003\
\\054\000\069\003\055\000\069\003\056\000\069\003\057\000\069\003\
\\058\000\069\003\059\000\069\003\060\000\069\003\061\000\069\003\
\\062\000\069\003\092\000\069\003\000\000\
\\001\000\002\000\070\003\003\000\070\003\004\000\070\003\006\000\070\003\
\\008\000\070\003\010\000\070\003\011\000\070\003\012\000\070\003\
\\013\000\070\003\014\000\070\003\017\000\070\003\018\000\070\003\
\\021\000\070\003\051\000\070\003\052\000\070\003\053\000\070\003\
\\054\000\070\003\055\000\070\003\056\000\070\003\057\000\070\003\
\\058\000\070\003\059\000\070\003\060\000\070\003\061\000\070\003\
\\062\000\070\003\092\000\070\003\000\000\
\\001\000\002\000\071\003\003\000\071\003\004\000\071\003\006\000\071\003\
\\008\000\071\003\010\000\071\003\011\000\071\003\012\000\071\003\
\\013\000\071\003\014\000\071\003\015\000\071\003\017\000\071\003\
\\018\000\071\003\021\000\071\003\025\000\071\003\026\000\071\003\
\\027\000\071\003\028\000\071\003\029\000\071\003\030\000\071\003\
\\031\000\071\003\032\000\071\003\033\000\071\003\034\000\071\003\
\\051\000\071\003\052\000\071\003\053\000\071\003\054\000\071\003\
\\055\000\071\003\056\000\071\003\057\000\071\003\058\000\071\003\
\\059\000\071\003\060\000\071\003\061\000\071\003\062\000\071\003\
\\092\000\071\003\000\000\
\\001\000\002\000\072\003\003\000\072\003\004\000\072\003\006\000\072\003\
\\008\000\072\003\010\000\072\003\011\000\072\003\012\000\072\003\
\\013\000\072\003\014\000\072\003\015\000\072\003\017\000\072\003\
\\018\000\072\003\021\000\072\003\025\000\072\003\026\000\072\003\
\\027\000\072\003\028\000\072\003\029\000\072\003\030\000\072\003\
\\031\000\072\003\032\000\072\003\033\000\072\003\034\000\072\003\
\\051\000\072\003\052\000\072\003\053\000\072\003\054\000\072\003\
\\055\000\072\003\056\000\072\003\057\000\072\003\058\000\072\003\
\\059\000\072\003\060\000\072\003\061\000\072\003\062\000\072\003\
\\092\000\072\003\000\000\
\\001\000\002\000\073\003\003\000\073\003\004\000\073\003\005\000\216\000\
\\006\000\073\003\008\000\073\003\009\000\215\000\010\000\073\003\
\\011\000\073\003\012\000\073\003\013\000\073\003\014\000\073\003\
\\015\000\073\003\016\000\214\000\017\000\073\003\018\000\073\003\
\\021\000\073\003\023\000\213\000\024\000\212\000\025\000\073\003\
\\026\000\073\003\027\000\073\003\028\000\073\003\029\000\073\003\
\\030\000\073\003\031\000\073\003\032\000\073\003\033\000\073\003\
\\034\000\073\003\051\000\073\003\052\000\073\003\053\000\073\003\
\\054\000\073\003\055\000\073\003\056\000\073\003\057\000\073\003\
\\058\000\073\003\059\000\073\003\060\000\073\003\061\000\073\003\
\\062\000\073\003\073\000\211\000\092\000\073\003\000\000\
\\001\000\002\000\073\003\003\000\073\003\004\000\073\003\005\000\216\000\
\\006\000\073\003\008\000\073\003\009\000\215\000\010\000\073\003\
\\011\000\073\003\012\000\073\003\013\000\073\003\014\000\073\003\
\\015\000\102\003\016\000\214\000\017\000\073\003\018\000\073\003\
\\021\000\073\003\023\000\213\000\024\000\212\000\025\000\102\003\
\\026\000\102\003\027\000\102\003\028\000\102\003\029\000\102\003\
\\030\000\102\003\031\000\102\003\032\000\102\003\033\000\102\003\
\\034\000\102\003\051\000\073\003\052\000\073\003\053\000\073\003\
\\054\000\073\003\055\000\073\003\056\000\073\003\057\000\073\003\
\\058\000\073\003\059\000\073\003\060\000\073\003\061\000\073\003\
\\062\000\073\003\073\000\211\000\092\000\073\003\000\000\
\\001\000\002\000\074\003\003\000\074\003\004\000\074\003\006\000\074\003\
\\008\000\074\003\010\000\074\003\011\000\074\003\012\000\074\003\
\\013\000\074\003\014\000\074\003\015\000\074\003\017\000\074\003\
\\018\000\074\003\021\000\074\003\025\000\074\003\026\000\074\003\
\\027\000\074\003\028\000\074\003\029\000\074\003\030\000\074\003\
\\031\000\074\003\032\000\074\003\033\000\074\003\034\000\074\003\
\\051\000\074\003\052\000\074\003\053\000\074\003\054\000\074\003\
\\055\000\074\003\056\000\074\003\057\000\074\003\058\000\074\003\
\\059\000\074\003\060\000\074\003\061\000\074\003\062\000\074\003\
\\092\000\074\003\000\000\
\\001\000\002\000\075\003\003\000\075\003\004\000\075\003\006\000\075\003\
\\008\000\075\003\010\000\075\003\011\000\075\003\012\000\075\003\
\\013\000\075\003\014\000\075\003\015\000\075\003\017\000\075\003\
\\018\000\075\003\021\000\075\003\025\000\075\003\026\000\075\003\
\\027\000\075\003\028\000\075\003\029\000\075\003\030\000\075\003\
\\031\000\075\003\032\000\075\003\033\000\075\003\034\000\075\003\
\\051\000\075\003\052\000\075\003\053\000\075\003\054\000\075\003\
\\055\000\075\003\056\000\075\003\057\000\075\003\058\000\075\003\
\\059\000\075\003\060\000\075\003\061\000\075\003\062\000\075\003\
\\092\000\075\003\000\000\
\\001\000\002\000\076\003\003\000\076\003\004\000\076\003\006\000\076\003\
\\008\000\076\003\010\000\076\003\011\000\076\003\012\000\076\003\
\\013\000\076\003\014\000\076\003\015\000\076\003\017\000\076\003\
\\018\000\076\003\021\000\076\003\025\000\076\003\026\000\076\003\
\\027\000\076\003\028\000\076\003\029\000\076\003\030\000\076\003\
\\031\000\076\003\032\000\076\003\033\000\076\003\034\000\076\003\
\\051\000\076\003\052\000\076\003\053\000\076\003\054\000\076\003\
\\055\000\076\003\056\000\076\003\057\000\076\003\058\000\076\003\
\\059\000\076\003\060\000\076\003\061\000\076\003\062\000\076\003\
\\092\000\076\003\000\000\
\\001\000\002\000\077\003\003\000\077\003\004\000\077\003\006\000\077\003\
\\008\000\077\003\010\000\077\003\011\000\077\003\012\000\077\003\
\\013\000\077\003\014\000\077\003\015\000\077\003\017\000\077\003\
\\018\000\077\003\021\000\077\003\025\000\077\003\026\000\077\003\
\\027\000\077\003\028\000\077\003\029\000\077\003\030\000\077\003\
\\031\000\077\003\032\000\077\003\033\000\077\003\034\000\077\003\
\\051\000\077\003\052\000\077\003\053\000\077\003\054\000\077\003\
\\055\000\077\003\056\000\077\003\057\000\077\003\058\000\077\003\
\\059\000\077\003\060\000\077\003\061\000\077\003\062\000\077\003\
\\092\000\077\003\000\000\
\\001\000\002\000\078\003\003\000\078\003\004\000\078\003\006\000\078\003\
\\008\000\078\003\010\000\078\003\011\000\078\003\012\000\078\003\
\\013\000\078\003\014\000\078\003\015\000\078\003\017\000\078\003\
\\018\000\078\003\021\000\078\003\025\000\078\003\026\000\078\003\
\\027\000\078\003\028\000\078\003\029\000\078\003\030\000\078\003\
\\031\000\078\003\032\000\078\003\033\000\078\003\034\000\078\003\
\\051\000\078\003\052\000\078\003\053\000\078\003\054\000\078\003\
\\055\000\078\003\056\000\078\003\057\000\078\003\058\000\078\003\
\\059\000\078\003\060\000\078\003\061\000\078\003\062\000\078\003\
\\092\000\078\003\000\000\
\\001\000\002\000\078\003\003\000\078\003\004\000\078\003\006\000\078\003\
\\008\000\078\003\010\000\078\003\011\000\078\003\012\000\078\003\
\\013\000\078\003\014\000\078\003\015\000\103\003\017\000\078\003\
\\018\000\078\003\021\000\078\003\025\000\103\003\026\000\103\003\
\\027\000\103\003\028\000\103\003\029\000\103\003\030\000\103\003\
\\031\000\103\003\032\000\103\003\033\000\103\003\034\000\103\003\
\\051\000\078\003\052\000\078\003\053\000\078\003\054\000\078\003\
\\055\000\078\003\056\000\078\003\057\000\078\003\058\000\078\003\
\\059\000\078\003\060\000\078\003\061\000\078\003\062\000\078\003\
\\092\000\078\003\000\000\
\\001\000\002\000\079\003\003\000\079\003\004\000\079\003\006\000\079\003\
\\008\000\079\003\010\000\079\003\011\000\079\003\012\000\079\003\
\\013\000\079\003\014\000\079\003\015\000\079\003\017\000\079\003\
\\018\000\079\003\021\000\079\003\025\000\079\003\026\000\079\003\
\\027\000\079\003\028\000\079\003\029\000\079\003\030\000\079\003\
\\031\000\079\003\032\000\079\003\033\000\079\003\034\000\079\003\
\\051\000\079\003\052\000\079\003\053\000\079\003\054\000\079\003\
\\055\000\079\003\056\000\079\003\057\000\079\003\058\000\079\003\
\\059\000\079\003\060\000\079\003\061\000\079\003\062\000\079\003\
\\092\000\079\003\000\000\
\\001\000\002\000\080\003\003\000\080\003\004\000\080\003\006\000\080\003\
\\007\000\187\001\008\000\080\003\010\000\080\003\011\000\080\003\
\\012\000\080\003\013\000\080\003\014\000\080\003\015\000\080\003\
\\017\000\080\003\018\000\080\003\021\000\080\003\025\000\080\003\
\\026\000\080\003\027\000\080\003\028\000\080\003\029\000\080\003\
\\030\000\080\003\031\000\080\003\032\000\080\003\033\000\080\003\
\\034\000\080\003\051\000\080\003\052\000\080\003\053\000\080\003\
\\054\000\080\003\055\000\080\003\056\000\080\003\057\000\080\003\
\\058\000\080\003\059\000\080\003\060\000\080\003\061\000\080\003\
\\062\000\080\003\092\000\080\003\000\000\
\\001\000\002\000\081\003\003\000\081\003\004\000\081\003\006\000\081\003\
\\008\000\081\003\010\000\081\003\011\000\081\003\012\000\081\003\
\\013\000\081\003\014\000\081\003\015\000\081\003\017\000\081\003\
\\018\000\081\003\021\000\081\003\025\000\081\003\026\000\081\003\
\\027\000\081\003\028\000\081\003\029\000\081\003\030\000\081\003\
\\031\000\081\003\032\000\081\003\033\000\081\003\034\000\081\003\
\\051\000\081\003\052\000\081\003\053\000\081\003\054\000\081\003\
\\055\000\081\003\056\000\081\003\057\000\081\003\058\000\081\003\
\\059\000\081\003\060\000\081\003\061\000\081\003\062\000\081\003\
\\092\000\081\003\000\000\
\\001\000\002\000\084\003\003\000\084\003\004\000\084\003\005\000\084\003\
\\006\000\084\003\008\000\084\003\009\000\084\003\010\000\084\003\
\\011\000\084\003\012\000\084\003\013\000\084\003\014\000\084\003\
\\015\000\084\003\016\000\084\003\017\000\084\003\018\000\084\003\
\\021\000\084\003\023\000\084\003\024\000\084\003\025\000\084\003\
\\026\000\084\003\027\000\084\003\028\000\084\003\029\000\084\003\
\\030\000\084\003\031\000\084\003\032\000\084\003\033\000\084\003\
\\034\000\084\003\051\000\084\003\052\000\084\003\053\000\084\003\
\\054\000\084\003\055\000\084\003\056\000\084\003\057\000\084\003\
\\058\000\084\003\059\000\084\003\060\000\084\003\061\000\084\003\
\\062\000\084\003\073\000\084\003\092\000\084\003\000\000\
\\001\000\002\000\085\003\003\000\085\003\004\000\085\003\005\000\085\003\
\\006\000\085\003\008\000\085\003\009\000\085\003\010\000\085\003\
\\011\000\085\003\012\000\085\003\013\000\085\003\014\000\085\003\
\\015\000\085\003\016\000\085\003\017\000\085\003\018\000\085\003\
\\021\000\085\003\023\000\085\003\024\000\085\003\025\000\085\003\
\\026\000\085\003\027\000\085\003\028\000\085\003\029\000\085\003\
\\030\000\085\003\031\000\085\003\032\000\085\003\033\000\085\003\
\\034\000\085\003\051\000\085\003\052\000\085\003\053\000\085\003\
\\054\000\085\003\055\000\085\003\056\000\085\003\057\000\085\003\
\\058\000\085\003\059\000\085\003\060\000\085\003\061\000\085\003\
\\062\000\085\003\073\000\085\003\092\000\085\003\000\000\
\\001\000\002\000\086\003\003\000\086\003\004\000\086\003\005\000\086\003\
\\006\000\086\003\008\000\086\003\009\000\086\003\010\000\086\003\
\\011\000\086\003\012\000\086\003\013\000\086\003\014\000\086\003\
\\015\000\086\003\016\000\086\003\017\000\086\003\018\000\086\003\
\\021\000\086\003\023\000\086\003\024\000\086\003\025\000\086\003\
\\026\000\086\003\027\000\086\003\028\000\086\003\029\000\086\003\
\\030\000\086\003\031\000\086\003\032\000\086\003\033\000\086\003\
\\034\000\086\003\051\000\086\003\052\000\086\003\053\000\086\003\
\\054\000\086\003\055\000\086\003\056\000\086\003\057\000\086\003\
\\058\000\086\003\059\000\086\003\060\000\086\003\061\000\086\003\
\\062\000\086\003\073\000\086\003\092\000\086\003\000\000\
\\001\000\002\000\087\003\003\000\087\003\004\000\087\003\005\000\087\003\
\\006\000\087\003\008\000\087\003\009\000\087\003\010\000\087\003\
\\011\000\087\003\012\000\087\003\013\000\087\003\014\000\087\003\
\\015\000\087\003\016\000\087\003\017\000\087\003\018\000\087\003\
\\021\000\087\003\023\000\087\003\024\000\087\003\025\000\087\003\
\\026\000\087\003\027\000\087\003\028\000\087\003\029\000\087\003\
\\030\000\087\003\031\000\087\003\032\000\087\003\033\000\087\003\
\\034\000\087\003\051\000\087\003\052\000\087\003\053\000\087\003\
\\054\000\087\003\055\000\087\003\056\000\087\003\057\000\087\003\
\\058\000\087\003\059\000\087\003\060\000\087\003\061\000\087\003\
\\062\000\087\003\073\000\087\003\092\000\087\003\000\000\
\\001\000\002\000\088\003\003\000\088\003\004\000\088\003\005\000\088\003\
\\006\000\088\003\008\000\088\003\009\000\088\003\010\000\088\003\
\\011\000\088\003\012\000\088\003\013\000\088\003\014\000\088\003\
\\015\000\088\003\016\000\088\003\017\000\088\003\018\000\088\003\
\\021\000\088\003\023\000\088\003\024\000\088\003\025\000\088\003\
\\026\000\088\003\027\000\088\003\028\000\088\003\029\000\088\003\
\\030\000\088\003\031\000\088\003\032\000\088\003\033\000\088\003\
\\034\000\088\003\051\000\088\003\052\000\088\003\053\000\088\003\
\\054\000\088\003\055\000\088\003\056\000\088\003\057\000\088\003\
\\058\000\088\003\059\000\088\003\060\000\088\003\061\000\088\003\
\\062\000\088\003\073\000\088\003\092\000\088\003\000\000\
\\001\000\002\000\089\003\003\000\089\003\004\000\089\003\005\000\089\003\
\\006\000\089\003\008\000\089\003\009\000\089\003\010\000\089\003\
\\011\000\089\003\012\000\089\003\013\000\089\003\014\000\089\003\
\\015\000\089\003\016\000\089\003\017\000\089\003\018\000\089\003\
\\021\000\089\003\023\000\089\003\024\000\089\003\025\000\089\003\
\\026\000\089\003\027\000\089\003\028\000\089\003\029\000\089\003\
\\030\000\089\003\031\000\089\003\032\000\089\003\033\000\089\003\
\\034\000\089\003\051\000\089\003\052\000\089\003\053\000\089\003\
\\054\000\089\003\055\000\089\003\056\000\089\003\057\000\089\003\
\\058\000\089\003\059\000\089\003\060\000\089\003\061\000\089\003\
\\062\000\089\003\073\000\089\003\092\000\089\003\000\000\
\\001\000\002\000\090\003\003\000\090\003\004\000\090\003\005\000\090\003\
\\006\000\090\003\008\000\090\003\009\000\090\003\010\000\090\003\
\\011\000\090\003\012\000\090\003\013\000\090\003\014\000\090\003\
\\015\000\090\003\016\000\090\003\017\000\090\003\018\000\090\003\
\\021\000\090\003\023\000\090\003\024\000\090\003\025\000\090\003\
\\026\000\090\003\027\000\090\003\028\000\090\003\029\000\090\003\
\\030\000\090\003\031\000\090\003\032\000\090\003\033\000\090\003\
\\034\000\090\003\051\000\090\003\052\000\090\003\053\000\090\003\
\\054\000\090\003\055\000\090\003\056\000\090\003\057\000\090\003\
\\058\000\090\003\059\000\090\003\060\000\090\003\061\000\090\003\
\\062\000\090\003\073\000\090\003\092\000\090\003\000\000\
\\001\000\002\000\091\003\003\000\091\003\004\000\091\003\005\000\091\003\
\\006\000\091\003\008\000\091\003\009\000\091\003\010\000\091\003\
\\011\000\091\003\012\000\091\003\013\000\091\003\014\000\091\003\
\\015\000\091\003\016\000\091\003\017\000\091\003\018\000\091\003\
\\021\000\091\003\023\000\091\003\024\000\091\003\025\000\091\003\
\\026\000\091\003\027\000\091\003\028\000\091\003\029\000\091\003\
\\030\000\091\003\031\000\091\003\032\000\091\003\033\000\091\003\
\\034\000\091\003\051\000\091\003\052\000\091\003\053\000\091\003\
\\054\000\091\003\055\000\091\003\056\000\091\003\057\000\091\003\
\\058\000\091\003\059\000\091\003\060\000\091\003\061\000\091\003\
\\062\000\091\003\073\000\091\003\092\000\091\003\000\000\
\\001\000\002\000\092\003\003\000\092\003\004\000\092\003\005\000\216\000\
\\006\000\092\003\008\000\092\003\009\000\215\000\010\000\092\003\
\\011\000\092\003\012\000\092\003\013\000\092\003\014\000\092\003\
\\015\000\092\003\016\000\214\000\017\000\092\003\018\000\092\003\
\\021\000\092\003\023\000\213\000\024\000\212\000\025\000\092\003\
\\026\000\092\003\027\000\092\003\028\000\092\003\029\000\092\003\
\\030\000\092\003\031\000\092\003\032\000\092\003\033\000\092\003\
\\034\000\092\003\051\000\092\003\052\000\092\003\053\000\092\003\
\\054\000\092\003\055\000\092\003\056\000\092\003\057\000\092\003\
\\058\000\092\003\059\000\092\003\060\000\092\003\061\000\092\003\
\\062\000\092\003\073\000\211\000\092\000\092\003\000\000\
\\001\000\002\000\093\003\003\000\093\003\004\000\093\003\005\000\216\000\
\\006\000\093\003\008\000\093\003\009\000\215\000\010\000\093\003\
\\011\000\093\003\012\000\093\003\013\000\093\003\014\000\093\003\
\\015\000\093\003\016\000\214\000\017\000\093\003\018\000\093\003\
\\021\000\093\003\023\000\213\000\024\000\212\000\025\000\093\003\
\\026\000\093\003\027\000\093\003\028\000\093\003\029\000\093\003\
\\030\000\093\003\031\000\093\003\032\000\093\003\033\000\093\003\
\\034\000\093\003\051\000\093\003\052\000\093\003\053\000\093\003\
\\054\000\093\003\055\000\093\003\056\000\093\003\057\000\093\003\
\\058\000\093\003\059\000\093\003\060\000\093\003\061\000\093\003\
\\062\000\093\003\073\000\211\000\092\000\093\003\000\000\
\\001\000\002\000\094\003\003\000\094\003\004\000\094\003\005\000\094\003\
\\006\000\094\003\008\000\094\003\009\000\094\003\010\000\094\003\
\\011\000\094\003\012\000\094\003\013\000\094\003\014\000\094\003\
\\015\000\094\003\016\000\094\003\017\000\094\003\018\000\094\003\
\\021\000\094\003\023\000\094\003\024\000\094\003\025\000\094\003\
\\026\000\094\003\027\000\094\003\028\000\094\003\029\000\094\003\
\\030\000\094\003\031\000\094\003\032\000\094\003\033\000\094\003\
\\034\000\094\003\051\000\094\003\052\000\094\003\053\000\094\003\
\\054\000\094\003\055\000\094\003\056\000\094\003\057\000\094\003\
\\058\000\094\003\059\000\094\003\060\000\094\003\061\000\094\003\
\\062\000\094\003\073\000\094\003\092\000\094\003\000\000\
\\001\000\002\000\094\003\003\000\094\003\004\000\094\003\005\000\094\003\
\\009\000\094\003\012\000\094\003\013\000\226\002\014\000\094\003\
\\015\000\094\003\016\000\094\003\017\000\094\003\018\000\094\003\
\\021\000\094\003\023\000\094\003\024\000\094\003\025\000\094\003\
\\026\000\094\003\027\000\094\003\028\000\094\003\029\000\094\003\
\\030\000\094\003\031\000\094\003\032\000\094\003\033\000\094\003\
\\034\000\094\003\051\000\094\003\052\000\094\003\053\000\094\003\
\\054\000\094\003\055\000\094\003\056\000\094\003\057\000\094\003\
\\058\000\094\003\059\000\094\003\060\000\094\003\061\000\094\003\
\\062\000\094\003\073\000\094\003\000\000\
\\001\000\002\000\095\003\003\000\095\003\004\000\095\003\005\000\095\003\
\\006\000\095\003\008\000\095\003\009\000\095\003\010\000\095\003\
\\011\000\095\003\012\000\095\003\013\000\095\003\014\000\095\003\
\\015\000\095\003\016\000\095\003\017\000\095\003\018\000\095\003\
\\021\000\095\003\023\000\095\003\024\000\095\003\025\000\095\003\
\\026\000\095\003\027\000\095\003\028\000\095\003\029\000\095\003\
\\030\000\095\003\031\000\095\003\032\000\095\003\033\000\095\003\
\\034\000\095\003\051\000\095\003\052\000\095\003\053\000\095\003\
\\054\000\095\003\055\000\095\003\056\000\095\003\057\000\095\003\
\\058\000\095\003\059\000\095\003\060\000\095\003\061\000\095\003\
\\062\000\095\003\073\000\095\003\092\000\095\003\000\000\
\\001\000\002\000\096\003\003\000\096\003\004\000\096\003\005\000\096\003\
\\006\000\096\003\008\000\096\003\009\000\096\003\010\000\096\003\
\\011\000\096\003\012\000\096\003\013\000\096\003\014\000\096\003\
\\015\000\096\003\016\000\096\003\017\000\096\003\018\000\096\003\
\\021\000\096\003\023\000\096\003\024\000\096\003\025\000\096\003\
\\026\000\096\003\027\000\096\003\028\000\096\003\029\000\096\003\
\\030\000\096\003\031\000\096\003\032\000\096\003\033\000\096\003\
\\034\000\096\003\051\000\096\003\052\000\096\003\053\000\096\003\
\\054\000\096\003\055\000\096\003\056\000\096\003\057\000\096\003\
\\058\000\096\003\059\000\096\003\060\000\096\003\061\000\096\003\
\\062\000\096\003\073\000\096\003\092\000\096\003\000\000\
\\001\000\002\000\097\003\003\000\097\003\004\000\097\003\005\000\097\003\
\\006\000\097\003\008\000\097\003\009\000\097\003\010\000\097\003\
\\011\000\097\003\012\000\097\003\013\000\097\003\014\000\097\003\
\\015\000\097\003\016\000\097\003\017\000\097\003\018\000\097\003\
\\021\000\097\003\023\000\097\003\024\000\097\003\025\000\097\003\
\\026\000\097\003\027\000\097\003\028\000\097\003\029\000\097\003\
\\030\000\097\003\031\000\097\003\032\000\097\003\033\000\097\003\
\\034\000\097\003\051\000\097\003\052\000\097\003\053\000\097\003\
\\054\000\097\003\055\000\097\003\056\000\097\003\057\000\097\003\
\\058\000\097\003\059\000\097\003\060\000\097\003\061\000\097\003\
\\062\000\097\003\073\000\097\003\092\000\097\003\000\000\
\\001\000\002\000\098\003\003\000\098\003\004\000\098\003\005\000\098\003\
\\006\000\098\003\008\000\098\003\009\000\098\003\010\000\098\003\
\\011\000\098\003\012\000\098\003\013\000\098\003\014\000\098\003\
\\015\000\098\003\016\000\098\003\017\000\098\003\018\000\098\003\
\\021\000\098\003\023\000\098\003\024\000\098\003\025\000\098\003\
\\026\000\098\003\027\000\098\003\028\000\098\003\029\000\098\003\
\\030\000\098\003\031\000\098\003\032\000\098\003\033\000\098\003\
\\034\000\098\003\051\000\098\003\052\000\098\003\053\000\098\003\
\\054\000\098\003\055\000\098\003\056\000\098\003\057\000\098\003\
\\058\000\098\003\059\000\098\003\060\000\098\003\061\000\098\003\
\\062\000\098\003\073\000\098\003\092\000\098\003\100\000\210\000\000\000\
\\001\000\002\000\099\003\003\000\099\003\004\000\099\003\005\000\099\003\
\\006\000\099\003\008\000\099\003\009\000\099\003\010\000\099\003\
\\011\000\099\003\012\000\099\003\013\000\099\003\014\000\099\003\
\\015\000\099\003\016\000\099\003\017\000\099\003\018\000\099\003\
\\021\000\099\003\023\000\099\003\024\000\099\003\025\000\099\003\
\\026\000\099\003\027\000\099\003\028\000\099\003\029\000\099\003\
\\030\000\099\003\031\000\099\003\032\000\099\003\033\000\099\003\
\\034\000\099\003\051\000\099\003\052\000\099\003\053\000\099\003\
\\054\000\099\003\055\000\099\003\056\000\099\003\057\000\099\003\
\\058\000\099\003\059\000\099\003\060\000\099\003\061\000\099\003\
\\062\000\099\003\073\000\099\003\092\000\099\003\100\000\099\003\000\000\
\\001\000\002\000\100\003\003\000\100\003\004\000\100\003\005\000\100\003\
\\006\000\100\003\008\000\100\003\009\000\100\003\010\000\100\003\
\\011\000\100\003\012\000\100\003\013\000\100\003\014\000\100\003\
\\015\000\100\003\016\000\100\003\017\000\100\003\018\000\100\003\
\\021\000\100\003\023\000\100\003\024\000\100\003\025\000\100\003\
\\026\000\100\003\027\000\100\003\028\000\100\003\029\000\100\003\
\\030\000\100\003\031\000\100\003\032\000\100\003\033\000\100\003\
\\034\000\100\003\051\000\100\003\052\000\100\003\053\000\100\003\
\\054\000\100\003\055\000\100\003\056\000\100\003\057\000\100\003\
\\058\000\100\003\059\000\100\003\060\000\100\003\061\000\100\003\
\\062\000\100\003\073\000\100\003\092\000\100\003\100\000\100\003\000\000\
\\001\000\002\000\101\003\003\000\101\003\004\000\101\003\005\000\101\003\
\\006\000\101\003\008\000\101\003\009\000\101\003\010\000\101\003\
\\011\000\101\003\012\000\101\003\013\000\101\003\014\000\101\003\
\\015\000\101\003\016\000\101\003\017\000\101\003\018\000\101\003\
\\021\000\101\003\023\000\101\003\024\000\101\003\025\000\101\003\
\\026\000\101\003\027\000\101\003\028\000\101\003\029\000\101\003\
\\030\000\101\003\031\000\101\003\032\000\101\003\033\000\101\003\
\\034\000\101\003\051\000\101\003\052\000\101\003\053\000\101\003\
\\054\000\101\003\055\000\101\003\056\000\101\003\057\000\101\003\
\\058\000\101\003\059\000\101\003\060\000\101\003\061\000\101\003\
\\062\000\101\003\073\000\101\003\092\000\101\003\000\000\
\\001\000\002\000\060\000\005\000\141\002\006\000\141\002\009\000\141\002\
\\011\000\141\002\074\000\141\002\081\000\031\000\082\000\030\000\
\\083\000\029\000\096\000\141\002\102\000\141\002\000\000\
\\001\000\002\000\060\000\005\000\142\002\006\000\142\002\009\000\142\002\
\\011\000\142\002\074\000\142\002\096\000\142\002\102\000\142\002\000\000\
\\001\000\002\000\060\000\005\000\059\000\012\000\058\000\074\000\057\000\000\000\
\\001\000\002\000\060\000\005\000\059\000\012\000\073\001\074\000\057\000\000\000\
\\001\000\002\000\060\000\005\000\059\000\074\000\057\000\000\000\
\\001\000\002\000\060\000\005\000\029\001\006\000\104\002\009\000\135\001\
\\035\000\048\000\049\000\047\000\063\000\046\000\064\000\045\000\
\\065\000\044\000\066\000\043\000\067\000\042\000\068\000\041\000\
\\069\000\040\000\070\000\039\000\071\000\038\000\072\000\037\000\
\\074\000\057\000\075\000\036\000\077\000\035\000\078\000\034\000\
\\079\000\033\000\080\000\032\000\081\000\031\000\082\000\030\000\
\\083\000\029\000\085\000\028\000\086\000\027\000\087\000\026\000\
\\088\000\025\000\089\000\024\000\090\000\023\000\091\000\022\000\
\\094\000\021\000\096\000\020\000\099\000\019\000\102\000\018\000\
\\104\000\017\000\000\000\
\\001\000\002\000\060\000\005\000\029\001\006\000\110\002\009\000\028\001\
\\011\000\110\002\074\000\057\000\000\000\
\\001\000\002\000\060\000\005\000\117\001\006\000\104\002\009\000\135\001\
\\035\000\048\000\049\000\047\000\063\000\046\000\064\000\045\000\
\\065\000\044\000\066\000\043\000\067\000\042\000\068\000\041\000\
\\069\000\040\000\070\000\039\000\071\000\038\000\072\000\037\000\
\\075\000\036\000\077\000\035\000\078\000\034\000\079\000\033\000\
\\080\000\032\000\081\000\031\000\082\000\030\000\083\000\029\000\
\\085\000\028\000\086\000\027\000\087\000\026\000\088\000\025\000\
\\089\000\024\000\090\000\023\000\091\000\022\000\094\000\021\000\
\\096\000\020\000\099\000\019\000\102\000\018\000\104\000\017\000\000\000\
\\001\000\002\000\060\000\005\000\117\001\006\000\201\002\009\000\028\001\000\000\
\\001\000\002\000\108\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\006\000\035\003\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\048\000\138\000\050\000\137\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\006\000\127\001\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\048\000\138\000\050\000\137\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\098\000\008\000\112\002\
\\009\000\050\000\012\000\192\000\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\035\000\048\000\036\000\191\000\038\000\190\000\039\000\189\000\
\\040\000\188\000\041\000\187\000\042\000\186\000\043\000\185\000\
\\044\000\184\000\045\000\183\000\046\000\112\002\047\000\112\002\
\\048\000\138\000\049\000\047\000\050\000\137\000\063\000\046\000\
\\064\000\045\000\065\000\044\000\066\000\043\000\067\000\042\000\
\\068\000\041\000\069\000\040\000\070\000\039\000\071\000\038\000\
\\072\000\037\000\074\000\182\000\075\000\036\000\076\000\135\000\
\\077\000\035\000\078\000\034\000\079\000\033\000\080\000\032\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\085\000\028\000\
\\086\000\027\000\087\000\026\000\088\000\025\000\089\000\024\000\
\\090\000\023\000\091\000\022\000\092\000\181\000\093\000\180\000\
\\094\000\021\000\096\000\020\000\097\000\179\000\099\000\019\000\
\\100\000\134\000\102\000\018\000\103\000\178\000\104\000\017\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\098\000\008\000\112\002\
\\009\000\050\000\012\000\192\000\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\035\000\048\000\036\000\191\000\038\000\190\000\039\000\189\000\
\\040\000\188\000\041\000\187\000\042\000\186\000\043\000\185\000\
\\044\000\184\000\045\000\183\000\048\000\138\000\049\000\047\000\
\\050\000\137\000\063\000\046\000\064\000\045\000\065\000\044\000\
\\066\000\043\000\067\000\042\000\068\000\041\000\069\000\040\000\
\\070\000\039\000\071\000\038\000\072\000\037\000\074\000\182\000\
\\075\000\036\000\076\000\135\000\077\000\035\000\078\000\034\000\
\\079\000\033\000\080\000\032\000\081\000\031\000\082\000\030\000\
\\083\000\029\000\085\000\028\000\086\000\027\000\087\000\026\000\
\\088\000\025\000\089\000\024\000\090\000\023\000\091\000\022\000\
\\092\000\181\000\093\000\180\000\094\000\021\000\096\000\020\000\
\\097\000\179\000\099\000\019\000\100\000\134\000\102\000\018\000\
\\103\000\178\000\104\000\017\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\098\000\009\000\050\000\
\\012\000\192\000\018\000\144\000\020\000\143\000\021\000\142\000\
\\022\000\141\000\023\000\140\000\024\000\139\000\035\000\066\002\
\\036\000\191\000\038\000\190\000\039\000\189\000\040\000\188\000\
\\041\000\187\000\042\000\186\000\043\000\185\000\044\000\184\000\
\\045\000\183\000\048\000\138\000\049\000\066\002\050\000\137\000\
\\063\000\066\002\064\000\066\002\065\000\066\002\066\000\066\002\
\\067\000\066\002\068\000\066\002\069\000\066\002\070\000\066\002\
\\071\000\066\002\072\000\066\002\074\000\182\000\075\000\066\002\
\\076\000\135\000\077\000\066\002\078\000\066\002\079\000\066\002\
\\080\000\066\002\081\000\066\002\082\000\066\002\083\000\066\002\
\\085\000\066\002\086\000\066\002\087\000\066\002\088\000\066\002\
\\089\000\066\002\090\000\066\002\091\000\066\002\092\000\181\000\
\\093\000\180\000\094\000\066\002\096\000\020\000\097\000\179\000\
\\099\000\066\002\100\000\134\000\102\000\018\000\103\000\178\000\
\\104\000\066\002\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\098\000\009\000\050\000\
\\012\000\192\000\018\000\144\000\020\000\143\000\021\000\142\000\
\\022\000\141\000\023\000\140\000\024\000\139\000\036\000\191\000\
\\038\000\190\000\039\000\189\000\040\000\188\000\041\000\187\000\
\\042\000\186\000\043\000\185\000\044\000\184\000\045\000\183\000\
\\048\000\138\000\050\000\137\000\074\000\182\000\076\000\135\000\
\\092\000\181\000\093\000\180\000\096\000\020\000\097\000\179\000\
\\098\000\116\002\100\000\134\000\102\000\018\000\103\000\178\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\098\000\009\000\050\000\
\\012\000\192\000\018\000\144\000\020\000\143\000\021\000\142\000\
\\022\000\141\000\023\000\140\000\024\000\139\000\036\000\191\000\
\\038\000\190\000\039\000\189\000\040\000\188\000\041\000\187\000\
\\042\000\186\000\043\000\185\000\044\000\184\000\045\000\183\000\
\\048\000\138\000\050\000\137\000\074\000\182\000\076\000\135\000\
\\092\000\181\000\093\000\180\000\096\000\020\000\097\000\179\000\
\\098\000\118\002\100\000\134\000\102\000\018\000\103\000\178\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\098\000\009\000\050\000\
\\012\000\192\000\018\000\144\000\020\000\143\000\021\000\142\000\
\\022\000\141\000\023\000\140\000\024\000\139\000\036\000\191\000\
\\038\000\190\000\039\000\189\000\040\000\188\000\041\000\187\000\
\\042\000\186\000\043\000\185\000\044\000\184\000\045\000\183\000\
\\048\000\138\000\050\000\137\000\074\000\182\000\076\000\135\000\
\\092\000\181\000\093\000\180\000\096\000\020\000\097\000\179\000\
\\100\000\134\000\102\000\018\000\103\000\178\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\098\000\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\035\000\048\000\048\000\138\000\049\000\047\000\
\\050\000\137\000\063\000\046\000\064\000\045\000\065\000\044\000\
\\066\000\043\000\067\000\042\000\068\000\041\000\069\000\040\000\
\\070\000\039\000\071\000\038\000\072\000\037\000\074\000\136\000\
\\075\000\036\000\076\000\135\000\077\000\035\000\078\000\034\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\167\000\008\000\203\002\
\\009\000\037\001\016\000\036\001\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\048\000\138\000\050\000\137\000\074\000\136\000\076\000\135\000\
\\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\167\000\008\000\038\001\
\\009\000\037\001\016\000\036\001\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\048\000\138\000\050\000\137\000\074\000\136\000\076\000\135\000\
\\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\167\000\009\000\037\001\
\\016\000\036\001\018\000\144\000\020\000\143\000\021\000\142\000\
\\022\000\141\000\023\000\140\000\024\000\139\000\048\000\138\000\
\\050\000\137\000\074\000\136\000\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\007\000\167\000\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\048\000\138\000\050\000\137\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\009\000\088\000\010\000\158\000\
\\018\000\144\000\020\000\143\000\021\000\142\000\022\000\141\000\
\\023\000\140\000\024\000\139\000\048\000\138\000\050\000\137\000\
\\074\000\136\000\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\009\000\088\000\010\000\137\001\
\\018\000\144\000\020\000\143\000\021\000\142\000\022\000\141\000\
\\023\000\140\000\024\000\139\000\048\000\138\000\050\000\137\000\
\\074\000\136\000\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\010\000\137\001\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\048\000\138\000\050\000\137\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\012\000\026\003\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\048\000\138\000\050\000\137\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\012\000\058\001\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\048\000\138\000\050\000\137\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\035\000\048\000\048\000\138\000\049\000\047\000\050\000\137\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\074\000\136\000\075\000\036\000\
\\076\000\135\000\077\000\035\000\078\000\034\000\081\000\031\000\
\\082\000\030\000\083\000\029\000\100\000\134\000\000\000\
\\001\000\002\000\146\000\005\000\145\000\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\048\000\138\000\050\000\137\000\074\000\136\000\076\000\135\000\
\\100\000\134\000\000\000\
\\001\000\002\000\219\000\003\000\218\000\004\000\217\000\006\000\064\003\
\\008\000\064\003\010\000\064\003\011\000\064\003\012\000\064\003\
\\013\000\064\003\014\000\064\003\017\000\064\003\018\000\064\003\
\\021\000\064\003\051\000\064\003\052\000\064\003\053\000\064\003\
\\054\000\064\003\055\000\064\003\056\000\064\003\057\000\064\003\
\\058\000\064\003\059\000\064\003\060\000\064\003\061\000\064\003\
\\062\000\064\003\092\000\064\003\000\000\
\\001\000\002\000\219\000\003\000\218\000\004\000\217\000\006\000\065\003\
\\008\000\065\003\010\000\065\003\011\000\065\003\012\000\065\003\
\\013\000\065\003\014\000\065\003\017\000\065\003\018\000\065\003\
\\021\000\065\003\051\000\065\003\052\000\065\003\053\000\065\003\
\\054\000\065\003\055\000\065\003\056\000\065\003\057\000\065\003\
\\058\000\065\003\059\000\065\003\060\000\065\003\061\000\065\003\
\\062\000\065\003\092\000\065\003\000\000\
\\001\000\002\000\219\000\003\000\218\000\004\000\217\000\006\000\066\003\
\\008\000\066\003\010\000\066\003\011\000\066\003\012\000\066\003\
\\013\000\066\003\014\000\066\003\017\000\066\003\018\000\066\003\
\\021\000\066\003\051\000\066\003\052\000\066\003\053\000\066\003\
\\054\000\066\003\055\000\066\003\056\000\066\003\057\000\066\003\
\\058\000\066\003\059\000\066\003\060\000\066\003\061\000\066\003\
\\062\000\066\003\092\000\066\003\000\000\
\\001\000\002\000\253\000\005\000\252\000\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\048\000\138\000\050\000\137\000\074\000\136\000\076\000\135\000\
\\100\000\134\000\000\000\
\\001\000\002\000\253\000\005\000\002\001\007\000\187\001\018\000\144\000\
\\020\000\143\000\021\000\142\000\022\000\141\000\023\000\140\000\
\\024\000\139\000\048\000\138\000\050\000\137\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\253\000\005\000\002\001\018\000\144\000\020\000\143\000\
\\021\000\142\000\022\000\141\000\023\000\140\000\024\000\139\000\
\\048\000\138\000\050\000\137\000\074\000\136\000\076\000\135\000\
\\100\000\134\000\000\000\
\\001\000\002\000\161\001\005\000\255\000\006\000\028\003\023\000\140\000\
\\024\000\139\000\074\000\136\000\076\000\135\000\100\000\134\000\000\000\
\\001\000\002\000\161\001\005\000\255\000\009\000\050\000\012\000\021\003\
\\023\000\140\000\024\000\139\000\035\000\048\000\049\000\047\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\074\000\136\000\075\000\036\000\
\\076\000\135\000\077\000\035\000\078\000\034\000\079\000\033\000\
\\080\000\032\000\081\000\031\000\082\000\030\000\083\000\029\000\
\\085\000\028\000\086\000\027\000\087\000\026\000\088\000\025\000\
\\089\000\024\000\090\000\023\000\091\000\022\000\094\000\021\000\
\\096\000\020\000\099\000\019\000\100\000\134\000\102\000\018\000\
\\104\000\017\000\000\000\
\\001\000\002\000\161\001\005\000\255\000\023\000\140\000\024\000\139\000\
\\074\000\136\000\076\000\135\000\100\000\134\000\000\000\
\\001\000\005\000\143\002\006\000\143\002\009\000\143\002\011\000\143\002\
\\074\000\143\002\096\000\143\002\102\000\143\002\000\000\
\\001\000\005\000\144\002\006\000\144\002\009\000\144\002\011\000\144\002\
\\074\000\144\002\096\000\144\002\102\000\144\002\000\000\
\\001\000\005\000\148\002\006\000\148\002\007\000\148\002\009\000\148\002\
\\011\000\148\002\012\000\148\002\013\000\148\002\015\000\148\002\
\\096\000\148\002\102\000\148\002\103\000\148\002\000\000\
\\001\000\005\000\149\002\006\000\149\002\007\000\149\002\009\000\149\002\
\\011\000\149\002\012\000\149\002\013\000\149\002\015\000\149\002\
\\095\000\130\001\096\000\149\002\102\000\149\002\103\000\149\002\000\000\
\\001\000\005\000\150\002\006\000\150\002\007\000\150\002\009\000\150\002\
\\011\000\150\002\012\000\150\002\013\000\150\002\015\000\150\002\
\\096\000\150\002\102\000\150\002\103\000\150\002\000\000\
\\001\000\005\000\151\002\006\000\151\002\007\000\151\002\009\000\151\002\
\\011\000\151\002\012\000\151\002\013\000\151\002\015\000\151\002\
\\096\000\151\002\102\000\151\002\103\000\151\002\000\000\
\\001\000\005\000\152\002\006\000\152\002\007\000\152\002\009\000\152\002\
\\011\000\152\002\012\000\152\002\013\000\152\002\015\000\152\002\
\\096\000\152\002\102\000\152\002\103\000\152\002\000\000\
\\001\000\005\000\153\002\006\000\153\002\007\000\153\002\009\000\153\002\
\\011\000\153\002\012\000\153\002\013\000\153\002\015\000\153\002\
\\096\000\153\002\102\000\153\002\103\000\153\002\000\000\
\\001\000\005\000\154\002\006\000\154\002\007\000\154\002\009\000\154\002\
\\011\000\154\002\012\000\154\002\013\000\154\002\015\000\154\002\
\\096\000\154\002\102\000\154\002\103\000\154\002\000\000\
\\001\000\005\000\155\002\006\000\155\002\007\000\155\002\009\000\155\002\
\\011\000\155\002\012\000\155\002\013\000\155\002\015\000\155\002\
\\096\000\155\002\102\000\155\002\103\000\155\002\000\000\
\\001\000\005\000\156\002\006\000\156\002\007\000\156\002\009\000\156\002\
\\011\000\156\002\012\000\156\002\013\000\156\002\015\000\156\002\
\\096\000\156\002\102\000\156\002\103\000\156\002\000\000\
\\001\000\005\000\157\002\006\000\157\002\007\000\157\002\009\000\157\002\
\\011\000\157\002\012\000\157\002\013\000\157\002\015\000\157\002\
\\096\000\157\002\102\000\157\002\103\000\157\002\000\000\
\\001\000\005\000\194\002\006\000\194\002\009\000\194\002\011\000\194\002\000\000\
\\001\000\005\000\195\002\006\000\195\002\009\000\195\002\011\000\195\002\000\000\
\\001\000\005\000\196\002\006\000\196\002\009\000\196\002\011\000\196\002\000\000\
\\001\000\005\000\197\002\006\000\197\002\009\000\197\002\011\000\197\002\000\000\
\\001\000\005\000\198\002\006\000\198\002\009\000\198\002\011\000\198\002\000\000\
\\001\000\005\000\199\002\006\000\199\002\009\000\199\002\011\000\199\002\000\000\
\\001\000\005\000\248\002\082\000\047\001\000\000\
\\001\000\005\000\249\002\000\000\
\\001\000\005\000\059\000\009\000\050\000\074\000\057\000\096\000\020\000\
\\102\000\018\000\000\000\
\\001\000\005\000\059\000\074\000\057\000\000\000\
\\001\000\005\000\067\000\000\000\
\\001\000\005\000\084\000\000\000\
\\001\000\005\000\085\000\000\000\
\\001\000\005\000\093\000\006\000\145\002\007\000\145\002\009\000\092\000\
\\011\000\145\002\012\000\145\002\013\000\145\002\015\000\145\002\
\\096\000\020\000\102\000\018\000\103\000\091\000\000\000\
\\001\000\005\000\093\000\006\000\146\002\007\000\146\002\009\000\092\000\
\\011\000\146\002\012\000\146\002\013\000\146\002\015\000\146\002\
\\096\000\020\000\102\000\018\000\103\000\091\000\000\000\
\\001\000\005\000\093\000\006\000\147\002\007\000\147\002\009\000\092\000\
\\011\000\147\002\012\000\147\002\013\000\147\002\015\000\147\002\
\\096\000\020\000\102\000\018\000\103\000\091\000\000\000\
\\001\000\005\000\105\000\000\000\
\\001\000\005\000\156\000\000\000\
\\001\000\005\000\216\000\006\000\102\003\009\000\215\000\011\000\102\003\
\\015\000\102\003\016\000\214\000\023\000\213\000\024\000\212\000\
\\025\000\102\003\026\000\102\003\027\000\102\003\028\000\102\003\
\\029\000\102\003\030\000\102\003\031\000\102\003\032\000\102\003\
\\033\000\102\003\034\000\102\003\073\000\211\000\092\000\102\003\000\000\
\\001\000\005\000\249\000\000\000\
\\001\000\005\000\255\000\023\000\140\000\024\000\139\000\074\000\136\000\
\\076\000\135\000\100\000\134\000\000\000\
\\001\000\005\000\019\001\006\000\075\002\010\000\075\002\011\000\075\002\000\000\
\\001\000\005\000\029\001\006\000\191\002\009\000\135\001\011\000\191\002\
\\074\000\057\000\096\000\020\000\102\000\018\000\000\000\
\\001\000\005\000\051\001\000\000\
\\001\000\005\000\052\001\000\000\
\\001\000\005\000\062\001\000\000\
\\001\000\005\000\063\001\000\000\
\\001\000\005\000\117\001\006\000\191\002\009\000\028\001\000\000\
\\001\000\005\000\133\001\006\000\192\002\009\000\132\001\011\000\192\002\000\000\
\\001\000\005\000\133\001\006\000\193\002\009\000\132\001\011\000\193\002\000\000\
\\001\000\005\000\149\001\000\000\
\\001\000\005\000\237\001\000\000\
\\001\000\005\000\011\002\100\000\210\000\000\000\
\\001\000\005\000\045\002\100\000\210\000\000\000\
\\001\000\006\000\070\002\010\000\070\002\074\000\155\000\081\000\154\000\000\000\
\\001\000\006\000\070\002\074\000\155\000\081\000\154\000\000\000\
\\001\000\006\000\071\002\010\000\071\002\011\000\018\001\000\000\
\\001\000\006\000\072\002\010\000\072\002\000\000\
\\001\000\006\000\076\002\010\000\076\002\011\000\076\002\000\000\
\\001\000\006\000\077\002\010\000\077\002\011\000\077\002\000\000\
\\001\000\006\000\078\002\010\000\078\002\011\000\078\002\000\000\
\\001\000\006\000\079\002\011\000\190\001\000\000\
\\001\000\006\000\080\002\000\000\
\\001\000\006\000\104\002\009\000\050\000\035\000\048\000\049\000\047\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\075\000\036\000\077\000\035\000\
\\078\000\034\000\079\000\033\000\080\000\032\000\081\000\031\000\
\\082\000\030\000\083\000\029\000\085\000\028\000\086\000\027\000\
\\087\000\026\000\088\000\025\000\089\000\024\000\090\000\023\000\
\\091\000\022\000\094\000\021\000\096\000\020\000\099\000\019\000\
\\102\000\018\000\104\000\017\000\000\000\
\\001\000\006\000\105\002\000\000\
\\001\000\006\000\106\002\011\000\023\001\000\000\
\\001\000\006\000\107\002\000\000\
\\001\000\006\000\108\002\011\000\108\002\000\000\
\\001\000\006\000\109\002\011\000\109\002\000\000\
\\001\000\006\000\200\002\000\000\
\\001\000\006\000\250\002\000\000\
\\001\000\006\000\251\002\013\000\229\001\100\000\210\000\000\000\
\\001\000\006\000\252\002\000\000\
\\001\000\006\000\253\002\013\000\009\002\000\000\
\\001\000\006\000\254\002\000\000\
\\001\000\006\000\255\002\013\000\038\002\000\000\
\\001\000\006\000\000\003\000\000\
\\001\000\006\000\001\003\011\000\046\002\100\000\210\000\000\000\
\\001\000\006\000\002\003\000\000\
\\001\000\006\000\003\003\009\000\247\001\013\000\003\003\100\000\134\000\000\000\
\\001\000\006\000\004\003\013\000\004\003\000\000\
\\001\000\006\000\005\003\011\000\010\002\013\000\005\003\000\000\
\\001\000\006\000\006\003\013\000\006\003\000\000\
\\001\000\006\000\007\003\011\000\007\003\013\000\007\003\000\000\
\\001\000\006\000\008\003\011\000\008\003\013\000\008\003\000\000\
\\001\000\006\000\029\003\000\000\
\\001\000\006\000\030\003\011\000\022\002\092\000\021\002\000\000\
\\001\000\006\000\031\003\000\000\
\\001\000\006\000\032\003\000\000\
\\001\000\006\000\033\003\011\000\033\003\092\000\033\003\000\000\
\\001\000\006\000\034\003\011\000\034\003\015\000\248\000\025\000\247\000\
\\026\000\246\000\027\000\245\000\028\000\244\000\029\000\243\000\
\\030\000\242\000\031\000\241\000\032\000\240\000\033\000\239\000\
\\034\000\238\000\092\000\034\003\000\000\
\\001\000\006\000\036\003\000\000\
\\001\000\006\000\037\003\011\000\111\001\000\000\
\\001\000\006\000\038\003\000\000\
\\001\000\006\000\039\003\008\000\039\003\010\000\039\003\011\000\039\003\
\\012\000\039\003\013\000\039\003\014\000\234\000\051\000\233\000\
\\092\000\039\003\000\000\
\\001\000\006\000\040\003\008\000\040\003\010\000\040\003\011\000\040\003\
\\012\000\040\003\013\000\040\003\092\000\040\003\000\000\
\\001\000\006\000\041\003\008\000\041\003\010\000\041\003\011\000\041\003\
\\012\000\041\003\013\000\041\003\092\000\041\003\000\000\
\\001\000\006\000\042\003\008\000\042\003\010\000\042\003\011\000\042\003\
\\012\000\042\003\013\000\042\003\092\000\042\003\000\000\
\\001\000\006\000\043\003\008\000\043\003\010\000\043\003\011\000\043\003\
\\012\000\043\003\013\000\043\003\014\000\043\003\051\000\043\003\
\\052\000\235\000\092\000\043\003\000\000\
\\001\000\006\000\044\003\008\000\044\003\010\000\044\003\011\000\044\003\
\\012\000\044\003\013\000\044\003\014\000\044\003\051\000\044\003\
\\052\000\235\000\092\000\044\003\000\000\
\\001\000\006\000\045\003\008\000\045\003\010\000\045\003\011\000\045\003\
\\012\000\045\003\013\000\045\003\014\000\045\003\051\000\045\003\
\\052\000\045\003\053\000\232\000\092\000\045\003\000\000\
\\001\000\006\000\046\003\008\000\046\003\010\000\046\003\011\000\046\003\
\\012\000\046\003\013\000\046\003\014\000\046\003\051\000\046\003\
\\052\000\046\003\053\000\232\000\092\000\046\003\000\000\
\\001\000\006\000\047\003\008\000\047\003\010\000\047\003\011\000\047\003\
\\012\000\047\003\013\000\047\003\014\000\047\003\051\000\047\003\
\\052\000\047\003\053\000\047\003\054\000\231\000\092\000\047\003\000\000\
\\001\000\006\000\048\003\008\000\048\003\010\000\048\003\011\000\048\003\
\\012\000\048\003\013\000\048\003\014\000\048\003\051\000\048\003\
\\052\000\048\003\053\000\048\003\054\000\231\000\092\000\048\003\000\000\
\\001\000\006\000\049\003\008\000\049\003\010\000\049\003\011\000\049\003\
\\012\000\049\003\013\000\049\003\014\000\049\003\021\000\230\000\
\\051\000\049\003\052\000\049\003\053\000\049\003\054\000\049\003\
\\092\000\049\003\000\000\
\\001\000\006\000\050\003\008\000\050\003\010\000\050\003\011\000\050\003\
\\012\000\050\003\013\000\050\003\014\000\050\003\021\000\230\000\
\\051\000\050\003\052\000\050\003\053\000\050\003\054\000\050\003\
\\092\000\050\003\000\000\
\\001\000\006\000\051\003\008\000\051\003\010\000\051\003\011\000\051\003\
\\012\000\051\003\013\000\051\003\014\000\051\003\021\000\051\003\
\\051\000\051\003\052\000\051\003\053\000\051\003\054\000\051\003\
\\055\000\229\000\056\000\228\000\092\000\051\003\000\000\
\\001\000\006\000\052\003\008\000\052\003\010\000\052\003\011\000\052\003\
\\012\000\052\003\013\000\052\003\014\000\052\003\021\000\052\003\
\\051\000\052\003\052\000\052\003\053\000\052\003\054\000\052\003\
\\055\000\229\000\056\000\228\000\092\000\052\003\000\000\
\\001\000\006\000\053\003\008\000\053\003\010\000\053\003\011\000\053\003\
\\012\000\053\003\013\000\053\003\014\000\053\003\021\000\053\003\
\\051\000\053\003\052\000\053\003\053\000\053\003\054\000\053\003\
\\055\000\053\003\056\000\053\003\057\000\227\000\058\000\226\000\
\\059\000\225\000\060\000\224\000\092\000\053\003\000\000\
\\001\000\006\000\054\003\008\000\054\003\010\000\054\003\011\000\054\003\
\\012\000\054\003\013\000\054\003\014\000\054\003\021\000\054\003\
\\051\000\054\003\052\000\054\003\053\000\054\003\054\000\054\003\
\\055\000\054\003\056\000\054\003\057\000\227\000\058\000\226\000\
\\059\000\225\000\060\000\224\000\092\000\054\003\000\000\
\\001\000\006\000\055\003\008\000\055\003\010\000\055\003\011\000\055\003\
\\012\000\055\003\013\000\055\003\014\000\055\003\021\000\055\003\
\\051\000\055\003\052\000\055\003\053\000\055\003\054\000\055\003\
\\055\000\055\003\056\000\055\003\057\000\227\000\058\000\226\000\
\\059\000\225\000\060\000\224\000\092\000\055\003\000\000\
\\001\000\006\000\056\003\008\000\056\003\010\000\056\003\011\000\056\003\
\\012\000\056\003\013\000\056\003\014\000\056\003\021\000\056\003\
\\051\000\056\003\052\000\056\003\053\000\056\003\054\000\056\003\
\\055\000\056\003\056\000\056\003\057\000\056\003\058\000\056\003\
\\059\000\056\003\060\000\056\003\061\000\221\000\062\000\220\000\
\\092\000\056\003\000\000\
\\001\000\006\000\057\003\008\000\057\003\010\000\057\003\011\000\057\003\
\\012\000\057\003\013\000\057\003\014\000\057\003\021\000\057\003\
\\051\000\057\003\052\000\057\003\053\000\057\003\054\000\057\003\
\\055\000\057\003\056\000\057\003\057\000\057\003\058\000\057\003\
\\059\000\057\003\060\000\057\003\061\000\221\000\062\000\220\000\
\\092\000\057\003\000\000\
\\001\000\006\000\058\003\008\000\058\003\010\000\058\003\011\000\058\003\
\\012\000\058\003\013\000\058\003\014\000\058\003\021\000\058\003\
\\051\000\058\003\052\000\058\003\053\000\058\003\054\000\058\003\
\\055\000\058\003\056\000\058\003\057\000\058\003\058\000\058\003\
\\059\000\058\003\060\000\058\003\061\000\221\000\062\000\220\000\
\\092\000\058\003\000\000\
\\001\000\006\000\059\003\008\000\059\003\010\000\059\003\011\000\059\003\
\\012\000\059\003\013\000\059\003\014\000\059\003\021\000\059\003\
\\051\000\059\003\052\000\059\003\053\000\059\003\054\000\059\003\
\\055\000\059\003\056\000\059\003\057\000\059\003\058\000\059\003\
\\059\000\059\003\060\000\059\003\061\000\221\000\062\000\220\000\
\\092\000\059\003\000\000\
\\001\000\006\000\060\003\008\000\060\003\010\000\060\003\011\000\060\003\
\\012\000\060\003\013\000\060\003\014\000\060\003\021\000\060\003\
\\051\000\060\003\052\000\060\003\053\000\060\003\054\000\060\003\
\\055\000\060\003\056\000\060\003\057\000\060\003\058\000\060\003\
\\059\000\060\003\060\000\060\003\061\000\221\000\062\000\220\000\
\\092\000\060\003\000\000\
\\001\000\006\000\061\003\008\000\061\003\010\000\061\003\011\000\061\003\
\\012\000\061\003\013\000\061\003\014\000\061\003\017\000\223\000\
\\018\000\222\000\021\000\061\003\051\000\061\003\052\000\061\003\
\\053\000\061\003\054\000\061\003\055\000\061\003\056\000\061\003\
\\057\000\061\003\058\000\061\003\059\000\061\003\060\000\061\003\
\\061\000\061\003\062\000\061\003\092\000\061\003\000\000\
\\001\000\006\000\062\003\008\000\062\003\010\000\062\003\011\000\062\003\
\\012\000\062\003\013\000\062\003\014\000\062\003\017\000\223\000\
\\018\000\222\000\021\000\062\003\051\000\062\003\052\000\062\003\
\\053\000\062\003\054\000\062\003\055\000\062\003\056\000\062\003\
\\057\000\062\003\058\000\062\003\059\000\062\003\060\000\062\003\
\\061\000\062\003\062\000\062\003\092\000\062\003\000\000\
\\001\000\006\000\063\003\008\000\063\003\010\000\063\003\011\000\063\003\
\\012\000\063\003\013\000\063\003\014\000\063\003\017\000\223\000\
\\018\000\222\000\021\000\063\003\051\000\063\003\052\000\063\003\
\\053\000\063\003\054\000\063\003\055\000\063\003\056\000\063\003\
\\057\000\063\003\058\000\063\003\059\000\063\003\060\000\063\003\
\\061\000\063\003\062\000\063\003\092\000\063\003\000\000\
\\001\000\006\000\082\003\016\000\082\003\000\000\
\\001\000\006\000\083\003\016\000\083\003\000\000\
\\001\000\006\000\103\003\011\000\103\003\015\000\103\003\025\000\103\003\
\\026\000\103\003\027\000\103\003\028\000\103\003\029\000\103\003\
\\030\000\103\003\031\000\103\003\032\000\103\003\033\000\103\003\
\\034\000\103\003\092\000\103\003\000\000\
\\001\000\006\000\194\000\000\000\
\\001\000\006\000\236\000\000\000\
\\001\000\006\000\012\001\000\000\
\\001\000\006\000\022\001\000\000\
\\001\000\006\000\064\001\000\000\
\\001\000\006\000\110\001\000\000\
\\001\000\006\000\112\001\011\000\111\001\000\000\
\\001\000\006\000\113\001\000\000\
\\001\000\006\000\114\001\000\000\
\\001\000\006\000\128\001\100\000\210\000\000\000\
\\001\000\006\000\168\001\000\000\
\\001\000\006\000\180\001\000\000\
\\001\000\006\000\183\001\000\000\
\\001\000\006\000\184\001\000\000\
\\001\000\006\000\189\001\000\000\
\\001\000\006\000\195\001\000\000\
\\001\000\006\000\196\001\000\000\
\\001\000\006\000\205\001\000\000\
\\001\000\006\000\214\001\000\000\
\\001\000\006\000\215\001\000\000\
\\001\000\006\000\227\001\000\000\
\\001\000\006\000\230\001\000\000\
\\001\000\006\000\241\001\016\000\240\001\000\000\
\\001\000\006\000\023\002\000\000\
\\001\000\006\000\024\002\000\000\
\\001\000\006\000\039\002\000\000\
\\001\000\006\000\049\002\000\000\
\\001\000\007\000\073\002\009\000\050\000\074\000\080\000\075\000\079\000\
\\096\000\020\000\102\000\018\000\000\000\
\\001\000\007\000\074\002\074\000\080\000\075\000\079\000\000\000\
\\001\000\007\000\087\000\074\000\080\000\075\000\079\000\000\000\
\\001\000\007\000\098\000\011\000\139\002\012\000\139\002\015\000\097\000\000\000\
\\001\000\007\000\110\000\000\000\
\\001\000\007\000\113\000\000\000\
\\001\000\007\000\205\000\000\000\
\\001\000\007\000\208\000\000\000\
\\001\000\007\000\187\001\000\000\
\\001\000\007\000\233\001\000\000\
\\001\000\008\000\113\002\046\000\113\002\047\000\113\002\000\000\
\\001\000\008\000\120\002\035\000\048\000\049\000\047\000\063\000\046\000\
\\064\000\045\000\065\000\044\000\066\000\043\000\067\000\042\000\
\\068\000\041\000\069\000\040\000\070\000\039\000\071\000\038\000\
\\072\000\037\000\075\000\036\000\077\000\035\000\078\000\034\000\
\\081\000\031\000\082\000\030\000\083\000\029\000\000\000\
\\001\000\008\000\121\002\000\000\
\\001\000\008\000\131\002\035\000\131\002\049\000\131\002\063\000\131\002\
\\064\000\131\002\065\000\131\002\066\000\131\002\067\000\131\002\
\\068\000\131\002\069\000\131\002\070\000\131\002\071\000\131\002\
\\072\000\131\002\075\000\131\002\077\000\131\002\078\000\131\002\
\\081\000\131\002\082\000\131\002\083\000\131\002\000\000\
\\001\000\008\000\132\002\035\000\132\002\049\000\132\002\063\000\132\002\
\\064\000\132\002\065\000\132\002\066\000\132\002\067\000\132\002\
\\068\000\132\002\069\000\132\002\070\000\132\002\071\000\132\002\
\\072\000\132\002\075\000\132\002\077\000\132\002\078\000\132\002\
\\081\000\132\002\082\000\132\002\083\000\132\002\000\000\
\\001\000\008\000\187\002\011\000\187\002\000\000\
\\001\000\008\000\188\002\011\000\188\002\000\000\
\\001\000\008\000\189\002\011\000\189\002\015\000\016\001\000\000\
\\001\000\008\000\190\002\011\000\190\002\000\000\
\\001\000\008\000\202\002\011\000\143\001\000\000\
\\001\000\008\000\204\002\000\000\
\\001\000\008\000\205\002\011\000\205\002\000\000\
\\001\000\008\000\206\002\011\000\206\002\000\000\
\\001\000\008\000\212\002\011\000\212\002\012\000\212\002\000\000\
\\001\000\008\000\213\002\011\000\213\002\012\000\213\002\000\000\
\\001\000\008\000\214\002\011\000\214\002\012\000\214\002\000\000\
\\001\000\008\000\012\003\046\000\255\001\047\000\254\001\000\000\
\\001\000\008\000\013\003\000\000\
\\001\000\008\000\014\003\046\000\014\003\047\000\014\003\000\000\
\\001\000\008\000\015\001\011\000\014\001\000\000\
\\001\000\008\000\045\001\000\000\
\\001\000\008\000\069\001\000\000\
\\001\000\008\000\076\001\000\000\
\\001\000\008\000\077\001\000\000\
\\001\000\008\000\079\001\000\000\
\\001\000\008\000\119\001\011\000\118\001\000\000\
\\001\000\008\000\121\001\074\000\151\000\000\000\
\\001\000\008\000\144\001\000\000\
\\001\000\008\000\174\001\000\000\
\\001\000\008\000\177\001\000\000\
\\001\000\008\000\188\001\074\000\151\000\000\000\
\\001\000\008\000\242\001\000\000\
\\001\000\008\000\017\002\000\000\
\\001\000\009\000\210\002\015\000\210\002\016\000\210\002\000\000\
\\001\000\009\000\211\002\015\000\211\002\016\000\211\002\000\000\
\\001\000\009\000\050\000\012\000\049\000\035\000\048\000\049\000\047\000\
\\063\000\046\000\064\000\045\000\065\000\044\000\066\000\043\000\
\\067\000\042\000\068\000\041\000\069\000\040\000\070\000\039\000\
\\071\000\038\000\072\000\037\000\075\000\036\000\077\000\035\000\
\\078\000\034\000\079\000\033\000\080\000\032\000\081\000\031\000\
\\082\000\030\000\083\000\029\000\085\000\028\000\086\000\027\000\
\\087\000\026\000\088\000\025\000\089\000\024\000\090\000\023\000\
\\091\000\022\000\094\000\021\000\096\000\020\000\099\000\019\000\
\\102\000\018\000\104\000\017\000\000\000\
\\001\000\009\000\050\000\035\000\048\000\049\000\047\000\063\000\046\000\
\\064\000\045\000\065\000\044\000\066\000\043\000\067\000\042\000\
\\068\000\041\000\069\000\040\000\070\000\039\000\071\000\038\000\
\\072\000\037\000\075\000\036\000\077\000\035\000\078\000\034\000\
\\079\000\033\000\080\000\032\000\081\000\031\000\082\000\030\000\
\\083\000\029\000\085\000\028\000\086\000\027\000\087\000\026\000\
\\088\000\025\000\089\000\024\000\090\000\023\000\091\000\022\000\
\\094\000\021\000\096\000\020\000\099\000\019\000\102\000\018\000\
\\104\000\017\000\000\000\
\\001\000\009\000\071\000\074\000\070\000\090\000\090\002\091\000\090\002\
\\094\000\090\002\099\000\090\002\101\000\090\002\000\000\
\\001\000\009\000\071\000\074\000\070\000\101\000\090\002\000\000\
\\001\000\009\000\088\000\000\000\
\\001\000\009\000\037\001\015\000\208\002\016\000\036\001\000\000\
\\001\000\009\000\247\001\100\000\134\000\000\000\
\\001\000\010\000\070\002\074\000\155\000\081\000\154\000\000\000\
\\001\000\010\000\198\000\000\000\
\\001\000\010\000\017\001\000\000\
\\001\000\010\000\021\001\000\000\
\\001\000\010\000\123\001\000\000\
\\001\000\010\000\179\001\000\000\
\\001\000\010\000\194\001\000\000\
\\001\000\010\000\198\001\000\000\
\\001\000\010\000\226\001\000\000\
\\001\000\010\000\029\002\000\000\
\\001\000\011\000\135\002\012\000\135\002\013\000\173\001\000\000\
\\001\000\011\000\136\002\012\000\136\002\000\000\
\\001\000\011\000\139\002\012\000\139\002\015\000\097\000\000\000\
\\001\000\011\000\140\002\012\000\140\002\000\000\
\\001\000\011\000\025\003\012\000\025\003\000\000\
\\001\000\011\000\095\000\012\000\137\002\000\000\
\\001\000\011\000\172\001\012\000\133\002\000\000\
\\001\000\011\000\182\001\000\000\
\\001\000\011\000\207\001\012\000\023\003\000\000\
\\001\000\012\000\134\002\000\000\
\\001\000\012\000\138\002\000\000\
\\001\000\012\000\226\002\000\000\
\\001\000\012\000\022\003\000\000\
\\001\000\012\000\024\003\000\000\
\\001\000\012\000\027\003\000\000\
\\001\000\012\000\094\000\000\000\
\\001\000\012\000\041\001\000\000\
\\001\000\012\000\055\001\000\000\
\\001\000\012\000\056\001\000\000\
\\001\000\012\000\162\001\000\000\
\\001\000\012\000\163\001\000\000\
\\001\000\012\000\171\001\000\000\
\\001\000\012\000\199\001\000\000\
\\001\000\012\000\208\001\000\000\
\\001\000\012\000\236\001\000\000\
\\001\000\012\000\248\001\000\000\
\\001\000\012\000\036\002\000\000\
\\001\000\013\000\109\000\000\000\
\\001\000\013\000\043\001\000\000\
\\001\000\013\000\181\001\000\000\
\\001\000\013\000\018\002\000\000\
\\001\000\013\000\031\002\000\000\
\\001\000\015\000\209\002\000\000\
\\001\000\015\000\248\000\025\000\247\000\026\000\246\000\027\000\245\000\
\\028\000\244\000\029\000\243\000\030\000\242\000\031\000\241\000\
\\032\000\240\000\033\000\239\000\034\000\238\000\000\000\
\\001\000\015\000\141\001\000\000\
\\001\000\015\000\206\001\000\000\
\\001\000\035\000\048\000\049\000\047\000\063\000\046\000\064\000\045\000\
\\065\000\044\000\066\000\043\000\067\000\042\000\068\000\041\000\
\\069\000\040\000\070\000\039\000\071\000\038\000\072\000\037\000\
\\075\000\036\000\077\000\035\000\078\000\034\000\000\000\
\\001\000\035\000\048\000\049\000\047\000\063\000\046\000\064\000\045\000\
\\065\000\044\000\066\000\043\000\067\000\042\000\068\000\041\000\
\\069\000\040\000\070\000\039\000\071\000\038\000\072\000\037\000\
\\075\000\036\000\077\000\035\000\078\000\034\000\081\000\031\000\
\\082\000\030\000\083\000\029\000\000\000\
\\001\000\038\000\212\001\000\000\
\\001\000\074\000\068\000\000\000\
\\001\000\074\000\075\000\000\000\
\\001\000\074\000\075\000\090\000\087\002\091\000\087\002\094\000\087\002\
\\099\000\087\002\101\000\087\002\000\000\
\\001\000\074\000\151\000\000\000\
\\001\000\074\000\054\001\000\000\
\\001\000\074\000\080\001\000\000\
\\001\000\074\000\081\001\000\000\
\\001\000\074\000\145\001\000\000\
\\001\000\074\000\222\001\000\000\
\\001\000\074\000\007\002\000\000\
\\001\000\074\000\012\002\000\000\
\\001\000\090\000\083\002\091\000\083\002\094\000\083\002\099\000\083\002\
\\101\000\083\002\000\000\
\\001\000\090\000\084\002\091\000\084\002\094\000\084\002\099\000\084\002\
\\101\000\084\002\000\000\
\\001\000\090\000\085\002\091\000\085\002\094\000\085\002\099\000\085\002\
\\101\000\085\002\000\000\
\\001\000\090\000\086\002\091\000\086\002\094\000\086\002\099\000\086\002\
\\101\000\086\002\000\000\
\\001\000\090\000\088\002\091\000\088\002\094\000\088\002\099\000\088\002\
\\101\000\088\002\000\000\
\\001\000\090\000\089\002\091\000\089\002\094\000\089\002\099\000\089\002\
\\101\000\089\002\000\000\
\\001\000\090\000\091\002\091\000\091\002\094\000\091\002\099\000\091\002\
\\101\000\091\002\000\000\
\\001\000\090\000\092\002\091\000\092\002\094\000\092\002\099\000\092\002\
\\101\000\092\002\000\000\
\\001\000\090\000\023\000\091\000\022\000\094\000\021\000\099\000\019\000\
\\101\000\081\002\000\000\
\\001\000\098\000\117\002\000\000\
\\001\000\098\000\119\002\000\000\
\\001\000\098\000\231\001\000\000\
\\001\000\100\000\073\000\000\000\
\\001\000\100\000\134\000\000\000\
\\001\000\100\000\199\000\000\000\
\\001\000\100\000\048\001\000\000\
\\001\000\100\000\049\001\000\000\
\\001\000\100\000\050\001\000\000\
\\001\000\100\000\165\001\000\000\
\\001\000\100\000\249\001\000\000\
\\001\000\100\000\033\002\000\000\
\\001\000\101\000\082\002\000\000\
\\001\000\101\000\061\000\000\000\
\\001\000\101\000\106\000\000\000\
\\001\000\101\000\150\001\000\000\
\\001\000\101\000\151\001\000\000\
\\001\000\101\000\152\001\000\000\
\\001\000\101\000\213\001\000\000\
\\001\000\101\000\225\001\000\000\
\\001\000\101\000\013\002\000\000\
\\001\000\101\000\041\002\000\000\
\"
val actionRowNumbers =
"\121\001\020\000\066\000\028\000\
\\004\000\005\000\154\000\210\001\
\\196\001\032\000\030\000\067\000\
\\026\000\002\000\001\000\014\000\
\\213\000\191\001\177\001\123\001\
\\200\001\178\001\015\000\016\000\
\\018\000\013\000\017\000\042\000\
\\041\000\040\000\012\000\011\000\
\\076\001\076\001\068\000\060\000\
\\062\000\061\000\214\000\057\000\
\\059\000\058\000\056\000\063\000\
\\055\000\215\000\078\001\006\000\
\\125\001\029\000\218\000\153\001\
\\143\001\079\001\211\000\195\000\
\\007\000\156\000\152\000\019\000\
\\209\001\033\000\031\000\027\000\
\\003\000\219\000\211\001\188\001\
\\123\001\161\000\190\001\193\001\
\\189\001\165\001\080\001\077\001\
\\051\000\046\000\045\000\081\001\
\\077\001\047\000\181\000\181\000\
\\073\000\180\001\128\001\200\000\
\\201\000\220\000\175\000\246\000\
\\008\000\156\000\009\000\174\000\
\\165\000\212\000\216\000\049\001\
\\191\000\153\000\043\000\238\000\
\\023\000\194\001\129\001\202\001\
\\175\001\082\001\175\001\175\001\
\\083\001\175\001\148\000\145\000\
\\133\000\123\000\116\000\120\000\
\\182\000\038\001\043\001\035\001\
\\033\001\031\001\029\001\027\001\
\\021\001\025\001\050\001\171\001\
\\150\000\151\000\143\000\222\000\
\\185\000\223\000\223\000\187\000\
\\187\000\187\000\187\000\170\000\
\\187\000\051\001\180\001\091\001\
\\105\001\093\001\130\001\239\000\
\\241\000\224\000\201\001\131\001\
\\197\000\247\000\052\001\248\000\
\\158\000\148\001\140\001\099\001\
\\141\001\172\000\166\000\154\001\
\\171\001\166\001\035\000\100\000\
\\164\000\106\001\034\000\154\000\
\\209\000\203\001\204\001\205\001\
\\144\000\226\000\227\000\181\001\
\\155\001\156\001\179\000\108\000\
\\228\000\229\000\098\000\217\000\
\\198\000\192\000\044\000\053\001\
\\123\001\179\001\036\000\087\001\
\\107\001\155\000\038\000\175\001\
\\108\001\109\001\175\001\110\001\
\\149\000\182\001\140\000\139\000\
\\183\001\181\000\162\000\187\000\
\\187\000\187\000\187\000\187\000\
\\187\000\187\000\187\000\187\000\
\\187\000\187\000\187\000\187\000\
\\187\000\187\000\187\000\187\000\
\\181\000\187\000\064\000\181\000\
\\085\000\084\000\080\000\083\000\
\\082\000\081\000\078\000\079\000\
\\077\000\076\000\075\000\174\001\
\\122\000\130\000\180\000\187\000\
\\142\000\180\000\141\000\126\000\
\\180\000\127\000\125\000\124\000\
\\054\001\055\001\056\001\057\001\
\\160\000\129\000\065\000\111\001\
\\112\001\069\000\181\000\132\001\
\\237\000\163\000\058\001\196\000\
\\194\000\122\001\232\000\251\000\
\\250\000\225\000\177\000\157\000\
\\126\001\172\001\174\000\098\001\
\\095\001\113\001\184\001\181\000\
\\100\001\169\000\106\000\087\000\
\\181\000\169\000\086\001\010\000\
\\233\000\210\000\212\001\213\001\
\\214\001\181\000\189\000\157\001\
\\149\001\094\000\093\000\158\001\
\\092\000\169\000\109\000\206\001\
\\181\000\181\000\059\001\195\001\
\\192\001\037\000\088\001\024\000\
\\159\001\144\001\138\001\090\001\
\\039\000\114\001\024\000\024\000\
\\115\001\024\000\137\000\136\000\
\\133\001\060\001\018\001\019\001\
\\119\000\118\000\117\000\045\001\
\\044\001\184\000\183\000\040\001\
\\039\001\042\001\041\001\037\001\
\\036\001\034\001\032\001\030\001\
\\026\001\167\001\028\001\023\001\
\\145\001\061\001\128\000\062\001\
\\147\000\181\000\146\000\024\001\
\\186\000\252\000\230\000\159\000\
\\116\001\070\000\092\001\071\000\
\\094\001\022\000\240\000\063\001\
\\244\000\242\000\202\000\199\000\
\\124\001\249\000\181\000\246\000\
\\231\000\176\000\134\001\205\000\
\\064\001\065\001\170\001\074\000\
\\097\001\171\000\101\001\120\001\
\\135\001\160\001\101\000\201\001\
\\167\000\103\000\102\000\066\001\
\\221\000\173\001\146\001\150\001\
\\161\001\178\000\115\000\187\000\
\\095\000\091\000\176\001\215\001\
\\067\001\068\001\021\000\054\000\
\\025\000\089\001\156\000\181\000\
\\024\000\052\000\050\000\024\000\
\\048\000\134\000\135\000\181\000\
\\185\001\131\000\084\001\020\001\
\\121\000\173\000\072\000\243\000\
\\181\000\216\001\136\001\069\001\
\\204\000\203\000\207\000\096\001\
\\119\001\086\000\254\000\070\001\
\\197\001\199\001\168\000\085\001\
\\181\000\190\000\114\000\152\001\
\\162\001\048\001\234\000\107\000\
\\108\000\169\000\147\001\139\001\
\\053\000\049\000\022\001\071\001\
\\046\001\117\001\245\000\193\000\
\\206\000\208\000\253\000\006\001\
\\163\001\207\001\198\001\102\001\
\\142\001\151\001\188\000\181\000\
\\169\000\096\000\186\001\132\000\
\\138\000\007\001\000\001\008\001\
\\235\000\187\001\105\000\217\001\
\\110\000\169\000\102\001\118\001\
\\168\001\181\000\017\001\013\001\
\\012\001\072\001\073\001\088\000\
\\169\000\047\001\255\000\006\001\
\\127\001\181\000\137\001\104\000\
\\111\000\164\000\103\001\099\000\
\\113\000\169\001\181\000\208\001\
\\190\000\108\000\164\001\097\000\
\\002\001\009\001\074\001\201\001\
\\104\001\112\000\016\001\218\001\
\\015\001\169\000\089\000\001\001\
\\201\001\010\001\236\000\014\001\
\\090\000\003\001\004\001\181\000\
\\201\001\075\001\005\001\011\001\
\\000\000"
val gotoT =
"\
\\001\000\048\002\002\000\014\000\003\000\013\000\006\000\012\000\
\\007\000\011\000\010\000\010\000\012\000\009\000\013\000\008\000\
\\014\000\007\000\020\000\006\000\028\000\005\000\040\000\004\000\
\\069\000\003\000\070\000\002\000\094\000\001\000\000\000\
\\000\000\
\\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\049\000\069\000\003\000\
\\070\000\002\000\094\000\001\000\000\000\
\\000\000\
\\000\000\
\\059\000\054\000\060\000\053\000\065\000\052\000\066\000\051\000\
\\067\000\050\000\000\000\
\\000\000\
\\013\000\008\000\014\000\060\000\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\061\000\069\000\003\000\
\\070\000\002\000\094\000\001\000\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\062\000\069\000\003\000\
\\070\000\002\000\094\000\001\000\000\000\
\\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\063\000\069\000\003\000\
\\070\000\002\000\094\000\001\000\000\000\
\\002\000\064\000\003\000\013\000\006\000\012\000\007\000\011\000\
\\010\000\010\000\012\000\009\000\013\000\008\000\014\000\007\000\
\\020\000\006\000\028\000\005\000\040\000\004\000\069\000\003\000\
\\070\000\002\000\094\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\091\000\067\000\000\000\
\\016\000\070\000\000\000\
\\015\000\072\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\071\000\076\000\094\000\075\000\095\000\074\000\000\000\
\\071\000\081\000\094\000\080\000\095\000\079\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\071\000\084\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\068\000\088\000\094\000\087\000\000\000\
\\000\000\
\\000\000\
\\041\000\094\000\000\000\
\\067\000\098\000\094\000\097\000\000\000\
\\000\000\
\\000\000\
\\059\000\054\000\060\000\099\000\067\000\050\000\000\000\
\\010\000\102\000\011\000\101\000\059\000\100\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\091\000\105\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\071\000\109\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\071\000\112\000\000\000\
\\000\000\
\\072\000\131\000\073\000\130\000\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\072\000\131\000\073\000\145\000\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\008\000\148\000\009\000\147\000\000\000\
\\093\000\151\000\096\000\150\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\155\000\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\160\000\037\000\159\000\
\\038\000\158\000\039\000\157\000\069\000\003\000\070\000\002\000\
\\094\000\001\000\000\000\
\\000\000\
\\059\000\054\000\060\000\162\000\065\000\052\000\066\000\161\000\
\\067\000\050\000\000\000\
\\000\000\
\\024\000\164\000\072\000\131\000\073\000\163\000\076\000\129\000\
\\077\000\128\000\078\000\127\000\079\000\126\000\080\000\125\000\
\\081\000\124\000\082\000\123\000\083\000\122\000\084\000\121\000\
\\085\000\120\000\086\000\119\000\087\000\118\000\088\000\117\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\175\000\028\000\174\000\
\\035\000\173\000\036\000\172\000\041\000\171\000\042\000\170\000\
\\045\000\169\000\069\000\003\000\070\000\002\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\166\000\102\000\114\000\000\000\
\\067\000\191\000\000\000\
\\068\000\088\000\094\000\087\000\000\000\
\\000\000\
\\000\000\
\\059\000\193\000\000\000\
\\010\000\102\000\011\000\194\000\000\000\
\\093\000\151\000\096\000\195\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\011\000\010\000\202\000\021\000\201\000\029\000\200\000\
\\030\000\199\000\069\000\198\000\070\000\002\000\000\000\
\\000\000\
\\007\000\011\000\010\000\202\000\021\000\201\000\029\000\204\000\
\\030\000\199\000\069\000\198\000\070\000\002\000\000\000\
\\007\000\011\000\010\000\202\000\021\000\201\000\029\000\205\000\
\\030\000\199\000\069\000\198\000\070\000\002\000\000\000\
\\000\000\
\\007\000\011\000\010\000\202\000\021\000\201\000\029\000\207\000\
\\030\000\199\000\069\000\198\000\070\000\002\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\058\000\235\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\086\000\249\000\088\000\248\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\088\000\252\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\088\000\254\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\255\000\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\001\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\002\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\003\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\007\000\011\000\010\000\202\000\021\000\008\001\034\000\007\001\
\\041\000\006\001\069\000\198\000\070\000\002\000\072\000\131\000\
\\073\000\005\001\074\000\004\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\009\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\008\000\011\001\009\000\147\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\102\000\018\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\059\000\025\001\060\000\024\001\061\000\023\001\062\000\022\001\
\\067\000\050\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\022\000\033\001\023\000\032\001\024\000\031\001\025\000\030\001\
\\026\000\029\001\027\000\028\001\072\000\131\000\073\000\163\000\
\\076\000\129\000\077\000\128\000\078\000\127\000\079\000\126\000\
\\080\000\125\000\081\000\124\000\082\000\123\000\083\000\122\000\
\\084\000\121\000\085\000\120\000\086\000\119\000\087\000\118\000\
\\088\000\117\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\041\000\171\000\042\000\038\001\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\058\000\040\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\175\000\028\000\174\000\
\\035\000\042\001\036\000\172\000\041\000\171\000\042\000\170\000\
\\045\000\169\000\069\000\003\000\070\000\002\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\166\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\059\000\054\000\060\000\162\000\065\000\052\000\066\000\051\000\
\\067\000\050\000\000\000\
\\005\000\044\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\045\000\051\001\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\055\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\018\000\058\001\019\000\057\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\068\000\088\000\094\000\087\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\091\000\063\001\000\000\
\\015\000\064\001\000\000\
\\007\000\011\000\010\000\202\000\021\000\065\001\069\000\198\000\
\\070\000\002\000\000\000\
\\007\000\011\000\010\000\202\000\021\000\201\000\029\000\066\001\
\\030\000\199\000\069\000\198\000\070\000\002\000\000\000\
\\000\000\
\\059\000\054\000\060\000\070\001\063\000\069\001\064\000\068\001\
\\067\000\050\000\000\000\
\\007\000\011\000\010\000\202\000\021\000\072\001\069\000\198\000\
\\070\000\002\000\000\000\
\\007\000\011\000\010\000\202\000\021\000\201\000\029\000\073\001\
\\030\000\199\000\069\000\198\000\070\000\002\000\000\000\
\\000\000\
\\000\000\
\\007\000\011\000\010\000\202\000\021\000\201\000\029\000\076\001\
\\030\000\199\000\069\000\198\000\070\000\002\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\080\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\072\000\131\000\073\000\083\001\074\000\082\001\075\000\081\001\
\\076\000\129\000\077\000\128\000\078\000\127\000\079\000\126\000\
\\080\000\125\000\081\000\124\000\082\000\123\000\083\000\122\000\
\\084\000\121\000\085\000\120\000\086\000\119\000\087\000\118\000\
\\088\000\117\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\084\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\085\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\086\000\119\000\087\000\086\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\083\000\087\001\085\000\120\000\086\000\119\000\087\000\118\000\
\\088\000\248\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\083\000\088\001\085\000\120\000\086\000\119\000\087\000\118\000\
\\088\000\248\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\085\000\089\001\086\000\119\000\087\000\118\000\088\000\248\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\085\000\090\001\086\000\119\000\087\000\118\000\088\000\248\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\083\000\122\000\084\000\091\001\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\248\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\083\000\122\000\084\000\092\001\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\248\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\083\000\122\000\084\000\093\001\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\248\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\083\000\122\000\084\000\094\001\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\248\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\082\000\095\001\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\082\000\096\001\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\081\000\097\001\082\000\123\000\083\000\122\000\084\000\121\000\
\\085\000\120\000\086\000\119\000\087\000\118\000\088\000\248\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\080\000\098\001\081\000\124\000\082\000\123\000\083\000\122\000\
\\084\000\121\000\085\000\120\000\086\000\119\000\087\000\118\000\
\\088\000\248\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\079\000\099\001\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\248\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\076\000\100\001\078\000\127\000\079\000\126\000\080\000\125\000\
\\081\000\124\000\082\000\123\000\083\000\122\000\084\000\121\000\
\\085\000\120\000\086\000\119\000\087\000\118\000\088\000\248\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\072\000\131\000\073\000\101\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\078\000\102\001\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\072\000\131\000\073\000\103\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\007\000\011\000\069\000\104\001\070\000\002\000\000\000\
\\000\000\
\\000\000\
\\007\000\011\000\010\000\202\000\021\000\008\001\034\000\105\001\
\\069\000\198\000\070\000\002\000\072\000\131\000\073\000\005\001\
\\074\000\004\001\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\086\000\119\000\087\000\106\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\007\000\011\000\010\000\202\000\021\000\008\001\034\000\107\001\
\\069\000\198\000\070\000\002\000\072\000\131\000\073\000\005\001\
\\074\000\004\001\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\007\000\011\000\010\000\202\000\021\000\008\001\034\000\007\001\
\\069\000\198\000\070\000\002\000\072\000\131\000\073\000\005\001\
\\074\000\004\001\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\059\000\114\001\061\000\113\001\062\000\022\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\118\001\000\000\
\\000\000\
\\072\000\131\000\073\000\120\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\093\000\151\000\096\000\122\001\000\000\
\\072\000\131\000\073\000\124\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\097\000\123\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\107\000\127\001\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\160\000\037\000\159\000\
\\039\000\129\001\069\000\003\000\070\000\002\000\094\000\001\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\062\000\132\001\067\000\098\000\094\000\097\000\000\000\
\\072\000\131\000\073\000\134\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\160\000\037\000\159\000\
\\038\000\137\001\039\000\157\000\059\000\025\001\060\000\099\000\
\\061\000\136\001\062\000\022\001\067\000\050\000\069\000\003\000\
\\070\000\002\000\094\000\001\000\000\000\
\\026\000\138\001\027\000\028\001\000\000\
\\000\000\
\\024\000\140\001\072\000\131\000\073\000\163\000\076\000\129\000\
\\077\000\128\000\078\000\127\000\079\000\126\000\080\000\125\000\
\\081\000\124\000\082\000\123\000\083\000\122\000\084\000\121\000\
\\085\000\120\000\086\000\119\000\087\000\118\000\088\000\117\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\144\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\041\000\171\000\042\000\038\001\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\145\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\041\000\171\000\042\000\146\001\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\151\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\175\000\028\000\158\001\
\\050\000\157\001\051\000\156\001\052\000\155\001\053\000\154\001\
\\069\000\003\000\070\000\002\000\072\000\153\001\088\000\152\001\
\\089\000\116\000\090\000\115\000\094\000\001\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\041\000\171\000\042\000\162\001\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\164\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\072\000\131\000\073\000\165\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\094\000\168\001\095\000\167\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\094\000\168\001\095\000\173\001\000\000\
\\094\000\168\001\095\000\174\001\000\000\
\\000\000\
\\094\000\168\001\095\000\176\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\083\001\074\000\183\001\076\000\129\000\
\\077\000\128\000\078\000\127\000\079\000\126\000\080\000\125\000\
\\081\000\124\000\082\000\123\000\083\000\122\000\084\000\121\000\
\\085\000\120\000\086\000\119\000\087\000\118\000\088\000\117\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\086\000\119\000\087\000\184\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\062\000\132\001\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\160\000\037\000\159\000\
\\038\000\137\001\039\000\157\000\059\000\114\001\061\000\136\001\
\\062\000\022\001\069\000\003\000\070\000\002\000\094\000\001\000\000\000\
\\009\000\118\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\091\000\189\001\000\000\
\\000\000\
\\072\000\131\000\073\000\190\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\160\000\037\000\159\000\
\\038\000\191\001\039\000\157\000\069\000\003\000\070\000\002\000\
\\094\000\001\000\000\000\
\\000\000\
\\072\000\131\000\073\000\134\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\022\000\195\001\023\000\032\001\024\000\031\001\025\000\030\001\
\\026\000\029\001\027\000\028\001\072\000\131\000\073\000\163\000\
\\076\000\129\000\077\000\128\000\078\000\127\000\079\000\126\000\
\\080\000\125\000\081\000\124\000\082\000\123\000\083\000\122\000\
\\084\000\121\000\085\000\120\000\086\000\119\000\087\000\118\000\
\\088\000\117\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\098\000\199\001\102\000\198\001\000\000\
\\041\000\171\000\042\000\202\001\043\000\201\001\044\000\200\001\
\\045\000\169\000\072\000\168\000\073\000\167\000\076\000\129\000\
\\077\000\128\000\078\000\127\000\079\000\126\000\080\000\125\000\
\\081\000\124\000\082\000\123\000\083\000\122\000\084\000\121\000\
\\085\000\120\000\086\000\119\000\087\000\118\000\088\000\117\000\
\\089\000\116\000\090\000\115\000\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\054\000\208\001\072\000\131\000\073\000\207\001\076\000\129\000\
\\077\000\128\000\078\000\127\000\079\000\126\000\080\000\125\000\
\\081\000\124\000\082\000\123\000\083\000\122\000\084\000\121\000\
\\085\000\120\000\086\000\119\000\087\000\118\000\088\000\117\000\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\086\000\119\000\087\000\209\001\088\000\248\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\059\000\054\000\060\000\070\001\063\000\069\001\064\000\214\001\
\\067\000\050\000\000\000\
\\072\000\131\000\073\000\215\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\094\000\168\001\095\000\216\001\000\000\
\\000\000\
\\000\000\
\\094\000\168\001\095\000\217\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\218\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\092\000\219\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\022\000\221\001\023\000\032\001\024\000\031\001\025\000\030\001\
\\026\000\029\001\027\000\028\001\072\000\131\000\073\000\163\000\
\\076\000\129\000\077\000\128\000\078\000\127\000\079\000\126\000\
\\080\000\125\000\081\000\124\000\082\000\123\000\083\000\122\000\
\\084\000\121\000\085\000\120\000\086\000\119\000\087\000\118\000\
\\088\000\117\000\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\124\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\097\000\222\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\099\000\226\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\041\000\171\000\042\000\202\001\044\000\230\001\045\000\169\000\
\\072\000\168\000\073\000\167\000\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\072\000\131\000\073\000\232\001\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\052\000\233\001\053\000\154\001\072\000\153\001\088\000\152\001\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\018\000\058\001\019\000\236\001\000\000\
\\041\000\171\000\042\000\237\001\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\102\000\244\001\104\000\243\001\105\000\242\001\106\000\241\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\046\000\251\001\047\000\250\001\048\000\249\001\049\000\248\001\000\000\
\\000\000\
\\000\000\
\\055\000\001\002\056\000\000\002\057\000\255\001\072\000\254\001\
\\088\000\152\001\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\072\000\131\000\073\000\002\002\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\041\000\171\000\042\000\003\002\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\100\000\006\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\048\000\012\002\049\000\248\001\000\000\
\\041\000\171\000\042\000\013\002\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\046\000\014\002\047\000\250\001\048\000\249\001\049\000\248\001\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\017\002\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\058\000\018\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\041\000\171\000\042\000\023\002\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\102\000\244\001\104\000\243\001\105\000\024\002\106\000\241\001\000\000\
\\102\000\244\001\104\000\243\001\106\000\025\002\000\000\
\\072\000\131\000\073\000\026\002\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\006\000\012\000\007\000\011\000\010\000\010\000\012\000\009\000\
\\013\000\008\000\014\000\007\000\020\000\175\000\028\000\174\000\
\\035\000\028\002\036\000\172\000\041\000\171\000\042\000\170\000\
\\045\000\169\000\069\000\003\000\070\000\002\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\166\000\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\030\002\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\000\000\
\\056\000\032\002\057\000\255\001\072\000\254\001\088\000\152\001\
\\089\000\116\000\090\000\115\000\102\000\114\000\000\000\
\\018\000\058\001\019\000\033\002\000\000\
\\000\000\
\\000\000\
\\101\000\035\002\000\000\
\\000\000\
\\000\000\
\\102\000\038\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\041\000\171\000\042\000\040\002\045\000\169\000\072\000\168\000\
\\073\000\167\000\076\000\129\000\077\000\128\000\078\000\127\000\
\\079\000\126\000\080\000\125\000\081\000\124\000\082\000\123\000\
\\083\000\122\000\084\000\121\000\085\000\120\000\086\000\119\000\
\\087\000\118\000\088\000\117\000\089\000\116\000\090\000\115\000\
\\094\000\037\001\102\000\114\000\000\000\
\\000\000\
\\000\000\
\\102\000\042\002\103\000\041\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\072\000\131\000\073\000\045\002\076\000\129\000\077\000\128\000\
\\078\000\127\000\079\000\126\000\080\000\125\000\081\000\124\000\
\\082\000\123\000\083\000\122\000\084\000\121\000\085\000\120\000\
\\086\000\119\000\087\000\118\000\088\000\117\000\089\000\116\000\
\\090\000\115\000\102\000\114\000\000\000\
\\102\000\042\002\103\000\046\002\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\"
val numstates = 561
val numrules = 309
val s = Unsynchronized.ref "" and index = Unsynchronized.ref 0
val string_to_int = fn () => 
let val i = !index
in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
end
val string_to_list = fn s' =>
    let val len = String.size s'
        fun f () =
           if !index < len then string_to_int() :: f()
           else nil
   in index := 0; s := s'; f ()
   end
val string_to_pairlist = fn (conv_key,conv_entry) =>
     let fun f () =
         case string_to_int()
         of 0 => EMPTY
          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
     in f
     end
val string_to_pairlist_default = fn (conv_key,conv_entry) =>
    let val conv_row = string_to_pairlist(conv_key,conv_entry)
    in fn () =>
       let val default = conv_entry(string_to_int())
           val row = conv_row()
       in (row,default)
       end
   end
val string_to_table = fn (convert_row,s') =>
    let val len = String.size s'
        fun f ()=
           if !index < len then convert_row() :: f()
           else nil
     in (s := s'; index := 0; f ())
     end
local
  val memo = Array.array(numstates+numrules,ERROR)
  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
       fun f i =
            if i=numstates then g i
            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
          in f 0 handle Subscript => ()
          end
in
val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
end
val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
val actionRowNumbers = string_to_list actionRowNumbers
val actionT = let val actionRowLookUp=
let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
in Array.fromList(map actionRowLookUp actionRowNumbers)
end
in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
numStates=numstates,initialState=STATE 0}
end
end
local open Header in
type pos = SourcePos.t
type arg =  ( SourceFile.t * Proof.context ) 
structure MlyValue = 
struct
datatype svalue = VOID' | ntVOID of unit ->  unit
 | STRING_LITERAL of unit ->  (string)
 | NUMERIC_CONSTANT of unit ->  (Absyn.numliteral_info)
 | TYPEID of unit ->  (string) | ID of unit ->  (string)
 | calls_block of unit ->  (string wrap list option)
 | namedstringexplist1 of unit ->  (namedstringexp list)
 | namedstringexplist of unit ->  (namedstringexp list)
 | namedstringexp of unit ->  (namedstringexp)
 | stringlist1 of unit ->  (string list)
 | cstring_literal of unit ->  (string wrap)
 | asmmod3 of unit ->  (string list)
 | asmmod2 of unit ->  (namedstringexp list*string list)
 | asmmod1 of unit ->  (namedstringexp list*namedstringexp list*string list)
 | asmblock of unit ->  (asmblock)
 | attribute_parameter_list1 of unit ->  (expr list)
 | attribute_list of unit ->  (gcc_attribute list)
 | maybe_attribute_specifier of unit ->  (gcc_attribute list wrap)
 | attribute_specifier of unit ->  (gcc_attribute list wrap)
 | attribute of unit ->  (gcc_attribute)
 | fieldlist of unit ->  (string list)
 | idlist of unit ->  (string wrap list)
 | constant of unit ->  (literalconstant)
 | primary_expression of unit ->  (expr)
 | postfix_expression of unit ->  (expr)
 | cast_expression of unit ->  (expr)
 | unary_expression of unit ->  (expr)
 | multiplicative_expression of unit ->  (expr)
 | shift_expression of unit ->  (expr)
 | additive_expression of unit ->  (expr)
 | relational_expression of unit ->  (expr)
 | equality_expression of unit ->  (expr)
 | AND_expression of unit ->  (expr)
 | exclusive_OR_expression of unit ->  (expr)
 | inclusive_OR_expression of unit ->  (expr)
 | logical_OR_expression of unit ->  (expr)
 | logical_AND_expression of unit ->  (expr)
 | opt_rexpr_list of unit ->  (expr list wrap)
 | rexpr_list of unit ->  (expr list wrap)
 | rexpression of unit ->  (expr) | lexpression of unit ->  (expr)
 | struct_id of unit ->  (string wrap)
 | struct_or_union_specifier of unit ->  (struct_or_union_specifier)
 | type_specifier of unit ->  (type_specifier)
 | asm_declarator_mod of unit ->  (unit)
 | direct_declarator of unit ->  (addecl wrap)
 | init_declarator_list of unit ->  ( ( addecl wrap * initializer option )  wrap list)
 | init_declarator of unit ->  ( ( addecl wrap * initializer option )  wrap)
 | struct_declarator_list of unit ->  ( ( addecl wrap * expr option )  list wrap)
 | struct_declarator of unit ->  ( ( addecl wrap * expr option )  wrap)
 | direct_abstract_declarator of unit ->  (adecl)
 | abstract_declarator of unit ->  (adecl)
 | declarator of unit ->  (addecl wrap) | pointer of unit ->  (adecl)
 | assignop of unit ->  (binoptype option)
 | opt_for3_exprbase of unit ->  (statement)
 | opt_for3_expr0 of unit ->  (statement list)
 | opt_for3_expr of unit ->  (statement)
 | opt_for2_expr of unit ->  (expr)
 | opt_for1_exprbase of unit ->  (statement)
 | opt_for1_expr0 of unit ->  (statement list)
 | opt_for1_expr of unit ->  (statement)
 | opt_for1_bitem of unit ->  (block_item list)
 | label of unit ->  (expr option wrap)
 | labellist of unit ->  (expr option wrap list wrap)
 | switchcase of unit ->  ( ( expr option wrap list wrap * block_item list ) )
 | switchcase_list of unit ->  ( ( expr option wrap list wrap * block_item list )  list)
 | statement_label of unit ->  (string wrap)
 | statement_list1 of unit ->  (statement list)
 | statement_list of unit ->  (statement list)
 | statement of unit ->  (statement)
 | compound_statement of unit ->  (block_item list wrap)
 | function_definition of unit ->  (ext_decl)
 | parameter_list1 of unit ->  ( ( expr ctype  * string wrap option )  wrap list wrap)
 | parameter_list of unit ->  ( ( expr ctype * string wrap option )  wrap list wrap)
 | parameter_declaration of unit ->  ( ( expr ctype * string wrap option )  wrap)
 | block_item of unit ->  (block_item list)
 | block_item_list of unit ->  (block_item list)
 | type_name of unit ->  (expr ctype wrap)
 | integral_type of unit ->  (expr inttype wrap)
 | elementary_type of unit ->  (expr ctype)
 | type_definition of unit ->  (declaration)
 | struct_declaration of unit ->  (struct_fields wrap*struct_id_decl wrap list)
 | struct_declaration_list of unit ->  (struct_fields wrap*struct_id_decl wrap list)
 | declaration of unit ->  (declaration wrap list)
 | designator of unit ->  (designator)
 | designator_list of unit ->  (designator list)
 | designation of unit ->  (designator list)
 | initializer of unit ->  (initializer wrap)
 | dinitializer of unit ->  ( ( designator list * initializer ) )
 | initializer_list of unit ->  ( ( designator list * initializer )  list)
 | specifier_qualifier_list of unit ->  (decl_specifier list wrap)
 | declaration_specifiers of unit ->  (decl_specifier list wrap)
 | invariant_option of unit ->  (string wrap option)
 | invariant of unit ->  (string wrap)
 | modlist of unit ->  (string wrap list)
 | rel_spec of unit ->  (string wrap)
 | fnspecs of unit ->  (string wrap)
 | special_function_specs of unit ->  (fnspec wrap list wrap)
 | special_function_spec of unit ->  (fnspec wrap)
 | function_specifiers of unit ->  (fnspec wrap list wrap)
 | type_qualifier_list of unit ->  (type_qualifier wrap list)
 | type_qualifier of unit ->  (type_qualifier wrap)
 | enumerator of unit ->  ( ( string wrap * expr option ) )
 | enumerator_list of unit ->  ( ( string wrap * expr option )  list)
 | enum_specifier of unit ->  (enum_specifier)
 | storage_class_specifier of unit ->  (storage_class_specifier wrap)
 | optvolatile of unit ->  (bool)
 | optfnspec of unit ->  (string option wrap)
 | external_declaration of unit ->  (ext_decl list)
 | translation_unit of unit ->  (ext_decl list)
 | begin of unit ->  (ext_decl list)
end
type svalue = MlyValue.svalue
type result = ext_decl list
end
structure EC=
struct
open LrTable
val is_keyword =
fn (T 49) => true | (T 37) => true | (T 38) => true | (T 35) => true
 | (T 76) => true | (T 39) => true | (T 36) => true | (T 62) => true
 | (T 64) => true | (T 65) => true | (T 66) => true | (T 68) => true
 | (T 67) => true | (T 70) => true | (T 78) => true | (T 11) => true
 | (T 6) => true | (T 7) => true | _ => false
val preferred_change = 
(nil
,(T 11) :: nil
)::
nil
val noShift = 
fn (T 0) => true | _ => false
val showTerminal =
fn (T 0) => "EOF"
  | (T 1) => "YSTAR"
  | (T 2) => "SLASH"
  | (T 3) => "MOD"
  | (T 4) => "LPAREN"
  | (T 5) => "RPAREN"
  | (T 6) => "LCURLY"
  | (T 7) => "RCURLY"
  | (T 8) => "LBRACKET"
  | (T 9) => "RBRACKET"
  | (T 10) => "YCOMMA"
  | (T 11) => "YSEMI"
  | (T 12) => "YCOLON"
  | (T 13) => "QMARK"
  | (T 14) => "YEQ"
  | (T 15) => "YDOT"
  | (T 16) => "YPLUS"
  | (T 17) => "YMINUS"
  | (T 18) => "YAND"
  | (T 19) => "YNOT"
  | (T 20) => "YAMPERSAND"
  | (T 21) => "YBITNOT"
  | (T 22) => "PLUSPLUS"
  | (T 23) => "MINUSMINUS"
  | (T 24) => "PLUSEQ"
  | (T 25) => "MINUSEQ"
  | (T 26) => "BANDEQ"
  | (T 27) => "BOREQ"
  | (T 28) => "MULEQ"
  | (T 29) => "DIVEQ"
  | (T 30) => "MODEQ"
  | (T 31) => "BXOREQ"
  | (T 32) => "LSHIFTEQ"
  | (T 33) => "RSHIFTEQ"
  | (T 34) => "YENUM"
  | (T 35) => "YIF"
  | (T 36) => "YELSE"
  | (T 37) => "YWHILE"
  | (T 38) => "YDO"
  | (T 39) => "YRETURN"
  | (T 40) => "YBREAK"
  | (T 41) => "YCONTINUE"
  | (T 42) => "YGOTO"
  | (T 43) => "YFOR"
  | (T 44) => "SWITCH"
  | (T 45) => "CASE"
  | (T 46) => "DEFAULT"
  | (T 47) => "YSIZEOF"
  | (T 48) => "YTYPEOF"
  | (T 49) => "YOFFSETOF"
  | (T 50) => "LOGICALOR"
  | (T 51) => "LOGICALAND"
  | (T 52) => "BITWISEOR"
  | (T 53) => "BITWISEXOR"
  | (T 54) => "EQUALS"
  | (T 55) => "NOTEQUALS"
  | (T 56) => "YLE"
  | (T 57) => "YGE"
  | (T 58) => "YLESS"
  | (T 59) => "YGREATER"
  | (T 60) => "LEFTSHIFT"
  | (T 61) => "RIGHTSHIFT"
  | (T 62) => "INT"
  | (T 63) => "BOOL"
  | (T 64) => "CHAR"
  | (T 65) => "LONG"
  | (T 66) => "INT128"
  | (T 67) => "SHORT"
  | (T 68) => "BITINT"
  | (T 69) => "SIGNED"
  | (T 70) => "UNSIGNED"
  | (T 71) => "VOID"
  | (T 72) => "ARROW"
  | (T 73) => "ID"
  | (T 74) => "TYPEID"
  | (T 75) => "NUMERIC_CONSTANT"
  | (T 76) => "STRUCT"
  | (T 77) => "UNION"
  | (T 78) => "TYPEDEF"
  | (T 79) => "EXTERN"
  | (T 80) => "CONST"
  | (T 81) => "VOLATILE"
  | (T 82) => "RESTRICT"
  | (T 83) => "INVARIANT"
  | (T 84) => "INLINE"
  | (T 85) => "STATIC"
  | (T 86) => "NORETURN"
  | (T 87) => "THREAD_LOCAL"
  | (T 88) => "AUTO"
  | (T 89) => "FNSPEC"
  | (T 90) => "RELSPEC"
  | (T 91) => "AUXUPD"
  | (T 92) => "GHOSTUPD"
  | (T 93) => "MODIFIES"
  | (T 94) => "CALLS"
  | (T 95) => "OWNED_BY"
  | (T 96) => "SPEC_BEGIN"
  | (T 97) => "SPEC_END"
  | (T 98) => "DONT_TRANSLATE"
  | (T 99) => "STRING_LITERAL"
  | (T 100) => "SPEC_BLOCKEND"
  | (T 101) => "GCC_ATTRIBUTE"
  | (T 102) => "YASM"
  | (T 103) => "YREGISTER"
  | _ => "bogus-term"
local open Header in
val errtermvalue=
fn _ => MlyValue.VOID'
end
val terms = (T 0) :: (T 1) :: (T 2) :: (T 3) :: (T 4) :: (T 5) :: (T 6
) :: (T 7) :: (T 8) :: (T 9) :: (T 10) :: (T 11) :: (T 12) :: (T 13)
 :: (T 14) :: (T 15) :: (T 16) :: (T 17) :: (T 18) :: (T 19) :: (T 20)
 :: (T 21) :: (T 22) :: (T 23) :: (T 24) :: (T 25) :: (T 26) :: (T 27)
 :: (T 28) :: (T 29) :: (T 30) :: (T 31) :: (T 32) :: (T 33) :: (T 34)
 :: (T 35) :: (T 36) :: (T 37) :: (T 38) :: (T 39) :: (T 40) :: (T 41)
 :: (T 42) :: (T 43) :: (T 44) :: (T 45) :: (T 46) :: (T 47) :: (T 48)
 :: (T 49) :: (T 50) :: (T 51) :: (T 52) :: (T 53) :: (T 54) :: (T 55)
 :: (T 56) :: (T 57) :: (T 58) :: (T 59) :: (T 60) :: (T 61) :: (T 62)
 :: (T 63) :: (T 64) :: (T 65) :: (T 66) :: (T 67) :: (T 68) :: (T 69)
 :: (T 70) :: (T 71) :: (T 72) :: (T 76) :: (T 77) :: (T 78) :: (T 79)
 :: (T 80) :: (T 81) :: (T 82) :: (T 83) :: (T 84) :: (T 85) :: (T 86)
 :: (T 87) :: (T 88) :: (T 89) :: (T 90) :: (T 91) :: (T 92) :: (T 93)
 :: (T 94) :: (T 95) :: (T 96) :: (T 97) :: (T 98) :: (T 100) :: (T 
101) :: (T 102) :: (T 103) :: nil
end
structure Actions =
struct 
type int = Int.int
exception mlyAction of int
local open Header in
val actions = 
fn (i392:int,defaultPos,stack,
    (source, ctxt):arg) =>
case (i392,stack)
of (0,(_,(MlyValue.translation_unit translation_unit1,
translation_unit1left,translation_unit1right))::rest671) => let val 
result=MlyValue.begin(fn _ => let val translation_unit as 
translation_unit1=translation_unit1 ()
 in (translation_unit) end
)
 in (LrTable.NT 0,(result,translation_unit1left,translation_unit1right
),rest671) end
| (1,(_,(MlyValue.external_declaration external_declaration1,
external_declaration1left,external_declaration1right))::rest671) => 
let val result=MlyValue.translation_unit(fn _ => let val 
external_declaration as external_declaration1=external_declaration1 ()
 in (external_declaration) end
)
 in (LrTable.NT 1,(result,external_declaration1left,
external_declaration1right),rest671) end
| (2,(_,(MlyValue.translation_unit translation_unit1,_,
translation_unit1right))::(_,(MlyValue.external_declaration 
external_declaration1,external_declaration1left,_))::rest671) => let 
val result=MlyValue.translation_unit(fn _ => let val 
external_declaration as external_declaration1=external_declaration1 ()
val translation_unit as translation_unit1=translation_unit1 ()
 in (external_declaration @ translation_unit) end
)
 in (LrTable.NT 1,(result,external_declaration1left,
translation_unit1right),rest671) end
| (3,(_,(MlyValue.function_definition function_definition1,
function_definition1left,function_definition1right))::rest671) => let 
val result=MlyValue.external_declaration(fn _ => let val 
function_definition as function_definition1=function_definition1 ()
 in ([function_definition]) end
)
 in (LrTable.NT 2,(result,function_definition1left,
function_definition1right),rest671) end
| (4,(_,(MlyValue.declaration declaration1,declaration1left,
declaration1right))::rest671) => let val result=
MlyValue.external_declaration(fn _ => let val declaration as 
declaration1=declaration1 ()
 in (map Decl declaration) end
)
 in (LrTable.NT 2,(result,declaration1left,declaration1right),rest671)
 end
| (5,(_,(_,YSEMI1left,YSEMI1right))::rest671) => let val result=
MlyValue.external_declaration(fn _ => ([]))
 in (LrTable.NT 2,(result,YSEMI1left,YSEMI1right),rest671) end
| (6,(_,(_,TYPEDEFleft as TYPEDEF1left,TYPEDEFright as TYPEDEF1right))
::rest671) => let val result=MlyValue.storage_class_specifier(fn _ => 
(wrap(TypeDef, TYPEDEFleft, TYPEDEFright)))
 in (LrTable.NT 5,(result,TYPEDEF1left,TYPEDEF1right),rest671) end
| (7,(_,(_,EXTERNleft as EXTERN1left,EXTERNright as EXTERN1right))::
rest671) => let val result=MlyValue.storage_class_specifier(fn _ => (
wrap(Extern, EXTERNleft, EXTERNright)))
 in (LrTable.NT 5,(result,EXTERN1left,EXTERN1right),rest671) end
| (8,(_,(_,STATICleft as STATIC1left,STATICright as STATIC1right))::
rest671) => let val result=MlyValue.storage_class_specifier(fn _ => (
wrap(Static, STATICleft, STATICright)))
 in (LrTable.NT 5,(result,STATIC1left,STATIC1right),rest671) end
| (9,(_,(_,YREGISTERleft as YREGISTER1left,YREGISTERright as 
YREGISTER1right))::rest671) => let val result=
MlyValue.storage_class_specifier(fn _ => (
wrap(Register, YREGISTERleft, YREGISTERright)))
 in (LrTable.NT 5,(result,YREGISTER1left,YREGISTER1right),rest671) end
| (10,(_,(_,AUTOleft as AUTO1left,AUTOright as AUTO1right))::rest671)
 => let val result=MlyValue.storage_class_specifier(fn _ => (
wrap(Auto, AUTOleft, AUTOright)))
 in (LrTable.NT 5,(result,AUTO1left,AUTO1right),rest671) end
| (11,(_,(_,THREAD_LOCALleft as THREAD_LOCAL1left,THREAD_LOCALright
 as THREAD_LOCAL1right))::rest671) => let val result=
MlyValue.storage_class_specifier(fn _ => (
wrap(Thread_Local, THREAD_LOCALleft,
                                             THREAD_LOCALright)
))
 in (LrTable.NT 5,(result,THREAD_LOCAL1left,THREAD_LOCAL1right),
rest671) end
| (12,(_,(_,INLINEleft as INLINE1left,INLINEright as INLINE1right))::
rest671) => let val result=MlyValue.function_specifiers(fn _ => (
wrap([], INLINEleft, INLINEright)))
 in (LrTable.NT 11,(result,INLINE1left,INLINE1right),rest671) end
| (13,(_,(_,NORETURNleft as NORETURN1left,NORETURNright as 
NORETURN1right))::rest671) => let val result=
MlyValue.function_specifiers(fn _ => (
wrap([wrap(gcc_attribs [GCC_AttribID "noreturn"],
                            NORETURNleft, NORETURNright)],
                      NORETURNleft, NORETURNright)
))
 in (LrTable.NT 11,(result,NORETURN1left,NORETURN1right),rest671) end
| (14,(_,(_,_,SPEC_BLOCKEND1right))::(_,(
MlyValue.special_function_specs special_function_specs1,
special_function_specs1left,_))::rest671) => let val result=
MlyValue.function_specifiers(fn _ => let val special_function_specs
 as special_function_specs1=special_function_specs1 ()
 in (special_function_specs) end
)
 in (LrTable.NT 11,(result,special_function_specs1left,
SPEC_BLOCKEND1right),rest671) end
| (15,(_,(MlyValue.attribute_specifier attribute_specifier1,
attribute_specifier1left,attribute_specifier1right))::rest671) => let 
val result=MlyValue.function_specifiers(fn _ => let val 
attribute_specifier as attribute_specifier1=attribute_specifier1 ()
 in (
wrap ([apnode gcc_attribs attribute_specifier],
                       left attribute_specifier,
                       right attribute_specifier)
) end
)
 in (LrTable.NT 11,(result,attribute_specifier1left,
attribute_specifier1right),rest671) end
| (16,(_,(_,_,RPAREN2right))::_::(_,(MlyValue.attribute_list 
attribute_list1,_,_))::_::_::(_,(_,GCC_ATTRIBUTEleft as 
GCC_ATTRIBUTE1left,_))::rest671) => let val result=
MlyValue.attribute_specifier(fn _ => let val attribute_list as 
attribute_list1=attribute_list1 ()
 in (wrap(attribute_list, GCC_ATTRIBUTEleft, RPAREN2right)) end
)
 in (LrTable.NT 93,(result,GCC_ATTRIBUTE1left,RPAREN2right),rest671)
 end
| (17,(_,(_,_,RBRACKET2right))::_::(_,(MlyValue.attribute_list 
attribute_list1,_,_))::_::(_,(_,LBRACKET1left,_))::rest671) => let 
val result=MlyValue.attribute_specifier(fn _ => let val attribute_list
 as attribute_list1=attribute_list1 ()
 in (wrap(attribute_list, LBRACKET1left, RBRACKET2right)) end
)
 in (LrTable.NT 93,(result,LBRACKET1left,RBRACKET2right),rest671) end
| (18,(_,(_,_,SPEC_BLOCKENDright as SPEC_BLOCKEND1right))::(_,(
MlyValue.ID ID1,_,_))::(_,(_,OWNED_BYleft as OWNED_BY1left,_))::
rest671) => let val result=MlyValue.attribute_specifier(fn _ => let 
val ID as ID1=ID1 ()
 in (wrap([OWNED_BY ID], OWNED_BYleft, SPEC_BLOCKENDright)) end
)
 in (LrTable.NT 93,(result,OWNED_BY1left,SPEC_BLOCKEND1right),rest671)
 end
| (19,rest671) => let val result=MlyValue.attribute_list(fn _ => ([]))
 in (LrTable.NT 95,(result,defaultPos,defaultPos),rest671) end
| (20,(_,(MlyValue.attribute attribute1,attribute1left,attribute1right
))::rest671) => let val result=MlyValue.attribute_list(fn _ => let 
val attribute as attribute1=attribute1 ()
 in ([attribute]) end
)
 in (LrTable.NT 95,(result,attribute1left,attribute1right),rest671)
 end
| (21,(_,(MlyValue.attribute_list attribute_list1,_,
attribute_list1right))::_::(_,(MlyValue.attribute attribute1,
attribute1left,_))::rest671) => let val result=MlyValue.attribute_list
(fn _ => let val attribute as attribute1=attribute1 ()
val attribute_list as attribute_list1=attribute_list1 ()
 in (attribute :: attribute_list) end
)
 in (LrTable.NT 95,(result,attribute1left,attribute_list1right),
rest671) end
| (22,rest671) => let val result=MlyValue.maybe_attribute_specifier(
fn _ => (bogwrap []))
 in (LrTable.NT 94,(result,defaultPos,defaultPos),rest671) end
| (23,(_,(MlyValue.attribute_specifier attribute_specifier1,
attribute_specifier1left,attribute_specifier1right))::rest671) => let 
val result=MlyValue.maybe_attribute_specifier(fn _ => let val 
attribute_specifier as attribute_specifier1=attribute_specifier1 ()
 in (attribute_specifier) end
)
 in (LrTable.NT 94,(result,attribute_specifier1left,
attribute_specifier1right),rest671) end
| (24,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 
result=MlyValue.attribute(fn _ => let val ID as ID1=ID1 ()
 in (
let val idstr = if String.isPrefix "__" ID andalso
                                    String.sub(ID,size ID - 1) = #"_" andalso
                                    String.sub(ID,size ID - 2) = #"_" andalso
                                    size ID > 4
                                 then
                                   String.substring(ID,2,size ID - 4)
                                 else ID
                 in
                   GCC_AttribID idstr
                 end
) end
)
 in (LrTable.NT 92,(result,ID1left,ID1right),rest671) end
| (25,(_,(_,CONST1left,CONST1right))::rest671) => let val result=
MlyValue.attribute(fn _ => (GCC_AttribID "const"))
 in (LrTable.NT 92,(result,CONST1left,CONST1right),rest671) end
| (26,(_,(_,_,RPAREN1right))::_::(_,(MlyValue.ID ID1,ID1left,_))::
rest671) => let val result=MlyValue.attribute(fn _ => let val ID as 
ID1=ID1 ()
 in (GCC_AttribFn (ID, [])) end
)
 in (LrTable.NT 92,(result,ID1left,RPAREN1right),rest671) end
| (27,(_,(_,_,RPAREN1right))::(_,(MlyValue.attribute_parameter_list1 
attribute_parameter_list11,_,_))::_::(_,(MlyValue.ID ID1,ID1left,_))::
rest671) => let val result=MlyValue.attribute(fn _ => let val ID as 
ID1=ID1 ()
val attribute_parameter_list1 as attribute_parameter_list11=
attribute_parameter_list11 ()
 in (GCC_AttribFn (ID, attribute_parameter_list1)) end
)
 in (LrTable.NT 92,(result,ID1left,RPAREN1right),rest671) end
| (28,(_,(MlyValue.rexpression rexpression1,rexpression1left,
rexpression1right))::rest671) => let val result=
MlyValue.attribute_parameter_list1(fn _ => let val rexpression as 
rexpression1=rexpression1 ()
 in ([rexpression]) end
)
 in (LrTable.NT 96,(result,rexpression1left,rexpression1right),rest671
) end
| (29,(_,(MlyValue.attribute_parameter_list1 
attribute_parameter_list11,_,attribute_parameter_list11right))::_::(_,
(MlyValue.rexpression rexpression1,rexpression1left,_))::rest671) => 
let val result=MlyValue.attribute_parameter_list1(fn _ => let val 
rexpression as rexpression1=rexpression1 ()
val attribute_parameter_list1 as attribute_parameter_list11=
attribute_parameter_list11 ()
 in (rexpression :: attribute_parameter_list1) end
)
 in (LrTable.NT 96,(result,rexpression1left,
attribute_parameter_list11right),rest671) end
| (30,(_,(MlyValue.special_function_spec special_function_spec1,
special_function_spec1left,special_function_spec1right))::rest671) => 
let val result=MlyValue.special_function_specs(fn _ => let val 
special_function_spec as special_function_spec1=special_function_spec1
 ()
 in (
wrap([special_function_spec], left special_function_spec,
                      right special_function_spec)
) end
)
 in (LrTable.NT 13,(result,special_function_spec1left,
special_function_spec1right),rest671) end
| (31,(_,(MlyValue.special_function_specs special_function_specs1,_,
special_function_specs1right))::(_,(MlyValue.special_function_spec 
special_function_spec1,special_function_spec1left,_))::rest671) => 
let val result=MlyValue.special_function_specs(fn _ => let val 
special_function_spec as special_function_spec1=special_function_spec1
 ()
val special_function_specs as special_function_specs1=
special_function_specs1 ()
 in (
wrap (special_function_spec :: node special_function_specs,
                       left special_function_spec,
                       right special_function_specs)
) end
)
 in (LrTable.NT 13,(result,special_function_spec1left,
special_function_specs1right),rest671) end
| (32,(_,(MlyValue.idlist idlist1,_,idlist1right))::(_,(_,MODIFIESleft
 as MODIFIES1left,MODIFIESright))::rest671) => let val result=
MlyValue.special_function_spec(fn _ => let val idlist as idlist1=
idlist1 ()
 in (
case idlist of
                     [] => wrap(fn_modifies [], MODIFIESleft, MODIFIESright)
                   | _ => wrap(fn_modifies (map node idlist),
                               MODIFIESleft,
                               right (List.last idlist))
) end
)
 in (LrTable.NT 12,(result,MODIFIES1left,idlist1right),rest671) end
| (33,(_,(MlyValue.fnspecs fnspecs1,_,fnspecs1right))::(_,(_,
FNSPECleft as FNSPEC1left,_))::rest671) => let val result=
MlyValue.special_function_spec(fn _ => let val fnspecs as fnspecs1=
fnspecs1 ()
 in (wrap(fnspec fnspecs, FNSPECleft, right fnspecs)) end
)
 in (LrTable.NT 12,(result,FNSPEC1left,fnspecs1right),rest671) end
| (34,(_,(MlyValue.rel_spec rel_spec1,_,rel_spec1right))::(_,(_,
RELSPECleft as RELSPEC1left,_))::rest671) => let val result=
MlyValue.special_function_spec(fn _ => let val rel_spec as rel_spec1=
rel_spec1 ()
 in (wrap(relspec rel_spec, RELSPECleft, right rel_spec)) end
)
 in (LrTable.NT 12,(result,RELSPEC1left,rel_spec1right),rest671) end
| (35,(_,(_,DONT_TRANSLATEleft as DONT_TRANSLATE1left,
DONT_TRANSLATEright as DONT_TRANSLATE1right))::rest671) => let val 
result=MlyValue.special_function_spec(fn _ => (
wrap(didnt_translate, DONT_TRANSLATEleft, DONT_TRANSLATEright)))
 in (LrTable.NT 12,(result,DONT_TRANSLATE1left,DONT_TRANSLATE1right),
rest671) end
| (36,(_,(MlyValue.STRING_LITERAL STRING_LITERAL1,_,
STRING_LITERALright as STRING_LITERAL1right))::_::(_,(MlyValue.ID ID1,
IDleft as ID1left,_))::rest671) => let val result=MlyValue.fnspecs(fn 
_ => let val ID as ID1=ID1 ()
val STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (
wrap(ID ^ ": \"" ^ STRING_LITERAL ^ "\"", IDleft,
                      STRING_LITERALright)
) end
)
 in (LrTable.NT 14,(result,ID1left,STRING_LITERAL1right),rest671) end
| (37,(_,(MlyValue.fnspecs fnspecs1,_,fnspecs1right))::(_,(
MlyValue.STRING_LITERAL STRING_LITERAL1,_,_))::_::(_,(MlyValue.ID ID1,
IDleft as ID1left,_))::rest671) => let val result=MlyValue.fnspecs(fn 
_ => let val ID as ID1=ID1 ()
val STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
val fnspecs as fnspecs1=fnspecs1 ()
 in (
wrap((ID ^ ": \"" ^ STRING_LITERAL ^ "\"\n" ^ node fnspecs,
                      IDleft,
                      right fnspecs))
) end
)
 in (LrTable.NT 14,(result,ID1left,fnspecs1right),rest671) end
| (38,(_,(MlyValue.STRING_LITERAL STRING_LITERAL1,STRING_LITERALleft
 as STRING_LITERAL1left,STRING_LITERALright as STRING_LITERAL1right))
::rest671) => let val result=MlyValue.rel_spec(fn _ => let val 
STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (
wrap("\"" ^ STRING_LITERAL ^ "\"", STRING_LITERALleft,
                       STRING_LITERALright)
) end
)
 in (LrTable.NT 15,(result,STRING_LITERAL1left,STRING_LITERAL1right),
rest671) end
| (39,rest671) => let val result=MlyValue.idlist(fn _ => ([]))
 in (LrTable.NT 90,(result,defaultPos,defaultPos),rest671) end
| (40,(_,(MlyValue.idlist idlist1,_,idlist1right))::(_,(MlyValue.ID 
ID1,IDleft as ID1left,IDright))::rest671) => let val result=
MlyValue.idlist(fn _ => let val ID as ID1=ID1 ()
val idlist as idlist1=idlist1 ()
 in (wrap(ID,IDleft,IDright) :: idlist) end
)
 in (LrTable.NT 90,(result,ID1left,idlist1right),rest671) end
| (41,(_,(MlyValue.idlist idlist1,_,idlist1right))::(_,(_,_,
RBRACKETright))::_::(_,(_,LBRACKETleft as LBRACKET1left,_))::rest671)
 => let val result=MlyValue.idlist(fn _ => let val idlist as idlist1=
idlist1 ()
 in (
wrap(NameGeneration.phantom_state_name, LBRACKETleft,
                      RBRACKETright) :: idlist
) end
)
 in (LrTable.NT 90,(result,LBRACKET1left,idlist1right),rest671) end
| (42,(_,(_,_,YSEMI1right))::(_,(MlyValue.declaration_specifiers 
declaration_specifiers1,declaration_specifiers1left,_))::rest671) => 
let val result=MlyValue.declaration(fn _ => let val 
declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
 in (empty_declarator ctxt (node declaration_specifiers)) end
)
 in (LrTable.NT 27,(result,declaration_specifiers1left,YSEMI1right),
rest671) end
| (43,(_,(_,_,YSEMI1right))::(_,(MlyValue.init_declarator_list 
init_declarator_list1,_,_))::(_,(MlyValue.declaration_specifiers 
declaration_specifiers1,declaration_specifiers1left,_))::rest671) => 
let val result=MlyValue.declaration(fn _ => let val 
declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
val init_declarator_list as init_declarator_list1=
init_declarator_list1 ()
 in (make_declaration ctxt declaration_specifiers init_declarator_list
) end
)
 in (LrTable.NT 27,(result,declaration_specifiers1left,YSEMI1right),
rest671) end
| (44,(_,(MlyValue.storage_class_specifier storage_class_specifier1,
storage_class_specifier1left,storage_class_specifier1right))::rest671)
 => let val result=MlyValue.declaration_specifiers(fn _ => let val 
storage_class_specifier as storage_class_specifier1=
storage_class_specifier1 ()
 in (
wrap([Storage storage_class_specifier],
                      left storage_class_specifier,
                      right storage_class_specifier)
) end
)
 in (LrTable.NT 19,(result,storage_class_specifier1left,
storage_class_specifier1right),rest671) end
| (45,(_,(MlyValue.declaration_specifiers declaration_specifiers1,_,
declaration_specifiers1right))::(_,(MlyValue.storage_class_specifier 
storage_class_specifier1,storage_class_specifier1left,_))::rest671)
 => let val result=MlyValue.declaration_specifiers(fn _ => let val 
storage_class_specifier as storage_class_specifier1=
storage_class_specifier1 ()
val declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
 in (
wrap(Storage storage_class_specifier ::
                      node declaration_specifiers,
                      left storage_class_specifier,
                      right declaration_specifiers)
) end
)
 in (LrTable.NT 19,(result,storage_class_specifier1left,
declaration_specifiers1right),rest671) end
| (46,(_,(MlyValue.type_specifier type_specifier1,type_specifier1left,
type_specifier1right))::rest671) => let val result=
MlyValue.declaration_specifiers(fn _ => let val type_specifier as 
type_specifier1=type_specifier1 ()
 in (
wrap([TypeSpec type_specifier], tsleft type_specifier,
                      tsright type_specifier)
) end
)
 in (LrTable.NT 19,(result,type_specifier1left,type_specifier1right),
rest671) end
| (47,(_,(MlyValue.declaration_specifiers declaration_specifiers1,_,
declaration_specifiers1right))::(_,(MlyValue.type_specifier 
type_specifier1,type_specifier1left,_))::rest671) => let val result=
MlyValue.declaration_specifiers(fn _ => let val type_specifier as 
type_specifier1=type_specifier1 ()
val declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
 in (
wrap(TypeSpec type_specifier :: node declaration_specifiers,
                      tsleft type_specifier,
                      right declaration_specifiers)
) end
)
 in (LrTable.NT 19,(result,type_specifier1left,
declaration_specifiers1right),rest671) end
| (48,(_,(MlyValue.type_qualifier type_qualifier1,type_qualifier1left,
type_qualifier1right))::rest671) => let val result=
MlyValue.declaration_specifiers(fn _ => let val type_qualifier as 
type_qualifier1=type_qualifier1 ()
 in (
wrap([TypeQual type_qualifier],
                      left type_qualifier,
                      right type_qualifier)
) end
)
 in (LrTable.NT 19,(result,type_qualifier1left,type_qualifier1right),
rest671) end
| (49,(_,(MlyValue.declaration_specifiers declaration_specifiers1,_,
declaration_specifiers1right))::(_,(MlyValue.type_qualifier 
type_qualifier1,type_qualifier1left,_))::rest671) => let val result=
MlyValue.declaration_specifiers(fn _ => let val type_qualifier as 
type_qualifier1=type_qualifier1 ()
val declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
 in (
wrap(TypeQual type_qualifier :: node declaration_specifiers,
                      left type_qualifier,
                      right declaration_specifiers)
) end
)
 in (LrTable.NT 19,(result,type_qualifier1left,
declaration_specifiers1right),rest671) end
| (50,(_,(MlyValue.function_specifiers function_specifiers1,
function_specifiers1left,function_specifiers1right))::rest671) => let 
val result=MlyValue.declaration_specifiers(fn _ => let val 
function_specifiers as function_specifiers1=function_specifiers1 ()
 in (
wrap(map FunSpec (node function_specifiers),
                      left function_specifiers,
                      right function_specifiers)
) end
)
 in (LrTable.NT 19,(result,function_specifiers1left,
function_specifiers1right),rest671) end
| (51,(_,(MlyValue.declaration_specifiers declaration_specifiers1,_,
declaration_specifiers1right))::(_,(MlyValue.function_specifiers 
function_specifiers1,function_specifiers1left,_))::rest671) => let 
val result=MlyValue.declaration_specifiers(fn _ => let val 
function_specifiers as function_specifiers1=function_specifiers1 ()
val declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
 in (
wrap(map FunSpec (node function_specifiers) @
                      node declaration_specifiers,
                      left function_specifiers,
                      right declaration_specifiers)
) end
)
 in (LrTable.NT 19,(result,function_specifiers1left,
declaration_specifiers1right),rest671) end
| (52,(_,(MlyValue.compound_statement compound_statement1,_,
compound_statement1right))::(_,(MlyValue.declarator declarator1,_,
declaratorright))::(_,(MlyValue.declaration_specifiers 
declaration_specifiers1,declaration_specifiersleft as 
declaration_specifiers1left,_))::rest671) => let val result=
MlyValue.function_definition(fn _ => let val declaration_specifiers
 as declaration_specifiers1=declaration_specifiers1 ()
val declarator as declarator1=declarator1 ()
val compound_statement as compound_statement1=compound_statement1 ()
 in (
let val basetype = extract_type ctxt declaration_specifiers
             val fnspecs = extract_fnspecs (node declaration_specifiers)
             val _ =
                 case has_typedef declaration_specifiers of
                   NONE => ()
                 | SOME (l,r) =>
                    errorStr' ctxt (l, r, "Typedef illegal in function def")
             val (nm, ad, params0, attrs) = node declarator
             val params =
                 case params0 of
                   NONE => (errorStr' ctxt (left declarator,
                                      right declarator,
                                      "Function def with no params!");
                            [])
                 | SOME ps => check_names ctxt (node nm) ps
             val rettype = case (node ad) (node basetype) of
                             Function(retty, _) => retty
                           | _ => (errorStr' ctxt (left declarator,
                                             right compound_statement,
                                             "Attempted fn def with bad \
                                             \declarator");
                                   node basetype)
             val fnspecs = merge_specs [gcc_attribs attrs] fnspecs
         in
           if List.exists (fn fs => fs = didnt_translate) fnspecs then
             Decl (wrap(ExtFnDecl{rettype = rettype,
                                  params = unwrap_params params0,
                                  name = nm,
                                  specs = fnspecs},
                        declaration_specifiersleft,
                        declaratorright))
           else
             FnDefn((rettype, nm), params, fnspecs, compound_statement)
         end
) end
)
 in (LrTable.NT 39,(result,declaration_specifiers1left,
compound_statement1right),rest671) end
| (53,rest671) => let val result=MlyValue.parameter_list(fn _ => (
wrap([], defaultPos, defaultPos)))
 in (LrTable.NT 37,(result,defaultPos,defaultPos),rest671) end
| (54,(_,(MlyValue.parameter_list1 parameter_list11,
parameter_list11left,parameter_list11right))::rest671) => let val 
result=MlyValue.parameter_list(fn _ => let val parameter_list1 as 
parameter_list11=parameter_list11 ()
 in (parameter_list1) end
)
 in (LrTable.NT 37,(result,parameter_list11left,parameter_list11right)
,rest671) end
| (55,(_,(MlyValue.parameter_declaration parameter_declaration1,
parameter_declaration1left,parameter_declaration1right))::rest671) => 
let val result=MlyValue.parameter_list1(fn _ => let val 
parameter_declaration as parameter_declaration1=parameter_declaration1
 ()
 in (
wrap([parameter_declaration], left parameter_declaration,
                      right parameter_declaration)
) end
)
 in (LrTable.NT 38,(result,parameter_declaration1left,
parameter_declaration1right),rest671) end
| (56,(_,(MlyValue.parameter_list1 parameter_list11,_,
parameter_list11right))::_::(_,(MlyValue.parameter_declaration 
parameter_declaration1,parameter_declaration1left,_))::rest671) => 
let val result=MlyValue.parameter_list1(fn _ => let val 
parameter_declaration as parameter_declaration1=parameter_declaration1
 ()
val parameter_list1 as parameter_list11=parameter_list11 ()
 in (
wrap(parameter_declaration :: node parameter_list1,
                      left parameter_declaration, right parameter_list1)
) end
)
 in (LrTable.NT 38,(result,parameter_declaration1left,
parameter_list11right),rest671) end
| (57,(_,(MlyValue.declarator declarator1,_,declarator1right))::(_,(
MlyValue.declaration_specifiers declaration_specifiers1,
declaration_specifiers1left,_))::rest671) => let val result=
MlyValue.parameter_declaration(fn _ => let val declaration_specifiers
 as declaration_specifiers1=declaration_specifiers1 ()
val declarator as declarator1=declarator1 ()
 in (
let val basety = extract_type ctxt declaration_specifiers
                     val _ = wonky_pdec_check ctxt declaration_specifiers
                     val (nm, a, _, _) = node declarator
                 in
                   wrap((node a (node basety), SOME nm),
                        left declaration_specifiers,
                        right declarator)
                 end
) end
)
 in (LrTable.NT 36,(result,declaration_specifiers1left,
declarator1right),rest671) end
| (58,(_,(MlyValue.abstract_declarator abstract_declarator1,_,
abstract_declarator1right))::(_,(MlyValue.declaration_specifiers 
declaration_specifiers1,declaration_specifiers1left,_))::rest671) => 
let val result=MlyValue.parameter_declaration(fn _ => let val 
declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
val abstract_declarator as abstract_declarator1=abstract_declarator1 
()
 in (
let val basety = extract_type ctxt declaration_specifiers
                     val _ = wonky_pdec_check ctxt declaration_specifiers
                     val a = node abstract_declarator
                 in
                   wrap((a (node basety), NONE),
                        left declaration_specifiers,
                        right abstract_declarator)
                 end
) end
)
 in (LrTable.NT 36,(result,declaration_specifiers1left,
abstract_declarator1right),rest671) end
| (59,(_,(MlyValue.declaration_specifiers declaration_specifiers1,
declaration_specifiers1left,declaration_specifiers1right))::rest671)
 => let val result=MlyValue.parameter_declaration(fn _ => let val 
declaration_specifiers as declaration_specifiers1=
declaration_specifiers1 ()
 in (
let val basety = extract_type ctxt declaration_specifiers
                     val _ = wonky_pdec_check ctxt declaration_specifiers
                 in
                   wrap((node basety, NONE),
                        left declaration_specifiers,
                        right declaration_specifiers)
                 end
) end
)
 in (LrTable.NT 36,(result,declaration_specifiers1left,
declaration_specifiers1right),rest671) end
| (60,(_,(_,_,RCURLYright as RCURLY1right))::(_,(
MlyValue.block_item_list block_item_list1,_,_))::(_,(_,LCURLYleft as 
LCURLY1left,_))::rest671) => let val result=
MlyValue.compound_statement(fn _ => let val block_item_list as 
block_item_list1=block_item_list1 ()
 in (wrap(block_item_list, LCURLYleft, RCURLYright)) end
)
 in (LrTable.NT 40,(result,LCURLY1left,RCURLY1right),rest671) end
| (61,rest671) => let val result=MlyValue.block_item_list(fn _ => ([])
)
 in (LrTable.NT 34,(result,defaultPos,defaultPos),rest671) end
| (62,(_,(MlyValue.block_item_list block_item_list1,_,
block_item_list1right))::(_,(MlyValue.block_item block_item1,
block_item1left,_))::rest671) => let val result=
MlyValue.block_item_list(fn _ => let val block_item as block_item1=
block_item1 ()
val block_item_list as block_item_list1=block_item_list1 ()
 in (block_item @ block_item_list) end
)
 in (LrTable.NT 34,(result,block_item1left,block_item_list1right),
rest671) end
| (63,(_,(MlyValue.declaration declaration1,declaration1left,
declaration1right))::rest671) => let val result=MlyValue.block_item(
fn _ => let val declaration as declaration1=declaration1 ()
 in (map BI_Decl declaration) end
)
 in (LrTable.NT 35,(result,declaration1left,declaration1right),rest671
) end
| (64,(_,(MlyValue.statement statement1,statement1left,statement1right
))::rest671) => let val result=MlyValue.block_item(fn _ => let val 
statement as statement1=statement1 ()
 in ([BI_Stmt statement]) end
)
 in (LrTable.NT 35,(result,statement1left,statement1right),rest671)
 end
| (65,rest671) => let val result=MlyValue.statement_list(fn _ => ([]))
 in (LrTable.NT 42,(result,defaultPos,defaultPos),rest671) end
| (66,(_,(MlyValue.statement_list1 statement_list11,
statement_list11left,statement_list11right))::rest671) => let val 
result=MlyValue.statement_list(fn _ => let val statement_list1 as 
statement_list11=statement_list11 ()
 in (statement_list1) end
)
 in (LrTable.NT 42,(result,statement_list11left,statement_list11right)
,rest671) end
| (67,(_,(MlyValue.statement statement1,statement1left,statement1right
))::rest671) => let val result=MlyValue.statement_list1(fn _ => let 
val statement as statement1=statement1 ()
 in ([statement]) end
)
 in (LrTable.NT 43,(result,statement1left,statement1right),rest671)
 end
| (68,(_,(MlyValue.statement_list1 statement_list11,_,
statement_list11right))::(_,(MlyValue.statement statement1,
statement1left,_))::rest671) => let val result=
MlyValue.statement_list1(fn _ => let val statement as statement1=
statement1 ()
val statement_list1 as statement_list11=statement_list11 ()
 in (statement::statement_list1) end
)
 in (LrTable.NT 43,(result,statement1left,statement_list11right),
rest671) end
| (69,(_,(MlyValue.struct_declaration struct_declaration1,
struct_declaration1left,struct_declaration1right))::rest671) => let 
val result=MlyValue.struct_declaration_list(fn _ => let val 
struct_declaration as struct_declaration1=struct_declaration1 ()
 in (struct_declaration) end
)
 in (LrTable.NT 28,(result,struct_declaration1left,
struct_declaration1right),rest671) end
| (70,(_,(MlyValue.struct_declaration_list struct_declaration_list1,_,
struct_declaration_list1right))::(_,(MlyValue.struct_declaration 
struct_declaration1,struct_declaration1left,_))::rest671) => let val 
result=MlyValue.struct_declaration_list(fn _ => let val 
struct_declaration as struct_declaration1=struct_declaration1 ()
val struct_declaration_list as struct_declaration_list1=
struct_declaration_list1 ()
 in (
let val (sflds1, siddecls1) = struct_declaration
                     val (sflds2, siddecls2) = struct_declaration_list
                 in
                   (wrap(node sflds1 @ node sflds2, left sflds1, right sflds2),
                    siddecls1 @ siddecls2)
                 end
) end
)
 in (LrTable.NT 28,(result,struct_declaration1left,
struct_declaration_list1right),rest671) end
| (71,(_,(MlyValue.type_specifier type_specifier1,type_specifier1left,
type_specifier1right))::rest671) => let val result=
MlyValue.specifier_qualifier_list(fn _ => let val type_specifier as 
type_specifier1=type_specifier1 ()
 in (
wrap([TypeSpec type_specifier],
                      tsleft type_specifier,
                      tsright type_specifier)
) end
)
 in (LrTable.NT 20,(result,type_specifier1left,type_specifier1right),
rest671) end
| (72,(_,(MlyValue.specifier_qualifier_list specifier_qualifier_list1,
_,specifier_qualifier_list1right))::(_,(MlyValue.type_specifier 
type_specifier1,type_specifier1left,_))::rest671) => let val result=
MlyValue.specifier_qualifier_list(fn _ => let val type_specifier as 
type_specifier1=type_specifier1 ()
val specifier_qualifier_list as specifier_qualifier_list1=
specifier_qualifier_list1 ()
 in (
wrap(TypeSpec type_specifier :: node specifier_qualifier_list,
                      tsleft type_specifier, right specifier_qualifier_list)
) end
)
 in (LrTable.NT 20,(result,type_specifier1left,
specifier_qualifier_list1right),rest671) end
| (73,(_,(MlyValue.type_qualifier type_qualifier1,type_qualifier1left,
type_qualifier1right))::rest671) => let val result=
MlyValue.specifier_qualifier_list(fn _ => let val type_qualifier as 
type_qualifier1=type_qualifier1 ()
 in (
wrap([TypeQual type_qualifier],
                      left type_qualifier, right type_qualifier)
) end
)
 in (LrTable.NT 20,(result,type_qualifier1left,type_qualifier1right),
rest671) end
| (74,(_,(MlyValue.specifier_qualifier_list specifier_qualifier_list1,
_,specifier_qualifier_list1right))::(_,(MlyValue.type_qualifier 
type_qualifier1,type_qualifier1left,_))::rest671) => let val result=
MlyValue.specifier_qualifier_list(fn _ => let val type_qualifier as 
type_qualifier1=type_qualifier1 ()
val specifier_qualifier_list as specifier_qualifier_list1=
specifier_qualifier_list1 ()
 in (
wrap(TypeQual type_qualifier :: node specifier_qualifier_list,
                      left type_qualifier, right specifier_qualifier_list)
) end
)
 in (LrTable.NT 20,(result,type_qualifier1left,
specifier_qualifier_list1right),rest671) end
| (75,(_,(_,CONSTleft as CONST1left,CONSTright as CONST1right))::
rest671) => let val result=MlyValue.type_qualifier(fn _ => (
wrap(Const, CONSTleft, CONSTright)))
 in (LrTable.NT 9,(result,CONST1left,CONST1right),rest671) end
| (76,(_,(_,VOLATILEleft as VOLATILE1left,VOLATILEright as 
VOLATILE1right))::rest671) => let val result=MlyValue.type_qualifier(
fn _ => (wrap(Volatile, VOLATILEleft, VOLATILEright)))
 in (LrTable.NT 9,(result,VOLATILE1left,VOLATILE1right),rest671) end
| (77,(_,(_,RESTRICTleft as RESTRICT1left,RESTRICTright as 
RESTRICT1right))::rest671) => let val result=MlyValue.type_qualifier(
fn _ => (wrap(Restrict, RESTRICTleft, RESTRICTright)))
 in (LrTable.NT 9,(result,RESTRICT1left,RESTRICT1right),rest671) end
| (78,(_,(MlyValue.type_qualifier type_qualifier1,type_qualifier1left,
type_qualifier1right))::rest671) => let val result=
MlyValue.type_qualifier_list(fn _ => let val type_qualifier as 
type_qualifier1=type_qualifier1 ()
 in ([type_qualifier]) end
)
 in (LrTable.NT 10,(result,type_qualifier1left,type_qualifier1right),
rest671) end
| (79,(_,(MlyValue.type_qualifier_list type_qualifier_list1,_,
type_qualifier_list1right))::(_,(MlyValue.type_qualifier 
type_qualifier1,type_qualifier1left,_))::rest671) => let val result=
MlyValue.type_qualifier_list(fn _ => let val type_qualifier as 
type_qualifier1=type_qualifier1 ()
val type_qualifier_list as type_qualifier_list1=type_qualifier_list1 
()
 in (type_qualifier::type_qualifier_list) end
)
 in (LrTable.NT 10,(result,type_qualifier1left,
type_qualifier_list1right),rest671) end
| (80,(_,(_,_,YSEMI1right))::(_,(MlyValue.struct_declarator_list 
struct_declarator_list1,_,_))::(_,(MlyValue.specifier_qualifier_list 
specifier_qualifier_list1,specifier_qualifier_list1left,_))::rest671)
 => let val result=MlyValue.struct_declaration(fn _ => let val 
specifier_qualifier_list as specifier_qualifier_list1=
specifier_qualifier_list1 ()
val struct_declarator_list as struct_declarator_list1=
struct_declarator_list1 ()
 in (
let val basetype = extract_type ctxt specifier_qualifier_list
                     val sdecls = first_sdecls (node specifier_qualifier_list)
                     val _ = case first_enum_dec (node specifier_qualifier_list) of
                               NONE => ()
                             | SOME es => errorStr' ctxt (left es, right es,
                                                    "Don't declare enumerations\
                                                    \ inside structs")
                     fun apply_decltor sd = let
                       val (ddw, eop) = sd
                       val (nm,ad,_,attrs) = node ddw
                     in
                       (node ad (node basetype), apnode C_field_name nm, eop, attrs)
                     end
                 in
                   (wrap(map apply_decltor (node struct_declarator_list),
                         left basetype, right struct_declarator_list),
                    sdecls)
                 end
) end
)
 in (LrTable.NT 29,(result,specifier_qualifier_list1left,YSEMI1right),
rest671) end
| (81,(_,(_,YSEMIleft,YSEMI1right))::(_,(
MlyValue.specifier_qualifier_list specifier_qualifier_list1,
specifier_qualifier_list1left,_))::rest671) => let val result=
MlyValue.struct_declaration(fn _ => let val specifier_qualifier_list
 as specifier_qualifier_list1=specifier_qualifier_list1 ()
 in (
let val basetype = extract_type ctxt specifier_qualifier_list
                     val sdecls = first_sdecls (node specifier_qualifier_list)
                     val _ = case first_enum_dec (node specifier_qualifier_list) of
                               NONE => ()
                             | SOME es => errorStr' ctxt (left es, right es,
                                                    "Don't declare enumerations\
                                                    \ inside structs")
                     val dummy_field = (node basetype, wrap ("",left specifier_qualifier_list,YSEMIleft), NONE, [])
                 in
                   (wrap([dummy_field],left basetype, YSEMIleft),
                    sdecls)
                 end
) end
)
 in (LrTable.NT 29,(result,specifier_qualifier_list1left,YSEMI1right),
rest671) end
| (82,(_,(MlyValue.struct_declarator struct_declarator1,
struct_declarator1left,struct_declarator1right))::rest671) => let val 
result=MlyValue.struct_declarator_list(fn _ => let val 
struct_declarator as struct_declarator1=struct_declarator1 ()
 in (
wrap ([node struct_declarator], left struct_declarator,
                            right struct_declarator)
) end
)
 in (LrTable.NT 63,(result,struct_declarator1left,
struct_declarator1right),rest671) end
| (83,(_,(MlyValue.struct_declarator_list struct_declarator_list1,_,
struct_declarator_list1right))::_::(_,(MlyValue.struct_declarator 
struct_declarator1,struct_declarator1left,_))::rest671) => let val 
result=MlyValue.struct_declarator_list(fn _ => let val 
struct_declarator as struct_declarator1=struct_declarator1 ()
val struct_declarator_list as struct_declarator_list1=
struct_declarator_list1 ()
 in (
wrap (node struct_declarator::node struct_declarator_list,
                       left struct_declarator, right struct_declarator_list)
) end
)
 in (LrTable.NT 63,(result,struct_declarator1left,
struct_declarator_list1right),rest671) end
| (84,(_,(MlyValue.declarator declarator1,declarator1left,
declarator1right))::rest671) => let val result=
MlyValue.struct_declarator(fn _ => let val declarator as declarator1=
declarator1 ()
 in (wrap((declarator, NONE), left declarator, right declarator)) end
)
 in (LrTable.NT 62,(result,declarator1left,declarator1right),rest671)
 end
| (85,(_,(MlyValue.rexpression rexpression1,_,rexpression1right))::_::
(_,(MlyValue.declarator declarator1,declarator1left,_))::rest671) => 
let val result=MlyValue.struct_declarator(fn _ => let val declarator
 as declarator1=declarator1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
wrap((declarator, SOME rexpression), left declarator,
                      eright rexpression)
) end
)
 in (LrTable.NT 62,(result,declarator1left,rexpression1right),rest671)
 end
| (86,(_,(MlyValue.init_declarator init_declarator1,
init_declarator1left,init_declarator1right))::rest671) => let val 
result=MlyValue.init_declarator_list(fn _ => let val init_declarator
 as init_declarator1=init_declarator1 ()
 in ([init_declarator]) end
)
 in (LrTable.NT 65,(result,init_declarator1left,init_declarator1right)
,rest671) end
| (87,(_,(MlyValue.init_declarator_list init_declarator_list1,_,
init_declarator_list1right))::_::(_,(MlyValue.init_declarator 
init_declarator1,init_declarator1left,_))::rest671) => let val result=
MlyValue.init_declarator_list(fn _ => let val init_declarator as 
init_declarator1=init_declarator1 ()
val init_declarator_list as init_declarator_list1=
init_declarator_list1 ()
 in (init_declarator :: init_declarator_list) end
)
 in (LrTable.NT 65,(result,init_declarator1left,
init_declarator_list1right),rest671) end
| (88,(_,(MlyValue.declarator declarator1,declarator1left,
declarator1right))::rest671) => let val result=
MlyValue.init_declarator(fn _ => let val declarator as declarator1=
declarator1 ()
 in (wrap((declarator, NONE), left declarator, right declarator)) end
)
 in (LrTable.NT 64,(result,declarator1left,declarator1right),rest671)
 end
| (89,(_,(MlyValue.initializer initializer1,_,initializer1right))::_::
(_,(MlyValue.declarator declarator1,declarator1left,_))::rest671) => 
let val result=MlyValue.init_declarator(fn _ => let val declarator as 
declarator1=declarator1 ()
val initializer as initializer1=initializer1 ()
 in (
wrap((declarator, SOME (node initializer)),
                      left declarator, right initializer)
) end
)
 in (LrTable.NT 64,(result,declarator1left,initializer1right),rest671)
 end
| (90,(_,(_,YSTARleft as YSTAR1left,YSTARright as YSTAR1right))::
rest671) => let val result=MlyValue.pointer(fn _ => (
ptrdecl YSTARleft YSTARright))
 in (LrTable.NT 58,(result,YSTAR1left,YSTAR1right),rest671) end
| (91,(_,(MlyValue.type_qualifier_list type_qualifier_list1,_,
type_qualifier_list1right))::(_,(_,YSTARleft as YSTAR1left,_))::
rest671) => let val result=MlyValue.pointer(fn _ => let val 
type_qualifier_list as type_qualifier_list1=type_qualifier_list1 ()
 in (ptrdecl YSTARleft (right (List.last type_qualifier_list))) end
)
 in (LrTable.NT 58,(result,YSTAR1left,type_qualifier_list1right),
rest671) end
| (92,(_,(MlyValue.pointer pointer1,_,pointer1right))::(_,(_,YSTARleft
 as YSTAR1left,YSTARright))::rest671) => let val result=
MlyValue.pointer(fn _ => let val pointer as pointer1=pointer1 ()
 in (ooa(ptrdecl YSTARleft YSTARright, pointer)) end
)
 in (LrTable.NT 58,(result,YSTAR1left,pointer1right),rest671) end
| (93,(_,(MlyValue.pointer pointer1,_,pointer1right))::(_,(
MlyValue.type_qualifier_list type_qualifier_list1,_,_))::(_,(_,
YSTARleft as YSTAR1left,_))::rest671) => let val result=
MlyValue.pointer(fn _ => let val type_qualifier_list as 
type_qualifier_list1=type_qualifier_list1 ()
val pointer as pointer1=pointer1 ()
 in (
ooa(ptrdecl YSTARleft (right (List.last type_qualifier_list)),
                     pointer)
) end
)
 in (LrTable.NT 58,(result,YSTAR1left,pointer1right),rest671) end
| (94,(_,(MlyValue.direct_declarator direct_declarator1,_,
direct_declarator1right))::(_,(MlyValue.pointer pointer1,pointer1left,
_))::rest671) => let val result=MlyValue.declarator(fn _ => let val 
pointer as pointer1=pointer1 ()
val direct_declarator as direct_declarator1=direct_declarator1 ()
 in (ood(direct_declarator, pointer)) end
)
 in (LrTable.NT 59,(result,pointer1left,direct_declarator1right),
rest671) end
| (95,(_,(MlyValue.direct_declarator direct_declarator1,_,
direct_declarator1right))::(_,(MlyValue.attribute_specifier 
attribute_specifier1,_,_))::(_,(MlyValue.pointer pointer1,pointer1left
,_))::rest671) => let val result=MlyValue.declarator(fn _ => let val 
pointer as pointer1=pointer1 ()
val attribute_specifier as attribute_specifier1=attribute_specifier1 
()
val direct_declarator as direct_declarator1=direct_declarator1 ()
 in (
ood(add_attributes(direct_declarator,
                                    node attribute_specifier),
                     pointer)
) end
)
 in (LrTable.NT 59,(result,pointer1left,direct_declarator1right),
rest671) end
| (96,(_,(MlyValue.direct_declarator direct_declarator1,
direct_declarator1left,direct_declarator1right))::rest671) => let val 
result=MlyValue.declarator(fn _ => let val direct_declarator as 
direct_declarator1=direct_declarator1 ()
 in (direct_declarator) end
)
 in (LrTable.NT 59,(result,direct_declarator1left,
direct_declarator1right),rest671) end
| (97,(_,(_,_,SPEC_BLOCKEND1right))::(_,(MlyValue.idlist idlist1,_,_))
::(_,(_,CALLS1left,_))::rest671) => let val result=
MlyValue.calls_block(fn _ => let val idlist as idlist1=idlist1 ()
 in (SOME idlist) end
)
 in (LrTable.NT 106,(result,CALLS1left,SPEC_BLOCKEND1right),rest671)
 end
| (98,rest671) => let val result=MlyValue.calls_block(fn _ => (NONE))
 in (LrTable.NT 106,(result,defaultPos,defaultPos),rest671) end
| (99,(_,(MlyValue.ID ID1,IDleft as ID1left,IDright as ID1right))::
rest671) => let val result=MlyValue.direct_declarator(fn _ => let val 
ID as ID1=ID1 ()
 in (
wrap((wrap(ID, IDleft, IDright),
                       wrap((fn t => t), IDleft, IDright),
                       NONE,
                       []),
                      IDleft, IDright)
) end
)
 in (LrTable.NT 66,(result,ID1left,ID1right),rest671) end
| (100,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,(
MlyValue.rexpression rexpression1,_,_))::(_,(_,LBRACKETleft,_))::(_,(
MlyValue.direct_declarator direct_declarator1,direct_declarator1left,_
))::rest671) => let val result=MlyValue.direct_declarator(fn _ => let 
val direct_declarator as direct_declarator1=direct_declarator1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
ood(direct_declarator,
                     arraydecl LBRACKETleft RBRACKETright (SOME rexpression))
) end
)
 in (LrTable.NT 66,(result,direct_declarator1left,RBRACKET1right),
rest671) end
| (101,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,(_,LBRACKETleft,_
))::(_,(MlyValue.direct_declarator direct_declarator1,
direct_declarator1left,_))::rest671) => let val result=
MlyValue.direct_declarator(fn _ => let val direct_declarator as 
direct_declarator1=direct_declarator1 ()
 in (
ood(direct_declarator,
                     arraydecl LBRACKETleft RBRACKETright NONE)
) end
)
 in (LrTable.NT 66,(result,direct_declarator1left,RBRACKET1right),
rest671) end
| (102,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.declarator 
declarator1,_,_))::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => 
let val result=MlyValue.direct_declarator(fn _ => let val declarator
 as declarator1=declarator1 ()
 in (wrap(node declarator, LPARENleft, RPARENright)) end
)
 in (LrTable.NT 66,(result,LPAREN1left,RPAREN1right),rest671) end
| (103,(_,(MlyValue.calls_block calls_block1,_,calls_block1right))::_
::(_,(MlyValue.parameter_list parameter_list1,_,_))::_::(_,(
MlyValue.direct_declarator direct_declarator1,direct_declarator1left,_
))::rest671) => let val result=MlyValue.direct_declarator(fn _ => let 
val direct_declarator as direct_declarator1=direct_declarator1 ()
val parameter_list as parameter_list1=parameter_list1 ()
val calls_block1=calls_block1 ()
 in (
let val ps = check_params ctxt parameter_list
                 in
                   addparams(ood(direct_declarator,
                                 fndecl (left direct_declarator)
                                        (right direct_declarator)
                                        (map (#1 o node) ps)),
                             ps)
                 end
) end
)
 in (LrTable.NT 66,(result,direct_declarator1left,calls_block1right),
rest671) end
| (104,(_,(MlyValue.attribute_specifier attribute_specifier1,_,
attribute_specifier1right))::(_,(MlyValue.direct_declarator 
direct_declarator1,direct_declarator1left,_))::rest671) => let val 
result=MlyValue.direct_declarator(fn _ => let val direct_declarator
 as direct_declarator1=direct_declarator1 ()
val attribute_specifier as attribute_specifier1=attribute_specifier1 
()
 in (
add_attributes(direct_declarator,
                                node attribute_specifier)
) end
)
 in (LrTable.NT 66,(result,direct_declarator1left,
attribute_specifier1right),rest671) end
| (105,(_,(MlyValue.asm_declarator_mod asm_declarator_mod1,_,
asm_declarator_mod1right))::(_,(MlyValue.direct_declarator 
direct_declarator1,direct_declarator1left,_))::rest671) => let val 
result=MlyValue.direct_declarator(fn _ => let val direct_declarator
 as direct_declarator1=direct_declarator1 ()
val asm_declarator_mod1=asm_declarator_mod1 ()
 in (direct_declarator) end
)
 in (LrTable.NT 66,(result,direct_declarator1left,
asm_declarator_mod1right),rest671) end
| (106,(_,(_,_,RPAREN1right))::(_,(MlyValue.cstring_literal 
cstring_literal1,_,_))::_::(_,(_,YASM1left,_))::rest671) => let val 
result=MlyValue.asm_declarator_mod(fn _ => let val cstring_literal1=
cstring_literal1 ()
 in (()) end
)
 in (LrTable.NT 67,(result,YASM1left,RPAREN1right),rest671) end
| (107,(_,(MlyValue.ID ID1,IDleft as ID1left,IDright as ID1right))::
rest671) => let val result=MlyValue.struct_id(fn _ => let val ID as 
ID1=ID1 ()
 in (wrap(ID, IDleft, IDright)) end
)
 in (LrTable.NT 70,(result,ID1left,ID1right),rest671) end
| (108,(_,(MlyValue.TYPEID TYPEID1,TYPEIDleft as TYPEID1left,
TYPEIDright as TYPEID1right))::rest671) => let val result=
MlyValue.struct_id(fn _ => let val TYPEID as TYPEID1=TYPEID1 ()
 in (wrap(TYPEID, TYPEIDleft, TYPEIDright)) end
)
 in (LrTable.NT 70,(result,TYPEID1left,TYPEID1right),rest671) end
| (109,(_,(MlyValue.struct_id struct_id1,_,struct_id1right))::(_,(_,
STRUCTleft as STRUCT1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val struct_id as 
struct_id1=struct_id1 ()
 in (
(wrap(StructTy
                           (C_struct_name (node struct_id)),
                       STRUCTleft,
                       right struct_id),
                  [])
) end
)
 in (LrTable.NT 69,(result,STRUCT1left,struct_id1right),rest671) end
| (110,(_,(MlyValue.maybe_attribute_specifier 
maybe_attribute_specifier1,_,maybe_attribute_specifier1right))::(_,(_,
_,RCURLYright))::(_,(MlyValue.struct_declaration_list 
struct_declaration_list1,_,_))::_::(_,(MlyValue.struct_id struct_id1,_
,_))::(_,(_,STRUCTleft as STRUCT1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val struct_id as 
struct_id1=struct_id1 ()
val struct_declaration_list as struct_declaration_list1=
struct_declaration_list1 ()
val maybe_attribute_specifier as maybe_attribute_specifier1=
maybe_attribute_specifier1 ()
 in (
let val (flds, decls) = struct_declaration_list
                     val raw_s_name = node struct_id
                     val munged_name = C_struct_name raw_s_name
                     val sname_w = wrap(munged_name, left struct_id,
                                        right struct_id)
                 in
                   (wrap(StructTy munged_name, STRUCTleft, right struct_id),
                    wrap((sname_w, node flds, maybe_attribute_specifier),
                         STRUCTleft, RCURLYright) :: decls)
                 end
) end
)
 in (LrTable.NT 69,(result,STRUCT1left,maybe_attribute_specifier1right
),rest671) end
| (111,(_,(MlyValue.maybe_attribute_specifier 
maybe_attribute_specifier1,_,maybe_attribute_specifier1right))::(_,(_,
_,RCURLYright))::(_,(MlyValue.struct_declaration_list 
struct_declaration_list1,_,_))::_::(_,(MlyValue.struct_id struct_id1,_
,_))::(_,(MlyValue.attribute_specifier attribute_specifier1,_,_))::(_,
(_,STRUCTleft as STRUCT1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val attribute_specifier
 as attribute_specifier1=attribute_specifier1 ()
val struct_id as struct_id1=struct_id1 ()
val struct_declaration_list as struct_declaration_list1=
struct_declaration_list1 ()
val maybe_attribute_specifier as maybe_attribute_specifier1=
maybe_attribute_specifier1 ()
 in (
let val (flds, decls) = struct_declaration_list
                     val raw_s_name = node struct_id
                     val munged_name = C_struct_name raw_s_name
                     val sname_w = wrap(munged_name, left struct_id,
                                        right struct_id)
                 in
                   (wrap(StructTy munged_name, STRUCTleft, right struct_id),
                    wrap((sname_w, node flds, RegionExtras.join [attribute_specifier, maybe_attribute_specifier]),
                         STRUCTleft, RCURLYright) :: decls)
                 end
) end
)
 in (LrTable.NT 69,(result,STRUCT1left,maybe_attribute_specifier1right
),rest671) end
| (112,(_,(MlyValue.maybe_attribute_specifier 
maybe_attribute_specifier2,_,maybe_attribute_specifier2right))::(_,(_,
_,RCURLYright))::(_,(MlyValue.struct_declaration_list 
struct_declaration_list1,_,_))::(_,(_,LCURLYleft,_))::(_,(
MlyValue.maybe_attribute_specifier maybe_attribute_specifier1,_,_))::(
_,(_,STRUCTleft as STRUCT1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val 
maybe_attribute_specifier1=maybe_attribute_specifier1 ()
val struct_declaration_list as struct_declaration_list1=
struct_declaration_list1 ()
val maybe_attribute_specifier2=maybe_attribute_specifier2 ()
 in (
let
                   val (flds, decls) = struct_declaration_list
                   val anonid = gen_struct_id ()
                   val anonw = wrap(anonid, STRUCTleft, LCURLYleft)
                 in
                   (wrap(StructTy anonid, STRUCTleft, LCURLYleft),
                    wrap((anonw, node flds, RegionExtras.join [maybe_attribute_specifier1, maybe_attribute_specifier2]), STRUCTleft, RCURLYright) ::
                    decls)
                 end
) end
)
 in (LrTable.NT 69,(result,STRUCT1left,maybe_attribute_specifier2right
),rest671) end
| (113,(_,(MlyValue.struct_id struct_id1,_,struct_id1right))::(_,(_,
UNIONleft as UNION1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val struct_id as 
struct_id1=struct_id1 ()
 in (
(wrap(UnionTy
                           (C_struct_name (node struct_id)),
                       UNIONleft,
                       right struct_id),
                  [])
) end
)
 in (LrTable.NT 69,(result,UNION1left,struct_id1right),rest671) end
| (114,(_,(MlyValue.maybe_attribute_specifier 
maybe_attribute_specifier1,_,maybe_attribute_specifier1right))::(_,(_,
_,RCURLYright))::(_,(MlyValue.struct_declaration_list 
struct_declaration_list1,_,_))::_::(_,(MlyValue.struct_id struct_id1,_
,_))::(_,(_,UNIONleft as UNION1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val struct_id as 
struct_id1=struct_id1 ()
val struct_declaration_list as struct_declaration_list1=
struct_declaration_list1 ()
val maybe_attribute_specifier as maybe_attribute_specifier1=
maybe_attribute_specifier1 ()
 in (
let val (flds, decls) = struct_declaration_list
                     val raw_s_name = node struct_id
                     val munged_name = C_struct_name raw_s_name
                     val sname_w = wrap(munged_name, left struct_id,
                                        right struct_id)
                 in
                   (wrap(UnionTy munged_name, UNIONleft, right struct_id),
                    wrap((sname_w, node flds, maybe_attribute_specifier),
                         UNIONleft, RCURLYright) :: decls)
                 end
) end
)
 in (LrTable.NT 69,(result,UNION1left,maybe_attribute_specifier1right)
,rest671) end
| (115,(_,(MlyValue.maybe_attribute_specifier 
maybe_attribute_specifier1,_,maybe_attribute_specifier1right))::(_,(_,
_,RCURLYright))::(_,(MlyValue.struct_declaration_list 
struct_declaration_list1,_,_))::_::(_,(MlyValue.struct_id struct_id1,_
,_))::(_,(MlyValue.attribute_specifier attribute_specifier1,_,_))::(_,
(_,UNIONleft as UNION1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val attribute_specifier
 as attribute_specifier1=attribute_specifier1 ()
val struct_id as struct_id1=struct_id1 ()
val struct_declaration_list as struct_declaration_list1=
struct_declaration_list1 ()
val maybe_attribute_specifier as maybe_attribute_specifier1=
maybe_attribute_specifier1 ()
 in (
let val (flds, decls) = struct_declaration_list
                     val raw_s_name = node struct_id
                     val munged_name = C_struct_name raw_s_name
                     val sname_w = wrap(munged_name, left struct_id,
                                        right struct_id)
                 in
                   (wrap(UnionTy munged_name, UNIONleft, right struct_id),
                    wrap((sname_w, node flds, RegionExtras.join [attribute_specifier, maybe_attribute_specifier]),
                         UNIONleft, RCURLYright) :: decls)
                 end
) end
)
 in (LrTable.NT 69,(result,UNION1left,maybe_attribute_specifier1right)
,rest671) end
| (116,(_,(MlyValue.maybe_attribute_specifier 
maybe_attribute_specifier2,_,maybe_attribute_specifier2right))::(_,(_,
_,RCURLYright))::(_,(MlyValue.struct_declaration_list 
struct_declaration_list1,_,_))::(_,(_,LCURLYleft,_))::(_,(
MlyValue.maybe_attribute_specifier maybe_attribute_specifier1,_,_))::(
_,(_,UNIONleft as UNION1left,_))::rest671) => let val result=
MlyValue.struct_or_union_specifier(fn _ => let val 
maybe_attribute_specifier1=maybe_attribute_specifier1 ()
val struct_declaration_list as struct_declaration_list1=
struct_declaration_list1 ()
val maybe_attribute_specifier2=maybe_attribute_specifier2 ()
 in (
let
                   val (flds, decls) = struct_declaration_list
                   val anonid = gen_struct_id ()
                   val anonw = wrap(anonid, UNIONleft, LCURLYleft)
                 in
                   (wrap(UnionTy anonid, UNIONleft, LCURLYleft),
                    wrap((anonw, node flds, RegionExtras.join [maybe_attribute_specifier1, maybe_attribute_specifier2]), UNIONleft, RCURLYright) ::
                    decls)
                 end
) end
)
 in (LrTable.NT 69,(result,UNION1left,maybe_attribute_specifier2right)
,rest671) end
| (117,(_,(_,INTleft as INT1left,INTright as INT1right))::rest671) => 
let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_int, INTleft, INTright))))
 in (LrTable.NT 68,(result,INT1left,INT1right),rest671) end
| (118,(_,(_,CHARleft as CHAR1left,CHARright as CHAR1right))::rest671)
 => let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_char, CHARleft, CHARright))))
 in (LrTable.NT 68,(result,CHAR1left,CHAR1right),rest671) end
| (119,(_,(_,SHORTleft as SHORT1left,SHORTright as SHORT1right))::
rest671) => let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_short, SHORTleft, SHORTright))))
 in (LrTable.NT 68,(result,SHORT1left,SHORT1right),rest671) end
| (120,(_,(_,LONGleft as LONG1left,LONGright as LONG1right))::rest671)
 => let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_long, LONGleft, LONGright))))
 in (LrTable.NT 68,(result,LONG1left,LONG1right),rest671) end
| (121,(_,(_,INT128left as INT1281left,INT128right as INT1281right))::
rest671) => let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_int128, INT128left, INT128right))))
 in (LrTable.NT 68,(result,INT1281left,INT1281right),rest671) end
| (122,(_,(_,VOIDleft as VOID1left,VOIDright as VOID1right))::rest671)
 => let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_void, VOIDleft, VOIDright))))
 in (LrTable.NT 68,(result,VOID1left,VOID1right),rest671) end
| (123,(_,(_,SIGNEDleft as SIGNED1left,SIGNEDright as SIGNED1right))::
rest671) => let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_signed, SIGNEDleft, SIGNEDright))))
 in (LrTable.NT 68,(result,SIGNED1left,SIGNED1right),rest671) end
| (124,(_,(_,UNSIGNEDleft as UNSIGNED1left,UNSIGNEDright as 
UNSIGNED1right))::rest671) => let val result=MlyValue.type_specifier(
fn _ => (Tstok(wrap(ts_unsigned, UNSIGNEDleft, UNSIGNEDright))))
 in (LrTable.NT 68,(result,UNSIGNED1left,UNSIGNED1right),rest671) end
| (125,(_,(_,BOOLleft as BOOL1left,BOOLright as BOOL1right))::rest671)
 => let val result=MlyValue.type_specifier(fn _ => (
Tstok(wrap(ts_bool, BOOLleft, BOOLright))))
 in (LrTable.NT 68,(result,BOOL1left,BOOL1right),rest671) end
| (126,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.rexpression
 rexpression1,_,_))::_::(_,(_,BITINTleft as BITINT1left,_))::rest671)
 => let val result=MlyValue.type_specifier(fn _ => let val rexpression
 as rexpression1=rexpression1 ()
 in (Tstok(wrap(ts_bitint rexpression, BITINTleft, RPARENright))) end
)
 in (LrTable.NT 68,(result,BITINT1left,RPAREN1right),rest671) end
| (127,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.rexpression
 rexpression1,_,_))::(_,(_,LPARENleft,_))::(_,(_,YTYPEOF1left,_))::
rest671) => let val result=MlyValue.type_specifier(fn _ => let val 
rexpression as rexpression1=rexpression1 ()
 in (Tstypeof (wrap(rexpression, LPARENleft, RPARENright))) end
)
 in (LrTable.NT 68,(result,YTYPEOF1left,RPAREN1right),rest671) end
| (128,(_,(MlyValue.struct_or_union_specifier 
struct_or_union_specifier1,struct_or_union_specifier1left,
struct_or_union_specifier1right))::rest671) => let val result=
MlyValue.type_specifier(fn _ => let val struct_or_union_specifier as 
struct_or_union_specifier1=struct_or_union_specifier1 ()
 in (Tsstruct (struct_or_union_specifier)) end
)
 in (LrTable.NT 68,(result,struct_or_union_specifier1left,
struct_or_union_specifier1right),rest671) end
| (129,(_,(MlyValue.enum_specifier enum_specifier1,enum_specifier1left
,enum_specifier1right))::rest671) => let val result=
MlyValue.type_specifier(fn _ => let val enum_specifier as 
enum_specifier1=enum_specifier1 ()
 in (Tsenum enum_specifier) end
)
 in (LrTable.NT 68,(result,enum_specifier1left,enum_specifier1right),
rest671) end
| (130,(_,(MlyValue.TYPEID TYPEID1,TYPEIDleft as TYPEID1left,
TYPEIDright as TYPEID1right))::rest671) => let val result=
MlyValue.type_specifier(fn _ => let val TYPEID as TYPEID1=TYPEID1 ()
 in (Tstypeid(wrap(TYPEID, TYPEIDleft, TYPEIDright))) end
)
 in (LrTable.NT 68,(result,TYPEID1left,TYPEID1right),rest671) end
| (131,(_,(_,_,RCURLYright as RCURLY1right))::(_,(
MlyValue.enumerator_list enumerator_list1,_,_))::_::(_,(_,YENUMleft
 as YENUM1left,YENUMright))::rest671) => let val result=
MlyValue.enum_specifier(fn _ => let val enumerator_list as 
enumerator_list1=enumerator_list1 ()
 in (
wrap((wrap(NONE, YENUMleft, YENUMright), enumerator_list),
                      YENUMleft, RCURLYright)
) end
)
 in (LrTable.NT 6,(result,YENUM1left,RCURLY1right),rest671) end
| (132,(_,(_,_,RCURLYright as RCURLY1right))::(_,(
MlyValue.enumerator_list enumerator_list1,_,_))::_::(_,(
MlyValue.struct_id struct_id1,_,_))::(_,(_,YENUMleft as YENUM1left,_))
::rest671) => let val result=MlyValue.enum_specifier(fn _ => let val 
struct_id as struct_id1=struct_id1 ()
val enumerator_list as enumerator_list1=enumerator_list1 ()
 in (
wrap((apnode SOME struct_id, enumerator_list),
                      YENUMleft, RCURLYright)
) end
)
 in (LrTable.NT 6,(result,YENUM1left,RCURLY1right),rest671) end
| (133,(_,(_,_,RCURLYright as RCURLY1right))::_::(_,(
MlyValue.enumerator_list enumerator_list1,_,_))::_::(_,(_,YENUMleft
 as YENUM1left,YENUMright))::rest671) => let val result=
MlyValue.enum_specifier(fn _ => let val enumerator_list as 
enumerator_list1=enumerator_list1 ()
 in (
wrap((wrap(NONE, YENUMleft, YENUMright), enumerator_list),
                      YENUMleft, RCURLYright)
) end
)
 in (LrTable.NT 6,(result,YENUM1left,RCURLY1right),rest671) end
| (134,(_,(_,_,RCURLYright as RCURLY1right))::_::(_,(
MlyValue.enumerator_list enumerator_list1,_,_))::_::(_,(
MlyValue.struct_id struct_id1,_,_))::(_,(_,YENUMleft as YENUM1left,_))
::rest671) => let val result=MlyValue.enum_specifier(fn _ => let val 
struct_id as struct_id1=struct_id1 ()
val enumerator_list as enumerator_list1=enumerator_list1 ()
 in (
wrap((apnode SOME struct_id, enumerator_list),
                      YENUMleft, RCURLYright)
) end
)
 in (LrTable.NT 6,(result,YENUM1left,RCURLY1right),rest671) end
| (135,(_,(MlyValue.struct_id struct_id1,_,struct_idright as 
struct_id1right))::(_,(_,YENUMleft as YENUM1left,_))::rest671) => let 
val result=MlyValue.enum_specifier(fn _ => let val struct_id as 
struct_id1=struct_id1 ()
 in (wrap((apnode SOME struct_id, []), YENUMleft, struct_idright)) end
)
 in (LrTable.NT 6,(result,YENUM1left,struct_id1right),rest671) end
| (136,(_,(MlyValue.enumerator enumerator1,enumerator1left,
enumerator1right))::rest671) => let val result=
MlyValue.enumerator_list(fn _ => let val enumerator as enumerator1=
enumerator1 ()
 in ([enumerator]) end
)
 in (LrTable.NT 7,(result,enumerator1left,enumerator1right),rest671)
 end
| (137,(_,(MlyValue.enumerator enumerator1,_,enumerator1right))::_::(_
,(MlyValue.enumerator_list enumerator_list1,enumerator_list1left,_))::
rest671) => let val result=MlyValue.enumerator_list(fn _ => let val 
enumerator_list as enumerator_list1=enumerator_list1 ()
val enumerator as enumerator1=enumerator1 ()
 in (enumerator_list @ [enumerator]) end
)
 in (LrTable.NT 7,(result,enumerator_list1left,enumerator1right),
rest671) end
| (138,(_,(MlyValue.ID ID1,IDleft as ID1left,IDright as ID1right))::
rest671) => let val result=MlyValue.enumerator(fn _ => let val ID as 
ID1=ID1 ()
 in ((wrap(ID,IDleft,IDright), NONE)) end
)
 in (LrTable.NT 8,(result,ID1left,ID1right),rest671) end
| (139,(_,(MlyValue.rexpression rexpression1,_,rexpression1right))::_
::(_,(MlyValue.ID ID1,IDleft as ID1left,IDright))::rest671) => let 
val result=MlyValue.enumerator(fn _ => let val ID as ID1=ID1 ()
val rexpression as rexpression1=rexpression1 ()
 in ((wrap(ID,IDleft,IDright), SOME rexpression)) end
)
 in (LrTable.NT 8,(result,ID1left,rexpression1right),rest671) end
| (140,(_,(MlyValue.pointer pointer1,pointer1left,pointer1right))::
rest671) => let val result=MlyValue.abstract_declarator(fn _ => let 
val pointer as pointer1=pointer1 ()
 in (pointer) end
)
 in (LrTable.NT 60,(result,pointer1left,pointer1right),rest671) end
| (141,(_,(MlyValue.direct_abstract_declarator 
direct_abstract_declarator1,_,direct_abstract_declarator1right))::(_,(
MlyValue.pointer pointer1,pointer1left,_))::rest671) => let val result
=MlyValue.abstract_declarator(fn _ => let val pointer as pointer1=
pointer1 ()
val direct_abstract_declarator as direct_abstract_declarator1=
direct_abstract_declarator1 ()
 in (
wrap (node direct_abstract_declarator o
                                     node pointer,
                                     left pointer,
                                     right direct_abstract_declarator)
) end
)
 in (LrTable.NT 60,(result,pointer1left,
direct_abstract_declarator1right),rest671) end
| (142,(_,(MlyValue.direct_abstract_declarator 
direct_abstract_declarator1,direct_abstract_declarator1left,
direct_abstract_declarator1right))::rest671) => let val result=
MlyValue.abstract_declarator(fn _ => let val 
direct_abstract_declarator as direct_abstract_declarator1=
direct_abstract_declarator1 ()
 in (direct_abstract_declarator) end
)
 in (LrTable.NT 60,(result,direct_abstract_declarator1left,
direct_abstract_declarator1right),rest671) end
| (143,(_,(_,_,RPARENright as RPAREN1right))::(_,(
MlyValue.abstract_declarator abstract_declarator1,_,_))::(_,(_,
LPARENleft as LPAREN1left,_))::rest671) => let val result=
MlyValue.direct_abstract_declarator(fn _ => let val 
abstract_declarator as abstract_declarator1=abstract_declarator1 ()
 in (wrap(node abstract_declarator, LPARENleft, RPARENright)) end
)
 in (LrTable.NT 61,(result,LPAREN1left,RPAREN1right),rest671) end
| (144,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,(
MlyValue.rexpression rexpression1,_,_))::(_,(_,LBRACKETleft as 
LBRACKET1left,_))::rest671) => let val result=
MlyValue.direct_abstract_declarator(fn _ => let val rexpression as 
rexpression1=rexpression1 ()
 in (arraydecl LBRACKETleft RBRACKETright (SOME rexpression)) end
)
 in (LrTable.NT 61,(result,LBRACKET1left,RBRACKET1right),rest671) end
| (145,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,(_,LBRACKETleft
 as LBRACKET1left,_))::rest671) => let val result=
MlyValue.direct_abstract_declarator(fn _ => (
ptrdecl LBRACKETleft RBRACKETright))
 in (LrTable.NT 61,(result,LBRACKET1left,RBRACKET1right),rest671) end
| (146,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,(
MlyValue.rexpression rexpression1,_,_))::(_,(_,LBRACKETleft,_))::(_,(
MlyValue.direct_abstract_declarator direct_abstract_declarator1,
direct_abstract_declarator1left,_))::rest671) => let val result=
MlyValue.direct_abstract_declarator(fn _ => let val 
direct_abstract_declarator as direct_abstract_declarator1=
direct_abstract_declarator1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
ooa(direct_abstract_declarator,
                     arraydecl LBRACKETleft RBRACKETright (SOME rexpression))
) end
)
 in (LrTable.NT 61,(result,direct_abstract_declarator1left,
RBRACKET1right),rest671) end
| (147,(_,(_,_,RPARENright as RPAREN1right))::(_,(
MlyValue.parameter_list parameter_list1,_,_))::(_,(_,LPARENleft as 
LPAREN1left,_))::rest671) => let val result=
MlyValue.direct_abstract_declarator(fn _ => let val parameter_list as 
parameter_list1=parameter_list1 ()
 in (
let val ps = check_params ctxt parameter_list
                 in
                   fndecl LPARENleft RPARENright (map (#1 o node) ps)
                 end
) end
)
 in (LrTable.NT 61,(result,LPAREN1left,RPAREN1right),rest671) end
| (148,(_,(_,_,RPARENright as RPAREN1right))::(_,(
MlyValue.parameter_list parameter_list1,_,_))::(_,(_,LPARENleft,_))::(
_,(MlyValue.direct_abstract_declarator direct_abstract_declarator1,
direct_abstract_declarator1left,_))::rest671) => let val result=
MlyValue.direct_abstract_declarator(fn _ => let val 
direct_abstract_declarator as direct_abstract_declarator1=
direct_abstract_declarator1 ()
val parameter_list as parameter_list1=parameter_list1 ()
 in (
let val ps = check_params ctxt parameter_list
                 in
                   ooa(direct_abstract_declarator,
                       fndecl LPARENleft RPARENright (map (#1 o node) ps))
                 end
) end
)
 in (LrTable.NT 61,(result,direct_abstract_declarator1left,
RPAREN1right),rest671) end
| (149,(_,(MlyValue.abstract_declarator abstract_declarator1,_,
abstract_declarator1right))::(_,(MlyValue.specifier_qualifier_list 
specifier_qualifier_list1,specifier_qualifier_list1left,_))::rest671)
 => let val result=MlyValue.type_name(fn _ => let val 
specifier_qualifier_list as specifier_qualifier_list1=
specifier_qualifier_list1 ()
val abstract_declarator as abstract_declarator1=abstract_declarator1 
()
 in (
let
                   val sql = specifier_qualifier_list
                   val basety = extract_type ctxt sql
                   val _ = case has_typedef sql of
                             NONE => ()
                           | SOME (l,r) =>
                               errorStr' ctxt (l,r, "Typedef illegal here")
                 in
                   wrap(node abstract_declarator (node basety),
                        left specifier_qualifier_list,
                        right abstract_declarator)
                 end
) end
)
 in (LrTable.NT 33,(result,specifier_qualifier_list1left,
abstract_declarator1right),rest671) end
| (150,(_,(MlyValue.specifier_qualifier_list specifier_qualifier_list1
,specifier_qualifier_list1left,specifier_qualifier_list1right))::
rest671) => let val result=MlyValue.type_name(fn _ => let val 
specifier_qualifier_list as specifier_qualifier_list1=
specifier_qualifier_list1 ()
 in (
let
                   val sql = specifier_qualifier_list
                   val basety = extract_type ctxt sql
                   val _ = case has_typedef sql of
                             NONE => ()
                             | SOME (l,r) =>
                                 errorStr' ctxt (l,r, "Typedef illegal here")
                 in
                   basety
                 end
) end
)
 in (LrTable.NT 33,(result,specifier_qualifier_list1left,
specifier_qualifier_list1right),rest671) end
| (151,(_,(MlyValue.dinitializer dinitializer1,dinitializer1left,
dinitializer1right))::rest671) => let val result=
MlyValue.initializer_list(fn _ => let val dinitializer as 
dinitializer1=dinitializer1 ()
 in ([dinitializer]) end
)
 in (LrTable.NT 21,(result,dinitializer1left,dinitializer1right),
rest671) end
| (152,(_,(_,_,YCOMMA1right))::(_,(MlyValue.dinitializer dinitializer1
,dinitializer1left,_))::rest671) => let val result=
MlyValue.initializer_list(fn _ => let val dinitializer as 
dinitializer1=dinitializer1 ()
 in ([dinitializer]) end
)
 in (LrTable.NT 21,(result,dinitializer1left,YCOMMA1right),rest671)
 end
| (153,(_,(MlyValue.initializer_list initializer_list1,_,
initializer_list1right))::_::(_,(MlyValue.dinitializer dinitializer1,
dinitializer1left,_))::rest671) => let val result=
MlyValue.initializer_list(fn _ => let val dinitializer as 
dinitializer1=dinitializer1 ()
val initializer_list as initializer_list1=initializer_list1 ()
 in (dinitializer :: initializer_list) end
)
 in (LrTable.NT 21,(result,dinitializer1left,initializer_list1right),
rest671) end
| (154,(_,(MlyValue.initializer initializer1,_,initializer1right))::(_
,(MlyValue.designation designation1,designation1left,_))::rest671) => 
let val result=MlyValue.dinitializer(fn _ => let val designation as 
designation1=designation1 ()
val initializer as initializer1=initializer1 ()
 in ((designation, node initializer)) end
)
 in (LrTable.NT 22,(result,designation1left,initializer1right),rest671
) end
| (155,(_,(MlyValue.initializer initializer1,initializer1left,
initializer1right))::rest671) => let val result=MlyValue.dinitializer(
fn _ => let val initializer as initializer1=initializer1 ()
 in (([], node initializer)) end
)
 in (LrTable.NT 22,(result,initializer1left,initializer1right),rest671
) end
| (156,(_,(_,_,YEQ1right))::(_,(MlyValue.designator_list 
designator_list1,designator_list1left,_))::rest671) => let val result=
MlyValue.designation(fn _ => let val designator_list as 
designator_list1=designator_list1 ()
 in (designator_list) end
)
 in (LrTable.NT 24,(result,designator_list1left,YEQ1right),rest671)
 end
| (157,(_,(MlyValue.designator designator1,designator1left,
designator1right))::rest671) => let val result=
MlyValue.designator_list(fn _ => let val designator as designator1=
designator1 ()
 in ([designator]) end
)
 in (LrTable.NT 25,(result,designator1left,designator1right),rest671)
 end
| (158,(_,(MlyValue.designator_list designator_list1,_,
designator_list1right))::(_,(MlyValue.designator designator1,
designator1left,_))::rest671) => let val result=
MlyValue.designator_list(fn _ => let val designator as designator1=
designator1 ()
val designator_list as designator_list1=designator_list1 ()
 in (designator :: designator_list) end
)
 in (LrTable.NT 25,(result,designator1left,designator_list1right),
rest671) end
| (159,(_,(_,_,RBRACKET1right))::(_,(MlyValue.rexpression rexpression1
,_,_))::(_,(_,LBRACKET1left,_))::rest671) => let val result=
MlyValue.designator(fn _ => let val rexpression as rexpression1=
rexpression1 ()
 in (DesignE rexpression) end
)
 in (LrTable.NT 26,(result,LBRACKET1left,RBRACKET1right),rest671) end
| (160,(_,(MlyValue.ID ID1,_,ID1right))::(_,(_,YDOT1left,_))::rest671)
 => let val result=MlyValue.designator(fn _ => let val ID as ID1=ID1 
()
 in (DesignFld (C_field_name ID)) end
)
 in (LrTable.NT 26,(result,YDOT1left,ID1right),rest671) end
| (161,(_,(MlyValue.rexpression rexpression1,rexpression1left,
rexpression1right))::rest671) => let val result=MlyValue.initializer(
fn _ => let val rexpression as rexpression1=rexpression1 ()
 in (wrap(InitE rexpression, eleft rexpression, eright rexpression))
 end
)
 in (LrTable.NT 23,(result,rexpression1left,rexpression1right),rest671
) end
| (162,(_,(_,_,RCURLYright as RCURLY1right))::(_,(_,LCURLYleft as 
LCURLY1left,_))::rest671) => let val result=MlyValue.initializer(fn _
 => (wrap(InitList [], LCURLYleft, RCURLYright)))
 in (LrTable.NT 23,(result,LCURLY1left,RCURLY1right),rest671) end
| (163,(_,(_,_,RCURLYright as RCURLY1right))::(_,(
MlyValue.initializer_list initializer_list1,_,_))::(_,(_,LCURLYleft
 as LCURLY1left,_))::rest671) => let val result=MlyValue.initializer(
fn _ => let val initializer_list as initializer_list1=
initializer_list1 ()
 in (wrap(InitList initializer_list, LCURLYleft, RCURLYright)) end
)
 in (LrTable.NT 23,(result,LCURLY1left,RCURLY1right),rest671) end
| (164,(_,(_,YEQ1left,YEQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (NONE))
 in (LrTable.NT 57,(result,YEQ1left,YEQ1right),rest671) end
| (165,(_,(_,PLUSEQ1left,PLUSEQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME Plus))
 in (LrTable.NT 57,(result,PLUSEQ1left,PLUSEQ1right),rest671) end
| (166,(_,(_,MINUSEQ1left,MINUSEQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME Minus))
 in (LrTable.NT 57,(result,MINUSEQ1left,MINUSEQ1right),rest671) end
| (167,(_,(_,BOREQ1left,BOREQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME BitwiseOr))
 in (LrTable.NT 57,(result,BOREQ1left,BOREQ1right),rest671) end
| (168,(_,(_,BANDEQ1left,BANDEQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME BitwiseAnd))
 in (LrTable.NT 57,(result,BANDEQ1left,BANDEQ1right),rest671) end
| (169,(_,(_,BXOREQ1left,BXOREQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME BitwiseXOr))
 in (LrTable.NT 57,(result,BXOREQ1left,BXOREQ1right),rest671) end
| (170,(_,(_,MULEQ1left,MULEQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME Times))
 in (LrTable.NT 57,(result,MULEQ1left,MULEQ1right),rest671) end
| (171,(_,(_,DIVEQ1left,DIVEQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME Divides))
 in (LrTable.NT 57,(result,DIVEQ1left,DIVEQ1right),rest671) end
| (172,(_,(_,MODEQ1left,MODEQ1right))::rest671) => let val result=
MlyValue.assignop(fn _ => (SOME Modulus))
 in (LrTable.NT 57,(result,MODEQ1left,MODEQ1right),rest671) end
| (173,(_,(_,LSHIFTEQ1left,LSHIFTEQ1right))::rest671) => let val 
result=MlyValue.assignop(fn _ => (SOME LShift))
 in (LrTable.NT 57,(result,LSHIFTEQ1left,LSHIFTEQ1right),rest671) end
| (174,(_,(_,RSHIFTEQ1left,RSHIFTEQ1right))::rest671) => let val 
result=MlyValue.assignop(fn _ => (SOME RShift))
 in (LrTable.NT 57,(result,RSHIFTEQ1left,RSHIFTEQ1right),rest671) end
| (175,(_,(MlyValue.ID ID1,IDleft as ID1left,IDright as ID1right))::
rest671) => let val result=MlyValue.statement_label(fn _ => let val ID
 as ID1=ID1 ()
 in (wrap(ID,IDleft,IDright)) end
)
 in (LrTable.NT 44,(result,ID1left,ID1right),rest671) end
| (176,(_,(_,_,YSEMIright as YSEMI1right))::(_,(MlyValue.rexpression 
rexpression1,_,_))::(_,(MlyValue.assignop assignop1,_,_))::(_,(
MlyValue.lexpression lexpression1,lexpression1left,_))::rest671) => 
let val result=MlyValue.statement(fn _ => let val lexpression as 
lexpression1=lexpression1 ()
val assignop as assignop1=assignop1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
swrap(parse_stdassignop ctxt (lexpression, assignop, rexpression),
             eleft lexpression, YSEMIright)
) end
)
 in (LrTable.NT 41,(result,lexpression1left,YSEMI1right),rest671) end
| (177,(_,(_,_,YSEMI1right))::(_,(MlyValue.rexpression rexpression1,
rexpression1left,_))::rest671) => let val result=MlyValue.statement(
fn _ => let val rexpression as rexpression1=rexpression1 ()
 in (
let val e = delvoidcasts (handle_builtin_fns ctxt rexpression)
       in
         check_rexpression_statement ctxt e
       end
) end
)
 in (LrTable.NT 41,(result,rexpression1left,YSEMI1right),rest671) end
| (178,(_,(MlyValue.statement statement1,_,statement1right))::(_,(
MlyValue.invariant_option invariant_option1,_,_))::_::(_,(
MlyValue.rexpression rexpression1,_,_))::_::(_,(_,YWHILEleft as 
YWHILE1left,_))::rest671) => let val result=MlyValue.statement(fn _
 => let val rexpression as rexpression1=rexpression1 ()
val invariant_option as invariant_option1=invariant_option1 ()
val statement as statement1=statement1 ()
 in (
let val body = swrap(Trap(ContinueT, statement), sleft statement,
                            sright statement)
           val loop = swrap(While(rexpression, invariant_option, body),
                            YWHILEleft, sright statement)
       in
         swrap(Trap(BreakT, loop), YWHILEleft, sright statement)
       end
) end
)
 in (LrTable.NT 41,(result,YWHILE1left,statement1right),rest671) end
| (179,(_,(_,_,YSEMIright as YSEMI1right))::_::(_,(
MlyValue.rexpression rexpression1,_,_))::_::_::(_,(MlyValue.statement 
statement1,_,_))::(_,(MlyValue.invariant_option invariant_option1,_,_)
)::(_,(_,YDOleft as YDO1left,_))::rest671) => let val result=
MlyValue.statement(fn _ => let val invariant_option as 
invariant_option1=invariant_option1 ()
val statement as statement1=statement1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
let val body = swrap (Trap(ContinueT, statement),
                             sleft statement, sright statement)
           val loop = swrap(While(rexpression, invariant_option, body),
                            YDOleft, YSEMIright)
       in
         swrap(Trap(BreakT,
                    swrap(Block (AstDatatype.Closed, [BI_Stmt body, BI_Stmt loop]),
                          sleft statement, YSEMIright)),
               YDOleft, YSEMIright)
       end
) end
)
 in (LrTable.NT 41,(result,YDO1left,YSEMI1right),rest671) end
| (180,(_,(MlyValue.statement statement1,_,statement1right))::(_,(
MlyValue.invariant_option invariant_option1,_,_))::_::(_,(
MlyValue.opt_for3_expr opt_for3_expr1,_,_))::_::(_,(
MlyValue.opt_for2_expr opt_for2_expr1,_,_))::(_,(
MlyValue.opt_for1_bitem opt_for1_bitem1,_,_))::_::(_,(_,YFORleft as 
YFOR1left,_))::rest671) => let val result=MlyValue.statement(fn _ => 
let val opt_for1_bitem as opt_for1_bitem1=opt_for1_bitem1 ()
val opt_for2_expr as opt_for2_expr1=opt_for2_expr1 ()
val opt_for3_expr as opt_for3_expr1=opt_for3_expr1 ()
val invariant_option as invariant_option1=invariant_option1 ()
val statement as statement1=statement1 ()
 in (
let val body0 = swrap(Trap(ContinueT, statement),
                             sleft statement, sright statement)
           val body = swrap(Block (AstDatatype.Closed, [BI_Stmt body0, BI_Stmt opt_for3_expr]),
                            sleft statement, sright statement)
           val loop = swrap(While(opt_for2_expr, invariant_option, body),
                            YFORleft, sright statement)
           val tp_loop = swrap(Trap(BreakT, loop), YFORleft, sright statement)
       in
         swrap(Block (AstDatatype.Closed, opt_for1_bitem @ [BI_Stmt tp_loop]),
               YFORleft, sright statement)
       end
) end
)
 in (LrTable.NT 41,(result,YFOR1left,statement1right),rest671) end
| (181,(_,(_,_,YSEMIright as YSEMI1right))::(_,(MlyValue.rexpression 
rexpression1,_,_))::(_,(_,YRETURNleft as YRETURN1left,_))::rest671)
 => let val result=MlyValue.statement(fn _ => let val rexpression as 
rexpression1=rexpression1 ()
 in (
case enode (handle_builtin_fns ctxt rexpression) of
         EFnCall(_, fn_e, args) =>
           swrap(ReturnFnCall (fn_e, args), YRETURNleft, YSEMIright)
       | e => swrap(Return (SOME rexpression),YRETURNleft,YSEMIright)
) end
)
 in (LrTable.NT 41,(result,YRETURN1left,YSEMI1right),rest671) end
| (182,(_,(_,_,YSEMIright as YSEMI1right))::(_,(_,YRETURNleft as 
YRETURN1left,_))::rest671) => let val result=MlyValue.statement(fn _
 => (swrap(Return NONE, YRETURNleft, YSEMIright)))
 in (LrTable.NT 41,(result,YRETURN1left,YSEMI1right),rest671) end
| (183,(_,(_,_,YSEMIright as YSEMI1right))::(_,(_,YBREAKleft as 
YBREAK1left,_))::rest671) => let val result=MlyValue.statement(fn _
 => (swrap(Break, YBREAKleft, YSEMIright)))
 in (LrTable.NT 41,(result,YBREAK1left,YSEMI1right),rest671) end
| (184,(_,(_,_,YSEMIright as YSEMI1right))::(_,(_,YCONTINUEleft as 
YCONTINUE1left,_))::rest671) => let val result=MlyValue.statement(fn _
 => (swrap(Continue,YCONTINUEleft,YSEMIright)))
 in (LrTable.NT 41,(result,YCONTINUE1left,YSEMI1right),rest671) end
| (185,(_,(_,_,YSEMIright as YSEMI1right))::(_,(
MlyValue.statement_label statement_label1,_,_))::(_,(_,YGOTOleft as 
YGOTO1left,_))::rest671) => let val result=MlyValue.statement(fn _ => 
let val statement_label as statement_label1=statement_label1 ()
 in (swrap(Goto (node statement_label), YGOTOleft, YSEMIright)) end
)
 in (LrTable.NT 41,(result,YGOTO1left,YSEMI1right),rest671) end
| (186,(_,(MlyValue.statement statement1,_,statement1right))::_::(_,(
MlyValue.rexpression rexpression1,_,_))::_::(_,(_,YIFleft as YIF1left,
_))::rest671) => let val result=MlyValue.statement(fn _ => let val 
rexpression as rexpression1=rexpression1 ()
val statement as statement1=statement1 ()
 in (
swrap(IfStmt (rexpression, statement,
                     swrap(EmptyStmt, defaultPos, defaultPos)),
             YIFleft,
             sright statement)
) end
)
 in (LrTable.NT 41,(result,YIF1left,statement1right),rest671) end
| (187,(_,(MlyValue.statement statement2,_,statement2right))::_::(_,(
MlyValue.statement statement1,_,_))::_::(_,(MlyValue.rexpression 
rexpression1,_,_))::_::(_,(_,YIFleft as YIF1left,_))::rest671) => let 
val result=MlyValue.statement(fn _ => let val rexpression as 
rexpression1=rexpression1 ()
val statement1=statement1 ()
val statement2=statement2 ()
 in (
swrap(IfStmt(rexpression, statement1, statement2), YIFleft,
             sright statement2)
) end
)
 in (LrTable.NT 41,(result,YIF1left,statement2right),rest671) end
| (188,(_,(_,YSEMIleft as YSEMI1left,YSEMIright as YSEMI1right))::
rest671) => let val result=MlyValue.statement(fn _ => (
swrap(EmptyStmt,YSEMIleft,YSEMIright)))
 in (LrTable.NT 41,(result,YSEMI1left,YSEMI1right),rest671) end
| (189,(_,(_,_,RCURLYright as RCURLY1right))::(_,(
MlyValue.switchcase_list switchcase_list1,_,_))::_::_::(_,(
MlyValue.rexpression rexpression1,_,_))::_::(_,(_,SWITCHleft as 
SWITCH1left,_))::rest671) => let val result=MlyValue.statement(fn _
 => let val rexpression as rexpression1=rexpression1 ()
val switchcase_list as switchcase_list1=switchcase_list1 ()
 in (
swrap(Trap(BreakT,
                  swrap(Switch(rexpression,
                               switch_check ctxt switchcase_list
                                            SWITCHleft RCURLYright),
                        SWITCHleft, RCURLYright)),
             SWITCHleft, RCURLYright)
) end
)
 in (LrTable.NT 41,(result,SWITCH1left,RCURLY1right),rest671) end
| (190,(_,(MlyValue.compound_statement compound_statement1,
compound_statement1left,compound_statement1right))::rest671) => let 
val result=MlyValue.statement(fn _ => let val compound_statement as 
compound_statement1=compound_statement1 ()
 in (
swrap(Block (AstDatatype.Closed, node compound_statement), left compound_statement,
             right compound_statement)
) end
)
 in (LrTable.NT 41,(result,compound_statement1left,
compound_statement1right),rest671) end
| (191,(_,(MlyValue.statement statement1,_,statement1right))::_::(_,(
MlyValue.statement_label statement_label1,statement_label1left,_))::
rest671) => let val result=MlyValue.statement(fn _ => let val 
statement_label as statement_label1=statement_label1 ()
val statement as statement1=statement1 ()
 in (
swrap(LabeledStmt (node statement_label, statement), left statement_label, sright statement)
) end
)
 in (LrTable.NT 41,(result,statement_label1left,statement1right),
rest671) end
| (192,(_,(_,_,SPEC_BLOCKEND1right))::(_,(MlyValue.STRING_LITERAL 
STRING_LITERAL1,_,STRING_LITERALright))::(_,(_,AUXUPDleft as 
AUXUPD1left,_))::rest671) => let val result=MlyValue.statement(fn _
 => let val STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (swrap(Auxupd STRING_LITERAL, AUXUPDleft, STRING_LITERALright))
 end
)
 in (LrTable.NT 41,(result,AUXUPD1left,SPEC_BLOCKEND1right),rest671)
 end
| (193,(_,(_,_,SPEC_BLOCKEND1right))::(_,(MlyValue.STRING_LITERAL 
STRING_LITERAL1,_,STRING_LITERALright))::(_,(_,GHOSTUPDleft as 
GHOSTUPD1left,_))::rest671) => let val result=MlyValue.statement(fn _
 => let val STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (swrap(Ghostupd STRING_LITERAL, GHOSTUPDleft, STRING_LITERALright)
) end
)
 in (LrTable.NT 41,(result,GHOSTUPD1left,SPEC_BLOCKEND1right),rest671)
 end
| (194,(_,(_,_,SPEC_BLOCKEND2right))::(_,(MlyValue.STRING_LITERAL 
STRING_LITERAL2,_,_))::(_,(_,_,SPEC_ENDright))::(_,(
MlyValue.statement_list statement_list1,_,_))::_::(_,(
MlyValue.STRING_LITERAL STRING_LITERAL1,_,_))::(_,(_,SPEC_BEGINleft
 as SPEC_BEGIN1left,_))::rest671) => let val result=MlyValue.statement
(fn _ => let val STRING_LITERAL1=STRING_LITERAL1 ()
val statement_list as statement_list1=statement_list1 ()
val STRING_LITERAL2=STRING_LITERAL2 ()
 in (
let
        open Substring
        val ss = full STRING_LITERAL1
        val (before_fullstop, inc_stop) = splitl (fn c => c <> #".") ss
        val after_stop = triml 1 inc_stop
      in
        swrap(Spec((string before_fullstop, string after_stop),
                   statement_list,STRING_LITERAL2),
            SPEC_BEGINleft,
            SPEC_ENDright)
      end
) end
)
 in (LrTable.NT 41,(result,SPEC_BEGIN1left,SPEC_BLOCKEND2right),
rest671) end
| (195,(_,(_,_,YSEMIright as YSEMI1right))::_::(_,(MlyValue.asmblock 
asmblock1,_,_))::_::(_,(MlyValue.optvolatile optvolatile1,_,_))::(_,(_
,YASMleft as YASM1left,_))::rest671) => let val result=
MlyValue.statement(fn _ => let val optvolatile as optvolatile1=
optvolatile1 ()
val asmblock as asmblock1=asmblock1 ()
 in (
swrap(AsmStmt({volatilep = optvolatile, asmblock = asmblock}),
             YASMleft, YSEMIright)
) end
)
 in (LrTable.NT 41,(result,YASM1left,YSEMI1right),rest671) end
| (196,(_,(MlyValue.statement statement1,_,statement1right))::(_,(
MlyValue.attribute_specifier attribute_specifier1,
attribute_specifierleft as attribute_specifier1left,_))::rest671) => 
let val result=MlyValue.statement(fn _ => let val attribute_specifier
 as attribute_specifier1=attribute_specifier1 ()
val statement as statement1=statement1 ()
 in (
swrap(AttributeStmt (attribute_specifier, statement), attribute_specifierleft, sright statement)
) end
)
 in (LrTable.NT 41,(result,attribute_specifier1left,statement1right),
rest671) end
| (197,rest671) => let val result=MlyValue.optvolatile(fn _ => (false)
)
 in (LrTable.NT 4,(result,defaultPos,defaultPos),rest671) end
| (198,(_,(_,VOLATILE1left,VOLATILE1right))::rest671) => let val 
result=MlyValue.optvolatile(fn _ => (true))
 in (LrTable.NT 4,(result,VOLATILE1left,VOLATILE1right),rest671) end
| (199,(_,(MlyValue.asmmod1 asmmod11,_,asmmod11right))::(_,(
MlyValue.cstring_literal cstring_literal1,cstring_literal1left,_))::
rest671) => let val result=MlyValue.asmblock(fn _ => let val 
cstring_literal as cstring_literal1=cstring_literal1 ()
val asmmod1 as asmmod11=asmmod11 ()
 in (
{head = node cstring_literal,
                            mod1 = #1 asmmod1,
                            mod2 = #2 asmmod1,
                            mod3 = #3 asmmod1}
) end
)
 in (LrTable.NT 97,(result,cstring_literal1left,asmmod11right),rest671
) end
| (200,rest671) => let val result=MlyValue.asmmod1(fn _ => ([], [], []
))
 in (LrTable.NT 98,(result,defaultPos,defaultPos),rest671) end
| (201,(_,(MlyValue.asmmod2 asmmod21,_,asmmod21right))::(_,(
MlyValue.namedstringexplist namedstringexplist1,_,_))::(_,(_,
YCOLON1left,_))::rest671) => let val result=MlyValue.asmmod1(fn _ => 
let val namedstringexplist as namedstringexplist1=namedstringexplist1 
()
val asmmod2 as asmmod21=asmmod21 ()
 in (namedstringexplist, #1 asmmod2, #2 asmmod2) end
)
 in (LrTable.NT 98,(result,YCOLON1left,asmmod21right),rest671) end
| (202,rest671) => let val result=MlyValue.asmmod2(fn _ => ([], []))
 in (LrTable.NT 99,(result,defaultPos,defaultPos),rest671) end
| (203,(_,(MlyValue.asmmod3 asmmod31,_,asmmod31right))::(_,(
MlyValue.namedstringexplist namedstringexplist1,_,_))::(_,(_,
YCOLON1left,_))::rest671) => let val result=MlyValue.asmmod2(fn _ => 
let val namedstringexplist as namedstringexplist1=namedstringexplist1 
()
val asmmod3 as asmmod31=asmmod31 ()
 in ((namedstringexplist, asmmod3)) end
)
 in (LrTable.NT 99,(result,YCOLON1left,asmmod31right),rest671) end
| (204,rest671) => let val result=MlyValue.asmmod3(fn _ => ([]))
 in (LrTable.NT 100,(result,defaultPos,defaultPos),rest671) end
| (205,(_,(MlyValue.stringlist1 stringlist11,_,stringlist11right))::(_
,(_,YCOLON1left,_))::rest671) => let val result=MlyValue.asmmod3(fn _
 => let val stringlist1 as stringlist11=stringlist11 ()
 in (stringlist1) end
)
 in (LrTable.NT 100,(result,YCOLON1left,stringlist11right),rest671)
 end
| (206,(_,(MlyValue.cstring_literal cstring_literal1,
cstring_literal1left,cstring_literal1right))::rest671) => let val 
result=MlyValue.stringlist1(fn _ => let val cstring_literal as 
cstring_literal1=cstring_literal1 ()
 in ([node cstring_literal]) end
)
 in (LrTable.NT 102,(result,cstring_literal1left,cstring_literal1right
),rest671) end
| (207,(_,(MlyValue.stringlist1 stringlist11,_,stringlist11right))::_
::(_,(MlyValue.cstring_literal cstring_literal1,cstring_literal1left,_
))::rest671) => let val result=MlyValue.stringlist1(fn _ => let val 
cstring_literal as cstring_literal1=cstring_literal1 ()
val stringlist1 as stringlist11=stringlist11 ()
 in (node cstring_literal :: stringlist1) end
)
 in (LrTable.NT 102,(result,cstring_literal1left,stringlist11right),
rest671) end
| (208,rest671) => let val result=MlyValue.namedstringexplist(fn _ => 
([]))
 in (LrTable.NT 104,(result,defaultPos,defaultPos),rest671) end
| (209,(_,(MlyValue.namedstringexplist1 namedstringexplist11,
namedstringexplist11left,namedstringexplist11right))::rest671) => let 
val result=MlyValue.namedstringexplist(fn _ => let val 
namedstringexplist1 as namedstringexplist11=namedstringexplist11 ()
 in (namedstringexplist1) end
)
 in (LrTable.NT 104,(result,namedstringexplist11left,
namedstringexplist11right),rest671) end
| (210,(_,(MlyValue.namedstringexp namedstringexp1,namedstringexp1left
,namedstringexp1right))::rest671) => let val result=
MlyValue.namedstringexplist1(fn _ => let val namedstringexp as 
namedstringexp1=namedstringexp1 ()
 in ([namedstringexp]) end
)
 in (LrTable.NT 105,(result,namedstringexp1left,namedstringexp1right),
rest671) end
| (211,(_,(MlyValue.namedstringexplist1 namedstringexplist11,_,
namedstringexplist11right))::_::(_,(MlyValue.namedstringexp 
namedstringexp1,namedstringexp1left,_))::rest671) => let val result=
MlyValue.namedstringexplist1(fn _ => let val namedstringexp as 
namedstringexp1=namedstringexp1 ()
val namedstringexplist1 as namedstringexplist11=namedstringexplist11 
()
 in (namedstringexp :: namedstringexplist1) end
)
 in (LrTable.NT 105,(result,namedstringexp1left,
namedstringexplist11right),rest671) end
| (212,(_,(_,_,RPAREN1right))::(_,(MlyValue.rexpression rexpression1,_
,_))::_::(_,(MlyValue.cstring_literal cstring_literal1,
cstring_literal1left,_))::rest671) => let val result=
MlyValue.namedstringexp(fn _ => let val cstring_literal as 
cstring_literal1=cstring_literal1 ()
val rexpression as rexpression1=rexpression1 ()
 in ((NONE, node cstring_literal, rexpression)) end
)
 in (LrTable.NT 103,(result,cstring_literal1left,RPAREN1right),rest671
) end
| (213,(_,(_,_,RPAREN1right))::(_,(MlyValue.rexpression rexpression1,_
,_))::_::(_,(MlyValue.cstring_literal cstring_literal1,_,_))::_::(_,(
MlyValue.ID ID1,_,_))::(_,(_,LBRACKET1left,_))::rest671) => let val 
result=MlyValue.namedstringexp(fn _ => let val ID as ID1=ID1 ()
val cstring_literal as cstring_literal1=cstring_literal1 ()
val rexpression as rexpression1=rexpression1 ()
 in ((SOME ID, node cstring_literal, rexpression)) end
)
 in (LrTable.NT 103,(result,LBRACKET1left,RPAREN1right),rest671) end
| (214,(_,(_,_,SPEC_BLOCKEND1right))::(_,(MlyValue.STRING_LITERAL 
STRING_LITERAL1,STRING_LITERALleft,STRING_LITERALright))::(_,(_,
INVARIANT1left,_))::rest671) => let val result=MlyValue.invariant(fn _
 => let val STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (wrap(STRING_LITERAL, STRING_LITERALleft, STRING_LITERALright))
 end
)
 in (LrTable.NT 17,(result,INVARIANT1left,SPEC_BLOCKEND1right),rest671
) end
| (215,rest671) => let val result=MlyValue.invariant_option(fn _ => (
NONE))
 in (LrTable.NT 18,(result,defaultPos,defaultPos),rest671) end
| (216,(_,(MlyValue.invariant invariant1,invariant1left,
invariant1right))::rest671) => let val result=
MlyValue.invariant_option(fn _ => let val invariant as invariant1=
invariant1 ()
 in (SOME invariant) end
)
 in (LrTable.NT 18,(result,invariant1left,invariant1right),rest671)
 end
| (217,rest671) => let val result=MlyValue.switchcase_list(fn _ => ([]
))
 in (LrTable.NT 45,(result,defaultPos,defaultPos),rest671) end
| (218,(_,(MlyValue.switchcase_list switchcase_list1,_,
switchcase_list1right))::(_,(MlyValue.switchcase switchcase1,
switchcase1left,_))::rest671) => let val result=
MlyValue.switchcase_list(fn _ => let val switchcase as switchcase1=
switchcase1 ()
val switchcase_list as switchcase_list1=switchcase_list1 ()
 in (switchcase :: switchcase_list) end
)
 in (LrTable.NT 45,(result,switchcase1left,switchcase_list1right),
rest671) end
| (219,(_,(MlyValue.block_item_list block_item_list1,_,
block_item_list1right))::(_,(MlyValue.statement statement1,_,_))::(_,(
MlyValue.labellist labellist1,labellist1left,_))::rest671) => let val 
result=MlyValue.switchcase(fn _ => let val labellist as labellist1=
labellist1 ()
val statement as statement1=statement1 ()
val block_item_list as block_item_list1=block_item_list1 ()
 in ((labellist, BI_Stmt statement :: block_item_list)) end
)
 in (LrTable.NT 46,(result,labellist1left,block_item_list1right),
rest671) end
| (220,(_,(MlyValue.label label1,label1left,label1right))::rest671)
 => let val result=MlyValue.labellist(fn _ => let val label as label1=
label1 ()
 in (wrap([label], left label, right label)) end
)
 in (LrTable.NT 47,(result,label1left,label1right),rest671) end
| (221,(_,(MlyValue.labellist labellist1,_,labellist1right))::(_,(
MlyValue.label label1,label1left,_))::rest671) => let val result=
MlyValue.labellist(fn _ => let val label as label1=label1 ()
val labellist as labellist1=labellist1 ()
 in (wrap(label::node labellist, left label, right labellist)) end
)
 in (LrTable.NT 47,(result,label1left,labellist1right),rest671) end
| (222,(_,(_,_,YCOLONright as YCOLON1right))::(_,(MlyValue.rexpression
 rexpression1,_,_))::(_,(_,CASEleft as CASE1left,_))::rest671) => let 
val result=MlyValue.label(fn _ => let val rexpression as rexpression1=
rexpression1 ()
 in (wrap(SOME rexpression, CASEleft, YCOLONright)) end
)
 in (LrTable.NT 48,(result,CASE1left,YCOLON1right),rest671) end
| (223,(_,(_,_,YCOLONright as YCOLON1right))::(_,(_,DEFAULTleft as 
DEFAULT1left,_))::rest671) => let val result=MlyValue.label(fn _ => (
wrap(NONE, DEFAULTleft, YCOLONright)))
 in (LrTable.NT 48,(result,DEFAULT1left,YCOLON1right),rest671) end
| (224,(_,(_,_,YSEMI1right))::(_,(MlyValue.opt_for1_expr 
opt_for1_expr1,opt_for1_expr1left,_))::rest671) => let val result=
MlyValue.opt_for1_bitem(fn _ => let val opt_for1_expr as 
opt_for1_expr1=opt_for1_expr1 ()
 in ([BI_Stmt opt_for1_expr]) end
)
 in (LrTable.NT 49,(result,opt_for1_expr1left,YSEMI1right),rest671)
 end
| (225,(_,(MlyValue.declaration declaration1,declaration1left,
declaration1right))::rest671) => let val result=
MlyValue.opt_for1_bitem(fn _ => let val declaration as declaration1=
declaration1 ()
 in (map BI_Decl declaration) end
)
 in (LrTable.NT 49,(result,declaration1left,declaration1right),rest671
) end
| (226,rest671) => let val result=MlyValue.opt_for1_expr(fn _ => (
swrap(EmptyStmt, defaultPos, defaultPos)))
 in (LrTable.NT 50,(result,defaultPos,defaultPos),rest671) end
| (227,(_,(MlyValue.opt_for1_expr0 opt_for1_expr01,opt_for1_expr01left
,opt_for1_expr01right))::rest671) => let val result=
MlyValue.opt_for1_expr(fn _ => let val opt_for1_expr0 as 
opt_for1_expr01=opt_for1_expr01 ()
 in (
if length opt_for1_expr0 = 1 then
         hd opt_for1_expr0
       else swrap(Block(AstDatatype.Closed, map BI_Stmt opt_for1_expr0),
                  sleft (hd opt_for1_expr0),
                  sright (List.last opt_for1_expr0))
) end
)
 in (LrTable.NT 50,(result,opt_for1_expr01left,opt_for1_expr01right),
rest671) end
| (228,(_,(MlyValue.opt_for1_exprbase opt_for1_exprbase1,
opt_for1_exprbase1left,opt_for1_exprbase1right))::rest671) => let val 
result=MlyValue.opt_for1_expr0(fn _ => let val opt_for1_exprbase as 
opt_for1_exprbase1=opt_for1_exprbase1 ()
 in ([opt_for1_exprbase]) end
)
 in (LrTable.NT 51,(result,opt_for1_exprbase1left,
opt_for1_exprbase1right),rest671) end
| (229,(_,(MlyValue.opt_for1_expr0 opt_for1_expr01,_,
opt_for1_expr01right))::_::(_,(MlyValue.opt_for1_exprbase 
opt_for1_exprbase1,opt_for1_exprbase1left,_))::rest671) => let val 
result=MlyValue.opt_for1_expr0(fn _ => let val opt_for1_exprbase as 
opt_for1_exprbase1=opt_for1_exprbase1 ()
val opt_for1_expr0 as opt_for1_expr01=opt_for1_expr01 ()
 in (opt_for1_exprbase::opt_for1_expr0) end
)
 in (LrTable.NT 51,(result,opt_for1_exprbase1left,opt_for1_expr01right
),rest671) end
| (230,(_,(MlyValue.rexpression rexpression1,_,rexpression1right))::_
::(_,(MlyValue.lexpression lexpression1,lexpression1left,_))::rest671)
 => let val result=MlyValue.opt_for1_exprbase(fn _ => let val 
lexpression as lexpression1=lexpression1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
swrap(Assign(lexpression,rexpression),
             eleft lexpression, eright rexpression)
) end
)
 in (LrTable.NT 52,(result,lexpression1left,rexpression1right),rest671
) end
| (231,rest671) => let val result=MlyValue.opt_for2_expr(fn _ => (
expr_int 1))
 in (LrTable.NT 53,(result,defaultPos,defaultPos),rest671) end
| (232,(_,(MlyValue.rexpression rexpression1,rexpression1left,
rexpression1right))::rest671) => let val result=MlyValue.opt_for2_expr
(fn _ => let val rexpression as rexpression1=rexpression1 ()
 in (rexpression) end
)
 in (LrTable.NT 53,(result,rexpression1left,rexpression1right),rest671
) end
| (233,rest671) => let val result=MlyValue.opt_for3_expr(fn _ => (
swrap(EmptyStmt,defaultPos,defaultPos)))
 in (LrTable.NT 54,(result,defaultPos,defaultPos),rest671) end
| (234,(_,(MlyValue.opt_for3_expr0 opt_for3_expr01,opt_for3_expr01left
,opt_for3_expr01right))::rest671) => let val result=
MlyValue.opt_for3_expr(fn _ => let val opt_for3_expr0 as 
opt_for3_expr01=opt_for3_expr01 ()
 in (
if length opt_for3_expr0 = 1 then
         hd opt_for3_expr0
       else swrap(Block(AstDatatype.Closed, map BI_Stmt opt_for3_expr0),
                  sleft (hd opt_for3_expr0),
                  sright (List.last opt_for3_expr0))
) end
)
 in (LrTable.NT 54,(result,opt_for3_expr01left,opt_for3_expr01right),
rest671) end
| (235,(_,(MlyValue.opt_for3_exprbase opt_for3_exprbase1,
opt_for3_exprbase1left,opt_for3_exprbase1right))::rest671) => let val 
result=MlyValue.opt_for3_expr0(fn _ => let val opt_for3_exprbase as 
opt_for3_exprbase1=opt_for3_exprbase1 ()
 in ([opt_for3_exprbase]) end
)
 in (LrTable.NT 55,(result,opt_for3_exprbase1left,
opt_for3_exprbase1right),rest671) end
| (236,(_,(_,_,SPEC_BLOCKEND1right))::(_,(MlyValue.STRING_LITERAL 
STRING_LITERAL1,_,STRING_LITERALright))::(_,(_,AUXUPDleft,_))::(_,(
MlyValue.opt_for3_exprbase opt_for3_exprbase1,opt_for3_exprbase1left,_
))::rest671) => let val result=MlyValue.opt_for3_expr0(fn _ => let 
val opt_for3_exprbase as opt_for3_exprbase1=opt_for3_exprbase1 ()
val STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (
[opt_for3_exprbase, swrap(Auxupd STRING_LITERAL, AUXUPDleft,
                                           STRING_LITERALright)]
) end
)
 in (LrTable.NT 55,(result,opt_for3_exprbase1left,SPEC_BLOCKEND1right)
,rest671) end
| (237,(_,(MlyValue.opt_for3_expr0 opt_for3_expr01,_,
opt_for3_expr01right))::_::(_,(MlyValue.opt_for3_exprbase 
opt_for3_exprbase1,opt_for3_exprbase1left,_))::rest671) => let val 
result=MlyValue.opt_for3_expr0(fn _ => let val opt_for3_exprbase as 
opt_for3_exprbase1=opt_for3_exprbase1 ()
val opt_for3_expr0 as opt_for3_expr01=opt_for3_expr01 ()
 in (opt_for3_exprbase::opt_for3_expr0) end
)
 in (LrTable.NT 55,(result,opt_for3_exprbase1left,opt_for3_expr01right
),rest671) end
| (238,(_,(MlyValue.rexpression rexpression1,_,rexpression1right))::(_
,(MlyValue.assignop assignop1,_,_))::(_,(MlyValue.lexpression 
lexpression1,lexpression1left,_))::rest671) => let val result=
MlyValue.opt_for3_exprbase(fn _ => let val lexpression as lexpression1
=lexpression1 ()
val assignop as assignop1=assignop1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
swrap(parse_stdassignop ctxt (lexpression, assignop, rexpression),
             eleft lexpression, eright rexpression)
) end
)
 in (LrTable.NT 56,(result,lexpression1left,rexpression1right),rest671
) end
| (239,(_,(MlyValue.lexpression lexpression1,lexpression1left,
lexpression1right))::rest671) => let val result=
MlyValue.opt_for3_exprbase(fn _ => let val lexpression as lexpression1
=lexpression1 ()
 in (
swrap (pre_post_op_to_stmt ctxt lexpression, eleft lexpression, eright lexpression)
) end
)
 in (LrTable.NT 56,(result,lexpression1left,lexpression1right),rest671
) end
| (240,rest671) => let val result=MlyValue.opt_rexpr_list(fn _ => (
wrap([], defaultPos, defaultPos)))
 in (LrTable.NT 74,(result,defaultPos,defaultPos),rest671) end
| (241,(_,(MlyValue.rexpr_list rexpr_list1,rexpr_list1left,
rexpr_list1right))::rest671) => let val result=MlyValue.opt_rexpr_list
(fn _ => let val rexpr_list as rexpr_list1=rexpr_list1 ()
 in (rexpr_list) end
)
 in (LrTable.NT 74,(result,rexpr_list1left,rexpr_list1right),rest671)
 end
| (242,(_,(MlyValue.rexpression rexpression1,rexpression1left,
rexpression1right))::rest671) => let val result=MlyValue.rexpr_list(
fn _ => let val rexpression as rexpression1=rexpression1 ()
 in (
wrap([rexpression], eleft rexpression,
                               eright rexpression)
) end
)
 in (LrTable.NT 73,(result,rexpression1left,rexpression1right),rest671
) end
| (243,(_,(MlyValue.rexpr_list rexpr_list1,_,rexpr_list1right))::_::(_
,(MlyValue.rexpression rexpression1,rexpression1left,_))::rest671) => 
let val result=MlyValue.rexpr_list(fn _ => let val rexpression as 
rexpression1=rexpression1 ()
val rexpr_list as rexpr_list1=rexpr_list1 ()
 in (
wrap (rexpression :: node rexpr_list,
                       eleft rexpression, right rexpr_list)
) end
)
 in (LrTable.NT 73,(result,rexpression1left,rexpr_list1right),rest671)
 end
| (244,(_,(MlyValue.logical_OR_expression logical_OR_expression1,
logical_OR_expression1left,logical_OR_expression1right))::rest671) => 
let val result=MlyValue.rexpression(fn _ => let val 
logical_OR_expression as logical_OR_expression1=logical_OR_expression1
 ()
 in (logical_OR_expression) end
)
 in (LrTable.NT 72,(result,logical_OR_expression1left,
logical_OR_expression1right),rest671) end
| (245,(_,(MlyValue.rexpression rexpression2,_,rexpression2right))::_
::(_,(MlyValue.rexpression rexpression1,_,_))::_::(_,(
MlyValue.logical_OR_expression logical_OR_expression1,
logical_OR_expression1left,_))::rest671) => let val result=
MlyValue.rexpression(fn _ => let val logical_OR_expression as 
logical_OR_expression1=logical_OR_expression1 ()
val rexpression1=rexpression1 ()
val rexpression2=rexpression2 ()
 in (
ewrap(CondExp(logical_OR_expression, rexpression1,
                               rexpression2),
                       eleft logical_OR_expression,
                       eright rexpression2)
) end
)
 in (LrTable.NT 72,(result,logical_OR_expression1left,
rexpression2right),rest671) end
| (246,(_,(MlyValue.rexpression rexpression1,_,rexpression1right))::(_
,(MlyValue.assignop assignop1,_,_))::(_,(MlyValue.lexpression 
lexpression1,lexpression1left,_))::rest671) => let val result=
MlyValue.rexpression(fn _ => let val lexpression as lexpression1=
lexpression1 ()
val assignop as assignop1=assignop1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
ewrap(parse_stdassignop_expr ctxt (lexpression, assignop, rexpression),
                  eleft lexpression, eright rexpression)
) end
)
 in (LrTable.NT 72,(result,lexpression1left,rexpression1right),rest671
) end
| (247,(_,(_,_,RPAREN1right))::(_,(MlyValue.compound_statement 
compound_statement1,_,_))::(_,(_,LPAREN1left,_))::rest671) => let val 
result=MlyValue.rexpression(fn _ => let val compound_statement as 
compound_statement1=compound_statement1 ()
 in (
let 
                  val l = left compound_statement
                  val r = right compound_statement
                 in check_statement_expression_blockitems ctxt l r (node compound_statement) end
) end
)
 in (LrTable.NT 72,(result,LPAREN1left,RPAREN1right),rest671) end
| (248,(_,(MlyValue.logical_AND_expression logical_AND_expression1,
logical_AND_expression1left,logical_AND_expression1right))::rest671)
 => let val result=MlyValue.logical_OR_expression(fn _ => let val 
logical_AND_expression as logical_AND_expression1=
logical_AND_expression1 ()
 in (logical_AND_expression) end
)
 in (LrTable.NT 76,(result,logical_AND_expression1left,
logical_AND_expression1right),rest671) end
| (249,(_,(MlyValue.logical_AND_expression logical_AND_expression1,_,
logical_AND_expression1right))::_::(_,(MlyValue.logical_OR_expression 
logical_OR_expression1,logical_OR_expression1left,_))::rest671) => 
let val result=MlyValue.logical_OR_expression(fn _ => let val 
logical_OR_expression as logical_OR_expression1=logical_OR_expression1
 ()
val logical_AND_expression as logical_AND_expression1=
logical_AND_expression1 ()
 in (
ewrap(BinOp(LogOr, logical_OR_expression,
                             logical_AND_expression),
                       eleft logical_OR_expression,
                       eright logical_AND_expression)
) end
)
 in (LrTable.NT 76,(result,logical_OR_expression1left,
logical_AND_expression1right),rest671) end
| (250,(_,(MlyValue.inclusive_OR_expression inclusive_OR_expression1,
inclusive_OR_expression1left,inclusive_OR_expression1right))::rest671)
 => let val result=MlyValue.logical_AND_expression(fn _ => let val 
inclusive_OR_expression as inclusive_OR_expression1=
inclusive_OR_expression1 ()
 in (inclusive_OR_expression) end
)
 in (LrTable.NT 75,(result,inclusive_OR_expression1left,
inclusive_OR_expression1right),rest671) end
| (251,(_,(MlyValue.inclusive_OR_expression inclusive_OR_expression1,_
,inclusive_OR_expression1right))::_::(_,(
MlyValue.logical_AND_expression logical_AND_expression1,
logical_AND_expression1left,_))::rest671) => let val result=
MlyValue.logical_AND_expression(fn _ => let val logical_AND_expression
 as logical_AND_expression1=logical_AND_expression1 ()
val inclusive_OR_expression as inclusive_OR_expression1=
inclusive_OR_expression1 ()
 in (
ewrap(BinOp(LogAnd, logical_AND_expression, inclusive_OR_expression),
                       eleft logical_AND_expression,
                       eright inclusive_OR_expression)
) end
)
 in (LrTable.NT 75,(result,logical_AND_expression1left,
inclusive_OR_expression1right),rest671) end
| (252,(_,(MlyValue.exclusive_OR_expression exclusive_OR_expression1,
exclusive_OR_expression1left,exclusive_OR_expression1right))::rest671)
 => let val result=MlyValue.inclusive_OR_expression(fn _ => let val 
exclusive_OR_expression as exclusive_OR_expression1=
exclusive_OR_expression1 ()
 in (exclusive_OR_expression) end
)
 in (LrTable.NT 77,(result,exclusive_OR_expression1left,
exclusive_OR_expression1right),rest671) end
| (253,(_,(MlyValue.exclusive_OR_expression exclusive_OR_expression1,_
,exclusive_OR_expression1right))::_::(_,(
MlyValue.inclusive_OR_expression inclusive_OR_expression1,
inclusive_OR_expression1left,_))::rest671) => let val result=
MlyValue.inclusive_OR_expression(fn _ => let val 
inclusive_OR_expression as inclusive_OR_expression1=
inclusive_OR_expression1 ()
val exclusive_OR_expression as exclusive_OR_expression1=
exclusive_OR_expression1 ()
 in (
ewrap(BinOp(BitwiseOr, inclusive_OR_expression,
                              exclusive_OR_expression),
                        eleft inclusive_OR_expression,
                        eright exclusive_OR_expression)
) end
)
 in (LrTable.NT 77,(result,inclusive_OR_expression1left,
exclusive_OR_expression1right),rest671) end
| (254,(_,(MlyValue.AND_expression AND_expression1,AND_expression1left
,AND_expression1right))::rest671) => let val result=
MlyValue.exclusive_OR_expression(fn _ => let val AND_expression as 
AND_expression1=AND_expression1 ()
 in (AND_expression) end
)
 in (LrTable.NT 78,(result,AND_expression1left,AND_expression1right),
rest671) end
| (255,(_,(MlyValue.AND_expression AND_expression1,_,
AND_expression1right))::_::(_,(MlyValue.exclusive_OR_expression 
exclusive_OR_expression1,exclusive_OR_expression1left,_))::rest671)
 => let val result=MlyValue.exclusive_OR_expression(fn _ => let val 
exclusive_OR_expression as exclusive_OR_expression1=
exclusive_OR_expression1 ()
val AND_expression as AND_expression1=AND_expression1 ()
 in (
ewrap(BinOp(BitwiseXOr, exclusive_OR_expression,
                              AND_expression),
                        eleft exclusive_OR_expression,
                        eright AND_expression)
) end
)
 in (LrTable.NT 78,(result,exclusive_OR_expression1left,
AND_expression1right),rest671) end
| (256,(_,(MlyValue.equality_expression equality_expression1,
equality_expression1left,equality_expression1right))::rest671) => let 
val result=MlyValue.AND_expression(fn _ => let val equality_expression
 as equality_expression1=equality_expression1 ()
 in (equality_expression) end
)
 in (LrTable.NT 79,(result,equality_expression1left,
equality_expression1right),rest671) end
| (257,(_,(MlyValue.equality_expression equality_expression1,_,
equality_expression1right))::_::(_,(MlyValue.AND_expression 
AND_expression1,AND_expression1left,_))::rest671) => let val result=
MlyValue.AND_expression(fn _ => let val AND_expression as 
AND_expression1=AND_expression1 ()
val equality_expression as equality_expression1=equality_expression1 
()
 in (
ewrap(BinOp(BitwiseAnd, AND_expression, equality_expression),
                       eleft AND_expression,
                       eright equality_expression)
) end
)
 in (LrTable.NT 79,(result,AND_expression1left,
equality_expression1right),rest671) end
| (258,(_,(MlyValue.relational_expression relational_expression1,
relational_expression1left,relational_expression1right))::rest671) => 
let val result=MlyValue.equality_expression(fn _ => let val 
relational_expression as relational_expression1=relational_expression1
 ()
 in (relational_expression) end
)
 in (LrTable.NT 80,(result,relational_expression1left,
relational_expression1right),rest671) end
| (259,(_,(MlyValue.relational_expression relational_expression1,_,
relational_expression1right))::_::(_,(MlyValue.equality_expression 
equality_expression1,equality_expression1left,_))::rest671) => let 
val result=MlyValue.equality_expression(fn _ => let val 
equality_expression as equality_expression1=equality_expression1 ()
val relational_expression as relational_expression1=
relational_expression1 ()
 in (
ewrap(BinOp(Equals, equality_expression, relational_expression),
                       eleft equality_expression,
                       eright relational_expression)
) end
)
 in (LrTable.NT 80,(result,equality_expression1left,
relational_expression1right),rest671) end
| (260,(_,(MlyValue.relational_expression relational_expression1,_,
relational_expression1right))::_::(_,(MlyValue.equality_expression 
equality_expression1,equality_expression1left,_))::rest671) => let 
val result=MlyValue.equality_expression(fn _ => let val 
equality_expression as equality_expression1=equality_expression1 ()
val relational_expression as relational_expression1=
relational_expression1 ()
 in (
ewrap(BinOp(NotEquals, equality_expression, relational_expression),
                       eleft equality_expression,
                       eright relational_expression)
) end
)
 in (LrTable.NT 80,(result,equality_expression1left,
relational_expression1right),rest671) end
| (261,(_,(MlyValue.shift_expression shift_expression1,
shift_expression1left,shift_expression1right))::rest671) => let val 
result=MlyValue.relational_expression(fn _ => let val shift_expression
 as shift_expression1=shift_expression1 ()
 in (shift_expression) end
)
 in (LrTable.NT 81,(result,shift_expression1left,
shift_expression1right),rest671) end
| (262,(_,(MlyValue.shift_expression shift_expression1,_,
shift_expression1right))::_::(_,(MlyValue.relational_expression 
relational_expression1,relational_expression1left,_))::rest671) => 
let val result=MlyValue.relational_expression(fn _ => let val 
relational_expression as relational_expression1=relational_expression1
 ()
val shift_expression as shift_expression1=shift_expression1 ()
 in (
ewrap(BinOp(Lt, relational_expression, shift_expression),
                       eleft relational_expression,
                       eright shift_expression)
) end
)
 in (LrTable.NT 81,(result,relational_expression1left,
shift_expression1right),rest671) end
| (263,(_,(MlyValue.shift_expression shift_expression1,_,
shift_expression1right))::_::(_,(MlyValue.relational_expression 
relational_expression1,relational_expression1left,_))::rest671) => 
let val result=MlyValue.relational_expression(fn _ => let val 
relational_expression as relational_expression1=relational_expression1
 ()
val shift_expression as shift_expression1=shift_expression1 ()
 in (
ewrap(BinOp(Gt, relational_expression, shift_expression),
                       eleft relational_expression,
                       eright shift_expression)
) end
)
 in (LrTable.NT 81,(result,relational_expression1left,
shift_expression1right),rest671) end
| (264,(_,(MlyValue.shift_expression shift_expression1,_,
shift_expression1right))::_::(_,(MlyValue.relational_expression 
relational_expression1,relational_expression1left,_))::rest671) => 
let val result=MlyValue.relational_expression(fn _ => let val 
relational_expression as relational_expression1=relational_expression1
 ()
val shift_expression as shift_expression1=shift_expression1 ()
 in (
ewrap(BinOp(Leq, relational_expression, shift_expression),
                       eleft relational_expression,
                       eright shift_expression)
) end
)
 in (LrTable.NT 81,(result,relational_expression1left,
shift_expression1right),rest671) end
| (265,(_,(MlyValue.shift_expression shift_expression1,_,
shift_expression1right))::_::(_,(MlyValue.relational_expression 
relational_expression1,relational_expression1left,_))::rest671) => 
let val result=MlyValue.relational_expression(fn _ => let val 
relational_expression as relational_expression1=relational_expression1
 ()
val shift_expression as shift_expression1=shift_expression1 ()
 in (
ewrap(BinOp(Geq, relational_expression, shift_expression),
                       eleft relational_expression,
                       eright shift_expression)
) end
)
 in (LrTable.NT 81,(result,relational_expression1left,
shift_expression1right),rest671) end
| (266,(_,(MlyValue.additive_expression additive_expression1,
additive_expression1left,additive_expression1right))::rest671) => let 
val result=MlyValue.shift_expression(fn _ => let val 
additive_expression as additive_expression1=additive_expression1 ()
 in (additive_expression) end
)
 in (LrTable.NT 83,(result,additive_expression1left,
additive_expression1right),rest671) end
| (267,(_,(MlyValue.additive_expression additive_expression1,_,
additive_expression1right))::_::(_,(MlyValue.shift_expression 
shift_expression1,shift_expression1left,_))::rest671) => let val 
result=MlyValue.shift_expression(fn _ => let val shift_expression as 
shift_expression1=shift_expression1 ()
val additive_expression as additive_expression1=additive_expression1 
()
 in (
ewrap(BinOp(LShift, shift_expression, additive_expression),
                        eleft shift_expression,
                        eright additive_expression)
) end
)
 in (LrTable.NT 83,(result,shift_expression1left,
additive_expression1right),rest671) end
| (268,(_,(MlyValue.additive_expression additive_expression1,_,
additive_expression1right))::_::(_,(MlyValue.shift_expression 
shift_expression1,shift_expression1left,_))::rest671) => let val 
result=MlyValue.shift_expression(fn _ => let val shift_expression as 
shift_expression1=shift_expression1 ()
val additive_expression as additive_expression1=additive_expression1 
()
 in (
ewrap(BinOp(RShift, shift_expression, additive_expression),
                        eleft shift_expression,
                        eright additive_expression)
) end
)
 in (LrTable.NT 83,(result,shift_expression1left,
additive_expression1right),rest671) end
| (269,(_,(MlyValue.multiplicative_expression 
multiplicative_expression1,multiplicative_expression1left,
multiplicative_expression1right))::rest671) => let val result=
MlyValue.additive_expression(fn _ => let val multiplicative_expression
 as multiplicative_expression1=multiplicative_expression1 ()
 in (multiplicative_expression) end
)
 in (LrTable.NT 82,(result,multiplicative_expression1left,
multiplicative_expression1right),rest671) end
| (270,(_,(MlyValue.multiplicative_expression 
multiplicative_expression1,_,multiplicative_expression1right))::_::(_,
(MlyValue.additive_expression additive_expression1,
additive_expression1left,_))::rest671) => let val result=
MlyValue.additive_expression(fn _ => let val additive_expression as 
additive_expression1=additive_expression1 ()
val multiplicative_expression as multiplicative_expression1=
multiplicative_expression1 ()
 in (
ewrap(BinOp(Plus, additive_expression, multiplicative_expression),
                     eleft additive_expression,
                     eright multiplicative_expression)
) end
)
 in (LrTable.NT 82,(result,additive_expression1left,
multiplicative_expression1right),rest671) end
| (271,(_,(MlyValue.multiplicative_expression 
multiplicative_expression1,_,multiplicative_expression1right))::_::(_,
(MlyValue.additive_expression additive_expression1,
additive_expression1left,_))::rest671) => let val result=
MlyValue.additive_expression(fn _ => let val additive_expression as 
additive_expression1=additive_expression1 ()
val multiplicative_expression as multiplicative_expression1=
multiplicative_expression1 ()
 in (
ewrap(BinOp(Minus, additive_expression, multiplicative_expression),
                     eleft additive_expression,
                     eright multiplicative_expression)
) end
)
 in (LrTable.NT 82,(result,additive_expression1left,
multiplicative_expression1right),rest671) end
| (272,(_,(MlyValue.cast_expression cast_expression1,
cast_expression1left,cast_expression1right))::rest671) => let val 
result=MlyValue.multiplicative_expression(fn _ => let val 
cast_expression as cast_expression1=cast_expression1 ()
 in (cast_expression) end
)
 in (LrTable.NT 84,(result,cast_expression1left,cast_expression1right)
,rest671) end
| (273,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::_::(_,(MlyValue.multiplicative_expression 
multiplicative_expression1,multiplicative_expression1left,_))::rest671
) => let val result=MlyValue.multiplicative_expression(fn _ => let 
val multiplicative_expression as multiplicative_expression1=
multiplicative_expression1 ()
val cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(BinOp(Times, multiplicative_expression, cast_expression),
                eleft multiplicative_expression,
                eright cast_expression)
) end
)
 in (LrTable.NT 84,(result,multiplicative_expression1left,
cast_expression1right),rest671) end
| (274,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::_::(_,(MlyValue.multiplicative_expression 
multiplicative_expression1,multiplicative_expression1left,_))::rest671
) => let val result=MlyValue.multiplicative_expression(fn _ => let 
val multiplicative_expression as multiplicative_expression1=
multiplicative_expression1 ()
val cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(BinOp(Divides, multiplicative_expression, cast_expression),
                eleft multiplicative_expression,
                eright cast_expression)
) end
)
 in (LrTable.NT 84,(result,multiplicative_expression1left,
cast_expression1right),rest671) end
| (275,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::_::(_,(MlyValue.multiplicative_expression 
multiplicative_expression1,multiplicative_expression1left,_))::rest671
) => let val result=MlyValue.multiplicative_expression(fn _ => let 
val multiplicative_expression as multiplicative_expression1=
multiplicative_expression1 ()
val cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(BinOp(Modulus, multiplicative_expression, cast_expression),
                eleft multiplicative_expression,
                eright cast_expression)
) end
)
 in (LrTable.NT 84,(result,multiplicative_expression1left,
cast_expression1right),rest671) end
| (276,(_,(MlyValue.unary_expression unary_expression1,
unary_expression1left,unary_expression1right))::rest671) => let val 
result=MlyValue.cast_expression(fn _ => let val unary_expression as 
unary_expression1=unary_expression1 ()
 in (unary_expression) end
)
 in (LrTable.NT 86,(result,unary_expression1left,
unary_expression1right),rest671) end
| (277,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::_::(_,(MlyValue.type_name type_name1,_,_))::(
_,(_,LPARENleft as LPAREN1left,_))::rest671) => let val result=
MlyValue.cast_expression(fn _ => let val type_name as type_name1=
type_name1 ()
val cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(TypeCast(type_name, cast_expression), LPARENleft,
              eright cast_expression)
) end
)
 in (LrTable.NT 86,(result,LPAREN1left,cast_expression1right),rest671)
 end
| (278,(_,(MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,postfix_expression1right))::rest671) => let 
val result=MlyValue.unary_expression(fn _ => let val 
postfix_expression as postfix_expression1=postfix_expression1 ()
 in (postfix_expression) end
)
 in (LrTable.NT 85,(result,postfix_expression1left,
postfix_expression1right),rest671) end
| (279,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::(_,(_,YMINUSleft as YMINUS1left,_))::rest671)
 => let val result=MlyValue.unary_expression(fn _ => let val 
cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(UnOp(Negate, cast_expression), YMINUSleft,
                       eright cast_expression)
) end
)
 in (LrTable.NT 85,(result,YMINUS1left,cast_expression1right),rest671)
 end
| (280,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::(_,(_,YNOTleft as YNOT1left,_))::rest671) => 
let val result=MlyValue.unary_expression(fn _ => let val 
cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(UnOp(Not, cast_expression),
                       YNOTleft, eright cast_expression)
) end
)
 in (LrTable.NT 85,(result,YNOT1left,cast_expression1right),rest671)
 end
| (281,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::(_,(_,YBITNOTleft as YBITNOT1left,_))::
rest671) => let val result=MlyValue.unary_expression(fn _ => let val 
cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(UnOp(BitNegate, cast_expression),
                       YBITNOTleft, eright cast_expression)
) end
)
 in (LrTable.NT 85,(result,YBITNOT1left,cast_expression1right),rest671
) end
| (282,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::(_,(_,YAMPERSANDleft as YAMPERSAND1left,_))::
rest671) => let val result=MlyValue.unary_expression(fn _ => let val 
cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(UnOp(Addr, cast_expression),
                       YAMPERSANDleft, eright cast_expression)
) end
)
 in (LrTable.NT 85,(result,YAMPERSAND1left,cast_expression1right),
rest671) end
| (283,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::(_,(_,YSTARleft as YSTAR1left,_))::rest671)
 => let val result=MlyValue.unary_expression(fn _ => let val 
cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(Deref cast_expression, YSTARleft,
                       eright cast_expression)
) end
)
 in (LrTable.NT 85,(result,YSTAR1left,cast_expression1right),rest671)
 end
| (284,(_,(MlyValue.unary_expression unary_expression1,_,
unary_expression1right))::(_,(_,YSIZEOFleft as YSIZEOF1left,_))::
rest671) => let val result=MlyValue.unary_expression(fn _ => let val 
unary_expression as unary_expression1=unary_expression1 ()
 in (
ewrap(Sizeof unary_expression, YSIZEOFleft,
                       eright unary_expression)
) end
)
 in (LrTable.NT 85,(result,YSIZEOF1left,unary_expression1right),
rest671) end
| (285,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.type_name 
type_name1,_,_))::_::(_,(_,YSIZEOFleft as YSIZEOF1left,_))::rest671)
 => let val result=MlyValue.unary_expression(fn _ => let val type_name
 as type_name1=type_name1 ()
 in (ewrap(SizeofTy type_name, YSIZEOFleft, RPARENright)) end
)
 in (LrTable.NT 85,(result,YSIZEOF1left,RPAREN1right),rest671) end
| (286,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.fieldlist 
fieldlist1,_,_))::_::(_,(MlyValue.type_specifier type_specifier1,_,_))
::_::(_,(_,YOFFSETOFleft as YOFFSETOF1left,_))::rest671) => let val 
result=MlyValue.unary_expression(fn _ => let val type_specifier as 
type_specifier1=type_specifier1 ()
val fieldlist as fieldlist1=fieldlist1 ()
 in (
let
                   val decls = wrap([TypeSpec type_specifier], tsleft type_specifier,
                               tsright type_specifier)
                   val ty = extract_type ctxt decls
                 in ewrap(OffsetOf (ty, fieldlist), YOFFSETOFleft, RPARENright) end
) end
)
 in (LrTable.NT 85,(result,YOFFSETOF1left,RPAREN1right),rest671) end
| (287,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 
result=MlyValue.fieldlist(fn _ => let val ID as ID1=ID1 ()
 in ([C_field_name ID]) end
)
 in (LrTable.NT 91,(result,ID1left,ID1right),rest671) end
| (288,(_,(MlyValue.ID ID1,_,ID1right))::_::(_,(MlyValue.fieldlist 
fieldlist1,fieldlist1left,_))::rest671) => let val result=
MlyValue.fieldlist(fn _ => let val fieldlist as fieldlist1=fieldlist1 
()
val ID as ID1=ID1 ()
 in (fieldlist @ [C_field_name ID]) end
)
 in (LrTable.NT 91,(result,fieldlist1left,ID1right),rest671) end
| (289,(_,(MlyValue.primary_expression primary_expression1,
primary_expression1left,primary_expression1right))::rest671) => let 
val result=MlyValue.postfix_expression(fn _ => let val 
primary_expression as primary_expression1=primary_expression1 ()
 in (primary_expression) end
)
 in (LrTable.NT 87,(result,primary_expression1left,
primary_expression1right),rest671) end
| (290,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,(
MlyValue.rexpression rexpression1,_,_))::_::(_,(
MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,_))::rest671) => let val result=
MlyValue.postfix_expression(fn _ => let val postfix_expression as 
postfix_expression1=postfix_expression1 ()
val rexpression as rexpression1=rexpression1 ()
 in (
ewrap(ArrayDeref(postfix_expression, rexpression),
               eleft postfix_expression,
               RBRACKETright)
) end
)
 in (LrTable.NT 87,(result,postfix_expression1left,RBRACKET1right),
rest671) end
| (291,(_,(_,_,RPARENright as RPAREN1right))::(_,(
MlyValue.opt_rexpr_list opt_rexpr_list1,_,_))::_::(_,(
MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,_))::rest671) => let val result=
MlyValue.postfix_expression(fn _ => let val postfix_expression as 
postfix_expression1=postfix_expression1 ()
val opt_rexpr_list as opt_rexpr_list1=opt_rexpr_list1 ()
 in (
let
           val e = ewrap(EFnCall(AstDatatype.Expression, postfix_expression, node opt_rexpr_list),
                         eleft postfix_expression,
                         RPARENright)
         in
           handle_builtin_fns ctxt e
         end
) end
)
 in (LrTable.NT 87,(result,postfix_expression1left,RPAREN1right),
rest671) end
| (292,(_,(MlyValue.ID ID1,_,IDright as ID1right))::_::(_,(
MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,_))::rest671) => let val result=
MlyValue.postfix_expression(fn _ => let val postfix_expression as 
postfix_expression1=postfix_expression1 ()
val ID as ID1=ID1 ()
 in (
ewrap(StructDot(postfix_expression, C_field_name ID),
               eleft postfix_expression,
               IDright)
) end
)
 in (LrTable.NT 87,(result,postfix_expression1left,ID1right),rest671)
 end
| (293,(_,(MlyValue.ID ID1,_,IDright as ID1right))::_::(_,(
MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,_))::rest671) => let val result=
MlyValue.postfix_expression(fn _ => let val postfix_expression as 
postfix_expression1=postfix_expression1 ()
val ID as ID1=ID1 ()
 in (
ewrap(StructDot(ewrap(Deref postfix_expression,
                               eleft postfix_expression,
                               eright postfix_expression),
                         C_field_name ID),
               eleft postfix_expression,
               IDright)
) end
)
 in (LrTable.NT 87,(result,postfix_expression1left,ID1right),rest671)
 end
| (294,(_,(_,_,RCURLYright as RCURLY1right))::(_,(
MlyValue.initializer_list initializer_list1,_,_))::_::_::(_,(
MlyValue.type_name type_name1,_,_))::(_,(_,LPARENleft as LPAREN1left,_
))::rest671) => let val result=MlyValue.postfix_expression(fn _ => 
let val type_name as type_name1=type_name1 ()
val initializer_list as initializer_list1=initializer_list1 ()
 in (
ewrap(CompLiteral(node type_name, initializer_list),
                LPARENleft, RCURLYright)
) end
)
 in (LrTable.NT 87,(result,LPAREN1left,RCURLY1right),rest671) end
| (295,(_,(_,_,PLUSPLUSright as PLUSPLUS1right))::(_,(
MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,_))::rest671) => let val result=
MlyValue.postfix_expression(fn _ => let val postfix_expression as 
postfix_expression1=postfix_expression1 ()
 in (
ewrap(postinc_expr postfix_expression, eleft postfix_expression,
                       PLUSPLUSright)
) end
)
 in (LrTable.NT 87,(result,postfix_expression1left,PLUSPLUS1right),
rest671) end
| (296,(_,(_,_,MINUSMINUSright as MINUSMINUS1right))::(_,(
MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,_))::rest671) => let val result=
MlyValue.postfix_expression(fn _ => let val postfix_expression as 
postfix_expression1=postfix_expression1 ()
 in (
ewrap(postdec_expr postfix_expression, eleft postfix_expression,
                       MINUSMINUSright)
) end
)
 in (LrTable.NT 87,(result,postfix_expression1left,MINUSMINUS1right),
rest671) end
| (297,(_,(MlyValue.postfix_expression postfix_expression1,_,
postfix_expression1right))::(_,(_,PLUSPLUSleft as PLUSPLUS1left,_))::
rest671) => let val result=MlyValue.postfix_expression(fn _ => let 
val postfix_expression as postfix_expression1=postfix_expression1 ()
 in (
ewrap(preinc_expr postfix_expression, PLUSPLUSleft,
                       eright postfix_expression)
) end
)
 in (LrTable.NT 87,(result,PLUSPLUS1left,postfix_expression1right),
rest671) end
| (298,(_,(MlyValue.postfix_expression postfix_expression1,_,
postfix_expression1right))::(_,(_,MINUSMINUSleft as MINUSMINUS1left,_)
)::rest671) => let val result=MlyValue.postfix_expression(fn _ => let 
val postfix_expression as postfix_expression1=postfix_expression1 ()
 in (
ewrap(predec_expr postfix_expression, MINUSMINUSleft,
                       eright postfix_expression)
) end
)
 in (LrTable.NT 87,(result,MINUSMINUS1left,postfix_expression1right),
rest671) end
| (299,(_,(MlyValue.ID ID1,IDleft as ID1left,IDright as ID1right))::
rest671) => let val result=MlyValue.primary_expression(fn _ => let 
val ID as ID1=ID1 ()
 in (ewrap(Var (ID, Unsynchronized.ref NONE), IDleft, IDright)) end
)
 in (LrTable.NT 88,(result,ID1left,ID1right),rest671) end
| (300,(_,(MlyValue.constant constant1,constant1left,constant1right))
::rest671) => let val result=MlyValue.primary_expression(fn _ => let 
val constant as constant1=constant1 ()
 in (ewrap(Constant constant, left constant, right constant)) end
)
 in (LrTable.NT 88,(result,constant1left,constant1right),rest671) end
| (301,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.rexpression
 rexpression1,_,_))::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => 
let val result=MlyValue.primary_expression(fn _ => let val rexpression
 as rexpression1=rexpression1 ()
 in (ewrap(enode rexpression, LPARENleft, RPARENright)) end
)
 in (LrTable.NT 88,(result,LPAREN1left,RPAREN1right),rest671) end
| (302,(_,(_,_,RPAREN1right))::(_,(MlyValue.rexpr_list rexpr_list1,_,_
))::(_,(_,LPAREN1left,_))::rest671) => let val result=
MlyValue.primary_expression(fn _ => let val rexpr_list as rexpr_list1=
rexpr_list1 ()
 in (AstDatatype.comma_exprs (node (rexpr_list))) end
)
 in (LrTable.NT 88,(result,LPAREN1left,RPAREN1right),rest671) end
| (303,(_,(MlyValue.cstring_literal cstring_literal1,
cstring_literal1left,cstring_literal1right))::rest671) => let val 
result=MlyValue.primary_expression(fn _ => let val cstring_literal as 
cstring_literal1=cstring_literal1 ()
 in (
let val l = left cstring_literal  and r = right cstring_literal
        in
          ewrap(Constant (wrap (STRING_LIT (node cstring_literal), l, r)), l, r)
        end
) end
)
 in (LrTable.NT 88,(result,cstring_literal1left,cstring_literal1right)
,rest671) end
| (304,(_,(MlyValue.STRING_LITERAL STRING_LITERAL1,_,
STRING_LITERALright as STRING_LITERAL1right))::(_,(
MlyValue.cstring_literal cstring_literal1,cstring_literal1left,_))::
rest671) => let val result=MlyValue.cstring_literal(fn _ => let val 
cstring_literal as cstring_literal1=cstring_literal1 ()
val STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (
wrap(node cstring_literal ^ STRING_LITERAL, left cstring_literal,
             STRING_LITERALright)
) end
)
 in (LrTable.NT 101,(result,cstring_literal1left,STRING_LITERAL1right)
,rest671) end
| (305,(_,(MlyValue.STRING_LITERAL STRING_LITERAL1,STRING_LITERALleft
 as STRING_LITERAL1left,STRING_LITERALright as STRING_LITERAL1right))
::rest671) => let val result=MlyValue.cstring_literal(fn _ => let val 
STRING_LITERAL as STRING_LITERAL1=STRING_LITERAL1 ()
 in (wrap(STRING_LITERAL, STRING_LITERALleft, STRING_LITERALright))
 end
)
 in (LrTable.NT 101,(result,STRING_LITERAL1left,STRING_LITERAL1right),
rest671) end
| (306,(_,(MlyValue.NUMERIC_CONSTANT NUMERIC_CONSTANT1,
NUMERIC_CONSTANTleft as NUMERIC_CONSTANT1left,NUMERIC_CONSTANTright
 as NUMERIC_CONSTANT1right))::rest671) => let val result=
MlyValue.constant(fn _ => let val NUMERIC_CONSTANT as 
NUMERIC_CONSTANT1=NUMERIC_CONSTANT1 ()
 in (
wrap(NUMCONST NUMERIC_CONSTANT,
                                  NUMERIC_CONSTANTleft,
                                  NUMERIC_CONSTANTright)
) end
)
 in (LrTable.NT 89,(result,NUMERIC_CONSTANT1left,
NUMERIC_CONSTANT1right),rest671) end
| (307,(_,(MlyValue.postfix_expression postfix_expression1,
postfix_expression1left,postfix_expression1right))::rest671) => let 
val result=MlyValue.lexpression(fn _ => let val postfix_expression as 
postfix_expression1=postfix_expression1 ()
 in (postfix_expression) end
)
 in (LrTable.NT 71,(result,postfix_expression1left,
postfix_expression1right),rest671) end
| (308,(_,(MlyValue.cast_expression cast_expression1,_,
cast_expression1right))::(_,(_,YSTARleft as YSTAR1left,_))::rest671)
 => let val result=MlyValue.lexpression(fn _ => let val 
cast_expression as cast_expression1=cast_expression1 ()
 in (
ewrap(Deref cast_expression, YSTARleft,
                                      eright cast_expression)
) end
)
 in (LrTable.NT 71,(result,YSTAR1left,cast_expression1right),rest671)
 end
| _ => raise (mlyAction i392)
end
val void = MlyValue.VOID'
val extract = fn a => (fn MlyValue.begin x => x
| _ => let exception ParseInternal
	in raise ParseInternal end) a ()
end
end
structure Tokens : StrictC_TOKENS =
struct
type svalue = ParserData.svalue
type ('a,'b) token = ('a,'b) Token.token
fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
ParserData.MlyValue.VOID',p1,p2))
fun YSTAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
ParserData.MlyValue.VOID',p1,p2))
fun SLASH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
ParserData.MlyValue.VOID',p1,p2))
fun MOD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
ParserData.MlyValue.VOID',p1,p2))
fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
ParserData.MlyValue.VOID',p1,p2))
fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
ParserData.MlyValue.VOID',p1,p2))
fun LCURLY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
ParserData.MlyValue.VOID',p1,p2))
fun RCURLY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
ParserData.MlyValue.VOID',p1,p2))
fun LBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
ParserData.MlyValue.VOID',p1,p2))
fun RBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
ParserData.MlyValue.VOID',p1,p2))
fun YCOMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
ParserData.MlyValue.VOID',p1,p2))
fun YSEMI (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(
ParserData.MlyValue.VOID',p1,p2))
fun YCOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(
ParserData.MlyValue.VOID',p1,p2))
fun QMARK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
ParserData.MlyValue.VOID',p1,p2))
fun YEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
ParserData.MlyValue.VOID',p1,p2))
fun YDOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
ParserData.MlyValue.VOID',p1,p2))
fun YPLUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
ParserData.MlyValue.VOID',p1,p2))
fun YMINUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(
ParserData.MlyValue.VOID',p1,p2))
fun YAND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(
ParserData.MlyValue.VOID',p1,p2))
fun YNOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(
ParserData.MlyValue.VOID',p1,p2))
fun YAMPERSAND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(
ParserData.MlyValue.VOID',p1,p2))
fun YBITNOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(
ParserData.MlyValue.VOID',p1,p2))
fun PLUSPLUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(
ParserData.MlyValue.VOID',p1,p2))
fun MINUSMINUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(
ParserData.MlyValue.VOID',p1,p2))
fun PLUSEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(
ParserData.MlyValue.VOID',p1,p2))
fun MINUSEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(
ParserData.MlyValue.VOID',p1,p2))
fun BANDEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(
ParserData.MlyValue.VOID',p1,p2))
fun BOREQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(
ParserData.MlyValue.VOID',p1,p2))
fun MULEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(
ParserData.MlyValue.VOID',p1,p2))
fun DIVEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(
ParserData.MlyValue.VOID',p1,p2))
fun MODEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(
ParserData.MlyValue.VOID',p1,p2))
fun BXOREQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(
ParserData.MlyValue.VOID',p1,p2))
fun LSHIFTEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(
ParserData.MlyValue.VOID',p1,p2))
fun RSHIFTEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(
ParserData.MlyValue.VOID',p1,p2))
fun YENUM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(
ParserData.MlyValue.VOID',p1,p2))
fun YIF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(
ParserData.MlyValue.VOID',p1,p2))
fun YELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(
ParserData.MlyValue.VOID',p1,p2))
fun YWHILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(
ParserData.MlyValue.VOID',p1,p2))
fun YDO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(
ParserData.MlyValue.VOID',p1,p2))
fun YRETURN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(
ParserData.MlyValue.VOID',p1,p2))
fun YBREAK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(
ParserData.MlyValue.VOID',p1,p2))
fun YCONTINUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(
ParserData.MlyValue.VOID',p1,p2))
fun YGOTO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,(
ParserData.MlyValue.VOID',p1,p2))
fun YFOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,(
ParserData.MlyValue.VOID',p1,p2))
fun SWITCH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,(
ParserData.MlyValue.VOID',p1,p2))
fun CASE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,(
ParserData.MlyValue.VOID',p1,p2))
fun DEFAULT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,(
ParserData.MlyValue.VOID',p1,p2))
fun YSIZEOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,(
ParserData.MlyValue.VOID',p1,p2))
fun YTYPEOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,(
ParserData.MlyValue.VOID',p1,p2))
fun YOFFSETOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,(
ParserData.MlyValue.VOID',p1,p2))
fun LOGICALOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,(
ParserData.MlyValue.VOID',p1,p2))
fun LOGICALAND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,(
ParserData.MlyValue.VOID',p1,p2))
fun BITWISEOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,(
ParserData.MlyValue.VOID',p1,p2))
fun BITWISEXOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,(
ParserData.MlyValue.VOID',p1,p2))
fun EQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,(
ParserData.MlyValue.VOID',p1,p2))
fun NOTEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,(
ParserData.MlyValue.VOID',p1,p2))
fun YLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,(
ParserData.MlyValue.VOID',p1,p2))
fun YGE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,(
ParserData.MlyValue.VOID',p1,p2))
fun YLESS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,(
ParserData.MlyValue.VOID',p1,p2))
fun YGREATER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,(
ParserData.MlyValue.VOID',p1,p2))
fun LEFTSHIFT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,(
ParserData.MlyValue.VOID',p1,p2))
fun RIGHTSHIFT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,(
ParserData.MlyValue.VOID',p1,p2))
fun INT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,(
ParserData.MlyValue.VOID',p1,p2))
fun BOOL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,(
ParserData.MlyValue.VOID',p1,p2))
fun CHAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,(
ParserData.MlyValue.VOID',p1,p2))
fun LONG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,(
ParserData.MlyValue.VOID',p1,p2))
fun INT128 (p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,(
ParserData.MlyValue.VOID',p1,p2))
fun SHORT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,(
ParserData.MlyValue.VOID',p1,p2))
fun BITINT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,(
ParserData.MlyValue.VOID',p1,p2))
fun SIGNED (p1,p2) = Token.TOKEN (ParserData.LrTable.T 69,(
ParserData.MlyValue.VOID',p1,p2))
fun UNSIGNED (p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,(
ParserData.MlyValue.VOID',p1,p2))
fun VOID (p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,(
ParserData.MlyValue.VOID',p1,p2))
fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,(
ParserData.MlyValue.VOID',p1,p2))
fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,(
ParserData.MlyValue.ID (fn () => i),p1,p2))
fun TYPEID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,(
ParserData.MlyValue.TYPEID (fn () => i),p1,p2))
fun NUMERIC_CONSTANT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 75
,(ParserData.MlyValue.NUMERIC_CONSTANT (fn () => i),p1,p2))
fun STRUCT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 76,(
ParserData.MlyValue.VOID',p1,p2))
fun UNION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 77,(
ParserData.MlyValue.VOID',p1,p2))
fun TYPEDEF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 78,(
ParserData.MlyValue.VOID',p1,p2))
fun EXTERN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 79,(
ParserData.MlyValue.VOID',p1,p2))
fun CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 80,(
ParserData.MlyValue.VOID',p1,p2))
fun VOLATILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 81,(
ParserData.MlyValue.VOID',p1,p2))
fun RESTRICT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 82,(
ParserData.MlyValue.VOID',p1,p2))
fun INVARIANT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 83,(
ParserData.MlyValue.VOID',p1,p2))
fun INLINE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 84,(
ParserData.MlyValue.VOID',p1,p2))
fun STATIC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 85,(
ParserData.MlyValue.VOID',p1,p2))
fun NORETURN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 86,(
ParserData.MlyValue.VOID',p1,p2))
fun THREAD_LOCAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 87,(
ParserData.MlyValue.VOID',p1,p2))
fun AUTO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 88,(
ParserData.MlyValue.VOID',p1,p2))
fun FNSPEC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 89,(
ParserData.MlyValue.VOID',p1,p2))
fun RELSPEC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 90,(
ParserData.MlyValue.VOID',p1,p2))
fun AUXUPD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 91,(
ParserData.MlyValue.VOID',p1,p2))
fun GHOSTUPD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 92,(
ParserData.MlyValue.VOID',p1,p2))
fun MODIFIES (p1,p2) = Token.TOKEN (ParserData.LrTable.T 93,(
ParserData.MlyValue.VOID',p1,p2))
fun CALLS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 94,(
ParserData.MlyValue.VOID',p1,p2))
fun OWNED_BY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 95,(
ParserData.MlyValue.VOID',p1,p2))
fun SPEC_BEGIN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 96,(
ParserData.MlyValue.VOID',p1,p2))
fun SPEC_END (p1,p2) = Token.TOKEN (ParserData.LrTable.T 97,(
ParserData.MlyValue.VOID',p1,p2))
fun DONT_TRANSLATE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 98,(
ParserData.MlyValue.VOID',p1,p2))
fun STRING_LITERAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 99,(
ParserData.MlyValue.STRING_LITERAL (fn () => i),p1,p2))
fun SPEC_BLOCKEND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 100,(
ParserData.MlyValue.VOID',p1,p2))
fun GCC_ATTRIBUTE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 101,(
ParserData.MlyValue.VOID',p1,p2))
fun YASM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 102,(
ParserData.MlyValue.VOID',p1,p2))
fun YREGISTER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 103,(
ParserData.MlyValue.VOID',p1,p2))
end
end