diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,17 @@
+New in 0.1.6
+------------
+
+* Changed dependent pair syntax to <| x, y |> so that << and >> can be
+  integer shift operators.
+* Removed '#' as type of types (must use 'Set' now).
+* searchcontext tactic
+* equalities.idr in the library
+* codata keyword
+* proof and tryproof keywords for invoking a decision procedure in a
+  term
+* Syntactic sugar for Cons lists
+* Lots of smaller changes and bug fixes
+
 New in 0.1.5
 ------------
 
diff --git a/Idris/AbsSyntax.lhs b/Idris/AbsSyntax.lhs
--- a/Idris/AbsSyntax.lhs
+++ b/Idris/AbsSyntax.lhs
@@ -39,7 +39,7 @@
 > data Decl = DataDecl Datatype | Fwd Id RawTerm [CGFlag]
 >           | PInclude FilePath
 >           | Fun Function [CGFlag] | TermDef Id RawTerm [CGFlag] | Constructor
->           | Prf Proof
+>           | Prf Proof Bool -- 'True' means proof is allowed to fail
 >           | LatexDefs [(Id,String)]
 >           | Using [(Id, RawTerm)] [Decl] -- default implicit args
 >           | Params [(Id, RawTerm)] [Decl] -- default implicit args
@@ -82,7 +82,7 @@
 > data UserOps = UO { fixityDecls :: Fixities,
 >                     transforms :: [(ViewTerm, ViewTerm)],
 >                     frozen :: [Id],
->                     syndefs :: [Syntax] }
+>                     syndefs :: Ctxt Syntax }
 >              deriving Show
 
 Function types and clauses are given separately, so we'll parse them
@@ -109,7 +109,7 @@
 >   where cds rds fwds ((RealDecl d):ds) = cds (d:rds) fwds ds
 >         cds rds fwds ((FunType n t fl file line):ds) 
 >             = getClauses RPlaceholder rds fwds n (t, file, line) fl [] ds
->         cds rds fwds ((FunClause (RVar f l n) [] ret fl):ds) 
+>         cds rds fwds ((FunClause (RVar f l n _) [] ret fl):ds) 
 >                 = cds ((TermDef n ret fl):rds) fwds ds
 >         cds rds fwds ds@((FunClause app [] ret fl):_) 
 >             = case getFnName app of
@@ -121,9 +121,9 @@
 >         cds rds fwds ((ProofScript n prf):ds)
 >             = case lookup n fwds of
 >                      Nothing ->
->                          cds ((Prf (Proof n Nothing prf)):rds) fwds ds
+>                          cds ((Prf (Proof n Nothing prf) False):rds) fwds ds
 >                      Just (ty, fl) -> 
->                          cds ((Prf (Proof n (Just ty) prf)):rds) fwds ds
+>                          cds ((Prf (Proof n (Just ty) prf) False):rds) fwds ds
 >         cds rds fwds ((PUsing uses pds):ds) = 
 >                case (cds [] [] pds) of
 >                   Success d ->
@@ -176,7 +176,7 @@
 >         getClauses parent rds fwds n (t,file,line) fl clauses ds =
 >             cds ((Fun (Function n t (reverse clauses) file line) fl):rds) fwds ds
 
->         isnm n (RVar f l nm) | nm == n = Just (f,l)
+>         isnm n (RVar f l nm _) | nm == n = Just (f,l)
 >         isnm _ _ = Nothing
 
 >         collectWiths parent rds fwds n t fl cs = 
@@ -208,7 +208,7 @@
 >                          } -- forward declaration
 >   deriving Show
 
-> data TyOpt = NoElim | Collapsible
+> data TyOpt = NoElim | Collapsible | Codata
 >   deriving (Show, Eq, Enum)
 
 > tyHasElim dt = not (elem NoElim (tyOpts dt))
@@ -237,7 +237,7 @@
 
 Raw terms, as written by the programmer with no implicit arguments added.
 
-> data RawTerm = RVar String Int Id
+> data RawTerm = RVar String Int Id NameType
 >              | RVars String Int [Id]
 >              | RExpVar String Int Id -- variable with all explicit args
 >              | RApp String Int RawTerm RawTerm
@@ -246,6 +246,7 @@
 >              | RConst String Int Constant
 >              | RPlaceholder
 >              | RMetavar Id
+>              | RMetavarPrf Id [ITactic] Bool -- Bool for if proof is allowed to fail
 >              | RInfix String Int Op RawTerm RawTerm
 >              | RUserInfix String Int Bool String RawTerm RawTerm
 >              | RDo [Do]
@@ -280,6 +281,7 @@
 >              | Induction RawTerm
 >              | Fill RawTerm
 >              | Trivial
+>              | SimpleSearch
 >              | Case RawTerm
 >              | Rewrite Bool Bool RawTerm
 >              | Unfold Id
@@ -312,7 +314,7 @@
 > getFileLine :: RawTerm -> (String, Int)
 > getFileLine (RApp f l _ _) = (f, l)
 > getFileLine (RAppImp f l _ _ _) = (f, l)
-> getFileLine (RVar f l _) = (f, l)
+> getFileLine (RVar f l _ _) = (f, l)
 > getFileLine (RExpVar f l _) = (f, l)
 > getFileLine (RInfix f l _ _ _) = (f, l)
 > getFileLine (RUserInfix f l _ _ _ _) = (f, l)
@@ -336,7 +338,7 @@
 > getRetType x = x
 
 > getFnName f = case getFn f of
->                 (RVar f l n) -> Just (n,f,l)
+>                 (RVar f l n _) -> Just (n,f,l)
 >                 _ -> Nothing
 
 > getRawArgs :: RawTerm -> [RawTerm]
@@ -391,29 +393,39 @@
 typechecker and compiler need to know how to run. First we have the usual set of infix 
 operators (plus John Major equality):
 
-> data Op = Plus  | Minus | Times | Divide | Concat | JMEq
->         | OpEq  | OpLT  | OpLEq | OpGT   | OpGEq  | OpOr 
->         | OpAnd | ShL   | ShR
+> data Op = Plus  | Minus  | Times  | Divide | Modulo | Concat | JMEq
+>         | FPlus | FMinus | FTimes | FDivide
+>         | OpEq  | OpLT   | OpLEq  | OpGT   | OpGEq  
+>         | OpFEq | OpFLT  | OpFLEq | OpFGT  | OpFGEq 
+>         | OpOr  | OpAnd | ShL    | ShR
 
 Then built-in functions for coercing between types
 
->         | ToString | ToInt
+>         | ToString | ToInt 
+>         | FloatToString | StringToFloat
 >         | IntToChar | CharToInt
 
 Finally some primitive operations on primitive types.
 
 >         | StringLength | StringGetIndex | StringSubstr
->         | StringHead | StringTail | StringCons
+>         | StringHead | StringTail | StringCons | StringRev
+>         | StringFind | StringSub
 >    deriving (Eq, Enum)
 
-> allOps = [Plus,Minus,Times,Divide,Concat,ShL,ShR,
->           JMEq,OpEq,OpLT,OpLEq,OpGT,OpGEq]
+> allOps = [Plus,Minus,Times,Divide,Modulo,FPlus,FMinus,FTimes,FDivide,
+>           Concat,ShL,ShR,JMEq,OpEq,OpLT,OpLEq,OpGT,OpGEq,
+>           OpFEq,OpFLT,OpFLEq,OpFGT,OpFGEq]
 
 > instance Show Op where
 >     show Plus = "+"
 >     show Minus = "-"
 >     show Times = "*"
 >     show Divide = "/"
+>     show Modulo = "%"
+>     show FPlus = "+."
+>     show FMinus = "-."
+>     show FTimes = "*."
+>     show FDivide = "/."
 >     show Concat = "++"
 >     show JMEq = "="
 >     show OpEq = "=="
@@ -421,6 +433,11 @@
 >     show OpLEq = "<="
 >     show OpGT = ">"
 >     show OpGEq = ">="
+>     show OpFEq = "==."
+>     show OpFLT = "<."
+>     show OpFLEq = "<=."
+>     show OpFGT = ">."
+>     show OpFGEq = ">=."
 >     show OpOr = "||"
 >     show OpAnd = "&&"
 >     show ShL = "<<"
@@ -430,6 +447,11 @@
 > opFn Minus = (name "__subInt")
 > opFn Times = (name "__mulInt")
 > opFn Divide = (name "__divInt")
+> opFn Modulo = (name "__modInt")
+> opFn FPlus = (name "__addFloat")
+> opFn FMinus = (name "__subFloat")
+> opFn FTimes = (name "__mulFloat")
+> opFn FDivide = (name "__divFloat")
 > opFn Concat = (name "__concat")
 > opFn JMEq = (name "Eq")
 > opFn OpEq = (name "__eq")
@@ -437,6 +459,11 @@
 > opFn OpLEq = (name "__intleq")
 > opFn OpGT = (name "__intgt")
 > opFn OpGEq = (name "__intgeq")
+> opFn OpFEq = (name "__feq")
+> opFn OpFLT = (name "__floatlt")
+> opFn OpFLEq = (name "__floatleq")
+> opFn OpFGT = (name "__floatgt")
+> opFn OpFGEq = (name "__floatgeq")
 > opFn OpOr = (name "__or")
 > opFn OpAnd = (name "__and")
 > opFn ShL = (name "__shl")
@@ -444,6 +471,8 @@
 
 > opFn ToInt = (name "__toInt")
 > opFn ToString = (name "__toString")
+> opFn StringToFloat = (name "__stringToFloat")
+> opFn FloatToString = (name "__floatToString")
 > opFn CharToInt = (name "__charToInt")
 > opFn IntToChar = (name "__intToChar")
 
@@ -452,6 +481,9 @@
 > opFn StringSubstr = (name "__substr")
 > opFn StringHead = (name "__strHead")
 > opFn StringTail = (name "__strTail")
+> opFn StringRev = (name "__strRev")
+> opFn StringFind = (name "__strFind")
+> opFn StringSub = (name "__substr")
 > opFn StringCons = (name "__strCons")
 
 > useropFn fn = UN $ "__op_" ++ concat (map opC fn) where
@@ -489,6 +521,21 @@
 >              | IvorProblem String
 >    deriving Show
 
+> getNameType :: IvorFun -> NameType
+> getNameType i = case rawDecl i of
+>                   Fun _ _ -> Free
+>                   TermDef _ _ _ -> Free
+>                   Prf _ _ -> Free
+>                   Fwd _ _ _ -> Free
+>                   Constructor -> DataCon
+>                   _ -> Unknown
+
+> mkNameMap :: Ctxt IvorFun -> [(Name, Id)]
+> mkNameMap ctxt = mapMaybe mknm (ctxtAlist ctxt)
+>   where mknm (n, IvorProblem _) = Nothing
+>         mknm (n, i) = do iname <- ivorFName i
+>                          return (iname, n)
+
 Get all the pattern definitions. Get the user specified one, not the
 Ivor expanded one (i.e. with the placeholders as the user specified) so
 that we avoid pattern matching where the programmer didn't ask us to.
@@ -518,7 +565,7 @@
 >              | IDataCon -- Data constructor
 >              | SimpleDef !ViewTerm -- simple function definition
 >              | DataDef !Inductive Bool -- data type definition, generate elim
->              | IProof [ITactic]
+>              | IProof [ITactic] Bool -- True if failable
 >              | Later -- forward declaration
 >              | LataDef -- forward declared data
 >    deriving Show
@@ -545,6 +592,13 @@
 > data Opt = NoErasure | ShowRunTime | NoSpec | Verbose
 >    deriving (Show, Eq, Enum)
 
+> type Statics = [(Name, ([Int], Int, ViewTerm))]
+
+Things we've partially evaluated that transform rules already exist for
+(so don't make another one)
+
+> type StaticUsed = [(Name, [ViewTerm])]
+
 > data IdrisState = IState {
 >       idris_context :: Ctxt IvorFun, -- function definitions
 >       idris_decls :: [Decl], -- all checked declarations
@@ -552,13 +606,18 @@
 >       idris_options :: [Opt], -- global options
 >       idris_fixities :: UserOps, -- infix operators and precedences
 >       idris_transforms :: [Transform], -- optimisations
->       idris_syntax :: [Syntax], -- syntax macros
+>       idris_syntax :: Ctxt Syntax, -- syntax macros
 >       idris_imports :: [FilePath], -- included files
->       idris_names :: [(Name, Id)] -- map ivor names back to idris names
+>       idris_names :: [(Name, Id)], -- map ivor names back to idris names
+>       idris_static :: Statics, -- map from functions to static args
+>       idris_static_used :: StaticUsed
 >     }
 
+> instance Show (Ctxt Syntax) where
+>     show xs = show (ctxtAlist xs)
+
 > initState :: [Opt] -> IdrisState
-> initState opts = IState newCtxt [] [] opts (UO [] [] [] []) [] [] [] []
+> initState opts = IState newCtxt [] [] opts (UO [] [] [] newCtxt) [] newCtxt [] [] [] []
 
 Add implicit arguments to a raw term representing a type for each undefined 
 name in the scope, returning the number of implicit arguments the resulting
@@ -599,7 +658,7 @@
 >                                (added', totimp')
 >                      else (raw, totimp)
 >     where addImplB :: [Id] -> RawTerm -> Bool -> State ([Id], Int) ()
->           addImplB env (RVar f l i) argpos
+>           addImplB env (RVar f l i _) argpos
 >               | i `elem` env = return ()
 >               | Right _ <- ctxtLookup ctxt namespace i = return ()
 
@@ -746,11 +805,88 @@
 
 > defDo = UI bindName 2 retName 1 retName 1 applyName 2
 
+Give names to unnamed metavariables, and record any associated proof
+scripts
+
+> insertMetas :: Id -> RawTerm -> State (Int, [(Id, [ITactic], Bool)]) RawTerm
+> insertMetas fname tm = im tm
+>     where im (RMetavarPrf (UN "") tacs prf)
+>                 = do (h, ts) <- get
+>                      let nm = mkName fname h
+>                      put (h+1, (nm, tacs, prf):ts)
+>                      return $ RMetavar nm
+>           im (RApp f l x a) 
+>               = do x' <- im x
+>                    a' <- im a
+>                    return $ RApp f l x' a'
+>           im (RAppImp f l arg x a) 
+>               = do x' <- im x
+>                    a' <- im a
+>                    return $ RAppImp f l arg x' a'
+>           im (RBind n bind t)
+>               = do bind' <- imb bind
+>                    t' <- im t
+>                    return $ RBind n bind' t
+>           im (RInfix f l op x y)
+>               = do x' <- im x
+>                    y' <- im y
+>                    return $ RInfix f l op x' y'
+>           im (RUserInfix f l b op x y)
+>               = do x' <- im x
+>                    y' <- im y
+>                    return $ RUserInfix f l b op x' y'
+>           im (RDo ds) = do ds' <- mapM imd ds
+>                            return $ RDo ds'
+>           im (RIdiom t) = do t' <- im t
+>                              return $ RIdiom t'
+>           im (RPure t) = do t' <- im t
+>                             return $ RPure t'
+>           im x = return x
+
+>           imb (Pi p opts t) = do t' <- im t
+>                                  return $ Pi p opts t'
+>           imb (Lam t) = do t' <- im t
+>                            return $ Lam t
+>           imb (RLet t v) = do t' <- im t
+>                               v' <- im v
+>                               return $ RLet t' v'
+
+>           imd (DoBinding f l i x y)
+>               = do x' <- im x
+>                    y' <- im y
+>                    return $ DoBinding f l i x' y'
+>           imd (DoLet f l i x y)
+>               = do x' <- im x
+>                    y' <- im y
+>                    return $ DoLet f l i x' y'
+>           imd (DoExp f l x)
+>               = do x' <- im x
+>                    return $ DoExp f l x'
+
+>           mkName (UN n) i = UN ("__"++n++"_"++show i)
+>           mkName (MN n j) i = MN ("__"++n++"_"++show i) j
+
+
+> insertMetasClauses :: Id -> [(Id, RawClause)] -> 
+>                       State (Int, [(Id, [ITactic], Bool)]) [(Id, RawClause)]
+> insertMetasClauses fn xs = mapM imcp xs where
+>     imcp (n, t) = do t' <- imc t
+>                      return (n, t')
+>     imc (RawClause lhs rhs) = 
+>         do lhs' <- insertMetas fn lhs
+>            rhs' <- insertMetas fn rhs
+>            return (RawClause lhs' rhs')
+>     imc (RawWithClause lhs prf scr def) =
+>         do lhs' <- insertMetas fn lhs
+>            scr' <- insertMetas fn scr
+>            def' <- mapM imc def
+>            return (RawWithClause lhs' prf scr' def')
+
 > toIvor :: UserOps -> UndoInfo -> Id -> RawTerm -> ViewTerm
 > toIvor uo ui fname tm = evalState (toIvorS tm) (0,1)
 >   where
 >     toIvorS :: RawTerm -> State (Int, Int) ViewTerm
->     toIvorS (RVar f l n) = return $ Annotation (FileLoc f l) (Name Unknown (toIvorName n))
+>     toIvorS (RVar f l n ty) = return $ Annotation (FileLoc f l) (Name ty (toIvorName n))
 >     toIvorS (RVars f l ns) = return $ Annotation (FileLoc f l) (Overloaded (map toIvorName ns))
 >     toIvorS ap@(RApp file line f a)
 >            = do f' <- toIvorS f
@@ -803,12 +939,14 @@
 >                            toIvorS tm
 >     toIvorS (RReturn f l)
 >       = do let (UI _ _ ret retImpl _ _ _ _) = ui
->            toIvorS $ mkApp f l (RVar f l ret) (take retImpl (repeat RPlaceholder))
+>            toIvorS $ mkApp f l (RVar f l ret Unknown) (take retImpl (repeat RPlaceholder))
 >     toIvorS (RIdiom tm) = do let tm' = unidiom ui tm
 >                              toIvorS tm'
 >     toIvorS (RPure t) = toIvorS t
 >     toIvorS RRefl = return $ apply (Name Unknown (name "refl")) [Placeholder]
 >     toIvorS (RError f l x) = error (f ++ ":" ++ show l ++ ":" ++ x)
+>     toIvorS x = error ("Can't happen, toIvorS: " ++ show x)
+
 >     mkName (UN n) i = UN (n++"_"++show i)
 >     mkName (MN n j) i = MN (n++"_"++show i) j
 
@@ -833,42 +971,154 @@
 >                  = let expraw = addPlaceholders ctxt using uo tm in
 >                                 toIvor uo ui n expraw
 
+Apply syntax macros, and fixity declarations. 
+Assume they are terminating (perhaps check this by not
+allowing recursion in them).
+
+> syntax :: Ctxt IvorFun -> Implicit -> UserOps -> RawTerm -> RawTerm
+> syntax ctxt using (UO uo _ _ syns) tm 
+>   = let ans = syn (fixes tm) in
+>        -- trace ("BEFORE: " ++ showImp False (fixes tm) ++ "\nAFTER: " ++
+>         --      showImp False ans) 
+>         ans
+>     where syn (RVar f l n _) = doSynN f l n syns
+>           syn app@(RApp file line f a) 
+>                   = doSyn (RApp file line (syn f) (syn a)) 
+>                            syns (syn f) [syn a]
+>           syn (RAppImp file line n f a) = RAppImp file line n (syn f) (syn a)
+>           syn (RBind n (Pi p opts t) sc)
+>               = RBind n (Pi p opts (syn t)) (syn sc)
+>           syn (RBind n (Lam t) sc)
+>               = RBind n (Lam (syn t)) (syn sc)
+>           syn (RBind n (RLet v t) sc)
+>               = RBind n (RLet (syn v) (syn t)) (syn sc)
+>           syn (RInfix f l op x y)
+>               = RInfix f l op (syn x) (syn y)
+>           syn (RUserInfix file line b op l r)
+>               = RUserInfix file line b op (syn l) (syn r)
+>               -- = RUserInfix f l b op (syn x) (syn y)
+>           syn (RDo ds) = RDo $ map synd ds
+>           syn (RIdiom t) = RIdiom (syn t)
+>           syn (RPure t) = RPure (syn t)
+>           syn t = t
+
+>           synd (DoBinding f l n x y) 
+>                = DoBinding f l n (syn x) (syn y)
+>           synd (DoLet f l n x y) 
+>                = DoLet f l n (syn x) (syn y)
+>           synd (DoExp f l x) 
+>                = DoExp f l (syn x)
+
+>           doSyn o syns (RApp _ _ f a) args = doSyn o syns f (a:args)
+>           doSyn o syns v args 
+>                = case v of
+>                      RVar f l n _ -> 
+>                        case findSyn n syns of
+>                          Just (a, rhs) -> -- trace (show (n, rhs, a, args)) $ 
+>                              if (length a == length args)
+>                                 then syn $ replSyn f l rhs (zip a args)
+>                                 else o
+>                          Nothing -> o
+>                      _ -> o
+
+>           doSynN f l n syns = case findSyn n syns of
+>                             Just ([], rhs) -> syn $ replSyn f l rhs []
+>                             _ -> RVar f l n Unknown
+
+>           findSyn n synct =
+>               case ctxtLookup synct (thisNamespace using) n of
+>                 (Right (Syntax f as rhs)) -> Just (as, rhs)
+>                 (Left err) -> Nothing -- FIXME: need to report an error
+>                                       -- if it's ambiguous
+
+>           -- findSyn n [] = Nothing
+>           -- findSyn n ((Syntax f as rhs):xs) | n == f = Just (as, rhs)
+>           --                                  | otherwise = findSyn n xs
+
+>           replSyn f l t@(RVar _ _ n ty) as = case lookup n as of
+>                                                Just v -> v
+>                                                Nothing -> RVar f l n ty
+>           replSyn f l (RApp _ _ fn a) as 
+>                 = RApp f l (replSyn f l fn as) (replSyn f l a as)
+>           replSyn f l (RInfix _ _ op x y) as 
+>                 = RInfix f l op (replSyn f l x as) (replSyn f l y as)
+>           replSyn f l (RUserInfix _ _ b op x y) as 
+>                 = RUserInfix f l b op (replSyn f l x as) (replSyn f l y as)
+>           replSyn f l (RAppImp _ _ x fn a) as
+>                 = RAppImp f l x (replSyn f l fn as) (replSyn f l a as)
+>           replSyn _ _ x _ = x
+
+>           fixes fix@(RUserInfix _ _ _ _ _ _) =
+>               case fixFix uo fix of
+>                 (RUserInfix file line _ op l r) ->
+>                    fixes (RApp file line 
+>                           (RApp file line 
+>                            (RVar file line (useropFn op) Free) l) r)
+>                 (RError f l x) -> RError f l x
+>           fixes (RApp file line f a) = RApp file line (fixes f) (fixes a)
+>           fixes (RAppImp file line n f a) 
+>                     = RAppImp file line n (fixes f) (fixes a)
+>           fixes (RBind n (Lam t) sc) = RBind n (Lam (fixes t)) (fixes sc)
+>           fixes (RBind n (Pi p opts t) sc)
+>                 = RBind n (Pi p opts (fixes t)) (fixes sc)
+>           fixes (RBind n (RLet v t) sc)
+>                 = RBind n (RLet (fixes v) (fixes t)) (fixes sc)
+>           fixes (RInfix file line op l r)
+>                 = RInfix file line op (fixes l) (fixes r)
+>           fixes (RIdiom t) = RIdiom (fixes t)
+>           fixes (RPure t) = RPure (fixes t)
+>           fixes (RDo d) = RDo (map fixesd d)
+>           fixes t = t
+
+>           fixesd (DoBinding f l n x y) = DoBinding f l n (fixes x) (fixes y)
+>           fixesd (DoLet f l n x y) = DoLet f l n (fixes x) (fixes y)
+>           fixesd (DoExp f l x) = DoExp f l (fixes x)
+
+> syntaxClause :: Ctxt IvorFun -> Implicit -> UserOps -> RawClause ->
+>                 RawClause
+> syntaxClause ctxt imp uo (RawClause l r)
+>      = (RawClause (syntax ctxt imp uo l)
+>                   (syntax ctxt imp uo r))
+> syntaxClause ctxt imp uo (RawWithClause lhs prf scr def)
+>      = (RawWithClause (syntax ctxt imp uo lhs) prf
+>                       (syntax ctxt imp uo scr)
+>                       (map (syntaxClause ctxt imp uo) def))
+
 Add placeholders so that implicit arguments can be filled in. Also desugar user infix apps.
 FIXME: I think this'll fail if names are shadowed.
 
 > addPlaceholders :: Ctxt IvorFun -> Implicit -> UserOps -> RawTerm -> RawTerm
-> addPlaceholders ctxt using (UO uo _ _ syns) tm = ap [] tm
+> addPlaceholders ctxt using uops@(UO uo _ _ syns) tm 
+>                     = ap [] (syntax ctxt using uops tm)
 >     -- Count the number of args we've made explicit in an application
 >     -- and don't add placeholders for them. Reset the counter if we get
 >     -- out of an application
->     where ap ex v@(RVar f l n)
->            = case doSynN f l n syns of
->               RVar _ _ n ->
->                 case ctxtLookupName ctxt (thisNamespace using) n of
->                   Right (IvorFun _ (Just ty) imp _ _ _ _ _, fulln) -> 
+>     where ap ex v@(RVar f l n _)
+>            = case ctxtLookupName ctxt (thisNamespace using) n of
+>                   -- leave syntax definitions alone and expand later
+>                   Right (IvorFun _ _ _ _ (SynDef _ _ _) _ _ _, _)
+>                       -> RVar f l n Unknown
+>                   Right (ifn@(IvorFun _ (Just ty) imp _ _ _ _ _), fulln) -> 
 >                     let pargs = case lookup n pnames of
 >                                   Nothing -> []
->                                   Just ids -> map (RVar f l) ids in
->                     mkApp f l (RVar f l fulln)
+>                                   Just ids -> map (\i -> RVar f l i Bound) ids in
+>                     mkApp f l (RVar f l fulln (getNameType ifn))
 >                               ((mkImplicitArgs 
 >                                (map fst (fst (getBinders ty []))) imp ex) ++ pargs)
 >                   Left err@(Ambiguous _ ns) -> RError f l (show err) -- RVars f l ns
 >                   Left err@(WrongNamespace _ _) -> RError f l (show err)
->                   Right (_, fulln) -> RVar f l fulln
->                   _ -> RVar f l n
->               t -> ap ex t
+>                   Right (ifn, fulln) -> RVar f l fulln (getNameType ifn)
+>                   _ -> RVar f l n Unknown
 >           ap ex (RExpVar f l n)
 >               = case ctxtLookupName ctxt (thisNamespace using) n of
->                   Right (IvorFun _ (Just ty) imp _ _ _ _ _, fulln) -> RVar f l fulln
+>                   Right (ifn@(IvorFun _ (Just ty) imp _ _ _ _ _), fulln) -> RVar f l fulln (getNameType ifn)
 >                   Left err@(Ambiguous _ _) -> RError f l (show err)
 >                   Left err@(WrongNamespace _ _) -> RError f l (show err)
->                   Right (_, fulln) -> RVar f l fulln
->                   _ -> RVar f l n
+>                   Right (ifn, fulln) -> RVar f l fulln (getNameType ifn)
+>                   _ -> RVar f l n Unknown
 >           ap ex (RAppImp file line n f a) = (ap ((toIvorName n,(ap [] a)):ex) f)
 >           ap ex app@(RApp file line f a) = 
->               case doSyn app syns f [a] of
->                   RApp _ _ f a -> RApp file line (ap ex f) (ap [] a)
->                   t -> ap ex t
+>                   RApp file line (ap ex f) (ap [] a)
 >           ap ex (RBind n (Pi p l ty) sc)
 >               = RBind n (Pi p l (ap [] ty)) (ap [] sc)
 >           ap ex (RBind n (Lam ty) sc)
@@ -876,12 +1126,12 @@
 >           ap ex (RBind n (RLet val ty) sc)
 >               = RBind n (RLet (ap [] val) (ap [] ty)) (ap [] sc)
 >           ap ex (RInfix file line op l r) = RInfix file line op (ap [] l) (ap [] r)
->           ap ex fix@(RUserInfix _ _ _ _ _ _)
->               = case fixFix uo fix of
->                   (RUserInfix file line _ op l r) ->
->                       ap ex (RApp file line 
->                              (RApp file line (RVar file line (useropFn op)) l) r)
->                   (RError f l x) -> RError f l x
+>           ap ex fix@(RUserInfix file line _ op l r)
+>               = -- case fixFix uo fix of
+>                 --  (RUserInfix file line _ op l r) ->
+>                 ap ex (RApp file line 
+>                              (RApp file line (RVar file line (useropFn op) Free) l) r)
+>                 --  (RError f l x) -> RError f l x
 >           ap ex (RDo ds) = RDo (map apdo ds)
 >           ap ex (RIdiom tm) = RIdiom (ap [] tm)
 >           ap ex (RPure tm) = RPure (ap [] tm)
@@ -893,34 +1143,6 @@
 
 >           pnames = paramNames using
 
->           doSyn o syns (RApp _ _ f a) args = doSyn o syns f (a:args)
->           doSyn o syns v args 
->                = case ap [] v of
->                      RVar f l n -> 
->                        case findSyn n syns of
->                          Just (a, rhs) -> replSyn f l rhs (zip a args)
->                          Nothing -> o
->                      _ -> o
-
->           doSynN f l n syns = case findSyn n syns of
->                             Just ([], rhs) -> replSyn f l rhs []
->                             _ -> RVar f l n
-
->           findSyn n [] = Nothing
->           findSyn n ((Syntax f as rhs):xs) | n == f = Just (as, rhs)
->                                            | otherwise = findSyn n xs
-
->           replSyn f l t@(RVar _ _ n) as = case lookup n as of
->                                             Just v -> v
->                                             Nothing -> RVar f l n
->           replSyn f l (RApp _ _ fn a) as 
->                 = RApp f l (replSyn f l fn as) (replSyn f l a as)
->           replSyn f l (RInfix _ _ op x y) as 
->                 = RInfix f l op (replSyn f l x as) (replSyn f l y as)
->           replSyn f l (RAppImp _ _ x fn a) as
->                 = RAppImp f l x (replSyn f l fn as) (replSyn f l a as)
->           replSyn _ _ x _ = x
-
 Go through the arguments; if an implicit argument has the same name as one
 in our list of explicit names to add, add it.
 
@@ -944,7 +1166,7 @@
 >          = -- bind exp (\v' . [[ds]])
 >            do ds' <- undo ui ds
 >               let k = RBind v' (Lam ty) ds'
->               return $ mkApp file line (RVar file line bind) 
+>               return $ mkApp file line (RVar file line bind Unknown) 
 >                          ((take bindimpl (repeat RPlaceholder)) ++ [exp, k])
 > undo ui ((DoLet file line v' ty exp):ds)
 >          = do ds' <- undo ui ds
@@ -955,7 +1177,7 @@
 >               (i, h) <- get
 >               put (i+1, h)
 >               let k = RBind (MN "x" i) (Lam RPlaceholder) ds'
->               return $ mkApp file line (RVar file line bind) 
+>               return $ mkApp file line (RVar file line bind Unknown) 
 >                          ((take bindimpl (repeat RPlaceholder)) ++ [exp, k])
 
 -- > unret :: UndoInfo -> RawTerm -> RawTerm
@@ -976,18 +1198,18 @@
 
 > unidiom :: UndoInfo -> RawTerm -> RawTerm
 > unidiom ui@(UI _ _ _ _ pure pureImpl _ _) (RApp file line f (RPure x)) 
->         = mkApp file line (RVar file line pure)
+>         = mkApp file line (RVar file line pure Unknown)
 >                ((take pureImpl (repeat RPlaceholder)) ++ [mkApp file line f [x]])
 > unidiom ui@(UI _ _ _ _ pure pureImpl _ _) (RApp file line f RPlaceholder) 
->         = mkApp file line (RVar file line pure)
+>         = mkApp file line (RVar file line pure Unknown)
 >                ((take pureImpl (repeat RPlaceholder)) ++ [mkApp file line f [RPlaceholder]])
 > unidiom ui@(UI _ _ _ _ _ _ ap apImpl) (RApp file line f x) 
->              = mkApp file line (RVar file line ap)
+>              = mkApp file line (RVar file line ap Unknown)
 >                     ((take apImpl (repeat RPlaceholder)) ++
 >                     [unidiom ui f, x])
 > unidiom ui@(UI _ _ _ _ pure pureImpl _ _) x 
 >              = let (file, line) = getFileLine x in
->               mkApp file line (RVar file line pure)
+>               mkApp file line (RVar file line pure Unknown)
 >                     ((take pureImpl (repeat RPlaceholder)) ++ [x])
 
 > testCtxt = addEntry newCtxt [] (UN "Vect") undefined
@@ -1035,8 +1257,8 @@
 >     unI (Name _ v) args 
 >        = case ctxtLookup ctxt [] (mkRName v) of
 >            Right fdata -> mkImpApp "[val]" 0 (implicitArgs fdata) 
->                                   (argNames (ivorFType fdata)) (RVar "[val]" 0 (mkRName v)) args
->            _ -> unwind (RVar "[val]" 0 (mkRName v)) args
+>                                   (argNames (ivorFType fdata)) (RVar "[val]" 0 (mkRName v) Unknown) args
+>            _ -> unwind (RVar "[val]" 0 (mkRName v) Unknown) args
 >     unI (App f a) args = unI f ((unI a []):args)
 >     unI (Lambda v ty sc) args = unwind (RBind (mkRName v) (Lam (unI ty [])) (unI sc [])) args
 >     unI (Forall v ty sc) args = unwind (RBind (mkRName v) (Pi Ex [] (unI ty [])) (unI sc [])) args
@@ -1073,11 +1295,11 @@
 
 > showImp :: Bool -> RawTerm -> String
 > showImp imp tm = showP 10 tm where
->     showP p (RVar _ _ (UN "__Unit")) = "()"
->     showP p (RVar _ _ (UN "__Empty")) = "_|_"
->     showP p (RVar _ _ i) = case (getOpName i) of
->                              (True, o) -> "(" ++ o ++ ")"
->                              (False, o) -> o
+>     showP p (RVar _ _ (UN "__Unit") _) = "()"
+>     showP p (RVar _ _ (UN "__Empty") _) = "_|_"
+>     showP p (RVar _ _ i _) = case (getOpName i) of
+>                                (True, o) -> "(" ++ o ++ ")"
+>                                (False, o) -> o
 >     showP p RRefl = "refl"
 >     showP p (RApp _ _ f a) = bracket p 1 $ showP 1 f ++ " " ++ showP 0 a
 >     showP p (RAppImp _ _ n f a)
@@ -1135,7 +1357,10 @@
 > idrisError ivs (NoSuchVar n) = "No such variable as " ++ show n
 > idrisError ivs (CantInfer n tm) = "Can't infer value for " ++ show n ++ " in " ++ (showVT ivs tm)
 > idrisError ivs (ErrContext s e) = s ++ idrisError ivs e
+> idrisError ivs (AmbiguousName ns) = "Ambiguous name " ++ show ns
+> idrisError ivs (NotConvertible x y) = "Not convertible: " ++ (showVT ivs x) ++ " and " ++ (showVT ivs y)
 
+
 > getOpName (UN ('_':'_':'o':'p':'_':op)) = (True, showOp op) where
 >          showOp ('_':cs) = case span isDigit cs of
 >                               (op, rest) -> toEnum (read op) : showOp rest
@@ -1246,3 +1471,5 @@
 Everything else, we ony work at the top level.
 
 > fixFix' _ x = x
+
+> (!!!) xs (x, msg) = if x >= length xs then error msg else xs!!x
diff --git a/Idris/Compiler.lhs b/Idris/Compiler.lhs
--- a/Idris/Compiler.lhs
+++ b/Idris/Compiler.lhs
@@ -6,7 +6,7 @@
 > import Idris.ConTrans
 > import Idris.SCTrans
 > import Idris.Lib
-> import Ivor.TT hiding (transform)
+> import Ivor.TT hiding (transform, SimpleCase(..), CaseAlt(..))
 
 > import System
 > import System.IO
@@ -40,6 +40,7 @@
 >               let pcomp = map (pmCompDef raw ctxt erasure trans vtrans) pdefs
 >               let declouts = filter (/="") (map epicDecl decls)
 >               let clink = filter (/="") (map epicLink decls)
+>               -- dumpNames pcomp
 >               let scs = map (\ (n, inl, sc) -> (n, inl, transformSC erasure sc)) 
 >                           $ allSCs pcomp
 >               catch (do compileAll raw ctxt ofile erasure clink declouts scs
@@ -49,7 +50,7 @@
 >                               return False)
 >    where allSCs [] = []
 >          allSCs ((x,gen,(args,def)):xs) 
->                       = -- trace (show (x,def)) $
+>                       = -- trace (show (x,args)) $
 >                         let lifted = lambdaLift ctxt ist x args def
 >                             scfuns = map (\ (n,args,sc) -> 
 >                                          (n, scFun ctxt ist (fromIvorName ist n) args sc)) lifted
@@ -136,10 +137,13 @@
 >      prel <- readLibFile defaultLibPath "Prelude.e"
 >      hPutStrLn eH prel
 >      mapM_ (hPutStrLn eH) outputs
+>      -- dumpNames scs
 >      mapM_ (writeDef eH erasure) scs
 >      hClose eH
->      let cmd = "epic " ++ efile ++ " -o " ++ ofile ++ " " ++
->                concat (map (' ':) clink)
+>      let cmd = "epic " ++ efile ++ " -o " ++ ofile ++
+>                " -checking 0 " ++ 
+>                concat (map (' ':) clink) 
+>      -- putStrLn cmd
 >      exit <- system cmd
 >      -- removeFile efile
 >      if (exit /= ExitSuccess) 
@@ -152,13 +156,20 @@
 > quotename ('.':cs) = "_NS_"++quotename cs
 > quotename (c:cs) = c:(quotename cs)
 
+> dumpNames [] = return ()
+> dumpNames (x:xs) = do putStr "Name: "
+>                       putStrLn ((\ (a, b, c) -> show a) x)
+>                       dumpNames xs
+
 > writeDef :: Handle -> Bool -> (Name, Bool, SCFun) -> IO ()
 > writeDef h erasure (n,gen,(SCFun scopts args def)) = do
+>   -- putStrLn $ "Writing " ++ show n
 >   when (gen || elem SCInline scopts) $ hPutStr h "%inline "
 >   when (elem SCStrict scopts) $ hPutStr h "%strict "
 >   maybe (return ()) (\ c -> hPutStrLn h ("export " ++ show c ++ " ")) (getEName scopts)
 >   hPutStrLn h (quotename (show n) ++ " (" ++ list args ++ ") -> Any = \n" ++
 >                writeSC n erasure def)
+>   -- putStrLn $ "Written " ++ show n
 >    where list [] = ""
 >          list [a] = quotename (show a) ++ " : Any"
 >          list (x:xs) = quotename (show x) ++ " : Any, " ++ list xs
@@ -194,6 +205,10 @@
 >         "__epic_toInt(" ++ writeSC' arg ++ ")"
 >     | n == name "__toString" =
 >         "__epic_toString(" ++ writeSC' arg ++ ")"
+>     | n == name "__floatToString" =
+>         "__epic_floatToString(" ++ writeSC' arg ++ ")"
+>     | n == name "__stringToFloat" =
+>         "__epic_stringToFloat(" ++ writeSC' arg ++ ")"
 >     | n == name "__charToInt" =
 >         writeSC' arg
 >     | n == name "__intToChar" =
@@ -212,6 +227,12 @@
 >     | effect == name "__effect" =
 >         "%effect(" ++ writeSC' v ++ ")"
 
+Manual allocation
+
+>   writeSC' (SApp (SVar malloc) [_,b,v])
+>     | malloc == name "malloc" =
+>         "%memory(%fixed," ++ writeSC' b ++ "," ++ writeSC' v ++ ")"
+
 Epic has if/then/else, so just use that
 
 >   writeSC' (SApp (SVar ite) [_,v,SLazy t,SLazy e])
@@ -221,6 +242,11 @@
 >     | ite == name "if_then_else" =
 >         writeSC' (SIf v t e)
 
+>   writeSC' (SApp (SVar n) [arg1, arg2, arg3])
+>     | n == name "__substr" =
+>         "__epic_substr("++writeSC' arg1++", " ++ writeSC' arg2 ++ ", " ++
+>                           writeSC' arg3 ++ ")"
+
 HACK for string equality
 
 >   writeSC' (SApp (SVar n) [arg1, arg2])
@@ -233,19 +259,25 @@
 
 >     | n == name "__strCons" =
 >         "__epic_strcons("++writeSC' arg1++", " ++ writeSC' arg2 ++ ")"
+>     | n == name "__strFind" =
+>         "__epic_strFind("++writeSC' arg1++", " ++ writeSC' arg2 ++ ")"
 
 >   writeSC' (SApp (SVar n) [arg1])
 >     | n == name "__strHead" =
 >         "__epic_strhead("++writeSC' arg1++ ")"
 >     | n == name "__strTail" =
 >         "__epic_strtail("++writeSC' arg1++ ")"
+>     | n == name "__strRev" =
+>         "__epic_strrev("++writeSC' arg1++ ")"
 
 >   writeSC' (SApp b args) = "(" ++ writeSC' b ++")(" ++ list args ++ ")"
 >       where list [] = ""
 >             list [a] = writeSC' a
 >             list (x:xs) = writeSC' x ++ ", " ++ list xs
->   writeSC' (SLet n val b) = "let " ++ show n ++ " : Any = " ++ writeSC' val
+>   writeSC' (SLet n val b) = "let " ++ quotename (show n) ++ " : Any = " ++ writeSC' val
 >                          ++ " in ("  ++ writeSC' b ++ ")"
+>   writeSC' (SCCase b alts@((SConstAlt _ _):_))
+>                    = writeConstAlts fname erasure (writeSC' b) alts
 >   writeSC' (SCCase b alts) = "case " ++ writeSC' b ++ " of { " ++ 
 >                              writeAlts fname erasure alts
 >                             ++ "}"
@@ -294,11 +326,24 @@
 > writeAlt n e (SAlt _ t args b) = "Con " ++ show t ++ " (" ++ list args ++ ") -> "
 >                                ++ writeSC n e b
 >    where list [] = ""
->          list [a] = show a ++ ":Any"
->          list (x:xs) = show x ++ ":Any, " ++ list xs
+>          list [a] = quotename (show a) ++ ":Any"
+>          list (x:xs) = quotename (show x) ++ ":Any, " ++ list xs
 > writeAlt n e (SDefault b) = "Default -> " ++ writeSC n e b
 > writeAlt n e _ = "Default -> error \"unhandled case in " ++ show n ++ "\""
 
+> writeConstAlts n e b [] = "error \" unhandled case in " ++ show n ++ "\""
+> writeConstAlts n e b [a] = writeConstAlt n e b a
+> writeConstAlts n e b (x:xs) = writeConstAlt n e b x ++
+>                             " else (" ++ writeConstAlts n e b xs ++ ")"
+
+> writeConstAlt n e b (SConstAlt (Num x) ret) 
+>                   = " if (" ++ b ++ " == " ++ show x ++") then ("
+>                        ++ writeSC n e ret ++ ") "
+> writeConstAlt n e b (SConstAlt (Str x) ret) 
+>                   = " if (__epic_streq(" ++ b ++ ", " ++ show x ++")) then ("
+>                        ++ writeSC n e ret ++ ") "
+> writeConstAlt n e b (SDefault ret) = writeSC n e ret
+
 Chars are just treated as Ints by the compiler, so convert here.
 
 > writeConst (Ch c) = show $ fromEnum c
@@ -335,6 +380,7 @@
 > fToEpic (SCon _ 1) = "Int"
 > fToEpic (SCon _ 2) = "String"
 > fToEpic (SCon _ 3) = "Ptr"
+> fToEpic (SCon _ 4) = "Float"
 > fToEpic _ = "Any" -- idris data type
 
 > tempfile :: IO (FilePath, Handle)
diff --git a/Idris/ConTrans.lhs b/Idris/ConTrans.lhs
--- a/Idris/ConTrans.lhs
+++ b/Idris/ConTrans.lhs
@@ -300,7 +300,7 @@
 >      getPlPos acc p p' = error $ "getPlPos : " ++ show (n,acc,p,p')
 
 >      plArg args args' r' x 
->            = x<length args && args!!x == Placeholder && recGuard x n r' (namesIn (args'!!x))
+>            = x<length args && args!!x == Placeholder && recGuard x n r' (namesIn (args'!!!(x,"args' fail")))
 >      args ((PClause args _ r):_) = length args
 >      args ((PWithClause _ args _ (Patterns rest)):_) = length args
 >      args [] = 0
@@ -398,7 +398,7 @@
 >                    (Name, (ViewTerm, Patterns)) -> [Transform]
 > makeIDTransform raw ctxt ctrans (n, (ty, patsin@(Patterns (_:_))))
 >   = let Patterns pats = transform ctxt ctrans [] n patsin 
->         argpos = zip [0..] (arguments (pats!!0))
+>         argpos = zip [0..] (arguments (pats!!!(0,"pats fail")))
 >         keepArgs = [0..length argpos-1] \\ (invariants argpos (map arguments pats))
 >         trans = Trans (show n ++ "_ID") 
 >                       (Just (mkIDTrans n keepArgs (length argpos)))
@@ -425,7 +425,7 @@
 
 >          stripInv t (PClause args _ ret) = PClause args [] (doTrans t ret)
 >          stripInv t w = w
->          idClause [k] t@(PClause args _ ret) | k<length args = args!!k == ret
+>          idClause [k] t@(PClause args _ ret) | k<length args = args!!!(k,"idClause fail") == ret
 >          idClause _ _ = False
 
 > makeIDTransform raw ctxt ctrans _ = []
@@ -435,7 +435,7 @@
 >             = let fn = getApp tm
 >                   args = getFnArgs tm in
 >               if fname == n && length args == arity && keep<length args then
->                   args!!keep
+>                   args!!!(keep, "mkIDfail")
 >                   else tm
 
 > mkIDTrans _ _ _ tm = tm
diff --git a/Idris/Fontlock.lhs b/Idris/Fontlock.lhs
--- a/Idris/Fontlock.lhs
+++ b/Idris/Fontlock.lhs
@@ -26,10 +26,11 @@
 > mkMarkups ctxt = map mkMarkup (map (\ (x,y) -> (x, rawDecl y)) (ctxtAlist ctxt))
 
 > mkMarkup :: (Id, Decl) -> (String, Markup)
+> mkMarkup (NS _ i, f) = mkMarkup (i, f)
 > mkMarkup (n, Fun _ _) = (show n, FN)
 > mkMarkup (n, Fwd _ _ _) = (show n, FN)
 > mkMarkup (n, TermDef _ _ _) = (show n, FN)
-> mkMarkup (n, Prf _) = (show n, FN)
+> mkMarkup (n, Prf _ _) = (show n, FN)
 > mkMarkup (n, DataDecl _) = (show n, TC)
 > mkMarkup (n, Constructor) = (show n, DC)
 > mkMarkup (n, _) = (show n, VV)
@@ -154,7 +155,7 @@
 >     html ((LATEX, t):xs) 
 >        = html (skipnl xs)
 >     html ((AUTHOR, t):xs) 
->        = -- "</code>\n\n<h4>Author: " ++ t ++ "</h4>\n\n<code>" ++ 
+>        = "</code>\n\n<h4>" ++ t ++ "</h4>\n\n<code>" ++ 
 >          "</code>" ++ sechead xs ++ "\n\n<code>" ++ html (skipnl xs)
 >     html ((SEC, t):xs) 
 >        = "</code><a name=\"" ++ secname t ++ "\">\n\n<h3>" ++ t ++ "</h3>\n\n<code>" ++ html (skipnl xs)
diff --git a/Idris/LambdaLift.lhs b/Idris/LambdaLift.lhs
--- a/Idris/LambdaLift.lhs
+++ b/Idris/LambdaLift.lhs
@@ -4,7 +4,7 @@
 
 > import Idris.AbsSyntax
 > import Idris.PMComp
-> import Ivor.TT
+> import Ivor.TT hiding (SimpleCase(..), CaseAlt(..))
 > 
 > import Control.Monad.State
 > import Data.Typeable
@@ -116,9 +116,9 @@
 >          liftAlt env (Alt c i args sc) = do sc' <- liftSC (env++args) sc
 >                                             return (Alt c i args sc')
 >          liftAlt env (ConstAlt c sc) = do sc' <- liftSC env sc
->                                           return (ConstAlt c sc)
+>                                           return (ConstAlt c sc')
 >          liftAlt env (Default sc) = do sc' <- liftSC env sc
->                                        return (Default sc)
+>                                        return (Default sc')
 
 First argument says whether to eta expand
 
@@ -130,6 +130,8 @@
 >          lift env (Let n ty val sc) = do val' <- lift env val
 >                                          sc' <- lift (n:env) sc
 >                                          return (Let n ty val' sc')
+>          lift env (Annotation a t) = do t' <- lift env t
+>                                         return (Annotation a t')
 >          -- and that's all the nested terms we care about
 >          lift env x = return x
 
@@ -234,18 +236,19 @@
 
 > instance ToSC ViewTerm where
 >     toSC ctxt ist t = sc' t [] where
->        sc' (Name _ n) args 
+>        sc' (Name ty n) args 
 >          | n == toIvorName (UN "__Prove_Anything")
 >            -- we can't actually use this value!
 >             = SCon (toIvorName (UN "__FAKE")) 0 
 >          | n == toIvorName (UN "__Suspend_Disbelief") -- arbitrary refl
 >             = scapply ist (SCon (toIvorName (UN "refl")) 0) args -- can't actually use this either
->          | otherwise
+>          | ty == DataCon
 >             = case getConstructorTag ctxt n of
 >                   Right i -> scapply ist (SCon n i) args
->                   _ -> case nameType ctxt n of
->                                  Right TypeCon -> SUnit
->                                  _ -> scapply ist (SVar n) args
+>          | otherwise
+>             = case nameType ctxt n of
+>                   Right TypeCon -> SUnit
+>                   _ -> scapply ist (SVar n) args
 >        sc' (App f a) args = sc' f ((sc' a []):args)
 >        sc' (Let n ty val x) args 
 >                = scapply ist (SLet n (sc' val []) (sc' x [])) args
@@ -255,11 +258,15 @@
 >        sc' (Constant c) [] 
 >            = case (cast c)::Maybe Int of
 >                 Just i -> SConst (Num i)
->                 Nothing -> case (cast c)::Maybe String of
->                                Just s -> SConst (Str s)
->                                Nothing -> case (cast c)::Maybe Char of
->                                             Just c -> SConst (Num (fromEnum c))
+>                 Nothing -> 
+>                    case (cast c)::Maybe String of
+>                           Just s -> SConst (Str s)
+>                           Nothing -> case (cast c)::Maybe Char of
+>                                        Just c -> SConst (Num (fromEnum c))
+>                                        Nothing -> case (cast c)::Maybe Double of
+>                                                     Just c -> SConst (Fl c)
 >        sc' (Annotation _ x) args = sc' x args
+>        sc' Placeholder args = SUnit
 >        sc' x args = SUnit -- no runtime meaning
 
 scapply deals with special cases for infix operators, IO, etc.
diff --git a/Idris/Latex.lhs b/Idris/Latex.lhs
--- a/Idris/Latex.lhs
+++ b/Idris/Latex.lhs
@@ -101,9 +101,9 @@
 
 > instance LaTeX RawTerm where
 >     latex ctxt defs tm = showP 10 tm where
->        showP p (RVar _ _ (UN "__Unit")) = "()"
->        showP p (RVar _ _ (UN "__Empty")) = "\\bottom"
->        showP p (RVar _ _ i) = latex ctxt defs i
+>        showP p (RVar _ _ (UN "__Unit") _) = "()"
+>        showP p (RVar _ _ (UN "__Empty") _) = "\\bottom"
+>        showP p (RVar _ _ i _) = latex ctxt defs i
 >        showP p RRefl = "\\DC{refl}"
 >        showP p RPlaceholder = "\\_"
 >        showP p (RApp _ _ f a) = bracket p 1 $ showP 1 f ++ "\\:" ++ showP 0 a
diff --git a/Idris/Lexer.hs b/Idris/Lexer.hs
--- a/Idris/Lexer.hs
+++ b/Idris/Lexer.hs
@@ -69,6 +69,7 @@
       | TokenLockType
       | TokenPtrType
       | TokenDataType
+      | TokenCoDataType
       | TokenInfix
       | TokenInfixL
       | TokenInfixR
@@ -148,6 +149,7 @@
       | TokenBang
 -- Tactics
       | TokenProof
+      | TokenTryProof
       | TokenIntro
       | TokenRefine
       | TokenExists
@@ -161,6 +163,7 @@
       | TokenInduction
       | TokenFill
       | TokenTrivial
+      | TokenSimpleSearch
       | TokenMkTac
       | TokenBelieve
       | TokenUse
@@ -213,7 +216,7 @@
 lexer cont (';':cs) = cont TokenSemi cs
 lexer cont ('\\':cs) = cont TokenLambda cs
 lexer cont ('#':'(':cs) = cont TokenHashOB cs
-lexer cont ('#':cs) = cont TokenType cs
+-- lexer cont ('#':cs) = cont TokenType cs
 lexer cont (',':cs) = cont TokenComma cs
 lexer cont ('|':'(':cs) = cont TokenLazyBracket cs
 lexer cont ('%':cs) = lexSpecial cont cs
@@ -271,7 +274,9 @@
    case span isAllowed cs of
 -- Keywords
       ("proof",rest) -> cont TokenProof rest
+      ("tryproof",rest) -> cont TokenTryProof rest
       ("data",rest) -> cont TokenDataType rest
+      ("codata",rest) -> cont TokenCoDataType rest
       ("using",rest) -> cont TokenUsing rest
       ("idiom",rest) -> cont TokenIdiom rest
       ("params",rest) -> cont TokenParams rest
@@ -331,8 +336,8 @@
 --                   ("<=",rest) -> cont TokenLE rest
 --                   ("++",rest) -> cont TokenConcat rest
 --                   ("&&",rest) -> cont TokenAnd rest
-                   ("<<",rest) -> cont TokenLPair rest
-                   (">>",rest) -> cont TokenRPair rest
+                   ("<|",rest) -> cont TokenLPair rest
+                   ("|>",rest) -> cont TokenRPair rest
                    ("&",rest) -> cont TokenTuple rest
 --                   ("||",rest) -> cont TokenOr rest
                    ("...",rest) -> cont TokenEllipsis rest
@@ -346,7 +351,7 @@
                    ("~", rest) -> cont TokenTilde rest
                    (op,rest) -> cont (TokenInfixName op) rest
 
-isOpPrefix c = c `elem` ":+-*/=_.?|&><!@$%^~"
+isOpPrefix c = c `elem` ":+-*/=_.?|&><!@$%^~#"
 isOpChar = isOpPrefix
 
 lexBrackVar cont cs =
@@ -380,6 +385,7 @@
       ("induction",rest) -> cont TokenInduction rest
       ("fill", rest) -> cont TokenFill rest
       ("trivial", rest) -> cont TokenTrivial rest
+      ("searchcontext", rest) -> cont TokenSimpleSearch rest
       ("mktac", rest) -> cont TokenMkTac rest
       ("believe", rest) -> cont TokenBelieve rest
       ("use", rest) -> cont TokenUse rest
diff --git a/Idris/MakeTerm.lhs b/Idris/MakeTerm.lhs
--- a/Idris/MakeTerm.lhs
+++ b/Idris/MakeTerm.lhs
@@ -3,29 +3,40 @@
 > import Idris.AbsSyntax
 > import Idris.Prover
 > import Idris.SimpleCase
+> import Idris.PartialEval
 
 > import Ivor.TT as TT
 > import Debug.Trace
 
 > import Control.Monad
+> import Control.Monad.State
 > import List
 
 Work out how many implicit arguments we need, then translate our definition
 into an ivor definition, with all the necessary placeholders added.
 
+The definition may generate new definitions (e.g. metavariables with proofs
+attached).
+
 > makeIvorFun ::  Implicit -> UndoInfo -> UserOps ->
->                 Ctxt IvorFun -> Decl -> Function -> [CGFlag] -> IvorFun
+>                 Ctxt IvorFun -> Decl -> Function -> [CGFlag] -> 
+>                 (IvorFun, [Decl])
 
 > makeIvorFun using ui uo ctxt decl (Function n ty clauses file line) flags
 >     = let (rty, imp) = addImplWith using ctxt ty
 >           ity = makeIvorTerm using ui uo n ctxt rty
 >           extCtxt = addEntry ctxt (thisNamespace using) n (IvorFun Nothing (Just ity) 
 >                                       imp Nothing decl flags (map (+p) (getLazy ty)) (map (+p) (getStatic ty)))
->           pclauses = map (mkPat extCtxt imp) clauses in
->       IvorFun (Just (toIvorName (fullName using n))) 
+>           clauses' = map (\ (n, c) -> (n, syntaxClause ctxt using uo c)) clauses 
+>           (clausesm, (_, newms)) 
+>                 = runState (insertMetasClauses n clauses') (0, [])
+>           pclauses = map (mkPat extCtxt imp) clausesm
+>           newdefs = reverse (map mkPrf newms) in
+>       (IvorFun (Just (toIvorName (fullName using n))) 
 >                   (Just (Annotation (FileLoc file line) ity)) imp 
 >                   (Just (PattDef (Patterns pclauses))) decl flags 
->                   (map (+p) (getLazy ty)) (map (+p) (getStatic ty))
+>                   (map (+p) (getLazy ty)) (map (+p) (getStatic ty)),
+>                   newdefs)
 >   where p = length (params using)
 >         mkPat ectx imp (id,(RawClause lhs rhs)) 
 >               = let lhs' = addPlaceholders ectx using uo lhs in
@@ -42,6 +53,7 @@
 >                                vscr = makeIvorTerm using ui uo n ectx scr
 >                                vdef = Patterns $ map (mkPat ectx imp) (zip (repeat id) def) in
 >                                PWithClause prf vpats vscr vdef
+>         mkPrf (nm, tacs, failable) = Prf (Proof nm Nothing tacs) failable
 
 > makeIvorFuns :: [Opt] -> Ctxt IvorFun -> 
 >                 [Decl] -> UserOps -> (Ctxt IvorFun, UserOps)
@@ -90,8 +102,8 @@
 >                     in UI b bi r ri pfull pureImpl afull apImpl
 > mif opt ctxt acc using' ui uo (decl@(Fun f flags):ds) 
 >         = let using = addParamName using' (funId f)
->               fn = makeIvorFun using ui uo (appCtxt ctxt acc) decl f flags in
->               mif opt ctxt (addEntry acc (thisNamespace using) (funId f) fn) using ui uo ds
+>               (fn, newdefs) = makeIvorFun using ui uo (appCtxt ctxt acc) decl f flags in
+>               mif opt ctxt (addEntry acc (thisNamespace using) (funId f) fn) using ui uo (newdefs ++ ds)
 > mif opt ctxt acc using' ui uo (decl@(Fwd n ty flags):ds) 
 >      = let (file, line) = getFileLine ty
 >            using = addParamName using' n
@@ -134,10 +146,11 @@
 >              (IvorFun Nothing Nothing 0 Nothing decl [] [] [])) using ui 
 >                   (UO fix trans' fr syns) ds
 > mif opt ctxt acc using ui uo@(UO fix trans fr syns) (decl@(SynDef f args rhs):ds) 
->         = let sname = mkName (thisNamespace using) f in
+>         = let sname = mkName (thisNamespace using) f 
+>               syns' = addEntry syns (thisNamespace using) sname (Syntax sname args rhs) in
 >               mif opt ctxt (addEntry acc (thisNamespace using) f
 >                 (IvorFun Nothing Nothing 0 Nothing decl [] [] []))
->               using ui (UO fix trans fr ((Syntax sname args rhs):syns)) ds
+>               using ui (UO fix trans fr syns') ds
 
 Don't add yet! Or everything will be frozen in advance, rather than being 
 frozen after they are needed.
@@ -146,16 +159,16 @@
 >     = mif opt ctxt (addEntry acc (thisNamespace using) (MN "freeze" (length ds))
 >                 (IvorFun Nothing Nothing 0 Nothing decl [] [] [])) using ui 
 >                 (UO fix trans fr syns) ds
-> mif opt ctxt acc using ui uo (decl@(Prf (Proof n _ scr)):ds) 
+> mif opt ctxt acc using ui uo (decl@(Prf (Proof n _ scr) failable):ds) 
 >     = case ctxtLookup acc (thisNamespace using) n of
 >          Left _ -> -- add the script and process the type later, should
 >                    -- be a metavariable
 >             mif opt ctxt (addEntry acc (thisNamespace using) n
->               (IvorFun (Just (toIvorName (fullName using n))) Nothing 0 (Just (IProof scr)) decl [] [] [])) 
+>               (IvorFun (Just (toIvorName (fullName using n))) Nothing 0 (Just (IProof scr failable)) decl [] [] [])) 
 >                  using ui uo ds
->          Right (IvorFun _ (Just ty) imp _ _ _ _ _) -> 
+>          Right (IvorFun _ ty imp _ _ _ _ _) -> 
 >             mif opt ctxt (addEntry acc (thisNamespace using) n
->               (IvorFun (Just (toIvorName (fullName using n))) (Just ty) imp (Just (IProof scr)) decl [] [] []))
+>               (IvorFun (Just (toIvorName (fullName using n))) ty imp (Just (IProof scr failable)) decl [] [] []))
 >                   using ui uo ds
 
 Just pass these on to epic to do the right thing
@@ -239,7 +252,7 @@
 >             = checkp pos n (getApps tm)
 >         checkp pos n [] = True
 >         checkp pos n (t:ts) 
->              | length t >= pos = nameMatch n (t!!pos) && checkp pos n ts
+>              | length t >= pos = nameMatch n (t!!!(pos,"checkp fail")) && checkp pos n ts
 >              | otherwise = False
 >         nameMatch n (Name _ nm) = n == nm
 >         nameMatch n (Annotation _ t) = nameMatch n t
@@ -283,49 +296,57 @@
 Add definitions to the Ivor Context. Return the new context and a list
 of things we need to define to complete the program (i.e. metavariables)
 
-> data TryAdd = OK (Context, [(Name, ViewTerm)]) UserOps
->             | Err (Context, [(Name, ViewTerm)]) UserOps String -- record how far we got
+> data TryAdd = OK (Context, [(Name, ViewTerm)]) UserOps StaticUsed
+>             | Err (Context, [(Name, ViewTerm)]) UserOps StaticUsed String -- record how far we got
 
-> addIvor :: [Opt] ->
+> addIvor :: [Opt] -> IdrisState ->
 >            Ctxt IvorFun -> -- all definitions, including prelude
 >            Ctxt IvorFun -> -- just the ones we haven't added to Ivor yet
->            Context -> UserOps -> TryAdd
-> addIvor opts all defs ctxt uo = addivs (ctxt, []) uo (ctxtAlist defs)
->    where addivs acc fixes [] = OK acc fixes
->          addivs acc fixes ((n, IvorProblem err):ds) = Err acc fixes err
->          addivs acc fixes (def@(_,ifn):ds) = 
->              case addIvorDef opts all fixes acc def of
->                 Right (ok, fixes) -> addivs ok fixes ds
->                 Left err -> Err acc fixes (idrisError all (guessContext ifn err))
+>            Context -> UserOps -> Statics -> StaticUsed -> TryAdd
+> addIvor opts ist all defs ctxt uo sts stu 
+>             = addivs (ctxt, []) uo stu (ctxtAlist defs)
+>    where addivs acc fixes stu [] = OK acc fixes stu
+>          addivs acc fixes stu ((n, IvorProblem err):ds) 
+>                                  = Err acc fixes stu err
+>          addivs acc fixes stu (def@(_,ifn):ds) = 
+>              case addIvorDef opts ist all fixes acc def sts stu of
+>                 Right (ok, fixes, stu') -> addivs ok fixes stu' ds
+>                 Left err -> Err acc fixes stu (idrisError all (guessContext ifn err))
 
 Add a definition to Ivor. UserOps have been finalised already, by makeIvorFuns,
 except frozen things, which need to be added as we go, in order.
 
-> addIvorDef :: [Opt] ->
+> addIvorDef :: [Opt] -> IdrisState ->
 >               Ctxt IvorFun -> UserOps -> (Context, [(Name, ViewTerm)]) -> 
->                (Id, IvorFun) -> 
->               TTM ((Context, [(Name, ViewTerm)]), UserOps)
-> addIvorDef opt raw uo (ctxt, metas) (n,IvorFun name tyin _ def (LatexDefs _) _ _ _) 
->                = return ((ctxt, metas), uo)
-> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Fixity op assoc prec) _ _ _) 
->                = return ((ctxt, metas), UO fix trans fr syns)
-> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(SynDef _ _ _) _ _ _) 
->                = return ((ctxt, metas), UO fix trans fr syns)
-> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Transform lhs rhs) _ _ _)
->                = return ((ctxt, metas), UO fix trans fr syns)
-> addIvorDef opt raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Freeze file line ns frfn) _ _ _)
+>               (Id, IvorFun) -> Statics -> StaticUsed -> 
+>               TTM ((Context, [(Name, ViewTerm)]), UserOps, StaticUsed)
+> addIvorDef opt ist raw uo (ctxt, metas) (n,IvorFun name tyin _ def (LatexDefs _) _ _ _) sts stu
+>                = return ((ctxt, metas), uo, stu)
+> addIvorDef opt ist raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Fixity op assoc prec) _ _ _) sts stu
+>                = return ((ctxt, metas), UO fix trans fr syns, stu)
+> addIvorDef opt ist raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(SynDef _ _ _) _ _ _) sts stu
+>                = return ((ctxt, metas), UO fix trans fr syns, stu)
+> addIvorDef opt ist raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Transform lhs rhs) _ _ _) sts stu
+>                = return ((ctxt, metas), UO fix trans fr syns, stu)
+> addIvorDef opt ist raw (UO fix trans fr syns) (ctxt, metas) (n,IvorFun name tyin _ def f@(Freeze file line ns frfn) _ _ _) sts stu
 >        = case ctxtLookupName raw ns frfn of
->            Right (_,fn') -> return ((ctxt, metas), UO fix trans (fn':fr) syns)
+>            Right (_,fn') -> return ((ctxt, metas), UO fix trans (fn':fr) syns, stu)
 >            Left err -> Left (ErrContext (file ++ ":" ++ show line ++ ":") (Message (show err)))
-> addIvorDef opt raw uo@(UO fix trans fr syns) (ctxt, metas) (n,IvorFun (Just name) tyin _ (Just def') _ flags lazy static) 
+> addIvorDef opt ist raw uo@(UO fix trans fr syns) (ctxt, metas) (n,IvorFun (Just name) tyin _ (Just def') _ flags lazy static) sts stu
 >   = let def = if (Verbose `elem` opt) 
 >                  then trace ("Processing " ++ show n) def' else def' in
 >       case def of
 >         PattDef ps -> -- trace (show (ps, getSpec flags fr)) $
->                       do (ctxt, newdefs) <- addPatternDefSC ctxt name (unjust tyin) ps (getSpec flags fr)
->                          if (null newdefs) then return ((ctxt, metas), uo)
->                            else do r <- addMeta (Verbose `elem` opt) raw ctxt metas newdefs
->                                    return (r, uo)
+>                 do checkArgLengths (show n) ps
+>                    (ctxt, newdefs) <- addPatternDefSC ctxt name (unjust tyin) ps (getSpec flags fr) sts
+>                    -- Get the type checked version
+>                    (_, pdef) <- getPatternDef ctxt name
+>                    -- Generate some PE data from it
+>                    -- let (_, nds, stu', newts, newfs) = getNewDefs n sts ist raw stu (PattDef pdef)
+>                    -- (ctxt, uo, freeze) <- addPEdefs raw ctxt sts uo nds
+>                    if (null newdefs) then return ((ctxt, metas), uo, stu)
+>                      else do r <- addMeta (Verbose `elem` opt) raw ctxt metas newdefs
+>                              return (r, uo, stu)
 >
 >         SimpleDef tm -> 
 >                         do tm' <- case (getSpec flags fr) of
@@ -339,11 +360,16 @@
 >                            ctxt <- case tyin of
 >                                 Nothing -> addDef ctxt name tm'
 >                                 Just ty -> addTypedDef ctxt name tm' ty
->                            return ((ctxt, metas), uo)
+>                            -- Get the type checked version
+>                            (_, pdef) <- getPatternDef ctxt name
+>                            -- Generate some PE data from it
+>                            let (_, nds, stu', newts, newfs) = getNewDefs n sts ist raw stu (PattDef pdef)
+>                            (ctxt, uo, freeze) <- addPEdefs raw ctxt sts uo nds
+>                            return ((ctxt, metas), uo, stu)
 >         LataDef -> case tyin of
 >                       Just ty -> do ctxt <- declareData ctxt name ty
->                                     return ((ctxt, metas), uo)
->         DataDef ind e -> -- trace (show ind) $
+>                                     return ((ctxt, metas), uo, stu)
+>         DataDef ind e -> -- trace (show (ind, e)) $
 >                          do c <- addDataNoElim ctxt ind
 >                           -- add once to fill in placeholders
 >                             ctxt <- if e then do
@@ -351,17 +377,28 @@
 >                           -- add again after we work out the parameters
 >                                     addData ctxt (mkParams d)
 >                                  else return c
->                             return ((ctxt, metas), uo)
+>                             return ((ctxt, metas), uo, stu)
 >                           -- addDataNoElim ctxt (mkParams d)
 >                           -- trace (show (mkParams d)) $ return c
->         IProof scr -> do ctxt <- runScript raw ctxt uo n scr
->                          return ((ctxt, filter (\ (x,y) -> x /= toIvorName n)
->                                         metas), uo)
+>         IProof scr failable -> 
+>                do case runScript raw ctxt uo n scr of
+>                     Right ctxt -> do
+>                        return ((ctxt, filter (\ (x,y) -> x /= toIvorName n)
+>                                metas), uo, stu)
+
+If the proof doesn't work, but it was just a guess in a [tryproof ...] block,
+just silently discard it and leave it for the user to fill in later:
+
+>                     Left err -> let ctxt' = if (Verbose `elem` opt) then
+>                                             trace (show n ++ " proof failed") ctxt else ctxt in
+>                                 if failable 
+>                                     then return ((ctxt', metas), uo, stu)
+>                                     else Left err
 >         Later -> case tyin of
 >                    Just ty -> do ctxt <- declare ctxt name ty
->                                  return ((ctxt, metas), uo)
+>                                  return ((ctxt, metas), uo, stu)
 >                    Nothing -> fail $ "No type given for forward declared " ++ show n
->         _ -> return ((ctxt, metas), uo)
+>         _ -> return ((ctxt, metas), uo, stu)
 >    where unjust (Just x) = x
 >          getSpec [] fr
 >             = Nothing
@@ -372,4 +409,10 @@
 >             | otherwise = Just $ (map (\ (x, i) -> (toIvorName x, i)) ns) ++
 >                              (map (\x -> (toIvorName x, 0)) fr)
 >          getSpec (_:ns) fr = getSpec ns fr
+
+> checkArgLengths :: String -> Patterns -> TTM ()
+> checkArgLengths n (Patterns cs) 
+>    = if (length (nub (map (length.arguments) cs)) <= 1)
+>         then return ()
+>         else ttfail $ "Differing numbers of arguments in clauses for " ++ n
 
diff --git a/Idris/PMComp.lhs b/Idris/PMComp.lhs
--- a/Idris/PMComp.lhs
+++ b/Idris/PMComp.lhs
@@ -5,7 +5,7 @@
 Pattern matching compiler, convert to simple case expressions
 
 > import Idris.AbsSyntax
-> import Ivor.TT
+> import Ivor.TT hiding (SimpleCase(..), CaseAlt(..))
 
 > import Data.Typeable
 > import Debug.Trace
@@ -67,10 +67,11 @@
 
 > toPat :: Context -> ViewTerm -> Pat
 > toPat ctxt tm = toPat' tm [] where
->     toPat' (Name _ n) []
+>     toPat' (Name ty n) []
+>         | ty /= DataCon = PVar n
 >         | isVar n = PVar n
 >         | not (isCon n) = PAny
->     toPat' (Name _ n) args 
+>     toPat' (Name DataCon n) args 
 >         | isCon n = case getConstructorTag ctxt n of
 >                       Right i -> PCon n i args
 >                       Left _ -> error "Can't happen: no tag"
@@ -84,8 +85,12 @@
 >     toPat' (Constant c) []
 >             = case (cast c)::Maybe Int of
 >                   Just i -> PConst (Num i)
->                   Nothing -> case (cast c)::Maybe String of
->                                 Just s -> PConst (Str s)
+>                   Nothing -> 
+>                      case (cast c)::Maybe String of
+>                         Just s -> PConst (Str s)
+>                         Nothing ->
+>                             case (cast c)::Maybe Char of
+>                               Just c -> PConst (Num (fromEnum c))
 >     toPat' (Constant _) args 
 >                = error "Can't happen: constant applied to arguments"
 >     toPat' _ _ = PAny
@@ -147,7 +152,7 @@
 >          allArgs ((Clause args rest):cs) = args:(allArgs cs)
 
 >          pick [] _ = []
->          pick (i:is) xs = if (i<=length xs) then xs!!i : (pick is xs)
+>          pick (i:is) xs = if (i<length xs) then xs!!i : (pick is xs)
 >                              else error ("ARGH! pick " ++ show (i,xs,cs))
 
 Count the number of different constructor forms in xs
diff --git a/Idris/Parser.y b/Idris/Parser.y
--- a/Idris/Parser.y
+++ b/Idris/Parser.y
@@ -88,6 +88,7 @@
       type            { TokenType }
       lazybracket     { TokenLazyBracket }
       data            { TokenDataType }
+      codata          { TokenCoDataType }
       infix           { TokenInfix }
       infixl          { TokenInfixL }
       infixr          { TokenInfixR }
@@ -120,6 +121,7 @@
       let             { TokenLet }
       in              { TokenIn }
       proof           { TokenProof }
+      try             { TokenTryProof }
       intro           { TokenIntro }
       refine          { TokenRefine }
       generalise      { TokenGeneralise }
@@ -132,6 +134,7 @@
       induction       { TokenInduction }
       fill            { TokenFill }
       trivial         { TokenTrivial }
+      simplesearch    { TokenSimpleSearch }
       mktac           { TokenMkTac }
       believe         { TokenBelieve }
       use             { TokenUse }
@@ -152,6 +155,7 @@
 %nonassoc LAM
 %nonassoc let in
 %nonassoc '!' '@'
+%nonassoc NEG
 %left or
 %left and '&'
 %left '=' -- eq
@@ -159,7 +163,6 @@
 %left '<' le '>' ge
 %left '+' '-'
 %left '*' '/'
-%left NEG
 %left concat
 %left '\\'
 %right arrow
@@ -170,7 +173,7 @@
 -- All the things I don't want to cause a reduction inside a lam...
 %nonassoc name inttype chartype floattype stringtype int char string float bool refl do type
           empty unit '_' ptrtype handletype locktype metavar NONE brackname lazy
-          oid '~' lpair PAIR return transarrow exists
+          oid '~' lpair PAIR return transarrow exists proof
 %left APP
 %nonassoc if then else
 
@@ -211,15 +214,15 @@
 Transform : transform Term fatarrow Term ';' { Transform $2 $4 }
 
 Function :: { ParseDecl }
-Function : Name ':' Type Flags File Line ';' { FunType $1 $3 (nub $4) $5 $6 }
+Function : Name ':' Type ';' Flags File Line { FunType $1 $3 (nub $5) $6 $7 }
          | Name ProofScript ';' { ProofScript $1 $2 }
 --         | DefTerm '=' Term Flags ';' { FunClause (mkDef $1) [] $3 $4 }
          | DefTerm WithTerms WithP Term '{' Functions '}' File Line
               { WithClause (mkDef $8 $9 $1) $2 $3 $4 $6 }
          | DefTerm WithTerms mightbe Term ';' '[' Name ']' File Line
               { FunClauseP (mkDef $9 $10 $1) $2 $4 $7 }
-         | DefTerm WithTerms '=' Term Flags ';' File Line 
-              { FunClause (mkDef $7 $8 $1) $2 $4 (nub $5) }
+         | DefTerm WithTerms '=' Term ';' Flags File Line 
+              { FunClause (mkDef $7 $8 $1) $2 $4 (nub $6) }
          | '|' WithTerm '=' Term ';' { FunClause RPlaceholder [$2] $4 [] }
          | '|' WithTerm mightbe Term ';' '[' Name ']' 
               { FunClauseP RPlaceholder [$2] $4 $7 }
@@ -244,15 +247,15 @@
 WithTerm : SimpleAppTerm { $1 }
          | SigmaTerm { $1 }
          | '(' Term ')' { $2 }
-         | '(' TermList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair")) $2 }
+         | '(' TermList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair") Unknown) $2 }
 
 Functions :: { [ParseDecl] }
 Functions : Function Functions { $1:$2 }
           | Function { [$1] }
 
 Flags :: { [CGFlag] }
-Flags : FlagList { $1 }
-      | '[' FlagList ']' { $2 }
+Flags : '[' FlagList ']' { $2 }
+      | { [] }
 
 FlagList :: { [CGFlag] }
 FlagList : { [] }
@@ -308,13 +311,17 @@
 ArgTerms :: { [(RawTerm,Maybe Id)] }
 ArgTerms : { [] }
       | NoAppTerm ArgTerms { ($1,Nothing):$2 }
-      | brackname '}' ArgTerms File Line { (RVar $4 $5 $1, Just $1):$3 }
+      | brackname '}' ArgTerms File Line { (RVar $4 $5 $1 Unknown, Just $1):$3 }
       | brackname '=' Term '}' ArgTerms { ($3, Just $1):$5 }
 
 Datatype :: { Datatype }
-Datatype : data DataOpts Name DefinedData File Line
-             { mkDatatype $5 $6 $3 $4 $2 }
+Datatype : Data DataOpts Name DefinedData File Line
+             { mkDatatype $1 $5 $6 $3 $4 $2 }
 
+Data :: { Bool }
+Data : data { False }
+     | codata { True }
+
 DefinedData :: { Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) }
 DefinedData : DType Constructors ';' { Right ($1,$2) }
             | ':' Type ';' { Left $2 }
@@ -343,11 +350,11 @@
 SimpleAppTerm : SimpleAppTerm File Line NoAppTerm  %prec APP { RApp $2 $3 $1 $4 }
               | SimpleAppTerm ImplicitTerm '}' File Line %prec APP 
                    { RAppImp $4 $5 (fst $2) $1 (snd $2) }
-              | Name File Line { RVar $2 $3 $1 }
+              | Name File Line { RVar $2 $3 $1 Unknown }
               | Constant File Line { RConst $2 $3 $1 }
               | '_' { RPlaceholder }
-              | empty File Line { RVar $2 $3 (UN "__Empty") }
-              | unit File Line { RVar $2 $3 (UN "__Unit") }
+              | empty File Line { RVar $2 $3 (UN "__Empty") TypeCon }
+              | unit File Line { RVar $2 $3 (UN "__Unit") TypeCon }
 
 Term :: { RawTerm }
 Term : NoAppTerm { $1 }
@@ -355,14 +362,14 @@
      | Term File Line NoAppTerm  %prec APP { RApp $2 $3 $1 $4 }
      | Term ImplicitTerm '}' File Line %prec APP 
                    { RAppImp $4 $5 (fst $2) $1 (snd $2) }
-     | lazy Term File Line { RApp $3 $4 (RApp $3 $4 (RVar $3 $4 (UN "__lazy")) RPlaceholder) $2 }
+     | lazy Term File Line { RApp $3 $4 (RApp $3 $4 (RVar $3 $4 (UN "__lazy") Free) RPlaceholder) $2 }
      | '\\' Binds fatarrow Term %prec LAM
                 { doBind Lam $2 $4 }
      | let LetBinds in Term
                 { doLetBind $2 $4 }
      | InfixTerm { $1 }
      | if Term then Term else Term File Line
-       { mkApp $7 $8 (RVar $7 $8 (UN "if_then_else")) [$2,$4,$6] }
+       { mkApp $7 $8 (RVar $7 $8 (UN "if_then_else") Free) [$2,$4,$6] }
 
 Binds :: { [(Id, RawTerm)] }
 Binds : Name MaybeType { [($1,$2)] }
@@ -398,17 +405,17 @@
          | Name MaybeType '=' Term ',' LetBinds { ($1,$2,$4):$6 }
 
 ImplicitTerm :: { (Id, RawTerm) }
-ImplicitTerm : brackname File Line { ($1, RVar $2 $3 $1) }
+ImplicitTerm : brackname File Line { ($1, RVar $2 $3 $1 Unknown) }
              | brackname '=' Term { ($1, $3) }
 
 InfixTerm :: { RawTerm }
 InfixTerm : '-' Term File Line %prec NEG { RInfix $3 $4 Minus (RConst $3 $4 (Num 0)) $2 }
 --          | Term '+' Term File Line { RInfix $4 $5  Plus $1 $3 }
-          | Term '-' Term File Line { RUserInfix $4 $5 False "-" $1 $3 }
+          | Term '-' Term File Line %prec userinfix { RUserInfix $4 $5 False "-" $1 $3 }
 --          | Term '*' Term File Line { RInfix $4 $5  Times $1 $3 }
 --          | Term '/' Term File Line { RInfix $4 $5  Divide $1 $3 }
 --          | Term and Term File Line { RInfix $4 $5  OpAnd $1 $3 }
-          | Term '&' Term File Line { mkApp $4 $5 (RVar $4 $5 (UN "Pair")) [$1, $3] }
+          | Term '&' Term File Line { mkApp $4 $5 (RVar $4 $5 (UN "Pair") TypeCon) [$1, $3] }
 --          | Term or Term File Line { RInfix $4 $5  OpOr $1 $3 }
 --          | Term concat Term File Line { RInfix $4 $5  Concat $1 $3 }
 --          | Term eq Term File Line { RInfix $4 $5  OpEq $1 $3 }
@@ -426,51 +433,51 @@
 Section :: { RawTerm }
 Section : '(' userinfix Term File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix $4 $5 False $2 (RVar $4 $5 (MN "X" 0)) $3) }
+                       (RUserInfix $4 $5 False $2 (RVar $4 $5 (MN "X" 0) Unknown) $3) }
         | '(' Term userinfix File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix $4 $5 False $3 $2 (RVar $4 $5 (MN "X" 0))) }
+                       (RUserInfix $4 $5 False $3 $2 (RVar $4 $5 (MN "X" 0) Unknown)) }
         | '(' BuiltinOp Term File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix $4 $5 False $2 (RVar $4 $5 (MN "X" 0)) $3) }
+                       (RUserInfix $4 $5 False $2 (RVar $4 $5 (MN "X" 0) Unknown) $3) }
         | '(' Term BuiltinOp File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix $4 $5 False $3 $2 (RVar $4 $5 (MN "X" 0))) }
+                       (RUserInfix $4 $5 False $3 $2 (RVar $4 $5 (MN "X" 0) Unknown)) }
         | '(' Term '-' File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix $4 $5 False "-" $2 (RVar $4 $5 (MN "X" 0))) }
+                       (RUserInfix $4 $5 False "-" $2 (RVar $4 $5 (MN "X" 0) Unknown)) }
 
 -- Special cases for ->
 
         | '(' Term arrow File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex [] $2) (RVar $4 $5 (MN "X" 0))) }
+                       (RBind (MN "X" 1) (Pi Ex [] $2) (RVar $4 $5 (MN "X" 0) Unknown)) }
         | '(' arrow Term File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex [] (RVar $4 $5 (MN "X" 0))) $3) }       
+                       (RBind (MN "X" 1) (Pi Ex [] (RVar $4 $5 (MN "X" 0) Unknown)) $3) }       
         | '(' arrow File Line ')'
                { RBind (MN "X" 0) (Lam RPlaceholder)
                        (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex [] (RVar $3 $4 (MN "X" 0)))
-                       (RVar $3 $4 (MN "X" 1)))) }
+                    (RBind (MN "X" 2) (Pi Ex [] (RVar $3 $4 (MN "X" 0) Unknown))
+                       (RVar $3 $4 (MN "X" 1) Unknown))) }
 
  -- Special cases for pairing
 
         | '(' ',' File Line ')' 
               {  RBind (MN "X" 0) (Lam RPlaceholder)
                    (RBind (MN "X" 1) (Lam RPlaceholder)
-                       (pairDesugar $3 $4 (RVar $3 $4 (UN "mkPair"))
-                                    [RVar $3 $4 (MN "X" 0),
-                                     RVar $3 $4 (MN "X" 1)])) }
+                       (pairDesugar $3 $4 (RVar $3 $4 (UN "mkPair") DataCon)
+                                    [RVar $3 $4 (MN "X" 0) Unknown,
+                                     RVar $3 $4 (MN "X" 1) Unknown])) }
         | '(' Term ',' File Line ')' 
               {  RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair"))
+                       (pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair") DataCon)
                                     [$2,
-                                     RVar $4 $5 (MN "X" 0)]) }
+                                     RVar $4 $5 (MN "X" 0) Unknown]) }
         | '(' ',' Term File Line ')' 
               {  RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair"))
-                                    [RVar $4 $5 (MN "X" 0), $3]) }
+                       (pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair") DataCon)
+                                    [RVar $4 $5 (MN "X" 0) Unknown, $3]) }
 
 
 BuiltinOp :: { String }
@@ -503,7 +510,8 @@
          | SimpleAppTerm { $1 }
          | hashbrack Term ')' { $2 }
          | TypeTerm userinfix TypeTerm File Line { RUserInfix $4 $5 False $2 $1 $3 }
-         | '(' TypeList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "Pair")) $2 }
+         | TypeTerm '-' TypeTerm File Line { RUserInfix $4 $5 False "-" $1 $3 }
+         | '(' TypeList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "Pair") TypeCon) $2 }
          | SigmaType { $1 }
 
 ArgOpt :: { ArgOpt }
@@ -529,39 +537,47 @@
          | TypeTerm '&' TypeList { $1:$3 }
 
 NoAppTerm :: { RawTerm }
-NoAppTerm : Name File Line { RVar $2 $3 $1 }
+NoAppTerm : Name File Line { RVar $2 $3 $1 Unknown }
           | return File Line { RReturn $2 $3 }
           | '(' Term ')' { bracket $2 }
           | '~' NoAppTerm { RPure $2 }
           | metavar { RMetavar $1 }
+          | '[' proof Tactics ']' { RMetavarPrf (UN "") $3 False }
+          | '[' try Tactics ']' { RMetavarPrf (UN "") $3 True }
           | '!' Name File Line { RExpVar $3 $4 $2 }
 --          | '{' TypedBind '}' arrow NoAppTerm
 --                { doBind (Pi Im) $2 $5 }
           | Constant File Line { RConst $2 $3 $1 }
           | refl { RRefl }
-          | empty File Line { RVar $2 $3 (UN "__Empty") }
-          | unit File Line { RVar $2 $3 (UN "__Unit") }
+          | empty File Line { RVar $2 $3 (UN "__Empty") TypeCon }
+          | unit File Line { RVar $2 $3 (UN "__Unit") TypeCon }
           | '_' { RPlaceholder }
           | DoBlock { RDo $1 }
           | oid Term cid { RIdiom $2 }
-          | '(' TermList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair")) $2 }
+          | '(' TermList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "mkPair") DataCon) $2 }
 --          | '[' TermList ']' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "Exists")) $2 }
 --          | '(' TypeList ')' File Line { pairDesugar $4 $5 (RVar $4 $5 (UN "Pair")) $2 }
           | SigmaType { $1 } 
           | Section { $1 }
           | SigmaTerm { $1 }
+          | '[' File Line TermListZ ']' { mkConsList $2 $3 $4 }
 
 SigmaTerm :: { RawTerm }
 SigmaTerm : lpair Term ',' Term rpair File Line %prec PAIR
-                { RApp $6 $7 (RApp $6 $7 (RVar $6 $7 (UN "Exists")) $2) $4 }
+                { RApp $6 $7 (RApp $6 $7 (RVar $6 $7 (UN "Exists") DataCon) $2) $4 }
           | lpair Term rpair File Line %prec PAIR
-                { RApp $4 $5 (RApp $4 $5 (RVar $4 $5 (UN "Exists")) RPlaceholder) $2 }
+                { RApp $4 $5 (RApp $4 $5 (RVar $4 $5 (UN "Exists") DataCon) RPlaceholder) $2 }
 
 TermList :: { [RawTerm] }
          : Term ',' Term { $1:$3:[] }
          | Term ',' TermList { $1:$3 }
 
+TermListZ :: { [RawTerm] }
+         : { [] }
+         | Term { [$1] }
+         | Term ',' TermListZ { $1:$3 }
 
+
 DoBlock :: { [Do] }
 DoBlock : do '{' DoBindings '}' { $3 }
 -- Next rule is a TMP HACK! So that we can open brackets then have a name immediately.
@@ -662,6 +678,7 @@
        | induction Term { Induction $2 }
        | fill Term { Fill $2 }
        | trivial { Trivial }
+       | simplesearch { SimpleSearch }
        | mktac Term { RunTactic $2 }
        | believe Term { Believe $2 }
        | use Term { Use $2 }
@@ -675,8 +692,13 @@
 
 Tactics :: { [ITactic] }
 Tactics : Tactic ';' { [$1] }
+        | Tactic { [$1] }
         | Tactic ';' Tactics { $1:$3 }
 
+TacticList :: { [ITactic] }
+TacticList : Tactic { [$1] }
+           | Tactic ',' Tactics { $1:$3 }
+
 Line :: { LineNumber }
      : {- empty -}      {% getLineNo }
 
@@ -735,13 +757,23 @@
 parseTactic :: String -> Result ITactic
 parseTactic s = mkparseTactic s "(tactic)" 0 []
 
-mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
-mkCon _ (Full n t) = (n,t)
-mkCon ty (Simple n args) = (n, mkConTy args ty)
+-- Make a constructor type, and make arguments lazy if it's codata
+
+mkCon :: Bool -> RawTerm -> ConParse -> (Id,RawTerm)
+mkCon co _ (Full n t) = (n,if co then lazify t else t)
+mkCon co ty (Simple n args) = (n, mkConTy args ty)
    where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex [] a) (mkConTy as ty)
+         mkConTy (a:as) ty = let opts = if co then [Lazy] else [] in
+                                 RBind (MN "X" 0) (Pi Ex opts a) (mkConTy as ty)
 
-mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
+-- Make sure all arguments are lazy
+
+lazify :: RawTerm -> RawTerm
+lazify (RBind n (Pi p opts a) sc) 
+    = RBind n (Pi p (nub (Lazy:opts)) a) (lazify sc)
+lazify t = t
+
+mkDef file line (n, tms) = mkImpApp (RVar file line n Unknown) tms
    where mkImpApp f [] = f
          mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
          mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
@@ -755,20 +787,21 @@
 doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
 
 mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
-mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
-   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
+mkTyApp file line n ty = mkApp file line (RVar file line n Unknown) (getTyArgs ty)
+   where getTyArgs (RBind n _ t) = (RVar file line n Unknown):(getTyArgs t)
          getTyArgs x = []
 
 mkTyParams :: String -> Int -> [Id] -> RawTerm
 mkTyParams f l [] = RConst f l TYPE
 mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
 
-mkDatatype :: String -> Int ->
+mkDatatype :: Bool -> String -> Int ->
               Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
                     [TyOpt] -> Datatype
-mkDatatype file line n (Right ((t, using), cons)) opts
-    = Datatype n t (map (mkCon (mkTyApp file line n t)) cons) using opts file line 
-mkDatatype file line n (Left t) opts
+mkDatatype co file line n (Right ((t, using), cons)) opts
+    = let opts' = if co then nub (Codata:opts) else opts in
+          Datatype n t (map (mkCon co (mkTyApp file line n t)) cons) using opts' file line 
+mkDatatype co file line n (Left t) opts
     = Latatype n t file line
 
 bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
@@ -781,8 +814,13 @@
 
 sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
 sigDesugar file line (n, tm) sc
-    = mkApp file line (RVar file line (UN "Sigma")) [tm, lam]
+    = mkApp file line (RVar file line (UN "Sigma") TypeCon) [tm, lam]
    where lam = RBind n (Lam tm) sc
+
+mkConsList :: String -> Int -> [RawTerm] -> RawTerm
+mkConsList f l [] = RVar f l (UN "Nil") Unknown
+mkConsList f l (x:xs) = RApp f l (RApp f l (RVar f l (UN "Cons") Unknown) x)
+                                 (mkConsList f l xs)
 
 }
 
diff --git a/Idris/PartialEval.lhs b/Idris/PartialEval.lhs
new file mode 100644
--- /dev/null
+++ b/Idris/PartialEval.lhs
@@ -0,0 +1,310 @@
+Various bits and pieces to help do partial evaluation better.
+
+This module doesn't do PE itself - rather, it sets up the %transform, %spec
+and %freeze annotations.
+
+> module Idris.PartialEval(partialeval, addPEdefs, staticDecls, 
+>                          getNewDefs) where
+
+> import Idris.AbsSyntax
+> import Ivor.TT as TT
+
+> import Maybe
+> import List
+> import Control.Monad.State
+> import Debug.Trace
+
+> type NewTrans = [(ViewTerm, ViewTerm)]
+> type NewFreeze = [Name]
+> type NewDefs = [(Name, ViewTerm, Patterns, NewFreeze, (ViewTerm, ViewTerm))]
+
+> type StaticState = (NewDefs, StaticUsed, NewTrans, NewFreeze, Int)
+
+For everything in the context, look for applications of PEable functions,
+with 'findStatic' below.
+For each one, add a new definition, %spec it, %freeze it and add a
+%transform rule that applies the new definition backwards.
+
+For a definition d which uses PEable functions, add the new definitions 
+to the new context *before* adding d, followed by the %transform and %freeze 
+for each new definition, followed by d.
+
+ addPEdefs :: Statics -> IdrisState -> Ctxt IvorFun -> Ctxt IvorFun
+ addPEdefs sts ist raw = addpes newCtxt [] (ctxtAlist raw)
+   where addpes acc stu [] = acc
+         addpes acc stu ((n,i):is) =
+             let (i', defs, stu', _, _) = getPEdefs n sts ist raw stu i in
+                 addpes (addEntry acc [] n i') stu' is
+
+> getPEdefs :: Id -> Statics -> IdrisState ->
+>              Ctxt IvorFun -> StaticUsed -> IvorFun -> 
+>              (IvorFun, NewDefs, StaticUsed, NewTrans, NewFreeze)
+> getPEdefs n sts ist raw stu i = 
+>     case ivorDef i of
+>       Just d -> let (def', (nds, stused, ts, fs, _)) = runState (getPEdef n sts ist raw stu d) ([], stu, [], [], 0) in
+>                     (i { ivorDef = Just def' }, nds, stused, ts, fs)
+>       Nothing -> (i, [], stu, [], [])
+
+> getNewDefs :: Id -> Statics -> IdrisState ->
+>               Ctxt IvorFun -> StaticUsed -> IvorDef -> 
+>               (IvorDef, NewDefs, StaticUsed, NewTrans, NewFreeze)
+> getNewDefs n sts ist raw stu d = 
+>     let (d', (sts', stu', ts, fs, _)) = runState (getPEdef n sts ist raw stu d) ([],stu,[],[],0) in
+>         (d', sts', stu', ts, fs)
+
+> getPEdef :: Id -> Statics -> IdrisState -> Ctxt IvorFun -> 
+>             StaticUsed -> IvorDef ->
+>             State StaticState IvorDef
+> getPEdef n sts ist raw stu (PattDef (Patterns ps)) =
+>     do ps' <- mapM pepat ps
+>        return (PattDef (Patterns ps'))
+>       where
+>           pepat (PClause args bs ret) 
+>                 = do ret' <- findStatic n sts ist raw ret
+>                      return (PClause args bs ret')
+>           pepat (PWithClause p args sc (Patterns ps)) 
+>                 = do sc' <- findStatic n sts ist raw sc
+>                      ps' <- mapM pepat ps
+>                      return (PWithClause p args sc' (Patterns ps'))
+> getPEdef n sts ist raw stu (SimpleDef p) = 
+>     do p' <- findStatic n sts ist raw p
+>        return (SimpleDef p')
+> getPEdef _ _ _ _ _ x = return x
+
+
+Given a list of functions with static arguments, and a term...
+Look for applications of that function in the term. 
+
+Replace them with a partially evaluated version (look in StaticsUsed first
+to see if it's already been done.)
+
+Return: the new term, the new definitions added, and an updated cached of PEed
+functions.
+
+> findStatic :: Id -> Statics -> IdrisState -> Ctxt IvorFun -> ViewTerm -> 
+>               State StaticState ViewTerm
+> findStatic n sts ist raw vt = fs [] vt
+>    where
+>      fs stk (App f a) = do a' <- fs [] a
+>                            fs (a':stk) f
+>      fs stk (Lambda n ty sc) = do sc' <- fs [] sc
+>                                   freturn (Lambda n ty sc') stk
+>      fs stk (Let n ty v sc) = do v' <- fs [] v
+>                                  sc' <- fs [] sc
+>                                  freturn (Let n ty v' sc') stk
+>      fs stk (Annotation a vt) = do vt' <- fs stk vt
+>                                    return (Annotation a vt') 
+
+Don't bother with PE inside types
+
+>      fs stk x = freturn x stk
+
+>      freturn (Name _ f) args
+>         | Just (sts,arity,ty) <- lookup f sts
+>              = if length args == arity
+>                    then papply sts f ty args
+>                    else if length args > arity 
+>                            then do let (args', rest) = (take arity args,
+>                                                         drop arity args)
+>                                    app <- papply sts f ty args'
+>                                    return (apply app rest)
+>                            else return (apply (Name Unknown f) args)
+>      freturn f args = return (apply f args)
+
+Check the arguments in static position are indeed statically known.
+
+>      papply sts f ty args 
+>          | all (known args) sts = -- trace (show (f, args, ty)) $ 
+>              do let knownArgs = mkArgs sts 0 args
+>                 let ty' = newTy ty knownArgs
+>                 addDef f ty' knownArgs
+>                 return (apply (Name Unknown f) args)
+>      papply sts f ty args = return (apply (Name Unknown f) args)
+
+Pull out the arguments that are statically known
+
+>      mkArgs sts _ [] = []
+>      mkArgs sts i (a:args) | i `elem` sts = Right a : (mkArgs sts (i+1) args)
+>                            | otherwise = Left a : mkArgs sts (i+1) args
+
+>      newTy (Forall n ty sc) (Left _ : rest) 
+>          = Forall n ty (newTy sc rest)
+>      newTy (Forall n ty sc) (Right val : rest)
+>          = newTy (subst n val sc) rest
+>      newTy (Annotation a x) rest = Annotation a (newTy x rest)
+>      newTy x _ = x
+
+>      known args i = all nknown (namesTypesIn (args!!!(i,"known fail")))
+>      nknown x@(_,Free) = True
+>      nknown x@(_,DataCon) = True
+>      nknown x@(_,TypeCon) = True
+>      nknown x = False
+
+>      addDef f ty args = 
+>         do (nds, used, ts, fs, name) <- get
+>            let defname = toIvorName $ MN ("PE"++show n) name
+>            let sargs = mapMaybe getRight args
+>            let idx = (f, sargs)
+>            if (idx `elem` used) then return () else
+>              do
+>                 let dargs = getDargs args nameSupply
+>                 let rhs = reImplicit ist raw $
+>                             apply (Name Unknown f) (mkAppArgs args sargs dargs)
+>                 let dargs' = map (dused (namesIn rhs)) dargs
+>                 let used' = idx:used
+>                 let transFrom = mktrans (getMVs args dargs') rhs
+>                 let transTo = mktrans (getMVs args dargs') (apply (Name Unknown defname) dargs')
+>                 let trans = (transFrom, transTo)
+>                 let freeze = getFrozen transFrom
+>                 let newdef = (defname, ty, Patterns [PClause dargs' [] rhs], freeze, trans)
+>                 let nds' = newdef:nds
+>                 put (nds', used', trans:ts, freeze ++ fs, name+1)
+
+>      nameSupply = map (toIvorName.(MN "parg")) [0..]
+>      dused xs (Name _ n) | not (n `elem` xs) = Placeholder
+>      dused xs x = x
+
+>      -- getDargs ((Left n@(Name _ _)):xs) ns = n : getDargs xs ns
+>      getDargs ((Left _):xs) (n:ns) = (Name Unknown n) : getDargs xs ns
+>      getDargs (_:xs) ns = getDargs xs ns
+>      getDargs [] _ = []
+
+>      getRight (Right x) = Just x
+>      getRight _ = Nothing
+
+Make a list of arguments for the specialisable application
+
+>      mkAppArgs [] _ _ = []
+>      mkAppArgs (Left _:xs) ss (d:ds) = d:(mkAppArgs xs ss ds)
+>      mkAppArgs (Right v:xs) (s:ss) ds = s:(mkAppArgs xs ss ds)
+>      mkAppArgs _ _ _ = []
+
+Make the LHS and RHS of a transformation rule for the new definition
+
+>      getMVs (Left _:xs) (Name _ n:ds) = n:(getMVs xs ds)
+>      getMVs (Left _:xs) (_:ds) = getMVs xs ds
+>      getMVs (Right v:xs) ds = getMVs xs ds
+>      getMVs _ _ = []
+
+>      mktrans (n:ns) tm = mktrans ns (subst n (Metavar n) tm)
+>      mktrans [] tm = tm
+
+>      getFrozen tm = map fst (filter (\ (n, ty) -> ty == Free) (namesTypesIn tm))
+
+Re-add _s for implicit arguments in PE definitions (because the type checker
+will make a better job of working out what they should be than we will...)
+
+The terms will just be simple applications
+
+> reImplicit :: IdrisState -> Ctxt IvorFun -> ViewTerm -> ViewTerm
+> reImplicit ist raw tm = reImp tm []
+>   where reImp fn@(Name _ n) stk
+>               = case getName n of
+>                   Right ifn -> let imps = implicitArgs ifn 
+>                                    stk' = take imps (repeat Placeholder)
+>                                             ++ drop imps stk in
+>                                    apply fn stk'
+>                   _ -> apply fn stk
+>         reImp (App f a) stk = reImp f ((reImp a []):stk)
+>         reImp (Annotation a t) stk = Annotation a (reImp t stk)
+>         reImp x stk = apply x stk
+
+>         names = mkNameMap raw
+>         getName n = case lookup n names of
+>                       Just x -> ctxtLookup raw [] x
+>                       Nothing -> fail "No name"
+
+
+Get a list of functions with static arguments, and their arities.
+
+> staticDecls :: Ctxt IvorFun -> Statics
+> staticDecls ctx = mapMaybe getStatic (ctxtAlist ctx)
+>    where getStatic (n,i) 
+>             = if null (staticArgs i) || fwdDef (rawDecl i)
+>                  then Nothing
+>                  else let statics = (map (+ (implicitArgs i)) (staticArgs i))
+>                           ar = arity (ivorDef i)
+>                           extras = getExtras statics ar (ivorFType i) 
+>                         in Just (toIvorName n, 
+>                                  (nub (extras ++ statics), ar, 
+>                                   getType (ivorFType i)))
+
+>          fwdDef (Fwd _ _ _) = True
+>          fwdDef _ = False
+>          getType (Just t) = t
+
+>          arity (Just (PattDef ps)) = parity ps
+>          arity _ = 0
+>          parity (Patterns []) = 0
+>          parity (Patterns ((PClause xs _ _):_)) = length xs
+>          parity (Patterns ((PWithClause _ xs _ _):_)) = length xs
+
+Look for dependencies on the static arguments. Keep going until there are
+no more. Add any dependencies on static arguments which are dependencies on
+*no* dynamic arguments.
+
+>          getExtras _ _ Nothing = []
+>          getExtras ss ar (Just t) 
+>             = let ds = [0..ar-1] \\ ss
+>                   args = TT.getArgTypes t
+>                   stypes = map (\x -> snd (args!!!(x,"extra 1"))) ss
+>                   dtypes = map (\x -> snd (args!!!(x,"extra 2"))) ds
+>                   stnames = concatMap namesIn stypes 
+>                   dnames = concatMap namesIn dtypes 
+>                   newss_in = nub (ss ++ (mapMaybe (\x -> lookupIdx 0 x args) stnames)) 
+>                   newds = mapMaybe (\x -> lookupIdx 0 x args) dnames
+>                   newss = sort $ newss_in \\ newds in
+>                   if (ss==newss) then ss else getExtras newss ar (Just t)
+>          lookupIdx i x ((n,v):xs) | n==x = Just i
+>                                   | otherwise = lookupIdx (i+1) x xs
+>          lookupIdx i x [] = Nothing
+
+> addPEdefs :: Ctxt IvorFun -> Context -> Statics -> UserOps -> NewDefs -> 
+>              TTM (Context, UserOps, [Id])
+> addPEdefs raw ctxt sts uo nds = tryAdd ctxt uo [] nds
+>    where tryAdd ctxt uo frz [] = return (ctxt, uo, frz)
+>          tryAdd ctxt uo frz (d:ds) 
+>               = case addPEdef ctxt uo d of
+>                   Right (ctxt', uo', frz') -> -- trace ("WIN: " ++ show d) $
+>                       tryAdd ctxt' uo' (frz++frz') ds
+>                   Left err -> trace ("FAIL: " ++ show d ++ "\n" ++ show err) $
+>                       tryAdd ctxt uo frz ds
+
+>          addPEdef ctxt (UO fix trans frz syn) (n, ty, pdef, frz', trans') =
+>              do (ctxt, []) <- addPatternDef ctxt n ty pdef 
+>                               [Specialise (map (\x -> (x,1)) frz'),
+>                                SpecStatic (map getst sts)]
+>                 return (ctxt, UO fix (trans':trans) 
+>                                  (map getName frz'++frz) syn, 
+>                               map getName frz')
+
+>          getst (n, (args, arity, ty)) = (n,(args,arity))
+>          names = mkNameMap raw
+>          getName n = case lookup n names of
+>                         Just x -> x
+>                         Nothing -> UN (show n)
+
+Go through the context, evaluating enough to work out what the transform
+rules need to be. Return a new set of transform rules, and specialised versions
+of PEable functions.
+
+Algorithm is:
+
+In a definition f, PE(f):
+
+For each static function I, with static positions s1...sn:
+* If it appears in a pattern clause,  
+    make a new function Ispec di = mkSpec (I di si)
+       repeat PE(Ispec)
+    add a transform I ?di si => Ispec ?di
+          if any si is a name, freeze it
+
+mkSpec(I di si):
+
+* Evaluate I di si. Any si which is a name, expand only once.
+  After the top level I, do not evaluate any static arguments of any I -
+    either they are all expanded, or we'll PE them separately.
+
+> partialeval :: Ctxt IvorFun -> Context -> Statics -> UserOps -> 
+>                (Context, UserOps)
+> partialeval raw ctxt sts uos = (ctxt, uos)
diff --git a/Idris/Prover.lhs b/Idris/Prover.lhs
--- a/Idris/Prover.lhs
+++ b/Idris/Prover.lhs
@@ -108,6 +108,7 @@
 >     at ctxt ReflP = refine reflN defaultGoal ctxt
 >     at ctxt (Fill t) = fill (ivor t) defaultGoal ctxt
 >     at ctxt Trivial = (trivial >|> refine reflN) defaultGoal ctxt
+>     at ctxt SimpleSearch = (trivial >|> refine reflN >|> simplesearch raw uo) defaultGoal ctxt
 >     at ctxt (Believe t) = suspend_disbelief raw (ivor t) defaultGoal ctxt
 >     at ctxt (Use t) = prove_belief raw (ivor t) defaultGoal ctxt
 >     at ctxt (Decide t) = decide raw uo t defaultGoal ctxt
@@ -116,7 +117,7 @@
 >     at ctxt (Rewrite True f t) = rewriteAll (ivor t) f defaultGoal ctxt
 >     at ctxt Compute = compute defaultGoal ctxt
 >     at ctxt (Unfold n) = unfold (toIvorName n) defaultGoal ctxt
->     at ctxt (RunTactic tm) = runtac (ivor tm) defaultGoal ctxt
+>     at ctxt (RunTactic tm) = runtac raw uo (ivor tm) defaultGoal ctxt
 >     at ctxt ProofTerm = do tm <- proofterm ctxt
 >                            fail (showVT raw (view tm))
 >     at ctxt Qed = qed ctxt
@@ -211,7 +212,7 @@
 >                    rty <- checkCtxt ctxt goal arg1
 >                    when (viewType rty == Star) $
 >                         fail ((show arg1) ++ " is a type")
->                    ctxt' <- rewrite rt True goal ctxt
+>                    ctxt' <- rewrite rt False goal ctxt
 >                    rewriteDiffs ds goal ctxt'
 
 As above, but instead of just believing the value, insert subgoals for
@@ -232,13 +233,13 @@
 >          fill val goal ctxt
 >    where rewriteDiffs [] goal ctxt = idTac goal ctxt
 >          rewriteDiffs ((arg1, arg2):ds) goal ctxt
->               = do let claimTy = eqP arg1 arg2
+>               = do let claimTy = eqP arg2 arg1
 >                    claimName <- uniqueName ctxt (name "equality")
 >                    ctxt <- claim claimName claimTy goal ctxt
 >                    rty <- checkCtxt ctxt goal arg1
 >                    when (viewType rty == Star) $
 >                         fail ((show arg1) ++ " is a type")
->                    ctxt' <- rewrite (Name Unknown claimName) True goal ctxt
+>                    ctxt' <- rewrite (Name Unknown claimName) False goal ctxt
 >                    rewriteDiffs ds goal ctxt'
 
 decide; given a goal of the form X a b c, and a function x of type
@@ -255,15 +256,41 @@
 >    let args = getExplicitArgs idgoal
 >    let dapp = makeIvorTerm noImplicit defDo uo (UN "__prf") raw 
 >                            (mkApp "[proof]" 0 dproc args)
->    (isItJust dapp >|> runtac dapp) goal ctxt
+>    (isItJust dapp >|> runtac raw uo dapp) goal ctxt
 
+Try to solve a goal by looking through the global context. Obviously, this is
+a bit dumb.
+
+This is intended for type classes, so perhaps eventually what we'll want is
+a way of just searching for dictionaries.
+
+> simplesearch :: Ctxt IvorFun -> UserOps -> Tactic
+> simplesearch raw uo goal ctxt = tryAll 5 allns goal ctxt
+>    where tryAll 0 _ _ _  = ttfail "Can't find a solution"
+>          tryAll d [] g c = ttfail "Can't find a solution"
+>          tryAll d ((i,fn):rest) g c | isFun (ivorDef fn) && take 8 (show i) == "instance"
+>                 = (tryRefine d (show i) >|> tryAll d rest) g c
+>          tryAll d (_:rest) g c = tryAll d rest g c
+
+>          isFun (Just (SimpleDef _)) = True
+>          isFun (Just (PattDef _)) = True
+>          isFun _ = False
+>          allns = ctxtAlist raw
+
+>          tryRefine d n g c = do goald <- goalData c False defaultGoal
+>                                 c <- refine n g c
+>                                 if (allSolved c) then return c else
+>                                     (beta >-> tryAll (d-1) allns) defaultGoal c
+
+
+
 Run a tactic computed by mkTac
 
 Check the term actually computes a tactic, then evaluate it, then run the actual tactics
 the result term tells us to run.
 
-> runtac :: ViewTerm -> Tactic
-> runtac tmin goal ctxt = 
+> runtac :: Ctxt IvorFun -> UserOps -> ViewTerm -> Tactic
+> runtac raw uo tmin goal ctxt = 
 >    do tm <- checkCtxt ctxt goal tmin
 >       checkTac (viewType tm)
 >       tm' <- evalCtxt ctxt goal tm
@@ -288,6 +315,8 @@
 >               = exect x >|> exect y
 >         exect' (App (App (Name _ tfill) _) y) | tfill == name "TFill" 
 >               = fill y >+> keepSolving
+>         exect' (App (App (Name _ tdecide) _) y) | tdecide == name "TDecide" 
+>               = isItJust y >+> keepSolving
 >         exect' (App (Name _ trefine) (Constant s)) | trefine == name "TRefine" =
 >                  case cast s :: Maybe String of
 >                    Just str -> refine str
@@ -295,7 +324,8 @@
 >                  \ g c -> case cast s :: Maybe String of
 >                              Just err -> ttfail err 
 >         exect' (Name _ ttrivial) | ttrivial == name "TTrivial" = trivial >|> refine reflN
->         exect' tm = \ g c -> ttfail "Couldn't compute tactic"
+>         exect' (Name _ ttrivial) | ttrivial == name "TSearchContext" = trivial >|> simplesearch raw uo >|> refine reflN
+>         exect' tm = \ g c -> ttfail $ "Couldn't compute tactic " ++ show tm
 
 XXX: Auto-rewrite: user can add rewrite rules, auto-rewrite repeatedly
 rewrites by these rules until there's no more to rewrite, or until a
diff --git a/Idris/RunIO.hs b/Idris/RunIO.hs
--- a/Idris/RunIO.hs
+++ b/Idris/RunIO.hs
@@ -8,6 +8,7 @@
 import Ivor.TT
 import Ivor.Shell
 import Ivor.Construction
+import Idris.AbsSyntax
 
 import Data.Typeable
 import Data.IORef
@@ -40,9 +41,9 @@
 
 runIO :: Context -> ViewTerm -> IO ViewTerm
 runIO ctxt (App (App (App (Name _ d) _) act) k)
-    | d == name "IODo" = runAction ctxt (parseAction act) k
+    | d == name "IO.IODo" = runAction ctxt (parseAction act) k
 runIO ctxt (App (App (Name _ l) _) res)
-    | l == name "IOReturn" = return res
+    | l == name "IO.IOReturn" = return res
 runIO _ x = fail $ "Not an IO action: " ++ show x
 
 data Action = ReadStr
@@ -61,31 +62,31 @@
   parseAction' (Name _ n) args = (getAction n args)
 
 getAction n []
-    | n == name "GetStr" = ReadStr
+    | n == name "IO.GetStr" = ReadStr
 getAction n [Constant str]
-    | n == name "PutStr"
+    | n == name "IO.PutStr"
         = case cast str of
              Just str' -> WriteStr str'
 getAction n [_,t]
-    | n == name "Fork"
+    | n == name "IO.Fork"
         = Fork t
 getAction n [Constant i]
-    | n == name "NewLock" 
+    | n == name "IO.NewLock" 
         = case cast i of
              Just i' -> NewLock i'
 getAction n [lock]
-    | n == name "DoLock"
+    | n == name "IO.DoLock"
         = DoLock (getLock lock)
-    | n == name "DoUnlock"
+    | n == name "IO.DoUnlock"
         = DoUnlock (getLock lock)
 getAction n []
-    | n == name "NewRef" = NewRef
+    | n == name "IO.NewRef" = NewRef
 getAction n [_,Constant i]
-    | n == name "ReadRef" 
+    | n == name "IO.ReadRef" 
         = case cast i of
              Just i' -> ReadRef i'
 getAction n [_,Constant i,val]
-    | n == name "WriteRef"
+    | n == name "IO.WriteRef"
         = case cast i of
              Just i' -> WriteRef i' val
 
@@ -176,7 +177,7 @@
 getMem :: Int -> IO Value
 getMem loc = do let (MemState mem) = memory
                 (p, content) <- readIORef mem
-                return (content!!loc)
+                return (content!!!(loc, "getMem fail"))
 
 update :: [a] -> Int -> a -> [a]
 update [] _ _ = []
diff --git a/Idris/Serialise.lhs b/Idris/Serialise.lhs
--- a/Idris/Serialise.lhs
+++ b/Idris/Serialise.lhs
@@ -14,6 +14,8 @@
 > import Data.Typeable
 > import Control.Monad
 
+> import Debug.Trace
+
 > instance Binary ViewTerm where
 >     put (Name t x) = do put (0 :: Word8)
 >                         put t; put x
@@ -37,7 +39,13 @@
 >                          Nothing -> case cast c :: Maybe Int of
 >                            Just v -> do put (10 :: Word8)
 >                                         put v
->                            Nothing -> fail "Unknown constant type"
+>                            Nothing -> case cast c :: Maybe Double of
+>                               Just v -> do put (11 :: Word8)
+>                                            put v
+>                               Nothing -> case cast c :: Maybe Char of
+>                                 Just v -> do put (12 :: Word8)
+>                                              put v
+>                                 Nothing -> fail "Unknown constant type"
 
 >     get = do tag <- getWord8
 >              case tag of
@@ -54,6 +62,10 @@
 >                        return (Constant (s :: String))
 >                10 -> do i <- get
 >                         return (Constant (i :: Int))
+>                11 -> do d <- get
+>                         return (Constant (d :: Double))
+>                12 -> do d <- get
+>                         return (Constant (d :: Char))
 
 
 > instance Binary RBinder where
@@ -112,7 +124,7 @@
 >                2 -> liftM3 DoExp get get get
 
 > instance Binary RawTerm where
->     put (RVar a b c) = do put (0 :: Word8); put a; put b; put c
+>     put (RVar a b c d) = do put (0 :: Word8); put a; put b; put c; put d
 >     put (RExpVar a b c) = do put (1 :: Word8); put a; put b; put c
 >     put (RApp a b c d) = do put (2 :: Word8); put a; put b; put c; put d
 >     put (RAppImp a b c d e) 
@@ -134,7 +146,7 @@
 
 >     get = do tag <- getWord8
 >              case tag of
->                0 -> liftM3 RVar get get get
+>                0 -> liftM4 RVar get get get get
 >                1 -> liftM3 RExpVar get get get
 >                2 -> liftM4 RApp get get get get
 >                3 -> liftM5 RAppImp get get get get get
@@ -216,9 +228,9 @@
 
 > instance Binary IvorFun where
 >     put (IvorFun a b c d e f g h) = 
->         do put a; put b; put c; put d; put e; put f; put g; put h
->     get = do a <- get; b <- get; c <- get; d <- get; e <- get; f <- get; g <- get; h <- get
->              return (IvorFun a b c d e f g h)
+>         do trace ("Put " ++ show (a, d)) $ put a; put b; put c; put d; put e; put f; put g; put h
+>     get = do a <- get; b <- trace (show a) $ get; c <- get; d <- get; e <- get; f <- get; g <- get; h <- get
+>              trace ("Got " ++ show (a, d)) $ return (IvorFun a b c d e f g h)
 
 > instance Binary CGFlag where
 >     put NoCG = put (0 :: Word8)
@@ -241,7 +253,7 @@
 >     put (Fun a b) = do put (2 :: Word8); put a; put b
 >     put (TermDef a b c) = do put (3 :: Word8); put a; put b; put c
 >     put Constructor = put (4 :: Word8)
->     put (Prf d) = do put (5 :: Word8); put d
+>     put (Prf d f) = do put (5 :: Word8); put d; put f
 >     put (LatexDefs d) = do put (6 :: Word8); put d
 >     put (Using a b) = do put (7 :: Word8); put a; put b
 >     put (Params a b) = do put (8 :: Word8); put a; put b
@@ -252,6 +264,9 @@
 >     put (Fixity a b c) = do put (13 :: Word8); put a; put b; put c
 >     put (Transform a b) = do put (14 :: Word8); put a; put b
 >     put (Freeze a b c d) = do put (15 :: Word8); put a; put b; put c; put d
+>     put (SynDef a b c) = do put (16 :: Word8); put a; put b; put c
+>     put (PInclude a) = do put (17 :: Word8); put a
+>     put (Namespace a b) = do put (18 :: Word8); put a; put b
 
 >     get = do tag <- getWord8
 >              case tag of
@@ -260,7 +275,7 @@
 >                2 -> liftM2 Fun get get
 >                3 -> liftM3 TermDef get get get
 >                4 -> return Constructor
->                5 -> liftM Prf get
+>                5 -> liftM2 Prf get get
 >                6 -> liftM LatexDefs get
 >                7 -> liftM2 Using get get
 >                8 -> liftM2 Params get get
@@ -271,6 +286,9 @@
 >                13 -> liftM3 Fixity get get get
 >                14 -> liftM2 Transform get get
 >                15 -> liftM4 Freeze get get get get
+>                16 -> liftM3 SynDef get get get
+>                17 -> liftM PInclude get
+>                18 -> liftM2 Namespace get get
 
 > instance Binary Datatype where
 >     put (Datatype a b c d e f g) = do put (0 :: Word8)
@@ -295,7 +313,7 @@
 
 > instance Binary RawClause where
 >     put (RawClause a b) = do put (0 :: Word8); put a; put b
->     put (RawWithClause a b c d) = do put (0 :: Word8); put a; put b; put c; put d
+>     put (RawWithClause a b c d) = do put (1 :: Word8); put a; put b; put c; put d
 >     get = do tag <- getWord8
 >              case tag of
 >                0 -> liftM2 RawClause get get
@@ -307,7 +325,7 @@
 
 > instance Binary PClause where
 >     put (PClause a b c) = do put (0 :: Word8); put a; put b; put c
->     put (PWithClause a b c d) = do put (0 :: Word8); put a; put b; put c; put d
+>     put (PWithClause a b c d) = do put (1 :: Word8); put a; put b; put c; put d
 >     get = do tag <- getWord8
 >              case tag of
 >                0 -> liftM3 PClause get get get
@@ -362,7 +380,7 @@
 >     put IDataCon = put (2 :: Word8)
 >     put (SimpleDef t) = do put (3 :: Word8); put t
 >     put (DataDef a b) = do put (4 :: Word8); put a; put b
->     put (IProof ts) = do put (5 :: Word8); put ts
+>     put (IProof ts f) = do put (5 :: Word8); put ts; put f
 >     put Later = put (6 :: Word8)
 >     put LataDef = put (7 :: Word8)
 
@@ -373,14 +391,16 @@
 >                2 -> return IDataCon
 >                3 -> liftM SimpleDef get
 >                4 -> liftM2 DataDef get get
->                5 -> liftM IProof get
+>                5 -> liftM2 IProof get get
 >                6 -> return Later
 >                7 -> return LataDef
 
 > instance Binary IdrisState where
->     put (IState a b c d e f g h i) 
->        = do put a; put b; put c; put d; put e; put f; put g; put h; put i
+>     put (IState a b c d e f g h i j k) 
+>        = do put a; put b; put c; put d; put e; put f; put g; put h; 
+>             put i; put j; put k
 >     get = do a <- get; b <- get; c <- get;
 >              d <- get; e <- get; f <- get; g <- get; h <- get; i <- get
->              return (IState a b c d e f g h i)
+>              j <- get; k <- get
+>              return (IState a b c d e f g h i j k)
 
diff --git a/Idris/SimpleCase.lhs b/Idris/SimpleCase.lhs
--- a/Idris/SimpleCase.lhs
+++ b/Idris/SimpleCase.lhs
@@ -41,10 +41,10 @@
 >                 do (i, fns) <- get
 >                    let params = bs
 >                    let paramArgs = map (Name Unknown) (map fst params)
->                    let newdef = Patterns (getNewDef paramArgs (deAnnot (args!!3)))
->                    let argtype = args!!0
->                    let rettype = args!!1
->                    let scrutinee = args!!2
+>                    let newdef = Patterns (getNewDef paramArgs (deAnnot (args!!!(3,"FAIL3"))))
+>                    let argtype = args!!!(0, "FAIL0")
+>                    let rettype = args!!!(1, "FAIL1")
+>                    let scrutinee = args!!!(2, "FAIL2")
 >                    let newty = getNewType params argtype rettype
 >                    let newname = name (show (MN (show root) i))
 >                    let newfn = (newname, newty, newdef)
@@ -86,14 +86,23 @@
 > deAnnot x = x
 
 > addPatternDefSC :: Context -> Name -> ViewTerm -> Patterns -> 
->                    Maybe [(Name, Int)] ->
+>                    Maybe [(Name, Int)] -> Statics ->
 >                    TTM (Context, [(Name, ViewTerm)])
-> addPatternDefSC ctxt nm ty ps spec = do
+> addPatternDefSC ctxt nm ty ps specopts sts = do
 >     -- just allow general recursion for now
->     let opts = case spec of
->                  Nothing -> [Holey, Partial, GenRec]
->                  Just fns -> [Holey, Partial, GenRec, Specialise fns]
+>     let opts = [Holey, Partial, GenRec]
+
+case specopts of
+                  Nothing -> [Holey, Partial, GenRec]
+                  Just fns -> trace ("Specialising " ++ show nm ++ " with " ++ show (map mkss sts)) $ 
+                              [Holey, Partial, GenRec], Specialise fns,
+                               SpecStatic (map mkss sts)]
+
 >     (ctxt', newdefs) <- addPatternDef ctxt nm ty ps opts
+>     ctxt' <- case specopts of
+>                Nothing -> return ctxt'
+>                Just fns -> trace ("Specialising " ++ show nm ++ " with " ++ show (map mkss sts)) $ 
+>                            spec ctxt' nm (map mkss sts) (map fst fns)
 >     (_, patts) <- getPatternDef ctxt' nm
 >     let (ps', ds) = liftCases nm patts
 >     if (null ds) then return (ctxt', newdefs)
@@ -103,8 +112,9 @@
 >          return (ctxt', newdefs++newdefs')
 >  where addAll ctxt [] nds = return (ctxt, nds)
 >        addAll ctxt ((n,ty,ps):rs) nds = do
->          (ctxt', newdefs') <- addPatternDefSC ctxt n ty ps spec
+>          (ctxt', newdefs') <- addPatternDefSC ctxt n ty ps specopts sts
 >          addAll ctxt' rs (newdefs'++nds) 
+>        mkss (n, (statics, arity, ty)) = (n, (statics, arity))
 
 > addMeta :: Bool ->
 >            Ctxt IvorFun -> Context -> 
diff --git a/Main.lhs b/Main.lhs
--- a/Main.lhs
+++ b/Main.lhs
@@ -31,6 +31,7 @@
 > import Idris.Fontlock
 > import Idris.Serialise
 > import Idris.RunIO
+> import Idris.PartialEval
 
 > import Paths_idris
 
@@ -59,6 +60,11 @@
 >           ctxt <- ioTac $ prims ctxt
 >           (ctxt, defs) <- processInput ctxt defs "prelude.idr"
 >           (ctxt, defs) <- processInput ctxt defs infile
+>           let vars = idris_metavars defs
+>           when (not (null vars)) $
+>               do putStr "Proof obligations:\n\t"
+>                  print (map fst vars)
+>                  putStr "\n"
 >           repl defs ctxt batch
 
 > usage opts@(('-':_):_) = do o <- mkArgs opts
@@ -135,24 +141,22 @@
 >     let decls = idris_decls ist
 >     let opts = idris_options ist
 >     let fixes = idris_fixities ist
+>     let static = idris_static ist
+>     let sts = idris_static_used ist
 >     content <- readLibFile defaultLibPath file
 >     (ptree, imps) <- processImports opts (idris_imports ist) (parse content file)
->     let (defs', ops) = makeIvorFuns opts defs ptree fixes
+>     let (defsin, ops) = makeIvorFuns opts defs ptree fixes
+>     let static' = staticDecls defsin ++ static
+>     let defs' = defsin -- addPEdefs static' defsin
 >     let alldefs = appCtxt defs defs'
->     ((ctxt, metas), fixes') <- 
->         case (addIvor opts alldefs defs' ctxt ops) of
->             OK x fixes' -> return (x, fixes')
->             Err x fixes' err -> do putStrLn err 
->                                    return (x, fixes')
->     let ist = addTransforms (IState alldefs (decls++ptree) metas opts ops [] [] imps (mkNameMap alldefs)) ctxt 
+>     ((ctxt, metas), fixes', sts') <- 
+>         case (addIvor opts ist alldefs defs' ctxt ops static' sts) of
+>             OK x fixes' sts' -> return (x, fixes', sts')
+>             Err x fixes' sts' err -> do putStrLn err 
+>                                         return (x, fixes', sts')
+>     let ist = addTransforms (IState alldefs (decls ++ ptree) metas opts ops [] newCtxt imps (mkNameMap alldefs) static' sts') ctxt 
 >     return (ctxt, ist { idris_fixities = fixes' })
 
-> mkNameMap :: Ctxt IvorFun -> [(Name, Id)]
-> mkNameMap ctxt = mapMaybe mknm (ctxtAlist ctxt)
->   where mknm (n, IvorProblem _) = Nothing
->         mknm (n, i) = do iname <- ivorFName i
->                          return (iname, n)
-
 > data REPLRes = Quit | Continue | NewCtxt IdrisState Context
 
 Command; minimal abbreviation; function to run it; description; visibility
@@ -183,7 +187,7 @@
 > debug, norm, help, options, showdef, html, ssave :: Command
 
 > quit _ _ _ = do return Quit
-> tmtype (IState raw _ _ _ uo _ _ _ _) ctxt tms 
+> tmtype (IState raw _ _ _ uo _ _ _ _ _ _) ctxt tms 
 >            = do icheckType raw uo ctxt (unwords tms)
 >                 return Continue
 > prove ist ctxt (nm:[]) 
@@ -239,7 +243,11 @@
 >           = do putStrLn "Please give input and output files"
 >                return Continue
 > debug ist ctxt []
->           = do print (idris_fixities ist)
+>           = do putStrLn "Fixities/transforms\n"
+>                print (idris_fixities ist)
+>                putStrLn "\nStatic args:\n"
+>                print (idris_static ist)
+>                print (idris_static_used ist)
 >                return Continue
 > tcomp ist ctxt [] 
 >           = do putStrLn "Please give an output filename"
@@ -292,7 +300,7 @@
 
 > repl :: IdrisState -> Context -> Args -> IO ()
 > repl ist ctxt (Batch []) = return () 
-> repl ist@(IState raw decls metas opts fixes trans syns imps nms) ctxt inp' 
+> repl ist@(IState raw decls metas opts fixes trans syns imps nms st stu) ctxt inp' 
 >          = do (inp, next) <- case inp' of 
 >                        Batch (b:bs) -> return (Just b, Batch bs)
 >                        _ -> do x <- readline ("Idris> ")
@@ -348,7 +356,7 @@
 
 > execEval :: Bool -> Ctxt IvorFun -> Context -> (Term, ViewTerm) -> IO ()
 > execEval True ivs ctxt (tm, (App (Name _ io) _))
->          | io == name "IO" = do catch (exec ctxt tm)
+>          | io == name "IO.IO" = do catch (exec ctxt tm)
 >                                       (\e -> print (e :: IOError))
 >                                 -- putStrLn $ show (whnf ctxt tm)
 > execEval runio ivs ctxt (tm, _) 
@@ -394,6 +402,9 @@
 >                                              (idris_transforms ist)
 >                                              (transforms (idris_fixities ist))
 >                                               (name n) pats)
+>                                   -- let Right (args, sc) = getCompiledPatternDef ctxt (name n)
+>                                   -- putStrLn "\nInternally compiled as:\n"
+>                                   -- print (args, sc)
 >            _ -> case getInductive ctxt (name n) of
 >                   Right ind -> showInductive n ctxt (idris_transforms ist) 
 >                                               (constructors ind)
@@ -442,9 +453,19 @@
 >                                "Int->Int->Int"
 >              c <- addBinOp c (opFn Divide) (div::Int->Int->Int)
 >                                "Int->Int->Int"
+>              c <- addBinOp c (opFn Modulo) (mod::Int->Int->Int)
+>                                "Int->Int->Int"
+>              c <- addBinOp c (opFn FPlus) ((+)::Double->Double->Double) "Float->Float->Float"
+>              c <- addBinOp c (opFn FMinus) ((-)::Double->Double->Double)
+>                                "Float->Float->Float"
+>              c <- addBinOp c (opFn FTimes) ((*)::Double->Double->Double)
+>                                "Float->Float->Float"
+>              c <- addBinOp c (opFn FDivide) ((/)::Double->Double->Double)
+>                                "Float->Float->Float"
 >              c <- addBinOp c (opFn Concat) ((++)::String->String->String)
 >                                "String->String->String"
->              c <- addBinOp c (opFn StringGetIndex) ((!!)::String->Int->Char)
+>              c <- addBinOp c (opFn StringGetIndex) 
+>                       ((\str i -> str!!!(i,"stringGetIndex fail"))::String->Int->Char)
 >                                "String->Int->Char"
 >              c <- addBinOp c (opFn ShL) (shl::Int->Int->Int) "Int->Int->Int"
 >              c <- addBinOp c (opFn ShR) (shr::Int->Int->Int) "Int->Int->Int"
@@ -456,14 +477,28 @@
 >              c <- addExternalFn c (opFn OpLEq) 2 intle "Int->Int->Bool"
 >              c <- addExternalFn c (opFn OpGT) 2 intgt "Int->Int->Bool"
 >              c <- addExternalFn c (opFn OpGEq) 2 intge "Int->Int->Bool"
+
+>              c <- addExternalFn c (opFn OpFEq) 2 constEq "Float->Float->Bool"
+>              c <- addExternalFn c (opFn OpFLT) 2 floatlt "Float->Float->Bool"
+>              c <- addExternalFn c (opFn OpFLEq) 2 floatle "Float->Float->Bool"
+>              c <- addExternalFn c (opFn OpFGT) 2 floatgt "Float->Float->Bool"
+>              c <- addExternalFn c (opFn OpFGEq) 2 floatge "Float->Float->Bool"
+
+>              c <- addExternalFn c (opFn FloatToString) 1 floatToString "Float->String"
 >              c <- addExternalFn c (opFn ToString) 1 intToString "Int->String"
 >              c <- addExternalFn c (opFn ToInt) 1 stringToInt "String->Int"
+>              c <- addExternalFn c (opFn StringToFloat) 1 stringToFloat "String->Float"
 >              c <- addExternalFn c (opFn IntToChar) 1 intToChar "Int->Char"
 >              c <- addExternalFn c (opFn CharToInt) 1 charToInt "Char->Int"
 >              c <- addExternalFn c (opFn StringLength) 1 stringLen "String->Int"
 >              c <- addExternalFn c (opFn StringHead) 1 stringHead "String->Char"
 >              c <- addExternalFn c (opFn StringTail) 1 stringTail "String->String"
 >              c <- addExternalFn c (opFn StringCons) 2 stringCons "Char->String->String"
+>              c <- addExternalFn c (opFn StringRev) 1 stringRev "String->String"
+>              c <- addExternalFn c (opFn StringSub) 3 stringSub "String->Int->Int->String"
+>              c <- addExternalFn c (opFn StringFind) 2 stringFind "String->Char->Int"
+>              c <- addExternalFn c (name "__Prove_Anything") 3 proveAnything
+>                                   "(A:*)->(B:*)->A->B"
 >              c <- addExternalFn c (name "__lazy") 1 runLazy "(A:*)A->A"
 >              c <- addExternalFn c (name "__effect") 1 runEffect "(A:*)A->A"
 >              return c
@@ -482,7 +517,7 @@
 >           Just x' -> if (x'==y)
 >                        then Just $ Name DataCon (name "True")
 >                        else Just $ Name DataCon (name "False")
->           _ -> Just $ Name DataCon (name "False")
+>           _ -> Nothing
 > constEq _ = Nothing
 
 > constLT :: [ViewTerm] -> Maybe ViewTerm
@@ -491,7 +526,7 @@
 >           (Just x', Just y') -> if (x'<y')
 >                        then Just $ Name DataCon (name "True")
 >                        else Just $ Name DataCon (name "False")
->           _ -> Just $ Name DataCon (name "False")
+>           _ -> Nothing -- Just $ Name DataCon (name "False")
 
  constEq [_, x, y] = if (x == y) then Just $ Name DataCon (name "True")
                         else Just $ Name DataCon (name "False")
@@ -504,7 +539,7 @@
 >           (Just x', Just y') -> if (x'<(y'::Int))
 >                            then Just $ Name DataCon (name "True")
 >                            else Just $ Name DataCon (name "False")
->           _ -> Just $ Name DataCon (name "False")
+>           _ -> Nothing
 > intlt _ = Nothing
 
 > intle :: [ViewTerm] -> Maybe ViewTerm
@@ -513,7 +548,7 @@
 >           (Just x', Just y') -> if (x'<=(y'::Int))
 >                        then Just $ Name DataCon (name "True")
 >                        else Just $ Name DataCon (name "False")
->           _ -> Just $ Name DataCon (name "False")
+>           _ -> Nothing
 > intle _ = Nothing
 
 > intgt :: [ViewTerm] -> Maybe ViewTerm
@@ -522,7 +557,7 @@
 >           (Just x', Just y') -> if (x'>(y'::Int))
 >                        then Just $ Name DataCon (name "True")
 >                        else Just $ Name DataCon (name "False")
->           _ -> Just $ Name DataCon (name "False")
+>           _ -> Nothing
 > intgt _ = Nothing
 
 > intge :: [ViewTerm] -> Maybe ViewTerm
@@ -531,9 +566,45 @@
 >           (Just x', Just y') -> if (x'>=(y'::Int))
 >                        then Just $ Name DataCon (name "True")
 >                        else Just $ Name DataCon (name "False")
->           _ -> Just $ Name DataCon (name "False")
+>           _ -> Nothing
 > intge _ = Nothing
 
+> floatlt :: [ViewTerm] -> Maybe ViewTerm
+> floatlt [Constant x, Constant y]
+>       = case (cast x, cast y) of
+>           (Just x', Just y') -> if (x'<(y'::Double))
+>                            then Just $ Name DataCon (name "True")
+>                            else Just $ Name DataCon (name "False")
+>           _ -> Nothing
+> floatlt _ = Nothing
+
+> floatle :: [ViewTerm] -> Maybe ViewTerm
+> floatle [Constant x, Constant y]
+>       = case (cast x, cast y) of
+>           (Just x', Just y') -> if (x'<=(y'::Double))
+>                        then Just $ Name DataCon (name "True")
+>                        else Just $ Name DataCon (name "False")
+>           _ -> Nothing
+> floatle _ = Nothing
+
+> floatgt :: [ViewTerm] -> Maybe ViewTerm
+> floatgt [Constant x, Constant y]
+>       = case (cast x, cast y) of
+>           (Just x', Just y') -> if (x'>(y'::Double))
+>                        then Just $ Name DataCon (name "True")
+>                        else Just $ Name DataCon (name "False")
+>           _ -> Nothing
+> floatgt _ = Nothing
+
+> floatge :: [ViewTerm] -> Maybe ViewTerm
+> floatge [Constant x, Constant y]
+>       = case (cast x, cast y) of
+>           (Just x', Just y') -> if (x'>=(y'::Double))
+>                        then Just $ Name DataCon (name "True")
+>                        else Just $ Name DataCon (name "False")
+>           _ -> Nothing
+> floatge _ = Nothing
+
 > intToString :: [ViewTerm] -> Maybe ViewTerm
 > intToString [Constant x]
 >             = case cast x of
@@ -543,6 +614,15 @@
 >          iToS x = show x
 > intToString _ = Nothing
 
+> floatToString :: [ViewTerm] -> Maybe ViewTerm
+> floatToString [Constant x]
+>             = case cast x of
+>                 (Just s) -> Just (Constant (fToS s))
+>                 _ -> Nothing
+>    where fToS :: Double -> String
+>          fToS x = show x
+> floatToString _ = Nothing
+
 > stringToInt :: [ViewTerm] -> Maybe ViewTerm
 > stringToInt [Constant x]
 >             = case cast x of
@@ -554,6 +634,16 @@
 >                  | otherwise = 0
 > stringToInt _ = Nothing
 
+> stringToFloat :: [ViewTerm] -> Maybe ViewTerm
+> stringToFloat [Constant x]
+>             = case cast x of
+>                 (Just s) -> Just (Constant (sToF s))
+>                 _ -> Nothing
+>     where sToF :: String -> Int
+>           sToF ('-':s) = -(read s)
+>           sToF s = read s
+> stringToFloat _ = Nothing
+
 > intToChar :: [ViewTerm] -> Maybe ViewTerm
 > intToChar [Constant x] = case cast x :: Maybe Int of
 >                            Just i -> Just (Constant (toEnum i :: Char))
@@ -590,6 +680,35 @@
 >                   (Just s, Just ss) -> Just (Constant ((s:ss) :: String))
 >                   _ -> Nothing
 > stringCons _ = Nothing
+
+> stringRev :: [ViewTerm] -> Maybe ViewTerm
+> stringRev [Constant x] = case cast x :: Maybe String of
+>                            Just s -> Just (Constant (reverse s))
+>                            _ -> Nothing
+> stringRev _ = Nothing
+
+> stringSub :: [ViewTerm] -> Maybe ViewTerm
+> stringSub [Constant x, Constant start, Constant len] 
+>         = case (cast x, cast start, cast len) :: 
+>                    (Maybe String, Maybe Int, Maybe Int) of
+>               (Just str, Just st, Just l) -> 
+>                   Just (Constant (take l (drop st str) :: String))
+>               _ -> Nothing
+> stringSub _ = Nothing
+
+> stringFind :: [ViewTerm] -> Maybe ViewTerm
+> stringFind [Constant x, Constant y] 
+>             = case (cast x, cast y) :: (Maybe String, Maybe Char) of
+>                   (Just s, Just c) -> 
+>                     case findIndex (==c) s of
+>                       Just v -> Just (Constant v)
+>                       Nothing -> Just (Constant ((-1) :: Int))
+>                   _ -> Nothing
+> stringFind _ = Nothing
+
+> proveAnything :: [ViewTerm] -> Maybe ViewTerm
+> proveAnything [_,_,x] = Just x
+> proveAnything _ = Nothing
 
 > runLazy :: [ViewTerm] -> Maybe ViewTerm
 > runLazy [_,x] = Just x
diff --git a/dist/build/Idris/Parser.hs b/dist/build/Idris/Parser.hs
--- a/dist/build/Idris/Parser.hs
+++ b/dist/build/Idris/Parser.hs
@@ -16,3712 +16,3859 @@
 import Idris.Lib
 
 import Debug.Trace
-#if __GLASGOW_HASKELL__ >= 503
-import qualified Data.Array as Happy_Data_Array
-#else
-import qualified Array as Happy_Data_Array
-#endif
-#if __GLASGOW_HASKELL__ >= 503
-import qualified GHC.Exts as Happy_GHC_Exts
-#else
-import qualified GlaExts as Happy_GHC_Exts
-#endif
-
--- parser produced by Happy Version 1.18.4
-
-newtype HappyAbsSyn t72 = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t72)
-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn t72) -> ([ParseDecl])
-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: (ParseDecl) -> (HappyAbsSyn t72)
-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn t72) -> (ParseDecl)
-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (Decl) -> (HappyAbsSyn t72)
-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn t72) -> (Decl)
-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (ParseDecl) -> (HappyAbsSyn t72)
-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn t72) -> (ParseDecl)
-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (CGFlag) -> (HappyAbsSyn t72)
-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn t72) -> (CGFlag)
-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: (Bool) -> (HappyAbsSyn t72)
-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn t72) -> (Bool)
-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t72)
-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn t72) -> ([ParseDecl])
-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t72)
-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn t72) -> ([CGFlag])
-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t72)
-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn t72) -> ([CGFlag])
-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t72)
-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn t72) -> ([CGFlag])
-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: ([Decl]) -> (HappyAbsSyn t72)
-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn t72) -> ([Decl])
-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: ([String]) -> (HappyAbsSyn t72)
-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn t72) -> ([String])
-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (String) -> (HappyAbsSyn t72)
-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn t72) -> (String)
-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: (Fixity) -> (HappyAbsSyn t72)
-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn t72) -> (Fixity)
-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: (Decl) -> (HappyAbsSyn t72)
-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn t72) -> (Decl)
-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t72)
-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn t72) -> ([(Id,String)])
-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t72)
-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn t72) -> ((Id, [(RawTerm, Maybe Id)]))
-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t72)
-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn t72) -> ([(RawTerm,Maybe Id)])
-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: (Datatype) -> (HappyAbsSyn t72)
-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn t72) -> (Datatype)
-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t72)
-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn t72) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t72)
-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn t72) -> ([TyOpt])
-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t72)
-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn t72) -> ([TyOpt])
-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (TyOpt) -> (HappyAbsSyn t72)
-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn t72) -> (TyOpt)
-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (Id) -> (HappyAbsSyn t72)
-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn t72) -> (Id)
-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn t72) -> ([Id])
-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t72)
-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn t72) -> ([(Id, Int)])
-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn t72) -> ([Id])
-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn t72) -> ([Id])
-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn t72) -> ([(Id, RawTerm, RawTerm)])
-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t72)
-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn t72) -> ((Id, RawTerm))
-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (String) -> (HappyAbsSyn t72)
-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn t72) -> (String)
-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (ArgOpt) -> (HappyAbsSyn t72)
-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn t72) -> (ArgOpt)
-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: ([ArgOpt]) -> (HappyAbsSyn t72)
-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn t72) -> ([ArgOpt])
-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: ([ArgOpt]) -> (HappyAbsSyn t72)
-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn t72) -> ([ArgOpt])
-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: ([Do]) -> (HappyAbsSyn t72)
-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn t72) -> ([Do])
-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ([Do]) -> (HappyAbsSyn t72)
-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn t72) -> ([Do])
-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: (Do) -> (HappyAbsSyn t72)
-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn t72) -> (Do)
-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: (Constant) -> (HappyAbsSyn t72)
-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn t72) -> (Constant)
-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t72)
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn t72) -> ((RawTerm, [(Id, RawTerm)]))
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: ((Id,Id)) -> (HappyAbsSyn t72)
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn t72) -> ((Id,Id))
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: ((Id,Id)) -> (HappyAbsSyn t72)
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn t72) -> ((Id,Id))
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: (Id) -> (HappyAbsSyn t72)
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn t72) -> (Id)
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn t72) -> ([Id])
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: t72 -> (HappyAbsSyn t72)
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn t72) -> t72
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: ([ConParse]) -> (HappyAbsSyn t72)
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn t72) -> ([ConParse])
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: (ConParse) -> (HappyAbsSyn t72)
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn t72) -> (ConParse)
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: (ITactic) -> (HappyAbsSyn t72)
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn t72) -> (ITactic)
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyIn77 :: ([ITactic]) -> (HappyAbsSyn t72)
-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn t72) -> ([ITactic])
-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-happyIn78 :: ([ITactic]) -> (HappyAbsSyn t72)
-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn t72) -> ([ITactic])
-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-happyIn79 :: (LineNumber) -> (HappyAbsSyn t72)
-happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn79 #-}
-happyOut79 :: (HappyAbsSyn t72) -> (LineNumber)
-happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut79 #-}
-happyIn80 :: (String) -> (HappyAbsSyn t72)
-happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn80 #-}
-happyOut80 :: (HappyAbsSyn t72) -> (String)
-happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut80 #-}
-happyIn81 :: (Fixities) -> (HappyAbsSyn t72)
-happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn81 #-}
-happyOut81 :: (HappyAbsSyn t72) -> (Fixities)
-happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut81 #-}
-happyInTok :: (Token) -> (HappyAbsSyn t72)
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn t72) -> (Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x1b\x00\x6d\x05\x76\x08\x00\x00\x20\x04\x6d\x05\x1f\x01\x1f\x01\x6d\x05\x00\x00\x69\x03\x13\x03\x00\x00\x1f\x01\x00\x00\x6d\x05\x6d\x05\x00\x00\x6d\x05\x6d\x05\x6d\x05\x6d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x61\x09\x67\x02\x6d\x05\x6d\x05\x38\x08\x6d\x05\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x05\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x6d\x05\xae\x00\x1a\x04\x01\x00\x00\x00\x00\x00\x01\x00\x89\x04\x00\x00\x7b\x04\x00\x00\x2c\x02\x73\x04\x72\x04\x70\x04\x6e\x04\x6c\x04\x9b\x09\xd1\x01\x68\x04\x00\x00\x00\x00\x00\x00\x67\x04\x66\x04\x58\x04\xae\x00\xae\x00\x71\x04\x2e\x04\x55\x04\x65\x04\x6d\x05\x5b\x04\x56\x04\x00\x00\x00\x00\x29\x02\x00\x00\xae\x00\x50\x04\x53\x04\xae\x00\x00\x00\xae\x00\xae\x00\xae\x00\xae\x00\x32\x02\x4c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\xfe\xff\x00\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\x00\x00\xfd\x07\x51\x04\x02\x00\x27\x09\x43\x04\x2a\x00\x9b\x09\xd1\x01\x00\x00\x00\x00\x4a\x04\xff\x03\xe6\x01\x00\x00\x49\x04\x17\x05\x00\x00\x00\x00\x4f\x04\x00\x00\x4f\x04\x00\x00\xe1\x02\x78\x0a\x76\x01\x86\x03\xc1\x04\x3f\x04\xc1\x04\xc1\x04\x3e\x04\x33\x04\xc1\x04\xc1\x04\xcf\x01\x6c\x00\x00\x00\xc1\x04\xed\x08\xae\x00\x38\x04\x16\x04\x00\x00\x38\x08\x29\x04\x00\x00\xc1\x04\x1b\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x00\x00\xa7\x01\x97\x01\x89\x01\x7a\x01\x67\x01\x58\x01\x00\x00\x4a\x01\xc1\x04\x36\x01\xc1\x04\x28\x01\x00\x00\x13\x04\x00\x00\xf8\x00\xae\x00\xc3\x00\x03\x00\x00\x00\x35\x04\x35\x04\x35\x04\x35\x04\x35\x04\x00\x00\xc1\x04\x35\x04\x38\x08\x00\x00\x00\x00\x00\x00\xc1\x04\x0b\x04\x61\x09\x1c\x04\x1e\x04\x08\x04\x17\x01\x19\x04\xc2\x00\x17\x04\x92\x08\x61\x09\x00\x00\x61\x09\x0f\x04\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\xc1\x04\x00\x00\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x14\x04\x00\x00\x00\x00\xc1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x36\x05\x0c\x04\x6b\x04\xae\x00\xfb\x03\x00\x00\x15\x04\x15\x04\xf7\x03\x07\x04\xfa\x03\x00\x04\x15\x04\x15\x04\x15\x04\xae\x03\x76\x08\xf9\x03\xf3\xff\x0d\x00\xea\x03\xfd\x07\x15\x04\x00\x00\x00\x00\xf5\x03\xf4\x03\xf1\x03\xee\x03\xec\x03\x00\x00\x00\x00\x32\x03\xed\x03\x00\x00\x00\x00\x15\x04\x15\x04\x15\x04\x00\x00\xe6\x03\xd7\x03\x00\x00\x00\x00\x1d\x03\xf0\x03\xde\x03\xd3\x03\xdd\x03\xae\x00\xcc\x03\x01\x00\xae\x00\xd0\x03\xc9\x03\x00\x00\x15\x04\xe0\x04\xd6\x03\xdc\x03\x00\x00\xbc\x03\x00\x00\x15\x04\x00\x00\x00\x00\xae\x00\x00\x00\x27\x09\x00\x00\xae\x00\xae\x00\xbb\x03\x27\x09\x00\x00\x00\x00\x32\x02\x00\x00\x8a\x04\x34\x04\x07\x05\x00\x00\x00\x00\x00\x00\x00\x00\x15\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x09\x00\x00\xae\x00\x00\x00\x00\x00\x20\x02\x20\x02\xd5\x03\x00\x00\x00\x00\x00\x00\xc8\x03\xc3\x03\x61\x09\xc7\x03\xbd\x03\x00\x00\x88\x03\xc9\x01\x59\x03\x00\x00\xd1\x01\x00\x00\x15\x04\xa6\x00\x5d\x00\x15\x04\xc2\x03\x00\x00\x00\x00\x00\x00\xa3\x03\x98\x08\x00\x00\x73\x08\xe3\x03\x00\x00\x61\x09\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\xb9\x03\x00\x00\x38\x08\x00\x00\x9b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x61\x09\xa8\x03\x27\x09\xae\x00\x93\x03\x27\x09\x0d\x00\xae\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x00\x00\xb9\x00\x8d\x03\x10\x02\xd8\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x07\x00\x00\x87\x07\x00\x00\x4c\x07\x00\x00\x11\x07\xa9\x03\xa2\x03\xa1\x03\xa0\x03\x9f\x03\x0a\x00\x00\x00\x00\x00\x15\x04\xd6\x06\x8e\x03\x36\x05\x15\x04\x66\x00\x00\x00\xd5\x01\x9c\x03\x92\x03\x00\x00\x76\x08\x0d\x00\x6b\x03\xae\x00\x00\x00\x8f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x06\x00\x00\xd5\x01\x00\x00\x84\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x60\x06\x8b\x03\x89\x03\x00\x00\x00\x00\x6e\x03\x81\x03\x03\x03\xae\x00\x6a\x03\x00\x00\x00\x00\xae\x00\x7e\x03\x00\x00\x00\x00\xae\x00\x00\x00\xae\x00\x00\x00\x38\x08\x00\x00\x00\x00\x27\x09\x00\x00\x45\x03\x00\x00\x00\x00\x00\x00\xae\x00\xd5\x01\x79\x03\x00\x00\x00\x00\x00\x00\x7a\x03\x00\x00\x7d\x01\x72\x03\x27\x09\x00\x00\xae\x00\x00\x00\x6f\x03\xae\x00\x7b\x03\x00\x00\x15\x04\x00\x00\x36\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x03\x65\x03\x00\x00\x00\x00\x61\x09\x47\x03\x47\x03\x00\x00\x10\x02\x63\x03\x00\x00\x00\x00\x00\x00\x66\x00\x25\x06\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x03\x00\x00\x00\x00\x40\x03\xae\x00\x00\x00\x00\x00\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x03\x00\x00\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x05\x51\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x65\x0a\x97\x0d\x17\x03\x00\x00\x00\x00\x83\x0d\x97\x00\x41\x03\x7c\x0d\x00\x00\x68\x0d\x61\x0d\x00\x00\x38\x03\x00\x00\x4d\x0d\x46\x0d\x00\x00\x32\x0d\x2b\x0d\x17\x0d\x10\x0d\x00\x00\x00\x00\x00\x00\x06\x03\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x52\x09\x83\x0a\xfc\x0c\xf5\x0c\xc6\x0d\xe1\x0c\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x0c\x00\x00\xf6\x02\xf5\x02\x00\x00\xf4\x02\xc6\x0c\x8c\x01\x00\x00\x4b\x0a\x00\x00\x00\x00\x31\x0a\x00\x00\x00\x00\x36\x03\x00\x00\x0a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x28\x03\x24\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x03\x1e\x03\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x77\x01\xe2\x02\xaa\x01\x00\x00\x00\x00\x10\x01\x00\x00\x04\x00\x16\x03\xfa\xff\x0b\x03\x43\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x03\xd3\x02\x72\x01\x00\x00\xcb\x02\x97\x0a\x00\x00\xc6\x02\xc0\x02\x17\x0a\xfd\x09\xe3\x09\xc9\x09\x79\x09\x00\x00\x1e\x06\x00\x00\x00\x00\xbb\x0d\x00\x00\xfd\x02\xfd\xff\x18\x02\x00\x00\x00\x00\xd6\x02\x00\x00\x6e\x01\xb8\x02\xd4\x02\xd3\x0a\xb3\x02\xb2\x02\x6c\x01\xaf\x02\x6b\x01\x00\x00\x69\x01\x69\x01\x15\x01\x78\x00\xab\x0c\x00\x00\xa4\x0c\x90\x0c\x00\x00\x00\x00\xba\x04\x64\x04\x5d\x01\x00\x00\x00\x00\x89\x0c\x7a\x02\x0b\x02\xcf\x02\x00\x00\xae\x02\xab\x0d\x00\x00\xa4\x02\x75\x0c\xa2\x02\x6e\x0c\x5a\x0c\x53\x0c\x3f\x0c\x38\x0c\x9e\x02\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x00\x00\x5a\x01\x24\x0c\x5a\x01\x1d\x0c\x5a\x01\x00\x00\x00\x00\x00\x00\x5a\x01\x85\x00\x5a\x01\x5a\x01\x00\x00\x55\x01\x47\x01\x3e\x01\x3d\x01\x2c\x01\x98\x02\x09\x0c\x2a\x01\x9e\x0d\x94\x02\x8f\x02\x00\x00\x02\x0c\x00\x00\x2b\x08\x00\x00\x00\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x25\x01\xef\x07\x00\x00\xb4\x07\x00\x00\x8e\x02\x12\x01\x8d\x02\x08\x01\x8b\x02\xe6\x00\x88\x02\xe4\x00\x86\x02\x0e\x04\x00\x00\xb8\x03\xee\x0b\xe7\x0b\xb6\x02\xe0\x01\x00\x00\x00\x00\x84\x02\xd3\x0b\x81\x02\x80\x02\x7f\x02\x00\x00\x00\x00\x28\x00\xe3\x00\x00\x00\xbf\x0a\x3b\x01\x00\x00\x00\x00\xcc\x0b\xb8\x0b\x00\x00\x00\x00\x00\x00\xc1\x02\xb1\x0b\x9d\x0b\x96\x0b\x00\x00\xbc\x01\x90\x02\x01\x02\x00\x00\x00\x00\xe3\x05\x82\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x02\x6f\x02\xde\x00\x00\x00\x6b\x02\x68\x02\x7b\x0b\x67\x0b\x60\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x05\x09\x97\x02\x00\x00\x00\x00\x66\x02\x4c\x0b\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x0b\x00\x00\x00\x00\x8c\x02\x00\x00\x8e\x09\x64\x02\xf2\xff\x8c\x00\x00\x00\x29\x08\x63\x02\x62\x02\xaf\x01\x00\x00\xde\x00\xde\x00\xde\x00\x00\x00\x00\x00\x5f\x02\x00\x00\xe7\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x5e\x02\x80\x00\x5d\x02\x00\x00\xce\x01\x5b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x07\x00\x00\x00\x00\x00\x00\xde\x00\xa3\x00\xde\x00\x00\x00\xcb\x00\x00\x00\x31\x0b\xde\x00\xde\x00\x2a\x0b\x3e\x02\x00\x00\x00\x00\x5b\x02\x00\x00\xf6\x07\x00\x00\xf6\x07\xde\x00\x5a\x02\x3f\x07\x59\x02\xde\x00\x00\x00\x58\x02\x4d\x02\x45\x02\x42\x02\x3d\x02\x3c\x02\x3a\x02\x00\x00\x35\x02\x00\x00\x21\x02\xbb\x07\x2a\x02\x00\x00\x27\x02\x00\x00\xff\x01\x00\x00\x04\x07\x1e\x02\x92\x01\x78\x07\x00\x02\x00\x00\x3d\x07\x00\x00\x16\x00\xde\x00\x1d\x02\x0c\x02\x00\x00\x0a\x02\xde\x00\x00\x00\x04\x02\xfc\x01\xf5\x01\xe5\x01\xda\x01\x00\x00\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x06\x00\x00\x00\x00\x00\x00\xcb\x01\x00\x00\x00\x00\xd0\x01\xb6\x01\xb3\x01\xa8\x01\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x16\x0b\xcf\x06\x00\x00\xdd\x00\x0f\x0b\xcf\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\xef\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\xa4\x01\x00\x00\xa1\x01\x66\x05\x9e\x01\x0e\x02\x00\x00\x00\x00\x00\x00\x9b\x01\x86\x01\x38\x01\x24\x01\x99\x05\x00\x00\x00\x00\x00\x00\x68\x01\x00\x00\x00\x00\xcf\x00\x85\x01\x00\x00\x00\x00\x00\x00\x4f\x01\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x0b\x00\x00\x00\x18\x09\x00\x00\x00\x00\x02\x07\x64\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x01\xc5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x06\x00\x00\x34\x00\xea\x00\x00\x00\xf7\xff\xca\x00\x2e\x01\xfb\x0a\x00\x00\xbf\x00\x0e\x01\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x06\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\xbc\x00\x00\x00\x9f\x00\xad\x00\x59\x06\x73\x00\x00\x00\x37\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\x21\x00\x00\x00\x3c\x00\x59\x06\xab\x0a\xe5\xff\x59\x06\x00\x00\x00\x00\x00\x00\x00\x00\x59\x06\x00\x00\x00\x00\xd0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x2c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\xff\x00\x00\x00\x00\x15\xff\x00\x00\x00\x00\x10\xff\x00\x00\x0e\xff\x00\x00\x00\x00\x0b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x06\xff\x05\xff\x04\xff\xff\xfe\xff\xfe\x9e\xff\x83\xff\x4b\xff\x4c\xff\xa5\xff\x4a\xff\x4f\xff\xff\xfe\xae\xff\x34\xff\x36\xff\x32\xff\x35\xff\x33\xff\x56\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\x00\x00\x3c\xff\x3b\xff\x3a\xff\x3d\xff\x38\xff\x39\xff\x37\xff\x3e\xff\x00\x00\x53\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x2c\xff\xef\xff\xf8\xff\x2c\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\xff\xfe\xff\xfe\x00\x00\x00\x00\x00\x00\x8f\xff\x27\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\xff\xfe\xff\xfe\xd9\xff\xff\xfe\x00\x00\xa8\xff\xff\xfe\xff\xfe\x2c\xff\x2c\xff\x2c\xff\x2c\xff\x2c\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\xff\xfe\x00\xff\x73\xff\x00\x00\x00\xff\x00\xff\xff\xfe\xff\xfe\xff\xfe\x57\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\xff\xfe\xff\xfe\xff\xfe\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x00\xff\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x0f\xff\xff\xfe\x00\x00\xff\xfe\x00\x00\xff\xfe\x18\xff\x97\xff\x1a\xff\xff\xfe\x00\x00\xff\xfe\xff\xfe\x5a\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\xff\x00\x00\xff\xfe\x00\x00\xff\xfe\xff\xfe\x54\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xa4\xff\x00\x00\x00\x00\x00\xff\xff\xfe\x00\xff\xff\xfe\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x58\xff\xff\xfe\x75\xff\x74\xff\xff\xfe\xff\xfe\x00\x00\x4e\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\xff\x52\xff\x51\xff\xff\xfe\xff\xfe\x00\x00\x42\xff\x00\x00\x00\x00\x59\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x2c\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x28\xff\x00\x00\x2b\xff\x00\x00\xff\xfe\x24\xff\x20\xff\x00\x00\x00\x00\xff\xfe\xff\xfe\x00\x00\xb3\xff\xff\xfe\xff\xfe\xff\xfe\xaa\xff\xa9\xff\xff\xfe\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xff\xfe\xff\xfe\xff\xfe\xdc\xff\x00\x00\xca\xff\x00\x00\xff\xfe\xff\xfe\x00\x00\x73\xff\x43\xff\x45\xff\x00\xff\x00\x00\xa1\xff\x55\xff\x89\xff\xff\xfe\x00\xff\x00\x00\x00\xff\xff\xfe\x46\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\xff\xfe\x6d\xff\xff\xfe\x67\xff\xff\xfe\x6a\xff\x00\x00\x00\x00\x60\xff\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\xff\xfe\x00\xff\x00\xff\xa3\xff\x00\xff\xff\xfe\x8b\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x00\x00\x5c\xff\x5b\xff\xff\xfe\x00\xff\x00\xff\x00\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xff\xfe\xc8\xff\x00\x00\x00\x00\x00\x00\x03\xff\x02\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x00\xff\x90\xff\x00\xff\xbc\xff\x00\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x00\xff\x00\xff\x2c\xff\xff\xfe\x31\xff\x00\x00\x1f\xff\x23\xff\x00\xff\x26\xff\x00\x00\xff\xfe\x00\x00\xbf\xff\xf5\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x29\xff\x00\x00\xb8\xff\x20\xff\xb7\xff\x31\xff\x1c\xff\x1d\xff\x00\x00\x00\xff\x00\x00\xb6\xff\xb5\xff\x2e\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x01\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xff\xfe\x00\xff\x00\x00\x3f\xff\xff\xfe\x00\xff\xff\xfe\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x00\xff\x5e\xff\x00\x00\x63\xff\x62\xff\x00\x00\x6b\xff\x6c\xff\x61\xff\x00\x00\x00\x00\x00\xff\x49\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x8c\xff\xff\xfe\x00\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x2f\xff\x2d\xff\x1b\xff\x30\xff\x1e\xff\x25\xff\x2a\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\xff\xfe\xe6\xff\x00\xff\x9d\xff\x00\x00\x00\xff\x00\x00\x5d\xff\x69\xff\x5f\xff\x41\xff\x00\x00\x00\x00\xe8\xff\x00\xff\x92\xff\xe7\xff\x44\xff\x40\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x0b\x00\x07\x00\x02\x00\x03\x00\x14\x00\x02\x00\x03\x00\x0c\x00\x19\x00\x02\x00\x0c\x00\x0b\x00\x02\x00\x19\x00\x10\x00\x19\x00\x19\x00\x13\x00\x13\x00\x19\x00\x1a\x00\x19\x00\x49\x00\x23\x00\x11\x00\x01\x00\x19\x00\x20\x00\x21\x00\x1d\x00\x22\x00\x20\x00\x1d\x00\x19\x00\x22\x00\x23\x00\x0c\x00\x22\x00\x23\x00\x27\x00\x10\x00\x0a\x00\x27\x00\x49\x00\x19\x00\x33\x00\x2e\x00\x1c\x00\x41\x00\x2e\x00\x38\x00\x07\x00\x3f\x00\x2e\x00\x40\x00\x40\x00\x2e\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x40\x00\x52\x00\x53\x00\x49\x00\x19\x00\x1a\x00\x20\x00\x21\x00\x4b\x00\x19\x00\x43\x00\x44\x00\x15\x00\x29\x00\x51\x00\x31\x00\x19\x00\x54\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x03\x00\x02\x00\x03\x00\x29\x00\x33\x00\x70\x00\x71\x00\x72\x00\x4b\x00\x38\x00\x02\x00\x03\x00\x19\x00\x4a\x00\x51\x00\x12\x00\x02\x00\x54\x00\x6f\x00\x20\x00\x4a\x00\x49\x00\x73\x00\x3a\x00\x75\x00\x76\x00\x77\x00\x78\x00\x1d\x00\x78\x00\x41\x00\x11\x00\x78\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x1d\x00\x27\x00\x49\x00\x02\x00\x03\x00\x22\x00\x23\x00\x6f\x00\x2e\x00\x26\x00\x27\x00\x73\x00\x0b\x00\x75\x00\x76\x00\x77\x00\x78\x00\x2e\x00\x11\x00\x12\x00\x13\x00\x14\x00\x19\x00\x2e\x00\x17\x00\x24\x00\x19\x00\x19\x00\x1f\x00\x28\x00\x1d\x00\x20\x00\x21\x00\x1f\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x09\x00\x0a\x00\x0b\x00\x01\x00\x19\x00\x0b\x00\x2e\x00\x2f\x00\x49\x00\x58\x00\x1f\x00\x11\x00\x12\x00\x13\x00\x14\x00\x02\x00\x49\x00\x17\x00\x10\x00\x19\x00\x5a\x00\x4a\x00\x4a\x00\x1d\x00\x02\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x11\x00\x49\x00\x26\x00\x27\x00\x0b\x00\x43\x00\x44\x00\x24\x00\x01\x00\x11\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x0d\x00\x0e\x00\x02\x00\x57\x00\x58\x00\x0c\x00\x5a\x00\x26\x00\x1d\x00\x10\x00\x20\x00\x24\x00\x13\x00\x22\x00\x23\x00\x2e\x00\x49\x00\x27\x00\x27\x00\x19\x00\x19\x00\x4a\x00\x24\x00\x1c\x00\x2e\x00\x2e\x00\x20\x00\x24\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x52\x00\x53\x00\x02\x00\x03\x00\x78\x00\x57\x00\x58\x00\x27\x00\x5a\x00\x24\x00\x24\x00\x0b\x00\x19\x00\x49\x00\x2e\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x20\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x4a\x00\x1d\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x22\x00\x23\x00\x4b\x00\x13\x00\x78\x00\x27\x00\x01\x00\x0a\x00\x51\x00\x19\x00\x0d\x00\x54\x00\x2e\x00\x4a\x00\x4a\x00\x19\x00\x02\x00\x03\x00\x24\x00\x4a\x00\x4a\x00\x10\x00\x4a\x00\x27\x00\x22\x00\x0b\x00\x4a\x00\x46\x00\x24\x00\x48\x00\x02\x00\x03\x00\x30\x00\x78\x00\x32\x00\x33\x00\x29\x00\x35\x00\x6f\x00\x0b\x00\x38\x00\x49\x00\x73\x00\x1d\x00\x75\x00\x76\x00\x77\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x47\x00\x4a\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x49\x00\x22\x00\x23\x00\x02\x00\x03\x00\x4a\x00\x27\x00\x23\x00\x4a\x00\x11\x00\x24\x00\x24\x00\x0b\x00\x2e\x00\x0a\x00\x0b\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x3b\x00\x4a\x00\x1d\x00\x4a\x00\x49\x00\x2e\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x0a\x00\x24\x00\x05\x00\x0d\x00\x1d\x00\x0b\x00\x2e\x00\x4a\x00\x4a\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x4a\x00\x0b\x00\x2e\x00\x24\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x19\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x26\x00\x4a\x00\x19\x00\x1d\x00\x4a\x00\x2e\x00\x02\x00\x03\x00\x22\x00\x23\x00\x49\x00\x78\x00\x23\x00\x27\x00\x49\x00\x0b\x00\x4a\x00\x1d\x00\x4a\x00\x4a\x00\x2e\x00\x4a\x00\x22\x00\x23\x00\x11\x00\x4a\x00\x2d\x00\x27\x00\x2f\x00\x2e\x00\x4a\x00\x78\x00\x19\x00\x1d\x00\x2e\x00\x17\x00\x18\x00\x03\x00\x22\x00\x23\x00\x02\x00\x03\x00\x08\x00\x27\x00\x49\x00\x78\x00\x02\x00\x03\x00\x02\x00\x0b\x00\x2e\x00\x01\x00\x12\x00\x0a\x00\x0b\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x19\x00\x78\x00\x11\x00\x0c\x00\x13\x00\x14\x00\x49\x00\x10\x00\x1d\x00\x49\x00\x02\x00\x03\x00\x49\x00\x22\x00\x23\x00\x49\x00\x1d\x00\x20\x00\x27\x00\x49\x00\x78\x00\x22\x00\x23\x00\x26\x00\x27\x00\x2e\x00\x2d\x00\x19\x00\x2f\x00\x1b\x00\x49\x00\x2e\x00\x2f\x00\x49\x00\x31\x00\x78\x00\x46\x00\x1d\x00\x48\x00\x25\x00\x26\x00\x27\x00\x22\x00\x23\x00\x09\x00\x0a\x00\x0b\x00\x27\x00\x3f\x00\x78\x00\x30\x00\x03\x00\x32\x00\x33\x00\x2e\x00\x35\x00\x08\x00\x48\x00\x38\x00\x19\x00\x4a\x00\x52\x00\x53\x00\x1d\x00\x1e\x00\x78\x00\x12\x00\x52\x00\x53\x00\x49\x00\x19\x00\x0d\x00\x0e\x00\x19\x00\x1d\x00\x1e\x00\x4a\x00\x02\x00\x03\x00\x01\x00\x49\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x70\x00\x71\x00\x72\x00\x10\x00\x57\x00\x49\x00\x70\x00\x71\x00\x72\x00\x16\x00\x03\x00\x18\x00\x49\x00\x1d\x00\x1b\x00\x08\x00\x4a\x00\x2c\x00\x22\x00\x23\x00\x49\x00\x30\x00\x31\x00\x27\x00\x25\x00\x12\x00\x49\x00\x28\x00\x49\x00\x38\x00\x2e\x00\x2f\x00\x19\x00\x17\x00\x18\x00\x4c\x00\x4d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x01\x00\x02\x00\x49\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x52\x00\x53\x00\x4a\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\x49\x00\x18\x00\x54\x00\x55\x00\x1b\x00\x49\x00\x1d\x00\x49\x00\x49\x00\x5b\x00\x0e\x00\x22\x00\x23\x00\x49\x00\x25\x00\x26\x00\x49\x00\x28\x00\x70\x00\x71\x00\x72\x00\x19\x00\x1a\x00\x2e\x00\x49\x00\x1d\x00\x1e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x49\x00\x49\x00\x49\x00\x19\x00\x2c\x00\x4a\x00\x4a\x00\x4a\x00\x30\x00\x31\x00\x4a\x00\x4a\x00\x4a\x00\x49\x00\x19\x00\x49\x00\x38\x00\x4c\x00\x49\x00\x4e\x00\x4f\x00\x50\x00\x49\x00\x49\x00\x2a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x02\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x06\x00\x49\x00\x49\x00\x49\x00\x0e\x00\x0f\x00\x10\x00\x4a\x00\x19\x00\x4a\x00\x1b\x00\x4a\x00\x16\x00\x49\x00\x18\x00\x49\x00\x49\x00\x1b\x00\x4a\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x4a\x00\x22\x00\x23\x00\x49\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x49\x00\x32\x00\x33\x00\x34\x00\x35\x00\x4a\x00\x49\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x4a\x00\x19\x00\x49\x00\x49\x00\x29\x00\x1d\x00\x29\x00\x4a\x00\x49\x00\x05\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x4c\x00\x4a\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x2e\x00\x4a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x4a\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x01\x00\x05\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x19\x00\x22\x00\x23\x00\x0a\x00\x0b\x00\x16\x00\x27\x00\x18\x00\x4a\x00\x10\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x0e\x00\x19\x00\x25\x00\x19\x00\x16\x00\x28\x00\x06\x00\x20\x00\x4a\x00\x4a\x00\x4a\x00\x11\x00\x19\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x4a\x00\x1d\x00\x4a\x00\x19\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x26\x00\x27\x00\x19\x00\x02\x00\x03\x00\x46\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x13\x00\x15\x00\x26\x00\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x15\x00\x11\x00\x2e\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x15\x00\x22\x00\x23\x00\x26\x00\x03\x00\x16\x00\x27\x00\x18\x00\x13\x00\x11\x00\x1b\x00\x0b\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x13\x00\x48\x00\x25\x00\x11\x00\x26\x00\x28\x00\x11\x00\x0b\x00\x26\x00\x0c\x00\x0b\x00\x11\x00\x14\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x15\x00\x1d\x00\x14\x00\x0b\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x20\x00\x27\x00\x11\x00\x11\x00\x11\x00\x11\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x11\x00\x2e\x00\x14\x00\x54\x00\x55\x00\x56\x00\x01\x00\x2e\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\x11\x00\x11\x00\x0a\x00\x0e\x00\x0f\x00\x10\x00\x13\x00\x19\x00\x0b\x00\x1b\x00\x31\x00\x16\x00\x13\x00\x18\x00\x10\x00\x04\x00\x1b\x00\x20\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x04\x00\x0b\x00\x26\x00\x13\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x20\x00\x32\x00\x33\x00\x20\x00\x35\x00\x11\x00\x11\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x0a\x00\x15\x00\x19\x00\x26\x00\x11\x00\x13\x00\x1d\x00\x13\x00\x4a\x00\x0a\x00\x13\x00\x22\x00\x23\x00\x13\x00\x13\x00\x5b\x00\x27\x00\x4c\x00\x0c\x00\x4e\x00\x4f\x00\x50\x00\x26\x00\x2e\x00\x0b\x00\x54\x00\x55\x00\x56\x00\x01\x00\x20\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x0d\x00\x13\x00\x0e\x00\x0f\x00\x10\x00\x0a\x00\x19\x00\x11\x00\x1b\x00\x11\x00\x16\x00\x31\x00\x18\x00\x26\x00\x11\x00\x1b\x00\x26\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x03\x00\x26\x00\x25\x00\x20\x00\x13\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x0a\x00\x35\x00\x11\x00\x2f\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x0a\x00\x12\x00\x22\x00\x23\x00\x4a\x00\x5a\x00\x04\x00\x27\x00\x0b\x00\x11\x00\x0b\x00\x04\x00\x10\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x01\x00\x12\x00\x10\x00\x54\x00\x55\x00\x56\x00\x01\x00\x3f\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x04\x00\x10\x00\x10\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\x14\x00\x19\x00\x12\x00\x1b\x00\x12\x00\x16\x00\x12\x00\x18\x00\x12\x00\x12\x00\x1b\x00\x0c\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x05\x00\x20\x00\x25\x00\xff\xff\x78\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x78\x00\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x13\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x19\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4c\x00\x0b\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\x10\x00\x27\x00\x54\x00\x55\x00\x56\x00\xff\xff\x16\x00\x59\x00\x18\x00\xff\xff\x30\x00\x1b\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\x1d\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\xff\xff\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x25\x00\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\x4f\x00\x50\x00\x27\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x2c\x00\x2e\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\x38\x00\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x21\x00\x4f\x00\x50\x00\xff\xff\x18\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x02\x00\x03\x00\xff\xff\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x19\x00\xff\xff\x1b\x00\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0e\x00\x2e\x00\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\x30\x00\x38\x00\x32\x00\x33\x00\x27\x00\x35\x00\x19\x00\x1a\x00\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x21\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\xb6\x00\x24\x00\x12\x02\x10\x01\xb5\x00\xb6\x00\x69\x01\xb5\x00\xb6\x00\xda\xff\x4b\x01\xe8\x00\x53\x00\x11\xff\xe8\x00\x90\x00\x54\x00\x32\x01\x32\x01\xfc\xff\x1b\x01\x78\x00\x79\x00\x36\x01\x6f\x02\x48\x02\x2b\x02\x24\x00\x32\x01\xda\xff\xda\xff\xb7\x00\x45\x01\x1c\x01\xb7\x00\xf7\x01\xb8\x00\xb9\x00\x53\x00\xb8\x00\xb9\x00\xba\x00\x54\x00\xdf\x00\xba\x00\x6a\x02\xae\x00\x7a\x00\xbb\x00\xbb\x01\xfa\x01\xbb\x00\x7b\x00\x77\x00\x59\x00\xea\x00\x59\x02\x33\x01\xea\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x35\x01\x6a\x01\x6b\x01\xda\xff\x78\x00\x79\x00\x13\x01\x14\x01\x5d\x00\x4b\x02\x58\x02\xf9\x01\x4a\x01\x81\x01\x5e\x00\x73\xff\x4b\x01\x5f\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x95\x00\xb5\x00\xb6\x00\xfb\x00\x7a\x00\x6c\x01\x6d\x01\x6e\x01\x5d\x00\x7b\x00\xb5\x00\xb6\x00\x1c\x02\x6d\x02\x5e\x00\x96\x00\xe8\x00\x5f\x00\x60\x00\x6e\x02\xbb\x00\x15\x01\x61\x00\x4c\x01\x62\x00\x63\x00\x64\x00\xfc\xff\xb7\x00\x11\xff\x4d\x01\xe9\x00\xff\xff\xb8\x00\xb9\x00\x61\x02\x28\x01\xb7\x00\xba\x00\x6c\x02\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x60\x00\xbb\x00\x24\x02\xba\x00\x61\x00\xa0\xff\x62\x00\x63\x00\x64\x00\xfc\xff\xbb\x00\xa0\xff\xa0\xff\xa0\xff\xa0\xff\xc9\x00\xea\x00\xa0\xff\xb2\x00\xa0\xff\xc9\x00\xeb\x01\xf3\x00\xb7\x00\x2b\x01\x2c\x01\xb2\x01\xf7\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xa0\xff\xba\x00\xe0\x01\x66\x01\x67\x01\x24\x00\xc9\x00\x9f\xff\xbb\x00\xa0\xff\x60\x02\xdd\x01\xca\x00\x9f\xff\x9f\xff\x9f\xff\x9f\xff\xe8\x00\x62\x02\x9f\xff\x54\x00\x9f\xff\x8d\xff\x42\x02\xb3\x00\xb7\x00\xe8\x00\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x6e\xff\x15\x01\x9f\xff\xba\x00\x13\xff\xf8\x01\xf9\x01\xb2\x00\x24\x00\x9d\x01\xbb\x00\x9f\xff\xa0\xff\xa0\xff\xde\x01\x0f\x01\xe8\x00\xa0\xff\xa0\xff\x53\x00\xa0\xff\x6e\xff\xb7\x00\x54\x00\x9e\x01\xb2\x00\xfc\xff\xb8\x00\xb9\x00\xea\x00\x65\x02\x9f\x01\xba\x00\x1c\x02\xae\x00\xb3\x00\xb2\x00\xaf\x00\xea\x00\xbb\x00\x5d\x02\xb2\x00\xa0\xff\xa0\xff\xa0\xff\x64\x02\x9f\xff\x9f\xff\xb5\x00\xb6\x00\xa0\xff\x9f\xff\x9f\xff\x9f\x01\x9f\xff\xb2\x00\xb2\x00\x17\xff\x1c\x02\x66\x02\xea\x00\xb2\x00\xb2\x00\x44\x02\xb2\x00\x1d\x02\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x47\x02\xb7\x00\x9f\xff\x9f\xff\x9f\xff\xb3\x00\xb8\x00\xb9\x00\x5d\x00\x85\x00\x9f\xff\xba\x00\x24\x00\xa1\x01\x5e\x00\x19\x00\x73\xff\x5f\x00\xbb\x00\x25\x02\xb3\x00\x36\x01\xb5\x00\xb6\x00\xb2\x00\x80\x01\x8f\x01\x54\x00\x91\x01\x1d\x00\x37\x01\x16\xff\x4a\x02\x70\x01\xb2\x00\x1f\x02\xb5\x00\xb6\x00\x1e\x00\x13\xff\x86\x00\x20\x00\xfb\x00\x21\x00\x60\x00\x14\xff\x22\x00\x41\x02\x61\x00\xb7\x00\x62\x00\x63\x00\x64\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\x87\x00\x93\x01\xb7\x00\x7d\x01\x12\xff\xbb\x00\x43\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x95\x01\xba\x00\x91\x00\xbb\x00\x5b\x02\xb2\x00\xb2\x00\x0d\xff\xbb\x00\xe8\x01\x67\x01\xb7\x00\x3b\x01\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x0f\x02\xb3\x00\x17\xff\xba\x00\x0c\xff\x10\x02\xaa\x01\xb7\x00\xad\x01\x46\x02\xbb\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xdf\x00\xea\x00\x4f\x02\x73\xff\xb7\x00\x0a\xff\xbb\x00\xae\x01\xaf\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\xb2\x00\xb0\x01\xb2\x00\x29\x02\x09\xff\xbb\x00\xea\x00\xb7\x00\x53\x02\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x04\x02\xb1\x01\x16\xff\xba\x00\x08\xff\x50\x02\xb3\x00\x90\x00\xb7\x00\xeb\x00\xbb\x00\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x55\x02\x14\xff\x91\x00\xba\x00\x08\x02\x07\xff\xb3\x00\xb7\x00\xff\x00\x01\x01\xbb\x00\xb3\x00\xb8\x00\xb9\x00\x3a\x01\xeb\x00\x38\x02\xba\x00\x68\x02\xc0\x01\xb3\x00\x12\xff\x3b\x01\xb7\x00\xbb\x00\xf2\x01\x2e\x01\x15\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x52\x02\xba\x00\x12\x02\x0d\xff\x68\xff\xb6\x00\x74\x00\xd2\xff\xbb\x00\x24\x00\x4a\x00\xe9\x01\x67\x01\x68\xff\x68\xff\x68\xff\x69\x01\x4c\x00\x0c\xff\x68\xff\x53\x00\x68\xff\x68\xff\x13\x02\x54\x00\xb7\x00\x17\x02\xb5\x00\xb6\x00\x19\x02\xb8\x00\xb9\x00\x1a\x02\x75\x00\x68\xff\xba\x00\x34\x02\x0a\xff\x76\x00\x77\x00\x68\xff\x68\xff\xbb\x00\x38\x02\x19\x00\x39\x02\xd0\x00\x35\x02\x68\xff\x68\xff\x36\x02\x68\xff\x09\xff\x70\x01\xb7\x00\x71\x01\x1b\x00\x1c\x00\x1d\x00\xb8\x00\xb9\x00\x65\x01\x66\x01\x67\x01\xba\x00\x68\xff\x08\xff\x1e\x00\x15\x02\x1f\x00\x20\x00\xbb\x00\x21\x00\x16\x02\x68\xff\x22\x00\xdf\x00\x37\x02\x6a\x01\x6b\x01\xbe\x01\xe1\x00\x07\xff\x4a\x00\x68\xff\x68\xff\xb3\x01\xdf\x00\x0e\x01\x0f\x01\x4c\x00\xe0\x00\xe1\x00\x88\x01\xb5\x00\xb6\x00\x24\x00\xb4\x01\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x8a\x00\x78\x00\xa8\x00\x6c\x01\x6d\x01\x6e\x01\x2d\x00\x0c\x01\xb5\x01\x68\xff\x68\xff\x68\xff\x2e\x00\x15\x02\x2f\x00\xb6\x01\xb7\x00\x30\x00\x22\x02\xc5\x01\xc2\x01\xb8\x00\xb9\x00\xb7\x01\xaa\x00\xc3\x01\xba\x00\x32\x00\x4a\x00\xb8\x01\x33\x00\xb9\x01\x7b\x00\xbb\x00\x3e\x01\x4c\x00\x2d\x01\x2e\x01\x3b\x02\x3c\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xba\x01\xda\x01\x24\x00\xa3\x00\xc9\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xc6\x01\x6a\x01\x6b\x01\xc7\x01\x2b\x00\x2c\x00\x2d\x00\x30\x01\x31\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\xcb\x01\x2f\x00\x40\x00\x41\x00\x30\x00\xcd\x01\xa4\x00\xce\x01\xcf\x01\x8b\x00\x72\x00\xa5\x00\xa6\x00\xd0\x01\x32\x00\xa7\x00\xd1\x01\x33\x00\x6c\x01\x6d\x01\x6e\x01\xe2\x00\xa8\x00\xa8\x00\xd2\x01\xe3\x00\xe1\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xd3\x01\xd4\x01\xd6\x01\xd9\x01\xfd\x01\xe4\x00\xea\x01\xec\x01\xee\x01\xaa\x00\xe5\x00\xf3\x01\xf4\x01\xfb\x01\x3f\x01\x42\x01\x56\x01\x7b\x00\x3c\x00\x57\x01\x3d\x00\x3e\x00\x3f\x00\x5b\x01\x5c\x01\x6e\x01\x40\x00\x41\x00\x42\x00\x24\x00\x74\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x76\x01\x82\x01\x83\x01\x84\x01\x2b\x00\x2c\x00\x2d\x00\x86\x01\x19\x00\x8e\x01\x89\x01\x90\x01\x2e\x00\x92\x01\x2f\x00\x94\x01\x96\x01\x30\x00\xa7\x01\xa4\x00\x1b\x00\x1c\x00\x1d\x00\xa8\x01\x76\x00\x77\x00\xac\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\xcf\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\xd5\x00\xd8\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xdb\x00\xdd\x00\x00\x01\xfe\x00\x02\x01\x03\x01\x09\x01\xb7\x00\x0d\x01\x8b\x01\x0a\x01\x11\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xff\x00\xba\x00\x3c\x00\x23\x01\x3d\x00\x3e\x00\x3f\x00\x06\x02\xbb\x00\x24\x01\x40\x00\x41\x00\x42\x00\x24\x00\x27\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x28\x01\x24\x00\x29\x01\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x31\x01\xb8\x00\xb9\x00\x4f\x01\x50\x01\x2e\x00\xba\x00\x2f\x00\x3c\x01\x54\x00\x30\x00\x34\x01\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x72\x00\x6b\x00\x32\x00\x6c\x00\x70\x00\x33\x00\x8b\x00\x51\x01\x93\x00\x96\x00\x97\x00\x47\xff\x99\x00\x5a\x01\xc5\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\xb0\x00\xb7\x00\xbb\x00\xc2\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x5b\x01\xba\x00\x5b\x01\xba\x00\xc8\x00\xb5\x00\xb6\x00\x04\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x71\x02\x5d\x02\x5f\x02\x40\x00\x41\x00\x42\x00\x24\x00\xe0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x60\x02\x68\x02\xea\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x40\x02\xb8\x00\xb9\x00\x41\x02\x00\x00\x2e\x00\xba\x00\x2f\x00\x4a\x02\x4e\x02\x30\x00\x51\x02\x31\x00\xbb\x00\xf5\x00\xb6\x00\xb5\x00\xb6\x00\x52\x02\x55\x02\x32\x00\x5b\x02\x04\x02\x33\x00\x07\x02\xe2\x01\x08\x02\x0a\x02\x0b\x02\xf6\x00\x15\x02\x1f\x02\xc7\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xf7\x00\x1c\x02\xb7\x00\x21\x02\x22\x02\xf8\x00\xf9\x00\xb8\x00\xb9\x00\xfa\x00\xba\x00\x27\x02\xba\x00\x2c\x02\x2d\x02\x2e\x02\x2f\x02\xfb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x30\x02\x3d\x02\xc2\x01\x40\x00\x41\x00\x42\x00\x24\x00\xbe\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xea\x00\xcb\x01\xcd\x01\xdf\x00\x2b\x00\x2c\x00\x2d\x00\xe3\x01\x19\x00\xe4\x01\xd4\x00\xd9\x01\x2e\x00\xe6\x01\x2f\x00\xe7\x01\xe8\x01\x30\x00\xf7\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\x01\x02\x02\x02\x00\x02\x42\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\x41\x01\x1f\x00\x20\x00\x45\x01\x21\x00\x47\x01\x49\x01\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x48\x01\x4a\x01\x53\x01\xd8\x01\x52\x01\x59\x01\x5e\x01\xb7\x00\x5f\x01\x8c\x01\x70\x01\x60\x01\xb8\x00\xb9\x00\x61\x01\x62\x01\x73\x01\xba\x00\x3c\x00\x8d\x00\x3d\x00\x3e\x00\x3f\x00\x65\x01\xbb\x00\x79\x01\x40\x00\x41\x00\x42\x00\x24\x00\x7a\x01\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x80\x01\x78\x01\x88\x01\x98\x01\x2b\x00\x2c\x00\x2d\x00\xa4\x01\x19\x00\x9c\x01\xd7\x00\xa0\x01\x2e\x00\x7d\x01\x2f\x00\xa2\x01\xa3\x01\x30\x00\xa6\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\xcd\x00\x32\x00\xd7\x00\xda\x00\x33\x00\x1e\x00\xf1\x01\x1f\x00\x20\x00\xdf\x00\x21\x00\xc4\xff\xdd\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xc5\xff\xf2\x00\xb7\x00\x00\x00\xdf\x00\xdf\x00\x16\x01\xb8\x00\xb9\x00\x8d\x01\x0d\x01\x65\x00\xba\x00\x1d\x01\x2d\x01\x39\x01\x66\x00\x3a\x01\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x68\x00\x69\x00\x6e\x00\x40\x00\x41\x00\x42\x00\x24\x00\x6a\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x6b\x00\x6f\x00\x70\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x72\x00\x19\x00\x81\x00\xec\x00\x82\x00\x2e\x00\x83\x00\x2f\x00\x84\x00\x85\x00\x30\x00\x8d\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x8e\x00\xb2\x00\x32\x00\x00\x00\xff\xff\x33\x00\x1e\x00\xf2\x01\x1f\x00\x20\x00\xff\xff\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xed\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\xee\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x03\x02\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xef\x00\x00\x00\x00\x00\xba\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\xf0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x2e\x00\xba\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\x00\x00\xb7\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x00\x00\xba\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x18\x02\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x19\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x3c\x00\x72\x02\x3d\x00\x3e\x00\x3f\x00\x00\x00\x2d\x00\x1d\x00\x40\x00\x41\x00\x42\x00\x00\x00\x2e\x00\x43\x00\x2f\x00\x00\x00\x1e\x00\x30\x00\x0b\x02\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x0c\x02\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x02\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x6a\x02\x63\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x64\x02\x1d\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0f\x02\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x3e\x02\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x4c\x02\x18\x01\x00\x00\x3d\x02\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x28\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x31\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x56\x02\x18\x01\x00\x00\xc4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x32\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\x18\x01\x00\x00\xd5\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x33\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\xbf\x01\x00\x00\xe4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x34\x02\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x98\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xc8\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x99\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xf5\x01\x18\x01\x00\x00\xa4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x74\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x01\x44\x00\x45\x00\x46\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x1a\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x1d\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x0b\x02\x20\x00\x7e\x00\x21\x00\x00\x00\x00\x00\x22\x00\x57\x02\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\xee\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x78\x00\xa8\x00\x00\x00\xb7\x00\x00\x00\xac\x00\xad\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x7f\x00\x80\x00\xba\x00\x1e\x01\x44\x00\x45\x00\x46\x00\x00\x00\xa9\x00\xbb\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x7b\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x16\x01\x7f\x00\x80\x00\x00\x00\x2f\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xfc\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1f\x01\x44\x00\x45\x00\x46\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x20\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x21\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x22\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8e\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8f\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x9e\x00\x00\x00\x9f\x00\xba\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x72\x00\xbb\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x25\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\xa1\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x26\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x6b\x02\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x7e\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x89\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x06\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x45\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x24\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x28\x02\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdb\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdd\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xfe\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x3e\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x53\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x54\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x55\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x62\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x73\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x74\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x75\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7a\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7b\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x85\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xa6\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xab\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcd\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xce\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd4\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd7\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xe6\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf2\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x66\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x92\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x98\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9c\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9d\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbc\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbd\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbe\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbf\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc3\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc5\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc7\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcb\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x1a\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x1e\x00\x22\x00\xa9\x01\x20\x00\x1d\x00\x21\x00\x78\x00\xa8\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x16\x01\xda\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x17\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x9b\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = Happy_Data_Array.array (3, 257) [
-	(3 , happyReduce_3),
-	(4 , happyReduce_4),
-	(5 , happyReduce_5),
-	(6 , happyReduce_6),
-	(7 , happyReduce_7),
-	(8 , happyReduce_8),
-	(9 , happyReduce_9),
-	(10 , happyReduce_10),
-	(11 , happyReduce_11),
-	(12 , happyReduce_12),
-	(13 , happyReduce_13),
-	(14 , happyReduce_14),
-	(15 , happyReduce_15),
-	(16 , happyReduce_16),
-	(17 , happyReduce_17),
-	(18 , happyReduce_18),
-	(19 , happyReduce_19),
-	(20 , happyReduce_20),
-	(21 , happyReduce_21),
-	(22 , happyReduce_22),
-	(23 , happyReduce_23),
-	(24 , happyReduce_24),
-	(25 , happyReduce_25),
-	(26 , happyReduce_26),
-	(27 , happyReduce_27),
-	(28 , happyReduce_28),
-	(29 , happyReduce_29),
-	(30 , happyReduce_30),
-	(31 , happyReduce_31),
-	(32 , happyReduce_32),
-	(33 , happyReduce_33),
-	(34 , happyReduce_34),
-	(35 , happyReduce_35),
-	(36 , happyReduce_36),
-	(37 , happyReduce_37),
-	(38 , happyReduce_38),
-	(39 , happyReduce_39),
-	(40 , happyReduce_40),
-	(41 , happyReduce_41),
-	(42 , happyReduce_42),
-	(43 , happyReduce_43),
-	(44 , happyReduce_44),
-	(45 , happyReduce_45),
-	(46 , happyReduce_46),
-	(47 , happyReduce_47),
-	(48 , happyReduce_48),
-	(49 , happyReduce_49),
-	(50 , happyReduce_50),
-	(51 , happyReduce_51),
-	(52 , happyReduce_52),
-	(53 , happyReduce_53),
-	(54 , happyReduce_54),
-	(55 , happyReduce_55),
-	(56 , happyReduce_56),
-	(57 , happyReduce_57),
-	(58 , happyReduce_58),
-	(59 , happyReduce_59),
-	(60 , happyReduce_60),
-	(61 , happyReduce_61),
-	(62 , happyReduce_62),
-	(63 , happyReduce_63),
-	(64 , happyReduce_64),
-	(65 , happyReduce_65),
-	(66 , happyReduce_66),
-	(67 , happyReduce_67),
-	(68 , happyReduce_68),
-	(69 , happyReduce_69),
-	(70 , happyReduce_70),
-	(71 , happyReduce_71),
-	(72 , happyReduce_72),
-	(73 , happyReduce_73),
-	(74 , happyReduce_74),
-	(75 , happyReduce_75),
-	(76 , happyReduce_76),
-	(77 , happyReduce_77),
-	(78 , happyReduce_78),
-	(79 , happyReduce_79),
-	(80 , happyReduce_80),
-	(81 , happyReduce_81),
-	(82 , happyReduce_82),
-	(83 , happyReduce_83),
-	(84 , happyReduce_84),
-	(85 , happyReduce_85),
-	(86 , happyReduce_86),
-	(87 , happyReduce_87),
-	(88 , happyReduce_88),
-	(89 , happyReduce_89),
-	(90 , happyReduce_90),
-	(91 , happyReduce_91),
-	(92 , happyReduce_92),
-	(93 , happyReduce_93),
-	(94 , happyReduce_94),
-	(95 , happyReduce_95),
-	(96 , happyReduce_96),
-	(97 , happyReduce_97),
-	(98 , happyReduce_98),
-	(99 , happyReduce_99),
-	(100 , happyReduce_100),
-	(101 , happyReduce_101),
-	(102 , happyReduce_102),
-	(103 , happyReduce_103),
-	(104 , happyReduce_104),
-	(105 , happyReduce_105),
-	(106 , happyReduce_106),
-	(107 , happyReduce_107),
-	(108 , happyReduce_108),
-	(109 , happyReduce_109),
-	(110 , happyReduce_110),
-	(111 , happyReduce_111),
-	(112 , happyReduce_112),
-	(113 , happyReduce_113),
-	(114 , happyReduce_114),
-	(115 , happyReduce_115),
-	(116 , happyReduce_116),
-	(117 , happyReduce_117),
-	(118 , happyReduce_118),
-	(119 , happyReduce_119),
-	(120 , happyReduce_120),
-	(121 , happyReduce_121),
-	(122 , happyReduce_122),
-	(123 , happyReduce_123),
-	(124 , happyReduce_124),
-	(125 , happyReduce_125),
-	(126 , happyReduce_126),
-	(127 , happyReduce_127),
-	(128 , happyReduce_128),
-	(129 , happyReduce_129),
-	(130 , happyReduce_130),
-	(131 , happyReduce_131),
-	(132 , happyReduce_132),
-	(133 , happyReduce_133),
-	(134 , happyReduce_134),
-	(135 , happyReduce_135),
-	(136 , happyReduce_136),
-	(137 , happyReduce_137),
-	(138 , happyReduce_138),
-	(139 , happyReduce_139),
-	(140 , happyReduce_140),
-	(141 , happyReduce_141),
-	(142 , happyReduce_142),
-	(143 , happyReduce_143),
-	(144 , happyReduce_144),
-	(145 , happyReduce_145),
-	(146 , happyReduce_146),
-	(147 , happyReduce_147),
-	(148 , happyReduce_148),
-	(149 , happyReduce_149),
-	(150 , happyReduce_150),
-	(151 , happyReduce_151),
-	(152 , happyReduce_152),
-	(153 , happyReduce_153),
-	(154 , happyReduce_154),
-	(155 , happyReduce_155),
-	(156 , happyReduce_156),
-	(157 , happyReduce_157),
-	(158 , happyReduce_158),
-	(159 , happyReduce_159),
-	(160 , happyReduce_160),
-	(161 , happyReduce_161),
-	(162 , happyReduce_162),
-	(163 , happyReduce_163),
-	(164 , happyReduce_164),
-	(165 , happyReduce_165),
-	(166 , happyReduce_166),
-	(167 , happyReduce_167),
-	(168 , happyReduce_168),
-	(169 , happyReduce_169),
-	(170 , happyReduce_170),
-	(171 , happyReduce_171),
-	(172 , happyReduce_172),
-	(173 , happyReduce_173),
-	(174 , happyReduce_174),
-	(175 , happyReduce_175),
-	(176 , happyReduce_176),
-	(177 , happyReduce_177),
-	(178 , happyReduce_178),
-	(179 , happyReduce_179),
-	(180 , happyReduce_180),
-	(181 , happyReduce_181),
-	(182 , happyReduce_182),
-	(183 , happyReduce_183),
-	(184 , happyReduce_184),
-	(185 , happyReduce_185),
-	(186 , happyReduce_186),
-	(187 , happyReduce_187),
-	(188 , happyReduce_188),
-	(189 , happyReduce_189),
-	(190 , happyReduce_190),
-	(191 , happyReduce_191),
-	(192 , happyReduce_192),
-	(193 , happyReduce_193),
-	(194 , happyReduce_194),
-	(195 , happyReduce_195),
-	(196 , happyReduce_196),
-	(197 , happyReduce_197),
-	(198 , happyReduce_198),
-	(199 , happyReduce_199),
-	(200 , happyReduce_200),
-	(201 , happyReduce_201),
-	(202 , happyReduce_202),
-	(203 , happyReduce_203),
-	(204 , happyReduce_204),
-	(205 , happyReduce_205),
-	(206 , happyReduce_206),
-	(207 , happyReduce_207),
-	(208 , happyReduce_208),
-	(209 , happyReduce_209),
-	(210 , happyReduce_210),
-	(211 , happyReduce_211),
-	(212 , happyReduce_212),
-	(213 , happyReduce_213),
-	(214 , happyReduce_214),
-	(215 , happyReduce_215),
-	(216 , happyReduce_216),
-	(217 , happyReduce_217),
-	(218 , happyReduce_218),
-	(219 , happyReduce_219),
-	(220 , happyReduce_220),
-	(221 , happyReduce_221),
-	(222 , happyReduce_222),
-	(223 , happyReduce_223),
-	(224 , happyReduce_224),
-	(225 , happyReduce_225),
-	(226 , happyReduce_226),
-	(227 , happyReduce_227),
-	(228 , happyReduce_228),
-	(229 , happyReduce_229),
-	(230 , happyReduce_230),
-	(231 , happyReduce_231),
-	(232 , happyReduce_232),
-	(233 , happyReduce_233),
-	(234 , happyReduce_234),
-	(235 , happyReduce_235),
-	(236 , happyReduce_236),
-	(237 , happyReduce_237),
-	(238 , happyReduce_238),
-	(239 , happyReduce_239),
-	(240 , happyReduce_240),
-	(241 , happyReduce_241),
-	(242 , happyReduce_242),
-	(243 , happyReduce_243),
-	(244 , happyReduce_244),
-	(245 , happyReduce_245),
-	(246 , happyReduce_246),
-	(247 , happyReduce_247),
-	(248 , happyReduce_248),
-	(249 , happyReduce_249),
-	(250 , happyReduce_250),
-	(251 , happyReduce_251),
-	(252 , happyReduce_252),
-	(253 , happyReduce_253),
-	(254 , happyReduce_254),
-	(255 , happyReduce_255),
-	(256 , happyReduce_256),
-	(257 , happyReduce_257)
-	]
-
-happy_n_terms = 121 :: Int
-happy_n_nonterms = 76 :: Int
-
-happyReduce_3 = happySpecReduce_0  0# happyReduction_3
-happyReduction_3  =  happyIn6
-		 ([]
-	)
-
-happyReduce_4 = happySpecReduce_2  0# happyReduction_4
-happyReduction_4 happy_x_2
-	happy_x_1
-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_5 = happySpecReduce_2  0# happyReduction_5
-happyReduction_5 happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (map RealDecl happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_6 = happyReduce 4# 0# happyReduction_6
-happyReduction_6 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	case happyOut6 happy_x_4 of { happy_var_4 -> 
-	happyIn6
-		 (RealDecl (PInclude happy_var_2) : happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_7 = happySpecReduce_1  1# happyReduction_7
-happyReduction_7 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (happy_var_1
-	)}
-
-happyReduce_8 = happySpecReduce_1  1# happyReduction_8
-happyReduction_8 happy_x_1
-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl (DataDecl happy_var_1)
-	)}
-
-happyReduce_9 = happySpecReduce_1  1# happyReduction_9
-happyReduction_9 happy_x_1
-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_10 = happyReduce 5# 1# happyReduction_10
-happyReduction_10 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn7
-		 (RealDecl (Freeze happy_var_3 happy_var_4 [] happy_var_2)
-	) `HappyStk` happyRest}}}
-
-happyReduce_11 = happyReduce 4# 1# happyReduction_11
-happyReduction_11 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_12 = happyReduce 4# 1# happyReduction_12
-happyReduction_12 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PDoUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_13 = happyReduce 4# 1# happyReduction_13
-happyReduction_13 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut67 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PIdiom happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_14 = happyReduce 4# 1# happyReduction_14
-happyReduction_14 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PParams happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_15 = happyReduce 4# 1# happyReduction_15
-happyReduction_15 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut69 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PNamespace happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_16 = happySpecReduce_1  1# happyReduction_16
-happyReduction_16 happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_17 = happyReduce 6# 1# happyReduction_17
-happyReduction_17 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut40 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	happyIn7
-		 (RealDecl (SynDef happy_var_2 happy_var_3 happy_var_5)
-	) `HappyStk` happyRest}}}
-
-happyReduce_18 = happySpecReduce_2  1# happyReduction_18
-happyReduction_18 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CInclude happy_var_2)
-	)}
-
-happyReduce_19 = happySpecReduce_2  1# happyReduction_19
-happyReduction_19 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CLib happy_var_2)
-	)}
-
-happyReduce_20 = happyReduce 5# 2# happyReduction_20
-happyReduction_20 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn8
-		 (Transform happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_21 = happyReduce 7# 3# happyReduction_21
-happyReduction_21 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut15 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_22 = happySpecReduce_3  3# happyReduction_22
-happyReduction_22 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	happyIn9
-		 (ProofScript happy_var_1 happy_var_2
-	)}}
-
-happyReduce_23 = happyReduce 9# 3# happyReduction_23
-happyReduction_23 (happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	case happyOut80 happy_x_8 of { happy_var_8 -> 
-	case happyOut79 happy_x_9 of { happy_var_9 -> 
-	happyIn9
-		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_24 = happyReduce 10# 3# happyReduction_24
-happyReduction_24 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	case happyOut80 happy_x_9 of { happy_var_9 -> 
-	case happyOut79 happy_x_10 of { happy_var_10 -> 
-	happyIn9
-		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_25 = happyReduce 8# 3# happyReduction_25
-happyReduction_25 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut15 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_7 of { happy_var_7 -> 
-	case happyOut79 happy_x_8 of { happy_var_8 -> 
-	happyIn9
-		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_26 = happyReduce 5# 3# happyReduction_26
-happyReduction_26 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn9
-		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
-	) `HappyStk` happyRest}}
-
-happyReduce_27 = happyReduce 8# 3# happyReduction_27
-happyReduction_27 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	happyIn9
-		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}
-
-happyReduce_28 = happyReduce 7# 3# happyReduction_28
-happyReduction_28 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_29 = happySpecReduce_1  4# happyReduction_29
-happyReduction_29 happy_x_1
-	 =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_30 = happySpecReduce_1  4# happyReduction_30
-happyReduction_30 happy_x_1
-	 =  happyIn10
-		 (Vis Private
-	)
-
-happyReduce_31 = happySpecReduce_1  4# happyReduction_31
-happyReduction_31 happy_x_1
-	 =  happyIn10
-		 (Vis Abstract
-	)
-
-happyReduce_32 = happySpecReduce_0  4# happyReduction_32
-happyReduction_32  =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_33 = happySpecReduce_1  5# happyReduction_33
-happyReduction_33 happy_x_1
-	 =  happyIn11
-		 (False
-	)
-
-happyReduce_34 = happySpecReduce_2  5# happyReduction_34
-happyReduction_34 happy_x_2
-	happy_x_1
-	 =  happyIn11
-		 (True
-	)
-
-happyReduce_35 = happySpecReduce_3  6# happyReduction_35
-happyReduction_35 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut12 happy_x_3 of { happy_var_3 -> 
-	happyIn12
-		 (happy_var_2:happy_var_3
-	)}}
-
-happyReduce_36 = happySpecReduce_0  6# happyReduction_36
-happyReduction_36  =  happyIn12
-		 ([]
-	)
-
-happyReduce_37 = happySpecReduce_1  7# happyReduction_37
-happyReduction_37 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_38 = happySpecReduce_1  7# happyReduction_38
-happyReduction_38 happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_39 = happySpecReduce_3  7# happyReduction_39
-happyReduction_39 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn13
-		 (happy_var_2
-	)}
-
-happyReduce_40 = happyReduce 5# 7# happyReduction_40
-happyReduction_40 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn13
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_41 = happySpecReduce_2  8# happyReduction_41
-happyReduction_41 happy_x_2
-	happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	case happyOut14 happy_x_2 of { happy_var_2 -> 
-	happyIn14
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_42 = happySpecReduce_1  8# happyReduction_42
-happyReduction_42 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn14
-		 ([happy_var_1]
-	)}
-
-happyReduce_43 = happySpecReduce_1  9# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
-	happyIn15
-		 (happy_var_1
-	)}
-
-happyReduce_44 = happySpecReduce_3  9# happyReduction_44
-happyReduction_44 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn15
-		 (happy_var_2
-	)}
-
-happyReduce_45 = happySpecReduce_0  10# happyReduction_45
-happyReduction_45  =  happyIn16
-		 ([]
-	)
-
-happyReduce_46 = happySpecReduce_2  10# happyReduction_46
-happyReduction_46 happy_x_2
-	happy_x_1
-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
-	case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn16
-		 (happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_47 = happySpecReduce_1  11# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  happyIn17
-		 ([NoCG]
-	)
-
-happyReduce_48 = happySpecReduce_1  11# happyReduction_48
-happyReduction_48 happy_x_1
-	 =  happyIn17
-		 ([CGEval, Inline]
-	)
-
-happyReduce_49 = happyReduce 4# 11# happyReduction_49
-happyReduction_49 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn17
-		 ([CGSpec happy_var_3]
-	) `HappyStk` happyRest}
-
-happyReduce_50 = happySpecReduce_1  11# happyReduction_50
-happyReduction_50 happy_x_1
-	 =  happyIn17
-		 ([CGSpec []]
-	)
-
-happyReduce_51 = happySpecReduce_1  11# happyReduction_51
-happyReduction_51 happy_x_1
-	 =  happyIn17
-		 ([Inline]
-	)
-
-happyReduce_52 = happySpecReduce_2  11# happyReduction_52
-happyReduction_52 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn17
-		 ([CExport happy_var_2]
-	)}
-
-happyReduce_53 = happyReduce 4# 12# happyReduction_53
-happyReduction_53 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn18
-		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
-	) `HappyStk` happyRest}}}
-
-happyReduce_54 = happySpecReduce_1  13# happyReduction_54
-happyReduction_54 happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	happyIn19
-		 ([happy_var_1]
-	)}
-
-happyReduce_55 = happySpecReduce_3  13# happyReduction_55
-happyReduction_55 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn19
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_56 = happySpecReduce_1  14# happyReduction_56
-happyReduction_56 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
-	happyIn20
-		 (happy_var_1
-	)}
-
-happyReduce_57 = happySpecReduce_1  14# happyReduction_57
-happyReduction_57 happy_x_1
-	 =  happyIn20
-		 ("-"
-	)
-
-happyReduce_58 = happySpecReduce_1  14# happyReduction_58
-happyReduction_58 happy_x_1
-	 =  happyIn20
-		 ("<"
-	)
-
-happyReduce_59 = happySpecReduce_1  14# happyReduction_59
-happyReduction_59 happy_x_1
-	 =  happyIn20
-		 (">"
-	)
-
-happyReduce_60 = happySpecReduce_1  15# happyReduction_60
-happyReduction_60 happy_x_1
-	 =  happyIn21
-		 (LeftAssoc
-	)
-
-happyReduce_61 = happySpecReduce_1  15# happyReduction_61
-happyReduction_61 happy_x_1
-	 =  happyIn21
-		 (RightAssoc
-	)
-
-happyReduce_62 = happySpecReduce_1  15# happyReduction_62
-happyReduction_62 happy_x_1
-	 =  happyIn21
-		 (NonAssoc
-	)
-
-happyReduce_63 = happyReduce 4# 16# happyReduction_63
-happyReduction_63 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
-	happyIn22
-		 (LatexDefs happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_64 = happySpecReduce_3  17# happyReduction_64
-happyReduction_64 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	happyIn23
-		 ([(happy_var_1,happy_var_3)]
-	)}}
-
-happyReduce_65 = happyReduce 5# 17# happyReduction_65
-happyReduction_65 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	case happyOut23 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_66 = happySpecReduce_2  18# happyReduction_66
-happyReduction_66 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn24
-		 ((happy_var_1, happy_var_2)
-	)}}
-
-happyReduce_67 = happySpecReduce_0  19# happyReduction_67
-happyReduction_67  =  happyIn25
-		 ([]
-	)
-
-happyReduce_68 = happySpecReduce_2  19# happyReduction_68
-happyReduction_68 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 ((happy_var_1,Nothing):happy_var_2
-	)}}
-
-happyReduce_69 = happyReduce 5# 19# happyReduction_69
-happyReduction_69 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_70 = happyReduce 5# 19# happyReduction_70
-happyReduction_70 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut25 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((happy_var_3, Just happy_var_1):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_71 = happyReduce 6# 20# happyReduction_71
-happyReduction_71 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut28 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut27 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn26
-		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_72 = happySpecReduce_3  21# happyReduction_72
-happyReduction_72 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
-	case happyOut73 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Right (happy_var_1,happy_var_2)
-	)}}
-
-happyReduce_73 = happySpecReduce_3  21# happyReduction_73
-happyReduction_73 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Left happy_var_2
-	)}
-
-happyReduce_74 = happySpecReduce_3  21# happyReduction_74
-happyReduction_74 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn27
-		 (Left (RConst happy_var_2 happy_var_3 TYPE)
-	)}}
-
-happyReduce_75 = happySpecReduce_0  22# happyReduction_75
-happyReduction_75  =  happyIn28
-		 ([]
-	)
-
-happyReduce_76 = happySpecReduce_3  22# happyReduction_76
-happyReduction_76 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn28
-		 (happy_var_2
-	)}
-
-happyReduce_77 = happySpecReduce_1  23# happyReduction_77
-happyReduction_77 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn29
-		 ([happy_var_1]
-	)}
-
-happyReduce_78 = happySpecReduce_3  23# happyReduction_78
-happyReduction_78 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut29 happy_x_3 of { happy_var_3 -> 
-	happyIn29
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_79 = happySpecReduce_1  24# happyReduction_79
-happyReduction_79 happy_x_1
-	 =  happyIn30
-		 (NoElim
-	)
-
-happyReduce_80 = happySpecReduce_1  24# happyReduction_80
-happyReduction_80 happy_x_1
-	 =  happyIn30
-		 (Collapsible
-	)
-
-happyReduce_81 = happySpecReduce_1  25# happyReduction_81
-happyReduction_81 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_82 = happySpecReduce_3  25# happyReduction_82
-happyReduction_82 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
-	happyIn31
-		 (useropFn happy_var_2
-	)}
-
-happyReduce_83 = happyReduce 4# 26# happyReduction_83
-happyReduction_83 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	case happyOut56 happy_x_4 of { happy_var_4 -> 
-	happyIn32
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_84 = happyReduce 5# 26# happyReduction_84
-happyReduction_84 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn32
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_85 = happySpecReduce_3  26# happyReduction_85
-happyReduction_85 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_86 = happySpecReduce_3  26# happyReduction_86
-happyReduction_86 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_87 = happySpecReduce_1  26# happyReduction_87
-happyReduction_87 happy_x_1
-	 =  happyIn32
-		 (RPlaceholder
-	)
-
-happyReduce_88 = happySpecReduce_3  26# happyReduction_88
-happyReduction_88 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_89 = happySpecReduce_3  26# happyReduction_89
-happyReduction_89 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_90 = happySpecReduce_1  27# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_91 = happySpecReduce_3  27# happyReduction_91
-happyReduction_91 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn33
-		 (happy_var_2
-	)}
-
-happyReduce_92 = happyReduce 4# 27# happyReduction_92
-happyReduction_92 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	case happyOut56 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_93 = happyReduce 5# 27# happyReduction_93
-happyReduction_93 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn33
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_94 = happyReduce 4# 27# happyReduction_94
-happyReduction_94 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_95 = happyReduce 4# 27# happyReduction_95
-happyReduction_95 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doBind Lam happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_96 = happyReduce 4# 27# happyReduction_96
-happyReduction_96 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doLetBind happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_97 = happySpecReduce_1  27# happyReduction_97
-happyReduction_97 happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_98 = happyReduce 8# 27# happyReduction_98
-happyReduction_98 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut33 happy_x_6 of { happy_var_6 -> 
-	case happyOut80 happy_x_7 of { happy_var_7 -> 
-	case happyOut79 happy_x_8 of { happy_var_8 -> 
-	happyIn33
-		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_99 = happySpecReduce_2  28# happyReduction_99
-happyReduction_99 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn34
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_100 = happyReduce 4# 28# happyReduction_100
-happyReduction_100 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut34 happy_x_4 of { happy_var_4 -> 
-	happyIn34
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_101 = happySpecReduce_3  29# happyReduction_101
-happyReduction_101 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 (happy_var_1 ++ happy_var_3
-	)}}
-
-happyReduce_102 = happySpecReduce_1  29# happyReduction_102
-happyReduction_102 happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	happyIn35
-		 (happy_var_1
-	)}
-
-happyReduce_103 = happySpecReduce_3  30# happyReduction_103
-happyReduction_103 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn36
-		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
-	)}}
-
-happyReduce_104 = happySpecReduce_1  31# happyReduction_104
-happyReduction_104 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn37
-		 ([happy_var_1]
-	)}
-
-happyReduce_105 = happySpecReduce_3  31# happyReduction_105
-happyReduction_105 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn37
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_106 = happySpecReduce_2  32# happyReduction_106
-happyReduction_106 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	happyIn38
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_107 = happySpecReduce_1  32# happyReduction_107
-happyReduction_107 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn38
-		 ([(happy_var_1, 0)]
-	)}
-
-happyReduce_108 = happySpecReduce_3  32# happyReduction_108
-happyReduction_108 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn38
-		 ((happy_var_1,0):happy_var_3
-	)}}
-
-happyReduce_109 = happyReduce 4# 32# happyReduction_109
-happyReduction_109 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut38 happy_x_4 of { happy_var_4 -> 
-	happyIn38
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_110 = happySpecReduce_1  33# happyReduction_110
-happyReduction_110 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	happyIn39
-		 ([happy_var_1]
-	)}
-
-happyReduce_111 = happySpecReduce_3  33# happyReduction_111
-happyReduction_111 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn39
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_112 = happySpecReduce_0  34# happyReduction_112
-happyReduction_112  =  happyIn40
-		 ([]
-	)
-
-happyReduce_113 = happySpecReduce_2  34# happyReduction_113
-happyReduction_113 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	happyIn40
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_114 = happyReduce 4# 35# happyReduction_114
-happyReduction_114 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn41
-		 ([(happy_var_1,happy_var_2,happy_var_4)]
-	) `HappyStk` happyRest}}}
-
-happyReduce_115 = happyReduce 6# 35# happyReduction_115
-happyReduction_115 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut41 happy_x_6 of { happy_var_6 -> 
-	happyIn41
-		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_116 = happySpecReduce_3  36# happyReduction_116
-happyReduction_116 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
-	)}}}
-
-happyReduce_117 = happySpecReduce_3  36# happyReduction_117
-happyReduction_117 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, happy_var_3)
-	)}}
-
-happyReduce_118 = happyReduce 4# 37# happyReduction_118
-happyReduction_118 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_119 = happyReduce 5# 37# happyReduction_119
-happyReduction_119 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_120 = happyReduce 5# 37# happyReduction_120
-happyReduction_120 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
-	) `HappyStk` happyRest}}}}
-
-happyReduce_121 = happyReduce 5# 37# happyReduction_121
-happyReduction_121 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_122 = happyReduce 5# 37# happyReduction_122
-happyReduction_122 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_123 = happyReduce 5# 37# happyReduction_123
-happyReduction_123 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_124 = happySpecReduce_1  37# happyReduction_124
-happyReduction_124 happy_x_1
-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
-	happyIn43
-		 (happy_var_1
-	)}
-
-happyReduce_125 = happyReduce 5# 37# happyReduction_125
-happyReduction_125 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut56 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_126 = happyReduce 5# 38# happyReduction_126
-happyReduction_126 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn44
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_127 = happyReduce 6# 39# happyReduction_127
-happyReduction_127 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_128 = happyReduce 6# 39# happyReduction_128
-happyReduction_128 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_129 = happyReduce 6# 39# happyReduction_129
-happyReduction_129 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut46 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_130 = happyReduce 6# 39# happyReduction_130
-happyReduction_130 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut46 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_131 = happyReduce 6# 39# happyReduction_131
-happyReduction_131 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_132 = happyReduce 6# 39# happyReduction_132
-happyReduction_132 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex [] happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_133 = happyReduce 6# 39# happyReduction_133
-happyReduction_133 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex [] (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
-	) `HappyStk` happyRest}}}
-
-happyReduce_134 = happyReduce 5# 39# happyReduction_134
-happyReduction_134 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex [] (RVar happy_var_3 happy_var_4 (MN "X" 0)))
-                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
-	) `HappyStk` happyRest}}
-
-happyReduce_135 = happyReduce 5# 39# happyReduction_135
-happyReduction_135 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                   (RBind (MN "X" 1) (Lam RPlaceholder)
-                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
-                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
-                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
-	) `HappyStk` happyRest}}
-
-happyReduce_136 = happyReduce 6# 39# happyReduction_136
-happyReduction_136 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [happy_var_2,
-                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
-	) `HappyStk` happyRest}}}
-
-happyReduce_137 = happyReduce 6# 39# happyReduction_137
-happyReduction_137 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
-	) `HappyStk` happyRest}}}
-
-happyReduce_138 = happySpecReduce_1  40# happyReduction_138
-happyReduction_138 happy_x_1
-	 =  happyIn46
-		 ("<"
-	)
-
-happyReduce_139 = happySpecReduce_1  40# happyReduction_139
-happyReduction_139 happy_x_1
-	 =  happyIn46
-		 (">"
-	)
-
-happyReduce_140 = happySpecReduce_0  41# happyReduction_140
-happyReduction_140  =  happyIn47
-		 (RPlaceholder
-	)
-
-happyReduce_141 = happySpecReduce_2  41# happyReduction_141
-happyReduction_141 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn47
-		 (happy_var_2
-	)}
-
-happyReduce_142 = happySpecReduce_0  42# happyReduction_142
-happyReduction_142  =  happyIn48
-		 (RPlaceholder
-	)
-
-happyReduce_143 = happySpecReduce_2  42# happyReduction_143
-happyReduction_143 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (happy_var_2
-	)}
-
-happyReduce_144 = happyReduce 5# 43# happyReduction_144
-happyReduction_144 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_2 of { happy_var_2 -> 
-	case happyOut49 happy_x_5 of { happy_var_5 -> 
-	happyIn49
-		 (doBind (Pi Im []) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_145 = happySpecReduce_1  43# happyReduction_145
-happyReduction_145 happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	happyIn49
-		 (happy_var_1
-	)}
-
-happyReduce_146 = happySpecReduce_3  44# happyReduction_146
-happyReduction_146 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
-	)}}
-
-happyReduce_147 = happyReduce 6# 44# happyReduction_147
-happyReduction_147 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut52 happy_x_4 of { happy_var_4 -> 
-	case happyOut50 happy_x_6 of { happy_var_6 -> 
-	happyIn50
-		 (doBind (Pi Ex happy_var_4) happy_var_2 happy_var_6
-	) `HappyStk` happyRest}}}
-
-happyReduce_148 = happyReduce 5# 44# happyReduction_148
-happyReduction_148 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (doBind (Pi Ex [Lazy]) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_149 = happySpecReduce_3  44# happyReduction_149
-happyReduction_149 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (bracket happy_var_2
-	)}
-
-happyReduce_150 = happyReduce 7# 44# happyReduction_150
-happyReduction_150 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn50
-		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_151 = happySpecReduce_1  44# happyReduction_151
-happyReduction_151 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_152 = happySpecReduce_3  44# happyReduction_152
-happyReduction_152 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (happy_var_2
-	)}
-
-happyReduce_153 = happyReduce 5# 44# happyReduction_153
-happyReduction_153 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_154 = happyReduce 5# 44# happyReduction_154
-happyReduction_154 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut55 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_155 = happySpecReduce_1  44# happyReduction_155
-happyReduction_155 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_156 = happySpecReduce_1  45# happyReduction_156
-happyReduction_156 happy_x_1
-	 =  happyIn51
-		 (Lazy
-	)
-
-happyReduce_157 = happySpecReduce_1  45# happyReduction_157
-happyReduction_157 happy_x_1
-	 =  happyIn51
-		 (Static
-	)
-
-happyReduce_158 = happySpecReduce_3  46# happyReduction_158
-happyReduction_158 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
-	happyIn52
-		 (happy_var_2
-	)}
-
-happyReduce_159 = happySpecReduce_0  46# happyReduction_159
-happyReduction_159  =  happyIn52
-		 ([]
-	)
-
-happyReduce_160 = happySpecReduce_3  47# happyReduction_160
-happyReduction_160 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_161 = happySpecReduce_1  47# happyReduction_161
-happyReduction_161 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 ([happy_var_1]
-	)}
-
-happyReduce_162 = happyReduce 8# 48# happyReduction_162
-happyReduction_162 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_7 of { happy_var_7 -> 
-	case happyOut79 happy_x_8 of { happy_var_8 -> 
-	happyIn54
-		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_163 = happySpecReduce_3  49# happyReduction_163
-happyReduction_163 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_164 = happySpecReduce_3  49# happyReduction_164
-happyReduction_164 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_165 = happySpecReduce_3  50# happyReduction_165
-happyReduction_165 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_166 = happySpecReduce_3  50# happyReduction_166
-happyReduction_166 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RReturn happy_var_2 happy_var_3
-	)}}
-
-happyReduce_167 = happySpecReduce_3  50# happyReduction_167
-happyReduction_167 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn56
-		 (bracket happy_var_2
-	)}
-
-happyReduce_168 = happySpecReduce_2  50# happyReduction_168
-happyReduction_168 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_2 of { happy_var_2 -> 
-	happyIn56
-		 (RPure happy_var_2
-	)}
-
-happyReduce_169 = happySpecReduce_1  50# happyReduction_169
-happyReduction_169 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
-	happyIn56
-		 (RMetavar happy_var_1
-	)}
-
-happyReduce_170 = happyReduce 4# 50# happyReduction_170
-happyReduction_170 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn56
-		 (RExpVar happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_171 = happySpecReduce_3  50# happyReduction_171
-happyReduction_171 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_172 = happySpecReduce_1  50# happyReduction_172
-happyReduction_172 happy_x_1
-	 =  happyIn56
-		 (RRefl
-	)
-
-happyReduce_173 = happySpecReduce_3  50# happyReduction_173
-happyReduction_173 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_174 = happySpecReduce_3  50# happyReduction_174
-happyReduction_174 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_175 = happySpecReduce_1  50# happyReduction_175
-happyReduction_175 happy_x_1
-	 =  happyIn56
-		 (RPlaceholder
-	)
-
-happyReduce_176 = happySpecReduce_1  50# happyReduction_176
-happyReduction_176 happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (RDo happy_var_1
-	)}
-
-happyReduce_177 = happySpecReduce_3  50# happyReduction_177
-happyReduction_177 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn56
-		 (RIdiom happy_var_2
-	)}
-
-happyReduce_178 = happyReduce 5# 50# happyReduction_178
-happyReduction_178 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn56
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_179 = happySpecReduce_1  50# happyReduction_179
-happyReduction_179 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (happy_var_1
-	)}
-
-happyReduce_180 = happySpecReduce_1  50# happyReduction_180
-happyReduction_180 happy_x_1
-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (happy_var_1
-	)}
-
-happyReduce_181 = happySpecReduce_1  50# happyReduction_181
-happyReduction_181 happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (happy_var_1
-	)}
-
-happyReduce_182 = happyReduce 7# 51# happyReduction_182
-happyReduction_182 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_6 of { happy_var_6 -> 
-	case happyOut79 happy_x_7 of { happy_var_7 -> 
-	happyIn57
-		 (RApp happy_var_6 happy_var_7 (RApp happy_var_6 happy_var_7 (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_183 = happyReduce 5# 51# happyReduction_183
-happyReduction_183 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn57
-		 (RApp happy_var_4 happy_var_5 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_184 = happySpecReduce_3  52# happyReduction_184
-happyReduction_184 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn58
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_185 = happySpecReduce_3  52# happyReduction_185
-happyReduction_185 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut58 happy_x_3 of { happy_var_3 -> 
-	happyIn58
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_186 = happyReduce 4# 53# happyReduction_186
-happyReduction_186 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut60 happy_x_3 of { happy_var_3 -> 
-	happyIn59
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_187 = happyReduce 10# 53# happyReduction_187
-happyReduction_187 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_6 of { happy_var_6 -> 
-	case happyOut79 happy_x_7 of { happy_var_7 -> 
-	case happyOut60 happy_x_9 of { happy_var_9 -> 
-	happyIn59
-		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_188 = happySpecReduce_2  54# happyReduction_188
-happyReduction_188 happy_x_2
-	happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	case happyOut60 happy_x_2 of { happy_var_2 -> 
-	happyIn60
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_189 = happySpecReduce_1  54# happyReduction_189
-happyReduction_189 happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	happyIn60
-		 ([happy_var_1]
-	)}
-
-happyReduce_190 = happyReduce 7# 55# happyReduction_190
-happyReduction_190 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn61
-		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_191 = happyReduce 8# 55# happyReduction_191
-happyReduction_191 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_6 of { happy_var_6 -> 
-	case happyOut79 happy_x_7 of { happy_var_7 -> 
-	happyIn61
-		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_192 = happyReduce 4# 55# happyReduction_192
-happyReduction_192 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn61
-		 (DoExp happy_var_2 happy_var_3 happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_193 = happySpecReduce_1  56# happyReduction_193
-happyReduction_193 happy_x_1
-	 =  happyIn62
-		 (TYPE
-	)
-
-happyReduce_194 = happySpecReduce_1  56# happyReduction_194
-happyReduction_194 happy_x_1
-	 =  happyIn62
-		 (StringType
-	)
-
-happyReduce_195 = happySpecReduce_1  56# happyReduction_195
-happyReduction_195 happy_x_1
-	 =  happyIn62
-		 (IntType
-	)
-
-happyReduce_196 = happySpecReduce_1  56# happyReduction_196
-happyReduction_196 happy_x_1
-	 =  happyIn62
-		 (CharType
-	)
-
-happyReduce_197 = happySpecReduce_1  56# happyReduction_197
-happyReduction_197 happy_x_1
-	 =  happyIn62
-		 (FloatType
-	)
-
-happyReduce_198 = happySpecReduce_1  56# happyReduction_198
-happyReduction_198 happy_x_1
-	 =  happyIn62
-		 (PtrType
-	)
-
-happyReduce_199 = happySpecReduce_1  56# happyReduction_199
-happyReduction_199 happy_x_1
-	 =  happyIn62
-		 (Builtin "Handle"
-	)
-
-happyReduce_200 = happySpecReduce_1  56# happyReduction_200
-happyReduction_200 happy_x_1
-	 =  happyIn62
-		 (Builtin "Lock"
-	)
-
-happyReduce_201 = happySpecReduce_1  56# happyReduction_201
-happyReduction_201 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
-	happyIn62
-		 (Num happy_var_1
-	)}
-
-happyReduce_202 = happySpecReduce_1  56# happyReduction_202
-happyReduction_202 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
-	happyIn62
-		 (Ch happy_var_1
-	)}
-
-happyReduce_203 = happySpecReduce_1  56# happyReduction_203
-happyReduction_203 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
-	happyIn62
-		 (Str happy_var_1
-	)}
-
-happyReduce_204 = happySpecReduce_1  56# happyReduction_204
-happyReduction_204 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
-	happyIn62
-		 (Bo happy_var_1
-	)}
-
-happyReduce_205 = happySpecReduce_1  56# happyReduction_205
-happyReduction_205 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
-	happyIn62
-		 (Fl happy_var_1
-	)}
-
-happyReduce_206 = happySpecReduce_0  57# happyReduction_206
-happyReduction_206  =  happyIn63
-		 ([]
-	)
-
-happyReduce_207 = happySpecReduce_2  57# happyReduction_207
-happyReduction_207 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut63 happy_x_2 of { happy_var_2 -> 
-	happyIn63
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_208 = happyReduce 4# 58# happyReduction_208
-happyReduction_208 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut49 happy_x_2 of { happy_var_2 -> 
-	case happyOut65 happy_x_3 of { happy_var_3 -> 
-	happyIn64
-		 ((happy_var_2, happy_var_3)
-	) `HappyStk` happyRest}}
-
-happyReduce_209 = happySpecReduce_3  58# happyReduction_209
-happyReduction_209 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn64
-		 ((RConst happy_var_2 happy_var_3 TYPE, [])
-	)}}
-
-happyReduce_210 = happyReduce 4# 58# happyReduction_210
-happyReduction_210 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut71 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn64
-		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
-	) `HappyStk` happyRest}}}
-
-happyReduce_211 = happySpecReduce_0  59# happyReduction_211
-happyReduction_211  =  happyIn65
-		 ([]
-	)
-
-happyReduce_212 = happyReduce 4# 59# happyReduction_212
-happyReduction_212 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
-	happyIn65
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_213 = happyReduce 7# 60# happyReduction_213
-happyReduction_213 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_6 of { happy_var_6 -> 
-	happyIn66
-		 ((happy_var_4,happy_var_6)
-	) `HappyStk` happyRest}}
-
-happyReduce_214 = happyReduce 6# 61# happyReduction_214
-happyReduction_214 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	happyIn67
-		 ((happy_var_3,happy_var_5)
-	) `HappyStk` happyRest}}
-
-happyReduce_215 = happyReduce 4# 62# happyReduction_215
-happyReduction_215 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
-	happyIn68
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_216 = happySpecReduce_2  63# happyReduction_216
-happyReduction_216 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn69
-		 (happy_var_2
-	)}
-
-happyReduce_217 = happySpecReduce_3  64# happyReduction_217
-happyReduction_217 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 ([(happy_var_1, happy_var_3)]
-	)}}
-
-happyReduce_218 = happyReduce 5# 64# happyReduction_218
-happyReduction_218 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut70 happy_x_5 of { happy_var_5 -> 
-	happyIn70
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_219 = happySpecReduce_1  65# happyReduction_219
-happyReduction_219 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn71
-		 ([happy_var_1]
-	)}
-
-happyReduce_220 = happySpecReduce_2  65# happyReduction_220
-happyReduction_220 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut71 happy_x_2 of { happy_var_2 -> 
-	happyIn71
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_221 = happySpecReduce_1  66# happyReduction_221
-happyReduction_221 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 (happy_var_1
-	)}
-
-happyReduce_222 = happySpecReduce_1  66# happyReduction_222
-happyReduction_222 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 (happy_var_1
-	)}
-
-happyReduce_223 = happySpecReduce_0  67# happyReduction_223
-happyReduction_223  =  happyIn73
-		 ([]
-	)
-
-happyReduce_224 = happySpecReduce_1  67# happyReduction_224
-happyReduction_224 happy_x_1
-	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
-	happyIn73
-		 ([happy_var_1]
-	)}
-
-happyReduce_225 = happySpecReduce_3  67# happyReduction_225
-happyReduction_225 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn73
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_226 = happySpecReduce_2  68# happyReduction_226
-happyReduction_226 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut75 happy_x_2 of { happy_var_2 -> 
-	happyIn74
-		 (Full happy_var_1 happy_var_2
-	)}}
-
-happyReduce_227 = happySpecReduce_2  68# happyReduction_227
-happyReduction_227 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut63 happy_x_2 of { happy_var_2 -> 
-	happyIn74
-		 (Simple happy_var_1 happy_var_2
-	)}}
-
-happyReduce_228 = happySpecReduce_2  69# happyReduction_228
-happyReduction_228 happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn75
-		 (happy_var_2
-	)}
-
-happyReduce_229 = happySpecReduce_2  70# happyReduction_229
-happyReduction_229 happy_x_2
-	happy_x_1
-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Intro happy_var_2
-	)}
-
-happyReduce_230 = happySpecReduce_1  70# happyReduction_230
-happyReduction_230 happy_x_1
-	 =  happyIn76
-		 (Intro []
-	)
-
-happyReduce_231 = happySpecReduce_2  70# happyReduction_231
-happyReduction_231 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Refine happy_var_2
-	)}
-
-happyReduce_232 = happySpecReduce_2  70# happyReduction_232
-happyReduction_232 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Exists happy_var_2
-	)}
-
-happyReduce_233 = happySpecReduce_2  70# happyReduction_233
-happyReduction_233 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Generalise happy_var_2
-	)}
-
-happyReduce_234 = happySpecReduce_1  70# happyReduction_234
-happyReduction_234 happy_x_1
-	 =  happyIn76
-		 (ReflP
-	)
-
-happyReduce_235 = happySpecReduce_2  70# happyReduction_235
-happyReduction_235 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Rewrite False False happy_var_2
-	)}
-
-happyReduce_236 = happySpecReduce_3  70# happyReduction_236
-happyReduction_236 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn76
-		 (Rewrite False True happy_var_3
-	)}
-
-happyReduce_237 = happySpecReduce_2  70# happyReduction_237
-happyReduction_237 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Rewrite True False happy_var_2
-	)}
-
-happyReduce_238 = happySpecReduce_3  70# happyReduction_238
-happyReduction_238 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn76
-		 (Rewrite True True happy_var_3
-	)}
-
-happyReduce_239 = happySpecReduce_1  70# happyReduction_239
-happyReduction_239 happy_x_1
-	 =  happyIn76
-		 (Compute
-	)
-
-happyReduce_240 = happySpecReduce_2  70# happyReduction_240
-happyReduction_240 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Unfold happy_var_2
-	)}
-
-happyReduce_241 = happySpecReduce_1  70# happyReduction_241
-happyReduction_241 happy_x_1
-	 =  happyIn76
-		 (Undo
-	)
-
-happyReduce_242 = happySpecReduce_2  70# happyReduction_242
-happyReduction_242 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Induction happy_var_2
-	)}
-
-happyReduce_243 = happySpecReduce_2  70# happyReduction_243
-happyReduction_243 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Fill happy_var_2
-	)}
-
-happyReduce_244 = happySpecReduce_1  70# happyReduction_244
-happyReduction_244 happy_x_1
-	 =  happyIn76
-		 (Trivial
-	)
-
-happyReduce_245 = happySpecReduce_2  70# happyReduction_245
-happyReduction_245 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (RunTactic happy_var_2
-	)}
-
-happyReduce_246 = happySpecReduce_2  70# happyReduction_246
-happyReduction_246 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Believe happy_var_2
-	)}
-
-happyReduce_247 = happySpecReduce_2  70# happyReduction_247
-happyReduction_247 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Use happy_var_2
-	)}
-
-happyReduce_248 = happySpecReduce_2  70# happyReduction_248
-happyReduction_248 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Decide happy_var_2
-	)}
-
-happyReduce_249 = happySpecReduce_1  70# happyReduction_249
-happyReduction_249 happy_x_1
-	 =  happyIn76
-		 (Abandon
-	)
-
-happyReduce_250 = happySpecReduce_1  70# happyReduction_250
-happyReduction_250 happy_x_1
-	 =  happyIn76
-		 (ProofTerm
-	)
-
-happyReduce_251 = happySpecReduce_1  70# happyReduction_251
-happyReduction_251 happy_x_1
-	 =  happyIn76
-		 (Qed
-	)
-
-happyReduce_252 = happyReduce 4# 71# happyReduction_252
-happyReduction_252 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut78 happy_x_3 of { happy_var_3 -> 
-	happyIn77
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_253 = happySpecReduce_2  72# happyReduction_253
-happyReduction_253 happy_x_2
-	happy_x_1
-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
-	happyIn78
-		 ([happy_var_1]
-	)}
-
-happyReduce_254 = happySpecReduce_3  72# happyReduction_254
-happyReduction_254 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
-	case happyOut78 happy_x_3 of { happy_var_3 -> 
-	happyIn78
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_255 = happyMonadReduce 0# 73# happyReduction_255
-happyReduction_255 (happyRest) tk
-	 = happyThen (( getLineNo)
-	) (\r -> happyReturn (happyIn79 r))
-
-happyReduce_256 = happyMonadReduce 0# 74# happyReduction_256
-happyReduction_256 (happyRest) tk
-	 = happyThen (( getFileName)
-	) (\r -> happyReturn (happyIn80 r))
-
-happyReduce_257 = happyMonadReduce 0# 75# happyReduction_257
-happyReduction_257 (happyRest) tk
-	 = happyThen (( getOps)
-	) (\r -> happyReturn (happyIn81 r))
-
-happyNewToken action sts stk
-	= lexer(\tk -> 
-	let cont i = happyDoAction i tk action sts stk in
-	case tk of {
-	TokenEOF -> happyDoAction 120# tk action sts stk;
-	TokenName happy_dollar_dollar -> cont 1#;
-	TokenInfixName happy_dollar_dollar -> cont 2#;
-	TokenBrackName happy_dollar_dollar -> cont 3#;
-	TokenString happy_dollar_dollar -> cont 4#;
-	TokenInt happy_dollar_dollar -> cont 5#;
-	TokenFloat happy_dollar_dollar -> cont 6#;
-	TokenChar happy_dollar_dollar -> cont 7#;
-	TokenBool happy_dollar_dollar -> cont 8#;
-	TokenMetavar happy_dollar_dollar -> cont 9#;
-	TokenColon -> cont 10#;
-	TokenSemi -> cont 11#;
-	TokenBar -> cont 12#;
-	TokenStars -> cont 13#;
-	TokenLambda -> cont 14#;
-	TokenHashOB -> cont 15#;
-	TokenOB -> cont 16#;
-	TokenCB -> cont 17#;
-	TokenOCB -> cont 18#;
-	TokenCCB -> cont 19#;
-	TokenOSB -> cont 20#;
-	TokenCSB -> cont 21#;
-	TokenOId -> cont 22#;
-	TokenCId -> cont 23#;
-	TokenLPair -> cont 24#;
-	TokenRPair -> cont 25#;
-	TokenExists -> cont 26#;
-	TokenTilde -> cont 27#;
-	TokenPlus -> cont 28#;
-	TokenMinus -> cont 29#;
-	TokenTimes -> cont 30#;
-	TokenDivide -> cont 31#;
-	TokenEquals -> cont 32#;
-	TokenMightEqual -> cont 33#;
-	TokenLT -> cont 34#;
-	TokenGT -> cont 35#;
-	TokenEllipsis -> cont 36#;
-	TokenUnderscore -> cont 37#;
-	TokenComma -> cont 38#;
-	TokenTuple -> cont 39#;
-	TokenBang -> cont 40#;
-	TokenConcat -> cont 41#;
-	TokenGE -> cont 42#;
-	TokenLE -> cont 43#;
-	TokenOr -> cont 44#;
-	TokenAnd -> cont 45#;
-	TokenArrow -> cont 46#;
-	TokenFatArrow -> cont 47#;
-	TokenTransArrow -> cont 48#;
-	TokenLeftArrow -> cont 49#;
-	TokenIntType -> cont 50#;
-	TokenCharType -> cont 51#;
-	TokenFloatType -> cont 52#;
-	TokenStringType -> cont 53#;
-	TokenHandleType -> cont 54#;
-	TokenPtrType -> cont 55#;
-	TokenLockType -> cont 56#;
-	TokenType -> cont 57#;
-	TokenLazyBracket -> cont 58#;
-	TokenDataType -> cont 59#;
-	TokenInfix -> cont 60#;
-	TokenInfixL -> cont 61#;
-	TokenInfixR -> cont 62#;
-	TokenUsing -> cont 63#;
-	TokenIdiom -> cont 64#;
-	TokenParams -> cont 65#;
-	TokenNamespace -> cont 66#;
-	TokenPublic -> cont 67#;
-	TokenPrivate -> cont 68#;
-	TokenAbstract -> cont 69#;
-	TokenNoElim -> cont 70#;
-	TokenCollapsible -> cont 71#;
-	TokenWhere -> cont 72#;
-	TokenWith -> cont 73#;
-	TokenPartial -> cont 74#;
-	TokenSyntax -> cont 75#;
-	TokenLazy -> cont 76#;
-	TokenStatic -> cont 77#;
-	TokenRefl -> cont 78#;
-	TokenEmptyType -> cont 79#;
-	TokenUnitType -> cont 80#;
-	TokenInclude -> cont 81#;
-	TokenExport -> cont 82#;
-	TokenInline -> cont 83#;
-	TokenDo -> cont 84#;
-	TokenReturn -> cont 85#;
-	TokenIf -> cont 86#;
-	TokenThen -> cont 87#;
-	TokenElse -> cont 88#;
-	TokenLet -> cont 89#;
-	TokenIn -> cont 90#;
-	TokenProof -> cont 91#;
-	TokenIntro -> cont 92#;
-	TokenRefine -> cont 93#;
-	TokenGeneralise -> cont 94#;
-	TokenReflP -> cont 95#;
-	TokenRewrite -> cont 96#;
-	TokenRewriteAll -> cont 97#;
-	TokenCompute -> cont 98#;
-	TokenUnfold -> cont 99#;
-	TokenUndo -> cont 100#;
-	TokenInduction -> cont 101#;
-	TokenFill -> cont 102#;
-	TokenTrivial -> cont 103#;
-	TokenMkTac -> cont 104#;
-	TokenBelieve -> cont 105#;
-	TokenUse -> cont 106#;
-	TokenDecide -> cont 107#;
-	TokenAbandon -> cont 108#;
-	TokenProofTerm -> cont 109#;
-	TokenQED -> cont 110#;
-	TokenLaTeX -> cont 111#;
-	TokenNoCG -> cont 112#;
-	TokenEval -> cont 113#;
-	TokenSpec -> cont 114#;
-	TokenFreeze -> cont 115#;
-	TokenThaw -> cont 116#;
-	TokenTransform -> cont 117#;
-	TokenCInclude -> cont 118#;
-	TokenCLib -> cont 119#;
-	_ -> happyError' tk
-	})
-
-happyError_ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (thenP)
-happyReturn :: () => a -> P a
-happyReturn = (returnP)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => (Token) -> P a
-happyError' tk = (\token -> happyError) tk
-
-mkparse = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
-
-mkparseTerm = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
-
-mkparseTactic = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut76 x))
-
-happySeq = happyDontSeq
-
-
-data ConParse = Full Id RawTerm
-              | Simple Id [RawTerm]
-
-parse :: String -> FilePath -> Result [Decl]
-parse s fn = do ds <- mkparse s fn 1 []
-                collectDecls ds
-
-processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
-                  IO ([Decl], [FilePath])
-processImports opts imped (Success ds) = pi imped [] ds
-  where pi imps decls ((PInclude fp):xs)
-           | fp `elem` imps = pi imps decls xs
-           | otherwise = do
-                 f <- readLibFile defaultLibPath fp
-                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
-                 case parse f fp of
-                   Success t -> pi (fp:imps) decls (t++xs)
-                   Failure e f l ->
-                     fail $ f ++ ":" ++ show l ++ ":" ++ e
-        pi imps decls ((Using t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Using t ds']) xs
-        pi imps decls ((Params t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Params t ds']) xs
-        pi imps decls ((DoUsing b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[DoUsing b r ds']) xs
-        pi imps decls ((Idiom b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Idiom b r ds']) xs
-        pi imps decls ((Namespace n ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Namespace n ds']) xs
-        pi imps decls (x:xs) = pi imps (decls++[x]) xs
-        pi imps decls [] = return (decls, imps)
-
-processImports _ imped (Failure e f l) 
-    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
-
-
-parseTerm :: String -> Result RawTerm
-parseTerm s = mkparseTerm s "(input)" 0 []
-
-parseTactic :: String -> Result ITactic
-parseTactic s = mkparseTactic s "(tactic)" 0 []
-
-mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
-mkCon _ (Full n t) = (n,t)
-mkCon ty (Simple n args) = (n, mkConTy args ty)
-   where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex [] a) (mkConTy as ty)
-
-mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
-   where mkImpApp f [] = f
-         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
-         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
-
-doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
-doBind b [] t = t
-doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
-
-doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
-doLetBind [] t = t
-doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
-
-mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
-mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
-   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
-         getTyArgs x = []
-
-mkTyParams :: String -> Int -> [Id] -> RawTerm
-mkTyParams f l [] = RConst f l TYPE
-mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
-
-mkDatatype :: String -> Int ->
-              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
-                    [TyOpt] -> Datatype
-mkDatatype file line n (Right ((t, using), cons)) opts
-    = Datatype n t (map (mkCon (mkTyApp file line n t)) cons) using opts file line 
-mkDatatype file line n (Left t) opts
-    = Latatype n t file line
-
-bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
-bracket x = x
-
-pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
-pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
-pairDesugar file line pair (x:y:xs) 
-    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
-
-sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
-sigDesugar file line (n, tm) sc
-    = mkApp file line (RVar file line (UN "Sigma")) [tm, lam]
-   where lam = RBind n (Lam tm) sc
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command line>" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
-
-{-# LINE 28 "templates/GenericTemplate.hs" #-}
-
-
-data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
-
-
-
-
-
-{-# LINE 49 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 59 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 68 "templates/GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 0#, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
-	happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) = 
-	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-happyDoAction i tk st
-	= {- nothing -}
-
-
-	  case action of
-		0#		  -> {- nothing -}
-				     happyFail i tk st
-		-1# 	  -> {- nothing -}
-				     happyAccept i tk st
-		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
-
-				     (happyReduceArr Happy_Data_Array.! rule) i tk st
-				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
-		n		  -> {- nothing -}
-
-
-				     happyShift new_state i tk st
-				     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
-   where off    = indexShortOffAddr happyActOffsets st
-	 off_i  = (off Happy_GHC_Exts.+# i)
-	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
-			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
-			else False
- 	 action | check     = indexShortOffAddr happyTable off_i
-		| otherwise = indexShortOffAddr happyDefActions st
-
-{-# LINE 127 "templates/GenericTemplate.hs" #-}
-
-
-indexShortOffAddr (HappyA# arr) off =
-#if __GLASGOW_HASKELL__ > 500
-	Happy_GHC_Exts.narrow16Int# i
-#elif __GLASGOW_HASKELL__ == 500
-	Happy_GHC_Exts.intToInt16# i
-#else
-	Happy_GHC_Exts.iShiftRA# (Happy_GHC_Exts.iShiftL# i 16#) 16#
-#endif
-  where
-#if __GLASGOW_HASKELL__ >= 503
-	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
-#else
-	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.shiftL# high 8#) low)
-#endif
-	high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
-	low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
-	off' = off Happy_GHC_Exts.*# 2#
-
-
-
-
-
-data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-{-# LINE 170 "templates/GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
---     trace "shifting the error token" $
-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
-	 sts1@((HappyCons (st1@(action)) (_))) ->
-        	let r = fn stk in  -- it doesn't hurt to always seq here...
-       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-happyMonad2Reduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-             off    = indexShortOffAddr happyGotoOffsets st1
-             off_i  = (off Happy_GHC_Exts.+# nt)
-             new_state = indexShortOffAddr happyTable off_i
-
-
-
-
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-happyGoto nt j tk st = 
-   {- nothing -}
-   happyDoAction j tk new_state
-   where off    = indexShortOffAddr happyGotoOffsets st
-	 off_i  = (off Happy_GHC_Exts.+# nt)
- 	 new_state = indexShortOffAddr happyTable off_i
+import qualified Data.Array as Happy_Data_Array
+import qualified GHC.Exts as Happy_GHC_Exts
+
+-- parser produced by Happy Version 1.18.5
+
+newtype HappyAbsSyn t74 = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t74)
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn t74) -> ([ParseDecl])
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: (ParseDecl) -> (HappyAbsSyn t74)
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn t74) -> (ParseDecl)
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: (Decl) -> (HappyAbsSyn t74)
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn t74) -> (Decl)
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: (ParseDecl) -> (HappyAbsSyn t74)
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn t74) -> (ParseDecl)
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: (CGFlag) -> (HappyAbsSyn t74)
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn t74) -> (CGFlag)
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: (Bool) -> (HappyAbsSyn t74)
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn t74) -> (Bool)
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t74)
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn t74) -> ([ParseDecl])
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t74)
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn t74) -> ([CGFlag])
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t74)
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn t74) -> ([CGFlag])
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t74)
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn t74) -> ([CGFlag])
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: ([Decl]) -> (HappyAbsSyn t74)
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn t74) -> ([Decl])
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: ([String]) -> (HappyAbsSyn t74)
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn t74) -> ([String])
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: (String) -> (HappyAbsSyn t74)
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn t74) -> (String)
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: (Fixity) -> (HappyAbsSyn t74)
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn t74) -> (Fixity)
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: (Decl) -> (HappyAbsSyn t74)
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn t74) -> (Decl)
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t74)
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn t74) -> ([(Id,String)])
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t74)
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn t74) -> ((Id, [(RawTerm, Maybe Id)]))
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t74)
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn t74) -> ([(RawTerm,Maybe Id)])
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: (Datatype) -> (HappyAbsSyn t74)
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn t74) -> (Datatype)
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: (Bool) -> (HappyAbsSyn t74)
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn t74) -> (Bool)
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t74)
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn t74) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t74)
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn t74) -> ([TyOpt])
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: ([TyOpt]) -> (HappyAbsSyn t74)
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn t74) -> ([TyOpt])
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: (TyOpt) -> (HappyAbsSyn t74)
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn t74) -> (TyOpt)
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: (Id) -> (HappyAbsSyn t74)
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn t74) -> (Id)
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn t74) -> ([Id])
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: ([(Id, Int)]) -> (HappyAbsSyn t74)
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn t74) -> ([(Id, Int)])
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn t74) -> ([Id])
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn t74) -> ([Id])
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn t74) -> ([(Id, RawTerm, RawTerm)])
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: ((Id, RawTerm)) -> (HappyAbsSyn t74)
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn t74) -> ((Id, RawTerm))
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: (String) -> (HappyAbsSyn t74)
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn t74) -> (String)
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: (ArgOpt) -> (HappyAbsSyn t74)
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn t74) -> (ArgOpt)
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: ([ArgOpt]) -> (HappyAbsSyn t74)
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn t74) -> ([ArgOpt])
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: ([ArgOpt]) -> (HappyAbsSyn t74)
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn t74) -> ([ArgOpt])
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: ([Do]) -> (HappyAbsSyn t74)
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn t74) -> ([Do])
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: ([Do]) -> (HappyAbsSyn t74)
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn t74) -> ([Do])
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: (Do) -> (HappyAbsSyn t74)
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn t74) -> (Do)
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: (Constant) -> (HappyAbsSyn t74)
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn t74) -> (Constant)
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t74)
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn t74) -> ((RawTerm, [(Id, RawTerm)]))
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: ((Id,Id)) -> (HappyAbsSyn t74)
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn t74) -> ((Id,Id))
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: ((Id,Id)) -> (HappyAbsSyn t74)
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn t74) -> ((Id,Id))
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: (Id) -> (HappyAbsSyn t74)
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn t74) -> (Id)
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn t74) -> ([Id])
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: t74 -> (HappyAbsSyn t74)
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn t74) -> t74
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: ([ConParse]) -> (HappyAbsSyn t74)
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn t74) -> ([ConParse])
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (ConParse) -> (HappyAbsSyn t74)
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn t74) -> (ConParse)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: (ITactic) -> (HappyAbsSyn t74)
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn t74) -> (ITactic)
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyIn79 :: ([ITactic]) -> (HappyAbsSyn t74)
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn t74) -> ([ITactic])
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+happyIn80 :: ([ITactic]) -> (HappyAbsSyn t74)
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn t74) -> ([ITactic])
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+happyIn81 :: ([ITactic]) -> (HappyAbsSyn t74)
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn t74) -> ([ITactic])
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+happyIn82 :: (LineNumber) -> (HappyAbsSyn t74)
+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn82 #-}
+happyOut82 :: (HappyAbsSyn t74) -> (LineNumber)
+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut82 #-}
+happyIn83 :: (String) -> (HappyAbsSyn t74)
+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn83 #-}
+happyOut83 :: (HappyAbsSyn t74) -> (String)
+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut83 #-}
+happyIn84 :: (Fixities) -> (HappyAbsSyn t74)
+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn84 #-}
+happyOut84 :: (HappyAbsSyn t74) -> (Fixities)
+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut84 #-}
+happyInTok :: (Token) -> (HappyAbsSyn t74)
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn t74) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\x1c\x00\x66\x05\x63\x05\x00\x00\x4e\x04\x66\x05\xeb\x00\xeb\x00\x66\x05\x00\x00\x5c\x03\x05\x03\x00\x00\xeb\x00\x00\x00\x66\x05\x66\x05\x00\x00\x00\x00\x66\x05\x66\x05\x66\x05\x66\x05\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x00\xcb\x09\x57\x02\xea\x01\x66\x05\x66\x05\xb5\x08\x66\x05\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x05\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x66\x05\x19\x00\x48\x04\x01\x00\x00\x00\x00\x00\x01\x00\xb5\x04\x00\x00\xa9\x04\x00\x00\x8d\x04\xfe\x01\xa2\x04\x95\x04\x93\x04\x91\x04\x90\x04\x05\x0a\x1b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x04\x8e\x04\x82\x04\x19\x00\x19\x00\x8c\x04\x4c\x04\x79\x04\x87\x04\x66\x05\x83\x04\x81\x04\x00\x00\x00\x00\x3f\x01\x00\x00\x19\x00\x7a\x04\x78\x04\x19\x00\x00\x00\x19\x00\x19\x00\x19\x00\x70\x04\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\xfe\xff\x00\x00\x00\x00\xae\x02\x00\x00\x00\x00\x00\x00\x5f\x00\x5f\x00\x5f\x00\x5f\x00\x5f\x00\x00\x00\x72\x08\x77\x04\x02\x01\x91\x09\x6b\x04\x19\x00\xfb\x01\x2a\x00\x05\x0a\x1b\x02\x00\x00\x00\x00\x76\x04\x29\x04\xe4\x00\x00\x00\x71\x04\x0f\x05\x00\x00\x00\x00\x6f\x04\x00\x00\x6f\x04\x00\x00\x56\x06\xf2\x08\x00\x00\x63\x05\x63\x05\xb6\x01\x42\x07\xb8\x04\x69\x04\xb8\x04\xb8\x04\x65\x04\x5c\x04\xb8\x04\xb8\x04\x22\x0a\x35\x00\x00\x00\xb8\x04\x57\x09\x19\x00\x62\x04\x34\x04\x00\x00\xb5\x08\x4a\x04\x00\x00\xb8\x04\x2e\x04\xb8\x04\xb8\x04\xb8\x04\xb8\x04\xb8\x04\x00\x00\xc4\x01\xaf\x01\x9a\x01\x85\x01\x67\x01\x52\x01\x00\x00\x3d\x01\xb8\x04\x28\x01\xb8\x04\x0b\x01\x00\x00\x38\x04\x00\x00\xed\x00\x19\x00\x6a\x00\x03\x00\x00\x00\x49\x04\x49\x04\x49\x04\x49\x04\x49\x04\x00\x00\xb8\x04\x49\x04\xb5\x08\x00\x00\x00\x00\x00\x00\xb8\x04\x2a\x04\xcb\x09\x40\x04\x37\x04\x25\x04\x0d\x01\x36\x04\xae\x01\x22\x04\xc8\x07\xcb\x09\x00\x00\xcb\x09\xcb\x09\x28\x04\x00\x00\x6e\x08\x00\x00\x6e\x08\x00\x00\x6e\x08\x00\x00\x6e\x08\x00\x00\xb8\x04\x00\x00\xb8\x04\xb8\x04\xb8\x04\xb8\x04\xb8\x04\x27\x04\x26\x04\x24\x04\x20\x04\xb8\x04\x00\x00\x00\x00\xb8\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x6e\x08\x1d\x04\x61\x04\x19\x00\xfd\x03\x00\x00\x0a\x04\x0a\x04\x0d\x04\x21\x04\x04\x04\x1f\x04\x0a\x04\x0a\x04\x0a\x04\xcd\x03\x11\x04\xfe\x03\x00\x00\x00\x00\x96\x01\x63\x05\x19\x04\x14\x04\x05\x00\xf5\x03\x72\x08\x0a\x04\x00\x00\x00\x00\x03\x04\x02\x04\xf4\x03\xf3\x03\xf2\x03\x00\x00\x00\x00\xff\x06\xe8\x03\x00\x00\x00\x00\x0a\x04\x0a\x04\x0a\x04\x00\x00\xed\x03\xe4\x03\xce\x03\xe0\x03\x19\x00\xd3\x03\x01\x00\x19\x00\xd1\x03\xd0\x03\x00\x00\x0a\x04\x0b\x08\xd7\x03\xd9\x03\x00\x00\xb8\x03\x00\x00\x0a\x04\x00\x00\x00\x00\x19\x00\x00\x00\x91\x09\xa8\x04\x51\x04\xfa\x03\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x07\x00\x00\x19\x00\xc8\x03\xc6\x03\xcb\x09\xc4\x03\x00\x00\x19\x00\x19\x00\xba\x03\x91\x09\x00\x00\x00\x00\xfb\x01\x00\x00\x00\x00\xa3\x03\x9e\x02\x4c\x03\x00\x00\x1b\x02\x00\x00\x0a\x04\xcb\x00\x1e\x02\x0a\x04\xcb\x03\x00\x00\x00\x00\x00\x00\xa5\x03\x1d\x09\x00\x00\xf8\x08\xdc\x06\x00\x00\x13\x06\xbf\x03\x00\x00\x00\x00\x63\x05\xcb\x09\x00\x00\x83\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x03\x00\x00\xc1\x03\x00\x00\xb5\x08\x00\x00\xa1\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x09\xcb\x09\xb9\x03\x91\x09\x19\x00\x9e\x03\x91\x09\x05\x00\x19\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x08\xf8\x08\xf8\x08\xf8\x08\xf8\x08\xf8\x08\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x09\x00\x00\x65\x00\x96\x03\xec\x01\x0a\x01\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x08\x00\x00\xec\x07\x00\x00\xa9\x07\x00\x00\x66\x07\xb7\x03\xae\x03\xad\x03\xa4\x03\x9f\x03\x34\x00\x00\x00\x00\x00\x0a\x04\x00\x00\x00\x00\x0a\x04\x23\x07\x8f\x03\x6e\x08\x0a\x04\xc7\x01\x00\x00\xb9\x00\x8e\x03\x8c\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\xe0\x06\x93\x03\x90\x03\x00\x00\x00\x00\x00\x00\x05\x00\x6f\x03\x00\x00\xb9\x01\x00\x00\x00\x00\x9d\x06\x00\x00\xb9\x00\x00\x00\x77\x03\x5f\x03\x89\x03\x47\x02\x19\x00\x5d\x03\x00\x00\x00\x00\x19\x00\x88\x03\x00\x00\x00\x00\x19\x00\x19\x00\xb9\x00\x74\x03\x00\x00\x00\x00\x00\x00\x71\x03\xb9\x01\x7c\x03\x00\x00\x00\x00\x00\x00\x72\x03\x00\x00\x91\x09\x00\x00\x19\x00\x00\x00\xb5\x08\x00\x00\x00\x00\x91\x09\x00\x00\x36\x03\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x6b\x03\x19\x00\x7a\x03\x00\x00\x0a\x04\x00\x00\x6e\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x03\x66\x03\x00\x00\x00\x00\xcb\x09\x4a\x03\x4a\x03\x00\x00\xec\x01\x64\x03\x00\x00\x00\x00\x00\x00\xc7\x01\x5a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x03\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x60\x03\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x03\x00\x00\x17\x06\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x05\x55\x03\x00\x00\x00\x00\x00\x00\x33\x03\x19\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x27\x0b\xd1\x0f\x1f\x03\x00\x00\x00\x00\xbb\x0f\x5e\x01\x3e\x03\xa5\x0f\x00\x00\x8f\x0f\x79\x0f\x00\x00\x3d\x03\x00\x00\x63\x0f\x4d\x0f\x00\x00\x00\x00\x37\x0f\x21\x0f\x0b\x0f\xf5\x0e\x00\x00\x00\x00\x00\x00\xfe\x02\x4c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x01\x05\xcc\x04\xfa\x02\xdf\x0e\xc9\x0e\xfc\x0f\xb3\x0e\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x0e\x00\x00\xf9\x02\xf8\x02\x00\x00\xf5\x02\x87\x0e\x6b\x01\x00\x00\xf1\x0a\x00\x00\x00\x00\xd6\x0a\x00\x00\x00\x00\x2e\x03\x00\x00\x18\x03\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x20\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x03\x11\x03\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x01\xdc\x02\xa4\x01\x00\x00\x00\x00\x78\x01\x00\x00\x49\x01\x0e\x03\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x03\xd8\x02\x34\x01\x00\x00\xd7\x02\x23\x05\x00\x00\xd4\x02\xd1\x02\xcf\x0a\xb9\x0a\x83\x0a\x6d\x0a\x66\x0a\x00\x00\x9e\x08\x00\x00\x00\x00\xdb\x0b\x00\x00\x02\x03\x10\x02\x1a\x03\x15\x00\x11\x02\x00\x00\x00\x00\xf0\x02\x00\x00\x32\x01\xcc\x02\xed\x02\x43\x0b\xca\x02\xc6\x02\x2e\x01\xb3\x02\x29\x01\x00\x00\x1f\x01\x1f\x01\xbb\x02\xdd\x01\xc9\x01\x1d\x00\x60\x00\x5b\x0e\x00\x00\x45\x0e\x2f\x0e\x00\x00\x00\x00\x75\x04\x1e\x04\x11\x01\x00\x00\x00\x00\x19\x0e\xde\x01\xfd\x01\xab\x02\x00\x00\xb6\x02\xf4\x0f\x00\x00\xb5\x02\x03\x0e\xa7\x02\xed\x0d\xd7\x0d\xc1\x0d\xab\x0d\x95\x0d\xa6\x02\x04\x01\x04\x01\x04\x01\x04\x01\x04\x01\x04\x01\x00\x00\x04\x01\x7f\x0d\x04\x01\x69\x0d\x04\x01\x00\x00\x00\x00\x00\x00\x04\x01\x15\x01\x04\x01\x04\x01\x00\x00\x00\x01\xfc\x00\xe3\x00\xdf\x00\xd0\x00\xa4\x02\x53\x0d\xc6\x00\xe7\x0f\xa1\x02\x9f\x02\x00\x00\x3d\x0d\x00\x00\xca\x04\x00\x00\x00\x00\x00\x00\xe1\xff\x00\x00\x00\x00\x00\x00\xc4\x00\x73\x04\x00\x00\x1c\x04\xc5\x03\x00\x00\x91\x02\xbc\x00\x88\x02\xa7\x00\x7e\x02\x9d\x00\x85\x02\x8e\x00\x82\x02\xc7\x03\x00\x00\x70\x03\x27\x0d\x11\x0d\xc2\x02\x19\x03\x00\x00\x00\x00\x00\x00\x00\x00\x85\x0b\x00\x00\x81\x02\xfb\x0c\x7b\x02\x77\x02\x73\x02\x00\x00\x00\x00\xde\xff\x8d\x00\x00\x00\x1e\x0b\x1a\x01\x00\x00\x00\x00\xe5\x0c\xcf\x0c\x00\x00\x00\x00\x00\x00\xb4\x02\xb9\x0c\xa3\x0c\x8d\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xff\x9b\x01\x8e\x02\x00\x00\x00\x00\x00\x00\x38\x08\x77\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x02\x5f\x02\x87\x00\x00\x00\x5e\x02\x59\x02\x61\x0c\x4b\x0c\x35\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x4b\x0a\x89\x02\x00\x00\x00\x00\x53\x02\x1f\x0c\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x0c\x00\x00\x00\x00\x7d\x02\x00\x00\xaf\x0b\x87\x00\x87\x00\x87\x00\x00\x00\x00\x00\x51\x02\x00\x00\x6f\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x50\x02\xfb\xff\x8a\x02\x00\x00\x6e\x03\x00\x00\x4f\x02\xea\xff\x3b\x00\x00\x00\x83\x0b\x4e\x02\x4b\x02\xd7\x01\x00\x00\x00\x00\x87\x00\x87\x00\x87\x00\x00\x00\x9c\x01\x00\x00\xf3\x0b\x87\x00\x87\x00\xdd\x0b\x54\x02\x00\x00\x00\x00\x4a\x02\x00\x00\xd6\x0f\x00\x00\xd6\x0f\x87\x00\x48\x02\x87\x00\x00\x00\x00\x00\x00\x00\x71\x01\x17\x03\x46\x02\x87\x00\x00\x00\x45\x02\x3b\x02\x3a\x02\x38\x02\x35\x02\x2f\x02\x2c\x02\x00\x00\x27\x02\x00\x00\x1c\x02\xcc\x0f\x23\x02\x00\x00\x1f\x02\x16\x02\x00\x00\x15\x02\x00\x00\xf6\x02\x68\x02\x32\x02\x57\x0b\xc1\x01\x00\x00\x12\x0b\x00\x00\xa2\x00\x87\x00\x0b\x02\x0a\x02\x00\x00\x09\x02\x87\x00\x00\x00\x05\x02\x04\x02\xff\x01\xfc\x01\xf8\x01\x00\x00\xea\x0a\xea\x0a\xea\x0a\xea\x0a\xea\x0a\xea\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xef\x01\xe3\x01\xdf\x01\xd8\x01\xce\x01\x00\x00\xea\x0a\x00\x00\xea\x0a\x00\x00\xea\x0a\x00\x00\xea\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x0b\x00\x00\xbd\x01\xc7\x0b\xea\x0a\x00\x00\x83\x00\xb1\x0b\x6b\x00\x00\x00\xc5\x02\xf2\x01\x00\x00\x00\x00\xb2\x01\xaa\x01\xa1\x01\x8b\x01\xbd\x05\x00\x00\x00\x00\x00\x00\x84\x01\x00\x00\x00\x00\x00\x00\xff\x00\x94\x01\x00\x00\x68\x01\x6f\x07\x62\x01\x6e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\xba\x01\x00\x00\x00\x00\x00\x00\x7c\x01\x00\x00\x00\x00\x00\x00\x6e\x00\xab\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x01\xed\x09\x00\x00\xf5\xff\x00\x00\x6b\x09\x00\x00\x00\x00\xb3\x09\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x59\x01\xea\x00\x00\x00\xef\xff\x61\x00\x0c\x01\x9b\x0b\x00\x00\x2b\x00\xfb\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\xe9\xff\x00\x00\x74\x00\x00\x00\x5d\x00\xff\xff\x81\x09\x59\x00\x00\x00\x4c\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\xdb\xff\x81\x09\xc2\x09\xd7\xff\x81\x09\x00\x00\x00\x00\x00\x00\x00\x00\x81\x09\x00\x00\x00\x00\xc6\xff\x00\x00\x00\x00\x56\x01\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\x23\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xff\x00\x00\x00\x00\x0c\xff\x00\x00\x00\x00\x07\xff\x00\x00\x05\xff\x00\x00\x00\x00\x02\xff\x01\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xfe\xfb\xfe\xfa\xfe\xf2\xfe\xf2\xfe\x9c\xff\x81\xff\x46\xff\x47\xff\xa3\xff\x45\xff\x4a\xff\xf2\xfe\xac\xff\x2b\xff\x2d\xff\x29\xff\x2c\xff\x2a\xff\x53\xff\x00\x00\x00\x00\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xff\x00\x00\x33\xff\x32\xff\x31\xff\x34\xff\x2f\xff\x30\xff\x2e\xff\x35\xff\x00\x00\x4e\xff\xf2\xfe\xf2\xfe\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x23\xff\xef\xff\xf8\xff\x23\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xb2\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xb6\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\xf2\xfe\xf2\xfe\x00\x00\x00\x00\x00\x00\x8d\xff\x1e\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\xf2\xfe\xf2\xfe\xd9\xff\xf2\xfe\x00\x00\xa6\xff\xf2\xfe\xf2\xfe\x23\xff\x23\xff\x23\xff\x23\xff\x23\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x71\xff\x00\x00\xf2\xfe\xf3\xfe\x71\xff\x00\x00\xf3\xfe\xf3\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x54\xff\xf2\xfe\xf2\xfe\xf3\xfe\x00\x00\x00\x00\xf2\xfe\xf2\xfe\x00\x00\x00\x00\xc7\xff\xc6\xff\x73\xff\x72\xff\xf2\xfe\xf2\xfe\xf2\xfe\x00\x00\x61\xff\x00\x00\x00\x00\x00\x00\x71\xff\x00\x00\xf3\xfe\x00\x00\x00\x00\xf3\xfe\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x06\xff\xf2\xfe\x00\x00\xf2\xfe\x00\x00\xf2\xfe\x0f\xff\x95\xff\x11\xff\xf2\xfe\x00\x00\xf2\xfe\xf2\xfe\x57\xff\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf3\xfe\x00\x00\xf2\xfe\x00\x00\xf2\xfe\xf2\xfe\x4f\xff\x00\x00\x9a\xff\x00\x00\x00\x00\x00\x00\x97\xff\xf2\xfe\x00\x00\x00\x00\x00\x00\xf2\xfe\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\xf3\xfe\xf2\xfe\xf3\xfe\xf2\xfe\xf3\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x55\xff\xf2\xfe\x73\xff\x72\xff\xf2\xfe\xf2\xfe\x00\x00\xf7\xfe\x00\x00\x00\x00\x3f\xff\x49\xff\xf2\xfe\x00\x00\xf3\xfe\xf3\xfe\xf3\xfe\x4d\xff\x4c\xff\xf2\xfe\xf2\xfe\x00\x00\x39\xff\x00\x00\x00\x00\x56\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\xb0\xff\xae\xff\xad\xff\x00\x00\x00\x00\x6f\xff\x00\x00\x6c\xff\x8f\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xfe\xf3\xfe\xf2\xfe\x00\x00\xf3\xfe\xf3\xfe\x00\x00\x00\x00\x00\x00\xab\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x00\x00\x23\xff\x00\x00\x00\x00\x00\x00\xf3\xfe\x00\x00\xf2\xfe\x00\x00\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8c\xff\x1f\xff\x00\x00\x22\xff\x00\x00\xf2\xfe\xf2\xfe\xf2\xfe\xa8\xff\xa7\xff\xf2\xfe\xd8\xff\x00\x00\xa5\xff\xa4\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\xf2\xfe\xf2\xfe\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\xf2\xfe\x1b\xff\x17\xff\x00\x00\x00\x00\xf2\xfe\xf2\xfe\x00\x00\xb1\xff\xdd\xff\xf2\xfe\xf2\xfe\xf2\xfe\xdc\xff\x00\x00\xca\xff\x00\x00\xf2\xfe\xf2\xfe\x00\x00\x71\xff\x3a\xff\x3c\xff\xf3\xfe\x00\x00\x9f\xff\x50\xff\x87\xff\xf2\xfe\xf3\xfe\xf2\xfe\x00\x00\x52\xff\x51\xff\xf8\xfe\x00\x00\xf3\xfe\xf2\xfe\x40\xff\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\x00\x00\xf3\xfe\x00\x00\xf3\xfe\x00\x00\xf2\xfe\x6b\xff\xf2\xfe\xf2\xfe\x65\xff\xf2\xfe\x68\xff\x00\x00\x00\x00\x5d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x70\xff\x00\x00\xf2\xfe\xf3\xfe\xf3\xfe\xa1\xff\xf3\xfe\xf2\xfe\x89\xff\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\x94\xff\x82\xff\x85\xff\x83\xff\x84\xff\x86\xff\x7f\xff\xa0\xff\x80\xff\x99\xff\x96\xff\x00\x00\x98\xff\x70\xff\x00\x00\x00\x00\x59\xff\x58\xff\xf2\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xaa\xff\x00\x00\x77\xff\x00\x00\x76\xff\x00\x00\x48\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xfe\x44\xff\x3f\xff\x42\xff\xf2\xfe\x00\x00\x00\x00\x00\x00\xf2\xfe\x00\x00\xf2\xfe\xc8\xff\x00\x00\xd3\xff\x00\x00\xaf\xff\xf3\xfe\xf3\xfe\x23\xff\xf2\xfe\x28\xff\x00\x00\x16\xff\x1a\xff\xf3\xfe\xf9\xfe\x6e\xff\x00\x00\xf2\xfe\xd2\xff\x8e\xff\xf3\xfe\xbc\xff\xf3\xfe\x00\x00\xe5\xff\x00\x00\x1d\xff\x00\x00\xf2\xfe\x00\x00\xbf\xff\xf5\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x20\xff\x00\x00\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\xf3\xfe\x00\x00\xb8\xff\x17\xff\xb5\xff\x28\xff\x13\xff\x14\xff\x00\x00\xf3\xfe\x00\x00\xb4\xff\xb3\xff\x25\xff\x00\x00\xf2\xfe\x00\x00\x00\x00\xf2\xfe\xf3\xfe\x00\x00\x36\xff\xf2\xfe\xf3\xfe\x3d\xff\xf2\xfe\x79\xff\x75\xff\x7a\xff\x7d\xff\x7b\xff\x7c\xff\x7e\xff\x74\xff\x78\xff\xa9\xff\x63\xff\x64\xff\x62\xff\xf3\xfe\x5b\xff\x00\x00\x60\xff\x5f\xff\x00\x00\x69\xff\x6a\xff\x5e\xff\x00\x00\x00\x00\xf3\xfe\x43\xff\xf3\xfe\xf2\xfe\x00\x00\xf3\xfe\x8a\xff\xf2\xfe\xf3\xfe\x00\x00\x26\xff\x24\xff\x12\xff\x27\xff\x15\xff\x6d\xff\xea\xff\x00\x00\xcb\xff\xd1\xff\xd4\xff\xe3\xff\xd6\xff\x00\x00\x1c\xff\x21\xff\xbe\xff\xe4\xff\x92\xff\x00\x00\xf2\xfe\xe6\xff\xf3\xfe\x9b\xff\x00\x00\xf3\xfe\x00\x00\x5a\xff\x67\xff\x5c\xff\x38\xff\x00\x00\x00\x00\xe8\xff\xf3\xfe\xce\xff\x93\xff\x00\x00\x91\xff\x00\x00\xe7\xff\x3b\xff\x37\xff\x90\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x0b\x00\x1a\x00\x02\x00\x03\x00\x02\x00\x2a\x00\x1a\x00\x0c\x00\x2a\x00\x16\x00\x0c\x00\x0b\x00\x1a\x00\x1a\x00\x10\x00\x4c\x00\x24\x00\x13\x00\x1a\x00\x13\x00\x2e\x00\x15\x00\x30\x00\x01\x00\x20\x00\x07\x00\x01\x00\x20\x00\x21\x00\x1d\x00\x07\x00\x1d\x00\x4c\x00\x25\x00\x22\x00\x23\x00\x4c\x00\x0c\x00\x10\x00\x27\x00\x4d\x00\x10\x00\x43\x00\x4d\x00\x1a\x00\x1b\x00\x2e\x00\x3c\x00\x2e\x00\x1a\x00\x1b\x00\x02\x00\x02\x00\x40\x00\x43\x00\x45\x00\x46\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x11\x00\x11\x00\x2a\x00\x4a\x00\x34\x00\x20\x00\x21\x00\x4d\x00\x4c\x00\x34\x00\x3a\x00\x25\x00\x1d\x00\x1d\x00\x52\x00\x3a\x00\x1a\x00\x55\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x01\x00\x03\x00\x2e\x00\x2e\x00\x4d\x00\x20\x00\x21\x00\x02\x00\x4c\x00\x05\x00\x4d\x00\x0c\x00\x02\x00\x03\x00\x52\x00\x10\x00\x12\x00\x55\x00\x13\x00\x72\x00\x4a\x00\x0b\x00\x11\x00\x76\x00\x4d\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x13\x00\x7b\x00\x15\x00\x45\x00\x46\x00\x1d\x00\x0a\x00\x4c\x00\x25\x00\x25\x00\x1d\x00\x1a\x00\x29\x00\x26\x00\x26\x00\x22\x00\x23\x00\x72\x00\x4a\x00\x25\x00\x27\x00\x76\x00\x2e\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x2e\x00\x4d\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x02\x00\x03\x00\x4c\x00\x02\x00\x03\x00\x25\x00\x4c\x00\x31\x00\x4c\x00\x25\x00\x4d\x00\x4d\x00\x0b\x00\x42\x00\x52\x00\x25\x00\x25\x00\x55\x00\x11\x00\x12\x00\x13\x00\x4d\x00\x15\x00\x01\x00\x17\x00\x1a\x00\x19\x00\x1d\x00\x1d\x00\x4c\x00\x1d\x00\x25\x00\x22\x00\x23\x00\x0c\x00\x22\x00\x23\x00\x27\x00\x10\x00\x26\x00\x27\x00\x25\x00\x02\x00\x03\x00\x2e\x00\x4d\x00\x72\x00\x2e\x00\x2f\x00\x4d\x00\x76\x00\x0b\x00\x78\x00\x79\x00\x7a\x00\x4d\x00\x4d\x00\x11\x00\x12\x00\x13\x00\x4c\x00\x15\x00\x25\x00\x17\x00\x4d\x00\x19\x00\x7b\x00\x02\x00\x03\x00\x1d\x00\x25\x00\x4d\x00\x25\x00\x01\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x1a\x00\x4d\x00\x25\x00\x1d\x00\x1a\x00\x0b\x00\x2e\x00\x2f\x00\x10\x00\x58\x00\x59\x00\x21\x00\x5b\x00\x13\x00\x1d\x00\x15\x00\x2e\x00\x25\x00\x30\x00\x22\x00\x23\x00\x25\x00\x4d\x00\x1d\x00\x27\x00\x02\x00\x02\x00\x03\x00\x22\x00\x23\x00\x4d\x00\x2e\x00\x4d\x00\x27\x00\x13\x00\x0b\x00\x0a\x00\x0a\x00\x0b\x00\x0d\x00\x2e\x00\x7b\x00\x4d\x00\x13\x00\x7b\x00\x15\x00\x25\x00\x20\x00\x58\x00\x59\x00\x25\x00\x5b\x00\x1d\x00\x1d\x00\x25\x00\x02\x00\x03\x00\x4d\x00\x22\x00\x23\x00\x1a\x00\x4d\x00\x27\x00\x27\x00\x0b\x00\x1a\x00\x20\x00\x25\x00\x4d\x00\x2e\x00\x2e\x00\x1a\x00\x13\x00\x58\x00\x15\x00\x24\x00\x02\x00\x03\x00\x02\x00\x03\x00\x23\x00\x25\x00\x1d\x00\x7b\x00\x4c\x00\x0b\x00\x4d\x00\x22\x00\x23\x00\x4d\x00\x4d\x00\x25\x00\x27\x00\x13\x00\x4d\x00\x15\x00\x25\x00\x02\x00\x03\x00\x2e\x00\x25\x00\x4c\x00\x25\x00\x1d\x00\x1a\x00\x1d\x00\x0b\x00\x4d\x00\x22\x00\x23\x00\x22\x00\x23\x00\x1a\x00\x27\x00\x13\x00\x27\x00\x15\x00\x7b\x00\x02\x00\x03\x00\x2e\x00\x4d\x00\x2e\x00\x2f\x00\x1d\x00\x1a\x00\x25\x00\x0b\x00\x1a\x00\x22\x00\x23\x00\x4d\x00\x21\x00\x1a\x00\x27\x00\x13\x00\x4d\x00\x15\x00\x03\x00\x20\x00\x4d\x00\x2e\x00\x4d\x00\x08\x00\x42\x00\x1d\x00\x1a\x00\x7b\x00\x02\x00\x03\x00\x22\x00\x23\x00\x42\x00\x12\x00\x11\x00\x27\x00\x24\x00\x0b\x00\x4c\x00\x1a\x00\x4c\x00\x1a\x00\x2e\x00\x1a\x00\x01\x00\x13\x00\x4d\x00\x15\x00\x23\x00\x02\x00\x03\x00\x0a\x00\x0b\x00\x0a\x00\x0b\x00\x1d\x00\x7b\x00\x1a\x00\x0b\x00\x10\x00\x22\x00\x23\x00\x0d\x00\x0e\x00\x21\x00\x27\x00\x13\x00\x4c\x00\x15\x00\x02\x00\x02\x00\x03\x00\x2e\x00\x4c\x00\x11\x00\x20\x00\x1d\x00\x7b\x00\x48\x00\x0b\x00\x4a\x00\x22\x00\x23\x00\x1a\x00\x11\x00\x0a\x00\x27\x00\x13\x00\x0d\x00\x15\x00\x1a\x00\x02\x00\x03\x00\x2e\x00\x02\x00\x03\x00\x1d\x00\x1d\x00\x7b\x00\x20\x00\x0b\x00\x4c\x00\x22\x00\x23\x00\x13\x00\x1a\x00\x27\x00\x27\x00\x13\x00\x4d\x00\x15\x00\x1a\x00\x1a\x00\x2e\x00\x2e\x00\x3d\x00\x1e\x00\x1f\x00\x1d\x00\x7b\x00\x48\x00\x1d\x00\x4a\x00\x22\x00\x23\x00\x28\x00\x22\x00\x23\x00\x27\x00\x0e\x00\x26\x00\x27\x00\x18\x00\x19\x00\x31\x00\x2e\x00\x33\x00\x34\x00\x2e\x00\x4c\x00\x37\x00\x1a\x00\x1b\x00\x3a\x00\x09\x00\x1e\x00\x1f\x00\x4c\x00\x01\x00\x7b\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x49\x00\x4d\x00\x2d\x00\x53\x00\x54\x00\x10\x00\x31\x00\x32\x00\x48\x00\x14\x00\x4a\x00\x16\x00\x7b\x00\x18\x00\x1a\x00\x3a\x00\x1b\x00\x4c\x00\x1e\x00\x1f\x00\x02\x00\x0d\x00\x0e\x00\x02\x00\x03\x00\x5b\x00\x25\x00\x4c\x00\x48\x00\x28\x00\x4a\x00\x18\x00\x19\x00\x7b\x00\x4c\x00\x73\x00\x74\x00\x75\x00\x4c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x4d\x00\x4e\x00\x1d\x00\x4d\x00\x22\x00\x23\x00\x7b\x00\x22\x00\x23\x00\x47\x00\x48\x00\x4c\x00\x27\x00\x5c\x00\x5d\x00\x4c\x00\x02\x00\x03\x00\x4c\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x4c\x00\x4c\x00\x0b\x00\x55\x00\x56\x00\x4c\x00\x4c\x00\x4c\x00\x01\x00\x02\x00\x5c\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2f\x00\x4d\x00\x4d\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x4c\x00\x22\x00\x23\x00\x14\x00\x4d\x00\x16\x00\x27\x00\x18\x00\x4d\x00\x03\x00\x1b\x00\x4c\x00\x1d\x00\x2e\x00\x08\x00\x59\x00\x4c\x00\x22\x00\x23\x00\x4c\x00\x25\x00\x26\x00\x2a\x00\x28\x00\x12\x00\x4c\x00\x1a\x00\x1b\x00\x4c\x00\x2e\x00\x4c\x00\x4c\x00\x1a\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x4c\x00\x4c\x00\x09\x00\x4c\x00\x2d\x00\x4c\x00\x1a\x00\x4d\x00\x31\x00\x32\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4c\x00\x02\x00\x03\x00\x3a\x00\x1a\x00\x4d\x00\x4c\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x4c\x00\x4c\x00\x55\x00\x56\x00\x57\x00\x01\x00\x02\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4c\x00\x2b\x00\x06\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x4c\x00\x22\x00\x23\x00\x14\x00\x4c\x00\x16\x00\x27\x00\x18\x00\x4c\x00\x03\x00\x1b\x00\x4c\x00\x1d\x00\x2e\x00\x08\x00\x4d\x00\x4d\x00\x22\x00\x23\x00\x4d\x00\x25\x00\x4c\x00\x2a\x00\x28\x00\x12\x00\x1a\x00\x1b\x00\x1a\x00\x1b\x00\x1a\x00\x4c\x00\x1c\x00\x1a\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x2d\x00\x4d\x00\x2d\x00\x4d\x00\x31\x00\x4c\x00\x31\x00\x4c\x00\x31\x00\x4d\x00\x33\x00\x34\x00\x35\x00\x3a\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x4d\x00\x4c\x00\x4c\x00\x55\x00\x56\x00\x57\x00\x01\x00\x4c\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x1a\x00\x1b\x00\x4c\x00\x0e\x00\x0f\x00\x10\x00\x4c\x00\x2a\x00\x4c\x00\x14\x00\x2a\x00\x16\x00\x1a\x00\x18\x00\x4d\x00\x05\x00\x1b\x00\x4d\x00\x1d\x00\x2d\x00\x4d\x00\x4d\x00\x05\x00\x31\x00\x1a\x00\x4d\x00\x25\x00\x1a\x00\x1a\x00\x28\x00\x0e\x00\x17\x00\x3a\x00\x1a\x00\x1b\x00\x1a\x00\x06\x00\x1c\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x4d\x00\x1a\x00\x2d\x00\x4d\x00\x4d\x00\x4d\x00\x31\x00\x4d\x00\x31\x00\x4d\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x1a\x00\x1a\x00\x26\x00\x55\x00\x56\x00\x57\x00\x01\x00\x12\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x48\x00\x13\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x15\x00\x22\x00\x23\x00\x14\x00\x11\x00\x16\x00\x27\x00\x18\x00\x11\x00\x15\x00\x1b\x00\x2e\x00\x1d\x00\x2e\x00\x15\x00\x26\x00\x03\x00\x13\x00\x49\x00\x04\x00\x25\x00\x10\x00\x26\x00\x28\x00\x26\x00\x15\x00\x13\x00\x1a\x00\x1b\x00\x1a\x00\x14\x00\x1c\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x11\x00\x11\x00\x2d\x00\x0c\x00\x2e\x00\x0b\x00\x31\x00\x14\x00\x31\x00\x14\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x20\x00\x11\x00\x55\x00\x56\x00\x57\x00\x01\x00\x11\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x11\x00\x11\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x2e\x00\x22\x00\x23\x00\x14\x00\x11\x00\x16\x00\x27\x00\x18\x00\x2e\x00\x14\x00\x1b\x00\x2e\x00\x1d\x00\x2e\x00\x11\x00\x11\x00\x15\x00\x0a\x00\x31\x00\x13\x00\x25\x00\x13\x00\x20\x00\x28\x00\x14\x00\x04\x00\x26\x00\x1a\x00\x1b\x00\x1a\x00\x0b\x00\x1c\x00\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x20\x00\x11\x00\x2d\x00\x20\x00\x26\x00\x11\x00\x31\x00\x0a\x00\x31\x00\x11\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x13\x00\x13\x00\x13\x00\x55\x00\x56\x00\x57\x00\x01\x00\x12\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x13\x00\x13\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x22\x00\x23\x00\x14\x00\x0b\x00\x16\x00\x27\x00\x18\x00\x0a\x00\x26\x00\x1b\x00\x15\x00\x1d\x00\x2e\x00\x5c\x00\x26\x00\x0c\x00\x0b\x00\x20\x00\x31\x00\x25\x00\x13\x00\x0b\x00\x28\x00\x11\x00\x0d\x00\x15\x00\x1a\x00\x1b\x00\x1a\x00\x15\x00\x1c\x00\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x11\x00\x11\x00\x2d\x00\x0a\x00\x26\x00\x03\x00\x31\x00\x20\x00\x31\x00\x26\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x13\x00\x26\x00\x55\x00\x56\x00\x57\x00\x01\x00\x2f\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x0a\x00\x11\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x03\x00\x22\x00\x23\x00\x14\x00\x11\x00\x16\x00\x27\x00\x18\x00\x11\x00\x0a\x00\x1b\x00\x12\x00\x1d\x00\x2e\x00\x0a\x00\x11\x00\x0b\x00\x0b\x00\x5b\x00\x04\x00\x25\x00\x04\x00\x01\x00\x28\x00\x10\x00\x12\x00\x40\x00\x1a\x00\x1b\x00\x1a\x00\x04\x00\x1c\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x10\x00\x10\x00\x2d\x00\x14\x00\x12\x00\x12\x00\x31\x00\x12\x00\x31\x00\x12\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x12\x00\x0c\x00\x55\x00\x56\x00\x57\x00\x01\x00\x05\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x7b\x00\x20\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x7b\x00\x22\x00\x23\x00\x14\x00\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\xff\xff\x1c\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x29\x00\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\x01\x00\xff\xff\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x1a\x00\x1b\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x0e\x00\x31\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x1a\x00\xff\xff\x1c\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\x37\x00\xff\xff\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\x01\x00\xff\xff\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x14\x00\xff\xff\x16\x00\x1a\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\xff\xff\xff\xff\x5a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x01\x00\xff\xff\x1a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x28\x00\xff\xff\xff\xff\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\x31\x00\x1b\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x47\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x15\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x13\x00\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\x26\x00\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\x0b\x00\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\x26\x00\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x02\x00\x03\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x13\x00\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\xff\xff\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\xff\xff\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x02\x00\x03\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x1a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x28\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\x31\x00\x1b\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x17\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\x1d\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\x2e\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x28\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x1a\x00\x31\x00\xff\xff\x33\x00\x34\x00\x0f\x00\x10\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x50\x00\x51\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x25\x00\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x1a\x00\x1b\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\x1a\x00\xff\xff\x1c\x00\x2c\x00\x2d\x00\x50\x00\x51\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x38\x00\x39\x00\x3a\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x1a\x00\x1b\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x50\x00\x51\x00\x18\x00\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x3a\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x13\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\x31\x00\xff\xff\x50\x00\x51\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\xff\xff\x40\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x49\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x0c\x00\x14\x00\x15\x00\x0f\x00\x10\x00\xff\xff\x12\x00\x1a\x00\x14\x00\x15\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x0c\x00\x14\x00\x15\x00\x0f\x00\x10\x00\xff\xff\x12\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\x28\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x1a\x00\x1b\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x0c\x00\x22\x00\xff\xff\x0f\x00\x10\x00\x1a\x00\x12\x00\x1c\x00\x14\x00\x15\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\x1a\x00\xff\xff\x31\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x22\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x36\x00\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\x35\x00\x22\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x36\x00\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x22\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x22\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\x1a\x00\xff\xff\x37\x00\xff\xff\x28\x00\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\x31\x00\x28\x00\x33\x00\x34\x00\x1a\x00\x31\x00\x37\x00\x33\x00\x34\x00\x3a\x00\x31\x00\x37\x00\x33\x00\x34\x00\x3a\x00\xff\xff\x37\x00\x1a\x00\x28\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x28\x00\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x28\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\x31\x00\x3a\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\xbd\x00\x25\x00\x2a\x02\x6d\x01\xbc\x00\xbd\x00\xef\x00\x84\x01\x94\x00\xda\xff\x03\x01\x6c\x01\x56\x00\x08\xff\xf4\x01\x6d\x01\x57\x00\x82\x02\x56\x02\xfc\xff\xd0\x00\x08\xff\x46\x02\x08\xff\x77\x02\x25\x00\xfe\x01\x1c\x01\x25\x00\xda\xff\xda\xff\xbe\x00\x79\x00\xf1\x00\x79\x02\xb9\x00\xbf\x00\xc0\x00\x7b\x02\x56\x00\x57\x00\xc1\x00\xc2\x00\x57\x00\xf7\x01\x39\x01\x7a\x00\x7b\x00\xc2\x00\x6e\x01\xf2\x00\x7a\x00\x7b\x00\xef\x00\xef\x00\x5d\x00\x6f\x01\x5e\x02\xf6\x01\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x38\x02\xf0\x00\x03\x01\xda\xff\x7c\x00\x1f\x01\x20\x01\x73\x02\x61\x00\x7c\x00\x7d\x00\xb9\x00\xf1\x00\xf1\x00\x62\x00\x7d\x00\xf4\x01\x63\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x25\x00\x99\x00\xf2\x00\xf2\x00\x7c\x02\x3c\x01\x3d\x01\xef\x00\x61\x00\x7f\x02\xc2\x00\x56\x00\xbc\x00\xbd\x00\x62\x00\x57\x00\x9a\x00\x63\x00\xfc\xff\x64\x00\x21\x01\x0a\xff\x6c\xff\x65\x00\x52\x02\x66\x00\x67\x00\x68\x00\xfc\xff\x0a\xff\x08\xff\x0a\xff\xf5\x01\xf6\x01\xf1\x00\xe6\x00\x6f\x02\xb9\x00\xb9\x00\xbe\x00\x3e\x01\xfb\x00\x80\x02\x6c\xff\xbf\x00\xc0\x00\x64\x00\x21\x01\xb9\x00\xc1\x00\x65\x00\xf2\x00\x66\x00\x67\x00\x68\x00\xfc\xff\xc2\x00\x70\x02\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\xbc\x00\xbd\x00\x71\x02\xbc\x00\xbd\x00\xb9\x00\x74\x02\x71\xff\x61\x00\xb9\x00\xba\x00\x55\x02\x9e\xff\x68\x02\x62\x00\xb9\x00\xb9\x00\x63\x00\x9e\xff\x9e\xff\x9e\xff\xba\x00\x9e\xff\x25\x00\x9e\xff\xb5\x00\x9e\xff\xbe\x00\xc4\x01\x75\x02\xbe\x00\xb9\x00\xbf\x00\xc0\x00\x56\x00\xbf\x00\xc0\x00\xc1\x00\x57\x00\x9e\xff\xc1\x00\xb9\x00\xbc\x00\xbd\x00\xc2\x00\x31\x02\x64\x00\xc2\x00\x9e\xff\xba\x00\x65\x00\x9d\xff\x66\x00\x67\x00\x68\x00\x83\x01\x97\x01\x9d\xff\x9d\xff\x9d\xff\x4f\x02\x9d\xff\xb9\x00\x9d\xff\x50\x02\x9d\xff\x0a\xff\xbc\x00\xbd\x00\xbe\x00\xb9\x00\x99\x01\xb9\x00\x25\x00\xbf\x00\xc0\x00\xbc\x00\xbd\x00\x9d\xff\xc1\x00\xb5\x00\x9b\x01\xb9\x00\xb6\x00\x6c\x02\x0e\xff\xc2\x00\x9d\xff\x57\x00\x9e\xff\x9e\xff\x85\x02\x9e\xff\x0e\xff\xbe\x00\x0e\xff\x46\x02\xb9\x00\x47\x02\xbf\x00\xc0\x00\xb9\x00\x9d\x01\xbe\x00\xc1\x00\xef\x00\xbc\x00\xbd\x00\xbf\x00\xc0\x00\xba\x00\xc2\x00\xb3\x01\xc1\x00\x2c\x01\x0d\xff\xaa\x01\x63\x02\x18\x02\x71\xff\xc2\x00\xff\xff\xb6\x01\x0d\xff\x9e\xff\x0d\xff\xb9\x00\x2d\x01\x9d\xff\x9d\xff\xb9\x00\x9d\xff\xf1\x00\xbe\x00\xb9\x00\xbc\x00\xbd\x00\xb7\x01\xbf\x00\xc0\x00\xd0\x00\xb8\x01\xa8\x01\xc1\x00\x0b\xff\x80\x01\xbb\x01\xf2\x00\x58\x02\xf2\x00\xc2\x00\x42\x01\x0b\xff\x18\x01\x0b\xff\x95\x00\xbc\x00\xbd\x00\xbc\x00\xbd\x00\x51\x01\xb9\x00\xbe\x00\x9d\xff\x51\x02\x09\xff\xb9\x01\xbf\x00\xc0\x00\x1e\x02\xba\x01\xb9\x00\xc1\x00\x09\xff\xba\x00\x09\xff\xb9\x00\xbc\x00\xbd\x00\xc2\x00\xb9\x00\x54\x02\xf2\x00\xbe\x00\x3e\x01\xbe\x00\x04\xff\xf3\x00\xbf\x00\xc0\x00\xbf\x00\xc0\x00\x3e\x01\xc1\x00\x04\xff\xc1\x00\x04\xff\x0e\xff\xbc\x00\xbd\x00\xc2\x00\xba\x00\xc2\x00\x4a\x01\xbe\x00\x6c\x02\xb9\x00\x03\xff\x59\x02\xbf\x00\xc0\x00\x0b\x01\x80\x02\xd0\x00\xc1\x00\x03\xff\x0d\x01\x03\xff\x12\x02\xd1\x00\xba\x00\xc2\x00\xf3\x00\x66\x02\x3f\x01\xbe\x00\x94\x00\x0d\xff\xbc\x00\xbd\x00\xbf\x00\xc0\x00\x41\x01\x4c\x00\x6a\x02\xc1\x00\x95\x00\x00\xff\x5b\x02\x42\x01\x60\x02\x4f\x00\xc2\x00\x47\x01\x25\x00\x00\xff\xba\x00\x00\xff\x43\x01\xbc\x00\xbd\x00\x17\x02\x18\x02\x71\x01\x72\x01\xbe\x00\x0b\xff\x6c\x02\xff\xfe\x57\x00\xbf\x00\xc0\x00\xeb\x01\x1b\x01\x6d\x02\xc1\x00\xff\xfe\x14\x02\xff\xfe\xef\x00\xbc\x00\xbd\x00\xc2\x00\x16\x02\x46\x01\x73\x01\xbe\x00\x09\xff\x04\x01\xfe\xfe\xe0\x01\xbf\x00\xc0\x00\x47\x01\xa6\x01\xe6\x00\xc1\x00\xfe\xfe\x71\xff\xfe\xfe\x67\x02\xbc\x00\xbd\x00\xc2\x00\xbc\x00\xbd\x00\xf1\x00\xbe\x00\x04\xff\xa7\x01\xfd\xfe\x20\x02\xbf\x00\xc0\x00\x87\x00\x0d\x02\xa8\x01\xc1\x00\xfd\xfe\x27\x02\xfd\xfe\x1a\x00\xe6\x00\xf2\x00\xc2\x00\x28\x02\xc7\x01\xe8\x00\xbe\x00\x03\xff\x04\x01\xbe\x00\x6b\x01\xbf\x00\xc0\x00\x1e\x00\xbf\x00\xc0\x00\xc1\x00\x74\x00\x30\x02\xc1\x00\xef\x01\x22\x01\x1f\x00\xc2\x00\x88\x00\x21\x00\xc2\x00\x2a\x02\x22\x00\xe9\x00\xaf\x00\x23\x00\x2d\x02\xea\x00\xe8\x00\x2b\x02\x25\x00\x00\xff\x8b\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x8c\x00\x89\x00\x35\x02\xeb\x00\x1a\x02\x1b\x02\x2e\x00\xb1\x00\xec\x00\x04\x01\x2f\x00\x05\x01\x30\x00\xff\xfe\x31\x00\xe6\x00\x7d\x00\x32\x00\x41\x02\xe7\x00\xe8\x00\x76\x00\x1a\x01\x1b\x01\xbc\x00\xbd\x00\x8b\xff\x34\x00\x42\x02\x04\x01\x35\x00\x06\x01\x21\x01\x22\x01\xfe\xfe\x43\x02\x1c\x02\x1d\x02\x1e\x02\x44\x02\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x77\x00\x49\x02\x4a\x02\xbe\x00\x45\x02\x78\x00\x79\x00\xfd\xfe\xbf\x00\xc0\x00\x24\x01\x25\x01\xbc\x01\xc1\x00\xa4\x00\xa5\x00\xbd\x01\xbc\x00\xbd\x00\xbe\x01\xc2\x00\x3f\x00\x40\x00\x41\x00\xbf\x01\xc0\x01\x0f\x02\x42\x00\x43\x00\xc1\x01\xc2\x01\xc3\x01\x25\x00\xaa\x00\x8d\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc9\x01\xce\x01\xcf\x01\xbe\x00\x2c\x00\x2d\x00\x2e\x00\xd3\x01\xbf\x00\xc0\x00\x2f\x00\xd0\x01\x30\x00\xc1\x00\x31\x00\xd1\x01\x12\x02\x32\x00\xd5\x01\xab\x00\xc2\x00\x13\x02\xea\x01\xd7\x01\xac\x00\xad\x00\xd8\x01\x34\x00\xae\x00\xe7\x01\x35\x00\x4c\x00\xd9\x01\x7a\x00\xaf\x00\xda\x01\xaf\x00\xdb\x01\xdc\x01\x4f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xdd\x01\xde\x01\xfc\x01\xe3\x01\xcb\x01\xe6\x01\x06\x02\xf0\x01\xb1\x00\xcc\x01\xf1\x01\xf8\x01\xff\x01\x01\x02\x4b\x01\xbc\x00\xbd\x00\x7d\x00\x4e\x01\x3e\x00\x59\x01\x3f\x00\x40\x00\x41\x00\xee\x01\x5a\x01\x5e\x01\x42\x00\x43\x00\x44\x00\x25\x00\x76\x00\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x5f\x01\x69\x01\x79\x01\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x85\x01\xbf\x00\xc0\x00\x2f\x00\x86\x01\x30\x00\xc1\x00\x31\x00\x87\x01\x12\x02\x32\x00\x9a\x01\xab\x00\xc2\x00\x2e\x02\x89\x01\x96\x01\x78\x00\x79\x00\x98\x01\x34\x00\x9c\x01\xe4\x00\x35\x00\x4c\x00\x7a\x00\xaf\x00\x7a\x00\xaf\x00\x1a\x00\x9e\x01\x91\x01\x4f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x4c\x02\xb0\x01\x4b\x02\xb1\x01\xb1\x00\xb5\x01\xb1\x00\xd6\x00\x1f\x00\xdc\x00\x20\x00\x21\x00\x92\x01\x7d\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x0c\x01\xdf\x00\xe2\x00\x42\x00\x43\x00\x44\x00\x25\x00\x07\x01\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x93\x01\x7a\x00\xaf\x00\x0e\x01\x2c\x00\x2d\x00\x2e\x00\x0f\x01\x15\x01\x16\x01\x2f\x00\x19\x01\x30\x00\x25\x01\x31\x00\x34\x01\x1d\x01\x32\x00\x35\x01\x33\x00\xcd\x01\x38\x01\x39\x01\x3a\x01\xb1\x00\x40\x01\x48\x01\x34\x00\x6f\x00\x70\x00\x35\x00\x74\x00\x8d\x00\x7d\x00\x7a\x00\xaf\x00\x1a\x00\x8f\x00\xd7\x00\xcc\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x97\x00\x9d\x00\xdf\x01\x9a\x00\x9b\x00\xa2\x00\xb1\x00\xb7\x00\x1f\x00\xc2\x00\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\xc9\x00\xcf\x00\x82\x02\x42\x00\x43\x00\x44\x00\x25\x00\xed\x01\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x90\x01\x04\x00\x84\x02\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x6c\x02\xbf\x00\xc0\x00\x2f\x00\x7e\x02\x30\x00\xc1\x00\x31\x00\x77\x02\x6f\x02\x32\x00\xf2\x00\x33\x00\xc2\x00\x4e\x02\x4f\x02\x00\x00\x58\x02\x5b\x02\x63\x02\x34\x00\x62\x02\x0d\x02\x35\x00\x11\x02\x65\x02\x66\x02\x7a\x00\xaf\x00\x1a\x00\x12\x02\xdb\x00\xce\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x02\x10\x02\xfa\x01\x22\x02\x20\x02\x23\x02\xb1\x00\x2d\x02\x1f\x00\xfe\x01\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\xef\x01\x33\x02\x39\x02\x42\x00\x43\x00\x44\x00\x25\x00\x3a\x02\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x94\x01\x3b\x02\x3c\x02\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x4b\x02\xbf\x00\xc0\x00\x2f\x00\x3d\x02\x30\x00\xc1\x00\x31\x00\xc7\x01\xcb\x01\x32\x00\xf2\x00\x33\x00\xc2\x00\xd5\x01\xd7\x01\xe2\x01\xe6\x00\xe6\x01\xfa\x01\x34\x00\xfc\x01\xf4\x01\x35\x00\xfe\x01\x0a\x02\x09\x02\x7a\x00\xaf\x00\x1a\x00\x0b\x02\xde\x00\x4e\x01\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x4d\x01\x53\x01\xa0\x01\x51\x01\x54\x01\x55\x01\xb1\x00\x56\x01\x1f\x00\x5c\x01\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x61\x01\x62\x01\x63\x01\x42\x00\x43\x00\x44\x00\x25\x00\x03\x02\x15\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x95\x01\x64\x01\x65\x01\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x68\x01\xbf\x00\xc0\x00\x2f\x00\x69\x01\x30\x00\xc1\x00\x31\x00\x6b\x01\x74\x01\x32\x00\x75\x01\x33\x00\xc2\x00\x76\x01\x7b\x01\x91\x00\x7c\x01\x7d\x01\x80\x01\x34\x00\x83\x01\x8f\x01\x35\x00\xa5\x01\x90\x01\x8d\x01\x7a\x00\xaf\x00\x1a\x00\x8e\x01\xf4\x00\xa0\x01\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\xa9\x01\xac\x01\xa1\x01\xad\x01\xab\x01\x00\x00\xb1\x00\xde\x00\x1f\x00\xaf\x01\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x04\x02\xe1\x00\xd4\x00\x42\x00\x43\x00\x44\x00\x25\x00\xe4\x00\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xf5\x00\xe6\x00\xc4\xff\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x00\x00\xbf\x00\xc0\x00\x2f\x00\xc5\xff\x30\x00\xc1\x00\x31\x00\xfa\x00\xe6\x00\x32\x00\x27\x01\x33\x00\xc2\x00\xe6\x00\x3e\x01\x2e\x01\x45\x01\x19\x01\x69\x00\x34\x00\x6a\x00\x6c\x00\x35\x00\x46\x01\x6d\x00\x6e\x00\x7a\x00\xaf\x00\x1a\x00\x6f\x00\xf6\x00\x72\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x73\x00\x74\x00\xa2\x01\x8f\x00\x83\x00\x84\x00\xb1\x00\x85\x00\x1f\x00\x86\x00\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x05\x02\x87\x00\x91\x00\x42\x00\x43\x00\x44\x00\x25\x00\x92\x00\x15\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xf7\x00\xff\xff\xb9\x00\xbe\x00\x2c\x00\x2d\x00\x2e\x00\xff\xff\xbf\x00\xc0\x00\x2f\x00\x00\x00\x30\x00\xc1\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x33\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\xa5\x00\x00\x00\xa6\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\xa7\x00\x00\x00\xad\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\xa8\x00\x00\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x25\x00\x00\x00\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x2c\x00\x2d\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x33\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x74\x00\xb1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x1a\x00\x00\x00\x36\x01\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x37\x01\x00\x00\x22\x00\x00\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x25\x00\x00\x00\x15\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x06\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x33\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xff\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x5e\x01\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x25\x00\x00\x00\x1a\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x85\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x1e\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x1f\x00\x32\x00\x23\x02\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x02\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x02\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x79\x02\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x3e\xff\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\xe3\x01\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x73\x02\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x0a\x01\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x0b\x01\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x8b\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x88\xff\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x27\x02\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\xe5\x01\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\xbc\x00\xbd\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x01\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x25\x00\x5e\x01\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc2\x00\x34\x02\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\xbd\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\x00\x25\x00\x02\x01\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x03\x01\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x3e\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x15\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1f\x00\x00\x00\x88\x00\x21\x00\x00\x00\x00\x00\x22\x00\xbc\x00\xbd\x00\x23\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x01\x02\x2e\x00\x3f\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\xbc\x00\xbd\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x01\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x25\x00\x00\x00\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc2\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x40\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x0c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x25\x00\x00\x00\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc2\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x41\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x66\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1f\x00\x00\x00\x88\x00\x21\x00\x00\x00\x00\x00\x22\x00\xbc\x00\xbd\x00\x23\x00\x25\x00\x00\x00\x8b\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x1a\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x1e\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x1f\x00\x32\x00\x88\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x09\x01\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\xbe\x00\x31\x00\x00\x00\x00\x00\x32\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x76\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x79\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x25\x00\x1e\x00\x2b\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x1a\x00\x1f\x00\x00\x00\x23\x02\x21\x00\xb3\x00\xb4\x00\x22\x00\x00\x00\x00\x00\x23\x00\x5d\x02\x81\x00\x82\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\xb2\x01\x21\x00\x80\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x25\x00\x7a\x00\xaf\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x27\x01\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x10\x01\x00\x00\x11\x01\x5c\x02\x29\x01\x81\x00\x82\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x7a\x02\x13\x01\x23\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x25\x00\x7a\x00\xaf\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x27\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x5f\x02\x29\x01\x81\x00\x82\x00\x31\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xff\xbd\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x66\xff\x66\xff\x66\xff\x00\x00\x00\x00\x00\x00\x66\xff\x00\x00\x66\xff\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x66\xff\x00\x00\x00\x00\x66\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xff\x66\xff\x00\x00\x4f\x01\x46\x00\x47\x00\x48\x00\x00\x00\x66\xff\x66\xff\x00\x00\x66\xff\x00\x00\x81\x00\x82\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x4e\x00\x00\x00\x66\xff\x00\x00\x00\x00\x4f\x00\x2f\x01\x46\x00\x47\x00\x48\x00\x00\x00\x66\xff\x00\x00\x30\x01\x46\x00\x47\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x49\x00\x4d\x00\x4e\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4f\x00\x4d\x00\x4e\x00\x31\x01\x46\x00\x47\x00\x48\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x01\x46\x00\x47\x00\x48\x00\x00\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x4e\x00\x33\x01\x46\x00\x47\x00\x48\x00\x4f\x00\x00\x00\x00\x00\x92\x00\x46\x00\x47\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x49\x00\x4d\x00\x4e\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4f\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x93\x00\x46\x00\x47\x00\x48\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x1a\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x1e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\xb2\x01\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x00\x00\x7a\x00\xaf\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x49\x00\x27\x01\x00\x00\x4a\x00\x4b\x00\x10\x01\x4c\x00\x11\x01\x4d\x00\x4e\x00\x00\x00\xc5\x01\x29\x01\x00\x00\x4f\x00\x00\x00\xb1\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x81\x01\x13\x01\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\x8a\x01\x20\x00\x21\x00\x00\x00\x27\x01\x22\x00\x12\x01\x13\x01\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\xc5\x01\xc8\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\x91\x01\x20\x00\x21\x00\x00\x00\x36\x02\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\x8a\x01\x20\x00\x21\x00\x92\x01\x27\x01\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\xf2\x01\x29\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\x53\x02\x20\x00\x21\x00\x00\x00\x8b\x01\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\x30\x02\x20\x00\x21\x00\x00\x00\x27\x01\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x05\x02\x29\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\x34\x02\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\xe8\x01\x20\x00\x21\x00\x00\x00\x27\x01\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\xea\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x07\x02\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x4a\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x56\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x57\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x58\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x65\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x76\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x77\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x78\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x7d\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x7e\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x88\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd9\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xda\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xaf\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xb4\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd4\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd5\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd7\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd8\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd9\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xda\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xdb\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xde\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xed\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x9e\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xf8\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xfa\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x6a\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x96\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x9c\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x9e\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xa0\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xa1\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc3\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc4\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc5\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc6\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc7\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc8\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xca\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xcc\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xce\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd2\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x1b\x00\x20\x00\x21\x00\x1a\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x1e\x00\xd2\x01\x21\x00\x1a\x00\x1f\x00\x22\x00\x20\x00\x21\x00\x23\x00\x1f\x00\x22\x00\xb2\x01\x21\x00\x23\x00\x00\x00\x22\x00\x1a\x00\x1e\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x1f\x00\x00\x00\xb2\x01\x21\x00\x1e\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\xe1\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x1f\x00\x23\x00\x9f\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyReduceArr = Happy_Data_Array.array (3, 270) [
+	(3 , happyReduce_3),
+	(4 , happyReduce_4),
+	(5 , happyReduce_5),
+	(6 , happyReduce_6),
+	(7 , happyReduce_7),
+	(8 , happyReduce_8),
+	(9 , happyReduce_9),
+	(10 , happyReduce_10),
+	(11 , happyReduce_11),
+	(12 , happyReduce_12),
+	(13 , happyReduce_13),
+	(14 , happyReduce_14),
+	(15 , happyReduce_15),
+	(16 , happyReduce_16),
+	(17 , happyReduce_17),
+	(18 , happyReduce_18),
+	(19 , happyReduce_19),
+	(20 , happyReduce_20),
+	(21 , happyReduce_21),
+	(22 , happyReduce_22),
+	(23 , happyReduce_23),
+	(24 , happyReduce_24),
+	(25 , happyReduce_25),
+	(26 , happyReduce_26),
+	(27 , happyReduce_27),
+	(28 , happyReduce_28),
+	(29 , happyReduce_29),
+	(30 , happyReduce_30),
+	(31 , happyReduce_31),
+	(32 , happyReduce_32),
+	(33 , happyReduce_33),
+	(34 , happyReduce_34),
+	(35 , happyReduce_35),
+	(36 , happyReduce_36),
+	(37 , happyReduce_37),
+	(38 , happyReduce_38),
+	(39 , happyReduce_39),
+	(40 , happyReduce_40),
+	(41 , happyReduce_41),
+	(42 , happyReduce_42),
+	(43 , happyReduce_43),
+	(44 , happyReduce_44),
+	(45 , happyReduce_45),
+	(46 , happyReduce_46),
+	(47 , happyReduce_47),
+	(48 , happyReduce_48),
+	(49 , happyReduce_49),
+	(50 , happyReduce_50),
+	(51 , happyReduce_51),
+	(52 , happyReduce_52),
+	(53 , happyReduce_53),
+	(54 , happyReduce_54),
+	(55 , happyReduce_55),
+	(56 , happyReduce_56),
+	(57 , happyReduce_57),
+	(58 , happyReduce_58),
+	(59 , happyReduce_59),
+	(60 , happyReduce_60),
+	(61 , happyReduce_61),
+	(62 , happyReduce_62),
+	(63 , happyReduce_63),
+	(64 , happyReduce_64),
+	(65 , happyReduce_65),
+	(66 , happyReduce_66),
+	(67 , happyReduce_67),
+	(68 , happyReduce_68),
+	(69 , happyReduce_69),
+	(70 , happyReduce_70),
+	(71 , happyReduce_71),
+	(72 , happyReduce_72),
+	(73 , happyReduce_73),
+	(74 , happyReduce_74),
+	(75 , happyReduce_75),
+	(76 , happyReduce_76),
+	(77 , happyReduce_77),
+	(78 , happyReduce_78),
+	(79 , happyReduce_79),
+	(80 , happyReduce_80),
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83),
+	(84 , happyReduce_84),
+	(85 , happyReduce_85),
+	(86 , happyReduce_86),
+	(87 , happyReduce_87),
+	(88 , happyReduce_88),
+	(89 , happyReduce_89),
+	(90 , happyReduce_90),
+	(91 , happyReduce_91),
+	(92 , happyReduce_92),
+	(93 , happyReduce_93),
+	(94 , happyReduce_94),
+	(95 , happyReduce_95),
+	(96 , happyReduce_96),
+	(97 , happyReduce_97),
+	(98 , happyReduce_98),
+	(99 , happyReduce_99),
+	(100 , happyReduce_100),
+	(101 , happyReduce_101),
+	(102 , happyReduce_102),
+	(103 , happyReduce_103),
+	(104 , happyReduce_104),
+	(105 , happyReduce_105),
+	(106 , happyReduce_106),
+	(107 , happyReduce_107),
+	(108 , happyReduce_108),
+	(109 , happyReduce_109),
+	(110 , happyReduce_110),
+	(111 , happyReduce_111),
+	(112 , happyReduce_112),
+	(113 , happyReduce_113),
+	(114 , happyReduce_114),
+	(115 , happyReduce_115),
+	(116 , happyReduce_116),
+	(117 , happyReduce_117),
+	(118 , happyReduce_118),
+	(119 , happyReduce_119),
+	(120 , happyReduce_120),
+	(121 , happyReduce_121),
+	(122 , happyReduce_122),
+	(123 , happyReduce_123),
+	(124 , happyReduce_124),
+	(125 , happyReduce_125),
+	(126 , happyReduce_126),
+	(127 , happyReduce_127),
+	(128 , happyReduce_128),
+	(129 , happyReduce_129),
+	(130 , happyReduce_130),
+	(131 , happyReduce_131),
+	(132 , happyReduce_132),
+	(133 , happyReduce_133),
+	(134 , happyReduce_134),
+	(135 , happyReduce_135),
+	(136 , happyReduce_136),
+	(137 , happyReduce_137),
+	(138 , happyReduce_138),
+	(139 , happyReduce_139),
+	(140 , happyReduce_140),
+	(141 , happyReduce_141),
+	(142 , happyReduce_142),
+	(143 , happyReduce_143),
+	(144 , happyReduce_144),
+	(145 , happyReduce_145),
+	(146 , happyReduce_146),
+	(147 , happyReduce_147),
+	(148 , happyReduce_148),
+	(149 , happyReduce_149),
+	(150 , happyReduce_150),
+	(151 , happyReduce_151),
+	(152 , happyReduce_152),
+	(153 , happyReduce_153),
+	(154 , happyReduce_154),
+	(155 , happyReduce_155),
+	(156 , happyReduce_156),
+	(157 , happyReduce_157),
+	(158 , happyReduce_158),
+	(159 , happyReduce_159),
+	(160 , happyReduce_160),
+	(161 , happyReduce_161),
+	(162 , happyReduce_162),
+	(163 , happyReduce_163),
+	(164 , happyReduce_164),
+	(165 , happyReduce_165),
+	(166 , happyReduce_166),
+	(167 , happyReduce_167),
+	(168 , happyReduce_168),
+	(169 , happyReduce_169),
+	(170 , happyReduce_170),
+	(171 , happyReduce_171),
+	(172 , happyReduce_172),
+	(173 , happyReduce_173),
+	(174 , happyReduce_174),
+	(175 , happyReduce_175),
+	(176 , happyReduce_176),
+	(177 , happyReduce_177),
+	(178 , happyReduce_178),
+	(179 , happyReduce_179),
+	(180 , happyReduce_180),
+	(181 , happyReduce_181),
+	(182 , happyReduce_182),
+	(183 , happyReduce_183),
+	(184 , happyReduce_184),
+	(185 , happyReduce_185),
+	(186 , happyReduce_186),
+	(187 , happyReduce_187),
+	(188 , happyReduce_188),
+	(189 , happyReduce_189),
+	(190 , happyReduce_190),
+	(191 , happyReduce_191),
+	(192 , happyReduce_192),
+	(193 , happyReduce_193),
+	(194 , happyReduce_194),
+	(195 , happyReduce_195),
+	(196 , happyReduce_196),
+	(197 , happyReduce_197),
+	(198 , happyReduce_198),
+	(199 , happyReduce_199),
+	(200 , happyReduce_200),
+	(201 , happyReduce_201),
+	(202 , happyReduce_202),
+	(203 , happyReduce_203),
+	(204 , happyReduce_204),
+	(205 , happyReduce_205),
+	(206 , happyReduce_206),
+	(207 , happyReduce_207),
+	(208 , happyReduce_208),
+	(209 , happyReduce_209),
+	(210 , happyReduce_210),
+	(211 , happyReduce_211),
+	(212 , happyReduce_212),
+	(213 , happyReduce_213),
+	(214 , happyReduce_214),
+	(215 , happyReduce_215),
+	(216 , happyReduce_216),
+	(217 , happyReduce_217),
+	(218 , happyReduce_218),
+	(219 , happyReduce_219),
+	(220 , happyReduce_220),
+	(221 , happyReduce_221),
+	(222 , happyReduce_222),
+	(223 , happyReduce_223),
+	(224 , happyReduce_224),
+	(225 , happyReduce_225),
+	(226 , happyReduce_226),
+	(227 , happyReduce_227),
+	(228 , happyReduce_228),
+	(229 , happyReduce_229),
+	(230 , happyReduce_230),
+	(231 , happyReduce_231),
+	(232 , happyReduce_232),
+	(233 , happyReduce_233),
+	(234 , happyReduce_234),
+	(235 , happyReduce_235),
+	(236 , happyReduce_236),
+	(237 , happyReduce_237),
+	(238 , happyReduce_238),
+	(239 , happyReduce_239),
+	(240 , happyReduce_240),
+	(241 , happyReduce_241),
+	(242 , happyReduce_242),
+	(243 , happyReduce_243),
+	(244 , happyReduce_244),
+	(245 , happyReduce_245),
+	(246 , happyReduce_246),
+	(247 , happyReduce_247),
+	(248 , happyReduce_248),
+	(249 , happyReduce_249),
+	(250 , happyReduce_250),
+	(251 , happyReduce_251),
+	(252 , happyReduce_252),
+	(253 , happyReduce_253),
+	(254 , happyReduce_254),
+	(255 , happyReduce_255),
+	(256 , happyReduce_256),
+	(257 , happyReduce_257),
+	(258 , happyReduce_258),
+	(259 , happyReduce_259),
+	(260 , happyReduce_260),
+	(261 , happyReduce_261),
+	(262 , happyReduce_262),
+	(263 , happyReduce_263),
+	(264 , happyReduce_264),
+	(265 , happyReduce_265),
+	(266 , happyReduce_266),
+	(267 , happyReduce_267),
+	(268 , happyReduce_268),
+	(269 , happyReduce_269),
+	(270 , happyReduce_270)
+	]
+
+happy_n_terms = 124 :: Int
+happy_n_nonterms = 79 :: Int
+
+happyReduce_3 = happySpecReduce_0  0# happyReduction_3
+happyReduction_3  =  happyIn6
+		 ([]
+	)
+
+happyReduce_4 = happySpecReduce_2  0# happyReduction_4
+happyReduction_4 happy_x_2
+	happy_x_1
+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_5 = happySpecReduce_2  0# happyReduction_5
+happyReduction_5 happy_x_2
+	happy_x_1
+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (map RealDecl happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_6 = happyReduce 4# 0# happyReduction_6
+happyReduction_6 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	case happyOut6 happy_x_4 of { happy_var_4 -> 
+	happyIn6
+		 (RealDecl (PInclude happy_var_2) : happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_7 = happySpecReduce_1  1# happyReduction_7
+happyReduction_7 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (happy_var_1
+	)}
+
+happyReduce_8 = happySpecReduce_1  1# happyReduction_8
+happyReduction_8 happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl (DataDecl happy_var_1)
+	)}
+
+happyReduce_9 = happySpecReduce_1  1# happyReduction_9
+happyReduction_9 happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_10 = happyReduce 5# 1# happyReduction_10
+happyReduction_10 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn7
+		 (RealDecl (Freeze happy_var_3 happy_var_4 [] happy_var_2)
+	) `HappyStk` happyRest}}}
+
+happyReduce_11 = happyReduce 4# 1# happyReduction_11
+happyReduction_11 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_12 = happyReduce 4# 1# happyReduction_12
+happyReduction_12 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PDoUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_13 = happyReduce 4# 1# happyReduction_13
+happyReduction_13 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut69 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PIdiom happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_14 = happyReduce 4# 1# happyReduction_14
+happyReduction_14 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut70 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PParams happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_15 = happyReduce 4# 1# happyReduction_15
+happyReduction_15 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut71 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PNamespace happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_16 = happySpecReduce_1  1# happyReduction_16
+happyReduction_16 happy_x_1
+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_17 = happyReduce 6# 1# happyReduction_17
+happyReduction_17 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut41 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_5 of { happy_var_5 -> 
+	happyIn7
+		 (RealDecl (SynDef happy_var_2 happy_var_3 happy_var_5)
+	) `HappyStk` happyRest}}}
+
+happyReduce_18 = happySpecReduce_2  1# happyReduction_18
+happyReduction_18 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CInclude happy_var_2)
+	)}
+
+happyReduce_19 = happySpecReduce_2  1# happyReduction_19
+happyReduction_19 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CLib happy_var_2)
+	)}
+
+happyReduce_20 = happyReduce 5# 2# happyReduction_20
+happyReduction_20 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn8
+		 (Transform happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_21 = happyReduce 7# 3# happyReduction_21
+happyReduction_21 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut15 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunType happy_var_1 happy_var_3 (nub happy_var_5) happy_var_6 happy_var_7
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_22 = happySpecReduce_3  3# happyReduction_22
+happyReduction_22 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut79 happy_x_2 of { happy_var_2 -> 
+	happyIn9
+		 (ProofScript happy_var_1 happy_var_2
+	)}}
+
+happyReduce_23 = happyReduce 9# 3# happyReduction_23
+happyReduction_23 (happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	case happyOut83 happy_x_8 of { happy_var_8 -> 
+	case happyOut82 happy_x_9 of { happy_var_9 -> 
+	happyIn9
+		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}}}}
+
+happyReduce_24 = happyReduce 10# 3# happyReduction_24
+happyReduction_24 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut32 happy_x_7 of { happy_var_7 -> 
+	case happyOut83 happy_x_9 of { happy_var_9 -> 
+	case happyOut82 happy_x_10 of { happy_var_10 -> 
+	happyIn9
+		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_25 = happyReduce 8# 3# happyReduction_25
+happyReduction_25 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut15 happy_x_6 of { happy_var_6 -> 
+	case happyOut83 happy_x_7 of { happy_var_7 -> 
+	case happyOut82 happy_x_8 of { happy_var_8 -> 
+	happyIn9
+		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_6)
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_26 = happyReduce 5# 3# happyReduction_26
+happyReduction_26 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn9
+		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
+	) `HappyStk` happyRest}}
+
+happyReduce_27 = happyReduce 8# 3# happyReduction_27
+happyReduction_27 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut32 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}
+
+happyReduce_28 = happyReduce 7# 3# happyReduction_28
+happyReduction_28 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_29 = happySpecReduce_1  4# happyReduction_29
+happyReduction_29 happy_x_1
+	 =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_30 = happySpecReduce_1  4# happyReduction_30
+happyReduction_30 happy_x_1
+	 =  happyIn10
+		 (Vis Private
+	)
+
+happyReduce_31 = happySpecReduce_1  4# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  happyIn10
+		 (Vis Abstract
+	)
+
+happyReduce_32 = happySpecReduce_0  4# happyReduction_32
+happyReduction_32  =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_33 = happySpecReduce_1  5# happyReduction_33
+happyReduction_33 happy_x_1
+	 =  happyIn11
+		 (False
+	)
+
+happyReduce_34 = happySpecReduce_2  5# happyReduction_34
+happyReduction_34 happy_x_2
+	happy_x_1
+	 =  happyIn11
+		 (True
+	)
+
+happyReduce_35 = happySpecReduce_3  6# happyReduction_35
+happyReduction_35 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut12 happy_x_3 of { happy_var_3 -> 
+	happyIn12
+		 (happy_var_2:happy_var_3
+	)}}
+
+happyReduce_36 = happySpecReduce_0  6# happyReduction_36
+happyReduction_36  =  happyIn12
+		 ([]
+	)
+
+happyReduce_37 = happySpecReduce_1  7# happyReduction_37
+happyReduction_37 happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_38 = happySpecReduce_1  7# happyReduction_38
+happyReduction_38 happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_39 = happySpecReduce_3  7# happyReduction_39
+happyReduction_39 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn13
+		 (happy_var_2
+	)}
+
+happyReduce_40 = happyReduce 5# 7# happyReduction_40
+happyReduction_40 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut59 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn13
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") Unknown) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_41 = happySpecReduce_2  8# happyReduction_41
+happyReduction_41 happy_x_2
+	happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	case happyOut14 happy_x_2 of { happy_var_2 -> 
+	happyIn14
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_42 = happySpecReduce_1  8# happyReduction_42
+happyReduction_42 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 ([happy_var_1]
+	)}
+
+happyReduce_43 = happySpecReduce_3  9# happyReduction_43
+happyReduction_43 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn15
+		 (happy_var_2
+	)}
+
+happyReduce_44 = happySpecReduce_0  9# happyReduction_44
+happyReduction_44  =  happyIn15
+		 ([]
+	)
+
+happyReduce_45 = happySpecReduce_0  10# happyReduction_45
+happyReduction_45  =  happyIn16
+		 ([]
+	)
+
+happyReduce_46 = happySpecReduce_2  10# happyReduction_46
+happyReduction_46 happy_x_2
+	happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn16
+		 (happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_47 = happySpecReduce_1  11# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn17
+		 ([NoCG]
+	)
+
+happyReduce_48 = happySpecReduce_1  11# happyReduction_48
+happyReduction_48 happy_x_1
+	 =  happyIn17
+		 ([CGEval, Inline]
+	)
+
+happyReduce_49 = happyReduce 4# 11# happyReduction_49
+happyReduction_49 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut39 happy_x_3 of { happy_var_3 -> 
+	happyIn17
+		 ([CGSpec happy_var_3]
+	) `HappyStk` happyRest}
+
+happyReduce_50 = happySpecReduce_1  11# happyReduction_50
+happyReduction_50 happy_x_1
+	 =  happyIn17
+		 ([CGSpec []]
+	)
+
+happyReduce_51 = happySpecReduce_1  11# happyReduction_51
+happyReduction_51 happy_x_1
+	 =  happyIn17
+		 ([Inline]
+	)
+
+happyReduce_52 = happySpecReduce_2  11# happyReduction_52
+happyReduction_52 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn17
+		 ([CExport happy_var_2]
+	)}
+
+happyReduce_53 = happyReduce 4# 12# happyReduction_53
+happyReduction_53 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn18
+		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
+	) `HappyStk` happyRest}}}
+
+happyReduce_54 = happySpecReduce_1  13# happyReduction_54
+happyReduction_54 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 ([happy_var_1]
+	)}
+
+happyReduce_55 = happySpecReduce_3  13# happyReduction_55
+happyReduction_55 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn19
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_56 = happySpecReduce_1  14# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
+	happyIn20
+		 (happy_var_1
+	)}
+
+happyReduce_57 = happySpecReduce_1  14# happyReduction_57
+happyReduction_57 happy_x_1
+	 =  happyIn20
+		 ("-"
+	)
+
+happyReduce_58 = happySpecReduce_1  14# happyReduction_58
+happyReduction_58 happy_x_1
+	 =  happyIn20
+		 ("<"
+	)
+
+happyReduce_59 = happySpecReduce_1  14# happyReduction_59
+happyReduction_59 happy_x_1
+	 =  happyIn20
+		 (">"
+	)
+
+happyReduce_60 = happySpecReduce_1  15# happyReduction_60
+happyReduction_60 happy_x_1
+	 =  happyIn21
+		 (LeftAssoc
+	)
+
+happyReduce_61 = happySpecReduce_1  15# happyReduction_61
+happyReduction_61 happy_x_1
+	 =  happyIn21
+		 (RightAssoc
+	)
+
+happyReduce_62 = happySpecReduce_1  15# happyReduction_62
+happyReduction_62 happy_x_1
+	 =  happyIn21
+		 (NonAssoc
+	)
+
+happyReduce_63 = happyReduce 4# 16# happyReduction_63
+happyReduction_63 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
+	happyIn22
+		 (LatexDefs happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_64 = happySpecReduce_3  17# happyReduction_64
+happyReduction_64 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	happyIn23
+		 ([(happy_var_1,happy_var_3)]
+	)}}
+
+happyReduce_65 = happyReduce 5# 17# happyReduction_65
+happyReduction_65 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	case happyOut23 happy_x_5 of { happy_var_5 -> 
+	happyIn23
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_66 = happySpecReduce_2  18# happyReduction_66
+happyReduction_66 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 ((happy_var_1, happy_var_2)
+	)}}
+
+happyReduce_67 = happySpecReduce_0  19# happyReduction_67
+happyReduction_67  =  happyIn25
+		 ([]
+	)
+
+happyReduce_68 = happySpecReduce_2  19# happyReduction_68
+happyReduction_68 happy_x_2
+	happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn25
+		 ((happy_var_1,Nothing):happy_var_2
+	)}}
+
+happyReduce_69 = happyReduce 5# 19# happyReduction_69
+happyReduction_69 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut25 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((RVar happy_var_4 happy_var_5 happy_var_1 Unknown, Just happy_var_1):happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_70 = happyReduce 5# 19# happyReduction_70
+happyReduction_70 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut25 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((happy_var_3, Just happy_var_1):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_71 = happyReduce 6# 20# happyReduction_71
+happyReduction_71 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut27 happy_x_1 of { happy_var_1 -> 
+	case happyOut29 happy_x_2 of { happy_var_2 -> 
+	case happyOut32 happy_x_3 of { happy_var_3 -> 
+	case happyOut28 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_5 of { happy_var_5 -> 
+	case happyOut82 happy_x_6 of { happy_var_6 -> 
+	happyIn26
+		 (mkDatatype happy_var_1 happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_72 = happySpecReduce_1  21# happyReduction_72
+happyReduction_72 happy_x_1
+	 =  happyIn27
+		 (False
+	)
+
+happyReduce_73 = happySpecReduce_1  21# happyReduction_73
+happyReduction_73 happy_x_1
+	 =  happyIn27
+		 (True
+	)
+
+happyReduce_74 = happySpecReduce_3  22# happyReduction_74
+happyReduction_74 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut66 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (Right (happy_var_1,happy_var_2)
+	)}}
+
+happyReduce_75 = happySpecReduce_3  22# happyReduction_75
+happyReduction_75 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (Left happy_var_2
+	)}
+
+happyReduce_76 = happySpecReduce_3  22# happyReduction_76
+happyReduction_76 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn28
+		 (Left (RConst happy_var_2 happy_var_3 TYPE)
+	)}}
+
+happyReduce_77 = happySpecReduce_0  23# happyReduction_77
+happyReduction_77  =  happyIn29
+		 ([]
+	)
+
+happyReduce_78 = happySpecReduce_3  23# happyReduction_78
+happyReduction_78 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut30 happy_x_2 of { happy_var_2 -> 
+	happyIn29
+		 (happy_var_2
+	)}
+
+happyReduce_79 = happySpecReduce_1  24# happyReduction_79
+happyReduction_79 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn30
+		 ([happy_var_1]
+	)}
+
+happyReduce_80 = happySpecReduce_3  24# happyReduction_80
+happyReduction_80 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut30 happy_x_3 of { happy_var_3 -> 
+	happyIn30
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_81 = happySpecReduce_1  25# happyReduction_81
+happyReduction_81 happy_x_1
+	 =  happyIn31
+		 (NoElim
+	)
+
+happyReduce_82 = happySpecReduce_1  25# happyReduction_82
+happyReduction_82 happy_x_1
+	 =  happyIn31
+		 (Collapsible
+	)
+
+happyReduce_83 = happySpecReduce_1  26# happyReduction_83
+happyReduction_83 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
+	happyIn32
+		 (happy_var_1
+	)}
+
+happyReduce_84 = happySpecReduce_3  26# happyReduction_84
+happyReduction_84 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
+	happyIn32
+		 (useropFn happy_var_2
+	)}
+
+happyReduce_85 = happyReduce 4# 27# happyReduction_85
+happyReduction_85 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	case happyOut57 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_86 = happyReduce 5# 27# happyReduction_86
+happyReduction_86 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut43 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn33
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_87 = happySpecReduce_3  27# happyReduction_87
+happyReduction_87 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RVar happy_var_2 happy_var_3 happy_var_1 Unknown
+	)}}}
+
+happyReduce_88 = happySpecReduce_3  27# happyReduction_88
+happyReduction_88 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_89 = happySpecReduce_1  27# happyReduction_89
+happyReduction_89 happy_x_1
+	 =  happyIn33
+		 (RPlaceholder
+	)
+
+happyReduce_90 = happySpecReduce_3  27# happyReduction_90
+happyReduction_90 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty") TypeCon
+	)}}
+
+happyReduce_91 = happySpecReduce_3  27# happyReduction_91
+happyReduction_91 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit") TypeCon
+	)}}
+
+happyReduce_92 = happySpecReduce_1  28# happyReduction_92
+happyReduction_92 happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	happyIn34
+		 (happy_var_1
+	)}
+
+happyReduce_93 = happySpecReduce_3  28# happyReduction_93
+happyReduction_93 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn34
+		 (happy_var_2
+	)}
+
+happyReduce_94 = happyReduce 4# 28# happyReduction_94
+happyReduction_94 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	case happyOut57 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_95 = happyReduce 5# 28# happyReduction_95
+happyReduction_95 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut43 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn34
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_96 = happyReduce 4# 28# happyReduction_96
+happyReduction_96 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy") Free) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_97 = happyReduce 4# 28# happyReduction_97
+happyReduction_97 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (doBind Lam happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_98 = happyReduce 4# 28# happyReduction_98
+happyReduction_98 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (doLetBind happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_99 = happySpecReduce_1  28# happyReduction_99
+happyReduction_99 happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	happyIn34
+		 (happy_var_1
+	)}
+
+happyReduce_100 = happyReduce 8# 28# happyReduction_100
+happyReduction_100 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut34 happy_x_6 of { happy_var_6 -> 
+	case happyOut83 happy_x_7 of { happy_var_7 -> 
+	case happyOut82 happy_x_8 of { happy_var_8 -> 
+	happyIn34
+		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else") Free) [happy_var_2,happy_var_4,happy_var_6]
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_101 = happySpecReduce_2  29# happyReduction_101
+happyReduction_101 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	happyIn35
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_102 = happyReduce 4# 29# happyReduction_102
+happyReduction_102 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut35 happy_x_4 of { happy_var_4 -> 
+	happyIn35
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_103 = happySpecReduce_3  30# happyReduction_103
+happyReduction_103 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
+	case happyOut36 happy_x_3 of { happy_var_3 -> 
+	happyIn36
+		 (happy_var_1 ++ happy_var_3
+	)}}
+
+happyReduce_104 = happySpecReduce_1  30# happyReduction_104
+happyReduction_104 happy_x_1
+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
+	happyIn36
+		 (happy_var_1
+	)}
+
+happyReduce_105 = happySpecReduce_3  31# happyReduction_105
+happyReduction_105 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn37
+		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
+	)}}
+
+happyReduce_106 = happySpecReduce_1  32# happyReduction_106
+happyReduction_106 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn38
+		 ([happy_var_1]
+	)}
+
+happyReduce_107 = happySpecReduce_3  32# happyReduction_107
+happyReduction_107 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn38
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_108 = happySpecReduce_2  33# happyReduction_108
+happyReduction_108 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	happyIn39
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_109 = happySpecReduce_1  33# happyReduction_109
+happyReduction_109 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn39
+		 ([(happy_var_1, 0)]
+	)}
+
+happyReduce_110 = happySpecReduce_3  33# happyReduction_110
+happyReduction_110 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut39 happy_x_3 of { happy_var_3 -> 
+	happyIn39
+		 ((happy_var_1,0):happy_var_3
+	)}}
+
+happyReduce_111 = happyReduce 4# 33# happyReduction_111
+happyReduction_111 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut39 happy_x_4 of { happy_var_4 -> 
+	happyIn39
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_112 = happySpecReduce_1  34# happyReduction_112
+happyReduction_112 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	happyIn40
+		 ([happy_var_1]
+	)}
+
+happyReduce_113 = happySpecReduce_3  34# happyReduction_113
+happyReduction_113 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn40
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_114 = happySpecReduce_0  35# happyReduction_114
+happyReduction_114  =  happyIn41
+		 ([]
+	)
+
+happyReduce_115 = happySpecReduce_2  35# happyReduction_115
+happyReduction_115 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut41 happy_x_2 of { happy_var_2 -> 
+	happyIn41
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_116 = happyReduce 4# 36# happyReduction_116
+happyReduction_116 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn42
+		 ([(happy_var_1,happy_var_2,happy_var_4)]
+	) `HappyStk` happyRest}}}
+
+happyReduce_117 = happyReduce 6# 36# happyReduction_117
+happyReduction_117 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut42 happy_x_6 of { happy_var_6 -> 
+	happyIn42
+		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_118 = happySpecReduce_3  37# happyReduction_118
+happyReduction_118 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1 Unknown)
+	)}}}
+
+happyReduce_119 = happySpecReduce_3  37# happyReduction_119
+happyReduction_119 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 ((happy_var_1, happy_var_3)
+	)}}
+
+happyReduce_120 = happyReduce 4# 38# happyReduction_120
+happyReduction_120 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn44
+		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_121 = happyReduce 5# 38# happyReduction_121
+happyReduction_121 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_122 = happyReduce 5# 38# happyReduction_122
+happyReduction_122 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair") TypeCon) [happy_var_1, happy_var_3]
+	) `HappyStk` happyRest}}}}
+
+happyReduce_123 = happyReduce 5# 38# happyReduction_123
+happyReduction_123 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_124 = happyReduce 5# 38# happyReduction_124
+happyReduction_124 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_125 = happyReduce 5# 38# happyReduction_125
+happyReduction_125 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn44
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_126 = happySpecReduce_1  38# happyReduction_126
+happyReduction_126 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn44
+		 (happy_var_1
+	)}
+
+happyReduce_127 = happyReduce 5# 38# happyReduction_127
+happyReduction_127 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut57 happy_x_1 of { happy_var_1 -> 
+	case happyOut57 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_128 = happyReduce 5# 39# happyReduction_128
+happyReduction_128 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_129 = happyReduce 6# 40# happyReduction_129
+happyReduction_129 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_130 = happyReduce 6# 40# happyReduction_130
+happyReduction_130 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_131 = happyReduce 6# 40# happyReduction_131
+happyReduction_131 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_132 = happyReduce 6# 40# happyReduction_132
+happyReduction_132 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_133 = happyReduce 6# 40# happyReduction_133
+happyReduction_133 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}
+
+happyReduce_134 = happyReduce 6# 40# happyReduction_134
+happyReduction_134 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}
+
+happyReduce_135 = happyReduce 6# 40# happyReduction_135
+happyReduction_135 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown)) happy_var_3)
+	) `HappyStk` happyRest}}}
+
+happyReduce_136 = happyReduce 5# 40# happyReduction_136
+happyReduction_136 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (RBind (MN "X" 1) (Lam RPlaceholder)
+                    (RBind (MN "X" 2) (Pi Ex [] (RVar happy_var_3 happy_var_4 (MN "X" 0) Unknown))
+                       (RVar happy_var_3 happy_var_4 (MN "X" 1) Unknown)))
+	) `HappyStk` happyRest}}
+
+happyReduce_137 = happyReduce 5# 40# happyReduction_137
+happyReduction_137 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                   (RBind (MN "X" 1) (Lam RPlaceholder)
+                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair") DataCon)
+                                    [RVar happy_var_3 happy_var_4 (MN "X" 0) Unknown,
+                                     RVar happy_var_3 happy_var_4 (MN "X" 1) Unknown]))
+	) `HappyStk` happyRest}}
+
+happyReduce_138 = happyReduce 6# 40# happyReduction_138
+happyReduction_138 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") DataCon)
+                                    [happy_var_2,
+                                     RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown])
+	) `HappyStk` happyRest}}}
+
+happyReduce_139 = happyReduce 6# 40# happyReduction_139
+happyReduction_139 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") DataCon)
+                                    [RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown, happy_var_3])
+	) `HappyStk` happyRest}}}
+
+happyReduce_140 = happySpecReduce_1  41# happyReduction_140
+happyReduction_140 happy_x_1
+	 =  happyIn47
+		 ("<"
+	)
+
+happyReduce_141 = happySpecReduce_1  41# happyReduction_141
+happyReduction_141 happy_x_1
+	 =  happyIn47
+		 (">"
+	)
+
+happyReduce_142 = happySpecReduce_0  42# happyReduction_142
+happyReduction_142  =  happyIn48
+		 (RPlaceholder
+	)
+
+happyReduce_143 = happySpecReduce_2  42# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn48
+		 (happy_var_2
+	)}
+
+happyReduce_144 = happySpecReduce_0  43# happyReduction_144
+happyReduction_144  =  happyIn49
+		 (RPlaceholder
+	)
+
+happyReduce_145 = happySpecReduce_2  43# happyReduction_145
+happyReduction_145 happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn49
+		 (happy_var_2
+	)}
+
+happyReduce_146 = happyReduce 5# 44# happyReduction_146
+happyReduction_146 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut40 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Im []) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_147 = happySpecReduce_1  44# happyReduction_147
+happyReduction_147 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_148 = happySpecReduce_3  45# happyReduction_148
+happyReduction_148 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	happyIn51
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	)}}
+
+happyReduce_149 = happyReduce 6# 45# happyReduction_149
+happyReduction_149 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut36 happy_x_2 of { happy_var_2 -> 
+	case happyOut53 happy_x_4 of { happy_var_4 -> 
+	case happyOut51 happy_x_6 of { happy_var_6 -> 
+	happyIn51
+		 (doBind (Pi Ex happy_var_4) happy_var_2 happy_var_6
+	) `HappyStk` happyRest}}}
+
+happyReduce_150 = happyReduce 5# 45# happyReduction_150
+happyReduction_150 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut36 happy_x_2 of { happy_var_2 -> 
+	case happyOut51 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (doBind (Pi Ex [Lazy]) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_151 = happySpecReduce_3  45# happyReduction_151
+happyReduction_151 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn51
+		 (bracket happy_var_2
+	)}
+
+happyReduce_152 = happyReduce 7# 45# happyReduction_152
+happyReduction_152 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut51 happy_x_2 of { happy_var_2 -> 
+	case happyOut51 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_5 of { happy_var_5 -> 
+	case happyOut82 happy_x_6 of { happy_var_6 -> 
+	happyIn51
+		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_153 = happySpecReduce_1  45# happyReduction_153
+happyReduction_153 happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	happyIn51
+		 (happy_var_1
+	)}
+
+happyReduce_154 = happySpecReduce_3  45# happyReduction_154
+happyReduction_154 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn51
+		 (happy_var_2
+	)}
+
+happyReduce_155 = happyReduce 5# 45# happyReduction_155
+happyReduction_155 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_156 = happyReduce 5# 45# happyReduction_156
+happyReduction_156 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_157 = happyReduce 5# 45# happyReduction_157
+happyReduction_157 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut56 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair") TypeCon) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_158 = happySpecReduce_1  45# happyReduction_158
+happyReduction_158 happy_x_1
+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> 
+	happyIn51
+		 (happy_var_1
+	)}
+
+happyReduce_159 = happySpecReduce_1  46# happyReduction_159
+happyReduction_159 happy_x_1
+	 =  happyIn52
+		 (Lazy
+	)
+
+happyReduce_160 = happySpecReduce_1  46# happyReduction_160
+happyReduction_160 happy_x_1
+	 =  happyIn52
+		 (Static
+	)
+
+happyReduce_161 = happySpecReduce_3  47# happyReduction_161
+happyReduction_161 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut54 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (happy_var_2
+	)}
+
+happyReduce_162 = happySpecReduce_0  47# happyReduction_162
+happyReduction_162  =  happyIn53
+		 ([]
+	)
+
+happyReduce_163 = happySpecReduce_3  48# happyReduction_163
+happyReduction_163 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
+	case happyOut54 happy_x_3 of { happy_var_3 -> 
+	happyIn54
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_164 = happySpecReduce_1  48# happyReduction_164
+happyReduction_164 happy_x_1
+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
+	happyIn54
+		 ([happy_var_1]
+	)}
+
+happyReduce_165 = happyReduce 8# 49# happyReduction_165
+happyReduction_165 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut48 happy_x_3 of { happy_var_3 -> 
+	case happyOut51 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_7 of { happy_var_7 -> 
+	case happyOut82 happy_x_8 of { happy_var_8 -> 
+	happyIn55
+		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_166 = happySpecReduce_3  50# happyReduction_166
+happyReduction_166 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_167 = happySpecReduce_3  50# happyReduction_167
+happyReduction_167 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut56 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_168 = happySpecReduce_3  51# happyReduction_168
+happyReduction_168 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RVar happy_var_2 happy_var_3 happy_var_1 Unknown
+	)}}}
+
+happyReduce_169 = happySpecReduce_3  51# happyReduction_169
+happyReduction_169 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RReturn happy_var_2 happy_var_3
+	)}}
+
+happyReduce_170 = happySpecReduce_3  51# happyReduction_170
+happyReduction_170 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (bracket happy_var_2
+	)}
+
+happyReduce_171 = happySpecReduce_2  51# happyReduction_171
+happyReduction_171 happy_x_2
+	happy_x_1
+	 =  case happyOut57 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (RPure happy_var_2
+	)}
+
+happyReduce_172 = happySpecReduce_1  51# happyReduction_172
+happyReduction_172 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
+	happyIn57
+		 (RMetavar happy_var_1
+	)}
+
+happyReduce_173 = happyReduce 4# 51# happyReduction_173
+happyReduction_173 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RMetavarPrf (UN "") happy_var_3 False
+	) `HappyStk` happyRest}
+
+happyReduce_174 = happyReduce 4# 51# happyReduction_174
+happyReduction_174 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RMetavarPrf (UN "") happy_var_3 True
+	) `HappyStk` happyRest}
+
+happyReduce_175 = happyReduce 4# 51# happyReduction_175
+happyReduction_175 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn57
+		 (RExpVar happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_176 = happySpecReduce_3  51# happyReduction_176
+happyReduction_176 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_177 = happySpecReduce_1  51# happyReduction_177
+happyReduction_177 happy_x_1
+	 =  happyIn57
+		 (RRefl
+	)
+
+happyReduce_178 = happySpecReduce_3  51# happyReduction_178
+happyReduction_178 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty") TypeCon
+	)}}
+
+happyReduce_179 = happySpecReduce_3  51# happyReduction_179
+happyReduction_179 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit") TypeCon
+	)}}
+
+happyReduce_180 = happySpecReduce_1  51# happyReduction_180
+happyReduction_180 happy_x_1
+	 =  happyIn57
+		 (RPlaceholder
+	)
+
+happyReduce_181 = happySpecReduce_1  51# happyReduction_181
+happyReduction_181 happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (RDo happy_var_1
+	)}
+
+happyReduce_182 = happySpecReduce_3  51# happyReduction_182
+happyReduction_182 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (RIdiom happy_var_2
+	)}
+
+happyReduce_183 = happyReduce 5# 51# happyReduction_183
+happyReduction_183 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut59 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn57
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") DataCon) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_184 = happySpecReduce_1  51# happyReduction_184
+happyReduction_184 happy_x_1
+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (happy_var_1
+	)}
+
+happyReduce_185 = happySpecReduce_1  51# happyReduction_185
+happyReduction_185 happy_x_1
+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (happy_var_1
+	)}
+
+happyReduce_186 = happySpecReduce_1  51# happyReduction_186
+happyReduction_186 happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (happy_var_1
+	)}
+
+happyReduce_187 = happyReduce 5# 51# happyReduction_187
+happyReduction_187 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	case happyOut60 happy_x_4 of { happy_var_4 -> 
+	happyIn57
+		 (mkConsList happy_var_2 happy_var_3 happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_188 = happyReduce 7# 52# happyReduction_188
+happyReduction_188 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	happyIn58
+		 (RApp happy_var_6 happy_var_7 (RApp happy_var_6 happy_var_7 (RVar happy_var_6 happy_var_7 (UN "Exists") DataCon) happy_var_2) happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_189 = happyReduce 5# 52# happyReduction_189
+happyReduction_189 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn58
+		 (RApp happy_var_4 happy_var_5 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists") DataCon) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_190 = happySpecReduce_3  53# happyReduction_190
+happyReduction_190 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn59
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_191 = happySpecReduce_3  53# happyReduction_191
+happyReduction_191 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut59 happy_x_3 of { happy_var_3 -> 
+	happyIn59
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_192 = happySpecReduce_0  54# happyReduction_192
+happyReduction_192  =  happyIn60
+		 ([]
+	)
+
+happyReduce_193 = happySpecReduce_1  54# happyReduction_193
+happyReduction_193 happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	happyIn60
+		 ([happy_var_1]
+	)}
+
+happyReduce_194 = happySpecReduce_3  54# happyReduction_194
+happyReduction_194 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_195 = happyReduce 4# 55# happyReduction_195
+happyReduction_195 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut62 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_196 = happyReduce 10# 55# happyReduction_196
+happyReduction_196 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
+	case happyOut48 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	case happyOut62 happy_x_9 of { happy_var_9 -> 
+	happyIn61
+		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_197 = happySpecReduce_2  56# happyReduction_197
+happyReduction_197 happy_x_2
+	happy_x_1
+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
+	case happyOut62 happy_x_2 of { happy_var_2 -> 
+	happyIn62
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_198 = happySpecReduce_1  56# happyReduction_198
+happyReduction_198 happy_x_1
+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
+	happyIn62
+		 ([happy_var_1]
+	)}
+
+happyReduce_199 = happyReduce 7# 57# happyReduction_199
+happyReduction_199 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_5 of { happy_var_5 -> 
+	case happyOut82 happy_x_6 of { happy_var_6 -> 
+	happyIn63
+		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_200 = happyReduce 8# 57# happyReduction_200
+happyReduction_200 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut48 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	happyIn63
+		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_201 = happyReduce 4# 57# happyReduction_201
+happyReduction_201 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn63
+		 (DoExp happy_var_2 happy_var_3 happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_202 = happySpecReduce_1  58# happyReduction_202
+happyReduction_202 happy_x_1
+	 =  happyIn64
+		 (TYPE
+	)
+
+happyReduce_203 = happySpecReduce_1  58# happyReduction_203
+happyReduction_203 happy_x_1
+	 =  happyIn64
+		 (StringType
+	)
+
+happyReduce_204 = happySpecReduce_1  58# happyReduction_204
+happyReduction_204 happy_x_1
+	 =  happyIn64
+		 (IntType
+	)
+
+happyReduce_205 = happySpecReduce_1  58# happyReduction_205
+happyReduction_205 happy_x_1
+	 =  happyIn64
+		 (CharType
+	)
+
+happyReduce_206 = happySpecReduce_1  58# happyReduction_206
+happyReduction_206 happy_x_1
+	 =  happyIn64
+		 (FloatType
+	)
+
+happyReduce_207 = happySpecReduce_1  58# happyReduction_207
+happyReduction_207 happy_x_1
+	 =  happyIn64
+		 (PtrType
+	)
+
+happyReduce_208 = happySpecReduce_1  58# happyReduction_208
+happyReduction_208 happy_x_1
+	 =  happyIn64
+		 (Builtin "Handle"
+	)
+
+happyReduce_209 = happySpecReduce_1  58# happyReduction_209
+happyReduction_209 happy_x_1
+	 =  happyIn64
+		 (Builtin "Lock"
+	)
+
+happyReduce_210 = happySpecReduce_1  58# happyReduction_210
+happyReduction_210 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
+	happyIn64
+		 (Num happy_var_1
+	)}
+
+happyReduce_211 = happySpecReduce_1  58# happyReduction_211
+happyReduction_211 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
+	happyIn64
+		 (Ch happy_var_1
+	)}
+
+happyReduce_212 = happySpecReduce_1  58# happyReduction_212
+happyReduction_212 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
+	happyIn64
+		 (Str happy_var_1
+	)}
+
+happyReduce_213 = happySpecReduce_1  58# happyReduction_213
+happyReduction_213 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
+	happyIn64
+		 (Bo happy_var_1
+	)}
+
+happyReduce_214 = happySpecReduce_1  58# happyReduction_214
+happyReduction_214 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
+	happyIn64
+		 (Fl happy_var_1
+	)}
+
+happyReduce_215 = happySpecReduce_0  59# happyReduction_215
+happyReduction_215  =  happyIn65
+		 ([]
+	)
+
+happyReduce_216 = happySpecReduce_2  59# happyReduction_216
+happyReduction_216 happy_x_2
+	happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	case happyOut65 happy_x_2 of { happy_var_2 -> 
+	happyIn65
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_217 = happyReduce 4# 60# happyReduction_217
+happyReduction_217 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
+	case happyOut67 happy_x_3 of { happy_var_3 -> 
+	happyIn66
+		 ((happy_var_2, happy_var_3)
+	) `HappyStk` happyRest}}
+
+happyReduce_218 = happySpecReduce_3  60# happyReduction_218
+happyReduction_218 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn66
+		 ((RConst happy_var_2 happy_var_3 TYPE, [])
+	)}}
+
+happyReduce_219 = happyReduce 4# 60# happyReduction_219
+happyReduction_219 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut73 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn66
+		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
+	) `HappyStk` happyRest}}}
+
+happyReduce_220 = happySpecReduce_0  61# happyReduction_220
+happyReduction_220  =  happyIn67
+		 ([]
+	)
+
+happyReduce_221 = happyReduce 4# 61# happyReduction_221
+happyReduction_221 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
+	happyIn67
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_222 = happyReduce 7# 62# happyReduction_222
+happyReduction_222 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_4 of { happy_var_4 -> 
+	case happyOut32 happy_x_6 of { happy_var_6 -> 
+	happyIn68
+		 ((happy_var_4,happy_var_6)
+	) `HappyStk` happyRest}}
+
+happyReduce_223 = happyReduce 6# 63# happyReduction_223
+happyReduction_223 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_3 of { happy_var_3 -> 
+	case happyOut32 happy_x_5 of { happy_var_5 -> 
+	happyIn69
+		 ((happy_var_3,happy_var_5)
+	) `HappyStk` happyRest}}
+
+happyReduce_224 = happyReduce 4# 64# happyReduction_224
+happyReduction_224 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
+	happyIn70
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_225 = happySpecReduce_2  65# happyReduction_225
+happyReduction_225 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (happy_var_2
+	)}
+
+happyReduce_226 = happySpecReduce_3  66# happyReduction_226
+happyReduction_226 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn72
+		 ([(happy_var_1, happy_var_3)]
+	)}}
+
+happyReduce_227 = happyReduce 5# 66# happyReduction_227
+happyReduction_227 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut72 happy_x_5 of { happy_var_5 -> 
+	happyIn72
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_228 = happySpecReduce_1  67# happyReduction_228
+happyReduction_228 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn73
+		 ([happy_var_1]
+	)}
+
+happyReduce_229 = happySpecReduce_2  67# happyReduction_229
+happyReduction_229 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut73 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_230 = happySpecReduce_1  68# happyReduction_230
+happyReduction_230 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn74
+		 (happy_var_1
+	)}
+
+happyReduce_231 = happySpecReduce_1  68# happyReduction_231
+happyReduction_231 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn74
+		 (happy_var_1
+	)}
+
+happyReduce_232 = happySpecReduce_0  69# happyReduction_232
+happyReduction_232  =  happyIn75
+		 ([]
+	)
+
+happyReduce_233 = happySpecReduce_1  69# happyReduction_233
+happyReduction_233 happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	happyIn75
+		 ([happy_var_1]
+	)}
+
+happyReduce_234 = happySpecReduce_3  69# happyReduction_234
+happyReduction_234 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_3 of { happy_var_3 -> 
+	happyIn75
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_235 = happySpecReduce_2  70# happyReduction_235
+happyReduction_235 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Full happy_var_1 happy_var_2
+	)}}
+
+happyReduce_236 = happySpecReduce_2  70# happyReduction_236
+happyReduction_236 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut65 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Simple happy_var_1 happy_var_2
+	)}}
+
+happyReduce_237 = happySpecReduce_2  71# happyReduction_237
+happyReduction_237 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn77
+		 (happy_var_2
+	)}
+
+happyReduce_238 = happySpecReduce_2  72# happyReduction_238
+happyReduction_238 happy_x_2
+	happy_x_1
+	 =  case happyOut38 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Intro happy_var_2
+	)}
+
+happyReduce_239 = happySpecReduce_1  72# happyReduction_239
+happyReduction_239 happy_x_1
+	 =  happyIn78
+		 (Intro []
+	)
+
+happyReduce_240 = happySpecReduce_2  72# happyReduction_240
+happyReduction_240 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Refine happy_var_2
+	)}
+
+happyReduce_241 = happySpecReduce_2  72# happyReduction_241
+happyReduction_241 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Exists happy_var_2
+	)}
+
+happyReduce_242 = happySpecReduce_2  72# happyReduction_242
+happyReduction_242 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Generalise happy_var_2
+	)}
+
+happyReduce_243 = happySpecReduce_1  72# happyReduction_243
+happyReduction_243 happy_x_1
+	 =  happyIn78
+		 (ReflP
+	)
+
+happyReduce_244 = happySpecReduce_2  72# happyReduction_244
+happyReduction_244 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Rewrite False False happy_var_2
+	)}
+
+happyReduce_245 = happySpecReduce_3  72# happyReduction_245
+happyReduction_245 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn78
+		 (Rewrite False True happy_var_3
+	)}
+
+happyReduce_246 = happySpecReduce_2  72# happyReduction_246
+happyReduction_246 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Rewrite True False happy_var_2
+	)}
+
+happyReduce_247 = happySpecReduce_3  72# happyReduction_247
+happyReduction_247 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn78
+		 (Rewrite True True happy_var_3
+	)}
+
+happyReduce_248 = happySpecReduce_1  72# happyReduction_248
+happyReduction_248 happy_x_1
+	 =  happyIn78
+		 (Compute
+	)
+
+happyReduce_249 = happySpecReduce_2  72# happyReduction_249
+happyReduction_249 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Unfold happy_var_2
+	)}
+
+happyReduce_250 = happySpecReduce_1  72# happyReduction_250
+happyReduction_250 happy_x_1
+	 =  happyIn78
+		 (Undo
+	)
+
+happyReduce_251 = happySpecReduce_2  72# happyReduction_251
+happyReduction_251 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Induction happy_var_2
+	)}
+
+happyReduce_252 = happySpecReduce_2  72# happyReduction_252
+happyReduction_252 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Fill happy_var_2
+	)}
+
+happyReduce_253 = happySpecReduce_1  72# happyReduction_253
+happyReduction_253 happy_x_1
+	 =  happyIn78
+		 (Trivial
+	)
+
+happyReduce_254 = happySpecReduce_1  72# happyReduction_254
+happyReduction_254 happy_x_1
+	 =  happyIn78
+		 (SimpleSearch
+	)
+
+happyReduce_255 = happySpecReduce_2  72# happyReduction_255
+happyReduction_255 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (RunTactic happy_var_2
+	)}
+
+happyReduce_256 = happySpecReduce_2  72# happyReduction_256
+happyReduction_256 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Believe happy_var_2
+	)}
+
+happyReduce_257 = happySpecReduce_2  72# happyReduction_257
+happyReduction_257 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Use happy_var_2
+	)}
+
+happyReduce_258 = happySpecReduce_2  72# happyReduction_258
+happyReduction_258 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Decide happy_var_2
+	)}
+
+happyReduce_259 = happySpecReduce_1  72# happyReduction_259
+happyReduction_259 happy_x_1
+	 =  happyIn78
+		 (Abandon
+	)
+
+happyReduce_260 = happySpecReduce_1  72# happyReduction_260
+happyReduction_260 happy_x_1
+	 =  happyIn78
+		 (ProofTerm
+	)
+
+happyReduce_261 = happySpecReduce_1  72# happyReduction_261
+happyReduction_261 happy_x_1
+	 =  happyIn78
+		 (Qed
+	)
+
+happyReduce_262 = happyReduce 4# 73# happyReduction_262
+happyReduction_262 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn79
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_263 = happySpecReduce_2  74# happyReduction_263
+happyReduction_263 happy_x_2
+	happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn80
+		 ([happy_var_1]
+	)}
+
+happyReduce_264 = happySpecReduce_1  74# happyReduction_264
+happyReduction_264 happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn80
+		 ([happy_var_1]
+	)}
+
+happyReduce_265 = happySpecReduce_3  74# happyReduction_265
+happyReduction_265 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn80
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_266 = happySpecReduce_1  75# happyReduction_266
+happyReduction_266 happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn81
+		 ([happy_var_1]
+	)}
+
+happyReduce_267 = happySpecReduce_3  75# happyReduction_267
+happyReduction_267 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn81
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_268 = happyMonadReduce 0# 76# happyReduction_268
+happyReduction_268 (happyRest) tk
+	 = happyThen (( getLineNo)
+	) (\r -> happyReturn (happyIn82 r))
+
+happyReduce_269 = happyMonadReduce 0# 77# happyReduction_269
+happyReduction_269 (happyRest) tk
+	 = happyThen (( getFileName)
+	) (\r -> happyReturn (happyIn83 r))
+
+happyReduce_270 = happyMonadReduce 0# 78# happyReduction_270
+happyReduction_270 (happyRest) tk
+	 = happyThen (( getOps)
+	) (\r -> happyReturn (happyIn84 r))
+
+happyNewToken action sts stk
+	= lexer(\tk -> 
+	let cont i = happyDoAction i tk action sts stk in
+	case tk of {
+	TokenEOF -> happyDoAction 123# tk action sts stk;
+	TokenName happy_dollar_dollar -> cont 1#;
+	TokenInfixName happy_dollar_dollar -> cont 2#;
+	TokenBrackName happy_dollar_dollar -> cont 3#;
+	TokenString happy_dollar_dollar -> cont 4#;
+	TokenInt happy_dollar_dollar -> cont 5#;
+	TokenFloat happy_dollar_dollar -> cont 6#;
+	TokenChar happy_dollar_dollar -> cont 7#;
+	TokenBool happy_dollar_dollar -> cont 8#;
+	TokenMetavar happy_dollar_dollar -> cont 9#;
+	TokenColon -> cont 10#;
+	TokenSemi -> cont 11#;
+	TokenBar -> cont 12#;
+	TokenStars -> cont 13#;
+	TokenLambda -> cont 14#;
+	TokenHashOB -> cont 15#;
+	TokenOB -> cont 16#;
+	TokenCB -> cont 17#;
+	TokenOCB -> cont 18#;
+	TokenCCB -> cont 19#;
+	TokenOSB -> cont 20#;
+	TokenCSB -> cont 21#;
+	TokenOId -> cont 22#;
+	TokenCId -> cont 23#;
+	TokenLPair -> cont 24#;
+	TokenRPair -> cont 25#;
+	TokenExists -> cont 26#;
+	TokenTilde -> cont 27#;
+	TokenPlus -> cont 28#;
+	TokenMinus -> cont 29#;
+	TokenTimes -> cont 30#;
+	TokenDivide -> cont 31#;
+	TokenEquals -> cont 32#;
+	TokenMightEqual -> cont 33#;
+	TokenLT -> cont 34#;
+	TokenGT -> cont 35#;
+	TokenEllipsis -> cont 36#;
+	TokenUnderscore -> cont 37#;
+	TokenComma -> cont 38#;
+	TokenTuple -> cont 39#;
+	TokenBang -> cont 40#;
+	TokenConcat -> cont 41#;
+	TokenGE -> cont 42#;
+	TokenLE -> cont 43#;
+	TokenOr -> cont 44#;
+	TokenAnd -> cont 45#;
+	TokenArrow -> cont 46#;
+	TokenFatArrow -> cont 47#;
+	TokenTransArrow -> cont 48#;
+	TokenLeftArrow -> cont 49#;
+	TokenIntType -> cont 50#;
+	TokenCharType -> cont 51#;
+	TokenFloatType -> cont 52#;
+	TokenStringType -> cont 53#;
+	TokenHandleType -> cont 54#;
+	TokenPtrType -> cont 55#;
+	TokenLockType -> cont 56#;
+	TokenType -> cont 57#;
+	TokenLazyBracket -> cont 58#;
+	TokenDataType -> cont 59#;
+	TokenCoDataType -> cont 60#;
+	TokenInfix -> cont 61#;
+	TokenInfixL -> cont 62#;
+	TokenInfixR -> cont 63#;
+	TokenUsing -> cont 64#;
+	TokenIdiom -> cont 65#;
+	TokenParams -> cont 66#;
+	TokenNamespace -> cont 67#;
+	TokenPublic -> cont 68#;
+	TokenPrivate -> cont 69#;
+	TokenAbstract -> cont 70#;
+	TokenNoElim -> cont 71#;
+	TokenCollapsible -> cont 72#;
+	TokenWhere -> cont 73#;
+	TokenWith -> cont 74#;
+	TokenPartial -> cont 75#;
+	TokenSyntax -> cont 76#;
+	TokenLazy -> cont 77#;
+	TokenStatic -> cont 78#;
+	TokenRefl -> cont 79#;
+	TokenEmptyType -> cont 80#;
+	TokenUnitType -> cont 81#;
+	TokenInclude -> cont 82#;
+	TokenExport -> cont 83#;
+	TokenInline -> cont 84#;
+	TokenDo -> cont 85#;
+	TokenReturn -> cont 86#;
+	TokenIf -> cont 87#;
+	TokenThen -> cont 88#;
+	TokenElse -> cont 89#;
+	TokenLet -> cont 90#;
+	TokenIn -> cont 91#;
+	TokenProof -> cont 92#;
+	TokenTryProof -> cont 93#;
+	TokenIntro -> cont 94#;
+	TokenRefine -> cont 95#;
+	TokenGeneralise -> cont 96#;
+	TokenReflP -> cont 97#;
+	TokenRewrite -> cont 98#;
+	TokenRewriteAll -> cont 99#;
+	TokenCompute -> cont 100#;
+	TokenUnfold -> cont 101#;
+	TokenUndo -> cont 102#;
+	TokenInduction -> cont 103#;
+	TokenFill -> cont 104#;
+	TokenTrivial -> cont 105#;
+	TokenSimpleSearch -> cont 106#;
+	TokenMkTac -> cont 107#;
+	TokenBelieve -> cont 108#;
+	TokenUse -> cont 109#;
+	TokenDecide -> cont 110#;
+	TokenAbandon -> cont 111#;
+	TokenProofTerm -> cont 112#;
+	TokenQED -> cont 113#;
+	TokenLaTeX -> cont 114#;
+	TokenNoCG -> cont 115#;
+	TokenEval -> cont 116#;
+	TokenSpec -> cont 117#;
+	TokenFreeze -> cont 118#;
+	TokenThaw -> cont 119#;
+	TokenTransform -> cont 120#;
+	TokenCInclude -> cont 121#;
+	TokenCLib -> cont 122#;
+	_ -> happyError' tk
+	})
+
+happyError_ tk = happyError' tk
+
+happyThen :: () => P a -> (a -> P b) -> P b
+happyThen = (thenP)
+happyReturn :: () => a -> P a
+happyReturn = (returnP)
+happyThen1 = happyThen
+happyReturn1 :: () => a -> P a
+happyReturn1 = happyReturn
+happyError' :: () => (Token) -> P a
+happyError' tk = (\token -> happyError) tk
+
+mkparse = happySomeParser where
+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
+
+mkparseTerm = happySomeParser where
+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut34 x))
+
+mkparseTactic = happySomeParser where
+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut78 x))
+
+happySeq = happyDontSeq
+
+
+data ConParse = Full Id RawTerm
+              | Simple Id [RawTerm]
+
+parse :: String -> FilePath -> Result [Decl]
+parse s fn = do ds <- mkparse s fn 1 []
+                collectDecls ds
+
+processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
+                  IO ([Decl], [FilePath])
+processImports opts imped (Success ds) = pi imped [] ds
+  where pi imps decls ((PInclude fp):xs)
+           | fp `elem` imps = pi imps decls xs
+           | otherwise = do
+                 f <- readLibFile defaultLibPath fp
+                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
+                 case parse f fp of
+                   Success t -> pi (fp:imps) decls (t++xs)
+                   Failure e f l ->
+                     fail $ f ++ ":" ++ show l ++ ":" ++ e
+        pi imps decls ((Using t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Using t ds']) xs
+        pi imps decls ((Params t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Params t ds']) xs
+        pi imps decls ((DoUsing b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[DoUsing b r ds']) xs
+        pi imps decls ((Idiom b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Idiom b r ds']) xs
+        pi imps decls ((Namespace n ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Namespace n ds']) xs
+        pi imps decls (x:xs) = pi imps (decls++[x]) xs
+        pi imps decls [] = return (decls, imps)
+
+processImports _ imped (Failure e f l) 
+    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
+
+
+parseTerm :: String -> Result RawTerm
+parseTerm s = mkparseTerm s "(input)" 0 []
+
+parseTactic :: String -> Result ITactic
+parseTactic s = mkparseTactic s "(tactic)" 0 []
+
+-- Make a constructor type, and make arguments lazy if it's codata
+
+mkCon :: Bool -> RawTerm -> ConParse -> (Id,RawTerm)
+mkCon co _ (Full n t) = (n,if co then lazify t else t)
+mkCon co ty (Simple n args) = (n, mkConTy args ty)
+   where mkConTy [] ty = ty
+         mkConTy (a:as) ty = let opts = if co then [Lazy] else [] in
+                                 RBind (MN "X" 0) (Pi Ex opts a) (mkConTy as ty)
+
+-- Make sure all arguments are lazy
+
+lazify :: RawTerm -> RawTerm
+lazify (RBind n (Pi p opts a) sc) 
+    = RBind n (Pi p (nub (Lazy:opts)) a) (lazify sc)
+lazify t = t
+
+mkDef file line (n, tms) = mkImpApp (RVar file line n Unknown) tms
+   where mkImpApp f [] = f
+         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
+         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
+
+doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
+doBind b [] t = t
+doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
+
+doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
+doLetBind [] t = t
+doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
+
+mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
+mkTyApp file line n ty = mkApp file line (RVar file line n Unknown) (getTyArgs ty)
+   where getTyArgs (RBind n _ t) = (RVar file line n Unknown):(getTyArgs t)
+         getTyArgs x = []
+
+mkTyParams :: String -> Int -> [Id] -> RawTerm
+mkTyParams f l [] = RConst f l TYPE
+mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
+
+mkDatatype :: Bool -> String -> Int ->
+              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
+                    [TyOpt] -> Datatype
+mkDatatype co file line n (Right ((t, using), cons)) opts
+    = let opts' = if co then nub (Codata:opts) else opts in
+          Datatype n t (map (mkCon co (mkTyApp file line n t)) cons) using opts' file line 
+mkDatatype co file line n (Left t) opts
+    = Latatype n t file line
+
+bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
+bracket x = x
+
+pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
+pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
+pairDesugar file line pair (x:y:xs) 
+    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
+
+sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
+sigDesugar file line (n, tm) sc
+    = mkApp file line (RVar file line (UN "Sigma") TypeCon) [tm, lam]
+   where lam = RBind n (Lam tm) sc
+
+mkConsList :: String -> Int -> [RawTerm] -> RawTerm
+mkConsList f l [] = RVar f l (UN "Nil") Unknown
+mkConsList f l (x:xs) = RApp f l (RApp f l (RVar f l (UN "Cons") Unknown) x)
+                                 (mkConsList f l xs)
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "<built-in>" #-}
+{-# LINE 1 "<command line>" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
+
+{-# LINE 30 "templates/GenericTemplate.hs" #-}
+
+
+data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
+
+
+
+
+
+{-# LINE 51 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 61 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 70 "templates/GenericTemplate.hs" #-}
+
+infixr 9 `HappyStk`
+data HappyStk a = HappyStk a (HappyStk a)
+
+-----------------------------------------------------------------------------
+-- starting the parse
+
+happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
+
+-----------------------------------------------------------------------------
+-- Accepting the parse
+
+-- If the current token is 0#, it means we've just accepted a partial
+-- parse (a %partial parser).  We must ignore the saved token on the top of
+-- the stack in this case.
+happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
+	happyReturn1 ans
+happyAccept j tk st sts (HappyStk ans _) = 
+	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
+
+-----------------------------------------------------------------------------
+-- Arrays only: do the next action
+
+
+
+happyDoAction i tk st
+	= {- nothing -}
+
+
+	  case action of
+		0#		  -> {- nothing -}
+				     happyFail i tk st
+		-1# 	  -> {- nothing -}
+				     happyAccept i tk st
+		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
+
+				     (happyReduceArr Happy_Data_Array.! rule) i tk st
+				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
+		n		  -> {- nothing -}
+
+
+				     happyShift new_state i tk st
+				     where !(new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
+   where !(off)    = indexShortOffAddr happyActOffsets st
+         !(off_i)  = (off Happy_GHC_Exts.+# i)
+	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
+			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
+			else False
+         !(action)
+          | check     = indexShortOffAddr happyTable off_i
+          | otherwise = indexShortOffAddr happyDefActions st
+
+{-# LINE 130 "templates/GenericTemplate.hs" #-}
+
+
+indexShortOffAddr (HappyA# arr) off =
+	Happy_GHC_Exts.narrow16Int# i
+  where
+	!i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
+	!high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
+	!low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
+	!off' = off Happy_GHC_Exts.*# 2#
+
+
+
+
+
+data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
+
+
+
+
+-----------------------------------------------------------------------------
+-- HappyState data type (not arrays)
+
+{-# LINE 163 "templates/GenericTemplate.hs" #-}
+
+-----------------------------------------------------------------------------
+-- Shifting a token
+
+happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
+     let !(i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
+--     trace "shifting the error token" $
+     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
+
+happyShift new_state i tk st sts stk =
+     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
+
+-- happyReduce is specialised for the common cases.
+
+happySpecReduce_0 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_0 nt fn j tk st@((action)) sts stk
+     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
+
+happySpecReduce_1 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
+     = let r = fn v1 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_2 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
+     = let r = fn v1 v2 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_3 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
+     = let r = fn v1 v2 v3 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happyReduce k i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyReduce k nt fn j tk st sts stk
+     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
+	 sts1@((HappyCons (st1@(action)) (_))) ->
+        	let r = fn stk in  -- it doesn't hurt to always seq here...
+       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
+
+happyMonadReduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonadReduce k nt fn j tk st sts stk =
+        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
+       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+happyMonad2Reduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonad2Reduce k nt fn j tk st sts stk =
+       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
+       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+             !(off) = indexShortOffAddr happyGotoOffsets st1
+             !(off_i) = (off Happy_GHC_Exts.+# nt)
+             !(new_state) = indexShortOffAddr happyTable off_i
+
+
+
+
+happyDrop 0# l = l
+happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
+
+happyDropStk 0# l = l
+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
+
+-----------------------------------------------------------------------------
+-- Moving to a new state after a reduction
+
+
+happyGoto nt j tk st = 
+   {- nothing -}
+   happyDoAction j tk new_state
+   where !(off) = indexShortOffAddr happyGotoOffsets st
+         !(off_i) = (off Happy_GHC_Exts.+# nt)
+         !(new_state) = indexShortOffAddr happyTable off_i
 
 
 
diff --git a/dist/build/Idris/idris-tmp/Idris/Parser.hs b/dist/build/Idris/idris-tmp/Idris/Parser.hs
--- a/dist/build/Idris/idris-tmp/Idris/Parser.hs
+++ b/dist/build/Idris/idris-tmp/Idris/Parser.hs
@@ -16,3712 +16,3859 @@
 import Idris.Lib
 
 import Debug.Trace
-#if __GLASGOW_HASKELL__ >= 503
-import qualified Data.Array as Happy_Data_Array
-#else
-import qualified Array as Happy_Data_Array
-#endif
-#if __GLASGOW_HASKELL__ >= 503
-import qualified GHC.Exts as Happy_GHC_Exts
-#else
-import qualified GlaExts as Happy_GHC_Exts
-#endif
-
--- parser produced by Happy Version 1.18.4
-
-newtype HappyAbsSyn t72 = HappyAbsSyn HappyAny
-#if __GLASGOW_HASKELL__ >= 607
-type HappyAny = Happy_GHC_Exts.Any
-#else
-type HappyAny = forall a . a
-#endif
-happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t72)
-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn6 #-}
-happyOut6 :: (HappyAbsSyn t72) -> ([ParseDecl])
-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut6 #-}
-happyIn7 :: (ParseDecl) -> (HappyAbsSyn t72)
-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn7 #-}
-happyOut7 :: (HappyAbsSyn t72) -> (ParseDecl)
-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut7 #-}
-happyIn8 :: (Decl) -> (HappyAbsSyn t72)
-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn8 #-}
-happyOut8 :: (HappyAbsSyn t72) -> (Decl)
-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut8 #-}
-happyIn9 :: (ParseDecl) -> (HappyAbsSyn t72)
-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn9 #-}
-happyOut9 :: (HappyAbsSyn t72) -> (ParseDecl)
-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut9 #-}
-happyIn10 :: (CGFlag) -> (HappyAbsSyn t72)
-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn10 #-}
-happyOut10 :: (HappyAbsSyn t72) -> (CGFlag)
-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut10 #-}
-happyIn11 :: (Bool) -> (HappyAbsSyn t72)
-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn11 #-}
-happyOut11 :: (HappyAbsSyn t72) -> (Bool)
-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut11 #-}
-happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn12 #-}
-happyOut12 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut12 #-}
-happyIn13 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn13 #-}
-happyOut13 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut13 #-}
-happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t72)
-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn14 #-}
-happyOut14 :: (HappyAbsSyn t72) -> ([ParseDecl])
-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut14 #-}
-happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t72)
-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn15 #-}
-happyOut15 :: (HappyAbsSyn t72) -> ([CGFlag])
-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut15 #-}
-happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t72)
-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn16 #-}
-happyOut16 :: (HappyAbsSyn t72) -> ([CGFlag])
-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut16 #-}
-happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t72)
-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn17 #-}
-happyOut17 :: (HappyAbsSyn t72) -> ([CGFlag])
-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut17 #-}
-happyIn18 :: ([Decl]) -> (HappyAbsSyn t72)
-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn18 #-}
-happyOut18 :: (HappyAbsSyn t72) -> ([Decl])
-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut18 #-}
-happyIn19 :: ([String]) -> (HappyAbsSyn t72)
-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn19 #-}
-happyOut19 :: (HappyAbsSyn t72) -> ([String])
-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut19 #-}
-happyIn20 :: (String) -> (HappyAbsSyn t72)
-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn20 #-}
-happyOut20 :: (HappyAbsSyn t72) -> (String)
-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut20 #-}
-happyIn21 :: (Fixity) -> (HappyAbsSyn t72)
-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn21 #-}
-happyOut21 :: (HappyAbsSyn t72) -> (Fixity)
-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut21 #-}
-happyIn22 :: (Decl) -> (HappyAbsSyn t72)
-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn22 #-}
-happyOut22 :: (HappyAbsSyn t72) -> (Decl)
-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut22 #-}
-happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t72)
-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn23 #-}
-happyOut23 :: (HappyAbsSyn t72) -> ([(Id,String)])
-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut23 #-}
-happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t72)
-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn24 #-}
-happyOut24 :: (HappyAbsSyn t72) -> ((Id, [(RawTerm, Maybe Id)]))
-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut24 #-}
-happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t72)
-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn25 #-}
-happyOut25 :: (HappyAbsSyn t72) -> ([(RawTerm,Maybe Id)])
-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut25 #-}
-happyIn26 :: (Datatype) -> (HappyAbsSyn t72)
-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn26 #-}
-happyOut26 :: (HappyAbsSyn t72) -> (Datatype)
-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut26 #-}
-happyIn27 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t72)
-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn27 #-}
-happyOut27 :: (HappyAbsSyn t72) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut27 #-}
-happyIn28 :: ([TyOpt]) -> (HappyAbsSyn t72)
-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn28 #-}
-happyOut28 :: (HappyAbsSyn t72) -> ([TyOpt])
-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut28 #-}
-happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t72)
-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn29 #-}
-happyOut29 :: (HappyAbsSyn t72) -> ([TyOpt])
-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut29 #-}
-happyIn30 :: (TyOpt) -> (HappyAbsSyn t72)
-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn30 #-}
-happyOut30 :: (HappyAbsSyn t72) -> (TyOpt)
-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut30 #-}
-happyIn31 :: (Id) -> (HappyAbsSyn t72)
-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn31 #-}
-happyOut31 :: (HappyAbsSyn t72) -> (Id)
-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut31 #-}
-happyIn32 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn32 #-}
-happyOut32 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut32 #-}
-happyIn33 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn33 #-}
-happyOut33 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut33 #-}
-happyIn34 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn34 #-}
-happyOut34 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut34 #-}
-happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn35 #-}
-happyOut35 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut35 #-}
-happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn36 #-}
-happyOut36 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut36 #-}
-happyIn37 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn37 #-}
-happyOut37 :: (HappyAbsSyn t72) -> ([Id])
-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut37 #-}
-happyIn38 :: ([(Id, Int)]) -> (HappyAbsSyn t72)
-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn38 #-}
-happyOut38 :: (HappyAbsSyn t72) -> ([(Id, Int)])
-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut38 #-}
-happyIn39 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn39 #-}
-happyOut39 :: (HappyAbsSyn t72) -> ([Id])
-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut39 #-}
-happyIn40 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn40 #-}
-happyOut40 :: (HappyAbsSyn t72) -> ([Id])
-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut40 #-}
-happyIn41 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn41 #-}
-happyOut41 :: (HappyAbsSyn t72) -> ([(Id, RawTerm, RawTerm)])
-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut41 #-}
-happyIn42 :: ((Id, RawTerm)) -> (HappyAbsSyn t72)
-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn42 #-}
-happyOut42 :: (HappyAbsSyn t72) -> ((Id, RawTerm))
-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut42 #-}
-happyIn43 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn43 #-}
-happyOut43 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut43 #-}
-happyIn44 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn44 #-}
-happyOut44 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut44 #-}
-happyIn45 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn45 #-}
-happyOut45 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut45 #-}
-happyIn46 :: (String) -> (HappyAbsSyn t72)
-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn46 #-}
-happyOut46 :: (HappyAbsSyn t72) -> (String)
-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut46 #-}
-happyIn47 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn47 #-}
-happyOut47 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut47 #-}
-happyIn48 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn48 #-}
-happyOut48 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut48 #-}
-happyIn49 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn49 #-}
-happyOut49 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut49 #-}
-happyIn50 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn50 #-}
-happyOut50 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut50 #-}
-happyIn51 :: (ArgOpt) -> (HappyAbsSyn t72)
-happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn51 #-}
-happyOut51 :: (HappyAbsSyn t72) -> (ArgOpt)
-happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut51 #-}
-happyIn52 :: ([ArgOpt]) -> (HappyAbsSyn t72)
-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn52 #-}
-happyOut52 :: (HappyAbsSyn t72) -> ([ArgOpt])
-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut52 #-}
-happyIn53 :: ([ArgOpt]) -> (HappyAbsSyn t72)
-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn53 #-}
-happyOut53 :: (HappyAbsSyn t72) -> ([ArgOpt])
-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut53 #-}
-happyIn54 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn54 #-}
-happyOut54 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut54 #-}
-happyIn55 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn55 #-}
-happyOut55 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut55 #-}
-happyIn56 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn56 #-}
-happyOut56 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut56 #-}
-happyIn57 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn57 #-}
-happyOut57 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut57 #-}
-happyIn58 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn58 #-}
-happyOut58 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut58 #-}
-happyIn59 :: ([Do]) -> (HappyAbsSyn t72)
-happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn59 #-}
-happyOut59 :: (HappyAbsSyn t72) -> ([Do])
-happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut59 #-}
-happyIn60 :: ([Do]) -> (HappyAbsSyn t72)
-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn60 #-}
-happyOut60 :: (HappyAbsSyn t72) -> ([Do])
-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut60 #-}
-happyIn61 :: (Do) -> (HappyAbsSyn t72)
-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn61 #-}
-happyOut61 :: (HappyAbsSyn t72) -> (Do)
-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut61 #-}
-happyIn62 :: (Constant) -> (HappyAbsSyn t72)
-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn62 #-}
-happyOut62 :: (HappyAbsSyn t72) -> (Constant)
-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut62 #-}
-happyIn63 :: ([RawTerm]) -> (HappyAbsSyn t72)
-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn63 #-}
-happyOut63 :: (HappyAbsSyn t72) -> ([RawTerm])
-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut63 #-}
-happyIn64 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t72)
-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn64 #-}
-happyOut64 :: (HappyAbsSyn t72) -> ((RawTerm, [(Id, RawTerm)]))
-happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut64 #-}
-happyIn65 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn65 #-}
-happyOut65 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut65 #-}
-happyIn66 :: ((Id,Id)) -> (HappyAbsSyn t72)
-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn66 #-}
-happyOut66 :: (HappyAbsSyn t72) -> ((Id,Id))
-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut66 #-}
-happyIn67 :: ((Id,Id)) -> (HappyAbsSyn t72)
-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn67 #-}
-happyOut67 :: (HappyAbsSyn t72) -> ((Id,Id))
-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut67 #-}
-happyIn68 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn68 #-}
-happyOut68 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut68 #-}
-happyIn69 :: (Id) -> (HappyAbsSyn t72)
-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn69 #-}
-happyOut69 :: (HappyAbsSyn t72) -> (Id)
-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut69 #-}
-happyIn70 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t72)
-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn70 #-}
-happyOut70 :: (HappyAbsSyn t72) -> ([(Id, RawTerm)])
-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut70 #-}
-happyIn71 :: ([Id]) -> (HappyAbsSyn t72)
-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn71 #-}
-happyOut71 :: (HappyAbsSyn t72) -> ([Id])
-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut71 #-}
-happyIn72 :: t72 -> (HappyAbsSyn t72)
-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn72 #-}
-happyOut72 :: (HappyAbsSyn t72) -> t72
-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut72 #-}
-happyIn73 :: ([ConParse]) -> (HappyAbsSyn t72)
-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn73 #-}
-happyOut73 :: (HappyAbsSyn t72) -> ([ConParse])
-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut73 #-}
-happyIn74 :: (ConParse) -> (HappyAbsSyn t72)
-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn74 #-}
-happyOut74 :: (HappyAbsSyn t72) -> (ConParse)
-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut74 #-}
-happyIn75 :: (RawTerm) -> (HappyAbsSyn t72)
-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn75 #-}
-happyOut75 :: (HappyAbsSyn t72) -> (RawTerm)
-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut75 #-}
-happyIn76 :: (ITactic) -> (HappyAbsSyn t72)
-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn76 #-}
-happyOut76 :: (HappyAbsSyn t72) -> (ITactic)
-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut76 #-}
-happyIn77 :: ([ITactic]) -> (HappyAbsSyn t72)
-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn77 #-}
-happyOut77 :: (HappyAbsSyn t72) -> ([ITactic])
-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut77 #-}
-happyIn78 :: ([ITactic]) -> (HappyAbsSyn t72)
-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn78 #-}
-happyOut78 :: (HappyAbsSyn t72) -> ([ITactic])
-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut78 #-}
-happyIn79 :: (LineNumber) -> (HappyAbsSyn t72)
-happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn79 #-}
-happyOut79 :: (HappyAbsSyn t72) -> (LineNumber)
-happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut79 #-}
-happyIn80 :: (String) -> (HappyAbsSyn t72)
-happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn80 #-}
-happyOut80 :: (HappyAbsSyn t72) -> (String)
-happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut80 #-}
-happyIn81 :: (Fixities) -> (HappyAbsSyn t72)
-happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyIn81 #-}
-happyOut81 :: (HappyAbsSyn t72) -> (Fixities)
-happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOut81 #-}
-happyInTok :: (Token) -> (HappyAbsSyn t72)
-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn t72) -> (Token)
-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
-{-# INLINE happyOutTok #-}
-
-
-happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x1b\x00\x6d\x05\x76\x08\x00\x00\x20\x04\x6d\x05\x1f\x01\x1f\x01\x6d\x05\x00\x00\x69\x03\x13\x03\x00\x00\x1f\x01\x00\x00\x6d\x05\x6d\x05\x00\x00\x6d\x05\x6d\x05\x6d\x05\x6d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x61\x09\x67\x02\x6d\x05\x6d\x05\x38\x08\x6d\x05\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x05\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x6d\x05\xae\x00\x1a\x04\x01\x00\x00\x00\x00\x00\x01\x00\x89\x04\x00\x00\x7b\x04\x00\x00\x2c\x02\x73\x04\x72\x04\x70\x04\x6e\x04\x6c\x04\x9b\x09\xd1\x01\x68\x04\x00\x00\x00\x00\x00\x00\x67\x04\x66\x04\x58\x04\xae\x00\xae\x00\x71\x04\x2e\x04\x55\x04\x65\x04\x6d\x05\x5b\x04\x56\x04\x00\x00\x00\x00\x29\x02\x00\x00\xae\x00\x50\x04\x53\x04\xae\x00\x00\x00\xae\x00\xae\x00\xae\x00\xae\x00\x32\x02\x4c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\xfe\xff\x00\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\xd1\x00\x00\x00\xfd\x07\x51\x04\x02\x00\x27\x09\x43\x04\x2a\x00\x9b\x09\xd1\x01\x00\x00\x00\x00\x4a\x04\xff\x03\xe6\x01\x00\x00\x49\x04\x17\x05\x00\x00\x00\x00\x4f\x04\x00\x00\x4f\x04\x00\x00\xe1\x02\x78\x0a\x76\x01\x86\x03\xc1\x04\x3f\x04\xc1\x04\xc1\x04\x3e\x04\x33\x04\xc1\x04\xc1\x04\xcf\x01\x6c\x00\x00\x00\xc1\x04\xed\x08\xae\x00\x38\x04\x16\x04\x00\x00\x38\x08\x29\x04\x00\x00\xc1\x04\x1b\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x00\x00\xa7\x01\x97\x01\x89\x01\x7a\x01\x67\x01\x58\x01\x00\x00\x4a\x01\xc1\x04\x36\x01\xc1\x04\x28\x01\x00\x00\x13\x04\x00\x00\xf8\x00\xae\x00\xc3\x00\x03\x00\x00\x00\x35\x04\x35\x04\x35\x04\x35\x04\x35\x04\x00\x00\xc1\x04\x35\x04\x38\x08\x00\x00\x00\x00\x00\x00\xc1\x04\x0b\x04\x61\x09\x1c\x04\x1e\x04\x08\x04\x17\x01\x19\x04\xc2\x00\x17\x04\x92\x08\x61\x09\x00\x00\x61\x09\x0f\x04\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\x36\x05\x00\x00\xc1\x04\x00\x00\xc1\x04\xc1\x04\xc1\x04\xc1\x04\xc1\x04\x14\x04\x00\x00\x00\x00\xc1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x36\x05\x0c\x04\x6b\x04\xae\x00\xfb\x03\x00\x00\x15\x04\x15\x04\xf7\x03\x07\x04\xfa\x03\x00\x04\x15\x04\x15\x04\x15\x04\xae\x03\x76\x08\xf9\x03\xf3\xff\x0d\x00\xea\x03\xfd\x07\x15\x04\x00\x00\x00\x00\xf5\x03\xf4\x03\xf1\x03\xee\x03\xec\x03\x00\x00\x00\x00\x32\x03\xed\x03\x00\x00\x00\x00\x15\x04\x15\x04\x15\x04\x00\x00\xe6\x03\xd7\x03\x00\x00\x00\x00\x1d\x03\xf0\x03\xde\x03\xd3\x03\xdd\x03\xae\x00\xcc\x03\x01\x00\xae\x00\xd0\x03\xc9\x03\x00\x00\x15\x04\xe0\x04\xd6\x03\xdc\x03\x00\x00\xbc\x03\x00\x00\x15\x04\x00\x00\x00\x00\xae\x00\x00\x00\x27\x09\x00\x00\xae\x00\xae\x00\xbb\x03\x27\x09\x00\x00\x00\x00\x32\x02\x00\x00\x8a\x04\x34\x04\x07\x05\x00\x00\x00\x00\x00\x00\x00\x00\x15\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x09\x00\x00\xae\x00\x00\x00\x00\x00\x20\x02\x20\x02\xd5\x03\x00\x00\x00\x00\x00\x00\xc8\x03\xc3\x03\x61\x09\xc7\x03\xbd\x03\x00\x00\x88\x03\xc9\x01\x59\x03\x00\x00\xd1\x01\x00\x00\x15\x04\xa6\x00\x5d\x00\x15\x04\xc2\x03\x00\x00\x00\x00\x00\x00\xa3\x03\x98\x08\x00\x00\x73\x08\xe3\x03\x00\x00\x61\x09\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\xb9\x03\x00\x00\x38\x08\x00\x00\x9b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x61\x09\xa8\x03\x27\x09\xae\x00\x93\x03\x27\x09\x0d\x00\xae\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x73\x08\x00\x00\x00\x00\x00\x00\x00\x00\x61\x09\x00\x00\xb9\x00\x8d\x03\x10\x02\xd8\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x07\x00\x00\x87\x07\x00\x00\x4c\x07\x00\x00\x11\x07\xa9\x03\xa2\x03\xa1\x03\xa0\x03\x9f\x03\x0a\x00\x00\x00\x00\x00\x15\x04\xd6\x06\x8e\x03\x36\x05\x15\x04\x66\x00\x00\x00\xd5\x01\x9c\x03\x92\x03\x00\x00\x76\x08\x0d\x00\x6b\x03\xae\x00\x00\x00\x8f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x06\x00\x00\xd5\x01\x00\x00\x84\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x60\x06\x8b\x03\x89\x03\x00\x00\x00\x00\x6e\x03\x81\x03\x03\x03\xae\x00\x6a\x03\x00\x00\x00\x00\xae\x00\x7e\x03\x00\x00\x00\x00\xae\x00\x00\x00\xae\x00\x00\x00\x38\x08\x00\x00\x00\x00\x27\x09\x00\x00\x45\x03\x00\x00\x00\x00\x00\x00\xae\x00\xd5\x01\x79\x03\x00\x00\x00\x00\x00\x00\x7a\x03\x00\x00\x7d\x01\x72\x03\x27\x09\x00\x00\xae\x00\x00\x00\x6f\x03\xae\x00\x7b\x03\x00\x00\x15\x04\x00\x00\x36\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x03\x65\x03\x00\x00\x00\x00\x61\x09\x47\x03\x47\x03\x00\x00\x10\x02\x63\x03\x00\x00\x00\x00\x00\x00\x66\x00\x25\x06\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x03\x00\x00\x00\x00\x40\x03\xae\x00\x00\x00\x00\x00\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x03\x00\x00\xea\x05\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x05\x51\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x65\x0a\x97\x0d\x17\x03\x00\x00\x00\x00\x83\x0d\x97\x00\x41\x03\x7c\x0d\x00\x00\x68\x0d\x61\x0d\x00\x00\x38\x03\x00\x00\x4d\x0d\x46\x0d\x00\x00\x32\x0d\x2b\x0d\x17\x0d\x10\x0d\x00\x00\x00\x00\x00\x00\x06\x03\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x52\x09\x83\x0a\xfc\x0c\xf5\x0c\xc6\x0d\xe1\x0c\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x0c\x00\x00\xf6\x02\xf5\x02\x00\x00\xf4\x02\xc6\x0c\x8c\x01\x00\x00\x4b\x0a\x00\x00\x00\x00\x31\x0a\x00\x00\x00\x00\x36\x03\x00\x00\x0a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x28\x03\x24\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x03\x1e\x03\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x77\x01\xe2\x02\xaa\x01\x00\x00\x00\x00\x10\x01\x00\x00\x04\x00\x16\x03\xfa\xff\x0b\x03\x43\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x03\xd3\x02\x72\x01\x00\x00\xcb\x02\x97\x0a\x00\x00\xc6\x02\xc0\x02\x17\x0a\xfd\x09\xe3\x09\xc9\x09\x79\x09\x00\x00\x1e\x06\x00\x00\x00\x00\xbb\x0d\x00\x00\xfd\x02\xfd\xff\x18\x02\x00\x00\x00\x00\xd6\x02\x00\x00\x6e\x01\xb8\x02\xd4\x02\xd3\x0a\xb3\x02\xb2\x02\x6c\x01\xaf\x02\x6b\x01\x00\x00\x69\x01\x69\x01\x15\x01\x78\x00\xab\x0c\x00\x00\xa4\x0c\x90\x0c\x00\x00\x00\x00\xba\x04\x64\x04\x5d\x01\x00\x00\x00\x00\x89\x0c\x7a\x02\x0b\x02\xcf\x02\x00\x00\xae\x02\xab\x0d\x00\x00\xa4\x02\x75\x0c\xa2\x02\x6e\x0c\x5a\x0c\x53\x0c\x3f\x0c\x38\x0c\x9e\x02\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x5a\x01\x00\x00\x5a\x01\x24\x0c\x5a\x01\x1d\x0c\x5a\x01\x00\x00\x00\x00\x00\x00\x5a\x01\x85\x00\x5a\x01\x5a\x01\x00\x00\x55\x01\x47\x01\x3e\x01\x3d\x01\x2c\x01\x98\x02\x09\x0c\x2a\x01\x9e\x0d\x94\x02\x8f\x02\x00\x00\x02\x0c\x00\x00\x2b\x08\x00\x00\x00\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x25\x01\xef\x07\x00\x00\xb4\x07\x00\x00\x8e\x02\x12\x01\x8d\x02\x08\x01\x8b\x02\xe6\x00\x88\x02\xe4\x00\x86\x02\x0e\x04\x00\x00\xb8\x03\xee\x0b\xe7\x0b\xb6\x02\xe0\x01\x00\x00\x00\x00\x84\x02\xd3\x0b\x81\x02\x80\x02\x7f\x02\x00\x00\x00\x00\x28\x00\xe3\x00\x00\x00\xbf\x0a\x3b\x01\x00\x00\x00\x00\xcc\x0b\xb8\x0b\x00\x00\x00\x00\x00\x00\xc1\x02\xb1\x0b\x9d\x0b\x96\x0b\x00\x00\xbc\x01\x90\x02\x01\x02\x00\x00\x00\x00\xe3\x05\x82\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x02\x6f\x02\xde\x00\x00\x00\x6b\x02\x68\x02\x7b\x0b\x67\x0b\x60\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x05\x09\x97\x02\x00\x00\x00\x00\x66\x02\x4c\x0b\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x0b\x00\x00\x00\x00\x8c\x02\x00\x00\x8e\x09\x64\x02\xf2\xff\x8c\x00\x00\x00\x29\x08\x63\x02\x62\x02\xaf\x01\x00\x00\xde\x00\xde\x00\xde\x00\x00\x00\x00\x00\x5f\x02\x00\x00\xe7\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x5e\x02\x80\x00\x5d\x02\x00\x00\xce\x01\x5b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x07\x00\x00\x00\x00\x00\x00\xde\x00\xa3\x00\xde\x00\x00\x00\xcb\x00\x00\x00\x31\x0b\xde\x00\xde\x00\x2a\x0b\x3e\x02\x00\x00\x00\x00\x5b\x02\x00\x00\xf6\x07\x00\x00\xf6\x07\xde\x00\x5a\x02\x3f\x07\x59\x02\xde\x00\x00\x00\x58\x02\x4d\x02\x45\x02\x42\x02\x3d\x02\x3c\x02\x3a\x02\x00\x00\x35\x02\x00\x00\x21\x02\xbb\x07\x2a\x02\x00\x00\x27\x02\x00\x00\xff\x01\x00\x00\x04\x07\x1e\x02\x92\x01\x78\x07\x00\x02\x00\x00\x3d\x07\x00\x00\x16\x00\xde\x00\x1d\x02\x0c\x02\x00\x00\x0a\x02\xde\x00\x00\x00\x04\x02\xfc\x01\xf5\x01\xe5\x01\xda\x01\x00\x00\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x06\x00\x00\x00\x00\x00\x00\xcb\x01\x00\x00\x00\x00\xd0\x01\xb6\x01\xb3\x01\xa8\x01\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\xcf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x16\x0b\xcf\x06\x00\x00\xdd\x00\x0f\x0b\xcf\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\xef\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\xa4\x01\x00\x00\xa1\x01\x66\x05\x9e\x01\x0e\x02\x00\x00\x00\x00\x00\x00\x9b\x01\x86\x01\x38\x01\x24\x01\x99\x05\x00\x00\x00\x00\x00\x00\x68\x01\x00\x00\x00\x00\xcf\x00\x85\x01\x00\x00\x00\x00\x00\x00\x4f\x01\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x0b\x00\x00\x00\x18\x09\x00\x00\x00\x00\x02\x07\x64\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x01\xc5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x06\x00\x00\x34\x00\xea\x00\x00\x00\xf7\xff\xca\x00\x2e\x01\xfb\x0a\x00\x00\xbf\x00\x0e\x01\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x06\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\xbc\x00\x00\x00\x9f\x00\xad\x00\x59\x06\x73\x00\x00\x00\x37\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\x21\x00\x00\x00\x3c\x00\x59\x06\xab\x0a\xe5\xff\x59\x06\x00\x00\x00\x00\x00\x00\x00\x00\x59\x06\x00\x00\x00\x00\xd0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\x2c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\xff\x00\x00\x00\x00\x15\xff\x00\x00\x00\x00\x10\xff\x00\x00\x0e\xff\x00\x00\x00\x00\x0b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x06\xff\x05\xff\x04\xff\xff\xfe\xff\xfe\x9e\xff\x83\xff\x4b\xff\x4c\xff\xa5\xff\x4a\xff\x4f\xff\xff\xfe\xae\xff\x34\xff\x36\xff\x32\xff\x35\xff\x33\xff\x56\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\x00\x00\x3c\xff\x3b\xff\x3a\xff\x3d\xff\x38\xff\x39\xff\x37\xff\x3e\xff\x00\x00\x53\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x2c\xff\xef\xff\xf8\xff\x2c\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\xff\xfe\xff\xfe\x00\x00\x00\x00\x00\x00\x8f\xff\x27\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\xff\xfe\xff\xfe\xd9\xff\xff\xfe\x00\x00\xa8\xff\xff\xfe\xff\xfe\x2c\xff\x2c\xff\x2c\xff\x2c\xff\x2c\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x73\xff\x00\x00\xff\xfe\x00\xff\x73\xff\x00\x00\x00\xff\x00\xff\xff\xfe\xff\xfe\xff\xfe\x57\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\x00\x00\x00\xc7\xff\xc6\xff\x75\xff\x74\xff\xff\xfe\xff\xfe\xff\xfe\x00\x00\x64\xff\x00\x00\x00\x00\x00\x00\x73\xff\x00\x00\x00\xff\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x0f\xff\xff\xfe\x00\x00\xff\xfe\x00\x00\xff\xfe\x18\xff\x97\xff\x1a\xff\xff\xfe\x00\x00\xff\xfe\xff\xfe\x5a\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x00\xff\x00\x00\xff\xfe\x00\x00\xff\xfe\xff\xfe\x54\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x00\x00\x99\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xa4\xff\x00\x00\x00\x00\x00\xff\xff\xfe\x00\xff\xff\xfe\x00\xff\xff\xfe\xff\xfe\xff\xfe\xff\xfe\xff\xfe\x58\xff\xff\xfe\x75\xff\x74\xff\xff\xfe\xff\xfe\x00\x00\x4e\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\xff\x52\xff\x51\xff\xff\xfe\xff\xfe\x00\x00\x42\xff\x00\x00\x00\x00\x59\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x71\xff\xd2\xff\x6e\xff\x91\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\xb2\xff\xb0\xff\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x2c\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8e\xff\x28\xff\x00\x00\x2b\xff\x00\x00\xff\xfe\x24\xff\x20\xff\x00\x00\x00\x00\xff\xfe\xff\xfe\x00\x00\xb3\xff\xff\xfe\xff\xfe\xff\xfe\xaa\xff\xa9\xff\xff\xfe\xd8\xff\x00\x00\xa7\xff\xa6\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\xff\xfe\xff\xfe\x00\x00\xff\xfe\xd4\xff\xd2\xff\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xff\xfe\xff\xfe\xff\xfe\xdc\xff\x00\x00\xca\xff\x00\x00\xff\xfe\xff\xfe\x00\x00\x73\xff\x43\xff\x45\xff\x00\xff\x00\x00\xa1\xff\x55\xff\x89\xff\xff\xfe\x00\xff\x00\x00\x00\xff\xff\xfe\x46\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\xff\xfe\x6d\xff\xff\xfe\x67\xff\xff\xfe\x6a\xff\x00\x00\x00\x00\x60\xff\x00\x00\x00\x00\x00\x00\x00\x00\x72\xff\x00\x00\xff\xfe\x00\xff\x00\xff\xa3\xff\x00\xff\xff\xfe\x8b\xff\x00\xff\x00\xff\x00\xff\x00\xff\x00\xff\x96\xff\x84\xff\x87\xff\x85\xff\x86\xff\x88\xff\x81\xff\xa2\xff\x82\xff\x9b\xff\x98\xff\x00\x00\x9a\xff\x72\xff\x00\x00\x00\x00\x5c\xff\x5b\xff\xff\xfe\x00\xff\x00\xff\x00\xff\xac\xff\x00\x00\x79\xff\x00\x00\x78\xff\x00\x00\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xff\xff\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\xff\xfe\xc8\xff\x00\x00\x00\x00\x00\x00\x03\xff\x02\xff\x70\xff\x00\x00\x00\x00\xcb\xff\x00\x00\xd1\xff\x00\xff\x90\xff\x00\xff\xbc\xff\x00\xff\x00\x00\xe5\xff\x00\x00\xb1\xff\x00\xff\x00\xff\x2c\xff\xff\xfe\x31\xff\x00\x00\x1f\xff\x23\xff\x00\xff\x26\xff\x00\x00\xff\xfe\x00\x00\xbf\xff\xf5\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x29\xff\x00\x00\xb8\xff\x20\xff\xb7\xff\x31\xff\x1c\xff\x1d\xff\x00\x00\x00\xff\x00\x00\xb6\xff\xb5\xff\x2e\xff\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd3\xff\x94\xff\x00\x00\x00\x00\x01\xff\x00\x00\xff\xfe\x00\x00\x00\x00\xff\xfe\x00\xff\x00\x00\x3f\xff\xff\xfe\x00\xff\xff\xfe\x7b\xff\x77\xff\x7c\xff\x7f\xff\x7d\xff\x7e\xff\x80\xff\x76\xff\x7a\xff\xab\xff\x66\xff\x65\xff\x00\xff\x5e\xff\x00\x00\x63\xff\x62\xff\x00\x00\x6b\xff\x6c\xff\x61\xff\x00\x00\x00\x00\x00\xff\x49\xff\x00\xff\xff\xfe\x00\x00\x00\xff\x8c\xff\xff\xfe\x00\xff\x00\x00\x6f\xff\xce\xff\x95\xff\x00\x00\xea\xff\xe3\xff\xd6\xff\x00\x00\x2f\xff\x2d\xff\x1b\xff\x30\xff\x1e\xff\x25\xff\x2a\xff\xbe\xff\xe4\xff\x93\xff\x00\x00\xff\xfe\xe6\xff\x00\xff\x9d\xff\x00\x00\x00\xff\x00\x00\x5d\xff\x69\xff\x5f\xff\x41\xff\x00\x00\x00\x00\xe8\xff\x00\xff\x92\xff\xe7\xff\x44\xff\x40\xff"#
-
-happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x0b\x00\x07\x00\x02\x00\x03\x00\x14\x00\x02\x00\x03\x00\x0c\x00\x19\x00\x02\x00\x0c\x00\x0b\x00\x02\x00\x19\x00\x10\x00\x19\x00\x19\x00\x13\x00\x13\x00\x19\x00\x1a\x00\x19\x00\x49\x00\x23\x00\x11\x00\x01\x00\x19\x00\x20\x00\x21\x00\x1d\x00\x22\x00\x20\x00\x1d\x00\x19\x00\x22\x00\x23\x00\x0c\x00\x22\x00\x23\x00\x27\x00\x10\x00\x0a\x00\x27\x00\x49\x00\x19\x00\x33\x00\x2e\x00\x1c\x00\x41\x00\x2e\x00\x38\x00\x07\x00\x3f\x00\x2e\x00\x40\x00\x40\x00\x2e\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x40\x00\x52\x00\x53\x00\x49\x00\x19\x00\x1a\x00\x20\x00\x21\x00\x4b\x00\x19\x00\x43\x00\x44\x00\x15\x00\x29\x00\x51\x00\x31\x00\x19\x00\x54\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x03\x00\x02\x00\x03\x00\x29\x00\x33\x00\x70\x00\x71\x00\x72\x00\x4b\x00\x38\x00\x02\x00\x03\x00\x19\x00\x4a\x00\x51\x00\x12\x00\x02\x00\x54\x00\x6f\x00\x20\x00\x4a\x00\x49\x00\x73\x00\x3a\x00\x75\x00\x76\x00\x77\x00\x78\x00\x1d\x00\x78\x00\x41\x00\x11\x00\x78\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x1d\x00\x27\x00\x49\x00\x02\x00\x03\x00\x22\x00\x23\x00\x6f\x00\x2e\x00\x26\x00\x27\x00\x73\x00\x0b\x00\x75\x00\x76\x00\x77\x00\x78\x00\x2e\x00\x11\x00\x12\x00\x13\x00\x14\x00\x19\x00\x2e\x00\x17\x00\x24\x00\x19\x00\x19\x00\x1f\x00\x28\x00\x1d\x00\x20\x00\x21\x00\x1f\x00\x19\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x09\x00\x0a\x00\x0b\x00\x01\x00\x19\x00\x0b\x00\x2e\x00\x2f\x00\x49\x00\x58\x00\x1f\x00\x11\x00\x12\x00\x13\x00\x14\x00\x02\x00\x49\x00\x17\x00\x10\x00\x19\x00\x5a\x00\x4a\x00\x4a\x00\x1d\x00\x02\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x11\x00\x49\x00\x26\x00\x27\x00\x0b\x00\x43\x00\x44\x00\x24\x00\x01\x00\x11\x00\x2e\x00\x2f\x00\x52\x00\x53\x00\x0d\x00\x0e\x00\x02\x00\x57\x00\x58\x00\x0c\x00\x5a\x00\x26\x00\x1d\x00\x10\x00\x20\x00\x24\x00\x13\x00\x22\x00\x23\x00\x2e\x00\x49\x00\x27\x00\x27\x00\x19\x00\x19\x00\x4a\x00\x24\x00\x1c\x00\x2e\x00\x2e\x00\x20\x00\x24\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x52\x00\x53\x00\x02\x00\x03\x00\x78\x00\x57\x00\x58\x00\x27\x00\x5a\x00\x24\x00\x24\x00\x0b\x00\x19\x00\x49\x00\x2e\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x20\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x4a\x00\x1d\x00\x70\x00\x71\x00\x72\x00\x4a\x00\x22\x00\x23\x00\x4b\x00\x13\x00\x78\x00\x27\x00\x01\x00\x0a\x00\x51\x00\x19\x00\x0d\x00\x54\x00\x2e\x00\x4a\x00\x4a\x00\x19\x00\x02\x00\x03\x00\x24\x00\x4a\x00\x4a\x00\x10\x00\x4a\x00\x27\x00\x22\x00\x0b\x00\x4a\x00\x46\x00\x24\x00\x48\x00\x02\x00\x03\x00\x30\x00\x78\x00\x32\x00\x33\x00\x29\x00\x35\x00\x6f\x00\x0b\x00\x38\x00\x49\x00\x73\x00\x1d\x00\x75\x00\x76\x00\x77\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x47\x00\x4a\x00\x1d\x00\x19\x00\x0b\x00\x2e\x00\x49\x00\x22\x00\x23\x00\x02\x00\x03\x00\x4a\x00\x27\x00\x23\x00\x4a\x00\x11\x00\x24\x00\x24\x00\x0b\x00\x2e\x00\x0a\x00\x0b\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x4a\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x3b\x00\x4a\x00\x1d\x00\x4a\x00\x49\x00\x2e\x00\x24\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x0a\x00\x24\x00\x05\x00\x0d\x00\x1d\x00\x0b\x00\x2e\x00\x4a\x00\x4a\x00\x22\x00\x23\x00\x02\x00\x03\x00\x24\x00\x27\x00\x24\x00\x24\x00\x4a\x00\x24\x00\x4a\x00\x0b\x00\x2e\x00\x24\x00\x1d\x00\x19\x00\x02\x00\x03\x00\x24\x00\x22\x00\x23\x00\x19\x00\x4a\x00\x78\x00\x27\x00\x0b\x00\x26\x00\x4a\x00\x19\x00\x1d\x00\x4a\x00\x2e\x00\x02\x00\x03\x00\x22\x00\x23\x00\x49\x00\x78\x00\x23\x00\x27\x00\x49\x00\x0b\x00\x4a\x00\x1d\x00\x4a\x00\x4a\x00\x2e\x00\x4a\x00\x22\x00\x23\x00\x11\x00\x4a\x00\x2d\x00\x27\x00\x2f\x00\x2e\x00\x4a\x00\x78\x00\x19\x00\x1d\x00\x2e\x00\x17\x00\x18\x00\x03\x00\x22\x00\x23\x00\x02\x00\x03\x00\x08\x00\x27\x00\x49\x00\x78\x00\x02\x00\x03\x00\x02\x00\x0b\x00\x2e\x00\x01\x00\x12\x00\x0a\x00\x0b\x00\x0b\x00\x0c\x00\x0d\x00\x14\x00\x19\x00\x78\x00\x11\x00\x0c\x00\x13\x00\x14\x00\x49\x00\x10\x00\x1d\x00\x49\x00\x02\x00\x03\x00\x49\x00\x22\x00\x23\x00\x49\x00\x1d\x00\x20\x00\x27\x00\x49\x00\x78\x00\x22\x00\x23\x00\x26\x00\x27\x00\x2e\x00\x2d\x00\x19\x00\x2f\x00\x1b\x00\x49\x00\x2e\x00\x2f\x00\x49\x00\x31\x00\x78\x00\x46\x00\x1d\x00\x48\x00\x25\x00\x26\x00\x27\x00\x22\x00\x23\x00\x09\x00\x0a\x00\x0b\x00\x27\x00\x3f\x00\x78\x00\x30\x00\x03\x00\x32\x00\x33\x00\x2e\x00\x35\x00\x08\x00\x48\x00\x38\x00\x19\x00\x4a\x00\x52\x00\x53\x00\x1d\x00\x1e\x00\x78\x00\x12\x00\x52\x00\x53\x00\x49\x00\x19\x00\x0d\x00\x0e\x00\x19\x00\x1d\x00\x1e\x00\x4a\x00\x02\x00\x03\x00\x01\x00\x49\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\x70\x00\x71\x00\x72\x00\x10\x00\x57\x00\x49\x00\x70\x00\x71\x00\x72\x00\x16\x00\x03\x00\x18\x00\x49\x00\x1d\x00\x1b\x00\x08\x00\x4a\x00\x2c\x00\x22\x00\x23\x00\x49\x00\x30\x00\x31\x00\x27\x00\x25\x00\x12\x00\x49\x00\x28\x00\x49\x00\x38\x00\x2e\x00\x2f\x00\x19\x00\x17\x00\x18\x00\x4c\x00\x4d\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x01\x00\x02\x00\x49\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x52\x00\x53\x00\x4a\x00\x0e\x00\x0f\x00\x10\x00\x46\x00\x47\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\x49\x00\x18\x00\x54\x00\x55\x00\x1b\x00\x49\x00\x1d\x00\x49\x00\x49\x00\x5b\x00\x0e\x00\x22\x00\x23\x00\x49\x00\x25\x00\x26\x00\x49\x00\x28\x00\x70\x00\x71\x00\x72\x00\x19\x00\x1a\x00\x2e\x00\x49\x00\x1d\x00\x1e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x49\x00\x49\x00\x49\x00\x19\x00\x2c\x00\x4a\x00\x4a\x00\x4a\x00\x30\x00\x31\x00\x4a\x00\x4a\x00\x4a\x00\x49\x00\x19\x00\x49\x00\x38\x00\x4c\x00\x49\x00\x4e\x00\x4f\x00\x50\x00\x49\x00\x49\x00\x2a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x02\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x06\x00\x49\x00\x49\x00\x49\x00\x0e\x00\x0f\x00\x10\x00\x4a\x00\x19\x00\x4a\x00\x1b\x00\x4a\x00\x16\x00\x49\x00\x18\x00\x49\x00\x49\x00\x1b\x00\x4a\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x4a\x00\x22\x00\x23\x00\x49\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x49\x00\x32\x00\x33\x00\x34\x00\x35\x00\x4a\x00\x49\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x49\x00\x29\x00\x4a\x00\x19\x00\x49\x00\x49\x00\x29\x00\x1d\x00\x29\x00\x4a\x00\x49\x00\x05\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x4c\x00\x4a\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x2e\x00\x4a\x00\x54\x00\x55\x00\x56\x00\x01\x00\x4a\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4a\x00\x01\x00\x05\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x19\x00\x22\x00\x23\x00\x0a\x00\x0b\x00\x16\x00\x27\x00\x18\x00\x4a\x00\x10\x00\x1b\x00\x19\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x0e\x00\x19\x00\x25\x00\x19\x00\x16\x00\x28\x00\x06\x00\x20\x00\x4a\x00\x4a\x00\x4a\x00\x11\x00\x19\x00\x11\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x4a\x00\x1d\x00\x4a\x00\x19\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x26\x00\x27\x00\x19\x00\x02\x00\x03\x00\x46\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x13\x00\x15\x00\x26\x00\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x15\x00\x11\x00\x2e\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x15\x00\x22\x00\x23\x00\x26\x00\x03\x00\x16\x00\x27\x00\x18\x00\x13\x00\x11\x00\x1b\x00\x0b\x00\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\x13\x00\x48\x00\x25\x00\x11\x00\x26\x00\x28\x00\x11\x00\x0b\x00\x26\x00\x0c\x00\x0b\x00\x11\x00\x14\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x15\x00\x1d\x00\x14\x00\x0b\x00\x22\x00\x23\x00\x22\x00\x23\x00\x26\x00\x27\x00\x20\x00\x27\x00\x11\x00\x11\x00\x11\x00\x11\x00\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x11\x00\x2e\x00\x14\x00\x54\x00\x55\x00\x56\x00\x01\x00\x2e\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\x11\x00\x11\x00\x0a\x00\x0e\x00\x0f\x00\x10\x00\x13\x00\x19\x00\x0b\x00\x1b\x00\x31\x00\x16\x00\x13\x00\x18\x00\x10\x00\x04\x00\x1b\x00\x20\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x04\x00\x0b\x00\x26\x00\x13\x00\x25\x00\x02\x00\x03\x00\x28\x00\x30\x00\x20\x00\x32\x00\x33\x00\x20\x00\x35\x00\x11\x00\x11\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x0a\x00\x15\x00\x19\x00\x26\x00\x11\x00\x13\x00\x1d\x00\x13\x00\x4a\x00\x0a\x00\x13\x00\x22\x00\x23\x00\x13\x00\x13\x00\x5b\x00\x27\x00\x4c\x00\x0c\x00\x4e\x00\x4f\x00\x50\x00\x26\x00\x2e\x00\x0b\x00\x54\x00\x55\x00\x56\x00\x01\x00\x20\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x13\x00\x26\x00\x0d\x00\x13\x00\x0e\x00\x0f\x00\x10\x00\x0a\x00\x19\x00\x11\x00\x1b\x00\x11\x00\x16\x00\x31\x00\x18\x00\x26\x00\x11\x00\x1b\x00\x26\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x03\x00\x26\x00\x25\x00\x20\x00\x13\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x0a\x00\x35\x00\x11\x00\x2f\x00\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x11\x00\x11\x00\x1d\x00\x03\x00\x0a\x00\x0a\x00\x12\x00\x22\x00\x23\x00\x4a\x00\x5a\x00\x04\x00\x27\x00\x0b\x00\x11\x00\x0b\x00\x04\x00\x10\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\x01\x00\x12\x00\x10\x00\x54\x00\x55\x00\x56\x00\x01\x00\x3f\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x04\x00\x10\x00\x10\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\x14\x00\x19\x00\x12\x00\x1b\x00\x12\x00\x16\x00\x12\x00\x18\x00\x12\x00\x12\x00\x1b\x00\x0c\x00\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\x05\x00\x20\x00\x25\x00\xff\xff\x78\x00\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\x78\x00\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x25\x00\x26\x00\x27\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x0b\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x4a\x00\xff\xff\xff\xff\x27\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\x12\x00\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\x02\x00\x03\x00\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x22\x00\x23\x00\x22\x00\x23\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x4c\x00\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x56\x00\x01\x00\xff\xff\x59\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x13\x00\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x19\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4c\x00\x0b\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\x10\x00\x27\x00\x54\x00\x55\x00\x56\x00\xff\xff\x16\x00\x59\x00\x18\x00\xff\xff\x30\x00\x1b\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x13\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\x11\x00\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\x11\x00\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\x19\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\xff\xff\x2c\x00\xff\xff\x27\x00\xff\xff\x30\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x30\x00\x38\x00\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x19\x00\x1a\x00\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\x21\x00\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\x2b\x00\x2c\x00\xff\xff\x2c\x00\xff\xff\x30\x00\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\x38\x00\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x16\x00\xff\xff\x18\x00\x54\x00\x55\x00\x1b\x00\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\x1d\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x2e\x00\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\xff\xff\x4e\x00\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x54\x00\x55\x00\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x25\x00\x35\x00\xff\xff\xff\xff\x38\x00\x39\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\x13\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x19\x00\x1a\x00\xff\xff\x1d\x00\xff\xff\x0f\x00\x10\x00\xff\xff\x22\x00\x23\x00\xff\xff\x4f\x00\x50\x00\x27\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x2c\x00\x2e\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x0c\x00\x25\x00\xff\xff\x0f\x00\x10\x00\x38\x00\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x21\x00\x4f\x00\x50\x00\xff\xff\x18\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\xff\xff\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x02\x00\x03\x00\xff\xff\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\x19\x00\xff\xff\x1b\x00\x27\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x0e\x00\x2e\x00\xff\xff\x25\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\x1b\x00\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\x19\x00\x35\x00\x1b\x00\x30\x00\x38\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\x27\x00\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\x30\x00\x38\x00\x32\x00\x33\x00\x27\x00\x35\x00\x19\x00\x1a\x00\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x21\x00\x32\x00\x33\x00\x19\x00\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x33\x00\xff\xff\x35\x00\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\xb6\x00\x24\x00\x12\x02\x10\x01\xb5\x00\xb6\x00\x69\x01\xb5\x00\xb6\x00\xda\xff\x4b\x01\xe8\x00\x53\x00\x11\xff\xe8\x00\x90\x00\x54\x00\x32\x01\x32\x01\xfc\xff\x1b\x01\x78\x00\x79\x00\x36\x01\x6f\x02\x48\x02\x2b\x02\x24\x00\x32\x01\xda\xff\xda\xff\xb7\x00\x45\x01\x1c\x01\xb7\x00\xf7\x01\xb8\x00\xb9\x00\x53\x00\xb8\x00\xb9\x00\xba\x00\x54\x00\xdf\x00\xba\x00\x6a\x02\xae\x00\x7a\x00\xbb\x00\xbb\x01\xfa\x01\xbb\x00\x7b\x00\x77\x00\x59\x00\xea\x00\x59\x02\x33\x01\xea\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x35\x01\x6a\x01\x6b\x01\xda\xff\x78\x00\x79\x00\x13\x01\x14\x01\x5d\x00\x4b\x02\x58\x02\xf9\x01\x4a\x01\x81\x01\x5e\x00\x73\xff\x4b\x01\x5f\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x95\x00\xb5\x00\xb6\x00\xfb\x00\x7a\x00\x6c\x01\x6d\x01\x6e\x01\x5d\x00\x7b\x00\xb5\x00\xb6\x00\x1c\x02\x6d\x02\x5e\x00\x96\x00\xe8\x00\x5f\x00\x60\x00\x6e\x02\xbb\x00\x15\x01\x61\x00\x4c\x01\x62\x00\x63\x00\x64\x00\xfc\xff\xb7\x00\x11\xff\x4d\x01\xe9\x00\xff\xff\xb8\x00\xb9\x00\x61\x02\x28\x01\xb7\x00\xba\x00\x6c\x02\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x60\x00\xbb\x00\x24\x02\xba\x00\x61\x00\xa0\xff\x62\x00\x63\x00\x64\x00\xfc\xff\xbb\x00\xa0\xff\xa0\xff\xa0\xff\xa0\xff\xc9\x00\xea\x00\xa0\xff\xb2\x00\xa0\xff\xc9\x00\xeb\x01\xf3\x00\xb7\x00\x2b\x01\x2c\x01\xb2\x01\xf7\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xa0\xff\xba\x00\xe0\x01\x66\x01\x67\x01\x24\x00\xc9\x00\x9f\xff\xbb\x00\xa0\xff\x60\x02\xdd\x01\xca\x00\x9f\xff\x9f\xff\x9f\xff\x9f\xff\xe8\x00\x62\x02\x9f\xff\x54\x00\x9f\xff\x8d\xff\x42\x02\xb3\x00\xb7\x00\xe8\x00\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x6e\xff\x15\x01\x9f\xff\xba\x00\x13\xff\xf8\x01\xf9\x01\xb2\x00\x24\x00\x9d\x01\xbb\x00\x9f\xff\xa0\xff\xa0\xff\xde\x01\x0f\x01\xe8\x00\xa0\xff\xa0\xff\x53\x00\xa0\xff\x6e\xff\xb7\x00\x54\x00\x9e\x01\xb2\x00\xfc\xff\xb8\x00\xb9\x00\xea\x00\x65\x02\x9f\x01\xba\x00\x1c\x02\xae\x00\xb3\x00\xb2\x00\xaf\x00\xea\x00\xbb\x00\x5d\x02\xb2\x00\xa0\xff\xa0\xff\xa0\xff\x64\x02\x9f\xff\x9f\xff\xb5\x00\xb6\x00\xa0\xff\x9f\xff\x9f\xff\x9f\x01\x9f\xff\xb2\x00\xb2\x00\x17\xff\x1c\x02\x66\x02\xea\x00\xb2\x00\xb2\x00\x44\x02\xb2\x00\x1d\x02\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x47\x02\xb7\x00\x9f\xff\x9f\xff\x9f\xff\xb3\x00\xb8\x00\xb9\x00\x5d\x00\x85\x00\x9f\xff\xba\x00\x24\x00\xa1\x01\x5e\x00\x19\x00\x73\xff\x5f\x00\xbb\x00\x25\x02\xb3\x00\x36\x01\xb5\x00\xb6\x00\xb2\x00\x80\x01\x8f\x01\x54\x00\x91\x01\x1d\x00\x37\x01\x16\xff\x4a\x02\x70\x01\xb2\x00\x1f\x02\xb5\x00\xb6\x00\x1e\x00\x13\xff\x86\x00\x20\x00\xfb\x00\x21\x00\x60\x00\x14\xff\x22\x00\x41\x02\x61\x00\xb7\x00\x62\x00\x63\x00\x64\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\x87\x00\x93\x01\xb7\x00\x7d\x01\x12\xff\xbb\x00\x43\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x95\x01\xba\x00\x91\x00\xbb\x00\x5b\x02\xb2\x00\xb2\x00\x0d\xff\xbb\x00\xe8\x01\x67\x01\xb7\x00\x3b\x01\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x0f\x02\xb3\x00\x17\xff\xba\x00\x0c\xff\x10\x02\xaa\x01\xb7\x00\xad\x01\x46\x02\xbb\x00\xb2\x00\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xdf\x00\xea\x00\x4f\x02\x73\xff\xb7\x00\x0a\xff\xbb\x00\xae\x01\xaf\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xb2\x00\xba\x00\xb2\x00\xb2\x00\xb0\x01\xb2\x00\x29\x02\x09\xff\xbb\x00\xea\x00\xb7\x00\x53\x02\xb5\x00\xb6\x00\xb2\x00\xb8\x00\xb9\x00\x04\x02\xb1\x01\x16\xff\xba\x00\x08\xff\x50\x02\xb3\x00\x90\x00\xb7\x00\xeb\x00\xbb\x00\xb5\x00\xb6\x00\xb8\x00\xb9\x00\x55\x02\x14\xff\x91\x00\xba\x00\x08\x02\x07\xff\xb3\x00\xb7\x00\xff\x00\x01\x01\xbb\x00\xb3\x00\xb8\x00\xb9\x00\x3a\x01\xeb\x00\x38\x02\xba\x00\x68\x02\xc0\x01\xb3\x00\x12\xff\x3b\x01\xb7\x00\xbb\x00\xf2\x01\x2e\x01\x15\x02\xb8\x00\xb9\x00\xb5\x00\xb6\x00\x52\x02\xba\x00\x12\x02\x0d\xff\x68\xff\xb6\x00\x74\x00\xd2\xff\xbb\x00\x24\x00\x4a\x00\xe9\x01\x67\x01\x68\xff\x68\xff\x68\xff\x69\x01\x4c\x00\x0c\xff\x68\xff\x53\x00\x68\xff\x68\xff\x13\x02\x54\x00\xb7\x00\x17\x02\xb5\x00\xb6\x00\x19\x02\xb8\x00\xb9\x00\x1a\x02\x75\x00\x68\xff\xba\x00\x34\x02\x0a\xff\x76\x00\x77\x00\x68\xff\x68\xff\xbb\x00\x38\x02\x19\x00\x39\x02\xd0\x00\x35\x02\x68\xff\x68\xff\x36\x02\x68\xff\x09\xff\x70\x01\xb7\x00\x71\x01\x1b\x00\x1c\x00\x1d\x00\xb8\x00\xb9\x00\x65\x01\x66\x01\x67\x01\xba\x00\x68\xff\x08\xff\x1e\x00\x15\x02\x1f\x00\x20\x00\xbb\x00\x21\x00\x16\x02\x68\xff\x22\x00\xdf\x00\x37\x02\x6a\x01\x6b\x01\xbe\x01\xe1\x00\x07\xff\x4a\x00\x68\xff\x68\xff\xb3\x01\xdf\x00\x0e\x01\x0f\x01\x4c\x00\xe0\x00\xe1\x00\x88\x01\xb5\x00\xb6\x00\x24\x00\xb4\x01\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x8a\x00\x78\x00\xa8\x00\x6c\x01\x6d\x01\x6e\x01\x2d\x00\x0c\x01\xb5\x01\x68\xff\x68\xff\x68\xff\x2e\x00\x15\x02\x2f\x00\xb6\x01\xb7\x00\x30\x00\x22\x02\xc5\x01\xc2\x01\xb8\x00\xb9\x00\xb7\x01\xaa\x00\xc3\x01\xba\x00\x32\x00\x4a\x00\xb8\x01\x33\x00\xb9\x01\x7b\x00\xbb\x00\x3e\x01\x4c\x00\x2d\x01\x2e\x01\x3b\x02\x3c\x02\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xba\x01\xda\x01\x24\x00\xa3\x00\xc9\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xc6\x01\x6a\x01\x6b\x01\xc7\x01\x2b\x00\x2c\x00\x2d\x00\x30\x01\x31\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\xcb\x01\x2f\x00\x40\x00\x41\x00\x30\x00\xcd\x01\xa4\x00\xce\x01\xcf\x01\x8b\x00\x72\x00\xa5\x00\xa6\x00\xd0\x01\x32\x00\xa7\x00\xd1\x01\x33\x00\x6c\x01\x6d\x01\x6e\x01\xe2\x00\xa8\x00\xa8\x00\xd2\x01\xe3\x00\xe1\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xd3\x01\xd4\x01\xd6\x01\xd9\x01\xfd\x01\xe4\x00\xea\x01\xec\x01\xee\x01\xaa\x00\xe5\x00\xf3\x01\xf4\x01\xfb\x01\x3f\x01\x42\x01\x56\x01\x7b\x00\x3c\x00\x57\x01\x3d\x00\x3e\x00\x3f\x00\x5b\x01\x5c\x01\x6e\x01\x40\x00\x41\x00\x42\x00\x24\x00\x74\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x76\x01\x82\x01\x83\x01\x84\x01\x2b\x00\x2c\x00\x2d\x00\x86\x01\x19\x00\x8e\x01\x89\x01\x90\x01\x2e\x00\x92\x01\x2f\x00\x94\x01\x96\x01\x30\x00\xa7\x01\xa4\x00\x1b\x00\x1c\x00\x1d\x00\xa8\x01\x76\x00\x77\x00\xac\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\xcf\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\xd5\x00\xd8\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xdb\x00\xdd\x00\x00\x01\xfe\x00\x02\x01\x03\x01\x09\x01\xb7\x00\x0d\x01\x8b\x01\x0a\x01\x11\x01\xb8\x00\xb9\x00\xb5\x00\xb6\x00\xff\x00\xba\x00\x3c\x00\x23\x01\x3d\x00\x3e\x00\x3f\x00\x06\x02\xbb\x00\x24\x01\x40\x00\x41\x00\x42\x00\x24\x00\x27\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x28\x01\x24\x00\x29\x01\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x31\x01\xb8\x00\xb9\x00\x4f\x01\x50\x01\x2e\x00\xba\x00\x2f\x00\x3c\x01\x54\x00\x30\x00\x34\x01\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x72\x00\x6b\x00\x32\x00\x6c\x00\x70\x00\x33\x00\x8b\x00\x51\x01\x93\x00\x96\x00\x97\x00\x47\xff\x99\x00\x5a\x01\xc5\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\xb0\x00\xb7\x00\xbb\x00\xc2\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x5b\x01\xba\x00\x5b\x01\xba\x00\xc8\x00\xb5\x00\xb6\x00\x04\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x71\x02\x5d\x02\x5f\x02\x40\x00\x41\x00\x42\x00\x24\x00\xe0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x60\x02\x68\x02\xea\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x40\x02\xb8\x00\xb9\x00\x41\x02\x00\x00\x2e\x00\xba\x00\x2f\x00\x4a\x02\x4e\x02\x30\x00\x51\x02\x31\x00\xbb\x00\xf5\x00\xb6\x00\xb5\x00\xb6\x00\x52\x02\x55\x02\x32\x00\x5b\x02\x04\x02\x33\x00\x07\x02\xe2\x01\x08\x02\x0a\x02\x0b\x02\xf6\x00\x15\x02\x1f\x02\xc7\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xf7\x00\x1c\x02\xb7\x00\x21\x02\x22\x02\xf8\x00\xf9\x00\xb8\x00\xb9\x00\xfa\x00\xba\x00\x27\x02\xba\x00\x2c\x02\x2d\x02\x2e\x02\x2f\x02\xfb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x30\x02\x3d\x02\xc2\x01\x40\x00\x41\x00\x42\x00\x24\x00\xbe\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\xea\x00\xcb\x01\xcd\x01\xdf\x00\x2b\x00\x2c\x00\x2d\x00\xe3\x01\x19\x00\xe4\x01\xd4\x00\xd9\x01\x2e\x00\xe6\x01\x2f\x00\xe7\x01\xe8\x01\x30\x00\xf7\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\x01\x02\x02\x02\x00\x02\x42\x01\x32\x00\xb5\x00\xb6\x00\x33\x00\x1e\x00\x41\x01\x1f\x00\x20\x00\x45\x01\x21\x00\x47\x01\x49\x01\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x48\x01\x4a\x01\x53\x01\xd8\x01\x52\x01\x59\x01\x5e\x01\xb7\x00\x5f\x01\x8c\x01\x70\x01\x60\x01\xb8\x00\xb9\x00\x61\x01\x62\x01\x73\x01\xba\x00\x3c\x00\x8d\x00\x3d\x00\x3e\x00\x3f\x00\x65\x01\xbb\x00\x79\x01\x40\x00\x41\x00\x42\x00\x24\x00\x7a\x01\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x80\x01\x78\x01\x88\x01\x98\x01\x2b\x00\x2c\x00\x2d\x00\xa4\x01\x19\x00\x9c\x01\xd7\x00\xa0\x01\x2e\x00\x7d\x01\x2f\x00\xa2\x01\xa3\x01\x30\x00\xa6\x01\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\xcd\x00\x32\x00\xd7\x00\xda\x00\x33\x00\x1e\x00\xf1\x01\x1f\x00\x20\x00\xdf\x00\x21\x00\xc4\xff\xdd\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xc5\xff\xf2\x00\xb7\x00\x00\x00\xdf\x00\xdf\x00\x16\x01\xb8\x00\xb9\x00\x8d\x01\x0d\x01\x65\x00\xba\x00\x1d\x01\x2d\x01\x39\x01\x66\x00\x3a\x01\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x68\x00\x69\x00\x6e\x00\x40\x00\x41\x00\x42\x00\x24\x00\x6a\x00\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x6b\x00\x6f\x00\x70\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x72\x00\x19\x00\x81\x00\xec\x00\x82\x00\x2e\x00\x83\x00\x2f\x00\x84\x00\x85\x00\x30\x00\x8d\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x8e\x00\xb2\x00\x32\x00\x00\x00\xff\xff\x33\x00\x1e\x00\xf2\x01\x1f\x00\x20\x00\xff\xff\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xed\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\xee\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x03\x02\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xef\x00\x00\x00\x00\x00\xba\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\xf0\x01\x43\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x2e\x00\xba\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbb\x00\xb5\x00\xb6\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xff\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xb7\x00\x00\x00\xb7\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\xb8\x00\xb9\x00\x00\x00\xba\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3c\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x42\x00\x24\x00\x00\x00\x09\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x18\x02\x00\x00\x2b\x00\x2c\x00\x2d\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x19\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x3c\x00\x72\x02\x3d\x00\x3e\x00\x3f\x00\x00\x00\x2d\x00\x1d\x00\x40\x00\x41\x00\x42\x00\x00\x00\x2e\x00\x43\x00\x2f\x00\x00\x00\x1e\x00\x30\x00\x0b\x02\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x0c\x02\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x02\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x6a\x02\x63\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x64\x02\x1d\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\x86\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0f\x02\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x3e\x02\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x4c\x02\x18\x01\x00\x00\x3d\x02\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x28\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x00\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x31\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x56\x02\x18\x01\x00\x00\xc4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x32\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\x18\x01\x00\x00\xd5\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x33\x02\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xbc\x01\xbf\x01\x00\x00\xe4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x34\x02\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x98\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xc8\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x89\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x19\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x00\x00\x99\x01\x00\x00\x1d\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x1e\x00\x7b\x00\xa9\x01\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x78\x00\xa8\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x16\x01\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\xf5\x01\x18\x01\x00\x00\xa4\x01\x00\x00\xaa\x00\x00\x00\xaa\x00\x00\x00\x32\x00\x00\x00\x00\x00\x33\x00\x7b\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x3d\x00\x3e\x00\x3f\x00\x2e\x00\x00\x00\x2f\x00\x40\x00\x41\x00\x30\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x3d\x00\x3e\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x74\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x01\x44\x00\x45\x00\x46\x00\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x77\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x1a\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x1d\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x0b\x02\x20\x00\x7e\x00\x21\x00\x00\x00\x00\x00\x22\x00\x57\x02\x00\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\xee\x01\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x78\x00\xa8\x00\x00\x00\xb7\x00\x00\x00\xac\x00\xad\x00\x00\x00\xb8\x00\xb9\x00\x00\x00\x7f\x00\x80\x00\xba\x00\x1e\x01\x44\x00\x45\x00\x46\x00\x00\x00\xa9\x00\xbb\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x47\x00\x7e\x00\x00\x00\x48\x00\x49\x00\x7b\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\xae\x00\x24\x00\x00\x00\x00\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x78\x00\xa8\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x16\x01\x7f\x00\x80\x00\x00\x00\x2f\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xfc\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1f\x01\x44\x00\x45\x00\x46\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x20\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x80\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x21\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x22\x01\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8e\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x8f\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x47\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\xb5\x00\xb6\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\xb9\x00\x9e\x00\x00\x00\x9f\x00\xba\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x72\x00\xbb\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x25\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\xa1\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x26\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x6b\x02\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x05\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x7e\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x89\x01\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x06\x01\x07\x01\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x45\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x8a\x01\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x24\x02\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x28\x02\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdb\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xdd\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xfe\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x3e\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x53\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x54\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x55\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x62\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x73\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x74\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x75\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7a\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x7b\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x85\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xa6\x01\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xab\x01\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcd\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xce\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd2\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd3\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd4\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xd7\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xe6\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xf2\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x66\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x92\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x98\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9a\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9c\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x9d\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbc\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbd\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbe\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xbf\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc0\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc1\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc3\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc5\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xc7\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\xcb\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x1a\x00\x1e\x00\x22\x00\x1f\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x20\x00\x00\x00\x21\x00\x00\x00\x1e\x00\x22\x00\xa9\x01\x20\x00\x1d\x00\x21\x00\x78\x00\xa8\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x16\x01\xda\x00\x20\x00\x19\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x17\x01\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x9b\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-happyReduceArr = Happy_Data_Array.array (3, 257) [
-	(3 , happyReduce_3),
-	(4 , happyReduce_4),
-	(5 , happyReduce_5),
-	(6 , happyReduce_6),
-	(7 , happyReduce_7),
-	(8 , happyReduce_8),
-	(9 , happyReduce_9),
-	(10 , happyReduce_10),
-	(11 , happyReduce_11),
-	(12 , happyReduce_12),
-	(13 , happyReduce_13),
-	(14 , happyReduce_14),
-	(15 , happyReduce_15),
-	(16 , happyReduce_16),
-	(17 , happyReduce_17),
-	(18 , happyReduce_18),
-	(19 , happyReduce_19),
-	(20 , happyReduce_20),
-	(21 , happyReduce_21),
-	(22 , happyReduce_22),
-	(23 , happyReduce_23),
-	(24 , happyReduce_24),
-	(25 , happyReduce_25),
-	(26 , happyReduce_26),
-	(27 , happyReduce_27),
-	(28 , happyReduce_28),
-	(29 , happyReduce_29),
-	(30 , happyReduce_30),
-	(31 , happyReduce_31),
-	(32 , happyReduce_32),
-	(33 , happyReduce_33),
-	(34 , happyReduce_34),
-	(35 , happyReduce_35),
-	(36 , happyReduce_36),
-	(37 , happyReduce_37),
-	(38 , happyReduce_38),
-	(39 , happyReduce_39),
-	(40 , happyReduce_40),
-	(41 , happyReduce_41),
-	(42 , happyReduce_42),
-	(43 , happyReduce_43),
-	(44 , happyReduce_44),
-	(45 , happyReduce_45),
-	(46 , happyReduce_46),
-	(47 , happyReduce_47),
-	(48 , happyReduce_48),
-	(49 , happyReduce_49),
-	(50 , happyReduce_50),
-	(51 , happyReduce_51),
-	(52 , happyReduce_52),
-	(53 , happyReduce_53),
-	(54 , happyReduce_54),
-	(55 , happyReduce_55),
-	(56 , happyReduce_56),
-	(57 , happyReduce_57),
-	(58 , happyReduce_58),
-	(59 , happyReduce_59),
-	(60 , happyReduce_60),
-	(61 , happyReduce_61),
-	(62 , happyReduce_62),
-	(63 , happyReduce_63),
-	(64 , happyReduce_64),
-	(65 , happyReduce_65),
-	(66 , happyReduce_66),
-	(67 , happyReduce_67),
-	(68 , happyReduce_68),
-	(69 , happyReduce_69),
-	(70 , happyReduce_70),
-	(71 , happyReduce_71),
-	(72 , happyReduce_72),
-	(73 , happyReduce_73),
-	(74 , happyReduce_74),
-	(75 , happyReduce_75),
-	(76 , happyReduce_76),
-	(77 , happyReduce_77),
-	(78 , happyReduce_78),
-	(79 , happyReduce_79),
-	(80 , happyReduce_80),
-	(81 , happyReduce_81),
-	(82 , happyReduce_82),
-	(83 , happyReduce_83),
-	(84 , happyReduce_84),
-	(85 , happyReduce_85),
-	(86 , happyReduce_86),
-	(87 , happyReduce_87),
-	(88 , happyReduce_88),
-	(89 , happyReduce_89),
-	(90 , happyReduce_90),
-	(91 , happyReduce_91),
-	(92 , happyReduce_92),
-	(93 , happyReduce_93),
-	(94 , happyReduce_94),
-	(95 , happyReduce_95),
-	(96 , happyReduce_96),
-	(97 , happyReduce_97),
-	(98 , happyReduce_98),
-	(99 , happyReduce_99),
-	(100 , happyReduce_100),
-	(101 , happyReduce_101),
-	(102 , happyReduce_102),
-	(103 , happyReduce_103),
-	(104 , happyReduce_104),
-	(105 , happyReduce_105),
-	(106 , happyReduce_106),
-	(107 , happyReduce_107),
-	(108 , happyReduce_108),
-	(109 , happyReduce_109),
-	(110 , happyReduce_110),
-	(111 , happyReduce_111),
-	(112 , happyReduce_112),
-	(113 , happyReduce_113),
-	(114 , happyReduce_114),
-	(115 , happyReduce_115),
-	(116 , happyReduce_116),
-	(117 , happyReduce_117),
-	(118 , happyReduce_118),
-	(119 , happyReduce_119),
-	(120 , happyReduce_120),
-	(121 , happyReduce_121),
-	(122 , happyReduce_122),
-	(123 , happyReduce_123),
-	(124 , happyReduce_124),
-	(125 , happyReduce_125),
-	(126 , happyReduce_126),
-	(127 , happyReduce_127),
-	(128 , happyReduce_128),
-	(129 , happyReduce_129),
-	(130 , happyReduce_130),
-	(131 , happyReduce_131),
-	(132 , happyReduce_132),
-	(133 , happyReduce_133),
-	(134 , happyReduce_134),
-	(135 , happyReduce_135),
-	(136 , happyReduce_136),
-	(137 , happyReduce_137),
-	(138 , happyReduce_138),
-	(139 , happyReduce_139),
-	(140 , happyReduce_140),
-	(141 , happyReduce_141),
-	(142 , happyReduce_142),
-	(143 , happyReduce_143),
-	(144 , happyReduce_144),
-	(145 , happyReduce_145),
-	(146 , happyReduce_146),
-	(147 , happyReduce_147),
-	(148 , happyReduce_148),
-	(149 , happyReduce_149),
-	(150 , happyReduce_150),
-	(151 , happyReduce_151),
-	(152 , happyReduce_152),
-	(153 , happyReduce_153),
-	(154 , happyReduce_154),
-	(155 , happyReduce_155),
-	(156 , happyReduce_156),
-	(157 , happyReduce_157),
-	(158 , happyReduce_158),
-	(159 , happyReduce_159),
-	(160 , happyReduce_160),
-	(161 , happyReduce_161),
-	(162 , happyReduce_162),
-	(163 , happyReduce_163),
-	(164 , happyReduce_164),
-	(165 , happyReduce_165),
-	(166 , happyReduce_166),
-	(167 , happyReduce_167),
-	(168 , happyReduce_168),
-	(169 , happyReduce_169),
-	(170 , happyReduce_170),
-	(171 , happyReduce_171),
-	(172 , happyReduce_172),
-	(173 , happyReduce_173),
-	(174 , happyReduce_174),
-	(175 , happyReduce_175),
-	(176 , happyReduce_176),
-	(177 , happyReduce_177),
-	(178 , happyReduce_178),
-	(179 , happyReduce_179),
-	(180 , happyReduce_180),
-	(181 , happyReduce_181),
-	(182 , happyReduce_182),
-	(183 , happyReduce_183),
-	(184 , happyReduce_184),
-	(185 , happyReduce_185),
-	(186 , happyReduce_186),
-	(187 , happyReduce_187),
-	(188 , happyReduce_188),
-	(189 , happyReduce_189),
-	(190 , happyReduce_190),
-	(191 , happyReduce_191),
-	(192 , happyReduce_192),
-	(193 , happyReduce_193),
-	(194 , happyReduce_194),
-	(195 , happyReduce_195),
-	(196 , happyReduce_196),
-	(197 , happyReduce_197),
-	(198 , happyReduce_198),
-	(199 , happyReduce_199),
-	(200 , happyReduce_200),
-	(201 , happyReduce_201),
-	(202 , happyReduce_202),
-	(203 , happyReduce_203),
-	(204 , happyReduce_204),
-	(205 , happyReduce_205),
-	(206 , happyReduce_206),
-	(207 , happyReduce_207),
-	(208 , happyReduce_208),
-	(209 , happyReduce_209),
-	(210 , happyReduce_210),
-	(211 , happyReduce_211),
-	(212 , happyReduce_212),
-	(213 , happyReduce_213),
-	(214 , happyReduce_214),
-	(215 , happyReduce_215),
-	(216 , happyReduce_216),
-	(217 , happyReduce_217),
-	(218 , happyReduce_218),
-	(219 , happyReduce_219),
-	(220 , happyReduce_220),
-	(221 , happyReduce_221),
-	(222 , happyReduce_222),
-	(223 , happyReduce_223),
-	(224 , happyReduce_224),
-	(225 , happyReduce_225),
-	(226 , happyReduce_226),
-	(227 , happyReduce_227),
-	(228 , happyReduce_228),
-	(229 , happyReduce_229),
-	(230 , happyReduce_230),
-	(231 , happyReduce_231),
-	(232 , happyReduce_232),
-	(233 , happyReduce_233),
-	(234 , happyReduce_234),
-	(235 , happyReduce_235),
-	(236 , happyReduce_236),
-	(237 , happyReduce_237),
-	(238 , happyReduce_238),
-	(239 , happyReduce_239),
-	(240 , happyReduce_240),
-	(241 , happyReduce_241),
-	(242 , happyReduce_242),
-	(243 , happyReduce_243),
-	(244 , happyReduce_244),
-	(245 , happyReduce_245),
-	(246 , happyReduce_246),
-	(247 , happyReduce_247),
-	(248 , happyReduce_248),
-	(249 , happyReduce_249),
-	(250 , happyReduce_250),
-	(251 , happyReduce_251),
-	(252 , happyReduce_252),
-	(253 , happyReduce_253),
-	(254 , happyReduce_254),
-	(255 , happyReduce_255),
-	(256 , happyReduce_256),
-	(257 , happyReduce_257)
-	]
-
-happy_n_terms = 121 :: Int
-happy_n_nonterms = 76 :: Int
-
-happyReduce_3 = happySpecReduce_0  0# happyReduction_3
-happyReduction_3  =  happyIn6
-		 ([]
-	)
-
-happyReduce_4 = happySpecReduce_2  0# happyReduction_4
-happyReduction_4 happy_x_2
-	happy_x_1
-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_5 = happySpecReduce_2  0# happyReduction_5
-happyReduction_5 happy_x_2
-	happy_x_1
-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_2 of { happy_var_2 -> 
-	happyIn6
-		 (map RealDecl happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_6 = happyReduce 4# 0# happyReduction_6
-happyReduction_6 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	case happyOut6 happy_x_4 of { happy_var_4 -> 
-	happyIn6
-		 (RealDecl (PInclude happy_var_2) : happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_7 = happySpecReduce_1  1# happyReduction_7
-happyReduction_7 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (happy_var_1
-	)}
-
-happyReduce_8 = happySpecReduce_1  1# happyReduction_8
-happyReduction_8 happy_x_1
-	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl (DataDecl happy_var_1)
-	)}
-
-happyReduce_9 = happySpecReduce_1  1# happyReduction_9
-happyReduction_9 happy_x_1
-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_10 = happyReduce 5# 1# happyReduction_10
-happyReduction_10 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn7
-		 (RealDecl (Freeze happy_var_3 happy_var_4 [] happy_var_2)
-	) `HappyStk` happyRest}}}
-
-happyReduce_11 = happyReduce 4# 1# happyReduction_11
-happyReduction_11 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut65 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_12 = happyReduce 4# 1# happyReduction_12
-happyReduction_12 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut66 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PDoUsing happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_13 = happyReduce 4# 1# happyReduction_13
-happyReduction_13 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut67 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PIdiom happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_14 = happyReduce 4# 1# happyReduction_14
-happyReduction_14 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PParams happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_15 = happyReduce 4# 1# happyReduction_15
-happyReduction_15 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut69 happy_x_1 of { happy_var_1 -> 
-	case happyOut6 happy_x_3 of { happy_var_3 -> 
-	happyIn7
-		 (PNamespace happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_16 = happySpecReduce_1  1# happyReduction_16
-happyReduction_16 happy_x_1
-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
-	happyIn7
-		 (RealDecl happy_var_1
-	)}
-
-happyReduce_17 = happyReduce 6# 1# happyReduction_17
-happyReduction_17 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut40 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	happyIn7
-		 (RealDecl (SynDef happy_var_2 happy_var_3 happy_var_5)
-	) `HappyStk` happyRest}}}
-
-happyReduce_18 = happySpecReduce_2  1# happyReduction_18
-happyReduction_18 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CInclude happy_var_2)
-	)}
-
-happyReduce_19 = happySpecReduce_2  1# happyReduction_19
-happyReduction_19 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn7
-		 (RealDecl (CLib happy_var_2)
-	)}
-
-happyReduce_20 = happyReduce 5# 2# happyReduction_20
-happyReduction_20 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn8
-		 (Transform happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_21 = happyReduce 7# 3# happyReduction_21
-happyReduction_21 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut15 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (FunType happy_var_1 happy_var_3 (nub happy_var_4) happy_var_5 happy_var_6
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_22 = happySpecReduce_3  3# happyReduction_22
-happyReduction_22 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut77 happy_x_2 of { happy_var_2 -> 
-	happyIn9
-		 (ProofScript happy_var_1 happy_var_2
-	)}}
-
-happyReduce_23 = happyReduce 9# 3# happyReduction_23
-happyReduction_23 (happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	case happyOut80 happy_x_8 of { happy_var_8 -> 
-	case happyOut79 happy_x_9 of { happy_var_9 -> 
-	happyIn9
-		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}}}}
-
-happyReduce_24 = happyReduce 10# 3# happyReduction_24
-happyReduction_24 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	case happyOut80 happy_x_9 of { happy_var_9 -> 
-	case happyOut79 happy_x_10 of { happy_var_10 -> 
-	happyIn9
-		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_25 = happyReduce 8# 3# happyReduction_25
-happyReduction_25 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
-	case happyOut12 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut15 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_7 of { happy_var_7 -> 
-	case happyOut79 happy_x_8 of { happy_var_8 -> 
-	happyIn9
-		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_5)
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_26 = happyReduce 5# 3# happyReduction_26
-happyReduction_26 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn9
-		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
-	) `HappyStk` happyRest}}
-
-happyReduce_27 = happyReduce 8# 3# happyReduction_27
-happyReduction_27 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_7 of { happy_var_7 -> 
-	happyIn9
-		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
-	) `HappyStk` happyRest}}}
-
-happyReduce_28 = happyReduce 7# 3# happyReduction_28
-happyReduction_28 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut11 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut14 happy_x_6 of { happy_var_6 -> 
-	happyIn9
-		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_29 = happySpecReduce_1  4# happyReduction_29
-happyReduction_29 happy_x_1
-	 =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_30 = happySpecReduce_1  4# happyReduction_30
-happyReduction_30 happy_x_1
-	 =  happyIn10
-		 (Vis Private
-	)
-
-happyReduce_31 = happySpecReduce_1  4# happyReduction_31
-happyReduction_31 happy_x_1
-	 =  happyIn10
-		 (Vis Abstract
-	)
-
-happyReduce_32 = happySpecReduce_0  4# happyReduction_32
-happyReduction_32  =  happyIn10
-		 (Vis Public
-	)
-
-happyReduce_33 = happySpecReduce_1  5# happyReduction_33
-happyReduction_33 happy_x_1
-	 =  happyIn11
-		 (False
-	)
-
-happyReduce_34 = happySpecReduce_2  5# happyReduction_34
-happyReduction_34 happy_x_2
-	happy_x_1
-	 =  happyIn11
-		 (True
-	)
-
-happyReduce_35 = happySpecReduce_3  6# happyReduction_35
-happyReduction_35 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
-	case happyOut12 happy_x_3 of { happy_var_3 -> 
-	happyIn12
-		 (happy_var_2:happy_var_3
-	)}}
-
-happyReduce_36 = happySpecReduce_0  6# happyReduction_36
-happyReduction_36  =  happyIn12
-		 ([]
-	)
-
-happyReduce_37 = happySpecReduce_1  7# happyReduction_37
-happyReduction_37 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_38 = happySpecReduce_1  7# happyReduction_38
-happyReduction_38 happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	happyIn13
-		 (happy_var_1
-	)}
-
-happyReduce_39 = happySpecReduce_3  7# happyReduction_39
-happyReduction_39 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn13
-		 (happy_var_2
-	)}
-
-happyReduce_40 = happyReduce 5# 7# happyReduction_40
-happyReduction_40 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn13
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_41 = happySpecReduce_2  8# happyReduction_41
-happyReduction_41 happy_x_2
-	happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	case happyOut14 happy_x_2 of { happy_var_2 -> 
-	happyIn14
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_42 = happySpecReduce_1  8# happyReduction_42
-happyReduction_42 happy_x_1
-	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
-	happyIn14
-		 ([happy_var_1]
-	)}
-
-happyReduce_43 = happySpecReduce_1  9# happyReduction_43
-happyReduction_43 happy_x_1
-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> 
-	happyIn15
-		 (happy_var_1
-	)}
-
-happyReduce_44 = happySpecReduce_3  9# happyReduction_44
-happyReduction_44 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn15
-		 (happy_var_2
-	)}
-
-happyReduce_45 = happySpecReduce_0  10# happyReduction_45
-happyReduction_45  =  happyIn16
-		 ([]
-	)
-
-happyReduce_46 = happySpecReduce_2  10# happyReduction_46
-happyReduction_46 happy_x_2
-	happy_x_1
-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
-	case happyOut16 happy_x_2 of { happy_var_2 -> 
-	happyIn16
-		 (happy_var_1 ++ happy_var_2
-	)}}
-
-happyReduce_47 = happySpecReduce_1  11# happyReduction_47
-happyReduction_47 happy_x_1
-	 =  happyIn17
-		 ([NoCG]
-	)
-
-happyReduce_48 = happySpecReduce_1  11# happyReduction_48
-happyReduction_48 happy_x_1
-	 =  happyIn17
-		 ([CGEval, Inline]
-	)
-
-happyReduce_49 = happyReduce 4# 11# happyReduction_49
-happyReduction_49 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn17
-		 ([CGSpec happy_var_3]
-	) `HappyStk` happyRest}
-
-happyReduce_50 = happySpecReduce_1  11# happyReduction_50
-happyReduction_50 happy_x_1
-	 =  happyIn17
-		 ([CGSpec []]
-	)
-
-happyReduce_51 = happySpecReduce_1  11# happyReduction_51
-happyReduction_51 happy_x_1
-	 =  happyIn17
-		 ([Inline]
-	)
-
-happyReduce_52 = happySpecReduce_2  11# happyReduction_52
-happyReduction_52 happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
-	happyIn17
-		 ([CExport happy_var_2]
-	)}
-
-happyReduce_53 = happyReduce 4# 12# happyReduction_53
-happyReduction_53 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn18
-		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
-	) `HappyStk` happyRest}}}
-
-happyReduce_54 = happySpecReduce_1  13# happyReduction_54
-happyReduction_54 happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	happyIn19
-		 ([happy_var_1]
-	)}
-
-happyReduce_55 = happySpecReduce_3  13# happyReduction_55
-happyReduction_55 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
-	case happyOut19 happy_x_3 of { happy_var_3 -> 
-	happyIn19
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_56 = happySpecReduce_1  14# happyReduction_56
-happyReduction_56 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
-	happyIn20
-		 (happy_var_1
-	)}
-
-happyReduce_57 = happySpecReduce_1  14# happyReduction_57
-happyReduction_57 happy_x_1
-	 =  happyIn20
-		 ("-"
-	)
-
-happyReduce_58 = happySpecReduce_1  14# happyReduction_58
-happyReduction_58 happy_x_1
-	 =  happyIn20
-		 ("<"
-	)
-
-happyReduce_59 = happySpecReduce_1  14# happyReduction_59
-happyReduction_59 happy_x_1
-	 =  happyIn20
-		 (">"
-	)
-
-happyReduce_60 = happySpecReduce_1  15# happyReduction_60
-happyReduction_60 happy_x_1
-	 =  happyIn21
-		 (LeftAssoc
-	)
-
-happyReduce_61 = happySpecReduce_1  15# happyReduction_61
-happyReduction_61 happy_x_1
-	 =  happyIn21
-		 (RightAssoc
-	)
-
-happyReduce_62 = happySpecReduce_1  15# happyReduction_62
-happyReduction_62 happy_x_1
-	 =  happyIn21
-		 (NonAssoc
-	)
-
-happyReduce_63 = happyReduce 4# 16# happyReduction_63
-happyReduction_63 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
-	happyIn22
-		 (LatexDefs happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_64 = happySpecReduce_3  17# happyReduction_64
-happyReduction_64 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	happyIn23
-		 ([(happy_var_1,happy_var_3)]
-	)}}
-
-happyReduce_65 = happyReduce 5# 17# happyReduction_65
-happyReduction_65 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
-	case happyOut23 happy_x_5 of { happy_var_5 -> 
-	happyIn23
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_66 = happySpecReduce_2  18# happyReduction_66
-happyReduction_66 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn24
-		 ((happy_var_1, happy_var_2)
-	)}}
-
-happyReduce_67 = happySpecReduce_0  19# happyReduction_67
-happyReduction_67  =  happyIn25
-		 ([]
-	)
-
-happyReduce_68 = happySpecReduce_2  19# happyReduction_68
-happyReduction_68 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut25 happy_x_2 of { happy_var_2 -> 
-	happyIn25
-		 ((happy_var_1,Nothing):happy_var_2
-	)}}
-
-happyReduce_69 = happyReduce 5# 19# happyReduction_69
-happyReduction_69 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut25 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((RVar happy_var_4 happy_var_5 happy_var_1, Just happy_var_1):happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_70 = happyReduce 5# 19# happyReduction_70
-happyReduction_70 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut25 happy_x_5 of { happy_var_5 -> 
-	happyIn25
-		 ((happy_var_3, Just happy_var_1):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_71 = happyReduce 6# 20# happyReduction_71
-happyReduction_71 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut28 happy_x_2 of { happy_var_2 -> 
-	case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut27 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn26
-		 (mkDatatype happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_72 = happySpecReduce_3  21# happyReduction_72
-happyReduction_72 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
-	case happyOut73 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Right (happy_var_1,happy_var_2)
-	)}}
-
-happyReduce_73 = happySpecReduce_3  21# happyReduction_73
-happyReduction_73 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn27
-		 (Left happy_var_2
-	)}
-
-happyReduce_74 = happySpecReduce_3  21# happyReduction_74
-happyReduction_74 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn27
-		 (Left (RConst happy_var_2 happy_var_3 TYPE)
-	)}}
-
-happyReduce_75 = happySpecReduce_0  22# happyReduction_75
-happyReduction_75  =  happyIn28
-		 ([]
-	)
-
-happyReduce_76 = happySpecReduce_3  22# happyReduction_76
-happyReduction_76 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut29 happy_x_2 of { happy_var_2 -> 
-	happyIn28
-		 (happy_var_2
-	)}
-
-happyReduce_77 = happySpecReduce_1  23# happyReduction_77
-happyReduction_77 happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	happyIn29
-		 ([happy_var_1]
-	)}
-
-happyReduce_78 = happySpecReduce_3  23# happyReduction_78
-happyReduction_78 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> 
-	case happyOut29 happy_x_3 of { happy_var_3 -> 
-	happyIn29
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_79 = happySpecReduce_1  24# happyReduction_79
-happyReduction_79 happy_x_1
-	 =  happyIn30
-		 (NoElim
-	)
-
-happyReduce_80 = happySpecReduce_1  24# happyReduction_80
-happyReduction_80 happy_x_1
-	 =  happyIn30
-		 (Collapsible
-	)
-
-happyReduce_81 = happySpecReduce_1  25# happyReduction_81
-happyReduction_81 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
-	happyIn31
-		 (happy_var_1
-	)}
-
-happyReduce_82 = happySpecReduce_3  25# happyReduction_82
-happyReduction_82 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
-	happyIn31
-		 (useropFn happy_var_2
-	)}
-
-happyReduce_83 = happyReduce 4# 26# happyReduction_83
-happyReduction_83 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	case happyOut56 happy_x_4 of { happy_var_4 -> 
-	happyIn32
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_84 = happyReduce 5# 26# happyReduction_84
-happyReduction_84 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
-	case happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn32
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_85 = happySpecReduce_3  26# happyReduction_85
-happyReduction_85 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_86 = happySpecReduce_3  26# happyReduction_86
-happyReduction_86 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_87 = happySpecReduce_1  26# happyReduction_87
-happyReduction_87 happy_x_1
-	 =  happyIn32
-		 (RPlaceholder
-	)
-
-happyReduce_88 = happySpecReduce_3  26# happyReduction_88
-happyReduction_88 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_89 = happySpecReduce_3  26# happyReduction_89
-happyReduction_89 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn32
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_90 = happySpecReduce_1  27# happyReduction_90
-happyReduction_90 happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_91 = happySpecReduce_3  27# happyReduction_91
-happyReduction_91 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn33
-		 (happy_var_2
-	)}
-
-happyReduce_92 = happyReduce 4# 27# happyReduction_92
-happyReduction_92 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	case happyOut56 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_93 = happyReduce 5# 27# happyReduction_93
-happyReduction_93 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut42 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn33
-		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_94 = happyReduce 4# 27# happyReduction_94
-happyReduction_94 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_95 = happyReduce 4# 27# happyReduction_95
-happyReduction_95 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doBind Lam happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_96 = happyReduce 4# 27# happyReduction_96
-happyReduction_96 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut41 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn33
-		 (doLetBind happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}
-
-happyReduce_97 = happySpecReduce_1  27# happyReduction_97
-happyReduction_97 happy_x_1
-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> 
-	happyIn33
-		 (happy_var_1
-	)}
-
-happyReduce_98 = happyReduce 8# 27# happyReduction_98
-happyReduction_98 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut33 happy_x_6 of { happy_var_6 -> 
-	case happyOut80 happy_x_7 of { happy_var_7 -> 
-	case happyOut79 happy_x_8 of { happy_var_8 -> 
-	happyIn33
-		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else")) [happy_var_2,happy_var_4,happy_var_6]
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_99 = happySpecReduce_2  28# happyReduction_99
-happyReduction_99 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	happyIn34
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_100 = happyReduce 4# 28# happyReduction_100
-happyReduction_100 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut34 happy_x_4 of { happy_var_4 -> 
-	happyIn34
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_101 = happySpecReduce_3  29# happyReduction_101
-happyReduction_101 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	case happyOut35 happy_x_3 of { happy_var_3 -> 
-	happyIn35
-		 (happy_var_1 ++ happy_var_3
-	)}}
-
-happyReduce_102 = happySpecReduce_1  29# happyReduction_102
-happyReduction_102 happy_x_1
-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> 
-	happyIn35
-		 (happy_var_1
-	)}
-
-happyReduce_103 = happySpecReduce_3  30# happyReduction_103
-happyReduction_103 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn36
-		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
-	)}}
-
-happyReduce_104 = happySpecReduce_1  31# happyReduction_104
-happyReduction_104 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn37
-		 ([happy_var_1]
-	)}
-
-happyReduce_105 = happySpecReduce_3  31# happyReduction_105
-happyReduction_105 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn37
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_106 = happySpecReduce_2  32# happyReduction_106
-happyReduction_106 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	happyIn38
-		 ([(happy_var_1,happy_var_2)]
-	)}}
-
-happyReduce_107 = happySpecReduce_1  32# happyReduction_107
-happyReduction_107 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn38
-		 ([(happy_var_1, 0)]
-	)}
-
-happyReduce_108 = happySpecReduce_3  32# happyReduction_108
-happyReduction_108 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut38 happy_x_3 of { happy_var_3 -> 
-	happyIn38
-		 ((happy_var_1,0):happy_var_3
-	)}}
-
-happyReduce_109 = happyReduce 4# 32# happyReduction_109
-happyReduction_109 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
-	case happyOut38 happy_x_4 of { happy_var_4 -> 
-	happyIn38
-		 ((happy_var_1,happy_var_2):happy_var_4
-	) `HappyStk` happyRest}}}
-
-happyReduce_110 = happySpecReduce_1  33# happyReduction_110
-happyReduction_110 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	happyIn39
-		 ([happy_var_1]
-	)}
-
-happyReduce_111 = happySpecReduce_3  33# happyReduction_111
-happyReduction_111 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut37 happy_x_3 of { happy_var_3 -> 
-	happyIn39
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_112 = happySpecReduce_0  34# happyReduction_112
-happyReduction_112  =  happyIn40
-		 ([]
-	)
-
-happyReduce_113 = happySpecReduce_2  34# happyReduction_113
-happyReduction_113 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut40 happy_x_2 of { happy_var_2 -> 
-	happyIn40
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_114 = happyReduce 4# 35# happyReduction_114
-happyReduction_114 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	happyIn41
-		 ([(happy_var_1,happy_var_2,happy_var_4)]
-	) `HappyStk` happyRest}}}
-
-happyReduce_115 = happyReduce 6# 35# happyReduction_115
-happyReduction_115 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut41 happy_x_6 of { happy_var_6 -> 
-	happyIn41
-		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
-	) `HappyStk` happyRest}}}}
-
-happyReduce_116 = happySpecReduce_3  36# happyReduction_116
-happyReduction_116 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1)
-	)}}}
-
-happyReduce_117 = happySpecReduce_3  36# happyReduction_117
-happyReduction_117 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn42
-		 ((happy_var_1, happy_var_3)
-	)}}
-
-happyReduce_118 = happyReduce 4# 37# happyReduction_118
-happyReduction_118 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn43
-		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_119 = happyReduce 5# 37# happyReduction_119
-happyReduction_119 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_120 = happyReduce 5# 37# happyReduction_120
-happyReduction_120 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) [happy_var_1, happy_var_3]
-	) `HappyStk` happyRest}}}}
-
-happyReduce_121 = happyReduce 5# 37# happyReduction_121
-happyReduction_121 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_122 = happyReduce 5# 37# happyReduction_122
-happyReduction_122 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_123 = happyReduce 5# 37# happyReduction_123
-happyReduction_123 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn43
-		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
-	) `HappyStk` happyRest}}
-
-happyReduce_124 = happySpecReduce_1  37# happyReduction_124
-happyReduction_124 happy_x_1
-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
-	happyIn43
-		 (happy_var_1
-	)}
-
-happyReduce_125 = happyReduce 5# 37# happyReduction_125
-happyReduction_125 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut56 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn43
-		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}
-
-happyReduce_126 = happyReduce 5# 38# happyReduction_126
-happyReduction_126 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn44
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_127 = happyReduce 6# 39# happyReduction_127
-happyReduction_127 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_128 = happyReduce 6# 39# happyReduction_128
-happyReduction_128 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_129 = happyReduce 6# 39# happyReduction_129
-happyReduction_129 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut46 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)) happy_var_3)
-	) `HappyStk` happyRest}}}}
-
-happyReduce_130 = happyReduce 6# 39# happyReduction_130
-happyReduction_130 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut46 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}}
-
-happyReduce_131 = happyReduce 6# 39# happyReduction_131
-happyReduction_131 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_132 = happyReduce 6# 39# happyReduction_132
-happyReduction_132 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex [] happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0)))
-	) `HappyStk` happyRest}}}
-
-happyReduce_133 = happyReduce 6# 39# happyReduction_133
-happyReduction_133 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder) 
-                       (RBind (MN "X" 1) (Pi Ex [] (RVar happy_var_4 happy_var_5 (MN "X" 0))) happy_var_3)
-	) `HappyStk` happyRest}}}
-
-happyReduce_134 = happyReduce 5# 39# happyReduction_134
-happyReduction_134 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (RBind (MN "X" 1) (Lam RPlaceholder)
-                    (RBind (MN "X" 2) (Pi Ex [] (RVar happy_var_3 happy_var_4 (MN "X" 0)))
-                       (RVar happy_var_3 happy_var_4 (MN "X" 1))))
-	) `HappyStk` happyRest}}
-
-happyReduce_135 = happyReduce 5# 39# happyReduction_135
-happyReduction_135 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                   (RBind (MN "X" 1) (Lam RPlaceholder)
-                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair"))
-                                    [RVar happy_var_3 happy_var_4 (MN "X" 0),
-                                     RVar happy_var_3 happy_var_4 (MN "X" 1)]))
-	) `HappyStk` happyRest}}
-
-happyReduce_136 = happyReduce 6# 39# happyReduction_136
-happyReduction_136 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [happy_var_2,
-                                     RVar happy_var_4 happy_var_5 (MN "X" 0)])
-	) `HappyStk` happyRest}}}
-
-happyReduce_137 = happyReduce 6# 39# happyReduction_137
-happyReduction_137 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn45
-		 (RBind (MN "X" 0) (Lam RPlaceholder)
-                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair"))
-                                    [RVar happy_var_4 happy_var_5 (MN "X" 0), happy_var_3])
-	) `HappyStk` happyRest}}}
-
-happyReduce_138 = happySpecReduce_1  40# happyReduction_138
-happyReduction_138 happy_x_1
-	 =  happyIn46
-		 ("<"
-	)
-
-happyReduce_139 = happySpecReduce_1  40# happyReduction_139
-happyReduction_139 happy_x_1
-	 =  happyIn46
-		 (">"
-	)
-
-happyReduce_140 = happySpecReduce_0  41# happyReduction_140
-happyReduction_140  =  happyIn47
-		 (RPlaceholder
-	)
-
-happyReduce_141 = happySpecReduce_2  41# happyReduction_141
-happyReduction_141 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn47
-		 (happy_var_2
-	)}
-
-happyReduce_142 = happySpecReduce_0  42# happyReduction_142
-happyReduction_142  =  happyIn48
-		 (RPlaceholder
-	)
-
-happyReduce_143 = happySpecReduce_2  42# happyReduction_143
-happyReduction_143 happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn48
-		 (happy_var_2
-	)}
-
-happyReduce_144 = happyReduce 5# 43# happyReduction_144
-happyReduction_144 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut39 happy_x_1 of { happy_var_1 -> 
-	case happyOut48 happy_x_2 of { happy_var_2 -> 
-	case happyOut49 happy_x_5 of { happy_var_5 -> 
-	happyIn49
-		 (doBind (Pi Im []) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_145 = happySpecReduce_1  43# happyReduction_145
-happyReduction_145 happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	happyIn49
-		 (happy_var_1
-	)}
-
-happyReduce_146 = happySpecReduce_3  44# happyReduction_146
-happyReduction_146 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn50
-		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
-	)}}
-
-happyReduce_147 = happyReduce 6# 44# happyReduction_147
-happyReduction_147 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut52 happy_x_4 of { happy_var_4 -> 
-	case happyOut50 happy_x_6 of { happy_var_6 -> 
-	happyIn50
-		 (doBind (Pi Ex happy_var_4) happy_var_2 happy_var_6
-	) `HappyStk` happyRest}}}
-
-happyReduce_148 = happyReduce 5# 44# happyReduction_148
-happyReduction_148 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (doBind (Pi Ex [Lazy]) happy_var_2 happy_var_5
-	) `HappyStk` happyRest}}
-
-happyReduce_149 = happySpecReduce_3  44# happyReduction_149
-happyReduction_149 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (bracket happy_var_2
-	)}
-
-happyReduce_150 = happyReduce 7# 44# happyReduction_150
-happyReduction_150 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
-	case happyOut50 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn50
-		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_151 = happySpecReduce_1  44# happyReduction_151
-happyReduction_151 happy_x_1
-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_152 = happySpecReduce_3  44# happyReduction_152
-happyReduction_152 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn50
-		 (happy_var_2
-	)}
-
-happyReduce_153 = happyReduce 5# 44# happyReduction_153
-happyReduction_153 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_154 = happyReduce 5# 44# happyReduction_154
-happyReduction_154 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut55 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn50
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_155 = happySpecReduce_1  44# happyReduction_155
-happyReduction_155 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn50
-		 (happy_var_1
-	)}
-
-happyReduce_156 = happySpecReduce_1  45# happyReduction_156
-happyReduction_156 happy_x_1
-	 =  happyIn51
-		 (Lazy
-	)
-
-happyReduce_157 = happySpecReduce_1  45# happyReduction_157
-happyReduction_157 happy_x_1
-	 =  happyIn51
-		 (Static
-	)
-
-happyReduce_158 = happySpecReduce_3  46# happyReduction_158
-happyReduction_158 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut53 happy_x_2 of { happy_var_2 -> 
-	happyIn52
-		 (happy_var_2
-	)}
-
-happyReduce_159 = happySpecReduce_0  46# happyReduction_159
-happyReduction_159  =  happyIn52
-		 ([]
-	)
-
-happyReduce_160 = happySpecReduce_3  47# happyReduction_160
-happyReduction_160 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	case happyOut53 happy_x_3 of { happy_var_3 -> 
-	happyIn53
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_161 = happySpecReduce_1  47# happyReduction_161
-happyReduction_161 happy_x_1
-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
-	happyIn53
-		 ([happy_var_1]
-	)}
-
-happyReduce_162 = happyReduce 8# 48# happyReduction_162
-happyReduction_162 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut50 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_7 of { happy_var_7 -> 
-	case happyOut79 happy_x_8 of { happy_var_8 -> 
-	happyIn54
-		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_163 = happySpecReduce_3  49# happyReduction_163
-happyReduction_163 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut50 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_164 = happySpecReduce_3  49# happyReduction_164
-happyReduction_164 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> 
-	case happyOut55 happy_x_3 of { happy_var_3 -> 
-	happyIn55
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_165 = happySpecReduce_3  50# happyReduction_165
-happyReduction_165 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RVar happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_166 = happySpecReduce_3  50# happyReduction_166
-happyReduction_166 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RReturn happy_var_2 happy_var_3
-	)}}
-
-happyReduce_167 = happySpecReduce_3  50# happyReduction_167
-happyReduction_167 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn56
-		 (bracket happy_var_2
-	)}
-
-happyReduce_168 = happySpecReduce_2  50# happyReduction_168
-happyReduction_168 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_2 of { happy_var_2 -> 
-	happyIn56
-		 (RPure happy_var_2
-	)}
-
-happyReduce_169 = happySpecReduce_1  50# happyReduction_169
-happyReduction_169 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
-	happyIn56
-		 (RMetavar happy_var_1
-	)}
-
-happyReduce_170 = happyReduce 4# 50# happyReduction_170
-happyReduction_170 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn56
-		 (RExpVar happy_var_3 happy_var_4 happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_171 = happySpecReduce_3  50# happyReduction_171
-happyReduction_171 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut62 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RConst happy_var_2 happy_var_3 happy_var_1
-	)}}}
-
-happyReduce_172 = happySpecReduce_1  50# happyReduction_172
-happyReduction_172 happy_x_1
-	 =  happyIn56
-		 (RRefl
-	)
-
-happyReduce_173 = happySpecReduce_3  50# happyReduction_173
-happyReduction_173 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RVar happy_var_2 happy_var_3 (UN "__Empty")
-	)}}
-
-happyReduce_174 = happySpecReduce_3  50# happyReduction_174
-happyReduction_174 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn56
-		 (RVar happy_var_2 happy_var_3 (UN "__Unit")
-	)}}
-
-happyReduce_175 = happySpecReduce_1  50# happyReduction_175
-happyReduction_175 happy_x_1
-	 =  happyIn56
-		 (RPlaceholder
-	)
-
-happyReduce_176 = happySpecReduce_1  50# happyReduction_176
-happyReduction_176 happy_x_1
-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (RDo happy_var_1
-	)}
-
-happyReduce_177 = happySpecReduce_3  50# happyReduction_177
-happyReduction_177 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn56
-		 (RIdiom happy_var_2
-	)}
-
-happyReduce_178 = happyReduce 5# 50# happyReduction_178
-happyReduction_178 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut58 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn56
-		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair")) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_179 = happySpecReduce_1  50# happyReduction_179
-happyReduction_179 happy_x_1
-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (happy_var_1
-	)}
-
-happyReduce_180 = happySpecReduce_1  50# happyReduction_180
-happyReduction_180 happy_x_1
-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (happy_var_1
-	)}
-
-happyReduce_181 = happySpecReduce_1  50# happyReduction_181
-happyReduction_181 happy_x_1
-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
-	happyIn56
-		 (happy_var_1
-	)}
-
-happyReduce_182 = happyReduce 7# 51# happyReduction_182
-happyReduction_182 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_6 of { happy_var_6 -> 
-	case happyOut79 happy_x_7 of { happy_var_7 -> 
-	happyIn57
-		 (RApp happy_var_6 happy_var_7 (RApp happy_var_6 happy_var_7 (RVar happy_var_6 happy_var_7 (UN "Exists")) happy_var_2) happy_var_4
-	) `HappyStk` happyRest}}}}
-
-happyReduce_183 = happyReduce 5# 51# happyReduction_183
-happyReduction_183 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_2 of { happy_var_2 -> 
-	case happyOut80 happy_x_4 of { happy_var_4 -> 
-	case happyOut79 happy_x_5 of { happy_var_5 -> 
-	happyIn57
-		 (RApp happy_var_4 happy_var_5 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists")) RPlaceholder) happy_var_2
-	) `HappyStk` happyRest}}}
-
-happyReduce_184 = happySpecReduce_3  52# happyReduction_184
-happyReduction_184 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn58
-		 (happy_var_1:happy_var_3:[]
-	)}}
-
-happyReduce_185 = happySpecReduce_3  52# happyReduction_185
-happyReduction_185 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut58 happy_x_3 of { happy_var_3 -> 
-	happyIn58
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_186 = happyReduce 4# 53# happyReduction_186
-happyReduction_186 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut60 happy_x_3 of { happy_var_3 -> 
-	happyIn59
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_187 = happyReduce 10# 53# happyReduction_187
-happyReduction_187 (happy_x_10 `HappyStk`
-	happy_x_9 `HappyStk`
-	happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_6 of { happy_var_6 -> 
-	case happyOut79 happy_x_7 of { happy_var_7 -> 
-	case happyOut60 happy_x_9 of { happy_var_9 -> 
-	happyIn59
-		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
-	) `HappyStk` happyRest}}}}}}
-
-happyReduce_188 = happySpecReduce_2  54# happyReduction_188
-happyReduction_188 happy_x_2
-	happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	case happyOut60 happy_x_2 of { happy_var_2 -> 
-	happyIn60
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_189 = happySpecReduce_1  54# happyReduction_189
-happyReduction_189 happy_x_1
-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
-	happyIn60
-		 ([happy_var_1]
-	)}
-
-happyReduce_190 = happyReduce 7# 55# happyReduction_190
-happyReduction_190 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut47 happy_x_2 of { happy_var_2 -> 
-	case happyOut33 happy_x_4 of { happy_var_4 -> 
-	case happyOut80 happy_x_5 of { happy_var_5 -> 
-	case happyOut79 happy_x_6 of { happy_var_6 -> 
-	happyIn61
-		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_191 = happyReduce 8# 55# happyReduction_191
-happyReduction_191 (happy_x_8 `HappyStk`
-	happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_2 of { happy_var_2 -> 
-	case happyOut47 happy_x_3 of { happy_var_3 -> 
-	case happyOut33 happy_x_5 of { happy_var_5 -> 
-	case happyOut80 happy_x_6 of { happy_var_6 -> 
-	case happyOut79 happy_x_7 of { happy_var_7 -> 
-	happyIn61
-		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
-	) `HappyStk` happyRest}}}}}
-
-happyReduce_192 = happyReduce 4# 55# happyReduction_192
-happyReduction_192 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn61
-		 (DoExp happy_var_2 happy_var_3 happy_var_1
-	) `HappyStk` happyRest}}}
-
-happyReduce_193 = happySpecReduce_1  56# happyReduction_193
-happyReduction_193 happy_x_1
-	 =  happyIn62
-		 (TYPE
-	)
-
-happyReduce_194 = happySpecReduce_1  56# happyReduction_194
-happyReduction_194 happy_x_1
-	 =  happyIn62
-		 (StringType
-	)
-
-happyReduce_195 = happySpecReduce_1  56# happyReduction_195
-happyReduction_195 happy_x_1
-	 =  happyIn62
-		 (IntType
-	)
-
-happyReduce_196 = happySpecReduce_1  56# happyReduction_196
-happyReduction_196 happy_x_1
-	 =  happyIn62
-		 (CharType
-	)
-
-happyReduce_197 = happySpecReduce_1  56# happyReduction_197
-happyReduction_197 happy_x_1
-	 =  happyIn62
-		 (FloatType
-	)
-
-happyReduce_198 = happySpecReduce_1  56# happyReduction_198
-happyReduction_198 happy_x_1
-	 =  happyIn62
-		 (PtrType
-	)
-
-happyReduce_199 = happySpecReduce_1  56# happyReduction_199
-happyReduction_199 happy_x_1
-	 =  happyIn62
-		 (Builtin "Handle"
-	)
-
-happyReduce_200 = happySpecReduce_1  56# happyReduction_200
-happyReduction_200 happy_x_1
-	 =  happyIn62
-		 (Builtin "Lock"
-	)
-
-happyReduce_201 = happySpecReduce_1  56# happyReduction_201
-happyReduction_201 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
-	happyIn62
-		 (Num happy_var_1
-	)}
-
-happyReduce_202 = happySpecReduce_1  56# happyReduction_202
-happyReduction_202 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
-	happyIn62
-		 (Ch happy_var_1
-	)}
-
-happyReduce_203 = happySpecReduce_1  56# happyReduction_203
-happyReduction_203 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
-	happyIn62
-		 (Str happy_var_1
-	)}
-
-happyReduce_204 = happySpecReduce_1  56# happyReduction_204
-happyReduction_204 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
-	happyIn62
-		 (Bo happy_var_1
-	)}
-
-happyReduce_205 = happySpecReduce_1  56# happyReduction_205
-happyReduction_205 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
-	happyIn62
-		 (Fl happy_var_1
-	)}
-
-happyReduce_206 = happySpecReduce_0  57# happyReduction_206
-happyReduction_206  =  happyIn63
-		 ([]
-	)
-
-happyReduce_207 = happySpecReduce_2  57# happyReduction_207
-happyReduction_207 happy_x_2
-	happy_x_1
-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> 
-	case happyOut63 happy_x_2 of { happy_var_2 -> 
-	happyIn63
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_208 = happyReduce 4# 58# happyReduction_208
-happyReduction_208 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut49 happy_x_2 of { happy_var_2 -> 
-	case happyOut65 happy_x_3 of { happy_var_3 -> 
-	happyIn64
-		 ((happy_var_2, happy_var_3)
-	) `HappyStk` happyRest}}
-
-happyReduce_209 = happySpecReduce_3  58# happyReduction_209
-happyReduction_209 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut80 happy_x_2 of { happy_var_2 -> 
-	case happyOut79 happy_x_3 of { happy_var_3 -> 
-	happyIn64
-		 ((RConst happy_var_2 happy_var_3 TYPE, [])
-	)}}
-
-happyReduce_210 = happyReduce 4# 58# happyReduction_210
-happyReduction_210 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut71 happy_x_1 of { happy_var_1 -> 
-	case happyOut80 happy_x_3 of { happy_var_3 -> 
-	case happyOut79 happy_x_4 of { happy_var_4 -> 
-	happyIn64
-		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
-	) `HappyStk` happyRest}}}
-
-happyReduce_211 = happySpecReduce_0  59# happyReduction_211
-happyReduction_211  =  happyIn65
-		 ([]
-	)
-
-happyReduce_212 = happyReduce 4# 59# happyReduction_212
-happyReduction_212 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
-	happyIn65
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_213 = happyReduce 7# 60# happyReduction_213
-happyReduction_213 (happy_x_7 `HappyStk`
-	happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_4 of { happy_var_4 -> 
-	case happyOut31 happy_x_6 of { happy_var_6 -> 
-	happyIn66
-		 ((happy_var_4,happy_var_6)
-	) `HappyStk` happyRest}}
-
-happyReduce_214 = happyReduce 6# 61# happyReduction_214
-happyReduction_214 (happy_x_6 `HappyStk`
-	happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_3 of { happy_var_3 -> 
-	case happyOut31 happy_x_5 of { happy_var_5 -> 
-	happyIn67
-		 ((happy_var_3,happy_var_5)
-	) `HappyStk` happyRest}}
-
-happyReduce_215 = happyReduce 4# 62# happyReduction_215
-happyReduction_215 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut70 happy_x_3 of { happy_var_3 -> 
-	happyIn68
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_216 = happySpecReduce_2  63# happyReduction_216
-happyReduction_216 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn69
-		 (happy_var_2
-	)}
-
-happyReduce_217 = happySpecReduce_3  64# happyReduction_217
-happyReduction_217 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	happyIn70
-		 ([(happy_var_1, happy_var_3)]
-	)}}
-
-happyReduce_218 = happyReduce 5# 64# happyReduction_218
-happyReduction_218 (happy_x_5 `HappyStk`
-	happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut49 happy_x_3 of { happy_var_3 -> 
-	case happyOut70 happy_x_5 of { happy_var_5 -> 
-	happyIn70
-		 ((happy_var_1,happy_var_3):happy_var_5
-	) `HappyStk` happyRest}}}
-
-happyReduce_219 = happySpecReduce_1  65# happyReduction_219
-happyReduction_219 happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	happyIn71
-		 ([happy_var_1]
-	)}
-
-happyReduce_220 = happySpecReduce_2  65# happyReduction_220
-happyReduction_220 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut71 happy_x_2 of { happy_var_2 -> 
-	happyIn71
-		 (happy_var_1:happy_var_2
-	)}}
-
-happyReduce_221 = happySpecReduce_1  66# happyReduction_221
-happyReduction_221 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 (happy_var_1
-	)}
-
-happyReduce_222 = happySpecReduce_1  66# happyReduction_222
-happyReduction_222 happy_x_1
-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
-	happyIn72
-		 (happy_var_1
-	)}
-
-happyReduce_223 = happySpecReduce_0  67# happyReduction_223
-happyReduction_223  =  happyIn73
-		 ([]
-	)
-
-happyReduce_224 = happySpecReduce_1  67# happyReduction_224
-happyReduction_224 happy_x_1
-	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
-	happyIn73
-		 ([happy_var_1]
-	)}
-
-happyReduce_225 = happySpecReduce_3  67# happyReduction_225
-happyReduction_225 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut74 happy_x_1 of { happy_var_1 -> 
-	case happyOut73 happy_x_3 of { happy_var_3 -> 
-	happyIn73
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_226 = happySpecReduce_2  68# happyReduction_226
-happyReduction_226 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut75 happy_x_2 of { happy_var_2 -> 
-	happyIn74
-		 (Full happy_var_1 happy_var_2
-	)}}
-
-happyReduce_227 = happySpecReduce_2  68# happyReduction_227
-happyReduction_227 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
-	case happyOut63 happy_x_2 of { happy_var_2 -> 
-	happyIn74
-		 (Simple happy_var_1 happy_var_2
-	)}}
-
-happyReduce_228 = happySpecReduce_2  69# happyReduction_228
-happyReduction_228 happy_x_2
-	happy_x_1
-	 =  case happyOut49 happy_x_2 of { happy_var_2 -> 
-	happyIn75
-		 (happy_var_2
-	)}
-
-happyReduce_229 = happySpecReduce_2  70# happyReduction_229
-happyReduction_229 happy_x_2
-	happy_x_1
-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Intro happy_var_2
-	)}
-
-happyReduce_230 = happySpecReduce_1  70# happyReduction_230
-happyReduction_230 happy_x_1
-	 =  happyIn76
-		 (Intro []
-	)
-
-happyReduce_231 = happySpecReduce_2  70# happyReduction_231
-happyReduction_231 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Refine happy_var_2
-	)}
-
-happyReduce_232 = happySpecReduce_2  70# happyReduction_232
-happyReduction_232 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Exists happy_var_2
-	)}
-
-happyReduce_233 = happySpecReduce_2  70# happyReduction_233
-happyReduction_233 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Generalise happy_var_2
-	)}
-
-happyReduce_234 = happySpecReduce_1  70# happyReduction_234
-happyReduction_234 happy_x_1
-	 =  happyIn76
-		 (ReflP
-	)
-
-happyReduce_235 = happySpecReduce_2  70# happyReduction_235
-happyReduction_235 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Rewrite False False happy_var_2
-	)}
-
-happyReduce_236 = happySpecReduce_3  70# happyReduction_236
-happyReduction_236 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn76
-		 (Rewrite False True happy_var_3
-	)}
-
-happyReduce_237 = happySpecReduce_2  70# happyReduction_237
-happyReduction_237 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Rewrite True False happy_var_2
-	)}
-
-happyReduce_238 = happySpecReduce_3  70# happyReduction_238
-happyReduction_238 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_3 of { happy_var_3 -> 
-	happyIn76
-		 (Rewrite True True happy_var_3
-	)}
-
-happyReduce_239 = happySpecReduce_1  70# happyReduction_239
-happyReduction_239 happy_x_1
-	 =  happyIn76
-		 (Compute
-	)
-
-happyReduce_240 = happySpecReduce_2  70# happyReduction_240
-happyReduction_240 happy_x_2
-	happy_x_1
-	 =  case happyOut31 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Unfold happy_var_2
-	)}
-
-happyReduce_241 = happySpecReduce_1  70# happyReduction_241
-happyReduction_241 happy_x_1
-	 =  happyIn76
-		 (Undo
-	)
-
-happyReduce_242 = happySpecReduce_2  70# happyReduction_242
-happyReduction_242 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Induction happy_var_2
-	)}
-
-happyReduce_243 = happySpecReduce_2  70# happyReduction_243
-happyReduction_243 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Fill happy_var_2
-	)}
-
-happyReduce_244 = happySpecReduce_1  70# happyReduction_244
-happyReduction_244 happy_x_1
-	 =  happyIn76
-		 (Trivial
-	)
-
-happyReduce_245 = happySpecReduce_2  70# happyReduction_245
-happyReduction_245 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (RunTactic happy_var_2
-	)}
-
-happyReduce_246 = happySpecReduce_2  70# happyReduction_246
-happyReduction_246 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Believe happy_var_2
-	)}
-
-happyReduce_247 = happySpecReduce_2  70# happyReduction_247
-happyReduction_247 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Use happy_var_2
-	)}
-
-happyReduce_248 = happySpecReduce_2  70# happyReduction_248
-happyReduction_248 happy_x_2
-	happy_x_1
-	 =  case happyOut33 happy_x_2 of { happy_var_2 -> 
-	happyIn76
-		 (Decide happy_var_2
-	)}
-
-happyReduce_249 = happySpecReduce_1  70# happyReduction_249
-happyReduction_249 happy_x_1
-	 =  happyIn76
-		 (Abandon
-	)
-
-happyReduce_250 = happySpecReduce_1  70# happyReduction_250
-happyReduction_250 happy_x_1
-	 =  happyIn76
-		 (ProofTerm
-	)
-
-happyReduce_251 = happySpecReduce_1  70# happyReduction_251
-happyReduction_251 happy_x_1
-	 =  happyIn76
-		 (Qed
-	)
-
-happyReduce_252 = happyReduce 4# 71# happyReduction_252
-happyReduction_252 (happy_x_4 `HappyStk`
-	happy_x_3 `HappyStk`
-	happy_x_2 `HappyStk`
-	happy_x_1 `HappyStk`
-	happyRest)
-	 = case happyOut78 happy_x_3 of { happy_var_3 -> 
-	happyIn77
-		 (happy_var_3
-	) `HappyStk` happyRest}
-
-happyReduce_253 = happySpecReduce_2  72# happyReduction_253
-happyReduction_253 happy_x_2
-	happy_x_1
-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
-	happyIn78
-		 ([happy_var_1]
-	)}
-
-happyReduce_254 = happySpecReduce_3  72# happyReduction_254
-happyReduction_254 happy_x_3
-	happy_x_2
-	happy_x_1
-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
-	case happyOut78 happy_x_3 of { happy_var_3 -> 
-	happyIn78
-		 (happy_var_1:happy_var_3
-	)}}
-
-happyReduce_255 = happyMonadReduce 0# 73# happyReduction_255
-happyReduction_255 (happyRest) tk
-	 = happyThen (( getLineNo)
-	) (\r -> happyReturn (happyIn79 r))
-
-happyReduce_256 = happyMonadReduce 0# 74# happyReduction_256
-happyReduction_256 (happyRest) tk
-	 = happyThen (( getFileName)
-	) (\r -> happyReturn (happyIn80 r))
-
-happyReduce_257 = happyMonadReduce 0# 75# happyReduction_257
-happyReduction_257 (happyRest) tk
-	 = happyThen (( getOps)
-	) (\r -> happyReturn (happyIn81 r))
-
-happyNewToken action sts stk
-	= lexer(\tk -> 
-	let cont i = happyDoAction i tk action sts stk in
-	case tk of {
-	TokenEOF -> happyDoAction 120# tk action sts stk;
-	TokenName happy_dollar_dollar -> cont 1#;
-	TokenInfixName happy_dollar_dollar -> cont 2#;
-	TokenBrackName happy_dollar_dollar -> cont 3#;
-	TokenString happy_dollar_dollar -> cont 4#;
-	TokenInt happy_dollar_dollar -> cont 5#;
-	TokenFloat happy_dollar_dollar -> cont 6#;
-	TokenChar happy_dollar_dollar -> cont 7#;
-	TokenBool happy_dollar_dollar -> cont 8#;
-	TokenMetavar happy_dollar_dollar -> cont 9#;
-	TokenColon -> cont 10#;
-	TokenSemi -> cont 11#;
-	TokenBar -> cont 12#;
-	TokenStars -> cont 13#;
-	TokenLambda -> cont 14#;
-	TokenHashOB -> cont 15#;
-	TokenOB -> cont 16#;
-	TokenCB -> cont 17#;
-	TokenOCB -> cont 18#;
-	TokenCCB -> cont 19#;
-	TokenOSB -> cont 20#;
-	TokenCSB -> cont 21#;
-	TokenOId -> cont 22#;
-	TokenCId -> cont 23#;
-	TokenLPair -> cont 24#;
-	TokenRPair -> cont 25#;
-	TokenExists -> cont 26#;
-	TokenTilde -> cont 27#;
-	TokenPlus -> cont 28#;
-	TokenMinus -> cont 29#;
-	TokenTimes -> cont 30#;
-	TokenDivide -> cont 31#;
-	TokenEquals -> cont 32#;
-	TokenMightEqual -> cont 33#;
-	TokenLT -> cont 34#;
-	TokenGT -> cont 35#;
-	TokenEllipsis -> cont 36#;
-	TokenUnderscore -> cont 37#;
-	TokenComma -> cont 38#;
-	TokenTuple -> cont 39#;
-	TokenBang -> cont 40#;
-	TokenConcat -> cont 41#;
-	TokenGE -> cont 42#;
-	TokenLE -> cont 43#;
-	TokenOr -> cont 44#;
-	TokenAnd -> cont 45#;
-	TokenArrow -> cont 46#;
-	TokenFatArrow -> cont 47#;
-	TokenTransArrow -> cont 48#;
-	TokenLeftArrow -> cont 49#;
-	TokenIntType -> cont 50#;
-	TokenCharType -> cont 51#;
-	TokenFloatType -> cont 52#;
-	TokenStringType -> cont 53#;
-	TokenHandleType -> cont 54#;
-	TokenPtrType -> cont 55#;
-	TokenLockType -> cont 56#;
-	TokenType -> cont 57#;
-	TokenLazyBracket -> cont 58#;
-	TokenDataType -> cont 59#;
-	TokenInfix -> cont 60#;
-	TokenInfixL -> cont 61#;
-	TokenInfixR -> cont 62#;
-	TokenUsing -> cont 63#;
-	TokenIdiom -> cont 64#;
-	TokenParams -> cont 65#;
-	TokenNamespace -> cont 66#;
-	TokenPublic -> cont 67#;
-	TokenPrivate -> cont 68#;
-	TokenAbstract -> cont 69#;
-	TokenNoElim -> cont 70#;
-	TokenCollapsible -> cont 71#;
-	TokenWhere -> cont 72#;
-	TokenWith -> cont 73#;
-	TokenPartial -> cont 74#;
-	TokenSyntax -> cont 75#;
-	TokenLazy -> cont 76#;
-	TokenStatic -> cont 77#;
-	TokenRefl -> cont 78#;
-	TokenEmptyType -> cont 79#;
-	TokenUnitType -> cont 80#;
-	TokenInclude -> cont 81#;
-	TokenExport -> cont 82#;
-	TokenInline -> cont 83#;
-	TokenDo -> cont 84#;
-	TokenReturn -> cont 85#;
-	TokenIf -> cont 86#;
-	TokenThen -> cont 87#;
-	TokenElse -> cont 88#;
-	TokenLet -> cont 89#;
-	TokenIn -> cont 90#;
-	TokenProof -> cont 91#;
-	TokenIntro -> cont 92#;
-	TokenRefine -> cont 93#;
-	TokenGeneralise -> cont 94#;
-	TokenReflP -> cont 95#;
-	TokenRewrite -> cont 96#;
-	TokenRewriteAll -> cont 97#;
-	TokenCompute -> cont 98#;
-	TokenUnfold -> cont 99#;
-	TokenUndo -> cont 100#;
-	TokenInduction -> cont 101#;
-	TokenFill -> cont 102#;
-	TokenTrivial -> cont 103#;
-	TokenMkTac -> cont 104#;
-	TokenBelieve -> cont 105#;
-	TokenUse -> cont 106#;
-	TokenDecide -> cont 107#;
-	TokenAbandon -> cont 108#;
-	TokenProofTerm -> cont 109#;
-	TokenQED -> cont 110#;
-	TokenLaTeX -> cont 111#;
-	TokenNoCG -> cont 112#;
-	TokenEval -> cont 113#;
-	TokenSpec -> cont 114#;
-	TokenFreeze -> cont 115#;
-	TokenThaw -> cont 116#;
-	TokenTransform -> cont 117#;
-	TokenCInclude -> cont 118#;
-	TokenCLib -> cont 119#;
-	_ -> happyError' tk
-	})
-
-happyError_ tk = happyError' tk
-
-happyThen :: () => P a -> (a -> P b) -> P b
-happyThen = (thenP)
-happyReturn :: () => a -> P a
-happyReturn = (returnP)
-happyThen1 = happyThen
-happyReturn1 :: () => a -> P a
-happyReturn1 = happyReturn
-happyError' :: () => (Token) -> P a
-happyError' tk = (\token -> happyError) tk
-
-mkparse = happySomeParser where
-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
-
-mkparseTerm = happySomeParser where
-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut33 x))
-
-mkparseTactic = happySomeParser where
-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut76 x))
-
-happySeq = happyDontSeq
-
-
-data ConParse = Full Id RawTerm
-              | Simple Id [RawTerm]
-
-parse :: String -> FilePath -> Result [Decl]
-parse s fn = do ds <- mkparse s fn 1 []
-                collectDecls ds
-
-processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
-                  IO ([Decl], [FilePath])
-processImports opts imped (Success ds) = pi imped [] ds
-  where pi imps decls ((PInclude fp):xs)
-           | fp `elem` imps = pi imps decls xs
-           | otherwise = do
-                 f <- readLibFile defaultLibPath fp
-                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
-                 case parse f fp of
-                   Success t -> pi (fp:imps) decls (t++xs)
-                   Failure e f l ->
-                     fail $ f ++ ":" ++ show l ++ ":" ++ e
-        pi imps decls ((Using t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Using t ds']) xs
-        pi imps decls ((Params t ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Params t ds']) xs
-        pi imps decls ((DoUsing b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[DoUsing b r ds']) xs
-        pi imps decls ((Idiom b r ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Idiom b r ds']) xs
-        pi imps decls ((Namespace n ds):xs)
-            = do (ds',imps') <- pi imps [] ds
-                 pi imps' (decls++[Namespace n ds']) xs
-        pi imps decls (x:xs) = pi imps (decls++[x]) xs
-        pi imps decls [] = return (decls, imps)
-
-processImports _ imped (Failure e f l) 
-    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
-
-
-parseTerm :: String -> Result RawTerm
-parseTerm s = mkparseTerm s "(input)" 0 []
-
-parseTactic :: String -> Result ITactic
-parseTactic s = mkparseTactic s "(tactic)" 0 []
-
-mkCon :: RawTerm -> ConParse -> (Id,RawTerm)
-mkCon _ (Full n t) = (n,t)
-mkCon ty (Simple n args) = (n, mkConTy args ty)
-   where mkConTy [] ty = ty
-         mkConTy (a:as) ty = RBind (MN "X" 0) (Pi Ex [] a) (mkConTy as ty)
-
-mkDef file line (n, tms) = mkImpApp (RVar file line n) tms
-   where mkImpApp f [] = f
-         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
-         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
-
-doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
-doBind b [] t = t
-doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
-
-doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
-doLetBind [] t = t
-doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
-
-mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
-mkTyApp file line n ty = mkApp file line (RVar file line n) (getTyArgs ty)
-   where getTyArgs (RBind n _ t) = (RVar file line n):(getTyArgs t)
-         getTyArgs x = []
-
-mkTyParams :: String -> Int -> [Id] -> RawTerm
-mkTyParams f l [] = RConst f l TYPE
-mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
-
-mkDatatype :: String -> Int ->
-              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
-                    [TyOpt] -> Datatype
-mkDatatype file line n (Right ((t, using), cons)) opts
-    = Datatype n t (map (mkCon (mkTyApp file line n t)) cons) using opts file line 
-mkDatatype file line n (Left t) opts
-    = Latatype n t file line
-
-bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
-bracket x = x
-
-pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
-pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
-pairDesugar file line pair (x:y:xs) 
-    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
-
-sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
-sigDesugar file line (n, tm) sc
-    = mkApp file line (RVar file line (UN "Sigma")) [tm, lam]
-   where lam = RBind n (Lam tm) sc
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command line>" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
-
-{-# LINE 28 "templates/GenericTemplate.hs" #-}
-
-
-data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
-
-
-
-
-
-{-# LINE 49 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 59 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 68 "templates/GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 0#, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
-	happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) = 
-	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-happyDoAction i tk st
-	= {- nothing -}
-
-
-	  case action of
-		0#		  -> {- nothing -}
-				     happyFail i tk st
-		-1# 	  -> {- nothing -}
-				     happyAccept i tk st
-		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
-
-				     (happyReduceArr Happy_Data_Array.! rule) i tk st
-				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
-		n		  -> {- nothing -}
-
-
-				     happyShift new_state i tk st
-				     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
-   where off    = indexShortOffAddr happyActOffsets st
-	 off_i  = (off Happy_GHC_Exts.+# i)
-	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
-			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
-			else False
- 	 action | check     = indexShortOffAddr happyTable off_i
-		| otherwise = indexShortOffAddr happyDefActions st
-
-{-# LINE 127 "templates/GenericTemplate.hs" #-}
-
-
-indexShortOffAddr (HappyA# arr) off =
-#if __GLASGOW_HASKELL__ > 500
-	Happy_GHC_Exts.narrow16Int# i
-#elif __GLASGOW_HASKELL__ == 500
-	Happy_GHC_Exts.intToInt16# i
-#else
-	Happy_GHC_Exts.iShiftRA# (Happy_GHC_Exts.iShiftL# i 16#) 16#
-#endif
-  where
-#if __GLASGOW_HASKELL__ >= 503
-	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
-#else
-	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.shiftL# high 8#) low)
-#endif
-	high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
-	low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
-	off' = off Happy_GHC_Exts.*# 2#
-
-
-
-
-
-data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-{-# LINE 170 "templates/GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
---     trace "shifting the error token" $
-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((action)) sts stk
-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
-	 sts1@((HappyCons (st1@(action)) (_))) ->
-        	let r = fn stk in  -- it doesn't hurt to always seq here...
-       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-happyMonad2Reduce k nt fn 0# tk st sts stk
-     = happyFail 0# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
-             drop_stk = happyDropStk k stk
-
-             off    = indexShortOffAddr happyGotoOffsets st1
-             off_i  = (off Happy_GHC_Exts.+# nt)
-             new_state = indexShortOffAddr happyTable off_i
-
-
-
-
-happyDrop 0# l = l
-happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-happyGoto nt j tk st = 
-   {- nothing -}
-   happyDoAction j tk new_state
-   where off    = indexShortOffAddr happyGotoOffsets st
-	 off_i  = (off Happy_GHC_Exts.+# nt)
- 	 new_state = indexShortOffAddr happyTable off_i
+import qualified Data.Array as Happy_Data_Array
+import qualified GHC.Exts as Happy_GHC_Exts
+
+-- parser produced by Happy Version 1.18.5
+
+newtype HappyAbsSyn t74 = HappyAbsSyn HappyAny
+#if __GLASGOW_HASKELL__ >= 607
+type HappyAny = Happy_GHC_Exts.Any
+#else
+type HappyAny = forall a . a
+#endif
+happyIn6 :: ([ParseDecl]) -> (HappyAbsSyn t74)
+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn6 #-}
+happyOut6 :: (HappyAbsSyn t74) -> ([ParseDecl])
+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut6 #-}
+happyIn7 :: (ParseDecl) -> (HappyAbsSyn t74)
+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn7 #-}
+happyOut7 :: (HappyAbsSyn t74) -> (ParseDecl)
+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut7 #-}
+happyIn8 :: (Decl) -> (HappyAbsSyn t74)
+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn8 #-}
+happyOut8 :: (HappyAbsSyn t74) -> (Decl)
+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut8 #-}
+happyIn9 :: (ParseDecl) -> (HappyAbsSyn t74)
+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn9 #-}
+happyOut9 :: (HappyAbsSyn t74) -> (ParseDecl)
+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut9 #-}
+happyIn10 :: (CGFlag) -> (HappyAbsSyn t74)
+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn10 #-}
+happyOut10 :: (HappyAbsSyn t74) -> (CGFlag)
+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut10 #-}
+happyIn11 :: (Bool) -> (HappyAbsSyn t74)
+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn11 #-}
+happyOut11 :: (HappyAbsSyn t74) -> (Bool)
+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut11 #-}
+happyIn12 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn12 #-}
+happyOut12 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut12 #-}
+happyIn13 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn13 #-}
+happyOut13 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut13 #-}
+happyIn14 :: ([ParseDecl]) -> (HappyAbsSyn t74)
+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn14 #-}
+happyOut14 :: (HappyAbsSyn t74) -> ([ParseDecl])
+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut14 #-}
+happyIn15 :: ([CGFlag]) -> (HappyAbsSyn t74)
+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn15 #-}
+happyOut15 :: (HappyAbsSyn t74) -> ([CGFlag])
+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut15 #-}
+happyIn16 :: ([CGFlag]) -> (HappyAbsSyn t74)
+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn16 #-}
+happyOut16 :: (HappyAbsSyn t74) -> ([CGFlag])
+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut16 #-}
+happyIn17 :: ([CGFlag]) -> (HappyAbsSyn t74)
+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn17 #-}
+happyOut17 :: (HappyAbsSyn t74) -> ([CGFlag])
+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut17 #-}
+happyIn18 :: ([Decl]) -> (HappyAbsSyn t74)
+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn18 #-}
+happyOut18 :: (HappyAbsSyn t74) -> ([Decl])
+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut18 #-}
+happyIn19 :: ([String]) -> (HappyAbsSyn t74)
+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn19 #-}
+happyOut19 :: (HappyAbsSyn t74) -> ([String])
+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut19 #-}
+happyIn20 :: (String) -> (HappyAbsSyn t74)
+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn20 #-}
+happyOut20 :: (HappyAbsSyn t74) -> (String)
+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut20 #-}
+happyIn21 :: (Fixity) -> (HappyAbsSyn t74)
+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn21 #-}
+happyOut21 :: (HappyAbsSyn t74) -> (Fixity)
+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut21 #-}
+happyIn22 :: (Decl) -> (HappyAbsSyn t74)
+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn22 #-}
+happyOut22 :: (HappyAbsSyn t74) -> (Decl)
+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut22 #-}
+happyIn23 :: ([(Id,String)]) -> (HappyAbsSyn t74)
+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn23 #-}
+happyOut23 :: (HappyAbsSyn t74) -> ([(Id,String)])
+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut23 #-}
+happyIn24 :: ((Id, [(RawTerm, Maybe Id)])) -> (HappyAbsSyn t74)
+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn24 #-}
+happyOut24 :: (HappyAbsSyn t74) -> ((Id, [(RawTerm, Maybe Id)]))
+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut24 #-}
+happyIn25 :: ([(RawTerm,Maybe Id)]) -> (HappyAbsSyn t74)
+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn25 #-}
+happyOut25 :: (HappyAbsSyn t74) -> ([(RawTerm,Maybe Id)])
+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut25 #-}
+happyIn26 :: (Datatype) -> (HappyAbsSyn t74)
+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn26 #-}
+happyOut26 :: (HappyAbsSyn t74) -> (Datatype)
+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut26 #-}
+happyIn27 :: (Bool) -> (HappyAbsSyn t74)
+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn27 #-}
+happyOut27 :: (HappyAbsSyn t74) -> (Bool)
+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut27 #-}
+happyIn28 :: (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse])) -> (HappyAbsSyn t74)
+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn28 #-}
+happyOut28 :: (HappyAbsSyn t74) -> (Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]))
+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut28 #-}
+happyIn29 :: ([TyOpt]) -> (HappyAbsSyn t74)
+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn29 #-}
+happyOut29 :: (HappyAbsSyn t74) -> ([TyOpt])
+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut29 #-}
+happyIn30 :: ([TyOpt]) -> (HappyAbsSyn t74)
+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn30 #-}
+happyOut30 :: (HappyAbsSyn t74) -> ([TyOpt])
+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut30 #-}
+happyIn31 :: (TyOpt) -> (HappyAbsSyn t74)
+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn31 #-}
+happyOut31 :: (HappyAbsSyn t74) -> (TyOpt)
+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut31 #-}
+happyIn32 :: (Id) -> (HappyAbsSyn t74)
+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn32 #-}
+happyOut32 :: (HappyAbsSyn t74) -> (Id)
+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut32 #-}
+happyIn33 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn33 #-}
+happyOut33 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut33 #-}
+happyIn34 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn34 #-}
+happyOut34 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut34 #-}
+happyIn35 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn35 #-}
+happyOut35 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut35 #-}
+happyIn36 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn36 #-}
+happyOut36 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut36 #-}
+happyIn37 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn37 #-}
+happyOut37 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut37 #-}
+happyIn38 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn38 #-}
+happyOut38 :: (HappyAbsSyn t74) -> ([Id])
+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut38 #-}
+happyIn39 :: ([(Id, Int)]) -> (HappyAbsSyn t74)
+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn39 #-}
+happyOut39 :: (HappyAbsSyn t74) -> ([(Id, Int)])
+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut39 #-}
+happyIn40 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn40 #-}
+happyOut40 :: (HappyAbsSyn t74) -> ([Id])
+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut40 #-}
+happyIn41 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn41 #-}
+happyOut41 :: (HappyAbsSyn t74) -> ([Id])
+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut41 #-}
+happyIn42 :: ([(Id, RawTerm, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn42 #-}
+happyOut42 :: (HappyAbsSyn t74) -> ([(Id, RawTerm, RawTerm)])
+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut42 #-}
+happyIn43 :: ((Id, RawTerm)) -> (HappyAbsSyn t74)
+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn43 #-}
+happyOut43 :: (HappyAbsSyn t74) -> ((Id, RawTerm))
+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut43 #-}
+happyIn44 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn44 #-}
+happyOut44 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut44 #-}
+happyIn45 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn45 #-}
+happyOut45 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut45 #-}
+happyIn46 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn46 #-}
+happyOut46 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut46 #-}
+happyIn47 :: (String) -> (HappyAbsSyn t74)
+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn47 #-}
+happyOut47 :: (HappyAbsSyn t74) -> (String)
+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut47 #-}
+happyIn48 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn48 #-}
+happyOut48 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut48 #-}
+happyIn49 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn49 #-}
+happyOut49 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut49 #-}
+happyIn50 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn50 #-}
+happyOut50 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut50 #-}
+happyIn51 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn51 #-}
+happyOut51 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut51 #-}
+happyIn52 :: (ArgOpt) -> (HappyAbsSyn t74)
+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn52 #-}
+happyOut52 :: (HappyAbsSyn t74) -> (ArgOpt)
+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut52 #-}
+happyIn53 :: ([ArgOpt]) -> (HappyAbsSyn t74)
+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn53 #-}
+happyOut53 :: (HappyAbsSyn t74) -> ([ArgOpt])
+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut53 #-}
+happyIn54 :: ([ArgOpt]) -> (HappyAbsSyn t74)
+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn54 #-}
+happyOut54 :: (HappyAbsSyn t74) -> ([ArgOpt])
+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut54 #-}
+happyIn55 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn55 #-}
+happyOut55 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut55 #-}
+happyIn56 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn56 #-}
+happyOut56 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut56 #-}
+happyIn57 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn57 #-}
+happyOut57 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut57 #-}
+happyIn58 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn58 #-}
+happyOut58 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut58 #-}
+happyIn59 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn59 #-}
+happyOut59 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut59 #-}
+happyIn60 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn60 #-}
+happyOut60 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut60 #-}
+happyIn61 :: ([Do]) -> (HappyAbsSyn t74)
+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn61 #-}
+happyOut61 :: (HappyAbsSyn t74) -> ([Do])
+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut61 #-}
+happyIn62 :: ([Do]) -> (HappyAbsSyn t74)
+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn62 #-}
+happyOut62 :: (HappyAbsSyn t74) -> ([Do])
+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut62 #-}
+happyIn63 :: (Do) -> (HappyAbsSyn t74)
+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn63 #-}
+happyOut63 :: (HappyAbsSyn t74) -> (Do)
+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut63 #-}
+happyIn64 :: (Constant) -> (HappyAbsSyn t74)
+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn64 #-}
+happyOut64 :: (HappyAbsSyn t74) -> (Constant)
+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut64 #-}
+happyIn65 :: ([RawTerm]) -> (HappyAbsSyn t74)
+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn65 #-}
+happyOut65 :: (HappyAbsSyn t74) -> ([RawTerm])
+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut65 #-}
+happyIn66 :: ((RawTerm, [(Id, RawTerm)])) -> (HappyAbsSyn t74)
+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn66 #-}
+happyOut66 :: (HappyAbsSyn t74) -> ((RawTerm, [(Id, RawTerm)]))
+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut66 #-}
+happyIn67 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn67 #-}
+happyOut67 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut67 #-}
+happyIn68 :: ((Id,Id)) -> (HappyAbsSyn t74)
+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn68 #-}
+happyOut68 :: (HappyAbsSyn t74) -> ((Id,Id))
+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut68 #-}
+happyIn69 :: ((Id,Id)) -> (HappyAbsSyn t74)
+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn69 #-}
+happyOut69 :: (HappyAbsSyn t74) -> ((Id,Id))
+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut69 #-}
+happyIn70 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn70 #-}
+happyOut70 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut70 #-}
+happyIn71 :: (Id) -> (HappyAbsSyn t74)
+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn71 #-}
+happyOut71 :: (HappyAbsSyn t74) -> (Id)
+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut71 #-}
+happyIn72 :: ([(Id, RawTerm)]) -> (HappyAbsSyn t74)
+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn72 #-}
+happyOut72 :: (HappyAbsSyn t74) -> ([(Id, RawTerm)])
+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut72 #-}
+happyIn73 :: ([Id]) -> (HappyAbsSyn t74)
+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn73 #-}
+happyOut73 :: (HappyAbsSyn t74) -> ([Id])
+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut73 #-}
+happyIn74 :: t74 -> (HappyAbsSyn t74)
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn t74) -> t74
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: ([ConParse]) -> (HappyAbsSyn t74)
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn t74) -> ([ConParse])
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (ConParse) -> (HappyAbsSyn t74)
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn t74) -> (ConParse)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: (RawTerm) -> (HappyAbsSyn t74)
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn t74) -> (RawTerm)
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: (ITactic) -> (HappyAbsSyn t74)
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn t74) -> (ITactic)
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyIn79 :: ([ITactic]) -> (HappyAbsSyn t74)
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn t74) -> ([ITactic])
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+happyIn80 :: ([ITactic]) -> (HappyAbsSyn t74)
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn t74) -> ([ITactic])
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+happyIn81 :: ([ITactic]) -> (HappyAbsSyn t74)
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn t74) -> ([ITactic])
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+happyIn82 :: (LineNumber) -> (HappyAbsSyn t74)
+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn82 #-}
+happyOut82 :: (HappyAbsSyn t74) -> (LineNumber)
+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut82 #-}
+happyIn83 :: (String) -> (HappyAbsSyn t74)
+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn83 #-}
+happyOut83 :: (HappyAbsSyn t74) -> (String)
+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut83 #-}
+happyIn84 :: (Fixities) -> (HappyAbsSyn t74)
+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn84 #-}
+happyOut84 :: (HappyAbsSyn t74) -> (Fixities)
+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut84 #-}
+happyInTok :: (Token) -> (HappyAbsSyn t74)
+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyInTok #-}
+happyOutTok :: (HappyAbsSyn t74) -> (Token)
+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOutTok #-}
+
+
+happyActOffsets :: HappyAddr
+happyActOffsets = HappyA# "\x1c\x00\x66\x05\x63\x05\x00\x00\x4e\x04\x66\x05\xeb\x00\xeb\x00\x66\x05\x00\x00\x5c\x03\x05\x03\x00\x00\xeb\x00\x00\x00\x66\x05\x66\x05\x00\x00\x00\x00\x66\x05\x66\x05\x66\x05\x66\x05\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x00\xcb\x09\x57\x02\xea\x01\x66\x05\x66\x05\xb5\x08\x66\x05\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x05\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x66\x05\x19\x00\x48\x04\x01\x00\x00\x00\x00\x00\x01\x00\xb5\x04\x00\x00\xa9\x04\x00\x00\x8d\x04\xfe\x01\xa2\x04\x95\x04\x93\x04\x91\x04\x90\x04\x05\x0a\x1b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x04\x8e\x04\x82\x04\x19\x00\x19\x00\x8c\x04\x4c\x04\x79\x04\x87\x04\x66\x05\x83\x04\x81\x04\x00\x00\x00\x00\x3f\x01\x00\x00\x19\x00\x7a\x04\x78\x04\x19\x00\x00\x00\x19\x00\x19\x00\x19\x00\x70\x04\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\xfe\xff\x00\x00\x00\x00\xae\x02\x00\x00\x00\x00\x00\x00\x5f\x00\x5f\x00\x5f\x00\x5f\x00\x5f\x00\x00\x00\x72\x08\x77\x04\x02\x01\x91\x09\x6b\x04\x19\x00\xfb\x01\x2a\x00\x05\x0a\x1b\x02\x00\x00\x00\x00\x76\x04\x29\x04\xe4\x00\x00\x00\x71\x04\x0f\x05\x00\x00\x00\x00\x6f\x04\x00\x00\x6f\x04\x00\x00\x56\x06\xf2\x08\x00\x00\x63\x05\x63\x05\xb6\x01\x42\x07\xb8\x04\x69\x04\xb8\x04\xb8\x04\x65\x04\x5c\x04\xb8\x04\xb8\x04\x22\x0a\x35\x00\x00\x00\xb8\x04\x57\x09\x19\x00\x62\x04\x34\x04\x00\x00\xb5\x08\x4a\x04\x00\x00\xb8\x04\x2e\x04\xb8\x04\xb8\x04\xb8\x04\xb8\x04\xb8\x04\x00\x00\xc4\x01\xaf\x01\x9a\x01\x85\x01\x67\x01\x52\x01\x00\x00\x3d\x01\xb8\x04\x28\x01\xb8\x04\x0b\x01\x00\x00\x38\x04\x00\x00\xed\x00\x19\x00\x6a\x00\x03\x00\x00\x00\x49\x04\x49\x04\x49\x04\x49\x04\x49\x04\x00\x00\xb8\x04\x49\x04\xb5\x08\x00\x00\x00\x00\x00\x00\xb8\x04\x2a\x04\xcb\x09\x40\x04\x37\x04\x25\x04\x0d\x01\x36\x04\xae\x01\x22\x04\xc8\x07\xcb\x09\x00\x00\xcb\x09\xcb\x09\x28\x04\x00\x00\x6e\x08\x00\x00\x6e\x08\x00\x00\x6e\x08\x00\x00\x6e\x08\x00\x00\xb8\x04\x00\x00\xb8\x04\xb8\x04\xb8\x04\xb8\x04\xb8\x04\x27\x04\x26\x04\x24\x04\x20\x04\xb8\x04\x00\x00\x00\x00\xb8\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x6e\x08\x1d\x04\x61\x04\x19\x00\xfd\x03\x00\x00\x0a\x04\x0a\x04\x0d\x04\x21\x04\x04\x04\x1f\x04\x0a\x04\x0a\x04\x0a\x04\xcd\x03\x11\x04\xfe\x03\x00\x00\x00\x00\x96\x01\x63\x05\x19\x04\x14\x04\x05\x00\xf5\x03\x72\x08\x0a\x04\x00\x00\x00\x00\x03\x04\x02\x04\xf4\x03\xf3\x03\xf2\x03\x00\x00\x00\x00\xff\x06\xe8\x03\x00\x00\x00\x00\x0a\x04\x0a\x04\x0a\x04\x00\x00\xed\x03\xe4\x03\xce\x03\xe0\x03\x19\x00\xd3\x03\x01\x00\x19\x00\xd1\x03\xd0\x03\x00\x00\x0a\x04\x0b\x08\xd7\x03\xd9\x03\x00\x00\xb8\x03\x00\x00\x0a\x04\x00\x00\x00\x00\x19\x00\x00\x00\x91\x09\xa8\x04\x51\x04\xfa\x03\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x07\x00\x00\x19\x00\xc8\x03\xc6\x03\xcb\x09\xc4\x03\x00\x00\x19\x00\x19\x00\xba\x03\x91\x09\x00\x00\x00\x00\xfb\x01\x00\x00\x00\x00\xa3\x03\x9e\x02\x4c\x03\x00\x00\x1b\x02\x00\x00\x0a\x04\xcb\x00\x1e\x02\x0a\x04\xcb\x03\x00\x00\x00\x00\x00\x00\xa5\x03\x1d\x09\x00\x00\xf8\x08\xdc\x06\x00\x00\x13\x06\xbf\x03\x00\x00\x00\x00\x63\x05\xcb\x09\x00\x00\x83\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x03\x00\x00\xc1\x03\x00\x00\xb5\x08\x00\x00\xa1\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x09\xcb\x09\xb9\x03\x91\x09\x19\x00\x9e\x03\x91\x09\x05\x00\x19\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x08\xf8\x08\xf8\x08\xf8\x08\xf8\x08\xf8\x08\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x09\x00\x00\x65\x00\x96\x03\xec\x01\x0a\x01\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x08\x00\x00\xec\x07\x00\x00\xa9\x07\x00\x00\x66\x07\xb7\x03\xae\x03\xad\x03\xa4\x03\x9f\x03\x34\x00\x00\x00\x00\x00\x0a\x04\x00\x00\x00\x00\x0a\x04\x23\x07\x8f\x03\x6e\x08\x0a\x04\xc7\x01\x00\x00\xb9\x00\x8e\x03\x8c\x03\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\xe0\x06\x93\x03\x90\x03\x00\x00\x00\x00\x00\x00\x05\x00\x6f\x03\x00\x00\xb9\x01\x00\x00\x00\x00\x9d\x06\x00\x00\xb9\x00\x00\x00\x77\x03\x5f\x03\x89\x03\x47\x02\x19\x00\x5d\x03\x00\x00\x00\x00\x19\x00\x88\x03\x00\x00\x00\x00\x19\x00\x19\x00\xb9\x00\x74\x03\x00\x00\x00\x00\x00\x00\x71\x03\xb9\x01\x7c\x03\x00\x00\x00\x00\x00\x00\x72\x03\x00\x00\x91\x09\x00\x00\x19\x00\x00\x00\xb5\x08\x00\x00\x00\x00\x91\x09\x00\x00\x36\x03\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x6b\x03\x19\x00\x7a\x03\x00\x00\x0a\x04\x00\x00\x6e\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x03\x66\x03\x00\x00\x00\x00\xcb\x09\x4a\x03\x4a\x03\x00\x00\xec\x01\x64\x03\x00\x00\x00\x00\x00\x00\xc7\x01\x5a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x61\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x03\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x60\x03\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x03\x00\x00\x17\x06\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x05\x55\x03\x00\x00\x00\x00\x00\x00\x33\x03\x19\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyGotoOffsets :: HappyAddr
+happyGotoOffsets = HappyA# "\x27\x0b\xd1\x0f\x1f\x03\x00\x00\x00\x00\xbb\x0f\x5e\x01\x3e\x03\xa5\x0f\x00\x00\x8f\x0f\x79\x0f\x00\x00\x3d\x03\x00\x00\x63\x0f\x4d\x0f\x00\x00\x00\x00\x37\x0f\x21\x0f\x0b\x0f\xf5\x0e\x00\x00\x00\x00\x00\x00\xfe\x02\x4c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x01\x05\xcc\x04\xfa\x02\xdf\x0e\xc9\x0e\xfc\x0f\xb3\x0e\x00\x00\x29\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x0e\x00\x00\xf9\x02\xf8\x02\x00\x00\xf5\x02\x87\x0e\x6b\x01\x00\x00\xf1\x0a\x00\x00\x00\x00\xd6\x0a\x00\x00\x00\x00\x2e\x03\x00\x00\x18\x03\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x20\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x03\x11\x03\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x01\xdc\x02\xa4\x01\x00\x00\x00\x00\x78\x01\x00\x00\x49\x01\x0e\x03\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x03\xd8\x02\x34\x01\x00\x00\xd7\x02\x23\x05\x00\x00\xd4\x02\xd1\x02\xcf\x0a\xb9\x0a\x83\x0a\x6d\x0a\x66\x0a\x00\x00\x9e\x08\x00\x00\x00\x00\xdb\x0b\x00\x00\x02\x03\x10\x02\x1a\x03\x15\x00\x11\x02\x00\x00\x00\x00\xf0\x02\x00\x00\x32\x01\xcc\x02\xed\x02\x43\x0b\xca\x02\xc6\x02\x2e\x01\xb3\x02\x29\x01\x00\x00\x1f\x01\x1f\x01\xbb\x02\xdd\x01\xc9\x01\x1d\x00\x60\x00\x5b\x0e\x00\x00\x45\x0e\x2f\x0e\x00\x00\x00\x00\x75\x04\x1e\x04\x11\x01\x00\x00\x00\x00\x19\x0e\xde\x01\xfd\x01\xab\x02\x00\x00\xb6\x02\xf4\x0f\x00\x00\xb5\x02\x03\x0e\xa7\x02\xed\x0d\xd7\x0d\xc1\x0d\xab\x0d\x95\x0d\xa6\x02\x04\x01\x04\x01\x04\x01\x04\x01\x04\x01\x04\x01\x00\x00\x04\x01\x7f\x0d\x04\x01\x69\x0d\x04\x01\x00\x00\x00\x00\x00\x00\x04\x01\x15\x01\x04\x01\x04\x01\x00\x00\x00\x01\xfc\x00\xe3\x00\xdf\x00\xd0\x00\xa4\x02\x53\x0d\xc6\x00\xe7\x0f\xa1\x02\x9f\x02\x00\x00\x3d\x0d\x00\x00\xca\x04\x00\x00\x00\x00\x00\x00\xe1\xff\x00\x00\x00\x00\x00\x00\xc4\x00\x73\x04\x00\x00\x1c\x04\xc5\x03\x00\x00\x91\x02\xbc\x00\x88\x02\xa7\x00\x7e\x02\x9d\x00\x85\x02\x8e\x00\x82\x02\xc7\x03\x00\x00\x70\x03\x27\x0d\x11\x0d\xc2\x02\x19\x03\x00\x00\x00\x00\x00\x00\x00\x00\x85\x0b\x00\x00\x81\x02\xfb\x0c\x7b\x02\x77\x02\x73\x02\x00\x00\x00\x00\xde\xff\x8d\x00\x00\x00\x1e\x0b\x1a\x01\x00\x00\x00\x00\xe5\x0c\xcf\x0c\x00\x00\x00\x00\x00\x00\xb4\x02\xb9\x0c\xa3\x0c\x8d\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xff\x9b\x01\x8e\x02\x00\x00\x00\x00\x00\x00\x38\x08\x77\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x02\x5f\x02\x87\x00\x00\x00\x5e\x02\x59\x02\x61\x0c\x4b\x0c\x35\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x4b\x0a\x89\x02\x00\x00\x00\x00\x53\x02\x1f\x0c\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x0c\x00\x00\x00\x00\x7d\x02\x00\x00\xaf\x0b\x87\x00\x87\x00\x87\x00\x00\x00\x00\x00\x51\x02\x00\x00\x6f\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x50\x02\xfb\xff\x8a\x02\x00\x00\x6e\x03\x00\x00\x4f\x02\xea\xff\x3b\x00\x00\x00\x83\x0b\x4e\x02\x4b\x02\xd7\x01\x00\x00\x00\x00\x87\x00\x87\x00\x87\x00\x00\x00\x9c\x01\x00\x00\xf3\x0b\x87\x00\x87\x00\xdd\x0b\x54\x02\x00\x00\x00\x00\x4a\x02\x00\x00\xd6\x0f\x00\x00\xd6\x0f\x87\x00\x48\x02\x87\x00\x00\x00\x00\x00\x00\x00\x71\x01\x17\x03\x46\x02\x87\x00\x00\x00\x45\x02\x3b\x02\x3a\x02\x38\x02\x35\x02\x2f\x02\x2c\x02\x00\x00\x27\x02\x00\x00\x1c\x02\xcc\x0f\x23\x02\x00\x00\x1f\x02\x16\x02\x00\x00\x15\x02\x00\x00\xf6\x02\x68\x02\x32\x02\x57\x0b\xc1\x01\x00\x00\x12\x0b\x00\x00\xa2\x00\x87\x00\x0b\x02\x0a\x02\x00\x00\x09\x02\x87\x00\x00\x00\x05\x02\x04\x02\xff\x01\xfc\x01\xf8\x01\x00\x00\xea\x0a\xea\x0a\xea\x0a\xea\x0a\xea\x0a\xea\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xef\x01\xe3\x01\xdf\x01\xd8\x01\xce\x01\x00\x00\xea\x0a\x00\x00\xea\x0a\x00\x00\xea\x0a\x00\x00\xea\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x0b\x00\x00\xbd\x01\xc7\x0b\xea\x0a\x00\x00\x83\x00\xb1\x0b\x6b\x00\x00\x00\xc5\x02\xf2\x01\x00\x00\x00\x00\xb2\x01\xaa\x01\xa1\x01\x8b\x01\xbd\x05\x00\x00\x00\x00\x00\x00\x84\x01\x00\x00\x00\x00\x00\x00\xff\x00\x94\x01\x00\x00\x68\x01\x6f\x07\x62\x01\x6e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\xba\x01\x00\x00\x00\x00\x00\x00\x7c\x01\x00\x00\x00\x00\x00\x00\x6e\x00\xab\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x01\xed\x09\x00\x00\xf5\xff\x00\x00\x6b\x09\x00\x00\x00\x00\xb3\x09\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x59\x01\xea\x00\x00\x00\xef\xff\x61\x00\x0c\x01\x9b\x0b\x00\x00\x2b\x00\xfb\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\xe9\xff\x00\x00\x74\x00\x00\x00\x5d\x00\xff\xff\x81\x09\x59\x00\x00\x00\x4c\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\xdb\xff\x81\x09\xc2\x09\xd7\xff\x81\x09\x00\x00\x00\x00\x00\x00\x00\x00\x81\x09\x00\x00\x00\x00\xc6\xff\x00\x00\x00\x00\x56\x01\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyDefActions :: HappyAddr
+happyDefActions = HappyA# "\x23\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xff\x00\x00\x00\x00\x0c\xff\x00\x00\x00\x00\x07\xff\x00\x00\x05\xff\x00\x00\x00\x00\x02\xff\x01\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xfe\xfb\xfe\xfa\xfe\xf2\xfe\xf2\xfe\x9c\xff\x81\xff\x46\xff\x47\xff\xa3\xff\x45\xff\x4a\xff\xf2\xfe\xac\xff\x2b\xff\x2d\xff\x29\xff\x2c\xff\x2a\xff\x53\xff\x00\x00\x00\x00\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xff\x00\x00\x33\xff\x32\xff\x31\xff\x34\xff\x2f\xff\x30\xff\x2e\xff\x35\xff\x00\x00\x4e\xff\xf2\xfe\xf2\xfe\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x23\xff\xef\xff\xf8\xff\x23\xff\x00\x00\xf6\xff\xdb\xff\xf7\xff\xb2\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xb6\xff\xc1\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\xed\xff\xf2\xfe\xf2\xfe\x00\x00\x00\x00\x00\x00\x8d\xff\x1e\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xff\xc6\xff\xc5\xff\xc4\xff\x00\x00\xf2\xfe\xf2\xfe\xd9\xff\xf2\xfe\x00\x00\xa6\xff\xf2\xfe\xf2\xfe\x23\xff\x23\xff\x23\xff\x23\xff\x23\xff\xbd\xff\xbc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\x71\xff\x00\x00\xf2\xfe\xf3\xfe\x71\xff\x00\x00\xf3\xfe\xf3\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x54\xff\xf2\xfe\xf2\xfe\xf3\xfe\x00\x00\x00\x00\xf2\xfe\xf2\xfe\x00\x00\x00\x00\xc7\xff\xc6\xff\x73\xff\x72\xff\xf2\xfe\xf2\xfe\xf2\xfe\x00\x00\x61\xff\x00\x00\x00\x00\x00\x00\x71\xff\x00\x00\xf3\xfe\x00\x00\x00\x00\xf3\xfe\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x06\xff\xf2\xfe\x00\x00\xf2\xfe\x00\x00\xf2\xfe\x0f\xff\x95\xff\x11\xff\xf2\xfe\x00\x00\xf2\xfe\xf2\xfe\x57\xff\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf3\xfe\x00\x00\xf2\xfe\x00\x00\xf2\xfe\xf2\xfe\x4f\xff\x00\x00\x9a\xff\x00\x00\x00\x00\x00\x00\x97\xff\xf2\xfe\x00\x00\x00\x00\x00\x00\xf2\xfe\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\xf3\xfe\xf2\xfe\xf3\xfe\xf2\xfe\xf3\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x55\xff\xf2\xfe\x73\xff\x72\xff\xf2\xfe\xf2\xfe\x00\x00\xf7\xfe\x00\x00\x00\x00\x3f\xff\x49\xff\xf2\xfe\x00\x00\xf3\xfe\xf3\xfe\xf3\xfe\x4d\xff\x4c\xff\xf2\xfe\xf2\xfe\x00\x00\x39\xff\x00\x00\x00\x00\x56\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xdb\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\xb0\xff\xae\xff\xad\xff\x00\x00\x00\x00\x6f\xff\x00\x00\x6c\xff\x8f\xff\xbc\xff\x00\x00\xe9\xff\xbb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xfe\xf3\xfe\xf2\xfe\x00\x00\xf3\xfe\xf3\xfe\x00\x00\x00\x00\x00\x00\xab\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x00\x00\x23\xff\x00\x00\x00\x00\x00\x00\xf3\xfe\x00\x00\xf2\xfe\x00\x00\x00\x00\xc0\xff\x00\x00\xf9\xff\x00\x00\x8c\xff\x1f\xff\x00\x00\x22\xff\x00\x00\xf2\xfe\xf2\xfe\xf2\xfe\xa8\xff\xa7\xff\xf2\xfe\xd8\xff\x00\x00\xa5\xff\xa4\xff\xf0\xff\xf1\xff\xf2\xff\xf3\xff\xf4\xff\xf2\xfe\xf2\xfe\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\xf2\xfe\x1b\xff\x17\xff\x00\x00\x00\x00\xf2\xfe\xf2\xfe\x00\x00\xb1\xff\xdd\xff\xf2\xfe\xf2\xfe\xf2\xfe\xdc\xff\x00\x00\xca\xff\x00\x00\xf2\xfe\xf2\xfe\x00\x00\x71\xff\x3a\xff\x3c\xff\xf3\xfe\x00\x00\x9f\xff\x50\xff\x87\xff\xf2\xfe\xf3\xfe\xf2\xfe\x00\x00\x52\xff\x51\xff\xf8\xfe\x00\x00\xf3\xfe\xf2\xfe\x40\xff\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\x00\x00\xf3\xfe\x00\x00\xf3\xfe\x00\x00\xf2\xfe\x6b\xff\xf2\xfe\xf2\xfe\x65\xff\xf2\xfe\x68\xff\x00\x00\x00\x00\x5d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x70\xff\x00\x00\xf2\xfe\xf3\xfe\xf3\xfe\xa1\xff\xf3\xfe\xf2\xfe\x89\xff\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\x94\xff\x82\xff\x85\xff\x83\xff\x84\xff\x86\xff\x7f\xff\xa0\xff\x80\xff\x99\xff\x96\xff\x00\x00\x98\xff\x70\xff\x00\x00\x00\x00\x59\xff\x58\xff\xf2\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xf3\xfe\xaa\xff\x00\x00\x77\xff\x00\x00\x76\xff\x00\x00\x48\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xfe\x44\xff\x3f\xff\x42\xff\xf2\xfe\x00\x00\x00\x00\x00\x00\xf2\xfe\x00\x00\xf2\xfe\xc8\xff\x00\x00\xd3\xff\x00\x00\xaf\xff\xf3\xfe\xf3\xfe\x23\xff\xf2\xfe\x28\xff\x00\x00\x16\xff\x1a\xff\xf3\xfe\xf9\xfe\x6e\xff\x00\x00\xf2\xfe\xd2\xff\x8e\xff\xf3\xfe\xbc\xff\xf3\xfe\x00\x00\xe5\xff\x00\x00\x1d\xff\x00\x00\xf2\xfe\x00\x00\xbf\xff\xf5\xff\xeb\xff\x00\x00\x00\x00\xee\xff\x20\xff\x00\x00\x00\x00\xd5\xff\x00\x00\xd7\xff\xb9\xff\xba\xff\x00\x00\xd2\xff\x00\x00\xcc\xff\xd0\xff\xcf\xff\xcd\xff\xf3\xfe\x00\x00\xb8\xff\x17\xff\xb5\xff\x28\xff\x13\xff\x14\xff\x00\x00\xf3\xfe\x00\x00\xb4\xff\xb3\xff\x25\xff\x00\x00\xf2\xfe\x00\x00\x00\x00\xf2\xfe\xf3\xfe\x00\x00\x36\xff\xf2\xfe\xf3\xfe\x3d\xff\xf2\xfe\x79\xff\x75\xff\x7a\xff\x7d\xff\x7b\xff\x7c\xff\x7e\xff\x74\xff\x78\xff\xa9\xff\x63\xff\x64\xff\x62\xff\xf3\xfe\x5b\xff\x00\x00\x60\xff\x5f\xff\x00\x00\x69\xff\x6a\xff\x5e\xff\x00\x00\x00\x00\xf3\xfe\x43\xff\xf3\xfe\xf2\xfe\x00\x00\xf3\xfe\x8a\xff\xf2\xfe\xf3\xfe\x00\x00\x26\xff\x24\xff\x12\xff\x27\xff\x15\xff\x6d\xff\xea\xff\x00\x00\xcb\xff\xd1\xff\xd4\xff\xe3\xff\xd6\xff\x00\x00\x1c\xff\x21\xff\xbe\xff\xe4\xff\x92\xff\x00\x00\xf2\xfe\xe6\xff\xf3\xfe\x9b\xff\x00\x00\xf3\xfe\x00\x00\x5a\xff\x67\xff\x5c\xff\x38\xff\x00\x00\x00\x00\xe8\xff\xf3\xfe\xce\xff\x93\xff\x00\x00\x91\xff\x00\x00\xe7\xff\x3b\xff\x37\xff\x90\xff"#
+
+happyCheck :: HappyAddr
+happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x0b\x00\x1a\x00\x02\x00\x03\x00\x02\x00\x2a\x00\x1a\x00\x0c\x00\x2a\x00\x16\x00\x0c\x00\x0b\x00\x1a\x00\x1a\x00\x10\x00\x4c\x00\x24\x00\x13\x00\x1a\x00\x13\x00\x2e\x00\x15\x00\x30\x00\x01\x00\x20\x00\x07\x00\x01\x00\x20\x00\x21\x00\x1d\x00\x07\x00\x1d\x00\x4c\x00\x25\x00\x22\x00\x23\x00\x4c\x00\x0c\x00\x10\x00\x27\x00\x4d\x00\x10\x00\x43\x00\x4d\x00\x1a\x00\x1b\x00\x2e\x00\x3c\x00\x2e\x00\x1a\x00\x1b\x00\x02\x00\x02\x00\x40\x00\x43\x00\x45\x00\x46\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x11\x00\x11\x00\x2a\x00\x4a\x00\x34\x00\x20\x00\x21\x00\x4d\x00\x4c\x00\x34\x00\x3a\x00\x25\x00\x1d\x00\x1d\x00\x52\x00\x3a\x00\x1a\x00\x55\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x01\x00\x03\x00\x2e\x00\x2e\x00\x4d\x00\x20\x00\x21\x00\x02\x00\x4c\x00\x05\x00\x4d\x00\x0c\x00\x02\x00\x03\x00\x52\x00\x10\x00\x12\x00\x55\x00\x13\x00\x72\x00\x4a\x00\x0b\x00\x11\x00\x76\x00\x4d\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x13\x00\x7b\x00\x15\x00\x45\x00\x46\x00\x1d\x00\x0a\x00\x4c\x00\x25\x00\x25\x00\x1d\x00\x1a\x00\x29\x00\x26\x00\x26\x00\x22\x00\x23\x00\x72\x00\x4a\x00\x25\x00\x27\x00\x76\x00\x2e\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x2e\x00\x4d\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x02\x00\x03\x00\x4c\x00\x02\x00\x03\x00\x25\x00\x4c\x00\x31\x00\x4c\x00\x25\x00\x4d\x00\x4d\x00\x0b\x00\x42\x00\x52\x00\x25\x00\x25\x00\x55\x00\x11\x00\x12\x00\x13\x00\x4d\x00\x15\x00\x01\x00\x17\x00\x1a\x00\x19\x00\x1d\x00\x1d\x00\x4c\x00\x1d\x00\x25\x00\x22\x00\x23\x00\x0c\x00\x22\x00\x23\x00\x27\x00\x10\x00\x26\x00\x27\x00\x25\x00\x02\x00\x03\x00\x2e\x00\x4d\x00\x72\x00\x2e\x00\x2f\x00\x4d\x00\x76\x00\x0b\x00\x78\x00\x79\x00\x7a\x00\x4d\x00\x4d\x00\x11\x00\x12\x00\x13\x00\x4c\x00\x15\x00\x25\x00\x17\x00\x4d\x00\x19\x00\x7b\x00\x02\x00\x03\x00\x1d\x00\x25\x00\x4d\x00\x25\x00\x01\x00\x22\x00\x23\x00\x02\x00\x03\x00\x26\x00\x27\x00\x1a\x00\x4d\x00\x25\x00\x1d\x00\x1a\x00\x0b\x00\x2e\x00\x2f\x00\x10\x00\x58\x00\x59\x00\x21\x00\x5b\x00\x13\x00\x1d\x00\x15\x00\x2e\x00\x25\x00\x30\x00\x22\x00\x23\x00\x25\x00\x4d\x00\x1d\x00\x27\x00\x02\x00\x02\x00\x03\x00\x22\x00\x23\x00\x4d\x00\x2e\x00\x4d\x00\x27\x00\x13\x00\x0b\x00\x0a\x00\x0a\x00\x0b\x00\x0d\x00\x2e\x00\x7b\x00\x4d\x00\x13\x00\x7b\x00\x15\x00\x25\x00\x20\x00\x58\x00\x59\x00\x25\x00\x5b\x00\x1d\x00\x1d\x00\x25\x00\x02\x00\x03\x00\x4d\x00\x22\x00\x23\x00\x1a\x00\x4d\x00\x27\x00\x27\x00\x0b\x00\x1a\x00\x20\x00\x25\x00\x4d\x00\x2e\x00\x2e\x00\x1a\x00\x13\x00\x58\x00\x15\x00\x24\x00\x02\x00\x03\x00\x02\x00\x03\x00\x23\x00\x25\x00\x1d\x00\x7b\x00\x4c\x00\x0b\x00\x4d\x00\x22\x00\x23\x00\x4d\x00\x4d\x00\x25\x00\x27\x00\x13\x00\x4d\x00\x15\x00\x25\x00\x02\x00\x03\x00\x2e\x00\x25\x00\x4c\x00\x25\x00\x1d\x00\x1a\x00\x1d\x00\x0b\x00\x4d\x00\x22\x00\x23\x00\x22\x00\x23\x00\x1a\x00\x27\x00\x13\x00\x27\x00\x15\x00\x7b\x00\x02\x00\x03\x00\x2e\x00\x4d\x00\x2e\x00\x2f\x00\x1d\x00\x1a\x00\x25\x00\x0b\x00\x1a\x00\x22\x00\x23\x00\x4d\x00\x21\x00\x1a\x00\x27\x00\x13\x00\x4d\x00\x15\x00\x03\x00\x20\x00\x4d\x00\x2e\x00\x4d\x00\x08\x00\x42\x00\x1d\x00\x1a\x00\x7b\x00\x02\x00\x03\x00\x22\x00\x23\x00\x42\x00\x12\x00\x11\x00\x27\x00\x24\x00\x0b\x00\x4c\x00\x1a\x00\x4c\x00\x1a\x00\x2e\x00\x1a\x00\x01\x00\x13\x00\x4d\x00\x15\x00\x23\x00\x02\x00\x03\x00\x0a\x00\x0b\x00\x0a\x00\x0b\x00\x1d\x00\x7b\x00\x1a\x00\x0b\x00\x10\x00\x22\x00\x23\x00\x0d\x00\x0e\x00\x21\x00\x27\x00\x13\x00\x4c\x00\x15\x00\x02\x00\x02\x00\x03\x00\x2e\x00\x4c\x00\x11\x00\x20\x00\x1d\x00\x7b\x00\x48\x00\x0b\x00\x4a\x00\x22\x00\x23\x00\x1a\x00\x11\x00\x0a\x00\x27\x00\x13\x00\x0d\x00\x15\x00\x1a\x00\x02\x00\x03\x00\x2e\x00\x02\x00\x03\x00\x1d\x00\x1d\x00\x7b\x00\x20\x00\x0b\x00\x4c\x00\x22\x00\x23\x00\x13\x00\x1a\x00\x27\x00\x27\x00\x13\x00\x4d\x00\x15\x00\x1a\x00\x1a\x00\x2e\x00\x2e\x00\x3d\x00\x1e\x00\x1f\x00\x1d\x00\x7b\x00\x48\x00\x1d\x00\x4a\x00\x22\x00\x23\x00\x28\x00\x22\x00\x23\x00\x27\x00\x0e\x00\x26\x00\x27\x00\x18\x00\x19\x00\x31\x00\x2e\x00\x33\x00\x34\x00\x2e\x00\x4c\x00\x37\x00\x1a\x00\x1b\x00\x3a\x00\x09\x00\x1e\x00\x1f\x00\x4c\x00\x01\x00\x7b\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x49\x00\x4d\x00\x2d\x00\x53\x00\x54\x00\x10\x00\x31\x00\x32\x00\x48\x00\x14\x00\x4a\x00\x16\x00\x7b\x00\x18\x00\x1a\x00\x3a\x00\x1b\x00\x4c\x00\x1e\x00\x1f\x00\x02\x00\x0d\x00\x0e\x00\x02\x00\x03\x00\x5b\x00\x25\x00\x4c\x00\x48\x00\x28\x00\x4a\x00\x18\x00\x19\x00\x7b\x00\x4c\x00\x73\x00\x74\x00\x75\x00\x4c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\x4d\x00\x4e\x00\x1d\x00\x4d\x00\x22\x00\x23\x00\x7b\x00\x22\x00\x23\x00\x47\x00\x48\x00\x4c\x00\x27\x00\x5c\x00\x5d\x00\x4c\x00\x02\x00\x03\x00\x4c\x00\x2e\x00\x4f\x00\x50\x00\x51\x00\x4c\x00\x4c\x00\x0b\x00\x55\x00\x56\x00\x4c\x00\x4c\x00\x4c\x00\x01\x00\x02\x00\x5c\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2f\x00\x4d\x00\x4d\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x4c\x00\x22\x00\x23\x00\x14\x00\x4d\x00\x16\x00\x27\x00\x18\x00\x4d\x00\x03\x00\x1b\x00\x4c\x00\x1d\x00\x2e\x00\x08\x00\x59\x00\x4c\x00\x22\x00\x23\x00\x4c\x00\x25\x00\x26\x00\x2a\x00\x28\x00\x12\x00\x4c\x00\x1a\x00\x1b\x00\x4c\x00\x2e\x00\x4c\x00\x4c\x00\x1a\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x4c\x00\x4c\x00\x09\x00\x4c\x00\x2d\x00\x4c\x00\x1a\x00\x4d\x00\x31\x00\x32\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4c\x00\x02\x00\x03\x00\x3a\x00\x1a\x00\x4d\x00\x4c\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x4c\x00\x4c\x00\x55\x00\x56\x00\x57\x00\x01\x00\x02\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4c\x00\x2b\x00\x06\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x4c\x00\x22\x00\x23\x00\x14\x00\x4c\x00\x16\x00\x27\x00\x18\x00\x4c\x00\x03\x00\x1b\x00\x4c\x00\x1d\x00\x2e\x00\x08\x00\x4d\x00\x4d\x00\x22\x00\x23\x00\x4d\x00\x25\x00\x4c\x00\x2a\x00\x28\x00\x12\x00\x1a\x00\x1b\x00\x1a\x00\x1b\x00\x1a\x00\x4c\x00\x1c\x00\x1a\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x2d\x00\x4d\x00\x2d\x00\x4d\x00\x31\x00\x4c\x00\x31\x00\x4c\x00\x31\x00\x4d\x00\x33\x00\x34\x00\x35\x00\x3a\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x4d\x00\x4c\x00\x4c\x00\x55\x00\x56\x00\x57\x00\x01\x00\x4c\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x1a\x00\x1b\x00\x4c\x00\x0e\x00\x0f\x00\x10\x00\x4c\x00\x2a\x00\x4c\x00\x14\x00\x2a\x00\x16\x00\x1a\x00\x18\x00\x4d\x00\x05\x00\x1b\x00\x4d\x00\x1d\x00\x2d\x00\x4d\x00\x4d\x00\x05\x00\x31\x00\x1a\x00\x4d\x00\x25\x00\x1a\x00\x1a\x00\x28\x00\x0e\x00\x17\x00\x3a\x00\x1a\x00\x1b\x00\x1a\x00\x06\x00\x1c\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x4d\x00\x1a\x00\x2d\x00\x4d\x00\x4d\x00\x4d\x00\x31\x00\x4d\x00\x31\x00\x4d\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x1a\x00\x1a\x00\x26\x00\x55\x00\x56\x00\x57\x00\x01\x00\x12\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x48\x00\x13\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x15\x00\x22\x00\x23\x00\x14\x00\x11\x00\x16\x00\x27\x00\x18\x00\x11\x00\x15\x00\x1b\x00\x2e\x00\x1d\x00\x2e\x00\x15\x00\x26\x00\x03\x00\x13\x00\x49\x00\x04\x00\x25\x00\x10\x00\x26\x00\x28\x00\x26\x00\x15\x00\x13\x00\x1a\x00\x1b\x00\x1a\x00\x14\x00\x1c\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x11\x00\x11\x00\x2d\x00\x0c\x00\x2e\x00\x0b\x00\x31\x00\x14\x00\x31\x00\x14\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x20\x00\x11\x00\x55\x00\x56\x00\x57\x00\x01\x00\x11\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x11\x00\x11\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x2e\x00\x22\x00\x23\x00\x14\x00\x11\x00\x16\x00\x27\x00\x18\x00\x2e\x00\x14\x00\x1b\x00\x2e\x00\x1d\x00\x2e\x00\x11\x00\x11\x00\x15\x00\x0a\x00\x31\x00\x13\x00\x25\x00\x13\x00\x20\x00\x28\x00\x14\x00\x04\x00\x26\x00\x1a\x00\x1b\x00\x1a\x00\x0b\x00\x1c\x00\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x20\x00\x11\x00\x2d\x00\x20\x00\x26\x00\x11\x00\x31\x00\x0a\x00\x31\x00\x11\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x13\x00\x13\x00\x13\x00\x55\x00\x56\x00\x57\x00\x01\x00\x12\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x13\x00\x13\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x26\x00\x22\x00\x23\x00\x14\x00\x0b\x00\x16\x00\x27\x00\x18\x00\x0a\x00\x26\x00\x1b\x00\x15\x00\x1d\x00\x2e\x00\x5c\x00\x26\x00\x0c\x00\x0b\x00\x20\x00\x31\x00\x25\x00\x13\x00\x0b\x00\x28\x00\x11\x00\x0d\x00\x15\x00\x1a\x00\x1b\x00\x1a\x00\x15\x00\x1c\x00\x13\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x11\x00\x11\x00\x2d\x00\x0a\x00\x26\x00\x03\x00\x31\x00\x20\x00\x31\x00\x26\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x13\x00\x26\x00\x55\x00\x56\x00\x57\x00\x01\x00\x2f\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x0a\x00\x11\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x03\x00\x22\x00\x23\x00\x14\x00\x11\x00\x16\x00\x27\x00\x18\x00\x11\x00\x0a\x00\x1b\x00\x12\x00\x1d\x00\x2e\x00\x0a\x00\x11\x00\x0b\x00\x0b\x00\x5b\x00\x04\x00\x25\x00\x04\x00\x01\x00\x28\x00\x10\x00\x12\x00\x40\x00\x1a\x00\x1b\x00\x1a\x00\x04\x00\x1c\x00\x10\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x10\x00\x10\x00\x2d\x00\x14\x00\x12\x00\x12\x00\x31\x00\x12\x00\x31\x00\x12\x00\x33\x00\x34\x00\x02\x00\x03\x00\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\x0b\x00\x12\x00\x0c\x00\x55\x00\x56\x00\x57\x00\x01\x00\x05\x00\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x4d\x00\x7b\x00\x20\x00\x1d\x00\x0e\x00\x0f\x00\x10\x00\x7b\x00\x22\x00\x23\x00\x14\x00\xff\xff\x16\x00\x27\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\x2e\x00\xff\xff\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\xff\xff\x1c\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\x29\x00\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\x37\x00\x3a\x00\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\x01\x00\xff\xff\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x1a\x00\x1b\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x0e\x00\x31\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x1a\x00\xff\xff\x1c\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\x37\x00\xff\xff\x4d\x00\x3a\x00\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\x01\x00\xff\xff\x5a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\x14\x00\xff\xff\x16\x00\x1a\x00\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\x1d\x00\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x4d\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\xff\xff\xff\xff\x5a\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x01\x00\xff\xff\x1a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\x28\x00\xff\xff\xff\xff\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\x31\x00\x1b\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x47\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x15\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\x0b\x00\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x13\x00\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\x19\x00\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\x26\x00\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\x0b\x00\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\x26\x00\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x02\x00\x03\x00\x3a\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x13\x00\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x02\x00\x03\x00\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\xff\xff\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x01\x00\xff\xff\x27\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2e\x00\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x11\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x02\x00\x03\x00\x3a\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\xff\xff\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\x1d\x00\xff\xff\x1b\x00\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x1a\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x28\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\x31\x00\x1b\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\x10\x00\x17\x00\x55\x00\x56\x00\x14\x00\xff\xff\x16\x00\x1d\x00\x18\x00\xff\xff\xff\xff\x1b\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x25\x00\x01\x00\xff\xff\x2e\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x01\x00\x02\x00\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x23\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x28\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x1a\x00\x31\x00\xff\xff\x33\x00\x34\x00\x0f\x00\x10\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x50\x00\x51\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x25\x00\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x1a\x00\x1b\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\x1a\x00\xff\xff\x1c\x00\x2c\x00\x2d\x00\x50\x00\x51\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x38\x00\x39\x00\x3a\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x1a\x00\x1b\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x50\x00\x51\x00\x18\x00\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x02\x00\x03\x00\xff\xff\x3a\x00\xff\xff\xff\xff\x25\x00\xff\xff\xff\xff\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x11\x00\xff\xff\x13\x00\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1d\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\x27\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\x31\x00\xff\xff\x50\x00\x51\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\xff\xff\x40\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x49\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x0c\x00\x14\x00\x15\x00\x0f\x00\x10\x00\xff\xff\x12\x00\x1a\x00\x14\x00\x15\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\x14\x00\x15\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x0c\x00\x14\x00\x15\x00\x0f\x00\x10\x00\xff\xff\x12\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\x12\x00\x1a\x00\x14\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\x28\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\xff\xff\x1a\x00\x1b\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x0c\x00\x22\x00\xff\xff\x0f\x00\x10\x00\x1a\x00\x12\x00\x1c\x00\x14\x00\x15\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\x1a\x00\xff\xff\x31\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x22\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x36\x00\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\x35\x00\x22\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x36\x00\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x22\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x1b\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\x22\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\x3a\x00\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x31\x00\x1c\x00\x33\x00\x34\x00\x1a\x00\xff\xff\x37\x00\xff\xff\x28\x00\x3a\x00\xff\xff\x26\x00\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\x31\x00\x28\x00\x33\x00\x34\x00\x1a\x00\x31\x00\x37\x00\x33\x00\x34\x00\x3a\x00\x31\x00\x37\x00\x33\x00\x34\x00\x3a\x00\xff\xff\x37\x00\x1a\x00\x28\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x28\x00\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x28\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\x31\x00\x3a\x00\x33\x00\x34\x00\xff\xff\xff\xff\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+
+happyTable :: HappyAddr
+happyTable = HappyA# "\x00\x00\xbd\x00\x25\x00\x2a\x02\x6d\x01\xbc\x00\xbd\x00\xef\x00\x84\x01\x94\x00\xda\xff\x03\x01\x6c\x01\x56\x00\x08\xff\xf4\x01\x6d\x01\x57\x00\x82\x02\x56\x02\xfc\xff\xd0\x00\x08\xff\x46\x02\x08\xff\x77\x02\x25\x00\xfe\x01\x1c\x01\x25\x00\xda\xff\xda\xff\xbe\x00\x79\x00\xf1\x00\x79\x02\xb9\x00\xbf\x00\xc0\x00\x7b\x02\x56\x00\x57\x00\xc1\x00\xc2\x00\x57\x00\xf7\x01\x39\x01\x7a\x00\x7b\x00\xc2\x00\x6e\x01\xf2\x00\x7a\x00\x7b\x00\xef\x00\xef\x00\x5d\x00\x6f\x01\x5e\x02\xf6\x01\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x38\x02\xf0\x00\x03\x01\xda\xff\x7c\x00\x1f\x01\x20\x01\x73\x02\x61\x00\x7c\x00\x7d\x00\xb9\x00\xf1\x00\xf1\x00\x62\x00\x7d\x00\xf4\x01\x63\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x25\x00\x99\x00\xf2\x00\xf2\x00\x7c\x02\x3c\x01\x3d\x01\xef\x00\x61\x00\x7f\x02\xc2\x00\x56\x00\xbc\x00\xbd\x00\x62\x00\x57\x00\x9a\x00\x63\x00\xfc\xff\x64\x00\x21\x01\x0a\xff\x6c\xff\x65\x00\x52\x02\x66\x00\x67\x00\x68\x00\xfc\xff\x0a\xff\x08\xff\x0a\xff\xf5\x01\xf6\x01\xf1\x00\xe6\x00\x6f\x02\xb9\x00\xb9\x00\xbe\x00\x3e\x01\xfb\x00\x80\x02\x6c\xff\xbf\x00\xc0\x00\x64\x00\x21\x01\xb9\x00\xc1\x00\x65\x00\xf2\x00\x66\x00\x67\x00\x68\x00\xfc\xff\xc2\x00\x70\x02\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\xbc\x00\xbd\x00\x71\x02\xbc\x00\xbd\x00\xb9\x00\x74\x02\x71\xff\x61\x00\xb9\x00\xba\x00\x55\x02\x9e\xff\x68\x02\x62\x00\xb9\x00\xb9\x00\x63\x00\x9e\xff\x9e\xff\x9e\xff\xba\x00\x9e\xff\x25\x00\x9e\xff\xb5\x00\x9e\xff\xbe\x00\xc4\x01\x75\x02\xbe\x00\xb9\x00\xbf\x00\xc0\x00\x56\x00\xbf\x00\xc0\x00\xc1\x00\x57\x00\x9e\xff\xc1\x00\xb9\x00\xbc\x00\xbd\x00\xc2\x00\x31\x02\x64\x00\xc2\x00\x9e\xff\xba\x00\x65\x00\x9d\xff\x66\x00\x67\x00\x68\x00\x83\x01\x97\x01\x9d\xff\x9d\xff\x9d\xff\x4f\x02\x9d\xff\xb9\x00\x9d\xff\x50\x02\x9d\xff\x0a\xff\xbc\x00\xbd\x00\xbe\x00\xb9\x00\x99\x01\xb9\x00\x25\x00\xbf\x00\xc0\x00\xbc\x00\xbd\x00\x9d\xff\xc1\x00\xb5\x00\x9b\x01\xb9\x00\xb6\x00\x6c\x02\x0e\xff\xc2\x00\x9d\xff\x57\x00\x9e\xff\x9e\xff\x85\x02\x9e\xff\x0e\xff\xbe\x00\x0e\xff\x46\x02\xb9\x00\x47\x02\xbf\x00\xc0\x00\xb9\x00\x9d\x01\xbe\x00\xc1\x00\xef\x00\xbc\x00\xbd\x00\xbf\x00\xc0\x00\xba\x00\xc2\x00\xb3\x01\xc1\x00\x2c\x01\x0d\xff\xaa\x01\x63\x02\x18\x02\x71\xff\xc2\x00\xff\xff\xb6\x01\x0d\xff\x9e\xff\x0d\xff\xb9\x00\x2d\x01\x9d\xff\x9d\xff\xb9\x00\x9d\xff\xf1\x00\xbe\x00\xb9\x00\xbc\x00\xbd\x00\xb7\x01\xbf\x00\xc0\x00\xd0\x00\xb8\x01\xa8\x01\xc1\x00\x0b\xff\x80\x01\xbb\x01\xf2\x00\x58\x02\xf2\x00\xc2\x00\x42\x01\x0b\xff\x18\x01\x0b\xff\x95\x00\xbc\x00\xbd\x00\xbc\x00\xbd\x00\x51\x01\xb9\x00\xbe\x00\x9d\xff\x51\x02\x09\xff\xb9\x01\xbf\x00\xc0\x00\x1e\x02\xba\x01\xb9\x00\xc1\x00\x09\xff\xba\x00\x09\xff\xb9\x00\xbc\x00\xbd\x00\xc2\x00\xb9\x00\x54\x02\xf2\x00\xbe\x00\x3e\x01\xbe\x00\x04\xff\xf3\x00\xbf\x00\xc0\x00\xbf\x00\xc0\x00\x3e\x01\xc1\x00\x04\xff\xc1\x00\x04\xff\x0e\xff\xbc\x00\xbd\x00\xc2\x00\xba\x00\xc2\x00\x4a\x01\xbe\x00\x6c\x02\xb9\x00\x03\xff\x59\x02\xbf\x00\xc0\x00\x0b\x01\x80\x02\xd0\x00\xc1\x00\x03\xff\x0d\x01\x03\xff\x12\x02\xd1\x00\xba\x00\xc2\x00\xf3\x00\x66\x02\x3f\x01\xbe\x00\x94\x00\x0d\xff\xbc\x00\xbd\x00\xbf\x00\xc0\x00\x41\x01\x4c\x00\x6a\x02\xc1\x00\x95\x00\x00\xff\x5b\x02\x42\x01\x60\x02\x4f\x00\xc2\x00\x47\x01\x25\x00\x00\xff\xba\x00\x00\xff\x43\x01\xbc\x00\xbd\x00\x17\x02\x18\x02\x71\x01\x72\x01\xbe\x00\x0b\xff\x6c\x02\xff\xfe\x57\x00\xbf\x00\xc0\x00\xeb\x01\x1b\x01\x6d\x02\xc1\x00\xff\xfe\x14\x02\xff\xfe\xef\x00\xbc\x00\xbd\x00\xc2\x00\x16\x02\x46\x01\x73\x01\xbe\x00\x09\xff\x04\x01\xfe\xfe\xe0\x01\xbf\x00\xc0\x00\x47\x01\xa6\x01\xe6\x00\xc1\x00\xfe\xfe\x71\xff\xfe\xfe\x67\x02\xbc\x00\xbd\x00\xc2\x00\xbc\x00\xbd\x00\xf1\x00\xbe\x00\x04\xff\xa7\x01\xfd\xfe\x20\x02\xbf\x00\xc0\x00\x87\x00\x0d\x02\xa8\x01\xc1\x00\xfd\xfe\x27\x02\xfd\xfe\x1a\x00\xe6\x00\xf2\x00\xc2\x00\x28\x02\xc7\x01\xe8\x00\xbe\x00\x03\xff\x04\x01\xbe\x00\x6b\x01\xbf\x00\xc0\x00\x1e\x00\xbf\x00\xc0\x00\xc1\x00\x74\x00\x30\x02\xc1\x00\xef\x01\x22\x01\x1f\x00\xc2\x00\x88\x00\x21\x00\xc2\x00\x2a\x02\x22\x00\xe9\x00\xaf\x00\x23\x00\x2d\x02\xea\x00\xe8\x00\x2b\x02\x25\x00\x00\xff\x8b\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x8c\x00\x89\x00\x35\x02\xeb\x00\x1a\x02\x1b\x02\x2e\x00\xb1\x00\xec\x00\x04\x01\x2f\x00\x05\x01\x30\x00\xff\xfe\x31\x00\xe6\x00\x7d\x00\x32\x00\x41\x02\xe7\x00\xe8\x00\x76\x00\x1a\x01\x1b\x01\xbc\x00\xbd\x00\x8b\xff\x34\x00\x42\x02\x04\x01\x35\x00\x06\x01\x21\x01\x22\x01\xfe\xfe\x43\x02\x1c\x02\x1d\x02\x1e\x02\x44\x02\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x77\x00\x49\x02\x4a\x02\xbe\x00\x45\x02\x78\x00\x79\x00\xfd\xfe\xbf\x00\xc0\x00\x24\x01\x25\x01\xbc\x01\xc1\x00\xa4\x00\xa5\x00\xbd\x01\xbc\x00\xbd\x00\xbe\x01\xc2\x00\x3f\x00\x40\x00\x41\x00\xbf\x01\xc0\x01\x0f\x02\x42\x00\x43\x00\xc1\x01\xc2\x01\xc3\x01\x25\x00\xaa\x00\x8d\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc9\x01\xce\x01\xcf\x01\xbe\x00\x2c\x00\x2d\x00\x2e\x00\xd3\x01\xbf\x00\xc0\x00\x2f\x00\xd0\x01\x30\x00\xc1\x00\x31\x00\xd1\x01\x12\x02\x32\x00\xd5\x01\xab\x00\xc2\x00\x13\x02\xea\x01\xd7\x01\xac\x00\xad\x00\xd8\x01\x34\x00\xae\x00\xe7\x01\x35\x00\x4c\x00\xd9\x01\x7a\x00\xaf\x00\xda\x01\xaf\x00\xdb\x01\xdc\x01\x4f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xdd\x01\xde\x01\xfc\x01\xe3\x01\xcb\x01\xe6\x01\x06\x02\xf0\x01\xb1\x00\xcc\x01\xf1\x01\xf8\x01\xff\x01\x01\x02\x4b\x01\xbc\x00\xbd\x00\x7d\x00\x4e\x01\x3e\x00\x59\x01\x3f\x00\x40\x00\x41\x00\xee\x01\x5a\x01\x5e\x01\x42\x00\x43\x00\x44\x00\x25\x00\x76\x00\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x5f\x01\x69\x01\x79\x01\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x85\x01\xbf\x00\xc0\x00\x2f\x00\x86\x01\x30\x00\xc1\x00\x31\x00\x87\x01\x12\x02\x32\x00\x9a\x01\xab\x00\xc2\x00\x2e\x02\x89\x01\x96\x01\x78\x00\x79\x00\x98\x01\x34\x00\x9c\x01\xe4\x00\x35\x00\x4c\x00\x7a\x00\xaf\x00\x7a\x00\xaf\x00\x1a\x00\x9e\x01\x91\x01\x4f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x4c\x02\xb0\x01\x4b\x02\xb1\x01\xb1\x00\xb5\x01\xb1\x00\xd6\x00\x1f\x00\xdc\x00\x20\x00\x21\x00\x92\x01\x7d\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x0c\x01\xdf\x00\xe2\x00\x42\x00\x43\x00\x44\x00\x25\x00\x07\x01\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x93\x01\x7a\x00\xaf\x00\x0e\x01\x2c\x00\x2d\x00\x2e\x00\x0f\x01\x15\x01\x16\x01\x2f\x00\x19\x01\x30\x00\x25\x01\x31\x00\x34\x01\x1d\x01\x32\x00\x35\x01\x33\x00\xcd\x01\x38\x01\x39\x01\x3a\x01\xb1\x00\x40\x01\x48\x01\x34\x00\x6f\x00\x70\x00\x35\x00\x74\x00\x8d\x00\x7d\x00\x7a\x00\xaf\x00\x1a\x00\x8f\x00\xd7\x00\xcc\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x97\x00\x9d\x00\xdf\x01\x9a\x00\x9b\x00\xa2\x00\xb1\x00\xb7\x00\x1f\x00\xc2\x00\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\xc9\x00\xcf\x00\x82\x02\x42\x00\x43\x00\x44\x00\x25\x00\xed\x01\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x90\x01\x04\x00\x84\x02\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x6c\x02\xbf\x00\xc0\x00\x2f\x00\x7e\x02\x30\x00\xc1\x00\x31\x00\x77\x02\x6f\x02\x32\x00\xf2\x00\x33\x00\xc2\x00\x4e\x02\x4f\x02\x00\x00\x58\x02\x5b\x02\x63\x02\x34\x00\x62\x02\x0d\x02\x35\x00\x11\x02\x65\x02\x66\x02\x7a\x00\xaf\x00\x1a\x00\x12\x02\xdb\x00\xce\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x02\x10\x02\xfa\x01\x22\x02\x20\x02\x23\x02\xb1\x00\x2d\x02\x1f\x00\xfe\x01\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\xef\x01\x33\x02\x39\x02\x42\x00\x43\x00\x44\x00\x25\x00\x3a\x02\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x94\x01\x3b\x02\x3c\x02\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x4b\x02\xbf\x00\xc0\x00\x2f\x00\x3d\x02\x30\x00\xc1\x00\x31\x00\xc7\x01\xcb\x01\x32\x00\xf2\x00\x33\x00\xc2\x00\xd5\x01\xd7\x01\xe2\x01\xe6\x00\xe6\x01\xfa\x01\x34\x00\xfc\x01\xf4\x01\x35\x00\xfe\x01\x0a\x02\x09\x02\x7a\x00\xaf\x00\x1a\x00\x0b\x02\xde\x00\x4e\x01\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x4d\x01\x53\x01\xa0\x01\x51\x01\x54\x01\x55\x01\xb1\x00\x56\x01\x1f\x00\x5c\x01\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x61\x01\x62\x01\x63\x01\x42\x00\x43\x00\x44\x00\x25\x00\x03\x02\x15\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x95\x01\x64\x01\x65\x01\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x68\x01\xbf\x00\xc0\x00\x2f\x00\x69\x01\x30\x00\xc1\x00\x31\x00\x6b\x01\x74\x01\x32\x00\x75\x01\x33\x00\xc2\x00\x76\x01\x7b\x01\x91\x00\x7c\x01\x7d\x01\x80\x01\x34\x00\x83\x01\x8f\x01\x35\x00\xa5\x01\x90\x01\x8d\x01\x7a\x00\xaf\x00\x1a\x00\x8e\x01\xf4\x00\xa0\x01\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\xa9\x01\xac\x01\xa1\x01\xad\x01\xab\x01\x00\x00\xb1\x00\xde\x00\x1f\x00\xaf\x01\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x04\x02\xe1\x00\xd4\x00\x42\x00\x43\x00\x44\x00\x25\x00\xe4\x00\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xf5\x00\xe6\x00\xc4\xff\xbe\x00\x2c\x00\x2d\x00\x2e\x00\x00\x00\xbf\x00\xc0\x00\x2f\x00\xc5\xff\x30\x00\xc1\x00\x31\x00\xfa\x00\xe6\x00\x32\x00\x27\x01\x33\x00\xc2\x00\xe6\x00\x3e\x01\x2e\x01\x45\x01\x19\x01\x69\x00\x34\x00\x6a\x00\x6c\x00\x35\x00\x46\x01\x6d\x00\x6e\x00\x7a\x00\xaf\x00\x1a\x00\x6f\x00\xf6\x00\x72\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x73\x00\x74\x00\xa2\x01\x8f\x00\x83\x00\x84\x00\xb1\x00\x85\x00\x1f\x00\x86\x00\x20\x00\x21\x00\xbc\x00\xbd\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x05\x02\x87\x00\x91\x00\x42\x00\x43\x00\x44\x00\x25\x00\x92\x00\x15\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xf7\x00\xff\xff\xb9\x00\xbe\x00\x2c\x00\x2d\x00\x2e\x00\xff\xff\xbf\x00\xc0\x00\x2f\x00\x00\x00\x30\x00\xc1\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x33\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\xa5\x00\x00\x00\xa6\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\xa7\x00\x00\x00\xad\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\xa8\x00\x00\x00\x22\x00\x7d\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x25\x00\x00\x00\x45\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x2c\x00\x2d\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x33\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x74\x00\xb1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x1a\x00\x00\x00\x36\x01\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x37\x01\x00\x00\x22\x00\x00\x00\x3e\x00\x23\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x25\x00\x00\x00\x15\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x06\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x33\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xff\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x5e\x01\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x44\x00\x00\x00\x00\x00\x45\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x25\x00\x00\x00\x1a\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x85\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x1e\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x1f\x00\x32\x00\x23\x02\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x24\x02\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x02\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x79\x02\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x3e\xff\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\xe3\x01\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x73\x02\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x0a\x01\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x0b\x01\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x8b\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x88\xff\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x27\x02\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\xe5\x01\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\xbc\x00\xbd\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x01\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x25\x00\x5e\x01\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc2\x00\x34\x02\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\xbd\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\x00\x25\x00\x02\x01\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x03\x01\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x3e\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x15\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1f\x00\x00\x00\x88\x00\x21\x00\x00\x00\x00\x00\x22\x00\xbc\x00\xbd\x00\x23\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x01\x02\x2e\x00\x3f\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\xbc\x00\xbd\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x01\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x25\x00\x00\x00\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc2\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x40\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x0c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x25\x00\x00\x00\xc1\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\xc2\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x41\x02\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x32\x00\x66\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x1f\x00\x00\x00\x88\x00\x21\x00\x00\x00\x00\x00\x22\x00\xbc\x00\xbd\x00\x23\x00\x25\x00\x00\x00\x8b\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x00\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\xbe\x00\x00\x00\x32\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x1a\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x1e\x00\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x1f\x00\x32\x00\x88\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x34\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\xbd\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x2e\x00\x09\x01\x42\x00\x43\x00\x2f\x00\x00\x00\x30\x00\xbe\x00\x31\x00\x00\x00\x00\x00\x32\x00\xbf\x00\xc0\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x00\x40\x00\x41\x00\x00\x00\x00\x00\x00\x00\x42\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x76\x00\x00\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x79\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x25\x00\x1e\x00\x2b\x01\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x1a\x00\x1f\x00\x00\x00\x23\x02\x21\x00\xb3\x00\xb4\x00\x22\x00\x00\x00\x00\x00\x23\x00\x5d\x02\x81\x00\x82\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\xb2\x01\x21\x00\x80\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x25\x00\x7a\x00\xaf\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x27\x01\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\xb4\x00\x10\x01\x00\x00\x11\x01\x5c\x02\x29\x01\x81\x00\x82\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x7a\x02\x13\x01\x23\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xb5\x00\x25\x00\x7a\x00\xaf\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x27\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x5f\x02\x29\x01\x81\x00\x82\x00\x31\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xff\xbd\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x66\xff\x66\xff\x66\xff\x00\x00\x00\x00\x00\x00\x66\xff\x00\x00\x66\xff\x00\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x66\xff\x00\x00\x00\x00\x66\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xff\x66\xff\x00\x00\x4f\x01\x46\x00\x47\x00\x48\x00\x00\x00\x66\xff\x66\xff\x00\x00\x66\xff\x00\x00\x81\x00\x82\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x4e\x00\x00\x00\x66\xff\x00\x00\x00\x00\x4f\x00\x2f\x01\x46\x00\x47\x00\x48\x00\x00\x00\x66\xff\x00\x00\x30\x01\x46\x00\x47\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x49\x00\x4d\x00\x4e\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4f\x00\x4d\x00\x4e\x00\x31\x01\x46\x00\x47\x00\x48\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x01\x46\x00\x47\x00\x48\x00\x00\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x4e\x00\x33\x01\x46\x00\x47\x00\x48\x00\x4f\x00\x00\x00\x00\x00\x92\x00\x46\x00\x47\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x49\x00\x4d\x00\x4e\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4f\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x93\x00\x46\x00\x47\x00\x48\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x1a\x00\x4d\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x1e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\xb2\x01\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x45\x00\x46\x00\x47\x00\x48\x00\x00\x00\x7a\x00\xaf\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x49\x00\x27\x01\x00\x00\x4a\x00\x4b\x00\x10\x01\x4c\x00\x11\x01\x4d\x00\x4e\x00\x00\x00\xc5\x01\x29\x01\x00\x00\x4f\x00\x00\x00\xb1\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x81\x01\x13\x01\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\x8a\x01\x20\x00\x21\x00\x00\x00\x27\x01\x22\x00\x12\x01\x13\x01\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\xc5\x01\xc8\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\x91\x01\x20\x00\x21\x00\x00\x00\x36\x02\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\x8a\x01\x20\x00\x21\x00\x92\x01\x27\x01\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\xf2\x01\x29\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\x53\x02\x20\x00\x21\x00\x00\x00\x8b\x01\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\x30\x02\x20\x00\x21\x00\x00\x00\x27\x01\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x05\x02\x29\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\x34\x02\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\xaf\x00\x1a\x00\x1f\x00\xe8\x01\x20\x00\x21\x00\x00\x00\x27\x01\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\xb1\x00\x1a\x00\x1f\x00\xea\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x7d\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x07\x02\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x4a\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x56\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x57\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x58\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x65\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x76\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x77\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x78\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x7d\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x7e\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x88\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd9\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xda\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xaf\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xb4\x01\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd4\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd5\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd7\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd8\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd9\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xda\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xdb\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xde\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xed\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x9e\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xf8\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xfa\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x6a\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x96\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x9c\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x9e\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xa0\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xa1\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc3\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc4\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc5\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc6\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc7\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xc8\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xca\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xcc\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xce\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\xd2\x00\x20\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1f\x00\x1b\x00\x20\x00\x21\x00\x1a\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x23\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x1e\x00\xd2\x01\x21\x00\x1a\x00\x1f\x00\x22\x00\x20\x00\x21\x00\x23\x00\x1f\x00\x22\x00\xb2\x01\x21\x00\x23\x00\x00\x00\x22\x00\x1a\x00\x1e\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x1f\x00\x00\x00\xb2\x01\x21\x00\x1e\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\xe1\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x1f\x00\x23\x00\x9f\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+
+happyReduceArr = Happy_Data_Array.array (3, 270) [
+	(3 , happyReduce_3),
+	(4 , happyReduce_4),
+	(5 , happyReduce_5),
+	(6 , happyReduce_6),
+	(7 , happyReduce_7),
+	(8 , happyReduce_8),
+	(9 , happyReduce_9),
+	(10 , happyReduce_10),
+	(11 , happyReduce_11),
+	(12 , happyReduce_12),
+	(13 , happyReduce_13),
+	(14 , happyReduce_14),
+	(15 , happyReduce_15),
+	(16 , happyReduce_16),
+	(17 , happyReduce_17),
+	(18 , happyReduce_18),
+	(19 , happyReduce_19),
+	(20 , happyReduce_20),
+	(21 , happyReduce_21),
+	(22 , happyReduce_22),
+	(23 , happyReduce_23),
+	(24 , happyReduce_24),
+	(25 , happyReduce_25),
+	(26 , happyReduce_26),
+	(27 , happyReduce_27),
+	(28 , happyReduce_28),
+	(29 , happyReduce_29),
+	(30 , happyReduce_30),
+	(31 , happyReduce_31),
+	(32 , happyReduce_32),
+	(33 , happyReduce_33),
+	(34 , happyReduce_34),
+	(35 , happyReduce_35),
+	(36 , happyReduce_36),
+	(37 , happyReduce_37),
+	(38 , happyReduce_38),
+	(39 , happyReduce_39),
+	(40 , happyReduce_40),
+	(41 , happyReduce_41),
+	(42 , happyReduce_42),
+	(43 , happyReduce_43),
+	(44 , happyReduce_44),
+	(45 , happyReduce_45),
+	(46 , happyReduce_46),
+	(47 , happyReduce_47),
+	(48 , happyReduce_48),
+	(49 , happyReduce_49),
+	(50 , happyReduce_50),
+	(51 , happyReduce_51),
+	(52 , happyReduce_52),
+	(53 , happyReduce_53),
+	(54 , happyReduce_54),
+	(55 , happyReduce_55),
+	(56 , happyReduce_56),
+	(57 , happyReduce_57),
+	(58 , happyReduce_58),
+	(59 , happyReduce_59),
+	(60 , happyReduce_60),
+	(61 , happyReduce_61),
+	(62 , happyReduce_62),
+	(63 , happyReduce_63),
+	(64 , happyReduce_64),
+	(65 , happyReduce_65),
+	(66 , happyReduce_66),
+	(67 , happyReduce_67),
+	(68 , happyReduce_68),
+	(69 , happyReduce_69),
+	(70 , happyReduce_70),
+	(71 , happyReduce_71),
+	(72 , happyReduce_72),
+	(73 , happyReduce_73),
+	(74 , happyReduce_74),
+	(75 , happyReduce_75),
+	(76 , happyReduce_76),
+	(77 , happyReduce_77),
+	(78 , happyReduce_78),
+	(79 , happyReduce_79),
+	(80 , happyReduce_80),
+	(81 , happyReduce_81),
+	(82 , happyReduce_82),
+	(83 , happyReduce_83),
+	(84 , happyReduce_84),
+	(85 , happyReduce_85),
+	(86 , happyReduce_86),
+	(87 , happyReduce_87),
+	(88 , happyReduce_88),
+	(89 , happyReduce_89),
+	(90 , happyReduce_90),
+	(91 , happyReduce_91),
+	(92 , happyReduce_92),
+	(93 , happyReduce_93),
+	(94 , happyReduce_94),
+	(95 , happyReduce_95),
+	(96 , happyReduce_96),
+	(97 , happyReduce_97),
+	(98 , happyReduce_98),
+	(99 , happyReduce_99),
+	(100 , happyReduce_100),
+	(101 , happyReduce_101),
+	(102 , happyReduce_102),
+	(103 , happyReduce_103),
+	(104 , happyReduce_104),
+	(105 , happyReduce_105),
+	(106 , happyReduce_106),
+	(107 , happyReduce_107),
+	(108 , happyReduce_108),
+	(109 , happyReduce_109),
+	(110 , happyReduce_110),
+	(111 , happyReduce_111),
+	(112 , happyReduce_112),
+	(113 , happyReduce_113),
+	(114 , happyReduce_114),
+	(115 , happyReduce_115),
+	(116 , happyReduce_116),
+	(117 , happyReduce_117),
+	(118 , happyReduce_118),
+	(119 , happyReduce_119),
+	(120 , happyReduce_120),
+	(121 , happyReduce_121),
+	(122 , happyReduce_122),
+	(123 , happyReduce_123),
+	(124 , happyReduce_124),
+	(125 , happyReduce_125),
+	(126 , happyReduce_126),
+	(127 , happyReduce_127),
+	(128 , happyReduce_128),
+	(129 , happyReduce_129),
+	(130 , happyReduce_130),
+	(131 , happyReduce_131),
+	(132 , happyReduce_132),
+	(133 , happyReduce_133),
+	(134 , happyReduce_134),
+	(135 , happyReduce_135),
+	(136 , happyReduce_136),
+	(137 , happyReduce_137),
+	(138 , happyReduce_138),
+	(139 , happyReduce_139),
+	(140 , happyReduce_140),
+	(141 , happyReduce_141),
+	(142 , happyReduce_142),
+	(143 , happyReduce_143),
+	(144 , happyReduce_144),
+	(145 , happyReduce_145),
+	(146 , happyReduce_146),
+	(147 , happyReduce_147),
+	(148 , happyReduce_148),
+	(149 , happyReduce_149),
+	(150 , happyReduce_150),
+	(151 , happyReduce_151),
+	(152 , happyReduce_152),
+	(153 , happyReduce_153),
+	(154 , happyReduce_154),
+	(155 , happyReduce_155),
+	(156 , happyReduce_156),
+	(157 , happyReduce_157),
+	(158 , happyReduce_158),
+	(159 , happyReduce_159),
+	(160 , happyReduce_160),
+	(161 , happyReduce_161),
+	(162 , happyReduce_162),
+	(163 , happyReduce_163),
+	(164 , happyReduce_164),
+	(165 , happyReduce_165),
+	(166 , happyReduce_166),
+	(167 , happyReduce_167),
+	(168 , happyReduce_168),
+	(169 , happyReduce_169),
+	(170 , happyReduce_170),
+	(171 , happyReduce_171),
+	(172 , happyReduce_172),
+	(173 , happyReduce_173),
+	(174 , happyReduce_174),
+	(175 , happyReduce_175),
+	(176 , happyReduce_176),
+	(177 , happyReduce_177),
+	(178 , happyReduce_178),
+	(179 , happyReduce_179),
+	(180 , happyReduce_180),
+	(181 , happyReduce_181),
+	(182 , happyReduce_182),
+	(183 , happyReduce_183),
+	(184 , happyReduce_184),
+	(185 , happyReduce_185),
+	(186 , happyReduce_186),
+	(187 , happyReduce_187),
+	(188 , happyReduce_188),
+	(189 , happyReduce_189),
+	(190 , happyReduce_190),
+	(191 , happyReduce_191),
+	(192 , happyReduce_192),
+	(193 , happyReduce_193),
+	(194 , happyReduce_194),
+	(195 , happyReduce_195),
+	(196 , happyReduce_196),
+	(197 , happyReduce_197),
+	(198 , happyReduce_198),
+	(199 , happyReduce_199),
+	(200 , happyReduce_200),
+	(201 , happyReduce_201),
+	(202 , happyReduce_202),
+	(203 , happyReduce_203),
+	(204 , happyReduce_204),
+	(205 , happyReduce_205),
+	(206 , happyReduce_206),
+	(207 , happyReduce_207),
+	(208 , happyReduce_208),
+	(209 , happyReduce_209),
+	(210 , happyReduce_210),
+	(211 , happyReduce_211),
+	(212 , happyReduce_212),
+	(213 , happyReduce_213),
+	(214 , happyReduce_214),
+	(215 , happyReduce_215),
+	(216 , happyReduce_216),
+	(217 , happyReduce_217),
+	(218 , happyReduce_218),
+	(219 , happyReduce_219),
+	(220 , happyReduce_220),
+	(221 , happyReduce_221),
+	(222 , happyReduce_222),
+	(223 , happyReduce_223),
+	(224 , happyReduce_224),
+	(225 , happyReduce_225),
+	(226 , happyReduce_226),
+	(227 , happyReduce_227),
+	(228 , happyReduce_228),
+	(229 , happyReduce_229),
+	(230 , happyReduce_230),
+	(231 , happyReduce_231),
+	(232 , happyReduce_232),
+	(233 , happyReduce_233),
+	(234 , happyReduce_234),
+	(235 , happyReduce_235),
+	(236 , happyReduce_236),
+	(237 , happyReduce_237),
+	(238 , happyReduce_238),
+	(239 , happyReduce_239),
+	(240 , happyReduce_240),
+	(241 , happyReduce_241),
+	(242 , happyReduce_242),
+	(243 , happyReduce_243),
+	(244 , happyReduce_244),
+	(245 , happyReduce_245),
+	(246 , happyReduce_246),
+	(247 , happyReduce_247),
+	(248 , happyReduce_248),
+	(249 , happyReduce_249),
+	(250 , happyReduce_250),
+	(251 , happyReduce_251),
+	(252 , happyReduce_252),
+	(253 , happyReduce_253),
+	(254 , happyReduce_254),
+	(255 , happyReduce_255),
+	(256 , happyReduce_256),
+	(257 , happyReduce_257),
+	(258 , happyReduce_258),
+	(259 , happyReduce_259),
+	(260 , happyReduce_260),
+	(261 , happyReduce_261),
+	(262 , happyReduce_262),
+	(263 , happyReduce_263),
+	(264 , happyReduce_264),
+	(265 , happyReduce_265),
+	(266 , happyReduce_266),
+	(267 , happyReduce_267),
+	(268 , happyReduce_268),
+	(269 , happyReduce_269),
+	(270 , happyReduce_270)
+	]
+
+happy_n_terms = 124 :: Int
+happy_n_nonterms = 79 :: Int
+
+happyReduce_3 = happySpecReduce_0  0# happyReduction_3
+happyReduction_3  =  happyIn6
+		 ([]
+	)
+
+happyReduce_4 = happySpecReduce_2  0# happyReduction_4
+happyReduction_4 happy_x_2
+	happy_x_1
+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_5 = happySpecReduce_2  0# happyReduction_5
+happyReduction_5 happy_x_2
+	happy_x_1
+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_2 of { happy_var_2 -> 
+	happyIn6
+		 (map RealDecl happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_6 = happyReduce 4# 0# happyReduction_6
+happyReduction_6 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	case happyOut6 happy_x_4 of { happy_var_4 -> 
+	happyIn6
+		 (RealDecl (PInclude happy_var_2) : happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_7 = happySpecReduce_1  1# happyReduction_7
+happyReduction_7 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (happy_var_1
+	)}
+
+happyReduce_8 = happySpecReduce_1  1# happyReduction_8
+happyReduction_8 happy_x_1
+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl (DataDecl happy_var_1)
+	)}
+
+happyReduce_9 = happySpecReduce_1  1# happyReduction_9
+happyReduction_9 happy_x_1
+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_10 = happyReduce 5# 1# happyReduction_10
+happyReduction_10 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenName happy_var_2) -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn7
+		 (RealDecl (Freeze happy_var_3 happy_var_4 [] happy_var_2)
+	) `HappyStk` happyRest}}}
+
+happyReduce_11 = happyReduce 4# 1# happyReduction_11
+happyReduction_11 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut67 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_12 = happyReduce 4# 1# happyReduction_12
+happyReduction_12 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut68 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PDoUsing happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_13 = happyReduce 4# 1# happyReduction_13
+happyReduction_13 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut69 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PIdiom happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_14 = happyReduce 4# 1# happyReduction_14
+happyReduction_14 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut70 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PParams happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_15 = happyReduce 4# 1# happyReduction_15
+happyReduction_15 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut71 happy_x_1 of { happy_var_1 -> 
+	case happyOut6 happy_x_3 of { happy_var_3 -> 
+	happyIn7
+		 (PNamespace happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_16 = happySpecReduce_1  1# happyReduction_16
+happyReduction_16 happy_x_1
+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> 
+	happyIn7
+		 (RealDecl happy_var_1
+	)}
+
+happyReduce_17 = happyReduce 6# 1# happyReduction_17
+happyReduction_17 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut41 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_5 of { happy_var_5 -> 
+	happyIn7
+		 (RealDecl (SynDef happy_var_2 happy_var_3 happy_var_5)
+	) `HappyStk` happyRest}}}
+
+happyReduce_18 = happySpecReduce_2  1# happyReduction_18
+happyReduction_18 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CInclude happy_var_2)
+	)}
+
+happyReduce_19 = happySpecReduce_2  1# happyReduction_19
+happyReduction_19 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn7
+		 (RealDecl (CLib happy_var_2)
+	)}
+
+happyReduce_20 = happyReduce 5# 2# happyReduction_20
+happyReduction_20 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn8
+		 (Transform happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_21 = happyReduce 7# 3# happyReduction_21
+happyReduction_21 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut15 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunType happy_var_1 happy_var_3 (nub happy_var_5) happy_var_6 happy_var_7
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_22 = happySpecReduce_3  3# happyReduction_22
+happyReduction_22 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut79 happy_x_2 of { happy_var_2 -> 
+	happyIn9
+		 (ProofScript happy_var_1 happy_var_2
+	)}}
+
+happyReduce_23 = happyReduce 9# 3# happyReduction_23
+happyReduction_23 (happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	case happyOut83 happy_x_8 of { happy_var_8 -> 
+	case happyOut82 happy_x_9 of { happy_var_9 -> 
+	happyIn9
+		 (WithClause (mkDef happy_var_8 happy_var_9 happy_var_1) happy_var_2 happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}}}}
+
+happyReduce_24 = happyReduce 10# 3# happyReduction_24
+happyReduction_24 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut32 happy_x_7 of { happy_var_7 -> 
+	case happyOut83 happy_x_9 of { happy_var_9 -> 
+	case happyOut82 happy_x_10 of { happy_var_10 -> 
+	happyIn9
+		 (FunClauseP (mkDef happy_var_9 happy_var_10 happy_var_1) happy_var_2 happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_25 = happyReduce 8# 3# happyReduction_25
+happyReduction_25 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut24 happy_x_1 of { happy_var_1 -> 
+	case happyOut12 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut15 happy_x_6 of { happy_var_6 -> 
+	case happyOut83 happy_x_7 of { happy_var_7 -> 
+	case happyOut82 happy_x_8 of { happy_var_8 -> 
+	happyIn9
+		 (FunClause (mkDef happy_var_7 happy_var_8 happy_var_1) happy_var_2 happy_var_4 (nub happy_var_6)
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_26 = happyReduce 5# 3# happyReduction_26
+happyReduction_26 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn9
+		 (FunClause RPlaceholder [happy_var_2] happy_var_4 []
+	) `HappyStk` happyRest}}
+
+happyReduce_27 = happyReduce 8# 3# happyReduction_27
+happyReduction_27 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut32 happy_x_7 of { happy_var_7 -> 
+	happyIn9
+		 (FunClauseP RPlaceholder [happy_var_2] happy_var_4 happy_var_7
+	) `HappyStk` happyRest}}}
+
+happyReduce_28 = happyReduce 7# 3# happyReduction_28
+happyReduction_28 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut11 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut14 happy_x_6 of { happy_var_6 -> 
+	happyIn9
+		 (WithClause RPlaceholder [happy_var_2] happy_var_3 happy_var_4 happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_29 = happySpecReduce_1  4# happyReduction_29
+happyReduction_29 happy_x_1
+	 =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_30 = happySpecReduce_1  4# happyReduction_30
+happyReduction_30 happy_x_1
+	 =  happyIn10
+		 (Vis Private
+	)
+
+happyReduce_31 = happySpecReduce_1  4# happyReduction_31
+happyReduction_31 happy_x_1
+	 =  happyIn10
+		 (Vis Abstract
+	)
+
+happyReduce_32 = happySpecReduce_0  4# happyReduction_32
+happyReduction_32  =  happyIn10
+		 (Vis Public
+	)
+
+happyReduce_33 = happySpecReduce_1  5# happyReduction_33
+happyReduction_33 happy_x_1
+	 =  happyIn11
+		 (False
+	)
+
+happyReduce_34 = happySpecReduce_2  5# happyReduction_34
+happyReduction_34 happy_x_2
+	happy_x_1
+	 =  happyIn11
+		 (True
+	)
+
+happyReduce_35 = happySpecReduce_3  6# happyReduction_35
+happyReduction_35 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut13 happy_x_2 of { happy_var_2 -> 
+	case happyOut12 happy_x_3 of { happy_var_3 -> 
+	happyIn12
+		 (happy_var_2:happy_var_3
+	)}}
+
+happyReduce_36 = happySpecReduce_0  6# happyReduction_36
+happyReduction_36  =  happyIn12
+		 ([]
+	)
+
+happyReduce_37 = happySpecReduce_1  7# happyReduction_37
+happyReduction_37 happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_38 = happySpecReduce_1  7# happyReduction_38
+happyReduction_38 happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	happyIn13
+		 (happy_var_1
+	)}
+
+happyReduce_39 = happySpecReduce_3  7# happyReduction_39
+happyReduction_39 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn13
+		 (happy_var_2
+	)}
+
+happyReduce_40 = happyReduce 5# 7# happyReduction_40
+happyReduction_40 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut59 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn13
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") Unknown) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_41 = happySpecReduce_2  8# happyReduction_41
+happyReduction_41 happy_x_2
+	happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	case happyOut14 happy_x_2 of { happy_var_2 -> 
+	happyIn14
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_42 = happySpecReduce_1  8# happyReduction_42
+happyReduction_42 happy_x_1
+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> 
+	happyIn14
+		 ([happy_var_1]
+	)}
+
+happyReduce_43 = happySpecReduce_3  9# happyReduction_43
+happyReduction_43 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn15
+		 (happy_var_2
+	)}
+
+happyReduce_44 = happySpecReduce_0  9# happyReduction_44
+happyReduction_44  =  happyIn15
+		 ([]
+	)
+
+happyReduce_45 = happySpecReduce_0  10# happyReduction_45
+happyReduction_45  =  happyIn16
+		 ([]
+	)
+
+happyReduce_46 = happySpecReduce_2  10# happyReduction_46
+happyReduction_46 happy_x_2
+	happy_x_1
+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> 
+	case happyOut16 happy_x_2 of { happy_var_2 -> 
+	happyIn16
+		 (happy_var_1 ++ happy_var_2
+	)}}
+
+happyReduce_47 = happySpecReduce_1  11# happyReduction_47
+happyReduction_47 happy_x_1
+	 =  happyIn17
+		 ([NoCG]
+	)
+
+happyReduce_48 = happySpecReduce_1  11# happyReduction_48
+happyReduction_48 happy_x_1
+	 =  happyIn17
+		 ([CGEval, Inline]
+	)
+
+happyReduce_49 = happyReduce 4# 11# happyReduction_49
+happyReduction_49 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut39 happy_x_3 of { happy_var_3 -> 
+	happyIn17
+		 ([CGSpec happy_var_3]
+	) `HappyStk` happyRest}
+
+happyReduce_50 = happySpecReduce_1  11# happyReduction_50
+happyReduction_50 happy_x_1
+	 =  happyIn17
+		 ([CGSpec []]
+	)
+
+happyReduce_51 = happySpecReduce_1  11# happyReduction_51
+happyReduction_51 happy_x_1
+	 =  happyIn17
+		 ([Inline]
+	)
+
+happyReduce_52 = happySpecReduce_2  11# happyReduction_52
+happyReduction_52 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_2 of { (TokenString happy_var_2) -> 
+	happyIn17
+		 ([CExport happy_var_2]
+	)}
+
+happyReduce_53 = happyReduce 4# 12# happyReduction_53
+happyReduction_53 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut21 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn18
+		 (map (\x -> Fixity x happy_var_1 happy_var_2) happy_var_3
+	) `HappyStk` happyRest}}}
+
+happyReduce_54 = happySpecReduce_1  13# happyReduction_54
+happyReduction_54 happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	happyIn19
+		 ([happy_var_1]
+	)}
+
+happyReduce_55 = happySpecReduce_3  13# happyReduction_55
+happyReduction_55 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> 
+	case happyOut19 happy_x_3 of { happy_var_3 -> 
+	happyIn19
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_56 = happySpecReduce_1  14# happyReduction_56
+happyReduction_56 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInfixName happy_var_1) -> 
+	happyIn20
+		 (happy_var_1
+	)}
+
+happyReduce_57 = happySpecReduce_1  14# happyReduction_57
+happyReduction_57 happy_x_1
+	 =  happyIn20
+		 ("-"
+	)
+
+happyReduce_58 = happySpecReduce_1  14# happyReduction_58
+happyReduction_58 happy_x_1
+	 =  happyIn20
+		 ("<"
+	)
+
+happyReduce_59 = happySpecReduce_1  14# happyReduction_59
+happyReduction_59 happy_x_1
+	 =  happyIn20
+		 (">"
+	)
+
+happyReduce_60 = happySpecReduce_1  15# happyReduction_60
+happyReduction_60 happy_x_1
+	 =  happyIn21
+		 (LeftAssoc
+	)
+
+happyReduce_61 = happySpecReduce_1  15# happyReduction_61
+happyReduction_61 happy_x_1
+	 =  happyIn21
+		 (RightAssoc
+	)
+
+happyReduce_62 = happySpecReduce_1  15# happyReduction_62
+happyReduction_62 happy_x_1
+	 =  happyIn21
+		 (NonAssoc
+	)
+
+happyReduce_63 = happyReduce 4# 16# happyReduction_63
+happyReduction_63 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut23 happy_x_3 of { happy_var_3 -> 
+	happyIn22
+		 (LatexDefs happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_64 = happySpecReduce_3  17# happyReduction_64
+happyReduction_64 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	happyIn23
+		 ([(happy_var_1,happy_var_3)]
+	)}}
+
+happyReduce_65 = happyReduce 5# 17# happyReduction_65
+happyReduction_65 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_3 of { (TokenString happy_var_3) -> 
+	case happyOut23 happy_x_5 of { happy_var_5 -> 
+	happyIn23
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_66 = happySpecReduce_2  18# happyReduction_66
+happyReduction_66 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn24
+		 ((happy_var_1, happy_var_2)
+	)}}
+
+happyReduce_67 = happySpecReduce_0  19# happyReduction_67
+happyReduction_67  =  happyIn25
+		 ([]
+	)
+
+happyReduce_68 = happySpecReduce_2  19# happyReduction_68
+happyReduction_68 happy_x_2
+	happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	case happyOut25 happy_x_2 of { happy_var_2 -> 
+	happyIn25
+		 ((happy_var_1,Nothing):happy_var_2
+	)}}
+
+happyReduce_69 = happyReduce 5# 19# happyReduction_69
+happyReduction_69 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut25 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((RVar happy_var_4 happy_var_5 happy_var_1 Unknown, Just happy_var_1):happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_70 = happyReduce 5# 19# happyReduction_70
+happyReduction_70 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut25 happy_x_5 of { happy_var_5 -> 
+	happyIn25
+		 ((happy_var_3, Just happy_var_1):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_71 = happyReduce 6# 20# happyReduction_71
+happyReduction_71 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut27 happy_x_1 of { happy_var_1 -> 
+	case happyOut29 happy_x_2 of { happy_var_2 -> 
+	case happyOut32 happy_x_3 of { happy_var_3 -> 
+	case happyOut28 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_5 of { happy_var_5 -> 
+	case happyOut82 happy_x_6 of { happy_var_6 -> 
+	happyIn26
+		 (mkDatatype happy_var_1 happy_var_5 happy_var_6 happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_72 = happySpecReduce_1  21# happyReduction_72
+happyReduction_72 happy_x_1
+	 =  happyIn27
+		 (False
+	)
+
+happyReduce_73 = happySpecReduce_1  21# happyReduction_73
+happyReduction_73 happy_x_1
+	 =  happyIn27
+		 (True
+	)
+
+happyReduce_74 = happySpecReduce_3  22# happyReduction_74
+happyReduction_74 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut66 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (Right (happy_var_1,happy_var_2)
+	)}}
+
+happyReduce_75 = happySpecReduce_3  22# happyReduction_75
+happyReduction_75 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn28
+		 (Left happy_var_2
+	)}
+
+happyReduce_76 = happySpecReduce_3  22# happyReduction_76
+happyReduction_76 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn28
+		 (Left (RConst happy_var_2 happy_var_3 TYPE)
+	)}}
+
+happyReduce_77 = happySpecReduce_0  23# happyReduction_77
+happyReduction_77  =  happyIn29
+		 ([]
+	)
+
+happyReduce_78 = happySpecReduce_3  23# happyReduction_78
+happyReduction_78 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut30 happy_x_2 of { happy_var_2 -> 
+	happyIn29
+		 (happy_var_2
+	)}
+
+happyReduce_79 = happySpecReduce_1  24# happyReduction_79
+happyReduction_79 happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	happyIn30
+		 ([happy_var_1]
+	)}
+
+happyReduce_80 = happySpecReduce_3  24# happyReduction_80
+happyReduction_80 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> 
+	case happyOut30 happy_x_3 of { happy_var_3 -> 
+	happyIn30
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_81 = happySpecReduce_1  25# happyReduction_81
+happyReduction_81 happy_x_1
+	 =  happyIn31
+		 (NoElim
+	)
+
+happyReduce_82 = happySpecReduce_1  25# happyReduction_82
+happyReduction_82 happy_x_1
+	 =  happyIn31
+		 (Collapsible
+	)
+
+happyReduce_83 = happySpecReduce_1  26# happyReduction_83
+happyReduction_83 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenName happy_var_1) -> 
+	happyIn32
+		 (happy_var_1
+	)}
+
+happyReduce_84 = happySpecReduce_3  26# happyReduction_84
+happyReduction_84 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut20 happy_x_2 of { happy_var_2 -> 
+	happyIn32
+		 (useropFn happy_var_2
+	)}
+
+happyReduce_85 = happyReduce 4# 27# happyReduction_85
+happyReduction_85 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	case happyOut57 happy_x_4 of { happy_var_4 -> 
+	happyIn33
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_86 = happyReduce 5# 27# happyReduction_86
+happyReduction_86 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut33 happy_x_1 of { happy_var_1 -> 
+	case happyOut43 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn33
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_87 = happySpecReduce_3  27# happyReduction_87
+happyReduction_87 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RVar happy_var_2 happy_var_3 happy_var_1 Unknown
+	)}}}
+
+happyReduce_88 = happySpecReduce_3  27# happyReduction_88
+happyReduction_88 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_89 = happySpecReduce_1  27# happyReduction_89
+happyReduction_89 happy_x_1
+	 =  happyIn33
+		 (RPlaceholder
+	)
+
+happyReduce_90 = happySpecReduce_3  27# happyReduction_90
+happyReduction_90 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty") TypeCon
+	)}}
+
+happyReduce_91 = happySpecReduce_3  27# happyReduction_91
+happyReduction_91 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn33
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit") TypeCon
+	)}}
+
+happyReduce_92 = happySpecReduce_1  28# happyReduction_92
+happyReduction_92 happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	happyIn34
+		 (happy_var_1
+	)}
+
+happyReduce_93 = happySpecReduce_3  28# happyReduction_93
+happyReduction_93 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn34
+		 (happy_var_2
+	)}
+
+happyReduce_94 = happyReduce 4# 28# happyReduction_94
+happyReduction_94 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	case happyOut57 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (RApp happy_var_2 happy_var_3 happy_var_1 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_95 = happyReduce 5# 28# happyReduction_95
+happyReduction_95 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut43 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn34
+		 (RAppImp happy_var_4 happy_var_5 (fst happy_var_2) happy_var_1 (snd happy_var_2)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_96 = happyReduce 4# 28# happyReduction_96
+happyReduction_96 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (RApp happy_var_3 happy_var_4 (RApp happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "__lazy") Free) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_97 = happyReduce 4# 28# happyReduction_97
+happyReduction_97 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut35 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (doBind Lam happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_98 = happyReduce 4# 28# happyReduction_98
+happyReduction_98 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut42 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn34
+		 (doLetBind happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}
+
+happyReduce_99 = happySpecReduce_1  28# happyReduction_99
+happyReduction_99 happy_x_1
+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> 
+	happyIn34
+		 (happy_var_1
+	)}
+
+happyReduce_100 = happyReduce 8# 28# happyReduction_100
+happyReduction_100 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut34 happy_x_6 of { happy_var_6 -> 
+	case happyOut83 happy_x_7 of { happy_var_7 -> 
+	case happyOut82 happy_x_8 of { happy_var_8 -> 
+	happyIn34
+		 (mkApp happy_var_7 happy_var_8 (RVar happy_var_7 happy_var_8 (UN "if_then_else") Free) [happy_var_2,happy_var_4,happy_var_6]
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_101 = happySpecReduce_2  29# happyReduction_101
+happyReduction_101 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	happyIn35
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_102 = happyReduce 4# 29# happyReduction_102
+happyReduction_102 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut35 happy_x_4 of { happy_var_4 -> 
+	happyIn35
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_103 = happySpecReduce_3  30# happyReduction_103
+happyReduction_103 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
+	case happyOut36 happy_x_3 of { happy_var_3 -> 
+	happyIn36
+		 (happy_var_1 ++ happy_var_3
+	)}}
+
+happyReduce_104 = happySpecReduce_1  30# happyReduction_104
+happyReduction_104 happy_x_1
+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> 
+	happyIn36
+		 (happy_var_1
+	)}
+
+happyReduce_105 = happySpecReduce_3  31# happyReduction_105
+happyReduction_105 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn37
+		 (map ( \x -> (x,happy_var_3)) [happy_var_1]
+	)}}
+
+happyReduce_106 = happySpecReduce_1  32# happyReduction_106
+happyReduction_106 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn38
+		 ([happy_var_1]
+	)}
+
+happyReduce_107 = happySpecReduce_3  32# happyReduction_107
+happyReduction_107 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn38
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_108 = happySpecReduce_2  33# happyReduction_108
+happyReduction_108 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	happyIn39
+		 ([(happy_var_1,happy_var_2)]
+	)}}
+
+happyReduce_109 = happySpecReduce_1  33# happyReduction_109
+happyReduction_109 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn39
+		 ([(happy_var_1, 0)]
+	)}
+
+happyReduce_110 = happySpecReduce_3  33# happyReduction_110
+happyReduction_110 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut39 happy_x_3 of { happy_var_3 -> 
+	happyIn39
+		 ((happy_var_1,0):happy_var_3
+	)}}
+
+happyReduce_111 = happyReduce 4# 33# happyReduction_111
+happyReduction_111 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInt happy_var_2) -> 
+	case happyOut39 happy_x_4 of { happy_var_4 -> 
+	happyIn39
+		 ((happy_var_1,happy_var_2):happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_112 = happySpecReduce_1  34# happyReduction_112
+happyReduction_112 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	happyIn40
+		 ([happy_var_1]
+	)}
+
+happyReduce_113 = happySpecReduce_3  34# happyReduction_113
+happyReduction_113 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut38 happy_x_3 of { happy_var_3 -> 
+	happyIn40
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_114 = happySpecReduce_0  35# happyReduction_114
+happyReduction_114  =  happyIn41
+		 ([]
+	)
+
+happyReduce_115 = happySpecReduce_2  35# happyReduction_115
+happyReduction_115 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut41 happy_x_2 of { happy_var_2 -> 
+	happyIn41
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_116 = happyReduce 4# 36# happyReduction_116
+happyReduction_116 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	happyIn42
+		 ([(happy_var_1,happy_var_2,happy_var_4)]
+	) `HappyStk` happyRest}}}
+
+happyReduce_117 = happyReduce 6# 36# happyReduction_117
+happyReduction_117 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut42 happy_x_6 of { happy_var_6 -> 
+	happyIn42
+		 ((happy_var_1,happy_var_2,happy_var_4):happy_var_6
+	) `HappyStk` happyRest}}}}
+
+happyReduce_118 = happySpecReduce_3  37# happyReduction_118
+happyReduction_118 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 ((happy_var_1, RVar happy_var_2 happy_var_3 happy_var_1 Unknown)
+	)}}}
+
+happyReduce_119 = happySpecReduce_3  37# happyReduction_119
+happyReduction_119 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBrackName happy_var_1) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn43
+		 ((happy_var_1, happy_var_3)
+	)}}
+
+happyReduce_120 = happyReduce 4# 38# happyReduction_120
+happyReduction_120 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn44
+		 (RInfix happy_var_3 happy_var_4 Minus (RConst happy_var_3 happy_var_4 (Num 0)) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_121 = happyReduce 5# 38# happyReduction_121
+happyReduction_121 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_122 = happyReduce 5# 38# happyReduction_122
+happyReduction_122 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (mkApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair") TypeCon) [happy_var_1, happy_var_3]
+	) `HappyStk` happyRest}}}}
+
+happyReduce_123 = happyReduce 5# 38# happyReduction_123
+happyReduction_123 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False "<" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_124 = happyReduce 5# 38# happyReduction_124
+happyReduction_124 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RUserInfix happy_var_4 happy_var_5 False ">" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_125 = happyReduce 5# 38# happyReduction_125
+happyReduction_125 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn44
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	) `HappyStk` happyRest}}
+
+happyReduce_126 = happySpecReduce_1  38# happyReduction_126
+happyReduction_126 happy_x_1
+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> 
+	happyIn44
+		 (happy_var_1
+	)}
+
+happyReduce_127 = happyReduce 5# 38# happyReduction_127
+happyReduction_127 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut57 happy_x_1 of { happy_var_1 -> 
+	case happyOut57 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn44
+		 (RInfix happy_var_4 happy_var_5 JMEq happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_128 = happyReduce 5# 39# happyReduction_128
+happyReduction_128 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn45
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_129 = happyReduce 6# 40# happyReduction_129
+happyReduction_129 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_130 = happyReduce 6# 40# happyReduction_130
+happyReduction_130 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOutTok happy_x_3 of { (TokenInfixName happy_var_3) -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_131 = happyReduce 6# 40# happyReduction_131
+happyReduction_131 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut47 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown) happy_var_3)
+	) `HappyStk` happyRest}}}}
+
+happyReduce_132 = happyReduce 6# 40# happyReduction_132
+happyReduction_132 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut47 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False happy_var_3 happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}}
+
+happyReduce_133 = happyReduce 6# 40# happyReduction_133
+happyReduction_133 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_2 (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}
+
+happyReduce_134 = happyReduce 6# 40# happyReduction_134
+happyReduction_134 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] happy_var_2) (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown))
+	) `HappyStk` happyRest}}}
+
+happyReduce_135 = happyReduce 6# 40# happyReduction_135
+happyReduction_135 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder) 
+                       (RBind (MN "X" 1) (Pi Ex [] (RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown)) happy_var_3)
+	) `HappyStk` happyRest}}}
+
+happyReduce_136 = happyReduce 5# 40# happyReduction_136
+happyReduction_136 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (RBind (MN "X" 1) (Lam RPlaceholder)
+                    (RBind (MN "X" 2) (Pi Ex [] (RVar happy_var_3 happy_var_4 (MN "X" 0) Unknown))
+                       (RVar happy_var_3 happy_var_4 (MN "X" 1) Unknown)))
+	) `HappyStk` happyRest}}
+
+happyReduce_137 = happyReduce 5# 40# happyReduction_137
+happyReduction_137 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                   (RBind (MN "X" 1) (Lam RPlaceholder)
+                       (pairDesugar happy_var_3 happy_var_4 (RVar happy_var_3 happy_var_4 (UN "mkPair") DataCon)
+                                    [RVar happy_var_3 happy_var_4 (MN "X" 0) Unknown,
+                                     RVar happy_var_3 happy_var_4 (MN "X" 1) Unknown]))
+	) `HappyStk` happyRest}}
+
+happyReduce_138 = happyReduce 6# 40# happyReduction_138
+happyReduction_138 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") DataCon)
+                                    [happy_var_2,
+                                     RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown])
+	) `HappyStk` happyRest}}}
+
+happyReduce_139 = happyReduce 6# 40# happyReduction_139
+happyReduction_139 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn46
+		 (RBind (MN "X" 0) (Lam RPlaceholder)
+                       (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") DataCon)
+                                    [RVar happy_var_4 happy_var_5 (MN "X" 0) Unknown, happy_var_3])
+	) `HappyStk` happyRest}}}
+
+happyReduce_140 = happySpecReduce_1  41# happyReduction_140
+happyReduction_140 happy_x_1
+	 =  happyIn47
+		 ("<"
+	)
+
+happyReduce_141 = happySpecReduce_1  41# happyReduction_141
+happyReduction_141 happy_x_1
+	 =  happyIn47
+		 (">"
+	)
+
+happyReduce_142 = happySpecReduce_0  42# happyReduction_142
+happyReduction_142  =  happyIn48
+		 (RPlaceholder
+	)
+
+happyReduce_143 = happySpecReduce_2  42# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn48
+		 (happy_var_2
+	)}
+
+happyReduce_144 = happySpecReduce_0  43# happyReduction_144
+happyReduction_144  =  happyIn49
+		 (RPlaceholder
+	)
+
+happyReduce_145 = happySpecReduce_2  43# happyReduction_145
+happyReduction_145 happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn49
+		 (happy_var_2
+	)}
+
+happyReduce_146 = happyReduce 5# 44# happyReduction_146
+happyReduction_146 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut40 happy_x_1 of { happy_var_1 -> 
+	case happyOut49 happy_x_2 of { happy_var_2 -> 
+	case happyOut50 happy_x_5 of { happy_var_5 -> 
+	happyIn50
+		 (doBind (Pi Im []) (map (\x -> (x, happy_var_2)) happy_var_1) happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_147 = happySpecReduce_1  44# happyReduction_147
+happyReduction_147 happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	happyIn50
+		 (happy_var_1
+	)}
+
+happyReduce_148 = happySpecReduce_3  45# happyReduction_148
+happyReduction_148 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	happyIn51
+		 (RBind (MN "X" 0) (Pi Ex [] happy_var_1) happy_var_3
+	)}}
+
+happyReduce_149 = happyReduce 6# 45# happyReduction_149
+happyReduction_149 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut36 happy_x_2 of { happy_var_2 -> 
+	case happyOut53 happy_x_4 of { happy_var_4 -> 
+	case happyOut51 happy_x_6 of { happy_var_6 -> 
+	happyIn51
+		 (doBind (Pi Ex happy_var_4) happy_var_2 happy_var_6
+	) `HappyStk` happyRest}}}
+
+happyReduce_150 = happyReduce 5# 45# happyReduction_150
+happyReduction_150 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut36 happy_x_2 of { happy_var_2 -> 
+	case happyOut51 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (doBind (Pi Ex [Lazy]) happy_var_2 happy_var_5
+	) `HappyStk` happyRest}}
+
+happyReduce_151 = happySpecReduce_3  45# happyReduction_151
+happyReduction_151 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_2 of { happy_var_2 -> 
+	happyIn51
+		 (bracket happy_var_2
+	)}
+
+happyReduce_152 = happyReduce 7# 45# happyReduction_152
+happyReduction_152 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut51 happy_x_2 of { happy_var_2 -> 
+	case happyOut51 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_5 of { happy_var_5 -> 
+	case happyOut82 happy_x_6 of { happy_var_6 -> 
+	happyIn51
+		 (RInfix happy_var_5 happy_var_6 JMEq happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_153 = happySpecReduce_1  45# happyReduction_153
+happyReduction_153 happy_x_1
+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> 
+	happyIn51
+		 (happy_var_1
+	)}
+
+happyReduce_154 = happySpecReduce_3  45# happyReduction_154
+happyReduction_154 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn51
+		 (happy_var_2
+	)}
+
+happyReduce_155 = happyReduce 5# 45# happyReduction_155
+happyReduction_155 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOutTok happy_x_2 of { (TokenInfixName happy_var_2) -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (RUserInfix happy_var_4 happy_var_5 False happy_var_2 happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_156 = happyReduce 5# 45# happyReduction_156
+happyReduction_156 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (RUserInfix happy_var_4 happy_var_5 False "-" happy_var_1 happy_var_3
+	) `HappyStk` happyRest}}}}
+
+happyReduce_157 = happyReduce 5# 45# happyReduction_157
+happyReduction_157 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut56 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn51
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Pair") TypeCon) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_158 = happySpecReduce_1  45# happyReduction_158
+happyReduction_158 happy_x_1
+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> 
+	happyIn51
+		 (happy_var_1
+	)}
+
+happyReduce_159 = happySpecReduce_1  46# happyReduction_159
+happyReduction_159 happy_x_1
+	 =  happyIn52
+		 (Lazy
+	)
+
+happyReduce_160 = happySpecReduce_1  46# happyReduction_160
+happyReduction_160 happy_x_1
+	 =  happyIn52
+		 (Static
+	)
+
+happyReduce_161 = happySpecReduce_3  47# happyReduction_161
+happyReduction_161 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut54 happy_x_2 of { happy_var_2 -> 
+	happyIn53
+		 (happy_var_2
+	)}
+
+happyReduce_162 = happySpecReduce_0  47# happyReduction_162
+happyReduction_162  =  happyIn53
+		 ([]
+	)
+
+happyReduce_163 = happySpecReduce_3  48# happyReduction_163
+happyReduction_163 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
+	case happyOut54 happy_x_3 of { happy_var_3 -> 
+	happyIn54
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_164 = happySpecReduce_1  48# happyReduction_164
+happyReduction_164 happy_x_1
+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> 
+	happyIn54
+		 ([happy_var_1]
+	)}
+
+happyReduce_165 = happyReduce 8# 49# happyReduction_165
+happyReduction_165 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut48 happy_x_3 of { happy_var_3 -> 
+	case happyOut51 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_7 of { happy_var_7 -> 
+	case happyOut82 happy_x_8 of { happy_var_8 -> 
+	happyIn55
+		 (sigDesugar happy_var_7 happy_var_8 (happy_var_2, happy_var_3) happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_166 = happySpecReduce_3  50# happyReduction_166
+happyReduction_166 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut51 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_167 = happySpecReduce_3  50# happyReduction_167
+happyReduction_167 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> 
+	case happyOut56 happy_x_3 of { happy_var_3 -> 
+	happyIn56
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_168 = happySpecReduce_3  51# happyReduction_168
+happyReduction_168 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RVar happy_var_2 happy_var_3 happy_var_1 Unknown
+	)}}}
+
+happyReduce_169 = happySpecReduce_3  51# happyReduction_169
+happyReduction_169 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RReturn happy_var_2 happy_var_3
+	)}}
+
+happyReduce_170 = happySpecReduce_3  51# happyReduction_170
+happyReduction_170 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (bracket happy_var_2
+	)}
+
+happyReduce_171 = happySpecReduce_2  51# happyReduction_171
+happyReduction_171 happy_x_2
+	happy_x_1
+	 =  case happyOut57 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (RPure happy_var_2
+	)}
+
+happyReduce_172 = happySpecReduce_1  51# happyReduction_172
+happyReduction_172 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenMetavar happy_var_1) -> 
+	happyIn57
+		 (RMetavar happy_var_1
+	)}
+
+happyReduce_173 = happyReduce 4# 51# happyReduction_173
+happyReduction_173 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RMetavarPrf (UN "") happy_var_3 False
+	) `HappyStk` happyRest}
+
+happyReduce_174 = happyReduce 4# 51# happyReduction_174
+happyReduction_174 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RMetavarPrf (UN "") happy_var_3 True
+	) `HappyStk` happyRest}
+
+happyReduce_175 = happyReduce 4# 51# happyReduction_175
+happyReduction_175 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn57
+		 (RExpVar happy_var_3 happy_var_4 happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_176 = happySpecReduce_3  51# happyReduction_176
+happyReduction_176 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RConst happy_var_2 happy_var_3 happy_var_1
+	)}}}
+
+happyReduce_177 = happySpecReduce_1  51# happyReduction_177
+happyReduction_177 happy_x_1
+	 =  happyIn57
+		 (RRefl
+	)
+
+happyReduce_178 = happySpecReduce_3  51# happyReduction_178
+happyReduction_178 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RVar happy_var_2 happy_var_3 (UN "__Empty") TypeCon
+	)}}
+
+happyReduce_179 = happySpecReduce_3  51# happyReduction_179
+happyReduction_179 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn57
+		 (RVar happy_var_2 happy_var_3 (UN "__Unit") TypeCon
+	)}}
+
+happyReduce_180 = happySpecReduce_1  51# happyReduction_180
+happyReduction_180 happy_x_1
+	 =  happyIn57
+		 (RPlaceholder
+	)
+
+happyReduce_181 = happySpecReduce_1  51# happyReduction_181
+happyReduction_181 happy_x_1
+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (RDo happy_var_1
+	)}
+
+happyReduce_182 = happySpecReduce_3  51# happyReduction_182
+happyReduction_182 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn57
+		 (RIdiom happy_var_2
+	)}
+
+happyReduce_183 = happyReduce 5# 51# happyReduction_183
+happyReduction_183 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut59 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn57
+		 (pairDesugar happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "mkPair") DataCon) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_184 = happySpecReduce_1  51# happyReduction_184
+happyReduction_184 happy_x_1
+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (happy_var_1
+	)}
+
+happyReduce_185 = happySpecReduce_1  51# happyReduction_185
+happyReduction_185 happy_x_1
+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (happy_var_1
+	)}
+
+happyReduce_186 = happySpecReduce_1  51# happyReduction_186
+happyReduction_186 happy_x_1
+	 =  case happyOut58 happy_x_1 of { happy_var_1 -> 
+	happyIn57
+		 (happy_var_1
+	)}
+
+happyReduce_187 = happyReduce 5# 51# happyReduction_187
+happyReduction_187 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	case happyOut60 happy_x_4 of { happy_var_4 -> 
+	happyIn57
+		 (mkConsList happy_var_2 happy_var_3 happy_var_4
+	) `HappyStk` happyRest}}}
+
+happyReduce_188 = happyReduce 7# 52# happyReduction_188
+happyReduction_188 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	happyIn58
+		 (RApp happy_var_6 happy_var_7 (RApp happy_var_6 happy_var_7 (RVar happy_var_6 happy_var_7 (UN "Exists") DataCon) happy_var_2) happy_var_4
+	) `HappyStk` happyRest}}}}
+
+happyReduce_189 = happyReduce 5# 52# happyReduction_189
+happyReduction_189 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_2 of { happy_var_2 -> 
+	case happyOut83 happy_x_4 of { happy_var_4 -> 
+	case happyOut82 happy_x_5 of { happy_var_5 -> 
+	happyIn58
+		 (RApp happy_var_4 happy_var_5 (RApp happy_var_4 happy_var_5 (RVar happy_var_4 happy_var_5 (UN "Exists") DataCon) RPlaceholder) happy_var_2
+	) `HappyStk` happyRest}}}
+
+happyReduce_190 = happySpecReduce_3  53# happyReduction_190
+happyReduction_190 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn59
+		 (happy_var_1:happy_var_3:[]
+	)}}
+
+happyReduce_191 = happySpecReduce_3  53# happyReduction_191
+happyReduction_191 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut59 happy_x_3 of { happy_var_3 -> 
+	happyIn59
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_192 = happySpecReduce_0  54# happyReduction_192
+happyReduction_192  =  happyIn60
+		 ([]
+	)
+
+happyReduce_193 = happySpecReduce_1  54# happyReduction_193
+happyReduction_193 happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	happyIn60
+		 ([happy_var_1]
+	)}
+
+happyReduce_194 = happySpecReduce_3  54# happyReduction_194
+happyReduction_194 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut60 happy_x_3 of { happy_var_3 -> 
+	happyIn60
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_195 = happyReduce 4# 55# happyReduction_195
+happyReduction_195 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut62 happy_x_3 of { happy_var_3 -> 
+	happyIn61
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_196 = happyReduce 10# 55# happyReduction_196
+happyReduction_196 (happy_x_10 `HappyStk`
+	happy_x_9 `HappyStk`
+	happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOutTok happy_x_2 of { (TokenBrackName happy_var_2) -> 
+	case happyOut48 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	case happyOut62 happy_x_9 of { happy_var_9 -> 
+	happyIn61
+		 (DoBinding happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5 : happy_var_9
+	) `HappyStk` happyRest}}}}}}
+
+happyReduce_197 = happySpecReduce_2  56# happyReduction_197
+happyReduction_197 happy_x_2
+	happy_x_1
+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
+	case happyOut62 happy_x_2 of { happy_var_2 -> 
+	happyIn62
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_198 = happySpecReduce_1  56# happyReduction_198
+happyReduction_198 happy_x_1
+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> 
+	happyIn62
+		 ([happy_var_1]
+	)}
+
+happyReduce_199 = happyReduce 7# 57# happyReduction_199
+happyReduction_199 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut48 happy_x_2 of { happy_var_2 -> 
+	case happyOut34 happy_x_4 of { happy_var_4 -> 
+	case happyOut83 happy_x_5 of { happy_var_5 -> 
+	case happyOut82 happy_x_6 of { happy_var_6 -> 
+	happyIn63
+		 (DoBinding happy_var_5 happy_var_6 happy_var_1 happy_var_2 happy_var_4
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_200 = happyReduce 8# 57# happyReduction_200
+happyReduction_200 (happy_x_8 `HappyStk`
+	happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_2 of { happy_var_2 -> 
+	case happyOut48 happy_x_3 of { happy_var_3 -> 
+	case happyOut34 happy_x_5 of { happy_var_5 -> 
+	case happyOut83 happy_x_6 of { happy_var_6 -> 
+	case happyOut82 happy_x_7 of { happy_var_7 -> 
+	happyIn63
+		 (DoLet happy_var_6 happy_var_7 happy_var_2 happy_var_3 happy_var_5
+	) `HappyStk` happyRest}}}}}
+
+happyReduce_201 = happyReduce 4# 57# happyReduction_201
+happyReduction_201 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut34 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn63
+		 (DoExp happy_var_2 happy_var_3 happy_var_1
+	) `HappyStk` happyRest}}}
+
+happyReduce_202 = happySpecReduce_1  58# happyReduction_202
+happyReduction_202 happy_x_1
+	 =  happyIn64
+		 (TYPE
+	)
+
+happyReduce_203 = happySpecReduce_1  58# happyReduction_203
+happyReduction_203 happy_x_1
+	 =  happyIn64
+		 (StringType
+	)
+
+happyReduce_204 = happySpecReduce_1  58# happyReduction_204
+happyReduction_204 happy_x_1
+	 =  happyIn64
+		 (IntType
+	)
+
+happyReduce_205 = happySpecReduce_1  58# happyReduction_205
+happyReduction_205 happy_x_1
+	 =  happyIn64
+		 (CharType
+	)
+
+happyReduce_206 = happySpecReduce_1  58# happyReduction_206
+happyReduction_206 happy_x_1
+	 =  happyIn64
+		 (FloatType
+	)
+
+happyReduce_207 = happySpecReduce_1  58# happyReduction_207
+happyReduction_207 happy_x_1
+	 =  happyIn64
+		 (PtrType
+	)
+
+happyReduce_208 = happySpecReduce_1  58# happyReduction_208
+happyReduction_208 happy_x_1
+	 =  happyIn64
+		 (Builtin "Handle"
+	)
+
+happyReduce_209 = happySpecReduce_1  58# happyReduction_209
+happyReduction_209 happy_x_1
+	 =  happyIn64
+		 (Builtin "Lock"
+	)
+
+happyReduce_210 = happySpecReduce_1  58# happyReduction_210
+happyReduction_210 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenInt happy_var_1) -> 
+	happyIn64
+		 (Num happy_var_1
+	)}
+
+happyReduce_211 = happySpecReduce_1  58# happyReduction_211
+happyReduction_211 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenChar happy_var_1) -> 
+	happyIn64
+		 (Ch happy_var_1
+	)}
+
+happyReduce_212 = happySpecReduce_1  58# happyReduction_212
+happyReduction_212 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenString happy_var_1) -> 
+	happyIn64
+		 (Str happy_var_1
+	)}
+
+happyReduce_213 = happySpecReduce_1  58# happyReduction_213
+happyReduction_213 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenBool happy_var_1) -> 
+	happyIn64
+		 (Bo happy_var_1
+	)}
+
+happyReduce_214 = happySpecReduce_1  58# happyReduction_214
+happyReduction_214 happy_x_1
+	 =  case happyOutTok happy_x_1 of { (TokenFloat happy_var_1) -> 
+	happyIn64
+		 (Fl happy_var_1
+	)}
+
+happyReduce_215 = happySpecReduce_0  59# happyReduction_215
+happyReduction_215  =  happyIn65
+		 ([]
+	)
+
+happyReduce_216 = happySpecReduce_2  59# happyReduction_216
+happyReduction_216 happy_x_2
+	happy_x_1
+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> 
+	case happyOut65 happy_x_2 of { happy_var_2 -> 
+	happyIn65
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_217 = happyReduce 4# 60# happyReduction_217
+happyReduction_217 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut50 happy_x_2 of { happy_var_2 -> 
+	case happyOut67 happy_x_3 of { happy_var_3 -> 
+	happyIn66
+		 ((happy_var_2, happy_var_3)
+	) `HappyStk` happyRest}}
+
+happyReduce_218 = happySpecReduce_3  60# happyReduction_218
+happyReduction_218 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> 
+	case happyOut82 happy_x_3 of { happy_var_3 -> 
+	happyIn66
+		 ((RConst happy_var_2 happy_var_3 TYPE, [])
+	)}}
+
+happyReduce_219 = happyReduce 4# 60# happyReduction_219
+happyReduction_219 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut73 happy_x_1 of { happy_var_1 -> 
+	case happyOut83 happy_x_3 of { happy_var_3 -> 
+	case happyOut82 happy_x_4 of { happy_var_4 -> 
+	happyIn66
+		 ((mkTyParams happy_var_3 happy_var_4 happy_var_1, [])
+	) `HappyStk` happyRest}}}
+
+happyReduce_220 = happySpecReduce_0  61# happyReduction_220
+happyReduction_220  =  happyIn67
+		 ([]
+	)
+
+happyReduce_221 = happyReduce 4# 61# happyReduction_221
+happyReduction_221 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
+	happyIn67
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_222 = happyReduce 7# 62# happyReduction_222
+happyReduction_222 (happy_x_7 `HappyStk`
+	happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_4 of { happy_var_4 -> 
+	case happyOut32 happy_x_6 of { happy_var_6 -> 
+	happyIn68
+		 ((happy_var_4,happy_var_6)
+	) `HappyStk` happyRest}}
+
+happyReduce_223 = happyReduce 6# 63# happyReduction_223
+happyReduction_223 (happy_x_6 `HappyStk`
+	happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_3 of { happy_var_3 -> 
+	case happyOut32 happy_x_5 of { happy_var_5 -> 
+	happyIn69
+		 ((happy_var_3,happy_var_5)
+	) `HappyStk` happyRest}}
+
+happyReduce_224 = happyReduce 4# 64# happyReduction_224
+happyReduction_224 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut72 happy_x_3 of { happy_var_3 -> 
+	happyIn70
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_225 = happySpecReduce_2  65# happyReduction_225
+happyReduction_225 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> 
+	happyIn71
+		 (happy_var_2
+	)}
+
+happyReduce_226 = happySpecReduce_3  66# happyReduction_226
+happyReduction_226 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	happyIn72
+		 ([(happy_var_1, happy_var_3)]
+	)}}
+
+happyReduce_227 = happyReduce 5# 66# happyReduction_227
+happyReduction_227 (happy_x_5 `HappyStk`
+	happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut50 happy_x_3 of { happy_var_3 -> 
+	case happyOut72 happy_x_5 of { happy_var_5 -> 
+	happyIn72
+		 ((happy_var_1,happy_var_3):happy_var_5
+	) `HappyStk` happyRest}}}
+
+happyReduce_228 = happySpecReduce_1  67# happyReduction_228
+happyReduction_228 happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	happyIn73
+		 ([happy_var_1]
+	)}
+
+happyReduce_229 = happySpecReduce_2  67# happyReduction_229
+happyReduction_229 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut73 happy_x_2 of { happy_var_2 -> 
+	happyIn73
+		 (happy_var_1:happy_var_2
+	)}}
+
+happyReduce_230 = happySpecReduce_1  68# happyReduction_230
+happyReduction_230 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn74
+		 (happy_var_1
+	)}
+
+happyReduce_231 = happySpecReduce_1  68# happyReduction_231
+happyReduction_231 happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn74
+		 (happy_var_1
+	)}
+
+happyReduce_232 = happySpecReduce_0  69# happyReduction_232
+happyReduction_232  =  happyIn75
+		 ([]
+	)
+
+happyReduce_233 = happySpecReduce_1  69# happyReduction_233
+happyReduction_233 happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	happyIn75
+		 ([happy_var_1]
+	)}
+
+happyReduce_234 = happySpecReduce_3  69# happyReduction_234
+happyReduction_234 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> 
+	case happyOut75 happy_x_3 of { happy_var_3 -> 
+	happyIn75
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_235 = happySpecReduce_2  70# happyReduction_235
+happyReduction_235 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut77 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Full happy_var_1 happy_var_2
+	)}}
+
+happyReduce_236 = happySpecReduce_2  70# happyReduction_236
+happyReduction_236 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> 
+	case happyOut65 happy_x_2 of { happy_var_2 -> 
+	happyIn76
+		 (Simple happy_var_1 happy_var_2
+	)}}
+
+happyReduce_237 = happySpecReduce_2  71# happyReduction_237
+happyReduction_237 happy_x_2
+	happy_x_1
+	 =  case happyOut50 happy_x_2 of { happy_var_2 -> 
+	happyIn77
+		 (happy_var_2
+	)}
+
+happyReduce_238 = happySpecReduce_2  72# happyReduction_238
+happyReduction_238 happy_x_2
+	happy_x_1
+	 =  case happyOut38 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Intro happy_var_2
+	)}
+
+happyReduce_239 = happySpecReduce_1  72# happyReduction_239
+happyReduction_239 happy_x_1
+	 =  happyIn78
+		 (Intro []
+	)
+
+happyReduce_240 = happySpecReduce_2  72# happyReduction_240
+happyReduction_240 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Refine happy_var_2
+	)}
+
+happyReduce_241 = happySpecReduce_2  72# happyReduction_241
+happyReduction_241 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Exists happy_var_2
+	)}
+
+happyReduce_242 = happySpecReduce_2  72# happyReduction_242
+happyReduction_242 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Generalise happy_var_2
+	)}
+
+happyReduce_243 = happySpecReduce_1  72# happyReduction_243
+happyReduction_243 happy_x_1
+	 =  happyIn78
+		 (ReflP
+	)
+
+happyReduce_244 = happySpecReduce_2  72# happyReduction_244
+happyReduction_244 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Rewrite False False happy_var_2
+	)}
+
+happyReduce_245 = happySpecReduce_3  72# happyReduction_245
+happyReduction_245 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn78
+		 (Rewrite False True happy_var_3
+	)}
+
+happyReduce_246 = happySpecReduce_2  72# happyReduction_246
+happyReduction_246 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Rewrite True False happy_var_2
+	)}
+
+happyReduce_247 = happySpecReduce_3  72# happyReduction_247
+happyReduction_247 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_3 of { happy_var_3 -> 
+	happyIn78
+		 (Rewrite True True happy_var_3
+	)}
+
+happyReduce_248 = happySpecReduce_1  72# happyReduction_248
+happyReduction_248 happy_x_1
+	 =  happyIn78
+		 (Compute
+	)
+
+happyReduce_249 = happySpecReduce_2  72# happyReduction_249
+happyReduction_249 happy_x_2
+	happy_x_1
+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Unfold happy_var_2
+	)}
+
+happyReduce_250 = happySpecReduce_1  72# happyReduction_250
+happyReduction_250 happy_x_1
+	 =  happyIn78
+		 (Undo
+	)
+
+happyReduce_251 = happySpecReduce_2  72# happyReduction_251
+happyReduction_251 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Induction happy_var_2
+	)}
+
+happyReduce_252 = happySpecReduce_2  72# happyReduction_252
+happyReduction_252 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Fill happy_var_2
+	)}
+
+happyReduce_253 = happySpecReduce_1  72# happyReduction_253
+happyReduction_253 happy_x_1
+	 =  happyIn78
+		 (Trivial
+	)
+
+happyReduce_254 = happySpecReduce_1  72# happyReduction_254
+happyReduction_254 happy_x_1
+	 =  happyIn78
+		 (SimpleSearch
+	)
+
+happyReduce_255 = happySpecReduce_2  72# happyReduction_255
+happyReduction_255 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (RunTactic happy_var_2
+	)}
+
+happyReduce_256 = happySpecReduce_2  72# happyReduction_256
+happyReduction_256 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Believe happy_var_2
+	)}
+
+happyReduce_257 = happySpecReduce_2  72# happyReduction_257
+happyReduction_257 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Use happy_var_2
+	)}
+
+happyReduce_258 = happySpecReduce_2  72# happyReduction_258
+happyReduction_258 happy_x_2
+	happy_x_1
+	 =  case happyOut34 happy_x_2 of { happy_var_2 -> 
+	happyIn78
+		 (Decide happy_var_2
+	)}
+
+happyReduce_259 = happySpecReduce_1  72# happyReduction_259
+happyReduction_259 happy_x_1
+	 =  happyIn78
+		 (Abandon
+	)
+
+happyReduce_260 = happySpecReduce_1  72# happyReduction_260
+happyReduction_260 happy_x_1
+	 =  happyIn78
+		 (ProofTerm
+	)
+
+happyReduce_261 = happySpecReduce_1  72# happyReduction_261
+happyReduction_261 happy_x_1
+	 =  happyIn78
+		 (Qed
+	)
+
+happyReduce_262 = happyReduce 4# 73# happyReduction_262
+happyReduction_262 (happy_x_4 `HappyStk`
+	happy_x_3 `HappyStk`
+	happy_x_2 `HappyStk`
+	happy_x_1 `HappyStk`
+	happyRest)
+	 = case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn79
+		 (happy_var_3
+	) `HappyStk` happyRest}
+
+happyReduce_263 = happySpecReduce_2  74# happyReduction_263
+happyReduction_263 happy_x_2
+	happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn80
+		 ([happy_var_1]
+	)}
+
+happyReduce_264 = happySpecReduce_1  74# happyReduction_264
+happyReduction_264 happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn80
+		 ([happy_var_1]
+	)}
+
+happyReduce_265 = happySpecReduce_3  74# happyReduction_265
+happyReduction_265 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn80
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_266 = happySpecReduce_1  75# happyReduction_266
+happyReduction_266 happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	happyIn81
+		 ([happy_var_1]
+	)}
+
+happyReduce_267 = happySpecReduce_3  75# happyReduction_267
+happyReduction_267 happy_x_3
+	happy_x_2
+	happy_x_1
+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> 
+	case happyOut80 happy_x_3 of { happy_var_3 -> 
+	happyIn81
+		 (happy_var_1:happy_var_3
+	)}}
+
+happyReduce_268 = happyMonadReduce 0# 76# happyReduction_268
+happyReduction_268 (happyRest) tk
+	 = happyThen (( getLineNo)
+	) (\r -> happyReturn (happyIn82 r))
+
+happyReduce_269 = happyMonadReduce 0# 77# happyReduction_269
+happyReduction_269 (happyRest) tk
+	 = happyThen (( getFileName)
+	) (\r -> happyReturn (happyIn83 r))
+
+happyReduce_270 = happyMonadReduce 0# 78# happyReduction_270
+happyReduction_270 (happyRest) tk
+	 = happyThen (( getOps)
+	) (\r -> happyReturn (happyIn84 r))
+
+happyNewToken action sts stk
+	= lexer(\tk -> 
+	let cont i = happyDoAction i tk action sts stk in
+	case tk of {
+	TokenEOF -> happyDoAction 123# tk action sts stk;
+	TokenName happy_dollar_dollar -> cont 1#;
+	TokenInfixName happy_dollar_dollar -> cont 2#;
+	TokenBrackName happy_dollar_dollar -> cont 3#;
+	TokenString happy_dollar_dollar -> cont 4#;
+	TokenInt happy_dollar_dollar -> cont 5#;
+	TokenFloat happy_dollar_dollar -> cont 6#;
+	TokenChar happy_dollar_dollar -> cont 7#;
+	TokenBool happy_dollar_dollar -> cont 8#;
+	TokenMetavar happy_dollar_dollar -> cont 9#;
+	TokenColon -> cont 10#;
+	TokenSemi -> cont 11#;
+	TokenBar -> cont 12#;
+	TokenStars -> cont 13#;
+	TokenLambda -> cont 14#;
+	TokenHashOB -> cont 15#;
+	TokenOB -> cont 16#;
+	TokenCB -> cont 17#;
+	TokenOCB -> cont 18#;
+	TokenCCB -> cont 19#;
+	TokenOSB -> cont 20#;
+	TokenCSB -> cont 21#;
+	TokenOId -> cont 22#;
+	TokenCId -> cont 23#;
+	TokenLPair -> cont 24#;
+	TokenRPair -> cont 25#;
+	TokenExists -> cont 26#;
+	TokenTilde -> cont 27#;
+	TokenPlus -> cont 28#;
+	TokenMinus -> cont 29#;
+	TokenTimes -> cont 30#;
+	TokenDivide -> cont 31#;
+	TokenEquals -> cont 32#;
+	TokenMightEqual -> cont 33#;
+	TokenLT -> cont 34#;
+	TokenGT -> cont 35#;
+	TokenEllipsis -> cont 36#;
+	TokenUnderscore -> cont 37#;
+	TokenComma -> cont 38#;
+	TokenTuple -> cont 39#;
+	TokenBang -> cont 40#;
+	TokenConcat -> cont 41#;
+	TokenGE -> cont 42#;
+	TokenLE -> cont 43#;
+	TokenOr -> cont 44#;
+	TokenAnd -> cont 45#;
+	TokenArrow -> cont 46#;
+	TokenFatArrow -> cont 47#;
+	TokenTransArrow -> cont 48#;
+	TokenLeftArrow -> cont 49#;
+	TokenIntType -> cont 50#;
+	TokenCharType -> cont 51#;
+	TokenFloatType -> cont 52#;
+	TokenStringType -> cont 53#;
+	TokenHandleType -> cont 54#;
+	TokenPtrType -> cont 55#;
+	TokenLockType -> cont 56#;
+	TokenType -> cont 57#;
+	TokenLazyBracket -> cont 58#;
+	TokenDataType -> cont 59#;
+	TokenCoDataType -> cont 60#;
+	TokenInfix -> cont 61#;
+	TokenInfixL -> cont 62#;
+	TokenInfixR -> cont 63#;
+	TokenUsing -> cont 64#;
+	TokenIdiom -> cont 65#;
+	TokenParams -> cont 66#;
+	TokenNamespace -> cont 67#;
+	TokenPublic -> cont 68#;
+	TokenPrivate -> cont 69#;
+	TokenAbstract -> cont 70#;
+	TokenNoElim -> cont 71#;
+	TokenCollapsible -> cont 72#;
+	TokenWhere -> cont 73#;
+	TokenWith -> cont 74#;
+	TokenPartial -> cont 75#;
+	TokenSyntax -> cont 76#;
+	TokenLazy -> cont 77#;
+	TokenStatic -> cont 78#;
+	TokenRefl -> cont 79#;
+	TokenEmptyType -> cont 80#;
+	TokenUnitType -> cont 81#;
+	TokenInclude -> cont 82#;
+	TokenExport -> cont 83#;
+	TokenInline -> cont 84#;
+	TokenDo -> cont 85#;
+	TokenReturn -> cont 86#;
+	TokenIf -> cont 87#;
+	TokenThen -> cont 88#;
+	TokenElse -> cont 89#;
+	TokenLet -> cont 90#;
+	TokenIn -> cont 91#;
+	TokenProof -> cont 92#;
+	TokenTryProof -> cont 93#;
+	TokenIntro -> cont 94#;
+	TokenRefine -> cont 95#;
+	TokenGeneralise -> cont 96#;
+	TokenReflP -> cont 97#;
+	TokenRewrite -> cont 98#;
+	TokenRewriteAll -> cont 99#;
+	TokenCompute -> cont 100#;
+	TokenUnfold -> cont 101#;
+	TokenUndo -> cont 102#;
+	TokenInduction -> cont 103#;
+	TokenFill -> cont 104#;
+	TokenTrivial -> cont 105#;
+	TokenSimpleSearch -> cont 106#;
+	TokenMkTac -> cont 107#;
+	TokenBelieve -> cont 108#;
+	TokenUse -> cont 109#;
+	TokenDecide -> cont 110#;
+	TokenAbandon -> cont 111#;
+	TokenProofTerm -> cont 112#;
+	TokenQED -> cont 113#;
+	TokenLaTeX -> cont 114#;
+	TokenNoCG -> cont 115#;
+	TokenEval -> cont 116#;
+	TokenSpec -> cont 117#;
+	TokenFreeze -> cont 118#;
+	TokenThaw -> cont 119#;
+	TokenTransform -> cont 120#;
+	TokenCInclude -> cont 121#;
+	TokenCLib -> cont 122#;
+	_ -> happyError' tk
+	})
+
+happyError_ tk = happyError' tk
+
+happyThen :: () => P a -> (a -> P b) -> P b
+happyThen = (thenP)
+happyReturn :: () => a -> P a
+happyReturn = (returnP)
+happyThen1 = happyThen
+happyReturn1 :: () => a -> P a
+happyReturn1 = happyReturn
+happyError' :: () => (Token) -> P a
+happyError' tk = (\token -> happyError) tk
+
+mkparse = happySomeParser where
+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))
+
+mkparseTerm = happySomeParser where
+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut34 x))
+
+mkparseTactic = happySomeParser where
+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut78 x))
+
+happySeq = happyDontSeq
+
+
+data ConParse = Full Id RawTerm
+              | Simple Id [RawTerm]
+
+parse :: String -> FilePath -> Result [Decl]
+parse s fn = do ds <- mkparse s fn 1 []
+                collectDecls ds
+
+processImports :: [Opt] -> [FilePath] -> Result [Decl] -> 
+                  IO ([Decl], [FilePath])
+processImports opts imped (Success ds) = pi imped [] ds
+  where pi imps decls ((PInclude fp):xs)
+           | fp `elem` imps = pi imps decls xs
+           | otherwise = do
+                 f <- readLibFile defaultLibPath fp
+                 when (Verbose `elem` opts) $ putStrLn ("Reading " ++ fp)
+                 case parse f fp of
+                   Success t -> pi (fp:imps) decls (t++xs)
+                   Failure e f l ->
+                     fail $ f ++ ":" ++ show l ++ ":" ++ e
+        pi imps decls ((Using t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Using t ds']) xs
+        pi imps decls ((Params t ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Params t ds']) xs
+        pi imps decls ((DoUsing b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[DoUsing b r ds']) xs
+        pi imps decls ((Idiom b r ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Idiom b r ds']) xs
+        pi imps decls ((Namespace n ds):xs)
+            = do (ds',imps') <- pi imps [] ds
+                 pi imps' (decls++[Namespace n ds']) xs
+        pi imps decls (x:xs) = pi imps (decls++[x]) xs
+        pi imps decls [] = return (decls, imps)
+
+processImports _ imped (Failure e f l) 
+    = fail $ show f ++ ":" ++ show l ++ ":" ++ show e
+
+
+parseTerm :: String -> Result RawTerm
+parseTerm s = mkparseTerm s "(input)" 0 []
+
+parseTactic :: String -> Result ITactic
+parseTactic s = mkparseTactic s "(tactic)" 0 []
+
+-- Make a constructor type, and make arguments lazy if it's codata
+
+mkCon :: Bool -> RawTerm -> ConParse -> (Id,RawTerm)
+mkCon co _ (Full n t) = (n,if co then lazify t else t)
+mkCon co ty (Simple n args) = (n, mkConTy args ty)
+   where mkConTy [] ty = ty
+         mkConTy (a:as) ty = let opts = if co then [Lazy] else [] in
+                                 RBind (MN "X" 0) (Pi Ex opts a) (mkConTy as ty)
+
+-- Make sure all arguments are lazy
+
+lazify :: RawTerm -> RawTerm
+lazify (RBind n (Pi p opts a) sc) 
+    = RBind n (Pi p (nub (Lazy:opts)) a) (lazify sc)
+lazify t = t
+
+mkDef file line (n, tms) = mkImpApp (RVar file line n Unknown) tms
+   where mkImpApp f [] = f
+         mkImpApp f ((tm,Just n):ts) = mkImpApp (RAppImp file line n f tm) ts
+         mkImpApp f ((tm, Nothing):ts) = mkImpApp (RApp file line f tm) ts
+
+doBind :: (RawTerm -> RBinder) -> [(Id,RawTerm)] -> RawTerm -> RawTerm
+doBind b [] t = t
+doBind b ((x,ty):ts) tm = RBind x (b ty) (doBind b ts tm)
+
+doLetBind :: [(Id,RawTerm,RawTerm)] -> RawTerm -> RawTerm
+doLetBind [] t = t
+doLetBind ((x,ty,val):ts) tm = RBind x (RLet val ty) (doLetBind ts tm)
+
+mkTyApp :: String -> Int -> Id -> RawTerm -> RawTerm
+mkTyApp file line n ty = mkApp file line (RVar file line n Unknown) (getTyArgs ty)
+   where getTyArgs (RBind n _ t) = (RVar file line n Unknown):(getTyArgs t)
+         getTyArgs x = []
+
+mkTyParams :: String -> Int -> [Id] -> RawTerm
+mkTyParams f l [] = RConst f l TYPE
+mkTyParams f l (x:xs) = RBind x (Pi Ex [] (RConst f l TYPE)) (mkTyParams f l xs)
+
+mkDatatype :: Bool -> String -> Int ->
+              Id -> Either RawTerm ((RawTerm, [(Id, RawTerm)]), [ConParse]) -> 
+                    [TyOpt] -> Datatype
+mkDatatype co file line n (Right ((t, using), cons)) opts
+    = let opts' = if co then nub (Codata:opts) else opts in
+          Datatype n t (map (mkCon co (mkTyApp file line n t)) cons) using opts' file line 
+mkDatatype co file line n (Left t) opts
+    = Latatype n t file line
+
+bracket (RUserInfix f l _ op x y) = RUserInfix f l True op x y
+bracket x = x
+
+pairDesugar :: String -> Int -> RawTerm -> [RawTerm] -> RawTerm
+pairDesugar file line pair [x,y] = mkApp file line pair [x,y]
+pairDesugar file line pair (x:y:xs) 
+    = pairDesugar file line pair ((mkApp file line pair [x,y]):xs)
+
+sigDesugar :: String -> Int -> (Id, RawTerm) -> RawTerm -> RawTerm
+sigDesugar file line (n, tm) sc
+    = mkApp file line (RVar file line (UN "Sigma") TypeCon) [tm, lam]
+   where lam = RBind n (Lam tm) sc
+
+mkConsList :: String -> Int -> [RawTerm] -> RawTerm
+mkConsList f l [] = RVar f l (UN "Nil") Unknown
+mkConsList f l (x:xs) = RApp f l (RApp f l (RVar f l (UN "Cons") Unknown) x)
+                                 (mkConsList f l xs)
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+{-# LINE 1 "<built-in>" #-}
+{-# LINE 1 "<command line>" #-}
+{-# LINE 1 "templates/GenericTemplate.hs" #-}
+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
+
+{-# LINE 30 "templates/GenericTemplate.hs" #-}
+
+
+data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
+
+
+
+
+
+{-# LINE 51 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 61 "templates/GenericTemplate.hs" #-}
+
+{-# LINE 70 "templates/GenericTemplate.hs" #-}
+
+infixr 9 `HappyStk`
+data HappyStk a = HappyStk a (HappyStk a)
+
+-----------------------------------------------------------------------------
+-- starting the parse
+
+happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
+
+-----------------------------------------------------------------------------
+-- Accepting the parse
+
+-- If the current token is 0#, it means we've just accepted a partial
+-- parse (a %partial parser).  We must ignore the saved token on the top of
+-- the stack in this case.
+happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =
+	happyReturn1 ans
+happyAccept j tk st sts (HappyStk ans _) = 
+	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)
+
+-----------------------------------------------------------------------------
+-- Arrays only: do the next action
+
+
+
+happyDoAction i tk st
+	= {- nothing -}
+
+
+	  case action of
+		0#		  -> {- nothing -}
+				     happyFail i tk st
+		-1# 	  -> {- nothing -}
+				     happyAccept i tk st
+		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}
+
+				     (happyReduceArr Happy_Data_Array.! rule) i tk st
+				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))
+		n		  -> {- nothing -}
+
+
+				     happyShift new_state i tk st
+				     where !(new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
+   where !(off)    = indexShortOffAddr happyActOffsets st
+         !(off_i)  = (off Happy_GHC_Exts.+# i)
+	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
+			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
+			else False
+         !(action)
+          | check     = indexShortOffAddr happyTable off_i
+          | otherwise = indexShortOffAddr happyDefActions st
+
+{-# LINE 130 "templates/GenericTemplate.hs" #-}
+
+
+indexShortOffAddr (HappyA# arr) off =
+	Happy_GHC_Exts.narrow16Int# i
+  where
+	!i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
+	!high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
+	!low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
+	!off' = off Happy_GHC_Exts.*# 2#
+
+
+
+
+
+data HappyAddr = HappyA# Happy_GHC_Exts.Addr#
+
+
+
+
+-----------------------------------------------------------------------------
+-- HappyState data type (not arrays)
+
+{-# LINE 163 "templates/GenericTemplate.hs" #-}
+
+-----------------------------------------------------------------------------
+-- Shifting a token
+
+happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
+     let !(i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
+--     trace "shifting the error token" $
+     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
+
+happyShift new_state i tk st sts stk =
+     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)
+
+-- happyReduce is specialised for the common cases.
+
+happySpecReduce_0 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_0 nt fn j tk st@((action)) sts stk
+     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)
+
+happySpecReduce_1 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
+     = let r = fn v1 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_2 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
+     = let r = fn v1 v2 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happySpecReduce_3 i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
+     = let r = fn v1 v2 v3 in
+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))
+
+happyReduce k i fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyReduce k nt fn j tk st sts stk
+     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of
+	 sts1@((HappyCons (st1@(action)) (_))) ->
+        	let r = fn stk in  -- it doesn't hurt to always seq here...
+       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)
+
+happyMonadReduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonadReduce k nt fn j tk st sts stk =
+        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
+       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+happyMonad2Reduce k nt fn 0# tk st sts stk
+     = happyFail 0# tk st sts stk
+happyMonad2Reduce k nt fn j tk st sts stk =
+       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
+       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
+             drop_stk = happyDropStk k stk
+
+             !(off) = indexShortOffAddr happyGotoOffsets st1
+             !(off_i) = (off Happy_GHC_Exts.+# nt)
+             !(new_state) = indexShortOffAddr happyTable off_i
+
+
+
+
+happyDrop 0# l = l
+happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t
+
+happyDropStk 0# l = l
+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs
+
+-----------------------------------------------------------------------------
+-- Moving to a new state after a reduction
+
+
+happyGoto nt j tk st = 
+   {- nothing -}
+   happyDoAction j tk new_state
+   where !(off) = indexShortOffAddr happyGotoOffsets st
+         !(off_i) = (off Happy_GHC_Exts.+# nt)
+         !(new_state) = indexShortOffAddr happyTable off_i
 
 
 
diff --git a/idris.cabal b/idris.cabal
--- a/idris.cabal
+++ b/idris.cabal
@@ -1,9 +1,10 @@
 Name:           idris
-Version:        0.1.5
+Version:        0.1.7
 License:        BSD3
 License-file:   LICENSE
 Author:         Edwin Brady
-Maintainer:     Edwin Brady <eb@dcs.st-and.ac.uk>
+Maintainer:     Edwin Brady <eb@cs.st-andrews.ac.uk>
+Homepage:       http://www.idris-lang.org/
 
 Stability:      Alpha
 Category:       Compilers/Interpreters, Dependent Types
@@ -44,14 +45,14 @@
                          Idris.Compiler, Idris.LambdaLift, Idris.PMComp, 
                          Idris.MakeTerm, Idris.Prover, Idris.Fontlock,
                          Idris.ConTrans, Idris.SCTrans, Idris.RunIO,
-                         Idris.SimpleCase, Idris.Serialise
+                         Idris.SimpleCase, Idris.Serialise, Idris.PartialEval
         Other-modules:   Paths_idris
 
         Build-depends:   base>=4 && <5, containers, array, parsec, mtl,
-                         readline, ivor>=0.1.12, directory, haskell98,
-                         old-time, old-locale, binary, epic>=0.1.5, Cabal
+                         readline, ivor>=0.1.13, directory, haskell98,
+                         old-time, old-locale, binary, epic>=0.1.7, Cabal
                                 
-        Extensions:      MagicHash, UndecidableInstances, OverlappingInstances
+        Extensions:      MagicHash, UndecidableInstances, OverlappingInstances, PatternGuards
 
 Executable     idris
                Main-is: Main.lhs
@@ -60,10 +61,12 @@
                               Idris.Compiler, Idris.LambdaLift, Idris.PMComp, 
                               Idris.MakeTerm, Idris.Prover, Idris.Fontlock,
                               Idris.ConTrans, Idris.SCTrans, Idris.RunIO,
-                              Idris.SimpleCase, Idris.Serialise
+                              Idris.SimpleCase, Idris.Serialise, 
+                              Idris.PartialEval
 
                Build-depends:   base>=4 && <5, containers, array, parsec, mtl,
-                                readline, ivor>=0.1.12, directory, haskell98,
-                                old-time, old-locale, binary, epic>=0.1.4, Cabal
+                                readline, ivor>=0.1.14, directory, haskell98,
+                                old-time, old-locale, binary, epic>=0.1.6, Cabal
                                 
-               Extensions:      MagicHash, UndecidableInstances, OverlappingInstances
+               Extensions:      MagicHash, UndecidableInstances, OverlappingInstances, PatternGuards
+               ghc-prof-options: -auto-all
diff --git a/lib/Prelude.e b/lib/Prelude.e
--- a/lib/Prelude.e
+++ b/lib/Prelude.e
@@ -28,6 +28,15 @@
 __epic_streq (x:String, y:String) -> Data =
     foreign Int "streq" (x:String, y:String)
 
+__epic_strrev (x:String) -> String =
+    foreign String "strrev" (x:String)
+
+__epic_substr (x:String, start:Int, len:Int) -> String =
+    foreign String "substr" (x:String, start: Int, len:Int)
+
+__epic_strFind (x:String, c:Int) -> Int =
+    foreign String "strFind" (x:String, c:Int)
+
 %inline __epic_chareq (x:Int, y:Int) -> Data = x==y
 
 %inline __epic_strlt (x:String, y:String) -> Data =
@@ -65,6 +74,12 @@
 
 __epic_toString (x:Int) -> String = 
    foreign String "intToStr" (x:Int)
+
+__epic_floatToString (x:Float) -> String = 
+   foreign String "floatToStr" (x:Float)
+
+__epic_stringToFloat (x:String) -> Float = 
+   foreign Float "strToFloat" (x:String)
 
 __epic_native (x:Fun) -> Ptr =
    foreign Ptr "getNative" (x:Fun)
diff --git a/lib/bool.idr b/lib/bool.idr
--- a/lib/bool.idr
+++ b/lib/bool.idr
@@ -15,9 +15,21 @@
 infixl 4 &&,||;
 
 (||) : Bool -> Bool -> Bool;
-(||) False False = False;
-(||) _ _ = True;
+(||) False x = x;
+(||) True _ = True;
 
 (&&) : Bool -> Bool -> Bool;
-(&&) True True = True;
-(&&) _ _ = False;
+(&&) True x = x;
+(&&) False _ = False;
+
+or_commutes : (x:Bool) -> (y:Bool) -> ((x || y) = (y || x));
+or_commutes True False  = refl _;
+or_commutes True True   = refl _;
+or_commutes False False = refl _;
+or_commutes False True  = refl _;
+
+and_commutes : (x:Bool) -> (y:Bool) -> ((x && y) = (y && x));
+and_commutes True False  = refl _;
+and_commutes True True   = refl _;
+and_commutes False False = refl _;
+and_commutes False True  = refl _;
diff --git a/lib/builtins.idr b/lib/builtins.idr
--- a/lib/builtins.idr
+++ b/lib/builtins.idr
@@ -14,16 +14,19 @@
 
 data Pair a b = mkPair a b;
 
+id : a -> a;
+id x = x;
+
 rewrite : {A:B->Set} -> A m -> (m=n) -> A n;
 rewrite t (refl m) = t;
 
 -- This way is needed for Ivor's rewriting tactic
 
 __eq_repl : (A:Set)->(x:A) -> (y:A) -> (q:(x=y)) -> (P:(m:A)->Set) -> (p:P x) -> (P y);
-__eq_repl A x x (refl x) P p = p;
+__eq_repl A x x (refl _) P p = p;
 
 __eq_sym : (A:Set) -> (a:A) -> (b:A) -> (p:(a=b)) -> (b=a);
-__eq_sym A a a p = refl _;
+__eq_sym A a a (refl _) = refl _;
 
 -- For proofs which should not be stored at run-time. Programs can
 -- construct objects of type Proof A, and manipulate them,
@@ -40,10 +43,4 @@
 
 proof_bind : Proof A -> (A -> Proof B) -> Proof B;
 proof_bind (__mkProof a) p = p a;
-
--- Used by the 'believe' tactic to make a temporary proof. Programs
--- using this are not to be trusted!
-
-__Prove_Anything : {A:Set} -> A;
-__Suspend_Disbelief : (m:A) -> (n:A) -> (m = n);
 
diff --git a/lib/either.idr b/lib/either.idr
--- a/lib/either.idr
+++ b/lib/either.idr
@@ -3,3 +3,7 @@
 choose : (x:Bool) -> Either (so (not x)) (so x);
 choose False = Left oh;
 choose True = Right oh;
+
+either : Either a b -> (a -> c) -> (b -> c) -> c;
+either (Left  a) fa fb = fa a;
+either (Right b) fa fb = fb b;
diff --git a/lib/equalities.idr b/lib/equalities.idr
new file mode 100644
--- /dev/null
+++ b/lib/equalities.idr
@@ -0,0 +1,39 @@
+include "maybe.idr";
+include "vect.idr";
+
+data EqNat : Nat -> Nat -> Set where
+    eqO : EqNat O O
+  | eqS : EqNat x y -> EqNat (S x) (S y);
+
+eqNat' : (x:Nat) -> (y:Nat) -> Maybe (EqNat x y);
+eqNat' O O = Just eqO;
+eqNat' (S x) (S y) with eqNat' x y {
+  eqNat' (S x) (S x) | Just p = Just (eqS p);
+  eqNat' (S x) (S y) | Nothing = Nothing;
+}
+eqNat' _ _ = Nothing;
+
+eqNat : Nat -> Nat -> Bool;
+eqNat x y with eqNat' x y {
+  eqNat x x | Just _ = True;
+  eqNat x y | Nothing = False;
+}
+
+data EqFin : Fin n -> Fin n -> Set where
+    eqfO : {k:Nat} -> EqFin {n=S k} fO fO
+  | eqfS : {x:Fin n} -> {y:Fin n} -> EqFin x y -> EqFin (fS x) (fS y);
+
+eqFin' : (x:Fin n) -> (y:Fin n) -> Maybe (EqFin x y);
+eqFin' fO fO = Just eqfO;
+eqFin' (fS x) (fS y) with eqFin' x y {
+  eqFin' (fS x) (fS x) | Just p = Just (eqfS p);
+  eqFin' (fS x) (fS y) | Nothing = Nothing;
+}
+eqFin' _ _ = Nothing;
+
+eqFin : Fin n -> Fin n -> Bool;
+eqFin x y with eqFin' x y {
+  eqFin x x | Just _ = True;
+  eqFin x y | Nothing = False;
+}
+
diff --git a/lib/io.idr b/lib/io.idr
--- a/lib/io.idr
+++ b/lib/io.idr
@@ -3,14 +3,17 @@
 -- FAny is to allow C functions to build up Idris data
 -- types. Obviously this needs care...
 
-data FType = FUnit | FInt | FStr | FPtr | FAny Set;
+data FType = FUnit | FInt | FStr | FPtr | FFloat | FAny Set
+           | FIntP (Int -> Bool);
 
 i_ftype : FType -> Set;
 i_ftype FInt = Int;
 i_ftype FStr = String;
 i_ftype FPtr = Ptr;
+i_ftype FFloat = Float;
 i_ftype FUnit = ();
 i_ftype (FAny ty) = ty;
+i_ftype (FIntP p) = (x : Int ** so (p x)); 
 
 data ForeignFun = FFun String (List FType) FType;
 
@@ -80,7 +83,7 @@
   bind : (IO a) -> (a -> (IO b)) -> (IO b);
   bind (IOReturn a) k = k a;
   -- bind (IODo (IOLift {A} c) p) k = bind (bind c p) k;
-  bind (IODo c p) k = IODo c (\x => (bind (p x) k));
+  bind (IODo c p) k = IODo c (\y => (bind (p y) k));
   -- bind (IOError str) k = IOError str;
 
   ret : a -> IO a;
@@ -192,16 +195,16 @@
 writeIORef : (IORef A) -> A -> (IO ());
 writeIORef (MkIORef i) val = writeIORefPrim i val;
 
-mkFType' : (List FType) -> FType -> Set   %nocg;
+mkFType' : (List FType) -> FType -> Set  ; [%nocg]
 
 mkFType' Nil rt = IO (i_ftype rt);
 mkFType' (Cons t ts) rt = (i_ftype t) -> (mkFType' ts rt);
 
-mkFType : ForeignFun -> Set    %nocg;
+mkFType : ForeignFun -> Set   ; [%nocg]
 mkFType (FFun fn args rt) = mkFType' args rt;
 
 mkFDef : String -> (ts:List FType) -> (xs:List FType) -> (FArgList xs) ->
-	 (rt:FType) -> (mkFType' ts rt)   %nocg;
+	 (rt:FType) -> (mkFType' ts rt)  ; [%nocg]
 mkFDef nm Nil accA fs rt 
    = IODo (Foreign (FFun nm accA rt) fs)
 				 (\a => (IOReturn a));
@@ -209,10 +212,10 @@
    = \x:i_ftype t => mkFDef nm ts (app accA (Cons t Nil)) 
 				   (fapp fs (fCons x fNil)) rt;
 
-mkForeign : (f:ForeignFun) -> (mkFType f)   %nocg;
+mkForeign : (f:ForeignFun) -> (mkFType f)  ; [%nocg]
 mkForeign (FFun fn args rt) = mkFDef fn args Nil fNil rt;
 
-_isNull = mkForeign (FFun "isNull" (Cons FPtr Nil) FInt) %eval;
+_isNull = mkForeign (FFun "isNull" (Cons FPtr Nil) FInt); [%eval]
 
 isNull : Ptr -> Bool;
 isNull ptr = if_then_else ((unsafePerformIO (_isNull ptr))==0) False True;
@@ -220,31 +223,31 @@
 data File = FHandle Ptr;
 
 _fopen
-  = mkForeign (FFun "fileOpen" (Cons FStr (Cons FStr Nil)) FPtr) %eval;
+  = mkForeign (FFun "fileOpen" (Cons FStr (Cons FStr Nil)) FPtr); [%eval]
 _fclose 
-  = mkForeign (FFun "fileClose" (Cons FPtr Nil) FUnit) %eval;
+  = mkForeign (FFun "fileClose" (Cons FPtr Nil) FUnit); [%eval]
 _fread
-  = mkForeign (FFun "freadStr" (Cons FPtr Nil) (FAny String)) %eval;
+  = mkForeign (FFun "freadStr" (Cons FPtr Nil) (FAny String)); [%eval]
 _fwrite
-  = mkForeign (FFun "fputStr" (Cons FPtr (Cons FStr Nil)) FUnit) %eval;
+  = mkForeign (FFun "fputStr" (Cons FPtr (Cons FStr Nil)) FUnit); [%eval]
 _feof
-  = mkForeign (FFun "feof" (Cons FPtr Nil) FInt) %eval;
+  = mkForeign (FFun "feof" (Cons FPtr Nil) FInt); [%eval]
 
 gc_details
-  = mkForeign (FFun "epicMemInfo" Nil FUnit) %eval;
+  = mkForeign (FFun "epicMemInfo" Nil FUnit); [%eval]
 
 gc_collect
-  = mkForeign (FFun "epicGC" Nil FUnit) %eval;
+  = mkForeign (FFun "epicGC" Nil FUnit); [%eval]
 
 fopen : String -> String -> IO File;
-fopen str mode = do { h <- _fopen str mode;
-		      return (FHandle h); };
+fopen str mode = do { ho <- _fopen str mode;
+		      return (FHandle ho); };
 
 fclose : File -> IO ();
 fclose (FHandle h) = _fclose h;
 
 fread : File -> IO String;
-fread (FHandle h) = _fread h;
+fread (FHandle hn) = _fread hn;
 
 fwrite : File -> String -> IO ();
 fwrite (FHandle h) str = _fwrite h str;
@@ -259,8 +262,8 @@
 			    as <- sequence xs;
 			    return (Cons a as); };
 
-sleep = mkForeign (FFun "sleep" (Cons FInt Nil) FUnit) %eval;
+sleep = mkForeign (FFun "sleep" (Cons FInt Nil) FUnit); [%eval]
 
 -- Return time in microseconds since some unspecified starting point
 
-utime = mkForeign (FFun "do_utime" Nil FInt) %eval;
+utime = mkForeign (FFun "do_utime" Nil FInt); [%eval]
diff --git a/lib/list.idr b/lib/list.idr
--- a/lib/list.idr
+++ b/lib/list.idr
@@ -66,3 +66,14 @@
 	%qed;
 };
 
+span' : (a -> Bool) -> List a -> List a -> (List a & List a);
+span' p Nil acc         = (rev acc, Nil);
+span' p (Cons x xs) acc = if (p x) then (span' p xs (Cons x acc))
+      	      	      	           else (rev acc, Cons x xs);
+
+span : (a -> Bool) -> List a -> (List a & List a);
+span p xs = span' p xs Nil;
+
+length : List a -> Int;
+length Nil = 0;
+length (Cons x xs) = 1 + length xs;
diff --git a/lib/nat.idr b/lib/nat.idr
--- a/lib/nat.idr
+++ b/lib/nat.idr
@@ -35,9 +35,9 @@
 plus_nO O = (refl O);
 plus_nO (S n) = eq_resp_S (plus_nO n);
 
-plus_nSm : ((plus n (S m)) = (S (plus n m)));
-plus_nSm {n=O} {m} = (refl (S m));
-plus_nSm {n=S k} {m} = eq_resp_S plus_nSm;
+plus_nSm : (m:Nat, n:Nat) -> ((plus n (S m)) = (S (plus n m)));
+plus_nSm m O     = refl (S m);
+plus_nSm m (S k) = eq_resp_S (plus_nSm m k);
 
 plus_comm : (x:Nat, y:Nat) -> (plus x y = plus y x);
 plus_comm proof {
@@ -45,7 +45,7 @@
 	%rewrite <- plus_nO y;
 	%refl;
 	%intro n,ih;
-	%rewrite <- (plus_nSm {n=y} {m=n});
+	%rewrite <- (plus_nSm n y);
 	%rewrite ih;
 	%refl;
 	%qed;
@@ -71,7 +71,7 @@
 mult_nO O = refl _;
 mult_nO (S k) = mult_nO k;
 
-mult_nSm : (n:Nat ,m:Nat) -> ((mult n (S m)) = (plus n (mult n m)));
+mult_nSm : (n:Nat, m:Nat) -> ((mult n (S m)) = (plus n (mult n m)));
 mult_nSm proof {
         %intro;
         %induction n;
@@ -134,3 +134,14 @@
 compare (S n) O = cmpGT _;
 compare O (S m) = cmpLT _;
 compare (S n) (S m) = compareAux (compare n m);
+
+ltNat : Nat -> Nat -> Bool;
+ltNat O (S x) = True;
+ltNat (S x) O = False;
+ltNat O O = False;
+ltNat (S x) (S y) = ltNat x y;
+
+max : Nat -> Nat -> Nat;
+max O n = n;
+max (S n) O = S n;
+max (S n) (S m) = S (max n m);
diff --git a/lib/prelude.idr b/lib/prelude.idr
--- a/lib/prelude.idr
+++ b/lib/prelude.idr
@@ -1,59 +1,103 @@
+-- malloc evaluates an expression using a manual allocator, allocating 'bytes'
+-- Needs to be compiled specially, naturally.
+
+malloc : Int -> a -> a;
+malloc bytes val = val;
+
+%freeze malloc;
+
+-- Used by the 'believe' tactic to make a temporary proof. Programs
+-- using this are not to be trusted! (Or maybe use externally trusted code)
+-- Generate a refl so that __eq_repl can reduce.
+
+__Suspend_Disbelief : (m:A) -> (n:A) -> (n = m);
+__Suspend_Disbelief m n = __Prove_Anything _ _ (refl n);
+
 flip : (a -> b -> c) -> b -> a -> c;
 flip f x y = f y x;
 
-infixl 5 ==, /=;
-infixl 6 <, <=, >, >=;
-infixl 7 <=<, >=>;
-infixl 8 +,-,++;
-infixl 9 *,/;
+infixl 5 ==, /=, ==.;
+infixl 6 <, <=, >, >=, <., <=., >., >=.;
+infixl 7 <<, >>;
+infixl 8 +,-,++,+.,-.;
+infixl 9 *,/,*.,/.;
 
-(+) : Int -> Int -> Int inline;
+-- Integer primitives
+
+(+) : Int -> Int -> Int; [inline]
 (+) x y = __addInt x y;
 
-(-) : Int -> Int -> Int inline;
+(-) : Int -> Int -> Int; [inline]
 (-) x y = __subInt x y;
 
-(*) : Int -> Int -> Int inline;
+(*) : Int -> Int -> Int; [inline]
 (*) x y = __mulInt x y;
 
-(/) : Int -> Int -> Int inline;
+(/) : Int -> Int -> Int; [inline]
 (/) x y = __divInt x y;
 
-(<) : Int -> Int -> Bool inline;
+mod : Int -> Int -> Int; [inline]
+mod x y = __modInt x y;
+
+(<) : Int -> Int -> Bool; [inline]
 (<) x y = __intlt x y;
 
-(<=) : Int -> Int -> Bool inline;
+(<=) : Int -> Int -> Bool; [inline]
 (<=) x y = __intleq x y;
 
-(>) : Int -> Int -> Bool inline;
+(>) : Int -> Int -> Bool; [inline]
 (>) x y = __intgt x y;
 
-(>=) : Int -> Int -> Bool inline;
+(>=) : Int -> Int -> Bool; [inline]
 (>=) x y = __intgeq x y;
 
-(++) : String -> String -> String inline;
-(++) x y = __concat x y;
-
-(==) : Int -> Int -> Bool inline;
+(==) : Int -> Int -> Bool; [inline]
 (==) x y = __eq x y;
 
-(/=) : Int -> Int -> Bool inline;
+(/=) : Int -> Int -> Bool; [inline]
 (/=) x y = not (__eq x y);
 
-(<=<) : Int -> Int -> Int inline;
-(<=<) x y = __shl x y;
+(<<) : Int -> Int -> Int; [inline]
+(<<) x y = __shl x y;
 
-(>=>) : Int -> Int -> Int inline;
-(>=>) x y = __shr x y;
- 
-include "nat.idr";
-include "maybe.idr";
-include "io.idr";
-include "either.idr";
-include "tactics.idr";
-include "vect.idr";
-include "string.idr";
+(>>) : Int -> Int -> Int; [inline]
+(>>) x y = __shr x y;
 
+-- Floating point primitives
+
+(+.) : Float -> Float -> Float; [inline]
+(+.) x y = __addFloat x y;
+
+(-.) : Float -> Float -> Float; [inline]
+(-.) x y = __subFloat x y;
+
+(*.) : Float -> Float -> Float; [inline]
+(*.) x y = __mulFloat x y;
+
+(/.) : Float -> Float -> Float; [inline]
+(/.) x y = __divFloat x y;
+
+(<.) : Float -> Float -> Bool; [inline]
+(<.) x y = __floatlt x y;
+
+(<=.) : Float -> Float -> Bool; [inline]
+(<=.) x y = __floatleq x y;
+
+(>.) : Float -> Float -> Bool; [inline]
+(>.) x y = __floatgt x y;
+
+(>=.) : Float -> Float -> Bool; [inline]
+(>=.) x y = __floatgeq x y;
+
+(==.) : Float -> Float -> Bool; [inline]
+(==.) x y = __feq x y;
+
+-- String primitives
+
+(++) : String -> String -> String; [inline]
+(++) x y = __concat x y;
+
+
 -- Function composition
 
 infixl 9 .;
@@ -61,8 +105,17 @@
 (.) : (b -> c) -> (a -> b) -> a -> c;
 (.) f g x = f (g x);
 
-fst : (a & b) -> a inline;
+fst : (a & b) -> a; [inline]
 fst (x, y) = x;
 
-snd : (a & b) -> b inline;
+snd : (a & b) -> b; [inline]
 snd (x, y) = y;
+
+include "nat.idr";
+include "maybe.idr";
+include "io.idr";
+include "either.idr";
+include "tactics.idr";
+include "vect.idr";
+include "string.idr";
+
diff --git a/lib/state.idr b/lib/state.idr
new file mode 100644
--- /dev/null
+++ b/lib/state.idr
@@ -0,0 +1,29 @@
+namespace State {
+
+  State : Set -> Set -> Set;
+  State s a = s -> (a & s);
+
+  bind : State s a -> (a -> State s b) -> State s b;
+  bind fa k state with fa state {
+     | (av, state') = k av state';
+  }
+
+  ret : a -> State s a;
+  ret av state = (av, state);
+
+  get : State s s;
+  get state = (state, state);
+
+  put : s -> State s ();
+  put state _ = (II, state);
+
+  runState : State s a -> s -> (a & s);
+  runState s init = s init;
+
+  execState : State s a -> s -> s;
+  execState s init = snd (runState s init);
+
+  evalState : State s a -> s -> a;
+  evalState s init = fst (runState s init);
+
+}
diff --git a/lib/string.idr b/lib/string.idr
--- a/lib/string.idr
+++ b/lib/string.idr
@@ -1,23 +1,40 @@
 include "list.idr";
 
-strLen: String -> Int inline;
+strLen: String -> Int; [inline]
 strLen str = __strlen str;
 
-strEq: String -> String -> Bool inline;
+strEq: String -> String -> Bool; [inline]
 strEq s1 s2 = __strEq s1 s2;
 
-concat: String -> String -> String inline;
+charEq : Char -> Char -> Bool; [inline]
+charEq c1 c2 = __charToInt c1 == __charToInt c2;
+
+concat: String -> String -> String; [inline]
 concat s1 s2 = __concat s1 s2;
 
-strNull: String -> Bool inline;
+strNull: String -> Bool; [inline]
 strNull s = strEq s "";
 
-strHead: String -> Maybe Char inline;
+strHead: String -> Maybe Char; [inline]
 strHead s = if (strNull s) then Nothing else (Just (__strHead s));
 
-strTail: String -> Maybe String inline;
+strTail: String -> Maybe String; [inline]
 strTail s = if (strNull s) then Nothing else (Just (__strTail s));
 
+strRev : String -> String; [inline]
+strRev s = __strRev s;
+
+substr : String -> Int -> Int -> String; [inline]
+substr s start len = __substr s start len;
+
+strFind : String -> Char -> Int; [inline]
+strFind s c = __strFind s c;
+
+strSplit : Char -> String -> (String & String);
+strSplit c str = let idx = strFind str c in
+	 if (idx == (-1)) then (str, "") else
+	 (substr str 0 idx, substr str (idx+1) (strLen str - (idx+1)));
+
 -- Some more, faster, string manipulations
 
 strHead' : (x:String) -> (so (not (strNull x))) -> Char;
@@ -26,10 +43,10 @@
 strTail' : (x:String) -> (so (not (strNull x))) -> String;
 strTail' x p = __strTail x;
 
-strCons: Char -> String -> String inline;
+strCons: Char -> String -> String; [inline]
 strCons c s = __strCons c s;
 
-strUncons: String -> Maybe (Char & String) inline;
+strUncons: String -> Maybe (Char & String); [inline]
 strUncons s with (strHead s, strTail s) {
   | (Just h,  Just t)  = Just (h, t);
   | (Nothing, Nothing) = Nothing;
@@ -60,12 +77,12 @@
 };
 
 
-charAt: Int -> String -> Maybe Char inline;
+charAt: Int -> String -> Maybe Char; [inline]
 charAt x str =
   if (strLen str > x && x >= 0) then (Just (__strgetIdx str x))
                                 else Nothing;
 
-showInt: Int -> String inline;
+showInt: Int -> String; [inline]
 showInt x = __toString x;
 
 readInt: String -> Maybe Int;
@@ -83,6 +100,9 @@
   | Nothing = Nothing;
 }
 
+showFloat: Float -> String;
+showFloat n = __floatToString n;
+
 strToList: String -> List Char;
 strToList s with strUncons s {
   | Just (h, t) = Cons h (strToList t);
@@ -97,9 +117,9 @@
 strToVect: String -> (n ** Vect Char n);
 strToVect s with strUncons s {
     | Just (c, cs) with strToVect cs {
-    | <<cs'>> = <<c :: cs'>>;
+    | <| cs' |> = <| c :: cs' |>;
   }
-  | Nothing      = <<VNil>>;
+  | Nothing      = <| VNil |>;
 }
 
 vectToStr: Vect Char n -> String;
@@ -113,3 +133,115 @@
   if      (__strLT s t) then StrLT
   else if (strEq s t)   then StrEQ
   else                       StrGT;
+
+strSpan' : (Char -> Bool) -> String -> String -> (String & String);
+strSpan' p str acc with strM str {
+  strSpan' p "" acc | StrNil 
+         = (strRev acc, "");
+  strSpan' p (strCons c cs) acc | StrCons _ _
+         = if (p c) then (strSpan' p cs (strCons c acc))
+    	      	    else (strRev acc, (strCons c cs));
+}
+
+strSpan : (Char -> Bool) -> String -> (String & String);
+strSpan p str = strSpan' p str "";
+
+-- TODO: A collection of these in a Char library.
+
+isSpace : Char -> Bool;
+isSpace ' ' = True;
+isSpace '\t' = True;
+isSpace '\r' = True;
+isSpace '\n' = True;
+isSpace _ = False;
+
+isNL : Char -> Bool;
+isNL '\r' = True;
+isNL '\n' = True;
+isNL _ = False;
+
+isAlpha : Char -> Bool;
+isAlpha x = let a = __charToInt 'a' in
+            let z = __charToInt 'z' in
+            let A = __charToInt 'A' in
+            let Z = __charToInt 'Z' in
+	    let x' = __charToInt x in
+	    (x' >= a && x' <= z) || (x' >= A && x' <= Z);
+
+isDigit : Char -> Bool;
+isDigit x = let a = __charToInt '0' in
+            let z = __charToInt '9' in
+	    let x' = __charToInt x in
+	    (x' >= a && x' <= z);
+
+words : String -> List String;
+words str with (strSpan (not . isSpace) str) {
+   | ("", "") = Nil;
+   | (word, rest) with choose (strNull rest) {
+       | Left rp with choose (strNull word) {
+         | Left wp = Cons word (words (strTail' rest rp));
+         | Right wp = words (strTail' rest rp);
+         }
+       | Right rp = Cons word Nil;
+   }
+}
+
+lines : String -> List String;
+lines str with (strSpan (not . isNL) str) {
+   | ("", "") = Nil;
+   | (line, rest) with choose (strNull rest) {
+       | Left rp with choose (strNull line) {
+         | Left wp = Cons line (lines (strTail' rest rp));
+         | Right wp = lines (strTail' rest rp);
+         }
+       | Right rp = Cons line Nil;
+   }
+}
+
+-- Generic version of lines/words
+
+splitBy : (Char -> Bool) -> String -> List String;
+splitBy p str with (strSpan (not . p) str) {
+   | ("", "") = Nil;
+   | (word, rest) with choose (strNull rest) {
+       | Left rp with choose (strNull word) {
+         | Left wp = Cons word (splitBy p (strTail' rest rp));
+         | Right wp = splitBy p (strTail' rest rp);
+         }
+       | Right rp = Cons word Nil;
+   }
+}
+
+unlines : List String -> String;
+unlines Nil = "";
+unlines (Cons x xs) = x ++ "\n" ++ unlines xs;
+
+unwords : List String -> String;
+unwords Nil = "";
+unwords (Cons x Nil) = x;
+unwords (Cons x xs) = x ++ " " ++ unwords xs;
+
+trimLeft : String -> String;
+trimLeft str with (strSpan isSpace str) {
+   | (spcs, rest) = rest;
+}
+
+trimRight : String -> String;
+trimRight x = strRev (trimLeft (strRev x));
+
+trim : String -> String;
+trim x = trimLeft (strRev (trimLeft (strRev x)));
+
+mapStr : (Char -> Char) -> String -> String;
+mapStr f str with strM str {
+ mapStr f ""             | StrNil      = "";
+ mapStr f (strCons c cs) | StrCons _ _ = strCons (f c) (mapStr f cs);
+}
+
+toLower : Char -> Char;
+toLower x = let xi = __charToInt x in
+	    let Ai = __charToInt 'A' in
+	    let ai = __charToInt 'a' in
+	    let Zi = __charToInt 'Z' in
+	    if (xi>=Ai && xi<=Zi) then (__intToChar (xi+ai-Ai)) else x;
+
diff --git a/lib/system.idr b/lib/system.idr
--- a/lib/system.idr
+++ b/lib/system.idr
@@ -1,7 +1,18 @@
--- Interaction with the outside world, operating system, etc.
+-- System/OS interaction functions
 
-%include "system_glue.h"
-%lib "system_glue.o"
+namespace System {
 
+  numArgs = mkForeign (FFun "epic_numArgs" [] FInt); [%eval]
+  getArgn = mkForeign (FFun "epic_getArg" [FInt] FStr); [%eval]
 
+  getArgs' : List String -> Int -> IO (List String);
+  getArgs' acc 0 = return acc;
+  getArgs' acc n = do { arg <- getArgn (n-1);
+                        getArgs' (Cons arg acc) (n-1); 
+                      };
 
+  getArgs : IO (List String);
+  getArgs = do { num <- numArgs;
+                 getArgs' [] num; };
+
+}
diff --git a/lib/tactics.idr b/lib/tactics.idr
--- a/lib/tactics.idr
+++ b/lib/tactics.idr
@@ -2,6 +2,8 @@
     TFill : {a:Set} -> a -> Tactic
   | TRefine : String -> Tactic
   | TTrivial : Tactic
+  | TDecide : {a:Set} -> Maybe a -> Tactic
+  | TSearchContext : Tactic
   | TTry : Tactic -> Tactic -> Tactic
   | TSeq : Tactic -> Tactic -> Tactic
   | TThen : Tactic -> Tactic -> Tactic
diff --git a/lib/vect.idr b/lib/vect.idr
--- a/lib/vect.idr
+++ b/lib/vect.idr
@@ -18,6 +18,12 @@
 natToFin O = fO;
 natToFin (S k) = fS (natToFin k);
 
+ltFin : Fin n -> Fin n -> Bool;
+ltFin fO (fS x) = True;
+ltFin (fS x) fO = False;
+ltFin fO fO = False;
+ltFin (fS x) (fS y) = ltFin x y;
+
 vlookup : (Fin k) -> (Vect A k) -> A;
 vlookup fO (x :: xs) = x;
 vlookup (fS k) (x :: xs) = vlookup k xs;
@@ -59,3 +65,7 @@
 isElem eq i x VNil = Nothing;
 isElem eq fO x (y :: xs) = isElemAuxO y (eq x y);
 isElem eq (fS i) x (y :: xs) = mMap later (isElem eq i x xs);
+
+vfoldl : (a -> b -> a) -> a -> (Vect b n) -> a;
+vfoldl f z VNil = z;
+vfoldl f z (x :: xs) = vfoldl f (f z x) xs;
