packages feed

language-javascript 0.2.2 → 0.3.0

raw patch · 11 files changed

+4762/−46 lines, 11 files

Files

README view
@@ -45,6 +45,8 @@  Changes +0.3.0 ECMA-262 edition 5 compliance.  Required adding JSFunctionExpression and JSPropertyAccessor to the AST.+ 0.2.2 Heading toward compliance with edition 5. Trailing commas allowed in array literals too.  0.2.1 Allow trailing comma in object literal
+ dist/build/Language/JavaScript/Parser/Grammar5.hs view
@@ -0,0 +1,3616 @@+{-# OPTIONS_GHC -w #-}+{-# OPTIONS -fglasgow-exts -cpp #-}+module Language.JavaScript.Parser.Grammar5 (+    parseProgram+  , parseLiteral+  , parsePrimaryExpression+  , parseStatement+  ) where++import Control.Monad.Error.Class (throwError)+import Data.Char+import Language.JavaScript.Parser.Lexer+import Language.JavaScript.Parser.ParserMonad+import Language.JavaScript.Parser.SrcLocation+import qualified Language.JavaScript.Parser.AST as AST+import qualified Data.Array as Happy_Data_Array+import qualified GHC.Exts as Happy_GHC_Exts++-- parser produced by Happy Version 1.18.6++newtype HappyAbsSyn  = HappyAbsSyn HappyAny+#if __GLASGOW_HASKELL__ >= 607+type HappyAny = Happy_GHC_Exts.Any+#else+type HappyAny = forall a . a+#endif+happyIn7 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn7 #-}+happyOut7 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut7 #-}+happyIn8 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn8 #-}+happyOut8 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut8 #-}+happyIn9 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn9 #-}+happyOut9 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut9 #-}+happyIn10 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn10 #-}+happyOut10 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut10 #-}+happyIn11 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn11 #-}+happyOut11 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut11 #-}+happyIn12 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn12 #-}+happyOut12 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut12 #-}+happyIn13 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn13 #-}+happyOut13 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut13 #-}+happyIn14 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn14 #-}+happyOut14 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut14 #-}+happyIn15 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn15 #-}+happyOut15 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut15 #-}+happyIn16 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn16 #-}+happyOut16 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut16 #-}+happyIn17 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn17 #-}+happyOut17 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut17 #-}+happyIn18 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn18 #-}+happyOut18 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut18 #-}+happyIn19 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn19 #-}+happyOut19 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut19 #-}+happyIn20 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn20 #-}+happyOut20 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut20 #-}+happyIn21 :: ([ AST.JSNode ]) -> (HappyAbsSyn )+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn21 #-}+happyOut21 :: (HappyAbsSyn ) -> ([ AST.JSNode ])+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut21 #-}+happyIn22 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyIn24 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn24 #-}+happyOut24 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut24 #-}+happyIn25 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn25 #-}+happyOut25 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut25 #-}+happyIn26 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn26 #-}+happyOut26 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut26 #-}+happyIn27 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn27 #-}+happyOut27 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut27 #-}+happyIn28 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn28 #-}+happyOut28 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut28 #-}+happyIn29 :: ([[AST.JSNode]]) -> (HappyAbsSyn )+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn ) -> ([[AST.JSNode]])+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut29 #-}+happyIn30 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut30 #-}+happyIn31 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut31 #-}+happyIn32 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut32 #-}+happyIn33 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn33 #-}+happyOut33 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut33 #-}+happyIn34 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut34 #-}+happyIn35 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut35 #-}+happyIn36 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn36 #-}+happyOut36 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut36 #-}+happyIn37 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut37 #-}+happyIn38 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn38 #-}+happyOut38 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut38 #-}+happyIn39 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut39 #-}+happyIn40 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut40 #-}+happyIn41 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut41 #-}+happyIn42 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut42 #-}+happyIn43 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut43 #-}+happyIn44 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut44 #-}+happyIn45 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut45 #-}+happyIn46 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut46 #-}+happyIn47 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut47 #-}+happyIn48 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut48 #-}+happyIn49 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut49 #-}+happyIn50 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut50 #-}+happyIn51 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut51 #-}+happyIn52 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut52 #-}+happyIn53 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut53 #-}+happyIn54 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut54 #-}+happyIn55 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut55 #-}+happyIn56 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn56 #-}+happyOut56 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut56 #-}+happyIn57 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn57 #-}+happyOut57 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut57 #-}+happyIn58 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn58 #-}+happyOut58 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut58 #-}+happyIn59 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn59 #-}+happyOut59 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut59 #-}+happyIn60 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn60 #-}+happyOut60 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut60 #-}+happyIn61 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn61 #-}+happyOut61 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut61 #-}+happyIn62 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn62 #-}+happyOut62 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut62 #-}+happyIn63 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn63 #-}+happyOut63 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut63 #-}+happyIn64 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn64 #-}+happyOut64 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut64 #-}+happyIn65 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn65 #-}+happyOut65 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut65 #-}+happyIn66 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn66 #-}+happyOut66 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut66 #-}+happyIn67 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn67 #-}+happyOut67 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut67 #-}+happyIn68 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn68 #-}+happyOut68 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut68 #-}+happyIn69 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn69 #-}+happyOut69 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut69 #-}+happyIn70 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn70 #-}+happyOut70 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut70 #-}+happyIn71 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn71 #-}+happyOut71 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut71 #-}+happyIn72 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn72 #-}+happyOut72 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut72 #-}+happyIn73 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn73 #-}+happyOut73 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut73 #-}+happyIn74 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn74 #-}+happyOut74 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut74 #-}+happyIn75 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn75 #-}+happyOut75 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut75 #-}+happyIn76 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn76 #-}+happyOut76 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut76 #-}+happyIn77 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn77 #-}+happyOut77 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut77 #-}+happyIn78 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn78 #-}+happyOut78 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut78 #-}+happyIn79 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn79 #-}+happyOut79 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut79 #-}+happyIn80 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn80 #-}+happyOut80 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut80 #-}+happyIn81 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn81 #-}+happyOut81 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut81 #-}+happyIn82 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn82 #-}+happyOut82 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut82 #-}+happyIn83 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn83 #-}+happyOut83 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut83 #-}+happyIn84 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn84 #-}+happyOut84 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut84 #-}+happyIn85 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn85 #-}+happyOut85 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut85 #-}+happyIn86 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn86 #-}+happyOut86 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut86 #-}+happyIn87 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn87 #-}+happyOut87 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut87 #-}+happyIn88 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn88 #-}+happyOut88 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut88 #-}+happyIn89 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn89 #-}+happyOut89 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut89 #-}+happyIn90 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn90 #-}+happyOut90 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut90 #-}+happyIn91 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn91 #-}+happyOut91 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut91 #-}+happyIn92 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn92 #-}+happyOut92 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut92 #-}+happyIn93 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn93 #-}+happyOut93 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut93 #-}+happyIn94 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn94 #-}+happyOut94 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut94 #-}+happyIn95 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn95 #-}+happyOut95 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut95 #-}+happyIn96 :: ([AST.JSNode]) -> (HappyAbsSyn )+happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn96 #-}+happyOut96 :: (HappyAbsSyn ) -> ([AST.JSNode])+happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut96 #-}+happyIn97 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn97 #-}+happyOut97 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut97 #-}+happyIn98 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn98 #-}+happyOut98 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut98 #-}+happyIn99 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn99 #-}+happyOut99 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut99 #-}+happyIn100 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn100 #-}+happyOut100 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut100 #-}+happyIn101 :: (AST.JSNode) -> (HappyAbsSyn )+happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn101 #-}+happyOut101 :: (HappyAbsSyn ) -> (AST.JSNode)+happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut101 #-}+happyInTok :: (Token) -> (HappyAbsSyn )+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn ) -> (Token)+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\x2d\x1b\xa4\x02\x9e\x1d\xf6\x1a\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x00\x00\x00\x00\x4f\x01\x00\x00\x49\x01\x1d\x00\xcc\x01\x00\x00\xee\x00\xb9\x01\xe9\x00\xab\x03\x9d\x01\x77\x02\x70\x02\x6b\x02\x6a\x02\x13\x01\x00\x00\x00\x00\x6f\x02\x25\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\xc1\x1c\x16\x18\x66\x1d\x37\x00\x65\x00\x37\x00\x6e\x02\x66\x1d\xf6\x1a\x00\x00\x49\x02\x65\x00\x00\x00\x48\x02\x82\x1d\x00\x00\x64\x1b\x00\x00\x44\x02\x00\x00\x66\x1d\x00\x00\x41\x02\x66\x1d\x65\x00\x66\x1d\x43\x02\x40\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x02\x00\x00\xf1\x1d\x17\x02\x00\x00\x00\x00\x17\x02\xbf\x1a\x00\x00\x65\x00\x3d\x02\x37\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x5b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x1d\x66\x1d\x00\x00\x00\x00\x51\x02\xca\x01\x00\x00\x00\x00\xfc\xff\x3e\x19\x57\x02\x66\x1d\x00\x00\xc5\x01\x07\x01\x00\x00\x66\x1d\x00\x00\x2f\x1d\x11\x02\x00\x00\x00\x00\x00\x00\x54\x02\xc3\x01\x00\x00\x54\x02\xcb\x00\x4f\x02\x47\x02\x46\x02\x00\x00\x07\x19\xca\x17\xd0\x18\x65\x00\xd0\x18\x99\x18\x66\x1d\x88\x1a\x42\x02\x21\x02\xaf\x00\x20\x02\x82\x1d\x3f\x02\x62\x18\x1d\x02\x3c\x02\x66\x1d\x3a\x02\x12\x02\x66\x1d\x65\x00\x66\x1d\x0e\x02\x0c\x02\x7b\x00\x8a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x00\x00\x00\x00\x66\x1d\x00\x00\x00\x00\x00\x00\x19\x1e\x66\x1d\xf8\x1c\x00\x00\x19\x1e\x66\x1d\x88\x1a\x00\x00\x2b\x00\x00\x00\x7d\x17\x2e\x17\xca\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x00\xee\x00\xa4\x01\xa4\x01\xa4\x01\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xab\x03\xab\x03\xab\x03\xab\x03\x9d\x01\x26\x02\x22\x02\x24\x02\x23\x02\x1f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x53\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x01\x02\x06\x00\xe9\x00\x39\x03\x7a\x01\x1b\x02\x1a\x02\x13\x02\x15\x02\x0c\x01\x00\x00\x00\x00\x14\x02\x10\x02\x65\x00\xc6\x00\x00\x00\x00\x00\xb6\x00\xdf\x16\x00\x00\xfc\xff\x00\x00\x00\x00\xf1\x01\xf2\x01\x00\x00\x00\x00\x66\x1d\xa9\x00\xa1\x00\xef\x01\xee\x01\x66\x1d\xc8\x1d\x00\x00\xb8\x00\x74\x00\x00\x00\x8e\x00\xed\x01\x69\x00\xec\x01\x00\x00\x00\x00\x00\x00\xe4\x01\x65\x00\x88\x1a\x88\x1a\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\xe1\x01\x51\x1a\xfe\x01\xaf\x01\xce\x01\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x66\x1d\x00\x00\x1c\x1c\x00\x00\x00\x00\x66\x1d\x00\x00\x66\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x14\x00\x1d\x00\x00\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xe9\x00\xab\x03\xab\x03\xab\x03\xab\x03\x7a\x01\xff\x01\xfd\x01\xfa\x01\xf7\x01\xfb\x01\x00\x00\xf9\x01\xf8\x01\x66\x1d\x66\x1d\x65\x00\x00\x00\x66\x1d\xf6\x01\xbc\x01\x00\x00\x00\x00\xcd\x01\x75\x00\x00\x00\xe6\x01\x00\x00\xc0\x01\xcb\x01\x1a\x1a\x65\x00\xc6\x01\x1a\x1a\xc4\x01\x1a\x1a\xb1\x01\x1a\x1a\x00\x00\x1a\x1a\x00\x00\xaa\x01\x1a\x1a\xbe\x01\x00\x00\xb4\x01\x66\x1d\xe8\x00\x00\x00\x66\x1d\x00\x00\xe3\x19\x00\x00\x00\x00\x00\x00\xab\x01\x0e\x00\x66\x1d\x66\x1d\xe3\x19\xa0\x01\x00\x00\x00\x00\x00\x00\x80\x01\xe3\x19\x66\x1d\x00\x00\x2e\x00\x00\x00\x7b\x01\x00\x00\x99\x01\x5d\x01\x00\x00\xac\x19\x7c\x01\x00\x00\x78\x01\x00\x00\x00\x00\x76\x01\x00\x00\x00\x00\x00\x00\x74\x01\x56\x01\x75\x19\xd1\x00\x75\x19\x51\x01\x00\x00\x75\x19\x00\x00\x75\x19\x75\x19\x00\x00\x75\x19\x00\x00\x00\x00\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\x35\x02\xb2\x01\xcc\x17\x48\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x01\x00\x00\x4a\x01\x1d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x16\x9c\x16\x80\x16\x61\x16\x45\x16\x29\x16\xf4\x0a\x81\x03\xc7\x0d\xe1\x00\x8f\x00\xdf\x00\x47\x01\x0a\x16\xf1\x08\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\xd7\x16\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x96\x0d\x00\x00\x0e\x01\xee\x15\x51\x00\xd2\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x09\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x0d\x34\x0d\x00\x00\x00\x00\x05\x01\x41\x01\x00\x00\x00\x00\x06\x01\x86\x04\x00\x00\x03\x0d\x00\x00\x3f\x01\x28\x01\x00\x00\xd2\x0c\x00\x00\xc1\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x01\x39\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x08\x00\x00\xb2\x00\x4d\x00\x96\x00\x24\x01\xb3\x15\x43\x08\x00\x00\x00\x00\x02\x00\x00\x00\xd7\x16\x00\x00\x50\x03\x00\x00\x00\x00\xa1\x0c\x00\x00\xe3\x00\x97\x15\x47\x00\x7b\x15\x00\x00\x00\x00\x00\x00\x48\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x10\xee\x0f\xcc\x10\x23\x11\x7a\x11\xc8\x11\x0e\x12\x12\x13\xf0\x12\xd1\x12\xaf\x12\x76\x14\x57\x14\x35\x14\x16\x14\xf4\x13\xd5\x13\xcd\x14\xae\x14\x92\x14\x05\x15\xe9\x14\x5c\x15\x40\x15\x24\x15\x00\x00\x00\x00\xc1\x0f\x00\x00\x00\x00\x00\x00\x86\x01\x70\x0c\x43\x0c\x00\x00\x5e\x01\x12\x0c\xec\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\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\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x07\x00\x00\x36\x01\x00\x00\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x94\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x0f\xde\x16\x00\x00\x0f\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x3e\x07\xe7\x06\x00\x00\x00\x00\xdb\x00\x00\x00\x00\x00\x00\x00\x87\x00\x9f\x09\x78\x00\x00\x00\x00\x00\x8f\x0a\x38\x0f\x0a\x0f\xa0\x10\xf7\x10\x4e\x11\xa5\x11\xeb\x11\x90\x12\x6e\x12\x4f\x12\x2d\x12\xb3\x13\x94\x13\x72\x13\x53\x13\x31\x13\xdc\x0e\xb4\x0b\x83\x0b\x00\x00\xae\x0e\x00\x00\x00\x00\x81\x0e\x00\x00\x54\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x0b\x5c\x0a\x07\x00\x00\x00\x25\x0e\x00\x00\x0a\x00\x00\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x85\x00\x00\x00\x00\x00\x00\x00\xd7\x01\x34\x00\x00\x00\x79\x01\x00\x00\x1b\x01\x00\x00\x93\x02\x00\x00\xbd\x00\x00\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x08\x00\x75\x10\xdc\x00\x00\x00\x21\x0b\x00\x00\x90\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x0a\xf7\x0d\x39\x06\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x05\xf6\x09\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\xff\x2f\x04\xb4\xff\xd8\x03\x00\x00\x00\x00\x8b\x05\x00\x00\x34\x05\xdd\x04\x00\x00\xdd\x04\x00\x00\x00\x00\x00\x00\x00\x00"#++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xeb\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xaa\xff\xec\xff\xea\xff\xe9\xff\xa5\xff\x9b\xff\x9a\xff\x99\xff\x96\xff\x8c\xff\x86\xff\x82\xff\x81\xff\x74\xff\x6a\xff\x66\xff\x62\xff\x5e\xff\x5a\xff\x56\xff\x52\xff\x4c\xff\x21\xff\x00\x00\x44\xff\x42\xff\x41\xff\x43\xff\x40\xff\x3f\xff\x3e\xff\x3d\xff\x3c\xff\x3b\xff\x3a\xff\x38\xff\x39\xff\x37\xff\x36\xff\x35\xff\xa9\xff\x22\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\x00\x00\x00\x00\xf2\xff\x00\x00\xf3\xfe\xe6\xff\x00\x00\x00\x00\xf4\xff\xfa\xff\xe5\xff\x00\x00\xed\xff\x00\x00\xf3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\xf1\xff\xf0\xff\xef\xff\xee\xff\x00\x00\xec\xff\x00\x00\x00\x00\xe9\xfe\xe8\xfe\x00\x00\xee\xfe\xeb\xfe\xf3\xfe\x00\x00\x00\x00\xea\xfe\xac\xff\xad\xff\xe4\xff\xae\xff\x00\x00\xb3\xff\x00\x00\xb6\xff\xe3\xff\xe2\xff\xe1\xff\xe0\xff\xdf\xff\xde\xff\xdd\xff\xdc\xff\xdb\xff\xda\xff\xd9\xff\xd8\xff\xd7\xff\xd6\xff\xd5\xff\xe6\xff\xd3\xff\xd2\xff\xd1\xff\xd0\xff\xcf\xff\xce\xff\xe5\xff\xcc\xff\xcb\xff\xca\xff\xc9\xff\xc8\xff\xc7\xff\xc6\xff\xc5\xff\xc4\xff\xc3\xff\xc2\xff\x00\x00\x00\x00\x99\xff\x94\xff\x28\xff\xfa\xff\x2c\xff\x93\xff\x00\x00\x00\x00\x02\xff\x00\x00\x10\xff\xfa\xff\xa5\xff\xa4\xff\x00\x00\xf4\xfe\x45\xff\x00\x00\x95\xff\xf9\xfe\x14\xff\xfa\xff\xfa\xff\x12\xff\xfa\xff\x00\x00\xf7\xff\xf6\xff\xec\xff\x30\xff\x00\x00\xb6\xff\xe3\xff\xe0\xff\xdf\xff\xde\xff\xdc\xff\xdb\xff\xf2\xff\xd6\xff\xd5\xff\xd3\xff\xd0\xff\xf4\xff\xce\xff\xcc\xff\xed\xff\xca\xff\xf3\xff\xc8\xff\xc7\xff\xc6\xff\xc5\xff\xc4\xff\xc3\xff\x00\x00\x00\x00\xbb\xff\xb8\xff\xc1\xff\x8e\xff\x8d\xff\x8f\xff\x90\xff\x91\xff\x92\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\x97\xff\x00\x00\x4d\xff\x4e\xff\xa2\xff\x00\x00\x00\x00\x00\x00\xa3\xff\x00\x00\x00\x00\x00\x00\x03\xff\x00\x00\xa7\xff\xd4\xff\xcd\xff\x00\x00\x9d\xff\x9f\xff\x00\x00\xa0\xff\x51\xff\x89\xff\x8a\xff\x8b\xff\x87\xff\x88\xff\x84\xff\x83\xff\x85\xff\x7c\xff\x7b\xff\x7f\xff\x7d\xff\x80\xff\x7e\xff\x72\xff\x70\xff\x73\xff\x71\xff\x69\xff\x65\xff\x61\xff\x5d\xff\x59\xff\x00\x00\x4b\xff\xbc\xff\xb7\xff\xc0\xff\x00\x00\xbf\xff\x2f\xff\x33\xff\xe8\xff\x11\xff\x2d\xff\x00\x00\x13\xff\x00\x00\x99\xff\x7a\xff\x6f\xff\x68\xff\x64\xff\x60\xff\x5c\xff\x58\xff\x54\xff\x50\xff\x4a\xff\x46\xff\x00\x00\x00\x00\x00\x00\xa6\xff\x0f\xff\x00\x00\x00\x00\x32\xff\x01\xff\xfe\xfe\x00\xff\x00\x00\x00\x00\x2e\xff\x27\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\x00\x00\xf2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xb2\xff\xb4\xff\xb1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x24\xff\xfa\xfe\x00\x00\xfd\xfe\xff\xfe\x31\xff\x00\x00\x00\x00\x25\xff\x00\x00\x2a\xff\x47\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\xff\x00\x00\xb9\xff\xbd\xff\x00\x00\xa1\xff\x00\x00\x9e\xff\xa8\xff\x9c\xff\x55\xff\xba\xff\xbe\xff\x00\x00\x00\x00\x99\xff\x4f\xff\x75\xff\x78\xff\x76\xff\x79\xff\x77\xff\x6d\xff\x6b\xff\x6e\xff\x6c\xff\x67\xff\x63\xff\x5f\xff\x5b\xff\x57\xff\x00\x00\x49\xff\x48\xff\x00\x00\x00\x00\x47\xff\x00\x00\x26\xff\x00\x00\x1c\xff\x1e\xff\x1b\xff\x0d\xff\x08\xff\x00\x00\x19\xff\xfa\xff\xab\xff\x00\x00\x00\x00\xef\xfe\x00\x00\x00\x00\xef\xfe\x00\x00\xef\xfe\x00\x00\xf0\xfe\xed\xfe\xef\xfe\xf1\xfe\x00\x00\xef\xfe\x00\x00\x0e\xff\x00\x00\x00\x00\x00\x00\x0a\xff\x00\x00\x20\xff\x00\x00\x1d\xff\x23\xff\x29\xff\x00\x00\x00\x00\x47\xff\x00\x00\x00\x00\xfa\xff\x1a\xff\x16\xff\x53\xff\x00\x00\x00\x00\x47\xff\x1f\xff\x00\x00\x09\xff\x08\xff\x0c\xff\x00\x00\x00\x00\xfc\xfe\xef\xfe\x00\x00\xf6\xfe\x00\x00\xec\xfe\xf7\xfe\x00\x00\xf8\xfe\xf5\xfe\xb0\xff\x00\x00\x00\x00\x05\xff\x00\x00\x06\xff\x00\x00\x15\xff\x00\x00\x18\xff\x00\x00\x07\xff\x0b\xff\x04\xff\xfb\xfe\xaf\xff\x17\xff"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x4d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x08\x00\x0a\x00\x08\x00\x08\x00\x0d\x00\x08\x00\x02\x00\x08\x00\x0c\x00\x12\x00\x13\x00\x14\x00\x02\x00\x08\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x08\x00\x1f\x00\x02\x00\x21\x00\x37\x00\x23\x00\x29\x00\x25\x00\x00\x00\x27\x00\x0c\x00\x29\x00\x02\x00\x2b\x00\x02\x00\x2d\x00\x33\x00\x02\x00\x30\x00\x04\x00\x25\x00\x08\x00\x34\x00\x35\x00\x36\x00\x01\x00\x25\x00\x39\x00\x08\x00\x08\x00\x11\x00\x38\x00\x37\x00\x21\x00\x40\x00\x41\x00\x42\x00\x3d\x00\x3c\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x21\x00\x43\x00\x25\x00\x08\x00\x4f\x00\x50\x00\x51\x00\x4d\x00\x02\x00\x08\x00\x55\x00\x56\x00\x57\x00\x08\x00\x58\x00\x5a\x00\x58\x00\x5c\x00\x59\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x59\x00\x0a\x00\x4d\x00\x02\x00\x0d\x00\x36\x00\x3b\x00\x58\x00\x3d\x00\x12\x00\x13\x00\x14\x00\x3d\x00\x23\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x02\x00\x1f\x00\x48\x00\x21\x00\x3a\x00\x23\x00\x3c\x00\x25\x00\x00\x00\x27\x00\x3a\x00\x29\x00\x3c\x00\x2b\x00\x3a\x00\x2d\x00\x3c\x00\x25\x00\x30\x00\x02\x00\x4c\x00\x4d\x00\x34\x00\x35\x00\x36\x00\x00\x00\x08\x00\x39\x00\x25\x00\x25\x00\x36\x00\x21\x00\x2f\x00\x08\x00\x40\x00\x41\x00\x42\x00\x3d\x00\x02\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x02\x00\x37\x00\x48\x00\x4f\x00\x50\x00\x51\x00\x3d\x00\x00\x00\x25\x00\x55\x00\x56\x00\x57\x00\x3f\x00\x02\x00\x5a\x00\x08\x00\x5c\x00\x48\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x25\x00\x0a\x00\x02\x00\x3a\x00\x0d\x00\x3c\x00\x02\x00\x02\x00\x25\x00\x12\x00\x13\x00\x14\x00\x4b\x00\x24\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x25\x00\x1f\x00\x25\x00\x21\x00\x00\x00\x23\x00\x00\x00\x25\x00\x08\x00\x27\x00\x36\x00\x29\x00\x08\x00\x2b\x00\x08\x00\x2d\x00\x25\x00\x3d\x00\x30\x00\x36\x00\x25\x00\x25\x00\x34\x00\x35\x00\x36\x00\x23\x00\x3d\x00\x39\x00\x48\x00\x0f\x00\x28\x00\x37\x00\x12\x00\x13\x00\x40\x00\x41\x00\x42\x00\x48\x00\x2f\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x1a\x00\x1b\x00\x1c\x00\x23\x00\x4f\x00\x50\x00\x51\x00\x03\x00\x28\x00\x05\x00\x55\x00\x56\x00\x57\x00\x2d\x00\x03\x00\x5a\x00\x05\x00\x5c\x00\x37\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x00\x00\x0a\x00\x1f\x00\x20\x00\x0d\x00\x4d\x00\x4e\x00\x24\x00\x00\x00\x12\x00\x13\x00\x14\x00\x4c\x00\x4d\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x00\x00\x1f\x00\x00\x00\x21\x00\x15\x00\x23\x00\x00\x00\x25\x00\x00\x00\x27\x00\x3e\x00\x29\x00\x37\x00\x2b\x00\x00\x00\x2d\x00\x04\x00\x05\x00\x30\x00\x2f\x00\x08\x00\x09\x00\x34\x00\x35\x00\x36\x00\x04\x00\x05\x00\x39\x00\x10\x00\x08\x00\x09\x00\x52\x00\x53\x00\x54\x00\x40\x00\x41\x00\x42\x00\x10\x00\x15\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x08\x00\x09\x00\x1f\x00\x20\x00\x4f\x00\x50\x00\x51\x00\x24\x00\x1f\x00\x20\x00\x55\x00\x56\x00\x57\x00\x24\x00\x15\x00\x5a\x00\x25\x00\x5c\x00\x22\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x25\x00\x0a\x00\x0a\x00\x0b\x00\x0d\x00\x0d\x00\x0e\x00\x53\x00\x54\x00\x12\x00\x13\x00\x14\x00\x08\x00\x09\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x23\x00\x1f\x00\x23\x00\x21\x00\x23\x00\x23\x00\x04\x00\x25\x00\x23\x00\x27\x00\x01\x00\x29\x00\x28\x00\x2b\x00\x25\x00\x2d\x00\x0a\x00\x0b\x00\x30\x00\x0d\x00\x0e\x00\x01\x00\x34\x00\x35\x00\x36\x00\x01\x00\x02\x00\x39\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x40\x00\x41\x00\x42\x00\x18\x00\x19\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x01\x00\x02\x00\x01\x00\x02\x00\x4f\x00\x50\x00\x51\x00\x01\x00\x02\x00\x23\x00\x55\x00\x56\x00\x57\x00\x18\x00\x19\x00\x5a\x00\x23\x00\x5c\x00\x22\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x22\x00\x0a\x00\x16\x00\x17\x00\x0d\x00\x25\x00\x22\x00\x01\x00\x22\x00\x12\x00\x13\x00\x14\x00\x30\x00\x22\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x28\x00\x1f\x00\x01\x00\x21\x00\x01\x00\x23\x00\x02\x00\x25\x00\x06\x00\x27\x00\x04\x00\x29\x00\x07\x00\x2b\x00\x22\x00\x2d\x00\x08\x00\x38\x00\x30\x00\x09\x00\x25\x00\x0c\x00\x34\x00\x35\x00\x36\x00\x22\x00\x22\x00\x39\x00\x01\x00\x24\x00\x24\x00\x22\x00\x24\x00\x02\x00\x40\x00\x41\x00\x42\x00\x07\x00\x06\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x08\x00\x04\x00\x09\x00\x24\x00\x4f\x00\x50\x00\x51\x00\x06\x00\x08\x00\x07\x00\x55\x00\x56\x00\x57\x00\x09\x00\x24\x00\x5a\x00\x24\x00\x5c\x00\x22\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x04\x00\x0a\x00\x04\x00\x24\x00\x0d\x00\x04\x00\x24\x00\x24\x00\x04\x00\x12\x00\x13\x00\x14\x00\x04\x00\x04\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x04\x00\x1f\x00\x01\x00\x21\x00\x46\x00\x23\x00\x02\x00\x25\x00\x24\x00\x27\x00\x0c\x00\x29\x00\x04\x00\x2b\x00\x24\x00\x2d\x00\x22\x00\x24\x00\x30\x00\x4f\x00\x24\x00\x24\x00\x34\x00\x35\x00\x36\x00\x24\x00\x24\x00\x39\x00\x01\x00\x06\x00\x02\x00\x07\x00\x01\x00\x4f\x00\x40\x00\x41\x00\x42\x00\x08\x00\x04\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x09\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x32\x00\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\x3b\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x41\x00\xff\xff\xff\xff\x55\x00\x56\x00\x57\x00\xff\xff\xff\xff\x49\x00\x4a\x00\x4b\x00\x4c\x00\x5e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\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\x57\x00\x10\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x5e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\x39\x00\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\x10\x00\x11\x00\xff\xff\xff\xff\x14\x00\x15\x00\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\x38\x00\x39\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\xff\xff\xff\xff\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x04\x00\x05\x00\x35\x00\x36\x00\x08\x00\x09\x00\x39\x00\xff\xff\xff\xff\xff\xff\x0e\x00\x0f\x00\x10\x00\xff\xff\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\xff\xff\xff\xff\xff\xff\x55\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x32\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\x57\x00\x26\x00\xff\xff\x28\x00\xff\xff\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x57\x00\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\x57\x00\x27\x00\xff\xff\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\x57\x00\x28\x00\xff\xff\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\x57\x00\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\x57\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\x2e\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\x57\x00\x29\x00\xff\xff\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\xff\xff\x2d\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\x29\x00\x57\x00\x2b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x57\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\x57\x00\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\x1e\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\x57\x00\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x57\x00\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\x57\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x01\x00\x0a\x00\x04\x00\x05\x00\x0d\x00\xff\xff\x08\x00\x09\x00\xff\xff\x12\x00\x13\x00\xff\xff\xff\xff\x0f\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\x57\x00\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\xff\xff\x57\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\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\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\xff\xff\x4f\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\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\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x01\x00\x4f\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x01\x00\xff\xff\x4f\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x01\x00\x4e\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\x01\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\x00\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x04\x00\xff\xff\x4e\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\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x02\x00\xff\xff\x4e\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\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\x02\x00\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\x02\x00\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\x02\x00\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\x21\x00\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\x43\x00\x44\x00\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x1e\x00\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x20\x00\x3d\x00\x22\x00\x3f\x00\x24\x00\x41\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\x32\x00\xff\xff\xff\xff\x35\x00\x36\x00\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x20\x00\x3d\x00\x22\x00\x3f\x00\x24\x00\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\xff\xff\x3d\x00\xff\xff\x3f\x00\xff\xff\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x23\x00\xff\xff\xff\xff\xff\xff\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x23\x00\xff\xff\x4e\x00\xff\xff\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\xff\xff\xff\xff\x4e\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\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"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\xd9\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xa5\x00\x0e\x00\x67\x00\x54\x01\x0f\x00\x68\x01\xd9\x00\x98\x00\xf5\x00\x10\x00\x11\x00\x12\x00\xd9\x00\x54\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xa5\x00\x1a\x00\xd9\x00\x1b\x00\xf6\x01\x1c\x00\x47\x01\x1d\x00\xd1\x01\x1e\x00\xf5\x00\x1f\x00\xd9\x00\x20\x00\xd9\x00\x21\x00\x48\x01\xd9\x00\x22\x00\xee\x01\xd6\x01\xaf\x01\x61\x00\x24\x00\x25\x00\x06\x00\xd0\x01\x26\x00\x68\x01\xbc\x01\xb0\x01\x7e\x01\xde\x01\x85\x01\x27\x00\x28\x00\x29\x00\xca\x01\x7f\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x88\x01\xc6\x01\xd1\x01\x98\x00\x30\x00\x31\x00\x32\x00\xf6\x00\x51\x01\x98\x00\x33\x00\x62\x00\x34\x00\x98\x00\x68\x00\xe9\x01\x68\x00\xb9\x01\x55\x01\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x57\x01\x0e\x00\xf6\x00\xb4\x01\x0f\x00\x49\x00\x69\x01\x68\x00\x6a\x01\x10\x00\x11\x00\x12\x00\x4e\x00\x52\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x26\x01\x1a\x00\x59\x00\x1b\x00\x99\x00\x1c\x00\x9a\x00\x1d\x00\xc0\x01\x1e\x00\xac\x00\x1f\x00\x9a\x00\x20\x00\x99\x00\x21\x00\x9a\x00\xb5\x01\x22\x00\xb4\x01\xec\x01\xc4\x01\x61\x00\x24\x00\x25\x00\xaa\x00\x98\x00\x26\x00\x57\x01\xc2\x01\x49\x00\x27\x01\x7c\x01\xab\x00\x27\x00\x28\x00\x29\x00\x4e\x00\xd9\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x49\x00\xd9\x00\xc3\x01\x59\x00\x30\x00\x31\x00\x32\x00\x4e\x00\xad\x00\xb7\x01\x33\x00\x62\x00\x34\x00\xa5\x01\xd9\x00\xe0\x01\xae\x00\xb9\x01\x59\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x5f\x01\x0e\x00\xd9\x00\xac\x00\x0f\x00\x9a\x00\x86\x01\xd9\x00\x60\x01\x10\x00\x11\x00\x12\x00\xaa\x01\xf3\xfe\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x67\x01\x1a\x00\x59\x01\x1b\x00\xaa\x00\x1c\x00\xad\x00\x1d\x00\xac\x01\x1e\x00\x49\x00\x1f\x00\xab\x00\x20\x00\xae\x00\x21\x00\x68\x01\x4e\x00\x22\x00\x49\x00\x87\x01\x2a\x01\x61\x00\x24\x00\x25\x00\xf5\x01\x4e\x00\x26\x00\x59\x00\xea\x00\xc6\x01\x61\x01\xeb\x00\xec\x00\x27\x00\x28\x00\x29\x00\x59\x00\x7c\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xef\x00\xf0\x00\xf1\x00\xdc\x01\x30\x00\x31\x00\x32\x00\x6e\x01\xc6\x01\x6f\x01\x33\x00\x62\x00\x34\x00\xdd\x01\xda\x00\xe2\x01\xdb\x00\xb9\x01\x9c\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xa9\x00\x0e\x00\xfc\x00\xfd\x00\x0f\x00\xd9\x01\xda\x01\xfa\x00\x2a\x01\x10\x00\x11\x00\x12\x00\xc3\x01\xc4\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x2b\x01\x1a\x00\x2d\x01\x1b\x00\x3e\x01\x1c\x00\x3f\x01\x1d\x00\x48\x01\x1e\x00\x49\x01\x1f\x00\x9c\x00\x20\x00\xa9\x00\x21\x00\x6a\x00\x6b\x00\x22\x00\xf3\x00\x6c\x00\x6d\x00\x61\x00\x24\x00\x25\x00\x6a\x00\x6b\x00\x26\x00\x4d\x01\x6c\x00\x6d\x00\x43\x01\x44\x01\x45\x01\x27\x00\x28\x00\x29\x00\x4e\x01\xf6\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x6c\x00\x00\x01\xf8\x00\xf9\x00\x30\x00\x31\x00\x32\x00\xfa\x00\xfc\x00\xfd\x00\x33\x00\x62\x00\x34\x00\xfa\x00\xfa\x00\xe5\x01\xf3\x01\xb9\x01\x9e\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xeb\x01\x0e\x00\x74\x01\x75\x01\x0f\x00\x76\x01\x77\x01\x63\x01\x64\x01\x10\x00\x11\x00\x12\x00\x6c\x00\x07\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xf8\x01\x1a\x00\xe7\x01\x1b\x00\xe8\x01\x1c\x00\xec\x01\x1d\x00\xe9\x01\x1e\x00\x06\x00\x1f\x00\xc6\x01\x20\x00\xf1\x01\x21\x00\xe0\x00\xe1\x00\x22\x00\xe2\x00\xe3\x00\xd7\x01\x61\x00\x24\x00\x25\x00\xa4\x01\xa5\x01\x26\x00\x60\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x27\x00\x28\x00\x29\x00\xed\x00\xee\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x06\x00\x2d\x01\x06\x00\xd9\x00\x30\x00\x31\x00\x32\x00\x06\x00\x2d\x01\xe2\x01\x33\x00\x62\x00\x34\x00\xed\x00\xee\x00\xb8\x01\xe5\x01\xb9\x01\x9e\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xe0\x01\x0e\x00\xf2\x00\xf3\x00\x0f\x00\xc0\x01\xb8\x01\x06\x00\xbc\x01\x10\x00\x11\x00\x12\x00\xc8\x01\xbf\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xc6\x01\x1a\x00\xc9\x01\x1b\x00\xce\x01\x1c\x00\xd9\x00\x1d\x00\x70\x01\x1e\x00\xcf\x01\x1f\x00\x71\x01\x20\x00\xac\x01\x21\x00\x72\x01\xa3\x01\x22\x00\x73\x01\xb2\x01\xa7\x01\x61\x00\x24\x00\x25\x00\xb3\x01\xb6\x01\x26\x00\x6c\x01\x5d\x01\x5e\x01\x9e\x00\x63\x01\x6d\x01\x27\x00\x28\x00\x29\x00\x71\x01\x70\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x72\x01\x84\x01\x73\x01\x7f\x01\x30\x00\x31\x00\x32\x00\xdc\x00\xde\x00\xdd\x00\x33\x00\x62\x00\x34\x00\xdf\x00\x95\x00\xbd\x01\x96\x00\xb9\x01\x9e\x00\xba\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xc9\xff\x0e\x00\xcb\xff\xa0\x00\x0f\x00\xcf\xff\xa5\x00\xa7\x00\xd8\xff\x10\x00\x11\x00\x12\x00\xfe\x00\xad\xff\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xac\xff\x1a\x00\x06\x00\x1b\x00\x2f\x01\x1c\x00\xd9\x00\x1d\x00\x53\x01\x1e\x00\x4b\x01\x1f\x00\x50\x01\x20\x00\x54\x01\x21\x00\x9e\x00\x95\x00\x22\x00\xff\xff\x96\x00\xa0\x00\x61\x00\x24\x00\x25\x00\xa5\x00\xa7\x00\x26\x00\x06\x00\xdc\x00\xd9\x00\xdd\x00\x06\x00\xff\xff\x27\x00\x28\x00\x29\x00\xde\x00\xfe\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x62\x00\x34\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x64\x00\x65\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x61\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x46\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x52\x00\x00\x00\x00\x00\x33\x00\x62\x00\x34\x00\x00\x00\x00\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\xe3\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x61\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x62\x00\x34\x00\x78\x01\x79\x01\x00\x00\x00\x00\x7a\x01\x7b\x01\x69\x00\xa0\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x7c\x01\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x06\x00\x07\x00\x08\x00\xb0\x00\xb1\x00\x0b\x00\x0c\x00\xb2\x00\x6d\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\xb4\x00\x26\x00\xe4\x00\xe5\x00\x00\x00\x00\x00\xe6\x00\xe7\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\xe8\x00\xe9\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\xf3\x01\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\xf5\x01\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x24\x00\x25\x00\x00\x00\x41\x01\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x27\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xf1\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xef\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xd2\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xd7\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xad\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xae\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x27\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x27\x01\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x6a\x00\x6b\x00\xa7\x01\x25\x00\x6c\x00\x6d\x00\x26\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x28\x00\x29\x00\x00\x00\xa8\x01\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xee\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xd4\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xcb\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xa0\x01\x00\x00\xa1\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x2f\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x34\x00\x35\x01\x00\x00\x36\x01\x00\x00\x37\x01\x00\x00\x38\x01\x00\x00\x39\x01\x00\x00\x00\x00\x3a\x01\x00\x00\x3b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\xcd\x00\xce\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x34\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\xcf\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xd8\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xcc\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x8c\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x8d\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x80\x01\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x81\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xff\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x03\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x04\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x06\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x3d\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x40\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x4b\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x34\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\xaf\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x34\x00\x36\x01\x00\x00\x37\x01\x00\x00\x38\x01\x00\x00\xd3\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\xc9\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x34\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x88\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x89\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x8a\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\x8f\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\x9e\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x8e\x01\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x36\x01\x34\x00\x37\x01\x00\x00\x38\x01\x00\x00\x9f\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x34\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x5b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x60\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x08\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x20\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x21\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\x20\x00\x00\x00\x22\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x34\x00\xdd\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x35\x01\x00\x00\x9d\x01\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x34\x01\x00\x00\x9c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x33\x01\x00\x00\x9b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x32\x01\x00\x00\x9a\x01\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x34\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x1c\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x34\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x30\x01\x00\x00\x31\x01\x00\x00\x99\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x34\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x00\x00\x1b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x34\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x95\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x96\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x97\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x98\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x17\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x18\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x1a\x01\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x90\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x91\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x92\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x93\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x94\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x11\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x12\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x13\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x14\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x15\x01\x00\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x34\x00\x96\x00\x14\x00\x15\x00\x16\x00\x17\x00\x16\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x0e\x01\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x0f\x01\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x16\x00\x10\x01\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x0c\x01\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x15\x00\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x09\x01\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x0a\x01\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x0b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x97\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x9b\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x97\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\x9b\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd2\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd3\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd5\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd6\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x96\x00\x14\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x5e\x00\x36\x00\x0e\x00\x6a\x00\x6b\x00\x0f\x00\x00\x00\x6c\x00\x6d\x00\x00\x00\xa2\x00\xa3\x00\x00\x00\x00\x00\x59\x01\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x66\x01\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x34\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x00\x00\x00\x00\x34\x00\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\x00\x00\xcd\xff\xcd\xff\x00\x00\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\x00\x00\xcd\xff\x00\x00\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\xcd\xff\x00\x00\xcd\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\x00\x00\xd4\xff\xd4\xff\x00\x00\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\x00\x00\xd4\xff\x00\x00\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\xd4\xff\x34\xff\xd4\xff\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x5d\x00\x5e\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x00\x00\x00\x00\x00\x00\x34\xff\x34\xff\x00\x00\x34\xff\x00\x00\x34\xff\x34\xff\x34\xff\x00\x00\x00\x00\x34\xff\x34\xff\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x00\x00\x34\xff\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x00\x00\x00\x00\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x34\xff\x36\x00\x00\x00\x34\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\xb6\x00\x3f\x00\x00\x00\x00\x00\xb7\x00\x74\x00\x75\x00\xb8\x00\xb9\x00\xba\x00\x79\x00\xbb\x00\xbc\x00\x7c\x00\x7d\x00\xbd\x00\x7f\x00\xbe\x00\xbf\x00\x82\x00\xc0\x00\x84\x00\x85\x00\xc1\x00\xc2\x00\xc3\x00\x89\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x06\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\xfa\xff\x3f\x00\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x44\x00\xfa\xff\x00\x00\x00\x00\x46\x00\x00\x00\xfa\xff\x48\x00\x49\x00\xfa\xff\x06\x00\x00\x00\x4b\x00\x4c\x00\xfa\xff\x4e\x00\xfa\xff\x50\x00\xfa\xff\x52\x00\xfa\xff\x54\x00\xfa\xff\x56\x00\xfa\xff\xfa\xff\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfa\xff\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x06\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfa\xff\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x00\x00\xfa\xff\xfa\xff\x00\x00\x00\x00\xfa\xff\x00\x00\xfa\xff\xfa\xff\x49\x00\xfa\xff\x36\x00\x00\x00\xfa\xff\xfa\xff\xfa\xff\x4e\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x59\x00\xfa\xff\xfa\xff\xfa\xff\xfa\xff\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x29\x01\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x43\x01\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\xaa\x01\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x36\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x41\x00\x42\x00\x43\x00\x00\x00\x44\x00\x45\x00\x00\x00\x00\x00\x46\x00\x00\x00\x47\x00\x67\x00\x49\x00\x4a\x00\x06\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x02\x01\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x03\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xd4\xff\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x02\x01\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x03\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x24\x01\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x8c\x01\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\xd1\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x83\x01\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x24\x01\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x25\x01\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\xd1\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\xd2\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x06\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x54\x00\x3d\x01\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x60\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x3d\x00\x4e\x00\x60\x00\x50\x00\x3f\x00\x52\x00\x00\x00\x54\x00\x00\x00\x56\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x00\x00\x46\x00\x00\x00\x00\x00\x48\x00\x49\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x3d\x00\x4e\x00\x60\x00\x50\x00\x3f\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x00\x00\x46\x00\x00\x00\x00\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x4e\x00\x00\x00\x50\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5b\x01\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x72\x00\x00\x00\x94\x00\x00\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x94\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x02\x01\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x03\x01\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (4, 279) [+	(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),+	(271 , happyReduce_271),+	(272 , happyReduce_272),+	(273 , happyReduce_273),+	(274 , happyReduce_274),+	(275 , happyReduce_275),+	(276 , happyReduce_276),+	(277 , happyReduce_277),+	(278 , happyReduce_278),+	(279 , happyReduce_279)+	]++happy_n_terms = 80 :: Int+happy_n_nonterms = 95 :: Int++happyReduce_4 = happySpecReduce_1  0# happyReduction_4+happyReduction_4 happy_x_1+	 =  happyIn7+		 (AST.JSLiteral ";"+	)++happyReduce_5 = happySpecReduce_0  0# happyReduction_5+happyReduction_5  =  happyIn7+		 (AST.JSLiteral ""+	)++happyReduce_6 = happySpecReduce_1  1# happyReduction_6+happyReduction_6 happy_x_1+	 =  case happyOut9 happy_x_1 of { happy_var_1 -> +	happyIn8+		 (happy_var_1+	)}++happyReduce_7 = happySpecReduce_1  1# happyReduction_7+happyReduction_7 happy_x_1+	 =  case happyOut10 happy_x_1 of { happy_var_1 -> +	happyIn8+		 (happy_var_1+	)}++happyReduce_8 = happySpecReduce_1  1# happyReduction_8+happyReduction_8 happy_x_1+	 =  case happyOut11 happy_x_1 of { happy_var_1 -> +	happyIn8+		 (happy_var_1+	)}++happyReduce_9 = happySpecReduce_1  1# happyReduction_9+happyReduction_9 happy_x_1+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> +	happyIn8+		 (happy_var_1+	)}++happyReduce_10 = happySpecReduce_1  1# happyReduction_10+happyReduction_10 happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	happyIn8+		 (happy_var_1+	)}++happyReduce_11 = happySpecReduce_1  2# happyReduction_11+happyReduction_11 happy_x_1+	 =  happyIn9+		 (AST.JSLiteral "null"+	)++happyReduce_12 = happySpecReduce_1  3# happyReduction_12+happyReduction_12 happy_x_1+	 =  happyIn10+		 (AST.JSLiteral "true"+	)++happyReduce_13 = happySpecReduce_1  3# happyReduction_13+happyReduction_13 happy_x_1+	 =  happyIn10+		 (AST.JSLiteral "false"+	)++happyReduce_14 = happySpecReduce_1  4# happyReduction_14+happyReduction_14 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn11+		 (AST.JSDecimal (token_literal happy_var_1)+	)}++happyReduce_15 = happySpecReduce_1  4# happyReduction_15+happyReduction_15 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn11+		 (AST.JSHexInteger (token_literal happy_var_1)+	)}++happyReduce_16 = happySpecReduce_1  5# happyReduction_16+happyReduction_16 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn12+		 (AST.JSStringLiteral (token_delimiter happy_var_1) (token_literal happy_var_1)+	)}++happyReduce_17 = happySpecReduce_1  6# happyReduction_17+happyReduction_17 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn13+		 (AST.JSRegEx (token_literal happy_var_1)+	)}++happyReduce_18 = happySpecReduce_1  7# happyReduction_18+happyReduction_18 happy_x_1+	 =  happyIn14+		 (AST.JSLiteral "this"+	)++happyReduce_19 = happySpecReduce_1  7# happyReduction_19+happyReduction_19 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn14+		 (happy_var_1 {- PrimaryExpression1 -}+	)}++happyReduce_20 = happySpecReduce_1  7# happyReduction_20+happyReduction_20 happy_x_1+	 =  case happyOut8 happy_x_1 of { happy_var_1 -> +	happyIn14+		 (happy_var_1 {- PrimaryExpression2 -}+	)}++happyReduce_21 = happySpecReduce_1  7# happyReduction_21+happyReduction_21 happy_x_1+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> +	happyIn14+		 (happy_var_1 {- PrimaryExpression3 -}+	)}++happyReduce_22 = happySpecReduce_1  7# happyReduction_22+happyReduction_22 happy_x_1+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> +	happyIn14+		 (happy_var_1 {- PrimaryExpression4 -}+	)}++happyReduce_23 = happySpecReduce_3  7# happyReduction_23+happyReduction_23 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_2 of { happy_var_2 -> +	happyIn14+		 (AST.JSExpressionParen happy_var_2+	)}++happyReduce_24 = happySpecReduce_1  8# happyReduction_24+happyReduction_24 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn15+		 (AST.JSIdentifier (token_literal happy_var_1)+	)}++happyReduce_25 = happySpecReduce_1  8# happyReduction_25+happyReduction_25 happy_x_1+	 =  happyIn15+		 (AST.JSIdentifier "get"+	)++happyReduce_26 = happySpecReduce_1  8# happyReduction_26+happyReduction_26 happy_x_1+	 =  happyIn15+		 (AST.JSIdentifier "set"+	)++happyReduce_27 = happySpecReduce_1  9# happyReduction_27+happyReduction_27 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn16+		 (happy_var_1+	)}++happyReduce_28 = happySpecReduce_1  9# happyReduction_28+happyReduction_28 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "break"+	)++happyReduce_29 = happySpecReduce_1  9# happyReduction_29+happyReduction_29 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "case"+	)++happyReduce_30 = happySpecReduce_1  9# happyReduction_30+happyReduction_30 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "catch"+	)++happyReduce_31 = happySpecReduce_1  9# happyReduction_31+happyReduction_31 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "const"+	)++happyReduce_32 = happySpecReduce_1  9# happyReduction_32+happyReduction_32 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "continue"+	)++happyReduce_33 = happySpecReduce_1  9# happyReduction_33+happyReduction_33 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "debugger"+	)++happyReduce_34 = happySpecReduce_1  9# happyReduction_34+happyReduction_34 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "default"+	)++happyReduce_35 = happySpecReduce_1  9# happyReduction_35+happyReduction_35 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "delete"+	)++happyReduce_36 = happySpecReduce_1  9# happyReduction_36+happyReduction_36 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "do"+	)++happyReduce_37 = happySpecReduce_1  9# happyReduction_37+happyReduction_37 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "else"+	)++happyReduce_38 = happySpecReduce_1  9# happyReduction_38+happyReduction_38 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "enum"+	)++happyReduce_39 = happySpecReduce_1  9# happyReduction_39+happyReduction_39 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "false"+	)++happyReduce_40 = happySpecReduce_1  9# happyReduction_40+happyReduction_40 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "finally"+	)++happyReduce_41 = happySpecReduce_1  9# happyReduction_41+happyReduction_41 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "for"+	)++happyReduce_42 = happySpecReduce_1  9# happyReduction_42+happyReduction_42 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "function"+	)++happyReduce_43 = happySpecReduce_1  9# happyReduction_43+happyReduction_43 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "get"+	)++happyReduce_44 = happySpecReduce_1  9# happyReduction_44+happyReduction_44 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "if"+	)++happyReduce_45 = happySpecReduce_1  9# happyReduction_45+happyReduction_45 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "in"+	)++happyReduce_46 = happySpecReduce_1  9# happyReduction_46+happyReduction_46 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "instanceof"+	)++happyReduce_47 = happySpecReduce_1  9# happyReduction_47+happyReduction_47 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "new"+	)++happyReduce_48 = happySpecReduce_1  9# happyReduction_48+happyReduction_48 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "null"+	)++happyReduce_49 = happySpecReduce_1  9# happyReduction_49+happyReduction_49 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "return"+	)++happyReduce_50 = happySpecReduce_1  9# happyReduction_50+happyReduction_50 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "set"+	)++happyReduce_51 = happySpecReduce_1  9# happyReduction_51+happyReduction_51 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "switch"+	)++happyReduce_52 = happySpecReduce_1  9# happyReduction_52+happyReduction_52 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "this"+	)++happyReduce_53 = happySpecReduce_1  9# happyReduction_53+happyReduction_53 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "throw"+	)++happyReduce_54 = happySpecReduce_1  9# happyReduction_54+happyReduction_54 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "true"+	)++happyReduce_55 = happySpecReduce_1  9# happyReduction_55+happyReduction_55 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "try"+	)++happyReduce_56 = happySpecReduce_1  9# happyReduction_56+happyReduction_56 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "typeof"+	)++happyReduce_57 = happySpecReduce_1  9# happyReduction_57+happyReduction_57 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "var"+	)++happyReduce_58 = happySpecReduce_1  9# happyReduction_58+happyReduction_58 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "void"+	)++happyReduce_59 = happySpecReduce_1  9# happyReduction_59+happyReduction_59 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "while"+	)++happyReduce_60 = happySpecReduce_1  9# happyReduction_60+happyReduction_60 happy_x_1+	 =  happyIn16+		 (AST.JSIdentifier "with"+	)++happyReduce_61 = happySpecReduce_1  9# happyReduction_61+happyReduction_61 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn16+		 (AST.JSIdentifier (token_literal happy_var_1)+	)}++happyReduce_62 = happySpecReduce_2  10# happyReduction_62+happyReduction_62 happy_x_2+	happy_x_1+	 =  happyIn17+		 (AST.JSArrayLiteral []+	)++happyReduce_63 = happySpecReduce_3  10# happyReduction_63+happyReduction_63 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut19 happy_x_2 of { happy_var_2 -> +	happyIn17+		 (AST.JSArrayLiteral happy_var_2+	)}++happyReduce_64 = happySpecReduce_3  10# happyReduction_64+happyReduction_64 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_2 of { happy_var_2 -> +	happyIn17+		 (AST.JSArrayLiteral happy_var_2+	)}++happyReduce_65 = happyReduce 5# 10# 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 happyOut18 happy_x_2 of { happy_var_2 -> +	case happyOut19 happy_x_4 of { happy_var_4 -> +	happyIn17+		 (AST.JSArrayLiteral (happy_var_2++happy_var_4)+	) `HappyStk` happyRest}}++happyReduce_66 = happyReduce 4# 10# happyReduction_66+happyReduction_66 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut18 happy_x_2 of { happy_var_2 -> +	happyIn17+		 (AST.JSArrayLiteral (happy_var_2++[AST.JSLiteral ","])+	) `HappyStk` happyRest}++happyReduce_67 = happySpecReduce_2  11# happyReduction_67+happyReduction_67 happy_x_2+	happy_x_1+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> +	case happyOut52 happy_x_2 of { happy_var_2 -> +	happyIn18+		 ((happy_var_1++happy_var_2) {- ElementList -}+	)}}++happyReduce_68 = happySpecReduce_1  11# happyReduction_68+happyReduction_68 happy_x_1+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> +	happyIn18+		 (happy_var_1 {- ElementList -}+	)}++happyReduce_69 = happyReduce 4# 11# happyReduction_69+happyReduction_69 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut18 happy_x_1 of { happy_var_1 -> +	case happyOut19 happy_x_3 of { happy_var_3 -> +	case happyOut52 happy_x_4 of { happy_var_4 -> +	happyIn18+		 ((happy_var_1++[(AST.JSElision [])]++happy_var_3++happy_var_4) {- ElementList -}+	) `HappyStk` happyRest}}}++happyReduce_70 = happySpecReduce_3  11# happyReduction_70+happyReduction_70 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	case happyOut52 happy_x_3 of { happy_var_3 -> +	happyIn18+		 ((happy_var_1++[(AST.JSElision [])]++happy_var_3) {- ElementList -}+	)}}++happyReduce_71 = happySpecReduce_1  12# happyReduction_71+happyReduction_71 happy_x_1+	 =  happyIn19+		 ([(AST.JSElision [])]+	)++happyReduce_72 = happySpecReduce_2  12# happyReduction_72+happyReduction_72 happy_x_2+	happy_x_1+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> +	happyIn19+		 (happy_var_1 ++ [(AST.JSElision [])]+	)}++happyReduce_73 = happySpecReduce_2  13# happyReduction_73+happyReduction_73 happy_x_2+	happy_x_1+	 =  happyIn20+		 (AST.JSObjectLiteral []+	)++happyReduce_74 = happySpecReduce_3  13# happyReduction_74+happyReduction_74 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut21 happy_x_2 of { happy_var_2 -> +	happyIn20+		 (AST.JSObjectLiteral happy_var_2+	)}++happyReduce_75 = happyReduce 4# 13# happyReduction_75+happyReduction_75 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut21 happy_x_2 of { happy_var_2 -> +	happyIn20+		 (AST.JSObjectLiteral (happy_var_2++[AST.JSLiteral ","])+	) `HappyStk` happyRest}++happyReduce_76 = happySpecReduce_1  14# happyReduction_76+happyReduction_76 happy_x_1+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> +	happyIn21+		 ([happy_var_1] {- PropertyNameandValueList1 -}+	)}++happyReduce_77 = happySpecReduce_3  14# happyReduction_77+happyReduction_77 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	case happyOut22 happy_x_3 of { happy_var_3 -> +	happyIn21+		 ((happy_var_1 ++ [happy_var_3]) {- PropertyNameandValueList2 -}+	)}}++happyReduce_78 = happySpecReduce_3  15# happyReduction_78+happyReduction_78 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut23 happy_x_1 of { happy_var_1 -> +	case happyOut52 happy_x_3 of { happy_var_3 -> +	happyIn22+		 ((AST.JSPropertyNameandValue happy_var_1 happy_var_3)+	)}}++happyReduce_79 = happyReduce 7# 15# happyReduction_79+happyReduction_79 (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 happyOut23 happy_x_2 of { happy_var_2 -> +	case happyOut97 happy_x_6 of { happy_var_6 -> +	happyIn22+		 ((AST.JSPropertyAccessor "get" happy_var_2 [] happy_var_6)+	) `HappyStk` happyRest}}++happyReduce_80 = happyReduce 8# 15# happyReduction_80+happyReduction_80 (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 happyOut23 happy_x_2 of { happy_var_2 -> +	case happyOut24 happy_x_4 of { happy_var_4 -> +	case happyOut97 happy_x_7 of { happy_var_7 -> +	happyIn22+		 ((AST.JSPropertyAccessor "set" happy_var_2 [happy_var_4] happy_var_7)+	) `HappyStk` happyRest}}}++happyReduce_81 = happySpecReduce_1  16# happyReduction_81+happyReduction_81 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn23+		 (happy_var_1 {- PropertyName1 -}+	)}++happyReduce_82 = happySpecReduce_1  16# happyReduction_82+happyReduction_82 happy_x_1+	 =  case happyOut12 happy_x_1 of { happy_var_1 -> +	happyIn23+		 (happy_var_1 {- PropertyName2 -}+	)}++happyReduce_83 = happySpecReduce_1  16# happyReduction_83+happyReduction_83 happy_x_1+	 =  case happyOut11 happy_x_1 of { happy_var_1 -> +	happyIn23+		 (happy_var_1 {- PropertyName3 -}+	)}++happyReduce_84 = happySpecReduce_1  17# happyReduction_84+happyReduction_84 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn24+		 (happy_var_1 {- PropertySetParameterList -}+	)}++happyReduce_85 = happySpecReduce_1  18# happyReduction_85+happyReduction_85 happy_x_1+	 =  case happyOut14 happy_x_1 of { happy_var_1 -> +	happyIn25+		 ([happy_var_1] {- MemberExpression -}+	)}++happyReduce_86 = happySpecReduce_1  18# happyReduction_86+happyReduction_86 happy_x_1+	 =  case happyOut94 happy_x_1 of { happy_var_1 -> +	happyIn25+		 ([happy_var_1] {- MemberExpression -}+	)}++happyReduce_87 = happyReduce 4# 18# happyReduction_87+happyReduction_87 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut25 happy_x_1 of { happy_var_1 -> +	case happyOut55 happy_x_3 of { happy_var_3 -> +	happyIn25+		 ([AST.JSMemberSquare happy_var_1 happy_var_3]+	) `HappyStk` happyRest}}++happyReduce_88 = happySpecReduce_3  18# happyReduction_88+happyReduction_88 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut25 happy_x_1 of { happy_var_1 -> +	case happyOut16 happy_x_3 of { happy_var_3 -> +	happyIn25+		 ([AST.JSMemberDot happy_var_1 happy_var_3]+	)}}++happyReduce_89 = happySpecReduce_3  18# happyReduction_89+happyReduction_89 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut25 happy_x_2 of { happy_var_2 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn25+		 ((((AST.JSLiteral "new "):happy_var_2)++[happy_var_3])+	)}}++happyReduce_90 = happySpecReduce_1  19# happyReduction_90+happyReduction_90 happy_x_1+	 =  case happyOut25 happy_x_1 of { happy_var_1 -> +	happyIn26+		 (happy_var_1 {- NewExpression -}+	)}++happyReduce_91 = happySpecReduce_2  19# happyReduction_91+happyReduction_91 happy_x_2+	happy_x_1+	 =  case happyOut26 happy_x_2 of { happy_var_2 -> +	happyIn26+		 ((AST.JSLiteral "new "):happy_var_2+	)}++happyReduce_92 = happySpecReduce_2  20# happyReduction_92+happyReduction_92 happy_x_2+	happy_x_1+	 =  case happyOut25 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn27+		 (happy_var_1++[happy_var_2] {- CallExpression -}+	)}}++happyReduce_93 = happySpecReduce_2  20# happyReduction_93+happyReduction_93 happy_x_2+	happy_x_1+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn27+		 ((happy_var_1++[(AST.JSCallExpression "()" [happy_var_2])])+	)}}++happyReduce_94 = happyReduce 4# 20# happyReduction_94+happyReduction_94 (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 happyOut55 happy_x_3 of { happy_var_3 -> +	happyIn27+		 ((happy_var_1++[(AST.JSCallExpression "[]" [happy_var_3])])+	) `HappyStk` happyRest}}++happyReduce_95 = happySpecReduce_3  20# happyReduction_95+happyReduction_95 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> +	case happyOut16 happy_x_3 of { happy_var_3 -> +	happyIn27+		 ((happy_var_1++[(AST.JSCallExpression "."  [happy_var_3])])+	)}}++happyReduce_96 = happySpecReduce_2  21# happyReduction_96+happyReduction_96 happy_x_2+	happy_x_1+	 =  happyIn28+		 ((AST.JSArguments [])+	)++happyReduce_97 = happySpecReduce_3  21# happyReduction_97+happyReduction_97 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut29 happy_x_2 of { happy_var_2 -> +	happyIn28+		 ((AST.JSArguments happy_var_2)+	)}++happyReduce_98 = happySpecReduce_1  22# happyReduction_98+happyReduction_98 happy_x_1+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> +	happyIn29+		 ([happy_var_1] {- ArgumentList -}+	)}++happyReduce_99 = happySpecReduce_3  22# happyReduction_99+happyReduction_99 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut29 happy_x_1 of { happy_var_1 -> +	case happyOut52 happy_x_3 of { happy_var_3 -> +	happyIn29+		 (happy_var_1++[happy_var_3] {- ArgumentList2 -}+	)}}++happyReduce_100 = happySpecReduce_1  23# happyReduction_100+happyReduction_100 happy_x_1+	 =  case happyOut26 happy_x_1 of { happy_var_1 -> +	happyIn30+		 (happy_var_1 {- LeftHandSideExpression1 -}+	)}++happyReduce_101 = happySpecReduce_1  23# happyReduction_101+happyReduction_101 happy_x_1+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> +	happyIn30+		 (happy_var_1 {- LeftHandSideExpression12 -}+	)}++happyReduce_102 = happySpecReduce_1  24# happyReduction_102+happyReduction_102 happy_x_1+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> +	happyIn31+		 (happy_var_1 {- PostfixExpression -}+	)}++happyReduce_103 = happySpecReduce_2  24# happyReduction_103+happyReduction_103 happy_x_2+	happy_x_1+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> +	happyIn31+		 ([(AST.JSExpressionPostfix "++" happy_var_1)]+	)}++happyReduce_104 = happySpecReduce_2  24# happyReduction_104+happyReduction_104 happy_x_2+	happy_x_1+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> +	happyIn31+		 ([(AST.JSExpressionPostfix "--" happy_var_1)]+	)}++happyReduce_105 = happySpecReduce_1  25# happyReduction_105+happyReduction_105 happy_x_1+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> +	happyIn32+		 (happy_var_1 {- UnaryExpression -}+	)}++happyReduce_106 = happySpecReduce_2  25# happyReduction_106+happyReduction_106 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "delete "):happy_var_2)+	)}++happyReduce_107 = happySpecReduce_2  25# happyReduction_107+happyReduction_107 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "void "):happy_var_2)+	)}++happyReduce_108 = happySpecReduce_2  25# happyReduction_108+happyReduction_108 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "typeof "):happy_var_2)+	)}++happyReduce_109 = happySpecReduce_2  25# happyReduction_109+happyReduction_109 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "++"):happy_var_2)+	)}++happyReduce_110 = happySpecReduce_2  25# happyReduction_110+happyReduction_110 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "--"):happy_var_2)+	)}++happyReduce_111 = happySpecReduce_2  25# happyReduction_111+happyReduction_111 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "+"):happy_var_2)+	)}++happyReduce_112 = happySpecReduce_2  25# happyReduction_112+happyReduction_112 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "-"):happy_var_2)+	)}++happyReduce_113 = happySpecReduce_2  25# happyReduction_113+happyReduction_113 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "~"):happy_var_2)+	)}++happyReduce_114 = happySpecReduce_2  25# happyReduction_114+happyReduction_114 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (((AST.JSUnary "!"):happy_var_2)+	)}++happyReduce_115 = happySpecReduce_1  26# happyReduction_115+happyReduction_115 happy_x_1+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> +	happyIn33+		 (happy_var_1 {- MultiplicativeExpression -}+	)}++happyReduce_116 = happySpecReduce_3  26# happyReduction_116+happyReduction_116 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut32 happy_x_3 of { happy_var_3 -> +	happyIn33+		 ([(AST.JSExpressionBinary "*" happy_var_1 happy_var_3)]+	)}}++happyReduce_117 = happySpecReduce_3  26# happyReduction_117+happyReduction_117 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut32 happy_x_3 of { happy_var_3 -> +	happyIn33+		 ([(AST.JSExpressionBinary "/" happy_var_1 happy_var_3)]+	)}}++happyReduce_118 = happySpecReduce_3  26# happyReduction_118+happyReduction_118 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut32 happy_x_3 of { happy_var_3 -> +	happyIn33+		 ([(AST.JSExpressionBinary "%" happy_var_1 happy_var_3)]+	)}}++happyReduce_119 = happySpecReduce_3  27# happyReduction_119+happyReduction_119 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut33 happy_x_3 of { happy_var_3 -> +	happyIn34+		 ([(AST.JSExpressionBinary "+" happy_var_1 happy_var_3)]+	)}}++happyReduce_120 = happySpecReduce_3  27# happyReduction_120+happyReduction_120 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut33 happy_x_3 of { happy_var_3 -> +	happyIn34+		 ([(AST.JSExpressionBinary "-" happy_var_1 happy_var_3)]+	)}}++happyReduce_121 = happySpecReduce_1  27# happyReduction_121+happyReduction_121 happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	happyIn34+		 (happy_var_1 {- (goRegExp happy_var_1)-} {- AdditiveExpression -}+	)}++happyReduce_122 = happySpecReduce_3  28# happyReduction_122+happyReduction_122 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_3 of { happy_var_3 -> +	happyIn35+		 ([(AST.JSExpressionBinary "<<" happy_var_1 happy_var_3)]+	)}}++happyReduce_123 = happySpecReduce_3  28# happyReduction_123+happyReduction_123 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_3 of { happy_var_3 -> +	happyIn35+		 ([(AST.JSExpressionBinary ">>" happy_var_1 happy_var_3)]+	)}}++happyReduce_124 = happySpecReduce_3  28# happyReduction_124+happyReduction_124 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_3 of { happy_var_3 -> +	happyIn35+		 ([(AST.JSExpressionBinary ">>>" happy_var_1 happy_var_3)]+	)}}++happyReduce_125 = happySpecReduce_1  28# happyReduction_125+happyReduction_125 happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	happyIn35+		 (happy_var_1 {- ShiftExpression -}+	)}++happyReduce_126 = happySpecReduce_1  29# happyReduction_126+happyReduction_126 happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	happyIn36+		 (happy_var_1 {- RelationalExpression -}+	)}++happyReduce_127 = happySpecReduce_3  29# happyReduction_127+happyReduction_127 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 -> +	happyIn36+		 ([(AST.JSExpressionBinary "<" happy_var_1 happy_var_3)]+	)}}++happyReduce_128 = happySpecReduce_3  29# happyReduction_128+happyReduction_128 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 -> +	happyIn36+		 ([(AST.JSExpressionBinary ">" happy_var_1 happy_var_3)]+	)}}++happyReduce_129 = happySpecReduce_3  29# happyReduction_129+happyReduction_129 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 -> +	happyIn36+		 ([(AST.JSExpressionBinary "<=" happy_var_1 happy_var_3)]+	)}}++happyReduce_130 = happySpecReduce_3  29# happyReduction_130+happyReduction_130 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 -> +	happyIn36+		 ([(AST.JSExpressionBinary ">=" happy_var_1 happy_var_3)]+	)}}++happyReduce_131 = happySpecReduce_3  29# happyReduction_131+happyReduction_131 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 -> +	happyIn36+		 ([(AST.JSExpressionBinary " instanceof " happy_var_1 happy_var_3)]+	)}}++happyReduce_132 = happySpecReduce_3  29# happyReduction_132+happyReduction_132 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 -> +	happyIn36+		 ([(AST.JSExpressionBinary " in " happy_var_1 happy_var_3)]+	)}}++happyReduce_133 = happySpecReduce_1  30# happyReduction_133+happyReduction_133 happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	happyIn37+		 (happy_var_1 {- RelationalExpressionNoIn -}+	)}++happyReduce_134 = happySpecReduce_3  30# happyReduction_134+happyReduction_134 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_3 of { happy_var_3 -> +	happyIn37+		 ([(AST.JSExpressionBinary "<" happy_var_1 happy_var_3)]+	)}}++happyReduce_135 = happySpecReduce_3  30# happyReduction_135+happyReduction_135 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_3 of { happy_var_3 -> +	happyIn37+		 ([(AST.JSExpressionBinary ">" happy_var_1 happy_var_3)]+	)}}++happyReduce_136 = happySpecReduce_3  30# happyReduction_136+happyReduction_136 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_3 of { happy_var_3 -> +	happyIn37+		 ([(AST.JSExpressionBinary "<=" happy_var_1 happy_var_3)]+	)}}++happyReduce_137 = happySpecReduce_3  30# happyReduction_137+happyReduction_137 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_3 of { happy_var_3 -> +	happyIn37+		 ([(AST.JSExpressionBinary ">=" happy_var_1 happy_var_3)]+	)}}++happyReduce_138 = happySpecReduce_3  30# happyReduction_138+happyReduction_138 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	case happyOut35 happy_x_3 of { happy_var_3 -> +	happyIn37+		 ([(AST.JSExpressionBinary " instanceof " happy_var_1 happy_var_3)]+	)}}++happyReduce_139 = happySpecReduce_1  31# happyReduction_139+happyReduction_139 happy_x_1+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> +	happyIn38+		 (happy_var_1 {- EqualityExpression -}+	)}++happyReduce_140 = happySpecReduce_3  31# happyReduction_140+happyReduction_140 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn38+		 ([(AST.JSExpressionBinary "==" happy_var_1 happy_var_3)]+	)}}++happyReduce_141 = happySpecReduce_3  31# happyReduction_141+happyReduction_141 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn38+		 ([(AST.JSExpressionBinary "!=" happy_var_1 happy_var_3)]+	)}}++happyReduce_142 = happySpecReduce_3  31# happyReduction_142+happyReduction_142 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn38+		 ([(AST.JSExpressionBinary "===" happy_var_1 happy_var_3)]+	)}}++happyReduce_143 = happySpecReduce_3  31# happyReduction_143+happyReduction_143 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn38+		 ([(AST.JSExpressionBinary "!==" happy_var_1 happy_var_3)]+	)}}++happyReduce_144 = happySpecReduce_1  32# happyReduction_144+happyReduction_144 happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	happyIn39+		 (happy_var_1 {- EqualityExpressionNoIn -}+	)}++happyReduce_145 = happySpecReduce_3  32# happyReduction_145+happyReduction_145 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn39+		 ([(AST.JSExpressionBinary "==" happy_var_1 happy_var_3)]+	)}}++happyReduce_146 = happySpecReduce_3  32# happyReduction_146+happyReduction_146 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn39+		 ([(AST.JSExpressionBinary "!=" happy_var_1 happy_var_3)]+	)}}++happyReduce_147 = happySpecReduce_3  32# happyReduction_147+happyReduction_147 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn39+		 ([(AST.JSExpressionBinary "===" happy_var_1 happy_var_3)]+	)}}++happyReduce_148 = happySpecReduce_3  32# happyReduction_148+happyReduction_148 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn39+		 ([(AST.JSExpressionBinary "!==" happy_var_1 happy_var_3)]+	)}}++happyReduce_149 = happySpecReduce_1  33# happyReduction_149+happyReduction_149 happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	happyIn40+		 (happy_var_1 {- BitwiseAndExpression -}+	)}++happyReduce_150 = happySpecReduce_3  33# happyReduction_150+happyReduction_150 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> +	case happyOut38 happy_x_3 of { happy_var_3 -> +	happyIn40+		 ([(AST.JSExpressionBinary "&" happy_var_1 happy_var_3)]+	)}}++happyReduce_151 = happySpecReduce_1  34# happyReduction_151+happyReduction_151 happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	happyIn41+		 (happy_var_1 {- BitwiseAndExpression -}+	)}++happyReduce_152 = happySpecReduce_3  34# happyReduction_152+happyReduction_152 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	case happyOut39 happy_x_3 of { happy_var_3 -> +	happyIn41+		 ([(AST.JSExpressionBinary "&" happy_var_1 happy_var_3)]+	)}}++happyReduce_153 = happySpecReduce_1  35# happyReduction_153+happyReduction_153 happy_x_1+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> +	happyIn42+		 (happy_var_1 {- BitwiseXOrExpression -}+	)}++happyReduce_154 = happySpecReduce_3  35# happyReduction_154+happyReduction_154 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut42 happy_x_1 of { happy_var_1 -> +	case happyOut40 happy_x_3 of { happy_var_3 -> +	happyIn42+		 ([(AST.JSExpressionBinary "^" happy_var_1 happy_var_3)]+	)}}++happyReduce_155 = happySpecReduce_1  36# happyReduction_155+happyReduction_155 happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	happyIn43+		 (happy_var_1 {- BitwiseXOrExpression -}+	)}++happyReduce_156 = happySpecReduce_3  36# happyReduction_156+happyReduction_156 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_3 of { happy_var_3 -> +	happyIn43+		 ([(AST.JSExpressionBinary "^" happy_var_1 happy_var_3)]+	)}}++happyReduce_157 = happySpecReduce_1  37# happyReduction_157+happyReduction_157 happy_x_1+	 =  case happyOut42 happy_x_1 of { happy_var_1 -> +	happyIn44+		 (happy_var_1 {- BitwiseOrExpression -}+	)}++happyReduce_158 = happySpecReduce_3  37# happyReduction_158+happyReduction_158 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> +	case happyOut42 happy_x_3 of { happy_var_3 -> +	happyIn44+		 ([(AST.JSExpressionBinary "|" happy_var_1 happy_var_3)]+	)}}++happyReduce_159 = happySpecReduce_1  38# happyReduction_159+happyReduction_159 happy_x_1+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> +	happyIn45+		 (happy_var_1 {- BitwiseOrExpression -}+	)}++happyReduce_160 = happySpecReduce_3  38# happyReduction_160+happyReduction_160 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> +	case happyOut43 happy_x_3 of { happy_var_3 -> +	happyIn45+		 ([(AST.JSExpressionBinary "|" happy_var_1 happy_var_3)]+	)}}++happyReduce_161 = happySpecReduce_1  39# happyReduction_161+happyReduction_161 happy_x_1+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> +	happyIn46+		 (happy_var_1 {- LogicalAndExpression -}+	)}++happyReduce_162 = happySpecReduce_3  39# happyReduction_162+happyReduction_162 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> +	case happyOut44 happy_x_3 of { happy_var_3 -> +	happyIn46+		 ([(AST.JSExpressionBinary "&&" happy_var_1 happy_var_3)]+	)}}++happyReduce_163 = happySpecReduce_1  40# happyReduction_163+happyReduction_163 happy_x_1+	 =  case happyOut45 happy_x_1 of { happy_var_1 -> +	happyIn47+		 (happy_var_1 {- LogicalAndExpression -}+	)}++happyReduce_164 = happySpecReduce_3  40# happyReduction_164+happyReduction_164 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut47 happy_x_1 of { happy_var_1 -> +	case happyOut45 happy_x_3 of { happy_var_3 -> +	happyIn47+		 ([(AST.JSExpressionBinary "&&" happy_var_1 happy_var_3)]+	)}}++happyReduce_165 = happySpecReduce_1  41# happyReduction_165+happyReduction_165 happy_x_1+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> +	happyIn48+		 (happy_var_1 {- LogicalOrExpression -}+	)}++happyReduce_166 = happySpecReduce_3  41# happyReduction_166+happyReduction_166 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut48 happy_x_1 of { happy_var_1 -> +	case happyOut46 happy_x_3 of { happy_var_3 -> +	happyIn48+		 ([(AST.JSExpressionBinary "||" happy_var_1 happy_var_3)]+	)}}++happyReduce_167 = happySpecReduce_1  42# happyReduction_167+happyReduction_167 happy_x_1+	 =  case happyOut47 happy_x_1 of { happy_var_1 -> +	happyIn49+		 (happy_var_1 {- LogicalOrExpression -}+	)}++happyReduce_168 = happySpecReduce_3  42# happyReduction_168+happyReduction_168 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_3 of { happy_var_3 -> +	happyIn49+		 ([(AST.JSExpressionBinary "||" happy_var_1 happy_var_3)]+	)}}++happyReduce_169 = happySpecReduce_1  43# happyReduction_169+happyReduction_169 happy_x_1+	 =  case happyOut48 happy_x_1 of { happy_var_1 -> +	happyIn50+		 (happy_var_1 {- ConditionalExpression -}+	)}++happyReduce_170 = happyReduce 5# 43# happyReduction_170+happyReduction_170 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut48 happy_x_1 of { happy_var_1 -> +	case happyOut52 happy_x_3 of { happy_var_3 -> +	case happyOut52 happy_x_5 of { happy_var_5 -> +	happyIn50+		 ([AST.JSExpressionTernary happy_var_1 happy_var_3 happy_var_5]+	) `HappyStk` happyRest}}}++happyReduce_171 = happySpecReduce_1  44# happyReduction_171+happyReduction_171 happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	happyIn51+		 (happy_var_1 {- ConditionalExpression -}+	)}++happyReduce_172 = happyReduce 5# 44# happyReduction_172+happyReduction_172 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut49 happy_x_1 of { happy_var_1 -> +	case happyOut53 happy_x_3 of { happy_var_3 -> +	case happyOut53 happy_x_5 of { happy_var_5 -> +	happyIn51+		 ([AST.JSExpressionTernary happy_var_1 happy_var_3 happy_var_5]+	) `HappyStk` happyRest}}}++happyReduce_173 = happySpecReduce_1  45# happyReduction_173+happyReduction_173 happy_x_1+	 =  case happyOut50 happy_x_1 of { happy_var_1 -> +	happyIn52+		 (happy_var_1 {- AssignmentExpression -}+	)}++happyReduce_174 = happySpecReduce_3  45# happyReduction_174+happyReduction_174 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> +	case happyOut54 happy_x_2 of { happy_var_2 -> +	case happyOut52 happy_x_3 of { happy_var_3 -> +	happyIn52+		 ((happy_var_1++[happy_var_2]++happy_var_3)+	)}}}++happyReduce_175 = happySpecReduce_1  46# happyReduction_175+happyReduction_175 happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	happyIn53+		 (happy_var_1 {- AssignmentExpression -}+	)}++happyReduce_176 = happySpecReduce_3  46# happyReduction_176+happyReduction_176 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> +	case happyOut54 happy_x_2 of { happy_var_2 -> +	case happyOut53 happy_x_3 of { happy_var_3 -> +	happyIn53+		 ((happy_var_1++[happy_var_2]++happy_var_3)+	)}}}++happyReduce_177 = happySpecReduce_1  47# happyReduction_177+happyReduction_177 happy_x_1+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> +	happyIn54+		 (AST.JSOperator (token_literal happy_var_1)+	)}++happyReduce_178 = happySpecReduce_1  47# happyReduction_178+happyReduction_178 happy_x_1+	 =  happyIn54+		 (AST.JSOperator "="+	)++happyReduce_179 = happySpecReduce_1  48# happyReduction_179+happyReduction_179 happy_x_1+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> +	happyIn55+		 (AST.JSExpression happy_var_1 {- Expression -}+	)}++happyReduce_180 = happySpecReduce_3  48# happyReduction_180+happyReduction_180 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	case happyOut52 happy_x_3 of { happy_var_3 -> +	happyIn55+		 (flattenExpression happy_var_1 happy_var_3+	)}}++happyReduce_181 = happySpecReduce_1  49# happyReduction_181+happyReduction_181 happy_x_1+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> +	happyIn56+		 (AST.JSExpression happy_var_1 {- Expression -}+	)}++happyReduce_182 = happySpecReduce_3  49# happyReduction_182+happyReduction_182 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	case happyOut53 happy_x_3 of { happy_var_3 -> +	happyIn56+		 (flattenExpression happy_var_1 happy_var_3+	)}}++happyReduce_183 = happySpecReduce_1  50# happyReduction_183+happyReduction_183 happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	happyIn57+		 ([happy_var_1] {- ExpressionOpt -}+	)}++happyReduce_184 = happySpecReduce_0  50# happyReduction_184+happyReduction_184  =  happyIn57+		 ([]   {- ExpressionOpt -}+	)++happyReduce_185 = happySpecReduce_1  51# happyReduction_185+happyReduction_185 happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	happyIn58+		 ([happy_var_1] {- ExpressionOpt -}+	)}++happyReduce_186 = happySpecReduce_0  51# happyReduction_186+happyReduction_186  =  happyIn58+		 ([]   {- ExpressionOpt -}+	)++happyReduce_187 = happySpecReduce_1  52# happyReduction_187+happyReduction_187 happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	happyIn59+		 (happy_var_1 {- Statement1 -}+	)}++happyReduce_188 = happySpecReduce_1  52# happyReduction_188+happyReduction_188 happy_x_1+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> +	happyIn59+		 (happy_var_1 {- Statement3 -}+	)}++happyReduce_189 = happySpecReduce_1  53# happyReduction_189+happyReduction_189 happy_x_1+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty1 -}+	)}++happyReduce_190 = happySpecReduce_1  53# happyReduction_190+happyReduction_190 happy_x_1+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty2 -}+	)}++happyReduce_191 = happySpecReduce_1  53# happyReduction_191+happyReduction_191 happy_x_1+	 =  case happyOut72 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty4 -}+	)}++happyReduce_192 = happySpecReduce_1  53# happyReduction_192+happyReduction_192 happy_x_1+	 =  case happyOut73 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty5 -}+	)}++happyReduce_193 = happySpecReduce_1  53# happyReduction_193+happyReduction_193 happy_x_1+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty6 -}+	)}++happyReduce_194 = happySpecReduce_1  53# happyReduction_194+happyReduction_194 happy_x_1+	 =  case happyOut77 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty7 -}+	)}++happyReduce_195 = happySpecReduce_1  53# happyReduction_195+happyReduction_195 happy_x_1+	 =  case happyOut78 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty8 -}+	)}++happyReduce_196 = happySpecReduce_1  53# happyReduction_196+happyReduction_196 happy_x_1+	 =  case happyOut79 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty9 -}+	)}++happyReduce_197 = happySpecReduce_1  53# happyReduction_197+happyReduction_197 happy_x_1+	 =  case happyOut80 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty10 -}+	)}++happyReduce_198 = happySpecReduce_1  53# happyReduction_198+happyReduction_198 happy_x_1+	 =  case happyOut86 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty11 -}+	)}++happyReduce_199 = happySpecReduce_1  53# happyReduction_199+happyReduction_199 happy_x_1+	 =  case happyOut81 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty12 -}+	)}++happyReduce_200 = happySpecReduce_1  53# happyReduction_200+happyReduction_200 happy_x_1+	 =  case happyOut87 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty13 -}+	)}++happyReduce_201 = happySpecReduce_1  53# happyReduction_201+happyReduction_201 happy_x_1+	 =  case happyOut88 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty14 -}+	)}++happyReduce_202 = happySpecReduce_1  53# happyReduction_202+happyReduction_202 happy_x_1+	 =  case happyOut92 happy_x_1 of { happy_var_1 -> +	happyIn60+		 (happy_var_1 {- StatementNoEmpty15 -}+	)}++happyReduce_203 = happySpecReduce_2  54# happyReduction_203+happyReduction_203 happy_x_2+	happy_x_1+	 =  happyIn61+		 ((AST.JSLiteral ";")+	)++happyReduce_204 = happySpecReduce_3  54# happyReduction_204+happyReduction_204 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut63 happy_x_2 of { happy_var_2 -> +	happyIn61+		 ((if (happy_var_2 == AST.JSStatementList [AST.JSLiteral ";"]) then (AST.JSLiteral ";") else (AST.JSBlock happy_var_2))+	)}++happyReduce_205 = happySpecReduce_2  55# happyReduction_205+happyReduction_205 happy_x_2+	happy_x_1+	 =  happyIn62+		 ((AST.JSBlock (AST.JSStatementList []))+	)++happyReduce_206 = happySpecReduce_3  55# happyReduction_206+happyReduction_206 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut63 happy_x_2 of { happy_var_2 -> +	happyIn62+		 ((AST.JSBlock happy_var_2)+	)}++happyReduce_207 = happySpecReduce_1  56# happyReduction_207+happyReduction_207 happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	happyIn63+		 ((AST.JSStatementList [happy_var_1])+	)}++happyReduce_208 = happySpecReduce_2  56# happyReduction_208+happyReduction_208 happy_x_2+	happy_x_1+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> +	case happyOut59 happy_x_2 of { happy_var_2 -> +	happyIn63+		 ((combineStatements happy_var_1 happy_var_2)+	)}}++happyReduce_209 = happySpecReduce_3  57# happyReduction_209+happyReduction_209 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut65 happy_x_2 of { happy_var_2 -> +	happyIn64+		 (AST.JSVariables "var" happy_var_2+	)}++happyReduce_210 = happySpecReduce_3  57# happyReduction_210+happyReduction_210 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut65 happy_x_2 of { happy_var_2 -> +	happyIn64+		 (AST.JSVariables "const" happy_var_2+	)}++happyReduce_211 = happySpecReduce_1  58# happyReduction_211+happyReduction_211 happy_x_1+	 =  case happyOut67 happy_x_1 of { happy_var_1 -> +	happyIn65+		 ([happy_var_1] {- VariableDeclarationList -}+	)}++happyReduce_212 = happySpecReduce_3  58# happyReduction_212+happyReduction_212 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut65 happy_x_1 of { happy_var_1 -> +	case happyOut67 happy_x_3 of { happy_var_3 -> +	happyIn65+		 ((happy_var_1 ++ [happy_var_3]) {- VariableDeclarationList -}+	)}}++happyReduce_213 = happySpecReduce_1  59# happyReduction_213+happyReduction_213 happy_x_1+	 =  case happyOut68 happy_x_1 of { happy_var_1 -> +	happyIn66+		 ([happy_var_1] {- VariableDeclarationList -}+	)}++happyReduce_214 = happySpecReduce_3  59# happyReduction_214+happyReduction_214 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut66 happy_x_1 of { happy_var_1 -> +	case happyOut68 happy_x_3 of { happy_var_3 -> +	happyIn66+		 ((happy_var_1 ++ [happy_var_3]) {- VariableDeclarationList -}+	)}}++happyReduce_215 = happySpecReduce_1  60# happyReduction_215+happyReduction_215 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn67+		 ((AST.JSVarDecl happy_var_1 [])+	)}++happyReduce_216 = happySpecReduce_2  60# happyReduction_216+happyReduction_216 happy_x_2+	happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	case happyOut69 happy_x_2 of { happy_var_2 -> +	happyIn67+		 ((AST.JSVarDecl happy_var_1 happy_var_2)+	)}}++happyReduce_217 = happySpecReduce_2  61# happyReduction_217+happyReduction_217 happy_x_2+	happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	case happyOut70 happy_x_2 of { happy_var_2 -> +	happyIn68+		 ((AST.JSVarDecl happy_var_1 happy_var_2)+	)}}++happyReduce_218 = happySpecReduce_1  61# happyReduction_218+happyReduction_218 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn68+		 ((AST.JSVarDecl happy_var_1 [])+	)}++happyReduce_219 = happySpecReduce_2  62# happyReduction_219+happyReduction_219 happy_x_2+	happy_x_1+	 =  case happyOut52 happy_x_2 of { happy_var_2 -> +	happyIn69+		 (happy_var_2 {- Initializer -}+	)}++happyReduce_220 = happySpecReduce_2  63# happyReduction_220+happyReduction_220 happy_x_2+	happy_x_1+	 =  case happyOut53 happy_x_2 of { happy_var_2 -> +	happyIn70+		 (happy_var_2 {- InitializerNoIn -}+	)}++happyReduce_221 = happySpecReduce_1  64# happyReduction_221+happyReduction_221 happy_x_1+	 =  happyIn71+		 ((AST.JSLiteral ";")+	)++happyReduce_222 = happySpecReduce_1  65# happyReduction_222+happyReduction_222 happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	happyIn72+		 (happy_var_1 {- ExpressionStatement -}+	)}++happyReduce_223 = happyReduce 6# 66# 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 happyOut55 happy_x_3 of { happy_var_3 -> +	case happyOut75 happy_x_5 of { happy_var_5 -> +	case happyOut74 happy_x_6 of { happy_var_6 -> +	happyIn73+		 ((if (happy_var_6 /= []) then  +                       (if (length happy_var_6 == 1) then (AST.JSIfElse happy_var_3 happy_var_5 (head happy_var_6)) +                                            else (AST.JSIfElse happy_var_3 (AST.JSBlock (AST.JSStatementList [happy_var_5])) (last happy_var_6))) +                     else (AST.JSIf happy_var_3 happy_var_5))+	) `HappyStk` happyRest}}}++happyReduce_224 = happySpecReduce_2  67# happyReduction_224+happyReduction_224 happy_x_2+	happy_x_1+	 =  case happyOut59 happy_x_2 of { happy_var_2 -> +	happyIn74+		 ([happy_var_2]+	)}++happyReduce_225 = happySpecReduce_0  67# happyReduction_225+happyReduction_225  =  happyIn74+		 ([]+	)++happyReduce_226 = happySpecReduce_2  68# happyReduction_226+happyReduction_226 happy_x_2+	happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	happyIn75+		 ((AST.JSBlock (AST.JSStatementList [happy_var_1]))+	)}++happyReduce_227 = happySpecReduce_1  68# happyReduction_227+happyReduction_227 happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	happyIn75+		 (happy_var_1 {- StatementSemi -}+	)}++happyReduce_228 = happySpecReduce_1  68# happyReduction_228+happyReduction_228 happy_x_1+	 =  happyIn75+		 (AST.JSLiteral ";"+	)++happyReduce_229 = happyReduce 7# 69# happyReduction_229+happyReduction_229 (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 happyOut59 happy_x_2 of { happy_var_2 -> +	case happyOut55 happy_x_5 of { happy_var_5 -> +	case happyOut7 happy_x_7 of { happy_var_7 -> +	happyIn76+		 ((AST.JSDoWhile happy_var_2 happy_var_5 happy_var_7)+	) `HappyStk` happyRest}}}++happyReduce_230 = happyReduce 5# 69# happyReduction_230+happyReduction_230 (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_3 of { happy_var_3 -> +	case happyOut59 happy_x_5 of { happy_var_5 -> +	happyIn76+		 ((AST.JSWhile happy_var_3 happy_var_5)+	) `HappyStk` happyRest}}++happyReduce_231 = happyReduce 9# 69# happyReduction_231+happyReduction_231 (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 happyOut58 happy_x_3 of { happy_var_3 -> +	case happyOut57 happy_x_5 of { happy_var_5 -> +	case happyOut57 happy_x_7 of { happy_var_7 -> +	case happyOut59 happy_x_9 of { happy_var_9 -> +	happyIn76+		 ((AST.JSFor happy_var_3 happy_var_5 happy_var_7 happy_var_9)+	) `HappyStk` happyRest}}}}++happyReduce_232 = happyReduce 10# 69# happyReduction_232+happyReduction_232 (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 happyOut66 happy_x_4 of { happy_var_4 -> +	case happyOut57 happy_x_6 of { happy_var_6 -> +	case happyOut57 happy_x_8 of { happy_var_8 -> +	case happyOut59 happy_x_10 of { happy_var_10 -> +	happyIn76+		 ((AST.JSForVar happy_var_4 happy_var_6 happy_var_8 happy_var_10)+	) `HappyStk` happyRest}}}}++happyReduce_233 = happyReduce 7# 69# happyReduction_233+happyReduction_233 (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 happyOut30 happy_x_3 of { happy_var_3 -> +	case happyOut55 happy_x_5 of { happy_var_5 -> +	case happyOut59 happy_x_7 of { happy_var_7 -> +	happyIn76+		 ((AST.JSForIn happy_var_3 happy_var_5 happy_var_7)+	) `HappyStk` happyRest}}}++happyReduce_234 = happyReduce 8# 69# happyReduction_234+happyReduction_234 (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 happyOut68 happy_x_4 of { happy_var_4 -> +	case happyOut55 happy_x_6 of { happy_var_6 -> +	case happyOut59 happy_x_8 of { happy_var_8 -> +	happyIn76+		 ((AST.JSForVarIn happy_var_4 happy_var_6 happy_var_8)+	) `HappyStk` happyRest}}}++happyReduce_235 = happySpecReduce_2  70# happyReduction_235+happyReduction_235 happy_x_2+	happy_x_1+	 =  case happyOut7 happy_x_2 of { happy_var_2 -> +	happyIn77+		 ((AST.JSContinue [happy_var_2])+	)}++happyReduce_236 = happySpecReduce_3  70# happyReduction_236+happyReduction_236 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn77+		 ((AST.JSContinue [happy_var_2,happy_var_3])+	)}}++happyReduce_237 = happySpecReduce_2  71# happyReduction_237+happyReduction_237 happy_x_2+	happy_x_1+	 =  case happyOut7 happy_x_2 of { happy_var_2 -> +	happyIn78+		 ((AST.JSBreak [] [happy_var_2])+	)}++happyReduce_238 = happySpecReduce_3  71# happyReduction_238+happyReduction_238 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn78+		 ((AST.JSBreak [happy_var_2] [happy_var_3])+	)}}++happyReduce_239 = happySpecReduce_2  72# happyReduction_239+happyReduction_239 happy_x_2+	happy_x_1+	 =  case happyOut7 happy_x_2 of { happy_var_2 -> +	happyIn79+		 ((AST.JSReturn [happy_var_2])+	)}++happyReduce_240 = happySpecReduce_3  72# happyReduction_240+happyReduction_240 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_2 of { happy_var_2 -> +	case happyOut7 happy_x_3 of { happy_var_3 -> +	happyIn79+		 ((AST.JSReturn [happy_var_2,happy_var_3])+	)}}++happyReduce_241 = happyReduce 6# 73# happyReduction_241+happyReduction_241 (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 happyOut55 happy_x_3 of { happy_var_3 -> +	case happyOut59 happy_x_5 of { happy_var_5 -> +	case happyOut7 happy_x_6 of { happy_var_6 -> +	happyIn80+		 ((AST.JSWith happy_var_3 [happy_var_5,happy_var_6])+	) `HappyStk` happyRest}}}++happyReduce_242 = happyReduce 5# 74# happyReduction_242+happyReduction_242 (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_3 of { happy_var_3 -> +	case happyOut82 happy_x_5 of { happy_var_5 -> +	happyIn81+		 ((AST.JSSwitch happy_var_3 happy_var_5)+	) `HappyStk` happyRest}}++happyReduce_243 = happySpecReduce_3  75# happyReduction_243+happyReduction_243 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut83 happy_x_2 of { happy_var_2 -> +	happyIn82+		 (happy_var_2            {- CaseBlock1 -}+	)}++happyReduce_244 = happyReduce 5# 75# happyReduction_244+happyReduction_244 (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 happyOut85 happy_x_3 of { happy_var_3 -> +	case happyOut83 happy_x_4 of { happy_var_4 -> +	happyIn82+		 ((happy_var_2++(happy_var_3:happy_var_4)) {- CaseBlock2 -}+	) `HappyStk` happyRest}}}++happyReduce_245 = happySpecReduce_1  76# happyReduction_245+happyReduction_245 happy_x_1+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> +	happyIn83+		 ([happy_var_1] {- CaseClauses1 -}+	)}++happyReduce_246 = happySpecReduce_2  76# happyReduction_246+happyReduction_246 happy_x_2+	happy_x_1+	 =  case happyOut83 happy_x_1 of { happy_var_1 -> +	case happyOut84 happy_x_2 of { happy_var_2 -> +	happyIn83+		 ((happy_var_1++[happy_var_2]) {- CaseClauses2 -}+	)}}++happyReduce_247 = happySpecReduce_0  76# happyReduction_247+happyReduction_247  =  happyIn83+		 ([]+	)++happyReduce_248 = happyReduce 4# 77# happyReduction_248+happyReduction_248 (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 happyOut63 happy_x_4 of { happy_var_4 -> +	happyIn84+		 ((AST.JSCase happy_var_2 happy_var_4)+	) `HappyStk` happyRest}}++happyReduce_249 = happySpecReduce_3  77# happyReduction_249+happyReduction_249 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_2 of { happy_var_2 -> +	happyIn84+		 ((AST.JSCase happy_var_2 (AST.JSStatementList []))+	)}++happyReduce_250 = happySpecReduce_2  78# happyReduction_250+happyReduction_250 happy_x_2+	happy_x_1+	 =  happyIn85+		 ((AST.JSDefault (AST.JSStatementList []))+	)++happyReduce_251 = happySpecReduce_3  78# happyReduction_251+happyReduction_251 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut63 happy_x_3 of { happy_var_3 -> +	happyIn85+		 ((AST.JSDefault happy_var_3)+	)}++happyReduce_252 = happySpecReduce_3  79# happyReduction_252+happyReduction_252 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	case happyOut59 happy_x_3 of { happy_var_3 -> +	happyIn86+		 ((AST.JSLabelled happy_var_1 happy_var_3)+	)}}++happyReduce_253 = happySpecReduce_2  80# happyReduction_253+happyReduction_253 happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_2 of { happy_var_2 -> +	happyIn87+		 ((AST.JSThrow happy_var_2)+	)}++happyReduce_254 = happySpecReduce_3  81# happyReduction_254+happyReduction_254 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut62 happy_x_2 of { happy_var_2 -> +	case happyOut89 happy_x_3 of { happy_var_3 -> +	happyIn88+		 ((AST.JSTry happy_var_2 happy_var_3)         {- TryStatement1 -}+	)}}++happyReduce_255 = happySpecReduce_3  81# happyReduction_255+happyReduction_255 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut62 happy_x_2 of { happy_var_2 -> +	case happyOut91 happy_x_3 of { happy_var_3 -> +	happyIn88+		 ((AST.JSTry happy_var_2 [happy_var_3])       {- TryStatement2 -}+	)}}++happyReduce_256 = happyReduce 4# 81# happyReduction_256+happyReduction_256 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut62 happy_x_2 of { happy_var_2 -> +	case happyOut89 happy_x_3 of { happy_var_3 -> +	case happyOut91 happy_x_4 of { happy_var_4 -> +	happyIn88+		 ((AST.JSTry happy_var_2 (happy_var_3++[happy_var_4])) {- TryStatement3 -}+	) `HappyStk` happyRest}}}++happyReduce_257 = happySpecReduce_1  82# happyReduction_257+happyReduction_257 happy_x_1+	 =  case happyOut90 happy_x_1 of { happy_var_1 -> +	happyIn89+		 ([happy_var_1]       {- Catches 1 -}+	)}++happyReduce_258 = happySpecReduce_2  82# happyReduction_258+happyReduction_258 happy_x_2+	happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	case happyOut90 happy_x_2 of { happy_var_2 -> +	happyIn89+		 ((happy_var_1++[happy_var_2]) {- Catches 2 -}+	)}}++happyReduce_259 = happyReduce 5# 83# happyReduction_259+happyReduction_259 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut62 happy_x_5 of { happy_var_5 -> +	happyIn90+		 ((AST.JSCatch happy_var_3 [] happy_var_5)+	) `HappyStk` happyRest}}++happyReduce_260 = happyReduce 7# 83# happyReduction_260+happyReduction_260 (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 happyOut15 happy_x_3 of { happy_var_3 -> +	case happyOut50 happy_x_5 of { happy_var_5 -> +	case happyOut62 happy_x_7 of { happy_var_7 -> +	happyIn90+		 ((AST.JSCatch happy_var_3 happy_var_5 happy_var_7)+	) `HappyStk` happyRest}}}++happyReduce_261 = happySpecReduce_2  84# happyReduction_261+happyReduction_261 happy_x_2+	happy_x_1+	 =  case happyOut62 happy_x_2 of { happy_var_2 -> +	happyIn91+		 ((AST.JSFinally happy_var_2)+	)}++happyReduce_262 = happySpecReduce_2  85# happyReduction_262+happyReduction_262 happy_x_2+	happy_x_1+	 =  happyIn92+		 ((AST.JSLiteral "debugger")+	)++happyReduce_263 = happyReduce 8# 86# happyReduction_263+happyReduction_263 (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 happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut96 happy_x_4 of { happy_var_4 -> +	case happyOut97 happy_x_7 of { happy_var_7 -> +	happyIn93+		 ((AST.JSFunction happy_var_2 happy_var_4 happy_var_7)+	) `HappyStk` happyRest}}}++happyReduce_264 = happyReduce 7# 86# happyReduction_264+happyReduction_264 (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 happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut97 happy_x_6 of { happy_var_6 -> +	happyIn93+		 ((AST.JSFunction happy_var_2 [] happy_var_6)+	) `HappyStk` happyRest}}++happyReduce_265 = happyReduce 7# 87# happyReduction_265+happyReduction_265 (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 happyOut95 happy_x_2 of { happy_var_2 -> +	case happyOut97 happy_x_6 of { happy_var_6 -> +	happyIn94+		 ((AST.JSFunctionExpression happy_var_2 [] happy_var_6)+	) `HappyStk` happyRest}}++happyReduce_266 = happyReduce 8# 87# happyReduction_266+happyReduction_266 (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 happyOut95 happy_x_2 of { happy_var_2 -> +	case happyOut96 happy_x_4 of { happy_var_4 -> +	case happyOut97 happy_x_7 of { happy_var_7 -> +	happyIn94+		 ((AST.JSFunctionExpression happy_var_2 happy_var_4 happy_var_7)+	) `HappyStk` happyRest}}}++happyReduce_267 = happySpecReduce_1  88# happyReduction_267+happyReduction_267 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn95+		 ([happy_var_1] {- IdentifierOpt -}+	)}++happyReduce_268 = happySpecReduce_0  88# happyReduction_268+happyReduction_268  =  happyIn95+		 ([]   {- IdentifierOpt -}+	)++happyReduce_269 = happySpecReduce_1  89# happyReduction_269+happyReduction_269 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn96+		 ([happy_var_1] {- FormalParameterList -}+	)}++happyReduce_270 = happySpecReduce_3  89# happyReduction_270+happyReduction_270 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut96 happy_x_1 of { happy_var_1 -> +	case happyOut15 happy_x_3 of { happy_var_3 -> +	happyIn96+		 ((happy_var_1++[happy_var_3])+	)}}++happyReduce_271 = happySpecReduce_1  90# happyReduction_271+happyReduction_271 happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	happyIn97+		 ((AST.JSFunctionBody [happy_var_1])+	)}++happyReduce_272 = happySpecReduce_0  90# happyReduction_272+happyReduction_272  =  happyIn97+		 ((AST.JSFunctionBody [])+	)++happyReduce_273 = happySpecReduce_1  91# happyReduction_273+happyReduction_273 happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	happyIn98+		 (happy_var_1 {- Program -}+	)}++happyReduce_274 = happySpecReduce_1  92# happyReduction_274+happyReduction_274 happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	happyIn99+		 ((AST.JSSourceElements [happy_var_1])+	)}++happyReduce_275 = happySpecReduce_2  92# happyReduction_275+happyReduction_275 happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_1 of { happy_var_1 -> +	case happyOut101 happy_x_2 of { happy_var_2 -> +	happyIn99+		 ((combineSourceElements happy_var_1 happy_var_2)+	)}}++happyReduce_276 = happySpecReduce_1  93# happyReduction_276+happyReduction_276 happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	happyIn100+		 ((AST.JSSourceElementsTop [happy_var_1])+	)}++happyReduce_277 = happySpecReduce_2  93# happyReduction_277+happyReduction_277 happy_x_2+	happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	case happyOut101 happy_x_2 of { happy_var_2 -> +	happyIn100+		 ((combineSourceElementsTop happy_var_1 happy_var_2)+	)}}++happyReduce_278 = happySpecReduce_1  94# happyReduction_278+happyReduction_278 happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	happyIn101+		 (happy_var_1 {- SourceElement1 -}+	)}++happyReduce_279 = happySpecReduce_1  94# happyReduction_279+happyReduction_279 happy_x_1+	 =  case happyOut93 happy_x_1 of { happy_var_1 -> +	happyIn101+		 (happy_var_1 {- SourceElement2 -}+	)}++happyNewToken action sts stk+	= lexCont(\tk -> +	let cont i = happyDoAction i tk action sts stk in+	case tk of {+	EOFToken {} -> happyDoAction 79# tk action sts stk;+	SemiColonToken {} -> cont 1#;+	CommaToken {} -> cont 2#;+	HookToken {} -> cont 3#;+	ColonToken {} -> cont 4#;+	OrToken {} -> cont 5#;+	AndToken {} -> cont 6#;+	BitwiseOrToken {} -> cont 7#;+	BitwiseXorToken {} -> cont 8#;+	BitwiseAndToken {} -> cont 9#;+	StrictEqToken {} -> cont 10#;+	EqToken {} -> cont 11#;+	SimpleAssignToken {} -> cont 12#;+	StrictNeToken {} -> cont 13#;+	NeToken {} -> cont 14#;+	LshToken {} -> cont 15#;+	LeToken {} -> cont 16#;+	LtToken {} -> cont 17#;+	UrshToken {} -> cont 18#;+	RshToken {} -> cont 19#;+	GeToken {} -> cont 20#;+	GtToken {} -> cont 21#;+	IncrementToken {} -> cont 22#;+	DecrementToken {} -> cont 23#;+	PlusToken {} -> cont 24#;+	MinusToken {} -> cont 25#;+	MulToken {} -> cont 26#;+	DivToken {} -> cont 27#;+	ModToken {} -> cont 28#;+	NotToken {} -> cont 29#;+	BitwiseNotToken {} -> cont 30#;+	DotToken {} -> cont 31#;+	LeftBracketToken {} -> cont 32#;+	RightBracketToken {} -> cont 33#;+	LeftCurlyToken {} -> cont 34#;+	RightCurlyToken {} -> cont 35#;+	LeftParenToken {} -> cont 36#;+	RightParenToken {} -> cont 37#;+	CondcommentEndToken {} -> cont 38#;+	BreakToken {} -> cont 39#;+	CaseToken {} -> cont 40#;+	CatchToken {} -> cont 41#;+	ConstToken {} -> cont 42#;+	ContinueToken {} -> cont 43#;+	DebuggerToken {} -> cont 44#;+	DefaultToken {} -> cont 45#;+	DeleteToken {} -> cont 46#;+	DoToken {} -> cont 47#;+	ElseToken {} -> cont 48#;+	EnumToken {} -> cont 49#;+	FalseToken {} -> cont 50#;+	FinallyToken {} -> cont 51#;+	ForToken {} -> cont 52#;+	FunctionToken {} -> cont 53#;+	GetToken {} -> cont 54#;+	IfToken {} -> cont 55#;+	InToken {} -> cont 56#;+	InstanceofToken {} -> cont 57#;+	NewToken {} -> cont 58#;+	NullToken {} -> cont 59#;+	ReturnToken {} -> cont 60#;+	SetToken {} -> cont 61#;+	SwitchToken {} -> cont 62#;+	ThisToken {} -> cont 63#;+	ThrowToken {} -> cont 64#;+	TrueToken {} -> cont 65#;+	TryToken {} -> cont 66#;+	TypeofToken {} -> cont 67#;+	VarToken {} -> cont 68#;+	VoidToken {} -> cont 69#;+	WhileToken {} -> cont 70#;+	WithToken {} -> cont 71#;+	IdentifierToken {} -> cont 72#;+	DecimalToken {} -> cont 73#;+	HexIntegerToken {} -> cont 74#;+	StringToken {} -> cont 75#;+	RegExToken {} -> cont 76#;+	AssignToken {} -> cont 77#;+	FutureToken {} -> cont 78#;+	_ -> 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 = parseError tk++parseProgram = happySomeParser where+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut98 x))++parseLiteral = happySomeParser where+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut8 x))++parsePrimaryExpression = happySomeParser where+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut14 x))++parseStatement = happySomeParser where+  happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut59 x))++happySeq = happyDontSeq+++combineSourceElements :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineSourceElements (AST.JSSourceElements xs) x = (AST.JSSourceElements (xs++[x]) )++combineSourceElementsTop :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineSourceElementsTop (AST.JSSourceElementsTop xs) x = (AST.JSSourceElementsTop (xs++[x]) )++combineStatements :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineStatements (AST.JSStatementList xs) (AST.JSStatementList ys) = (AST.JSStatementList (xs++ys) )+combineStatements (AST.JSStatementList xs) y = (AST.JSStatementList (xs++[y]) )++parseError :: Token -> P a +parseError = throwError . UnexpectedToken ++flattenExpression :: AST.JSNode -> [AST.JSNode] -> AST.JSNode+flattenExpression (AST.JSExpression xs) e = AST.JSExpression (xs++litComma++e)+                        where+                          litComma :: [AST.JSNode]+                          litComma = [(AST.JSLiteral ",")]+{-# 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+++++-----------------------------------------------------------------------------+-- Error recovery (0# is the error token)++-- parse error if we are in recovery and we fail again+happyFail  0# tk old_st _ stk =+--	trace "failing" $ +    	happyError_ tk++{-  We don't need state discarding for our restricted implementation of+    "error".  In fact, it can cause some bogus parses, so I've disabled it+    for now --SDM++-- discard a state+happyFail  0# tk old_st (HappyCons ((action)) (sts)) +						(saved_tok `HappyStk` _ `HappyStk` stk) =+--	trace ("discarding state, depth " ++ show (length stk))  $+	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))+-}++-- Enter error recovery: generate an error token,+--                       save the old token and carry on.+happyFail  i tk (action) sts stk =+--      trace "entering error recovery" $+	happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)++-- Internal happy errors:++notHappyAtAll :: a+notHappyAtAll = error "Internal Happy error\n"++-----------------------------------------------------------------------------+-- Hack to get the typechecker to accept our action functions+++happyTcHack :: Happy_GHC_Exts.Int# -> a -> a+happyTcHack x y = y+{-# INLINE happyTcHack #-}+++-----------------------------------------------------------------------------+-- Seq-ing.  If the --strict flag is given, then Happy emits +--	happySeq = happyDoSeq+-- otherwise it emits+-- 	happySeq = happyDontSeq++happyDoSeq, happyDontSeq :: a -> b -> b+happyDoSeq   a b = a `seq` b+happyDontSeq a b = b++-----------------------------------------------------------------------------+-- Don't inline any functions from the template.  GHC has a nasty habit+-- of deciding to inline happyGoto everywhere, which increases the size of+-- the generated parser quite a bit.+++{-# NOINLINE happyDoAction #-}+{-# NOINLINE happyTable #-}+{-# NOINLINE happyCheck #-}+{-# NOINLINE happyActOffsets #-}+{-# NOINLINE happyGotoOffsets #-}+{-# NOINLINE happyDefActions #-}++{-# NOINLINE happyShift #-}+{-# NOINLINE happySpecReduce_0 #-}+{-# NOINLINE happySpecReduce_1 #-}+{-# NOINLINE happySpecReduce_2 #-}+{-# NOINLINE happySpecReduce_3 #-}+{-# NOINLINE happyReduce #-}+{-# NOINLINE happyMonadReduce #-}+{-# NOINLINE happyGoto #-}+{-# NOINLINE happyFail #-}++-- end of Happy Template.
dist/build/Language/JavaScript/Parser/Lexer.hs view

file too large to diff

language-javascript.cabal view
@@ -1,5 +1,5 @@ Name:                language-javascript-Version:             0.2.2+Version:             0.3.0 Synopsis:            Parser for JavaScript Description:         Parses Javascript into an Abstract Syntax Tree (AST).  Initially intended as frontend to hjsmin. Homepage:            https://github.com/alanz/language-javascript@@ -34,6 +34,7 @@                        Language.JavaScript.Parser.Parser                        Language.JavaScript.Parser.Lexer                        Language.JavaScript.Parser.Grammar+                       Language.JavaScript.Parser.Grammar5                        Language.JavaScript.Parser.AST   Other-modules:       Language.JavaScript.Parser.LexerUtils                        Language.JavaScript.Parser.ParseError
runtests.hs view
@@ -6,11 +6,21 @@  import Control.Monad (liftM) import Language.JavaScript.Parser.Parser-import Language.JavaScript.Parser.Grammar+--import Language.JavaScript.Parser.Grammar+import Language.JavaScript.Parser.Grammar5  main :: IO () main = defaultMain [testSuite] +one :: IO ()+one = defaultMain [oneSuite]++oneSuite :: Test+oneSuite = testGroup "One"+ [+   testCase "ObjectLiteral7"    (testProg "x={get foo() {return 1},set foo(a) {x=a}}"  "")+ ]  + testSuite :: Test testSuite = testGroup "Parser"     [ @@ -18,7 +28,8 @@     , testCase "LiteralNull"       (testLiteral "null"     "Right (JSLiteral \"null\")")     , testCase "LiteralFalse"      (testLiteral "false"    "Right (JSLiteral \"false\")")     , testCase "LiteralTrue"       (testLiteral "true"     "Right (JSLiteral \"true\")")-    , testCase "LiteralHexInteger" (testLiteral "0x1234fF" "Right (JSHexInteger \"0x1234fF\")")+    , testCase "LiteralHexInteger1" (testLiteral "0x1234fF" "Right (JSHexInteger \"0x1234fF\")")+    , testCase "LiteralHexInteger2" (testLiteral "0X1234fF" "Right (JSHexInteger \"0X1234fF\")")     , testCase "LiteralDecimal1"   (testLiteral "1.0e4"    "Right (JSDecimal \"1.0e4\")")     , testCase "LiteralDecimal2"   (testLiteral "2.3E6"    "Right (JSDecimal \"2.3E6\")")     , testCase "LiteralDecimal3"   (testLiteral "4.5"      "Right (JSDecimal \"4.5\")")@@ -59,12 +70,17 @@     , testCase "ObjectLiteral2"    (testPE "{x:1}"    "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"]])")     , testCase "ObjectLiteral3"    (testPE "{x:1,y:2}"     "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"],JSPropertyNameandValue (JSIdentifier \"y\") [JSDecimal \"2\"]])")       -    , testCase "ObjectLiteral4"    (testPE "{evaluate:evaluate,load:function load(s){if(x)return s;1}}" "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"evaluate\") [JSIdentifier \"evaluate\"],JSPropertyNameandValue (JSIdentifier \"load\") [JSFunction (JSIdentifier \"load\") [JSIdentifier \"s\"] (JSFunctionBody [JSSourceElements [JSIf (JSExpression [JSIdentifier \"x\"]) (JSReturn [JSExpression [JSIdentifier \"s\"],JSLiteral \";\"]),JSExpression [JSDecimal \"1\"]]])]])")+    , testCase "ObjectLiteral4"    (testPE "{evaluate:evaluate,load:function load(s){if(x)return s;1}}" "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"evaluate\") [JSIdentifier \"evaluate\"],JSPropertyNameandValue (JSIdentifier \"load\") [JSFunctionExpression [JSIdentifier \"load\"] [JSIdentifier \"s\"] (JSFunctionBody [JSSourceElements [JSIf (JSExpression [JSIdentifier \"x\"]) (JSReturn [JSExpression [JSIdentifier \"s\"],JSLiteral \";\"]),JSExpression [JSDecimal \"1\"]]])]])")      , testCase "ObjectLiteral5"    (testPE "{x:1,}"    "Right (JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"x\") [JSDecimal \"1\"],JSLiteral \",\"])")          , testCase "ObjectLiteral6"    (testProg "a={\n  values: 7,\n}\n" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"values\") [JSDecimal \"7\"],JSLiteral \",\"]]])")       +    -- Edition 5 extensions  +    , testCase "ObjectLiteral7"    (testProg "x={get foo() {return 1},set foo(a) {x=a}}"  "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSObjectLiteral [JSPropertyAccessor \"get\" (JSIdentifier \"foo\") [] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSDecimal \"1\"],JSLiteral \"\"]]]),JSPropertyAccessor \"set\" (JSIdentifier \"foo\") [JSIdentifier \"a\"] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"x\",JSOperator \"=\",JSIdentifier \"a\"]]])]]])")+      +    , testCase "ObjectLiteral8"    (testProg "a={if:1,interface:2}" "Right (JSSourceElementsTop [JSExpression [JSIdentifier \"a\",JSOperator \"=\",JSObjectLiteral [JSPropertyNameandValue (JSIdentifier \"if\") [JSDecimal \"1\"],JSPropertyNameandValue (JSIdentifier \"interface\") [JSDecimal \"2\"]]]])")+           , testCase "ExpressionParen"   (testPE "(56)"     "Right (JSExpressionParen (JSExpression [JSDecimal \"56\"]))")            , testCase "Statement1"        (testStmt "x"        "Right (JSExpression [JSIdentifier \"x\"])")@@ -256,6 +272,10 @@     , testCase "bug2.b" (testProg "function() {\nz = function z(o) {\nreturn r;\n};}" "Right (JSSourceElementsTop [JSExpression [JSFunctionExpression [] [] (JSFunctionBody [JSSourceElements [JSExpression [JSIdentifier \"z\",JSOperator \"=\",JSFunctionExpression [JSIdentifier \"z\"] [JSIdentifier \"o\"] (JSFunctionBody [JSSourceElements [JSReturn [JSExpression [JSIdentifier \"r\"],JSLiteral \";\"]]])],JSLiteral \";\"]])]])") +   , testCase "02_sm.js"   (testProg "{zero}\none1;two\n{three\nfour;five;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"one1\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"five\"],JSLiteral \";\",JSBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])])])")+     +   , testCase "02_sm.js.2" (testProg "{zero}\nget;two\n{three\nfour;set;\n{\nsix;{seven;}\n}\n}" "Right (JSSourceElementsTop [JSBlock (JSStatementList [JSExpression [JSIdentifier \"zero\"]]),JSExpression [JSIdentifier \"get\"],JSLiteral \";\",JSExpression [JSIdentifier \"two\"],JSBlock (JSStatementList [JSExpression [JSIdentifier \"three\"],JSExpression [JSIdentifier \"four\"],JSLiteral \";\",JSExpression [JSIdentifier \"set\"],JSLiteral \";\",JSBlock (JSStatementList [JSExpression [JSIdentifier \"six\"],JSLiteral \";\",JSBlock (JSStatementList [JSExpression [JSIdentifier \"seven\"],JSLiteral \";\"])])])])")+     ]  srcHelloWorld = "Hello"@@ -275,6 +295,7 @@ testStmt str expected = expected @=? (show $ parseUsing parseStatement str "src")  testProg str expected = expected @=? (show $ parseUsing parseProgram str "src")+--testProg str expected = expected @=? (show $ readJs str )  testFile fileName expected = do   res <- parseFile fileName
src/Language/JavaScript/Parser.hs view
@@ -6,7 +6,7 @@        , JSNode(..)          , ParseError(..)          -- Source locations  -       , AlexPosn+       , AlexPosn(..)        -- , SrcLocation (..)        -- , SrcSpan (..)        -- , Span (..)
src/Language/JavaScript/Parser/AST.hs view
@@ -42,6 +42,7 @@               | JSObjectLiteral [JSNode]                 | JSOperator String                 | JSPropertyNameandValue JSNode [JSNode]+              | JSPropertyAccessor String JSNode [JSNode] JSNode               | JSRegEx String               | JSReturn [JSNode]               | JSSourceElements [JSNode]
+ src/Language/JavaScript/Parser/Grammar5.y view
@@ -0,0 +1,983 @@+{+module Language.JavaScript.Parser.Grammar5 (+    parseProgram+  , parseLiteral+  , parsePrimaryExpression+  , parseStatement+  ) where++import Control.Monad.Error.Class (throwError)+import Data.Char+import Language.JavaScript.Parser.Lexer+import Language.JavaScript.Parser.ParserMonad+import Language.JavaScript.Parser.SrcLocation+import qualified Language.JavaScript.Parser.AST as AST++}++-- The name of the generated function to be exported from the module+%name parseProgram           Program+%name parseLiteral           Literal+%name parsePrimaryExpression PrimaryExpression+%name parseStatement         Statement++%tokentype { Token }+%error { parseError }+%monad { P } { thenP } { returnP }+%lexer { lexCont } { EOFToken {} }+++%token ++     ';'	{ SemiColonToken {} }+     ','	{ CommaToken {} }+     '?'	{ HookToken {} }+     ':'	{ ColonToken {} }+     '||'	{ OrToken {} }+     '&&'	{ AndToken {} }+     '|'	{ BitwiseOrToken {} }+     '^'	{ BitwiseXorToken {} }+     '&'	{ BitwiseAndToken {} }+     '==='	{ StrictEqToken {} }+     '=='	{ EqToken {} }+     '='	{ SimpleAssignToken {} }+     '!=='	{ StrictNeToken {} }+     '!='	{ NeToken {} }+     '<<'	{ LshToken {} }+     '<='	{ LeToken {} }+     '<'	{ LtToken {} }+     '>>>'	{ UrshToken {} }+     '>>'	{ RshToken {} }+     '>='	{ GeToken {} }+     '>'	{ GtToken {} }+     '++'	{ IncrementToken {} }+     '--'	{ DecrementToken {} }+     '+'	{ PlusToken {} }+     '-'	{ MinusToken {} }+     '*'	{ MulToken {} }+     '/'	{ DivToken {} }+     '%'	{ ModToken {} }+     '!'	{ NotToken {} }+     '~'	{ BitwiseNotToken {} }+     '.'	{ DotToken {} }+     '['	{ LeftBracketToken {} }+     ']'	{ RightBracketToken {} }+     '{'	{ LeftCurlyToken {} }+     '}'	{ RightCurlyToken {} }+     '('	{ LeftParenToken {} }+     ')'	{ RightParenToken {} }+     '@*/'	{ CondcommentEndToken {} }+  +     'break'      { BreakToken {} }+     'case'       { CaseToken {} }+     'catch'      { CatchToken {} }+     'const'      { ConstToken {} }+     'continue'   { ContinueToken {} }+     'debugger'   { DebuggerToken {} }+     'default'    { DefaultToken {} }+     'delete'     { DeleteToken {} }+     'do'         { DoToken {} }+     'else'       { ElseToken {} }+     'enum'       { EnumToken {} }+     'false'      { FalseToken {} }+     'finally'    { FinallyToken {} }+     'for'        { ForToken {} }+     'function'   { FunctionToken {} }+     'get'        { GetToken {} }+     'if'         { IfToken {} }+     'in'         { InToken {} }+     'instanceof' { InstanceofToken {} }+     'new'        { NewToken {} }+     'null'       { NullToken {} }+     'return'     { ReturnToken {} }+     'set'        { SetToken {} }+     'switch'     { SwitchToken {} }+     'this'       { ThisToken {} }+     'throw'      { ThrowToken {} }+     'true'       { TrueToken {} }+     'try'        { TryToken {} }+     'typeof'     { TypeofToken {} }+     'var'        { VarToken {} }+     'void'       { VoidToken {} }+     'while'      { WhileToken {} }+     'with'       { WithToken {} }+     +     +     'ident'      { IdentifierToken {} }+     'decimal'    { DecimalToken {} }+     'hexinteger' { HexIntegerToken {} }+     'string'     { StringToken {} }+     'regex'      { RegExToken {} }+     'assign'     { AssignToken {} }++     'future'     { FutureToken {} }+++%%+++-- --------------------------------------------------------------------+-- Start of GOLD Grammar for Javascript, used as a base+-- --------------------------------------------------------------------++-- "Name"     = 'JavaScript Grammar'+-- "Author"   = 'M.Schnoor-Matriciani'+-- "Version"  = '0.9'+-- "About"    = 'JavaScript Grammar, Subset of ECMA Edition 3'++-- "Start Symbol" = <Program>+-- "Case Sensitive" = 'True'+ +-- ! ------------------------------------------------- Sets++-- {ID Head}      = {Letter} + [_] + [$]+-- {ID Tail}      = {Alphanumeric} + [_] + [$]+-- {String Chars1} = {Printable} + {HT} - ["\] +-- {String Chars2} = {Printable} + {HT} - [\''] +-- {Hex Digit}    = {Digit} + [ABCDEF] + [abcdef]+-- {RegExp Chars} = {Letter}+{Digit}+['^']+['$']+['*']+['+']+['?']+['{']+['}']+['|']+['-']+['.']+[',']+['#']+['[']+[']']+['_']+['<']+['>']+-- {Non Terminator} = {String Chars1} - {CR} - {LF}+-- {Non Zero Digits}={Digit}-[0]++-- ! ------------------------------------------------- Terminals++-- Identifier    = {ID Head}{ID Tail}*+-- StringLiteral = '"' ( {String Chars1} | '\' {Printable} )* '"' | '' ( {String Chars2} | '\' {Printable} )* ''++-- HexIntegerLiteral = '0x' {Hex Digit}+++-- RegExp         = '/' ({RegExp Chars} | '\' {Non Terminator})+ '/' ( 'g' | 'i' | 'm' )*+-- DecimalLiteral= {Non Zero Digits}+ '.' {Digit}* ('e' | 'E' ) {Non Zero Digits}+ {Digit}* |  {Non Zero Digits}+ '.' {Digit}* | '0' '.' {Digit}+ ('e' | 'E' ) {Non Zero Digits}+ {Digit}* | {Non Zero Digits}+ {Digit}* | '0' | '0' '.' {Digit}+++-- Comment Start = '/*'+-- Comment End   = '*/'+-- Comment Line  = '//'+++-- ! ------------------------------------------------- Rules++++-- ---------------------------------------------------------------------+-- Sort out automatically inserted semi-colons++AutoSemi :: { AST.JSNode }+AutoSemi : ';' { AST.JSLiteral ";"}+         |     { AST.JSLiteral ""}+           +-- ---------------------------------------------------------------------++-- Literal ::                                                                See 7.8+--         NullLiteral+--         BooleanLiteral+--         NumericLiteral+--         StringLiteral+Literal :: { AST.JSNode }+Literal : NullLiteral     {$1}+        | BooleanLiteral  {$1}+        | NumericLiteral  {$1}+        | StringLiteral   {$1}+        | RegularExpressionLiteral {$1}  ++NullLiteral :: { AST.JSNode }+NullLiteral : 'null' { AST.JSLiteral "null" }++BooleanLiteral :: { AST.JSNode }+BooleanLiteral : 'true' { AST.JSLiteral "true" }+               | 'false' { AST.JSLiteral "false" }++-- <Numeric Literal> ::= DecimalLiteral+--                     | HexIntegerLiteral+NumericLiteral :: { AST.JSNode }+NumericLiteral : 'decimal'    { AST.JSDecimal (token_literal $1)}+               | 'hexinteger' { AST.JSHexInteger (token_literal $1)}++StringLiteral :: { AST.JSNode }+StringLiteral : 'string'  {AST.JSStringLiteral (token_delimiter $1) (token_literal $1)}++-- <Regular Expression Literal> ::= RegExp +RegularExpressionLiteral :: { AST.JSNode }+RegularExpressionLiteral : 'regex' {AST.JSRegEx (token_literal $1)}++-- PrimaryExpression :                                                   See 11.1+--        this+--        Identifier+--        Literal+--        ArrayLiteral+--        ObjectLiteral+--        ( Expression )+PrimaryExpression :: { AST.JSNode }+PrimaryExpression : 'this'                   { AST.JSLiteral "this" }+                  | Identifier               { $1 {- PrimaryExpression1 -}}+                  | Literal                  { $1 {- PrimaryExpression2 -}}+                  | ArrayLiteral             { $1 {- PrimaryExpression3 -}}+                  | ObjectLiteral            { $1 {- PrimaryExpression4 -}}+                  | '(' Expression ')'       { AST.JSExpressionParen $2 }+                  +-- Identifier ::                                                            See 7.6+--         IdentifierName but not ReservedWord+-- IdentifierName ::                                                        See 7.6+--         IdentifierStart+--         IdentifierName IdentifierPart+Identifier :: { AST.JSNode }+Identifier : 'ident' { AST.JSIdentifier (token_literal $1) }+           | 'get'   { AST.JSIdentifier "get" }  +           | 'set'   { AST.JSIdentifier "set" }  ++-- TODO: make this include any reserved word too, including future ones+IdentifierName :: { AST.JSNode }+IdentifierName : Identifier {$1}+             | 'break'      { AST.JSIdentifier "break" }  +             | 'case'       { AST.JSIdentifier "case" }+             | 'catch'      { AST.JSIdentifier "catch" }+             | 'const'      { AST.JSIdentifier "const" }+             | 'continue'   { AST.JSIdentifier "continue" }+             | 'debugger'   { AST.JSIdentifier "debugger" }+             | 'default'    { AST.JSIdentifier "default" }+             | 'delete'     { AST.JSIdentifier "delete" }+             | 'do'         { AST.JSIdentifier "do" }+             | 'else'       { AST.JSIdentifier "else" }+             | 'enum'       { AST.JSIdentifier "enum" }+             | 'false'      { AST.JSIdentifier "false" }+             | 'finally'    { AST.JSIdentifier "finally" }+             | 'for'        { AST.JSIdentifier "for" }+             | 'function'   { AST.JSIdentifier "function" }+             | 'get'        { AST.JSIdentifier "get" }+             | 'if'         { AST.JSIdentifier "if" }+             | 'in'         { AST.JSIdentifier "in" }+             | 'instanceof' { AST.JSIdentifier "instanceof" }+             | 'new'        { AST.JSIdentifier "new" }+             | 'null'       { AST.JSIdentifier "null" }+             | 'return'     { AST.JSIdentifier "return" }+             | 'set'        { AST.JSIdentifier "set" }+             | 'switch'     { AST.JSIdentifier "switch" }+             | 'this'       { AST.JSIdentifier "this" }+             | 'throw'      { AST.JSIdentifier "throw" }+             | 'true'       { AST.JSIdentifier "true" }+             | 'try'        { AST.JSIdentifier "try" }+             | 'typeof'     { AST.JSIdentifier "typeof" }+             | 'var'        { AST.JSIdentifier "var" }+             | 'void'       { AST.JSIdentifier "void" }+             | 'while'      { AST.JSIdentifier "while" }+             | 'with'       { AST.JSIdentifier "with" }+             | 'future'     { AST.JSIdentifier (token_literal $1) }  ++++-- ArrayLiteral :                                                        See 11.1.4+--        [ Elisionopt ]+--        [ ElementList ]+--        [ ElementList , Elisionopt ]+ArrayLiteral :: { AST.JSNode }+ArrayLiteral : '[' ']'                         { AST.JSArrayLiteral [] }+             | '[' Elision ']'                 { AST.JSArrayLiteral $2 }+             | '[' ElementList ']'             { AST.JSArrayLiteral $2 }+             | '[' ElementList ',' Elision ']' { AST.JSArrayLiteral ($2++$4) }+             | '[' ElementList ',' ']'         { AST.JSArrayLiteral ($2++[AST.JSLiteral ","]) }++-- ElementList :                                                         See 11.1.4+--        Elisionopt AssignmentExpression+--        ElementList , Elisionopt AssignmentExpression+ElementList :: { [AST.JSNode] }+ElementList : Elision AssignmentExpression                 { ($1++$2) {- ElementList -}}+            | AssignmentExpression                         { $1 {- ElementList -}}+            | ElementList ',' Elision AssignmentExpression { ($1++[(AST.JSElision [])]++$3++$4) {- ElementList -}}+            | ElementList ',' AssignmentExpression         { ($1++[(AST.JSElision [])]++$3) {- ElementList -}}++-- Elision :                                                             See 11.1.4+--        ,+--        Elision ,+Elision :: { [AST.JSNode] }+Elision :  ','        { [(AST.JSElision [])] }+        | Elision ',' { $1 ++ [(AST.JSElision [])] }++-- ObjectLiteral :                                                       See 11.1.5+--        { }+--        { PropertyNameAndValueList }+--        { PropertyNameAndValueList , }+ObjectLiteral :: { AST.JSNode }+ObjectLiteral : '{' '}'                          { AST.JSObjectLiteral [] }+              | '{' PropertyNameandValueList '}' { AST.JSObjectLiteral $2 } +              | '{' PropertyNameandValueList ',' '}' { AST.JSObjectLiteral ($2++[AST.JSLiteral ","]) } ++-- <Property Name and Value List> ::= <Property Name> ':' <Assignment Expression>+--                                  | <Property Name and Value List> ',' <Property Name> ':' <Assignment Expression>++-- Seems we can have function declarations in the value part too                           +-- PropertyNameAndValueList :                                            See 11.1.5+--        PropertyAssignment+--        PropertyNameAndValueList , PropertyAssignment+PropertyNameandValueList :: { [ AST.JSNode ] }+PropertyNameandValueList : PropertyAssignment                              { [$1] {- PropertyNameandValueList1 -} }+                         | PropertyNameandValueList ',' PropertyAssignment { ($1 ++ [$3]) {- PropertyNameandValueList2 -} }++-- PropertyAssignment :                                                  See 11.1.5+--        PropertyName : AssignmentExpression+--        get PropertyName() { FunctionBody }+--        set PropertyName( PropertySetParameterList ) { FunctionBody }+-- TODO: not clear if get/set are keywords, or just used in a specific context. Puzzling.+PropertyAssignment :: { AST.JSNode }+PropertyAssignment : PropertyName ':' AssignmentExpression { (AST.JSPropertyNameandValue $1 $3) }+                   -- Should be "get" in next, but is not a Token+                   | 'get' PropertyName '(' ')' '{' FunctionBody '}' { (AST.JSPropertyAccessor "get" $2 [] $6) }+                   -- Should be "set" in next, but is not a Token+                   | 'set' PropertyName '(' PropertySetParameterList ')' '{' FunctionBody '}' +                       { (AST.JSPropertyAccessor "set" $2 [$4] $7) }++-- PropertyName :                                                        See 11.1.5+--        IdentifierName+--        StringLiteral+--        NumericLiteral+PropertyName :: { AST.JSNode }+PropertyName : IdentifierName { $1 {- PropertyName1 -}}+             | StringLiteral  { $1 {- PropertyName2 -}}+             | NumericLiteral { $1 {- PropertyName3 -}}++-- PropertySetParameterList :                                            See 11.1.5+--        Identifier+PropertySetParameterList :: { AST.JSNode }+PropertySetParameterList : Identifier { $1 {- PropertySetParameterList -}}++-- MemberExpression :                                           See 11.2+--        PrimaryExpression+--        FunctionExpression+--        MemberExpression [ Expression ]+--        MemberExpression . IdentifierName+--        new MemberExpression Arguments+MemberExpression :: { [AST.JSNode] }+MemberExpression : PrimaryExpression   { [$1] {- MemberExpression -}} +                 | FunctionExpression  { [$1] {- MemberExpression -}}+                 | MemberExpression '[' Expression ']' { [AST.JSMemberSquare $1 $3] }+                 | MemberExpression '.' IdentifierName { [AST.JSMemberDot $1 $3] } +                 | 'new' MemberExpression Arguments    { (((AST.JSLiteral "new "):$2)++[$3])}++-- MARK --++-- NewExpression :                                              See 11.2+--        MemberExpression+--        new NewExpression+NewExpression :: { [AST.JSNode] }+NewExpression : MemberExpression {$1 {- NewExpression -}} +              | 'new' NewExpression { (AST.JSLiteral "new "):$2 }++-- CallExpression :                                             See 11.2+--        MemberExpression Arguments+--        CallExpression Arguments+--        CallExpression [ Expression ]+--        CallExpression . IdentifierName+CallExpression :: { [AST.JSNode] }+CallExpression : MemberExpression Arguments        { $1++[$2] {- CallExpression -} } +               | CallExpression Arguments          { ($1++[(AST.JSCallExpression "()" [$2])]) }+               | CallExpression '[' Expression ']' { ($1++[(AST.JSCallExpression "[]" [$3])]) }+               | CallExpression '.' IdentifierName { ($1++[(AST.JSCallExpression "."  [$3])]) }++-- Arguments :                                                  See 11.2+--        ()+--        ( ArgumentList )+Arguments :: { AST.JSNode }+Arguments : '(' ')'               { (AST.JSArguments []) } +          | '(' ArgumentList ')'  { (AST.JSArguments $2) }++-- ArgumentList :                                               See 11.2+--        AssignmentExpression+--        ArgumentList , AssignmentExpression+ArgumentList :: { [[AST.JSNode]] }+ArgumentList : AssignmentExpression { [$1] {- ArgumentList -}}+             | ArgumentList ',' AssignmentExpression { $1++[$3] {- ArgumentList2 -} }++-- LeftHandSideExpression :                                     See 11.2+--        NewExpression+--        CallExpression+LeftHandSideExpression :: { [AST.JSNode] }+LeftHandSideExpression : NewExpression  { $1 {- LeftHandSideExpression1 -}}+                       | CallExpression { $1 {- LeftHandSideExpression12 -}} ++-- PostfixExpression :                                          See 11.3+--        LeftHandSideExpression+--                                  [no LineTerminator here]+--        LeftHandSideExpression                             +++--                                  [no LineTerminator here]+--        LeftHandSideExpression                             --+PostfixExpression :: { [AST.JSNode] }+PostfixExpression : LeftHandSideExpression { $1 {- PostfixExpression -} } +                  | PostfixExpression '++' {[(AST.JSExpressionPostfix "++" $1)]}+                  | PostfixExpression '--' {[(AST.JSExpressionPostfix "--" $1)]}++-- UnaryExpression :                                            See 11.4+--        PostfixExpression+--        delete UnaryExpression+--        void UnaryExpression+--        typeof UnaryExpression+--        ++ UnaryExpression+--        -- UnaryExpression+--        + UnaryExpression+--        - UnaryExpression+--        ~ UnaryExpression+--        ! UnaryExpression+UnaryExpression :: { [AST.JSNode] }+UnaryExpression : PostfixExpression { $1 {- UnaryExpression -} } +                | 'delete' UnaryExpression { ((AST.JSUnary "delete "):$2)}+                | 'void'   UnaryExpression { ((AST.JSUnary "void "):$2)}+                | 'typeof' UnaryExpression { ((AST.JSUnary "typeof "):$2)}+                | '++'     UnaryExpression { ((AST.JSUnary "++"):$2) } +                | '--'     UnaryExpression { ((AST.JSUnary "--"):$2)}+                | '+'      UnaryExpression { ((AST.JSUnary "+"):$2)}+                | '-'      UnaryExpression { ((AST.JSUnary "-"):$2)}+                | '~'      UnaryExpression { ((AST.JSUnary "~"):$2)}+                | '!'      UnaryExpression { ((AST.JSUnary "!"):$2)}++-- MultiplicativeExpression :                                   See 11.5+--        UnaryExpression+--        MultiplicativeExpression * UnaryExpression+--        MultiplicativeExpression / UnaryExpression+--        MultiplicativeExpression % UnaryExpression+MultiplicativeExpression :: { [AST.JSNode] }+MultiplicativeExpression : UnaryExpression { $1 {- MultiplicativeExpression -}} +                         | MultiplicativeExpression '*' UnaryExpression { [(AST.JSExpressionBinary "*" $1 $3)]}+                         | MultiplicativeExpression '/' UnaryExpression { [(AST.JSExpressionBinary "/" $1 $3)]}+                         | MultiplicativeExpression '%' UnaryExpression { [(AST.JSExpressionBinary "%" $1 $3)]}++-- AdditiveExpression :                                        See 11.6+--        MultiplicativeExpression+--        AdditiveExpression + MultiplicativeExpression+--        AdditiveExpression - MultiplicativeExpression+AdditiveExpression :: { [AST.JSNode] }+AdditiveExpression : AdditiveExpression '+' MultiplicativeExpression { [(AST.JSExpressionBinary "+" $1 $3)]}+                   | AdditiveExpression '-' MultiplicativeExpression { [(AST.JSExpressionBinary "-" $1 $3)]}+                   | MultiplicativeExpression { $1 {- (goRegExp $1)-} {- AdditiveExpression -} } ++-- ShiftExpression :                                           See 11.7+--        AdditiveExpression+--        ShiftExpression << AdditiveExpression+--        ShiftExpression >> AdditiveExpression+--        ShiftExpression >>> AdditiveExpression+ShiftExpression :: { [AST.JSNode] }+ShiftExpression : ShiftExpression '<<'  AdditiveExpression { [(AST.JSExpressionBinary "<<" $1 $3)]}+                | ShiftExpression '>>'  AdditiveExpression { [(AST.JSExpressionBinary ">>" $1 $3)]}+                | ShiftExpression '>>>' AdditiveExpression { [(AST.JSExpressionBinary ">>>" $1 $3)]}+                | AdditiveExpression { $1 {- ShiftExpression -}} ++-- RelationalExpression :                                      See 11.8+--        ShiftExpression+--        RelationalExpression < ShiftExpression+--        RelationalExpression > ShiftExpression+--        RelationalExpression <= ShiftExpression+--        RelationalExpression >= ShiftExpression+--        RelationalExpression instanceof ShiftExpression+--        RelationalExpression in ShiftExpression+RelationalExpression :: { [AST.JSNode] }+RelationalExpression : ShiftExpression { $1 {- RelationalExpression -}} +                     | RelationalExpression '<'  ShiftExpression { [(AST.JSExpressionBinary "<" $1 $3)]}+                     | RelationalExpression '>'  ShiftExpression { [(AST.JSExpressionBinary ">" $1 $3)]}+                     | RelationalExpression '<=' ShiftExpression { [(AST.JSExpressionBinary "<=" $1 $3)]}+                     | RelationalExpression '>=' ShiftExpression { [(AST.JSExpressionBinary ">=" $1 $3)]}+                     | RelationalExpression 'instanceof' ShiftExpression { [(AST.JSExpressionBinary " instanceof " $1 $3)]}+                     | RelationalExpression 'in' ShiftExpression { [(AST.JSExpressionBinary " in " $1 $3)]}++-- RelationalExpressionNoIn :                                  See 11.8+--        ShiftExpression+--        RelationalExpressionNoIn < ShiftExpression+--        RelationalExpressionNoIn > ShiftExpression+--        RelationalExpressionNoIn <= ShiftExpression+--        RelationalExpressionNoIn >= ShiftExpression+--        RelationalExpressionNoIn instanceof ShiftExpression+RelationalExpressionNoIn :: { [AST.JSNode] }+RelationalExpressionNoIn : ShiftExpression { $1 {- RelationalExpressionNoIn -}} +                     | RelationalExpressionNoIn '<'  ShiftExpression { [(AST.JSExpressionBinary "<" $1 $3)]}+                     | RelationalExpressionNoIn '>'  ShiftExpression { [(AST.JSExpressionBinary ">" $1 $3)]}+                     | RelationalExpressionNoIn '<=' ShiftExpression { [(AST.JSExpressionBinary "<=" $1 $3)]}+                     | RelationalExpressionNoIn '>=' ShiftExpression { [(AST.JSExpressionBinary ">=" $1 $3)]}+                     | RelationalExpressionNoIn 'instanceof' ShiftExpression { [(AST.JSExpressionBinary " instanceof " $1 $3)]}++-- EqualityExpression :                                        See 11.9+--        RelationalExpression+--        EqualityExpression == RelationalExpression+--        EqualityExpression != RelationalExpression+--        EqualityExpression === RelationalExpression+--        EqualityExpression !== RelationalExpression+EqualityExpression :: { [AST.JSNode] }+EqualityExpression : RelationalExpression { $1 {- EqualityExpression -} } +                   | EqualityExpression '=='  RelationalExpression { [(AST.JSExpressionBinary "==" $1 $3)]}+                   | EqualityExpression '!='  RelationalExpression { [(AST.JSExpressionBinary "!=" $1 $3)]}+                   | EqualityExpression '===' RelationalExpression { [(AST.JSExpressionBinary "===" $1 $3)]}+                   | EqualityExpression '!==' RelationalExpression { [(AST.JSExpressionBinary "!==" $1 $3)]}++-- EqualityExpressionNoIn :                                    See 11.9+--        RelationalExpressionNoIn+--        EqualityExpressionNoIn == RelationalExpressionNoIn+--        EqualityExpressionNoIn != RelationalExpressionNoIn+--        EqualityExpressionNoIn === RelationalExpressionNoIn+--        EqualityExpressionNoIn !== RelationalExpressionNoIn+EqualityExpressionNoIn :: { [AST.JSNode] }+EqualityExpressionNoIn : RelationalExpressionNoIn { $1 {- EqualityExpressionNoIn -} } +                       | EqualityExpressionNoIn '=='  RelationalExpression { [(AST.JSExpressionBinary "==" $1 $3)]}+                       | EqualityExpressionNoIn '!='  RelationalExpression { [(AST.JSExpressionBinary "!=" $1 $3)]}+                       | EqualityExpressionNoIn '===' RelationalExpression { [(AST.JSExpressionBinary "===" $1 $3)]}+                       | EqualityExpressionNoIn '!==' RelationalExpression { [(AST.JSExpressionBinary "!==" $1 $3)]}++-- BitwiseANDExpression :                                      See 11.10+--        EqualityExpression+--        BitwiseANDExpression & EqualityExpression+BitwiseAndExpression :: { [AST.JSNode] }+BitwiseAndExpression : EqualityExpression { $1 {- BitwiseAndExpression -} } +                     | BitwiseAndExpression '&' EqualityExpression { [(AST.JSExpressionBinary "&" $1 $3)]}++-- BitwiseANDExpressionNoIn :                                  See 11.10+--        EqualityExpressionNoIn+--        BitwiseANDExpressionNoIn & EqualityExpressionNoIn+BitwiseAndExpressionNoIn :: { [AST.JSNode] }+BitwiseAndExpressionNoIn : EqualityExpressionNoIn { $1 {- BitwiseAndExpression -} } +                     | BitwiseAndExpressionNoIn '&' EqualityExpressionNoIn { [(AST.JSExpressionBinary "&" $1 $3)]}++-- BitwiseXORExpression :                                                                See 11.10+--        BitwiseANDExpression+--        BitwiseXORExpression ^ BitwiseANDExpression+BitwiseXOrExpression :: { [AST.JSNode] }+BitwiseXOrExpression : BitwiseAndExpression { $1 {- BitwiseXOrExpression -} } +                     | BitwiseXOrExpression '^' BitwiseAndExpression { [(AST.JSExpressionBinary "^" $1 $3)]}++-- BitwiseXORExpressionNoIn :                                                            See 11.10+--        BitwiseANDExpressionNoIn+--        BitwiseXORExpressionNoIn ^ BitwiseANDExpressionNoIn+BitwiseXOrExpressionNoIn :: { [AST.JSNode] }+BitwiseXOrExpressionNoIn : BitwiseAndExpressionNoIn { $1 {- BitwiseXOrExpression -} } +                         | BitwiseXOrExpressionNoIn '^' BitwiseAndExpressionNoIn { [(AST.JSExpressionBinary "^" $1 $3)]}++-- BitwiseORExpression :                                                                 See 11.10+--        BitwiseXORExpression+--        BitwiseORExpression | BitwiseXORExpression+BitwiseOrExpression :: { [AST.JSNode] }+BitwiseOrExpression : BitwiseXOrExpression { $1 {- BitwiseOrExpression -} } +                    | BitwiseOrExpression '|' BitwiseXOrExpression { [(AST.JSExpressionBinary "|" $1 $3)]}++-- BitwiseORExpressionNoIn :                                                             See 11.10+--        BitwiseXORExpressionNoIn+--        BitwiseORExpressionNoIn | BitwiseXORExpressionNoIn+BitwiseOrExpressionNoIn :: { [AST.JSNode] }+BitwiseOrExpressionNoIn : BitwiseXOrExpressionNoIn { $1 {- BitwiseOrExpression -} } +                        | BitwiseOrExpressionNoIn '|' BitwiseXOrExpressionNoIn { [(AST.JSExpressionBinary "|" $1 $3)]}++-- LogicalANDExpression :                                                                See 11.11+--        BitwiseORExpression+--        LogicalANDExpression && BitwiseORExpression+LogicalAndExpression :: { [AST.JSNode] }+LogicalAndExpression : BitwiseOrExpression { $1 {- LogicalAndExpression -} } +                     | LogicalAndExpression '&&' BitwiseOrExpression { [(AST.JSExpressionBinary "&&" $1 $3)]}++-- LogicalANDExpressionNoIn :                                                            See 11.11+--        BitwiseORExpressionNoIn+--        LogicalANDExpressionNoIn && BitwiseORExpressionNoIn+LogicalAndExpressionNoIn :: { [AST.JSNode] }+LogicalAndExpressionNoIn : BitwiseOrExpressionNoIn { $1 {- LogicalAndExpression -} } +                         | LogicalAndExpressionNoIn '&&' BitwiseOrExpressionNoIn { [(AST.JSExpressionBinary "&&" $1 $3)]}++-- LogicalORExpression :                                                                 See 11.11+--        LogicalANDExpression+--        LogicalORExpression || LogicalANDExpression+LogicalOrExpression :: { [AST.JSNode] }+LogicalOrExpression : LogicalAndExpression { $1 {- LogicalOrExpression -} } +                    | LogicalOrExpression '||' LogicalAndExpression { [(AST.JSExpressionBinary "||" $1 $3)]}++-- LogicalORExpressionNoIn :                                                             See 11.11+--        LogicalANDExpressionNoIn+--        LogicalORExpressionNoIn || LogicalANDExpressionNoIn+LogicalOrExpressionNoIn :: { [AST.JSNode] }+LogicalOrExpressionNoIn : LogicalAndExpressionNoIn { $1 {- LogicalOrExpression -} } +                        | LogicalOrExpressionNoIn '||' LogicalAndExpressionNoIn { [(AST.JSExpressionBinary "||" $1 $3)]}++-- ConditionalExpression :                                                               See 11.12+--        LogicalORExpression+--        LogicalORExpression ? AssignmentExpression : AssignmentExpression+ConditionalExpression :: { [AST.JSNode] }+ConditionalExpression : LogicalOrExpression { $1 {- ConditionalExpression -} }+                      | LogicalOrExpression '?' AssignmentExpression ':' AssignmentExpression +                        { [AST.JSExpressionTernary $1 $3 $5] } +                    +-- ConditionalExpressionNoIn :                                                           See 11.12+--        LogicalORExpressionNoIn+--        LogicalORExpressionNoIn ? AssignmentExpressionNoIn : AssignmentExpressionNoIn+ConditionalExpressionNoIn :: { [AST.JSNode] }+ConditionalExpressionNoIn : LogicalOrExpressionNoIn { $1 {- ConditionalExpression -} }+                          | LogicalOrExpressionNoIn '?' AssignmentExpressionNoIn ':' AssignmentExpressionNoIn+                            { [AST.JSExpressionTernary $1 $3 $5] } +  +-- AssignmentExpression :                                                                See 11.13+--        ConditionalExpression+--        LeftHandSideExpression AssignmentOperator AssignmentExpression+AssignmentExpression :: { [AST.JSNode] }+AssignmentExpression : ConditionalExpression { $1 {- AssignmentExpression -}} +                     | LeftHandSideExpression AssignmentOperator AssignmentExpression +                       { ($1++[$2]++$3) }+                       +-- AssignmentExpressionNoIn :                                                            See 11.13+--        ConditionalExpressionNoIn+--        LeftHandSideExpression AssignmentOperator AssignmentExpressionNoIn+AssignmentExpressionNoIn :: { [AST.JSNode] }+AssignmentExpressionNoIn : ConditionalExpressionNoIn { $1 {- AssignmentExpression -}} +                         | LeftHandSideExpression AssignmentOperator AssignmentExpressionNoIn +                           { ($1++[$2]++$3) }++-- AssignmentOperator : one of                                                           See 11.13+--     '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|='+AssignmentOperator :: { AST.JSNode }+AssignmentOperator : 'assign' { AST.JSOperator (token_literal $1) }+                   | '='      { AST.JSOperator "=" }++-- Expression :                                                   See 11.14+--         AssignmentExpression+--         Expression , AssignmentExpression+Expression :: { AST.JSNode }+Expression : AssignmentExpression { AST.JSExpression $1 {- Expression -} } +           | Expression ',' AssignmentExpression  { flattenExpression $1 $3 }++-- ExpressionNoIn :                                               See 11.14+--         AssignmentExpressionNoIn+--         ExpressionNoIn , AssignmentExpressionNoIn+ExpressionNoIn :: { AST.JSNode }+ExpressionNoIn : AssignmentExpressionNoIn { AST.JSExpression $1 {- Expression -} } +               | ExpressionNoIn ',' AssignmentExpressionNoIn  { flattenExpression $1 $3 }++-- TODO: still required?+ExpressionOpt :: { [AST.JSNode] }+ExpressionOpt : Expression { [$1] {- ExpressionOpt -}}+              |            { []   {- ExpressionOpt -}}++ExpressionNoInOpt :: { [AST.JSNode] }+ExpressionNoInOpt : ExpressionNoIn { [$1] {- ExpressionOpt -}}+                  |            { []   {- ExpressionOpt -}}+                               ++-- Statement :                                                    See clause 12+--         Block+--         VariableStatement+--         EmptyStatement+--         ExpressionStatement+--         IfStatement+--         IterationStatement+--         ContinueStatement+--         BreakStatement+--         ReturnStatement+--         WithStatement+--         LabelledStatement+--         SwitchStatement+--         ThrowStatement+--         TryStatement+--         DebuggerStatement+Statement :: { AST.JSNode }+Statement : StatementNoEmpty   { $1 {- Statement1 -}}+          | EmptyStatement     { $1 {- Statement3 -}}++StatementNoEmpty :: { AST.JSNode }+StatementNoEmpty : StatementBlock     { $1 {- StatementNoEmpty1 -}}+                 | VariableStatement     { $1 {- StatementNoEmpty2 -}}+                   -- | EmptyStatement     { $1 {- StatementNoEmpty3 -}}+                 | ExpressionStatement  { $1 {- StatementNoEmpty4 -}}+                 | IfStatement        { $1 {- StatementNoEmpty5 -}}+                 | IterationStatement { $1 {- StatementNoEmpty6 -}}+                 | ContinueStatement  { $1 {- StatementNoEmpty7 -}}+                 | BreakStatement     { $1 {- StatementNoEmpty8 -}}+                 | ReturnStatement    { $1 {- StatementNoEmpty9 -}}+                 | WithStatement      { $1 {- StatementNoEmpty10 -}}+                 | LabelledStatement  { $1 {- StatementNoEmpty11 -}}+                 | SwitchStatement    { $1 {- StatementNoEmpty12 -}}+                 | ThrowStatement     { $1 {- StatementNoEmpty13 -}}+                 | TryStatement       { $1 {- StatementNoEmpty14 -}}+                 | DebuggerStatement  { $1 {- StatementNoEmpty15 -}}++StatementBlock :: { AST.JSNode }+StatementBlock : '{' '}'               { (AST.JSLiteral ";") }+               | '{' StatementList '}' { (if ($2 == AST.JSStatementList [AST.JSLiteral ";"]) then (AST.JSLiteral ";") else (AST.JSBlock $2)) }++-- Block :                                                        See 12.1+--         { StatementListopt }+Block :: { AST.JSNode }+Block : '{' '}'               { (AST.JSBlock (AST.JSStatementList [])) }+      | '{' StatementList '}' { (AST.JSBlock $2) }++-- StatementList :                                                See 12.1+--         Statement+--         StatementList Statement+StatementList :: { AST.JSNode }+StatementList : Statement               { (AST.JSStatementList [$1]) }+              | StatementList Statement { (combineStatements $1 $2) }++-- VariableStatement :                                            See 12.2+--         var VariableDeclarationList ;+VariableStatement :: { AST.JSNode }+VariableStatement : 'var'   VariableDeclarationList AutoSemi { AST.JSVariables "var" $2 }+                  | 'const' VariableDeclarationList AutoSemi { AST.JSVariables "const" $2 }++-- VariableDeclarationList :                                      See 12.2+--         VariableDeclaration+--         VariableDeclarationList , VariableDeclaration+VariableDeclarationList :: { [AST.JSNode] }+VariableDeclarationList : VariableDeclaration { [$1] {- VariableDeclarationList -}}+                        | VariableDeclarationList ',' VariableDeclaration { ($1 ++ [$3]) {- VariableDeclarationList -}}++-- VariableDeclarationListNoIn :                                  See 12.2+--         VariableDeclarationNoIn+--         VariableDeclarationListNoIn , VariableDeclarationNoIn+VariableDeclarationListNoIn :: { [AST.JSNode] }+VariableDeclarationListNoIn : VariableDeclarationNoIn { [$1] {- VariableDeclarationList -}}+                            | VariableDeclarationListNoIn ',' VariableDeclarationNoIn { ($1 ++ [$3]) {- VariableDeclarationList -}}++-- VariableDeclaration :                                          See 12.2+--         Identifier Initialiseropt+VariableDeclaration :: { AST.JSNode }+VariableDeclaration : Identifier              { (AST.JSVarDecl $1 [])}+                    | Identifier Initializer  { (AST.JSVarDecl $1 $2)}++-- VariableDeclarationNoIn :                                      See 12.2+--         Identifier InitialiserNoInopt+VariableDeclarationNoIn :: { AST.JSNode }+VariableDeclarationNoIn : Identifier InitializerNoIn { (AST.JSVarDecl $1 $2) }+                        | Identifier                 { (AST.JSVarDecl $1 []) }++-- Initialiser :                                                                            See 12.2+--         = AssignmentExpression+Initializer :: { [AST.JSNode] }+Initializer : '=' AssignmentExpression { $2 {- Initializer -} }++-- InitialiserNoIn :                                                                        See 12.2+--         = AssignmentExpressionNoIn+InitializerNoIn :: { [AST.JSNode] }+InitializerNoIn : '=' AssignmentExpressionNoIn { $2 {- InitializerNoIn -}}++-- EmptyStatement :                                                                         See 12.3+--         ;+EmptyStatement :: { AST.JSNode }+EmptyStatement : ';' { (AST.JSLiteral ";") }++-- ExpressionStatement :                                                                    See 12.4+--         [lookahead ∉ {{, function}] Expression  ;+-- TODO: Sort out lookahead issue. Maybe by just putting production lower to set reduce/reduce conflict+--       According to http://sideshowbarker.github.com/es5-spec/#x12.4, the ambiguity is with+--       Block or FunctionDeclaration+ExpressionStatement :: { AST.JSNode }+ExpressionStatement : Expression { $1 {- ExpressionStatement -} }+++-- IfStatement :                                                                            See 12.5+--         if ( Expression ) Statement else Statement+--         if ( Expression ) Statement+IfStatement :: { AST.JSNode }+IfStatement : 'if' '(' Expression ')' StatementSemi  IfElseRest +                  { (if ($6 /= []) then  +                       (if (length $6 == 1) then (AST.JSIfElse $3 $5 (head $6)) +                                            else (AST.JSIfElse $3 (AST.JSBlock (AST.JSStatementList [$5])) (last $6))) +                     else (AST.JSIf $3 $5)) }+                  +IfElseRest :: { [AST.JSNode] }                  +IfElseRest : 'else' Statement     { [$2] }+           |                      { [] } ++StatementSemi :: { AST.JSNode }+StatementSemi : StatementNoEmpty ';' { (AST.JSBlock (AST.JSStatementList [$1])) } +              | StatementNoEmpty     { $1 {- StatementSemi -}}+              | ';'                  { AST.JSLiteral ";" }  +++-- IterationStatement :                                                                     See 12.6+--         do Statement while ( Expression );+--         while ( Expression ) Statement+--         for (ExpressionNoInopt; Expressionopt ; Expressionopt ) Statement+--         for ( var VariableDeclarationListNoIn; Expressionopt ; Expressionopt ) Statement+--         for ( LeftHandSideExpression in Expression ) Statement+--         for ( var VariableDeclarationNoIn in Expression ) Statement+IterationStatement :: { AST.JSNode }+IterationStatement : 'do' Statement 'while' '(' Expression ')' AutoSemi { (AST.JSDoWhile $2 $5 $7) } +                   | 'while' '(' Expression ')' Statement { (AST.JSWhile $3 $5) }+                   | 'for' '(' ExpressionNoInOpt ';' ExpressionOpt ';' ExpressionOpt ')' Statement { (AST.JSFor $3 $5 $7 $9) }+                   | 'for' '(' 'var' VariableDeclarationListNoIn ';' ExpressionOpt ';' ExpressionOpt ')' Statement +                     { (AST.JSForVar $4 $6 $8 $10) }+                   | 'for' '(' LeftHandSideExpression 'in' Expression ')' Statement +                     { (AST.JSForIn $3 $5 $7) }+                   | 'for' '(' 'var' VariableDeclarationNoIn 'in' Expression ')' Statement+                     { (AST.JSForVarIn $4 $6 $8) }++-- ContinueStatement :                                                                      See 12.7+--         continue [no LineTerminator here] Identifieropt ;+-- TODO: deal with [no LineTerminator here]+ContinueStatement :: { AST.JSNode }+ContinueStatement : 'continue' AutoSemi             { (AST.JSContinue [$2]) } +                  | 'continue' Identifier AutoSemi  { (AST.JSContinue [$2,$3]) } ++-- BreakStatement :                                                                         See 12.8+--         break [no LineTerminator here] Identifieropt ;+-- TODO: deal with [no LineTerminator here]+BreakStatement :: { AST.JSNode }+BreakStatement : 'break' AutoSemi             { (AST.JSBreak [] [$2]) } +               | 'break' Identifier AutoSemi  { (AST.JSBreak [$2] [$3]) } ++-- ReturnStatement :                                                                        See 12.9+--         return [no LineTerminator here] Expressionopt ;+-- TODO: deal with [no LineTerminator here]+ReturnStatement :: { AST.JSNode }+ReturnStatement : 'return' AutoSemi             { (AST.JSReturn [$2]) } +                | 'return' Expression AutoSemi  { (AST.JSReturn [$2,$3]) } ++-- WithStatement :                                                                          See 12.10+--         with ( Expression ) Statement+WithStatement :: { AST.JSNode }+WithStatement : 'with' '(' Expression ')' Statement AutoSemi  { (AST.JSWith $3 [$5,$6]) }++-- SwitchStatement :                                                                        See 12.11+--         switch ( Expression ) CaseBlock+SwitchStatement :: { AST.JSNode }+SwitchStatement : 'switch' '(' Expression ')' CaseBlock { (AST.JSSwitch $3 $5) } ++-- CaseBlock :                                                                              See 12.11+--         { CaseClausesopt }+--         { CaseClausesopt DefaultClause CaseClausesopt }+CaseBlock :: { [AST.JSNode] }+CaseBlock : '{' CaseClausesOpt '}'                              { $2            {- CaseBlock1 -}}+          | '{' CaseClausesOpt DefaultClause CaseClausesOpt '}' { ($2++($3:$4)) {- CaseBlock2 -}}++-- CaseClauses :                                                                            See 12.11+--         CaseClause+--         CaseClauses CaseClause+CaseClausesOpt :: { [AST.JSNode] }+CaseClausesOpt : CaseClause                { [$1] {- CaseClauses1 -}}+               | CaseClausesOpt CaseClause { ($1++[$2]) {- CaseClauses2 -}}+               |                           { [] }  ++-- CaseClause :                                                               See 12.11+--        case Expression : StatementListopt+CaseClause :: { AST.JSNode }+CaseClause : 'case' Expression ':' StatementList  { (AST.JSCase $2 $4) }+           | 'case' Expression ':'                { (AST.JSCase $2 (AST.JSStatementList [])) }++-- DefaultClause :                                                            See 12.11+--        default : StatementListopt+DefaultClause :: { AST.JSNode }+DefaultClause : 'default' ':'                { (AST.JSDefault (AST.JSStatementList [])) }+              | 'default' ':' StatementList  { (AST.JSDefault $3) }++-- LabelledStatement :                                                        See 12.12+--        Identifier : Statement+LabelledStatement :: { AST.JSNode }+LabelledStatement : Identifier ':' Statement { (AST.JSLabelled $1 $3) }++-- ThrowStatement :                                                           See 12.13+--        throw [no LineTerminator here] Expression ;+-- TODO : sort out no LineTerminator here+--        Does it need a semi at the end?+ThrowStatement :: { AST.JSNode }+ThrowStatement : 'throw' Expression { (AST.JSThrow $2) }++-- Note: worked in updated syntax as per https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch+--   i.e., 0 or more catches, then an optional finally+-- TryStatement :                                                             See 12.14+--        try Block Catch+--        try Block Finally+--        try Block Catch Finally+TryStatement :: { AST.JSNode }+TryStatement : 'try' Block Catches         { (AST.JSTry $2 $3)         {- TryStatement1 -} }+             | 'try' Block Finally         { (AST.JSTry $2 [$3])       {- TryStatement2 -} }+             | 'try' Block Catches Finally { (AST.JSTry $2 ($3++[$4])) {- TryStatement3 -} }++Catches :: { [AST.JSNode] }+Catches : Catch         { [$1]       {- Catches 1 -} }+        | Catches Catch { ($1++[$2]) {- Catches 2 -} }++-- Note: worked in updated syntax as per https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch+-- <Catch> ::= 'catch' '(' Identifier ')' <Block>+--   becomes+-- <Catch> ::= 'catch' '(' Identifier ')' <Block>+--           | 'catch' '(' Identifier 'if' ConditionalExpression ')' <Block>+Catch :: { AST.JSNode }+Catch : 'catch' '(' Identifier ')' Block                 { (AST.JSCatch $3 [] $5) }+      | 'catch' '(' Identifier 'if' ConditionalExpression ')' Block  { (AST.JSCatch $3 $5 $7) }++-- Finally :                                                                  See 12.14+--        finally Block+Finally :: { AST.JSNode }+Finally : 'finally' Block { (AST.JSFinally $2) }++-- DebuggerStatement :                                                        See 12.15+--        debugger ;+DebuggerStatement :: { AST.JSNode }+DebuggerStatement : 'debugger' AutoSemi { (AST.JSLiteral "debugger") }++-- FunctionDeclaration :                                                      See clause 13+--        function Identifier ( FormalParameterListopt ) { FunctionBody }+FunctionDeclaration :: { AST.JSNode }+FunctionDeclaration : 'function' Identifier '(' FormalParameterList ')' '{' FunctionBody '}'+                      { (AST.JSFunction $2 $4 $7) }+                    | 'function' Identifier '(' ')' '{' FunctionBody '}'+                      { (AST.JSFunction $2 [] $6) }++-- FunctionExpression :                                                       See clause 13+--        function Identifieropt ( FormalParameterListopt ) { FunctionBody }+FunctionExpression :: { AST.JSNode }+FunctionExpression : 'function' IdentifierOpt '(' ')' '{' FunctionBody '}'                      { (AST.JSFunctionExpression $2 [] $6) }+                   | 'function' IdentifierOpt '(' FormalParameterList ')' '{' FunctionBody '}'  { (AST.JSFunctionExpression $2 $4 $7) }++IdentifierOpt :: { [AST.JSNode] }+IdentifierOpt : Identifier { [$1] {- IdentifierOpt -}}+              |            { []   {- IdentifierOpt -}}++-- FormalParameterList :                                                      See clause 13+--        Identifier+--        FormalParameterList , Identifier+FormalParameterList :: { [AST.JSNode] }+FormalParameterList : Identifier                          { [$1] {- FormalParameterList -}}+                    | FormalParameterList ',' Identifier  { ($1++[$3]) }++-- FunctionBody :                                                             See clause 13+--        SourceElementsopt+FunctionBody :: { AST.JSNode }+FunctionBody : SourceElements { (AST.JSFunctionBody [$1]) }+             |                { (AST.JSFunctionBody []) } ++-- Program :                                                                  See clause 14+--        SourceElementsopt+Program :: { AST.JSNode }+Program : SourceElementsTop { $1 {- Program -}}++-- SourceElements :                                                           See clause 14+--        SourceElement+--        SourceElements SourceElement+SourceElements :: { AST.JSNode }+SourceElements : SourceElement                { (AST.JSSourceElements [$1]) }+               | SourceElements SourceElement { (combineSourceElements $1 $2) }++SourceElementsTop :: { AST.JSNode }+SourceElementsTop : SourceElement                   { (AST.JSSourceElementsTop [$1]) }+                  | SourceElementsTop SourceElement { (combineSourceElementsTop $1 $2) }++-- SourceElement :+--       Statement+--       FunctionDeclaration+SourceElement :: { AST.JSNode }+SourceElement : Statement            { $1 {- SourceElement1 -} }+              | FunctionDeclaration  { $1 {- SourceElement2 -} } ++{++combineSourceElements :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineSourceElements (AST.JSSourceElements xs) x = (AST.JSSourceElements (xs++[x]) )++combineSourceElementsTop :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineSourceElementsTop (AST.JSSourceElementsTop xs) x = (AST.JSSourceElementsTop (xs++[x]) )++combineStatements :: AST.JSNode -> AST.JSNode -> AST.JSNode+combineStatements (AST.JSStatementList xs) (AST.JSStatementList ys) = (AST.JSStatementList (xs++ys) )+combineStatements (AST.JSStatementList xs) y = (AST.JSStatementList (xs++[y]) )++parseError :: Token -> P a +parseError = throwError . UnexpectedToken ++flattenExpression :: AST.JSNode -> [AST.JSNode] -> AST.JSNode+flattenExpression (AST.JSExpression xs) e = AST.JSExpression (xs++litComma++e)+                        where+                          litComma :: [AST.JSNode]+                          litComma = [(AST.JSLiteral ",")]+++}++-- Set emacs mode+-- Local Variables: +-- mode:haskell+-- End:             
src/Language/JavaScript/Parser/Lexer.x view
@@ -103,7 +103,8 @@     -- * \u3000 — Ideographic space  --$white_char   = [\ \f\v\t\r\n]-$white_char = [\x0009\x000a\x000b\x000c\x000d\x0020\x00a0\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2009\x200a\x2028\x2029\x202f\x205f\x3000]+-- Note: from edition 5 the BOM (\xfeff) is also considered whitespace+$white_char = [\x0009\x000a\x000b\x000c\x000d\x0020\x00a0\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2009\x200a\x2028\x2029\x202f\x205f\x3000\xfeff]  -- Identifier characters -- UnicodeLetter@@ -195,7 +196,7 @@      | $sq ( $StringChars2 | \\ $printable )* $sq { mkString stringToken }  -- HexIntegerLiteral = '0x' {Hex Digit}+-<reg,divide> "0x" @HexDigit+ { mkString hexIntegerToken }+<reg,divide> ("0x"|"0X") @HexDigit+ { mkString hexIntegerToken }  -- RegExp         = '/' ({RegExp Chars} | '\' {Non Terminator})+ '/' ( 'g' | 'i' | 'm' )* -- <reg> "/" ($RegExpChars | "\" $NonTerminator)+ "/" ("g"|"i"|"m")* { mkString regExToken }@@ -382,14 +383,14 @@ keywordOrIdent :: String -> AlexSpan -> P Token keywordOrIdent str location    = return $ case Map.lookup str keywords of-         Just symbol -> symbol location+         Just symbol -> symbol location str          Nothing -> IdentifierToken location str    -- mapping from strings to keywords-keywords :: Map.Map String (AlexSpan -> Token) +keywords :: Map.Map String (AlexSpan -> String -> Token)  keywords = Map.fromList keywordNames  -keywordNames :: [(String, AlexSpan -> Token)]+keywordNames :: [(String, AlexSpan -> String -> Token)] keywordNames =    [      ("break",BreakToken),("case",CaseToken),("catch",CatchToken),("const",ConstToken),@@ -401,11 +402,97 @@     ("return",ReturnToken),("switch",SwitchToken),("this",ThisToken),     ("throw",ThrowToken),("true",TrueToken),("try",TryToken),     ("typeof",TypeofToken),("var",VarToken),("void",VoidToken),-    ("while",WhileToken),("with",WithToken)+    ("while",WhileToken),("with",WithToken),+    -- TODO: no idea if these are reserved or not, but they are needed+    --       handled in parser, in the Identifier rule       +    ("get",GetToken),("set",SetToken),+                         +    -- Future Reserved Words                         +    ("class", FutureToken),+    ("code", FutureToken),+    -- ("const", FutureToken),+    -- enum+    ("export", FutureToken),+    ("extends", FutureToken),+    ("implements", FutureToken),+    ("import", FutureToken),+    -- in +    ("interface", FutureToken),+    ("let", FutureToken),+    ("mode", FutureToken),+    ("of", FutureToken),+    ("one", FutureToken),+    ("or", FutureToken),+    ("package", FutureToken),+    ("private", FutureToken),+    ("protected", FutureToken),+    ("public", FutureToken),+    ("static", FutureToken),+    ("strict", FutureToken),+    ("super", FutureToken),+    ("yield", FutureToken)    ]- } ++-- break +-- case +-- catch +-- continue +-- debugger +-- default +-- delete +-- do+-- else+--  - enum+--  - false+-- finally+-- for+-- function+-- if+-- in+-- instanceof +-- new +--  - null+-- return +-- switch +-- this +-- throw+--  - true+-- try+-- typeof+-- var+-- void+-- while+-- with++++-- FutureReservedWord :: one of   See 7.6.1.2++-- class +-- code +-- const +-- *enum+-- export+-- extends +-- implements +-- import+-- *in +-- interface +-- let +-- mode +-- of+-- one +-- or +-- package +-- private +-- protected +-- public+-- static+-- strict +-- super+-- yield   -- Set emacs mode
src/Language/JavaScript/Parser/Parser.hs view
@@ -9,10 +9,10 @@    ) where  import Language.JavaScript.Parser.ParseError-import Language.JavaScript.Parser.Grammar+--import Language.JavaScript.Parser.Grammar+import Language.JavaScript.Parser.Grammar5 import Language.JavaScript.Parser.Lexer import Language.JavaScript.Parser.ParserMonad---import Language.JavaScript.Parser.SrcLocation import qualified Language.JavaScript.Parser.AST as AST  -- | Parse one compound statement, or a sequence of simple statements. 
src/Language/JavaScript/Parser/Token.hs view
@@ -46,38 +46,43 @@      -- ^ Literal: Regular Expression     -- Keywords-   | BreakToken { token_span :: !AlexSpan }-   | CaseToken { token_span :: !AlexSpan }-   | CatchToken { token_span :: !AlexSpan }-   | ConstToken { token_span :: !AlexSpan }-   | ContinueToken { token_span :: !AlexSpan }-   | DebuggerToken { token_span :: !AlexSpan }-   | DefaultToken { token_span :: !AlexSpan }-   | DeleteToken { token_span :: !AlexSpan }-   | DoToken { token_span :: !AlexSpan }-   | ElseToken { token_span :: !AlexSpan }-   | EnumToken { token_span :: !AlexSpan }-   | FalseToken { token_span :: !AlexSpan }-   | FinallyToken { token_span :: !AlexSpan }-   | ForToken { token_span :: !AlexSpan }-   | FunctionToken { token_span :: !AlexSpan }-   | IfToken { token_span :: !AlexSpan }-   | InToken { token_span :: !AlexSpan }-   | InstanceofToken { token_span :: !AlexSpan }-   | NewToken { token_span :: !AlexSpan }-   | NullToken { token_span :: !AlexSpan }-   | ReturnToken { token_span :: !AlexSpan }-   | SwitchToken { token_span :: !AlexSpan }-   | ThisToken { token_span :: !AlexSpan }-   | ThrowToken { token_span :: !AlexSpan }-   | TrueToken { token_span :: !AlexSpan }-   | TryToken { token_span :: !AlexSpan }-   | TypeofToken { token_span :: !AlexSpan }-   | VarToken { token_span :: !AlexSpan }-   | VoidToken { token_span :: !AlexSpan }-   | WhileToken { token_span :: !AlexSpan }-   | WithToken { token_span :: !AlexSpan }-+   | BreakToken { token_span :: !AlexSpan, token_literal :: !String }+   | CaseToken { token_span :: !AlexSpan, token_literal :: !String }+   | CatchToken { token_span :: !AlexSpan, token_literal :: !String }+   | ConstToken { token_span :: !AlexSpan, token_literal :: !String }+   | ContinueToken { token_span :: !AlexSpan, token_literal :: !String }+   | DebuggerToken { token_span :: !AlexSpan, token_literal :: !String }+   | DefaultToken { token_span :: !AlexSpan, token_literal :: !String }+   | DeleteToken { token_span :: !AlexSpan, token_literal :: !String }+   | DoToken { token_span :: !AlexSpan, token_literal :: !String }+   | ElseToken { token_span :: !AlexSpan, token_literal :: !String }+   | EnumToken { token_span :: !AlexSpan, token_literal :: !String }+   | FalseToken { token_span :: !AlexSpan, token_literal :: !String }+   | FinallyToken { token_span :: !AlexSpan, token_literal :: !String }+   | ForToken { token_span :: !AlexSpan, token_literal :: !String }+   | FunctionToken { token_span :: !AlexSpan, token_literal :: !String }+   | IfToken { token_span :: !AlexSpan, token_literal :: !String }+   | InToken { token_span :: !AlexSpan, token_literal :: !String }+   | InstanceofToken { token_span :: !AlexSpan, token_literal :: !String }+   | NewToken { token_span :: !AlexSpan, token_literal :: !String }+   | NullToken { token_span :: !AlexSpan, token_literal :: !String }+   | ReturnToken { token_span :: !AlexSpan, token_literal :: !String }+   | SwitchToken { token_span :: !AlexSpan, token_literal :: !String }+   | ThisToken { token_span :: !AlexSpan, token_literal :: !String }+   | ThrowToken { token_span :: !AlexSpan, token_literal :: !String }+   | TrueToken { token_span :: !AlexSpan, token_literal :: !String }+   | TryToken { token_span :: !AlexSpan, token_literal :: !String }+   | TypeofToken { token_span :: !AlexSpan, token_literal :: !String }+   | VarToken { token_span :: !AlexSpan, token_literal :: !String }+   | VoidToken { token_span :: !AlexSpan, token_literal :: !String }+   | WhileToken { token_span :: !AlexSpan, token_literal :: !String }+   | WithToken { token_span :: !AlexSpan, token_literal :: !String }+   -- Future reserved words  +   | FutureToken { token_span :: !AlexSpan, token_literal :: !String }+   -- Needed, not sure what they are though.  +   | GetToken { token_span :: !AlexSpan, token_literal :: !String }+   | SetToken { token_span :: !AlexSpan, token_literal :: !String }+       -- Delimiters    -- Operators    | SemiColonToken { token_span :: !AlexSpan }