packages feed

rzk 0.11.2 → 0.11.3

raw patch · 32 files changed

+1273/−339 lines, 32 filesdep +gitrevdep ~free-foilPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: gitrev

Dependency ranges changed: free-foil

API changes (from Hackage documentation)

- Language.Rzk.Foil.Names: modCompToMods :: ModComp -> (TModality, TModality)
- Language.Rzk.Foil.Names: modsToModComp :: TModality -> TModality -> ModComp
- Rzk.TypeCheck.NbE: instance GHC.Classes.Eq Rzk.TypeCheck.NbE.AbortReason
- Rzk.TypeCheck.NbE: instance GHC.Classes.Ord Rzk.TypeCheck.NbE.AbortReason
- Rzk.TypeCheck.NbE: instance GHC.Enum.Bounded Rzk.TypeCheck.NbE.AbortReason
- Rzk.TypeCheck.NbE: instance GHC.Enum.Enum Rzk.TypeCheck.NbE.AbortReason
- Rzk.TypeCheck.NbE: instance GHC.Show.Show Rzk.TypeCheck.NbE.AbortReason
+ Language.Rzk.Syntax.Abs: LetModBind :: a -> Modality' a -> Bind' a -> Term' a -> Term' a -> Term' a
+ Language.Rzk.Syntax.Abs: LetModBindInto :: a -> Modality' a -> Bind' a -> Term' a -> Term' a -> Term' a -> Term' a
+ Language.Rzk.Syntax.Abs: LetModFramed :: a -> Modality' a -> Modality' a -> Bind' a -> Term' a -> Term' a -> Term' a
+ Language.Rzk.Syntax.Abs: LetModFramedInto :: a -> Modality' a -> Modality' a -> Bind' a -> Term' a -> Term' a -> Term' a -> Term' a
+ Rzk.TypeCheck.Judgements: mkNamedHole :: forall (n :: S). Maybe VarIdent -> TermT n -> TermT n
+ Rzk.TypeCheck.NbE: Convertible :: Conversion
+ Rzk.TypeCheck.NbE: DontKnow :: Conversion
+ Rzk.TypeCheck.NbE: data Conversion
+ Rzk.TypeCheck.NbE: instance Control.Monad.Foil.Internal.InjectName Rzk.TypeCheck.NbE.Val
+ Rzk.TypeCheck.NbE: instance GHC.Classes.Eq Rzk.TypeCheck.NbE.Conversion
+ Rzk.TypeCheck.NbE: instance GHC.Classes.Eq Rzk.TypeCheck.NbE.DeBruijnLevel
+ Rzk.TypeCheck.NbE: instance GHC.Show.Show Rzk.TypeCheck.NbE.Conversion
+ Rzk.TypeCheck.Unify: bySubtyping :: forall (n :: S). (TermT n -> TermT n -> TypeCheck n ()) -> TermT n -> TermT n -> TypeCheck n ()
+ Rzk.TypeCheck.Unify: domainEntails :: forall (n :: S). Distinct n => TermT n -> TermT n -> TypeCheck n ()
+ Rzk.Version: BuildFlag :: String -> FlagState -> BuildFlag
+ Rzk.Version: FlagOff :: FlagState
+ Rzk.Version: FlagOn :: FlagState
+ Rzk.Version: VersionInfo :: Version -> Maybe String -> Maybe String -> String -> String -> [BuildFlag] -> VersionInfo
+ Rzk.Version: [buildFlagName] :: BuildFlag -> String
+ Rzk.Version: [buildFlagState] :: BuildFlag -> FlagState
+ Rzk.Version: [versionInfoCommitDate] :: VersionInfo -> Maybe String
+ Rzk.Version: [versionInfoCommit] :: VersionInfo -> Maybe String
+ Rzk.Version: [versionInfoCompiler] :: VersionInfo -> String
+ Rzk.Version: [versionInfoFlags] :: VersionInfo -> [BuildFlag]
+ Rzk.Version: [versionInfoPlatform] :: VersionInfo -> String
+ Rzk.Version: [versionInfoVersion] :: VersionInfo -> Version
+ Rzk.Version: buildFlags :: [BuildFlag]
+ Rzk.Version: data BuildFlag
+ Rzk.Version: data FlagState
+ Rzk.Version: data VersionInfo
+ Rzk.Version: instance Data.Aeson.Types.ToJSON.ToJSON Rzk.Version.BuildFlag
+ Rzk.Version: instance Data.Aeson.Types.ToJSON.ToJSON Rzk.Version.FlagState
+ Rzk.Version: instance Data.Aeson.Types.ToJSON.ToJSON Rzk.Version.VersionInfo
+ Rzk.Version: instance GHC.Classes.Eq Rzk.Version.BuildFlag
+ Rzk.Version: instance GHC.Classes.Eq Rzk.Version.FlagState
+ Rzk.Version: instance GHC.Classes.Eq Rzk.Version.VersionInfo
+ Rzk.Version: instance GHC.Show.Show Rzk.Version.BuildFlag
+ Rzk.Version: instance GHC.Show.Show Rzk.Version.FlagState
+ Rzk.Version: instance GHC.Show.Show Rzk.Version.VersionInfo
+ Rzk.Version: isoCommitDate :: String -> String
+ Rzk.Version: ppVersionInfo :: VersionInfo -> String
+ Rzk.Version: version :: Version
+ Rzk.Version: versionInfo :: VersionInfo
+ Rzk.Version: versionString :: String
- Language.Rzk.Syntax.Abs: LetMod :: a -> ModComp' a -> Bind' a -> Term' a -> Term' a -> Term' a
+ Language.Rzk.Syntax.Abs: LetMod :: a -> Modality' a -> Bind' a -> Term' a -> Term' a -> Term' a
- Language.Rzk.Syntax.Abs: LetModInto :: a -> ModComp' a -> Bind' a -> Term' a -> Term' a -> Term' a -> Term' a
+ Language.Rzk.Syntax.Abs: LetModInto :: a -> Modality' a -> Bind' a -> Term' a -> Term' a -> Term' a -> Term' a
- Rzk.TypeCheck.Eval: discreteAxiomOf :: forall (n :: S) (l :: S). Distinct n => TModality -> TermT n -> NameBinder n l -> TypeCheck n [ModalTope l]
+ Rzk.TypeCheck.Eval: discreteAxiomOf :: forall (n :: S) (l :: S). (Distinct n, DExt n l) => TModality -> TermT n -> Maybe (TermT n) -> NameBinder n l -> TypeCheck n [ModalTope l]
- Rzk.TypeCheck.NbE: nbeConvertible :: forall (n :: S). TermT n -> TermT n -> TypeCheck n Bool
+ Rzk.TypeCheck.NbE: nbeConvertible :: forall (n :: S). TermT n -> TermT n -> TypeCheck n Conversion

Files

ChangeLog.md view
@@ -6,6 +6,44 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v0.11.3 — 2026-08-31++A maintenance release. The conversion fast path now compares stuck applications spine to spine, the modal `#!rzk let` gets a clearer surface syntax, and `rzk version --full` describes the build.++Added:++- **`rzk version --full` describes the build** (see [#340](https://github.com/rzk-lang/rzk/pull/340)): the commit with its date, the compiler, the platform, and the Cabal flags. `--json` prints the same record as an object, and the bare version stays the default output. The library exports the version as `Rzk.Version`.++- **A suggested move names its holes** (see [#345](https://github.com/rzk-lang/rzk/pull/345)). A candidate spine now renders as `#!rzk id-hom ?A ?x` rather than `#!rzk id-hom ? ?`, taking the names from the lemma's own binders.++Changed:++- **The modal `#!rzk let` forms are reworked**, building on [#334](https://github.com/rzk-lang/rzk/pull/334) by [Islam Talipov](https://github.com/LIshy2) (see [#352](https://github.com/rzk-lang/rzk/pull/352)). The binding form is `#!rzk let ♯ x := a in u`, the eliminator is `#!rzk let mod ♯ x := a in u`, and an explicit external lock is written `#!rzk let ᵒᵖ mod ♯ x := a in u`. Each form takes an optional `#!rzk into` motive.++Fixed:++- **A function meets its η-expansion on a smaller shape** (see [#347](https://github.com/rzk-lang/rzk/pull/347)). Unification required two lambdas to carry logically equivalent domain topes; the domain is now a one-directional subtyping obligation, as for Π-types. The conversion fast path had been masking this bug on the sHoTT corpus.++- **Modal values are identified across spellings** (see [#352](https://github.com/rzk-lang/rzk/pull/352)). The discreteness axiom of a flat point follows its value, the modal η-laws hold by `#!rzk refl`, and the external lock of an extraction is ignored in conversion.++- **A hole in a cube position is offered the cube's points** (see [#344](https://github.com/rzk-lang/rzk/pull/344)). A goal of type `#!rzk 2` now suggests `#!rzk 0₂` and `#!rzk 1₂`, the way every other goal shape offers its introductions.++- **A lemma about projections is offered as a hole candidate** (see [#343](https://github.com/rzk-lang/rzk/pull/343)). A projection applied to a hole is now treated as hole-headed, like a plain hole (see [#338](https://github.com/rzk-lang/rzk/pull/338)), so a result type such as `#!rzk first s = first t` fits any goal while probing candidates.++Performance:++- **Stuck applications are compared spine to spine in the conversion fast path** (see [#346](https://github.com/rzk-lang/rzk/pull/346), [#351](https://github.com/rzk-lang/rzk/pull/351)), following the glued evaluation of Kovács' smalltt. A proof reported by [Benno Lossin](https://github.com/BennoLossin) now checks in about two seconds, down from five minutes.++- **free-foil 0.4.0** (see [#350](https://github.com/rzk-lang/rzk/pull/350)) brings 4% less wall clock and 20% less maximum residency on the sHoTT corpus.++Documentation:++- The README and the docs point newcomers at the interactive games (see [#341](https://github.com/rzk-lang/rzk/pull/341)).++CI / infrastructure:++- BNFC's unbuilt output (`Skel.hs`, `Test.hs`, `ErrM.hs`) is no longer committed (see [#353](https://github.com/rzk-lang/rzk/pull/353)).+ ## v0.11.2 — 2026-08-20  A maintenance release. Checking no longer stops at the first declaration that fails, errors are reported at the sub-term rather than at the enclosing declaration, and a lemma stated over a motive is offered as a hole candidate, so an eliminator written in the sHoTT style is visible as a move.
app/Main.hs view
@@ -13,7 +13,6 @@ #endif  import           Control.Monad           (forM, forM_, unless, when, (>=>))-import           Data.Version            (showVersion)  #ifdef LSP_ENABLED import           Language.Rzk.VSCode.Lsp (runLsp)@@ -27,7 +26,6 @@ import           Data.Functor            (void, (<&>)) import qualified Data.Text.IO            as T -import           Paths_rzk               (version) import           Rzk.Diagnostic          (Diagnostic (..), Severity (..),                                           diagnoseCheckWarning, diagnoseHole,                                           diagnoseTypeError, ppCheckWarning,@@ -36,6 +34,8 @@                                           isWellFormattedFile) import           Rzk.Main import           Rzk.TypeCheck+import           Rzk.Version             (ppVersionInfo, versionInfo,+                                          versionString)  data FormatOptions = FormatOptions   { check :: Bool@@ -57,11 +57,21 @@     <$> parseFields (Just "Allow unsolved holes: report each hole's goal and local context instead of failing") (Just "allow-holes") (Just 'H') Nothing     <*> parseFields (Just "Output diagnostics (type errors and holes) as JSON on stdout") (Just "json") (Just 'j') Nothing +data VersionOptions = VersionOptions+  { versionFull :: Bool+  , versionJson :: Bool+  } deriving (Generic, Show, ParseRecord, Read, ParseField)++instance ParseFields VersionOptions where+  parseFields _ _ _ _ = VersionOptions+    <$> parseFields (Just "Print the commit, compiler, platform and LSP support as well") (Just "full") (Just 'f') Nothing+    <*> parseFields (Just "Output the build details as JSON on stdout") (Just "json") (Just 'j') Nothing+ data Command   = Typecheck TypecheckOptions [FilePath]   | Lsp   | Format FormatOptions [FilePath]-  | Version+  | Version VersionOptions   deriving (Generic, Show, ParseRecord)  main :: IO ()@@ -130,4 +140,10 @@               exitFailure             exitSuccess -    Version -> putStrLn (showVersion version)+    -- The bare version is the default on purpose: tools (the VS Code+    -- extension among them) run `rzk version` and read stdout as the version+    -- string, so the details go behind a flag.+    Version (VersionOptions {versionFull, versionJson})+      | versionJson -> BL8.putStrLn (encode versionInfo)+      | versionFull -> putStr (ppVersionInfo versionInfo)+      | otherwise   -> putStrLn versionString
grammar/Syntax.cf view
@@ -206,8 +206,12 @@ ModApp.         Term7 ::= "mod" Modality Term7 ; ModType.        Term7 ::= Modality Term7 ; ModExtract.     Term6 ::= "$extract$" ModComp Term7 ;-LetMod.         Term1 ::= "let" "mod" ModComp Bind ":=" Term "in" Term ;-LetModInto.     Term1 ::= "let" "mod" ModComp Bind ":=" Term "into" Term "in" Term ;+LetModBind.     Term1 ::= "let" Modality Bind ":=" Term "in" Term ;+LetMod.         Term1 ::= "let" "mod" Modality Bind ":=" Term "in" Term ;+LetModFramed.   Term1 ::= "let" Modality "mod" Modality Bind ":=" Term "in" Term ;+LetModBindInto. Term1 ::= "let" Modality Bind ":=" Term "into" Term "in" Term ;+LetModInto.     Term1 ::= "let" "mod" Modality Bind ":=" Term "into" Term "in" Term ;+LetModFramedInto. Term1 ::= "let" Modality "mod" Modality Bind ":=" Term "into" Term "in" Term ; First.          Term6 ::= "π₁" Term7 ; Second.         Term6 ::= "π₂" Term7 ; Unit.           Term7 ::= "unit" ;
rzk.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           rzk-version:        0.11.2+version:        0.11.3 synopsis:       An experimental proof assistant for synthetic ∞-categories description:    Please see the README on GitHub at <https://github.com/rzk-lang/rzk#readme> category:       Dependent Types@@ -52,6 +52,7 @@     test/typecheck/cases/happy-meta-prefix-option-off.rzk     test/typecheck/cases/happy-meta-prefix-plumbing.rzk     test/typecheck/cases/happy-modal-basics.rzk+    test/typecheck/cases/happy-modal-extract-external-lock.rzk     test/typecheck/cases/happy-modal-flat-recOR-under-op.rzk     test/typecheck/cases/happy-modal-flat-under-op.rzk     test/typecheck/cases/happy-modal-inv.rzk@@ -60,6 +61,8 @@     test/typecheck/cases/happy-modal-topes.rzk     test/typecheck/cases/happy-multivar-binder.rzk     test/typecheck/cases/happy-nbe-church-conversion.rzk+    test/typecheck/cases/happy-nbe-transport-refl-spine.rzk+    test/typecheck/cases/happy-nbe-wrapper-alignment.rzk     test/typecheck/cases/happy-op-hom-to-hom.rzk     test/typecheck/cases/happy-recbot-term-wellformed.rzk     test/typecheck/cases/happy-recor-guard-exceeds-context.rzk@@ -238,6 +241,7 @@     test/typecheck/cases/happy-meta-prefix-option-off.expect.yaml     test/typecheck/cases/happy-meta-prefix-plumbing.expect.yaml     test/typecheck/cases/happy-modal-basics.expect.yaml+    test/typecheck/cases/happy-modal-extract-external-lock.expect.yaml     test/typecheck/cases/happy-modal-flat-recOR-under-op.expect.yaml     test/typecheck/cases/happy-modal-flat-under-op.expect.yaml     test/typecheck/cases/happy-modal-inv.expect.yaml@@ -246,6 +250,8 @@     test/typecheck/cases/happy-modal-topes.expect.yaml     test/typecheck/cases/happy-multivar-binder.expect.yaml     test/typecheck/cases/happy-nbe-church-conversion.expect.yaml+    test/typecheck/cases/happy-nbe-transport-refl-spine.expect.yaml+    test/typecheck/cases/happy-nbe-wrapper-alignment.expect.yaml     test/typecheck/cases/happy-op-hom-to-hom.expect.yaml     test/typecheck/cases/happy-recbot-term-wellformed.expect.yaml     test/typecheck/cases/happy-recor-guard-exceeds-context.expect.yaml@@ -437,6 +443,7 @@       Rzk.TypeCheck.NbE       Rzk.TypeCheck.Render       Rzk.TypeCheck.Unify+      Rzk.Version   other-modules:       Paths_rzk   autogen-modules:@@ -455,7 +462,8 @@     , bytestring >=0.10.8.2 && <1     , containers >=0.6 && <1     , directory >=1.2.7.0 && <2-    , free-foil >=0.3.2 && <0.4+    , free-foil ==0.4.*+    , gitrev >=1.3.1 && <2     , kind-generics >=0.5 && <1     , kind-generics-th >=0.2 && <1     , mtl >=2.2.2 && <3@@ -508,7 +516,8 @@     , bytestring >=0.10.8.2 && <1     , containers >=0.6 && <1     , directory >=1.2.7.0 && <2-    , free-foil >=0.3.2 && <0.4+    , free-foil ==0.4.*+    , gitrev >=1.3.1 && <2     , kind-generics >=0.5 && <1     , kind-generics-th >=0.2 && <1     , mtl >=2.2.2 && <3@@ -544,7 +553,8 @@     , containers >=0.6 && <1     , directory >=1.2.7.0 && <2     , doctest-parallel >=0.3 && <1-    , free-foil >=0.3.2 && <0.4+    , free-foil ==0.4.*+    , gitrev >=1.3.1 && <2     , kind-generics >=0.5 && <1     , kind-generics-th >=0.2 && <1     , mtl >=2.2.2 && <3@@ -571,6 +581,7 @@       Rzk.RefIndexSpec       Rzk.SemanticTokensSpec       Rzk.TypeCheckSpec+      Rzk.VersionSpec       Paths_rzk   autogen-modules:       Paths_rzk@@ -591,7 +602,8 @@     , containers >=0.6 && <1     , directory >=1.2.7.0 && <2     , filepath >=1.4 && <2-    , free-foil >=0.3.2 && <0.4+    , free-foil ==0.4.*+    , gitrev >=1.3.1 && <2     , hspec >=2.7 && <3     , hspec-discover >=2.7 && <3     , kind-generics >=0.5 && <1
src/Language/Rzk/Foil/Convert.hs view
@@ -313,22 +313,26 @@       Rzk.ModApp _loc md body -> ModApp (Free.toModality md) (go body)       Rzk.ModType _loc md ty -> TypeModal (Free.toModality md) (go ty)       Rzk.ModExtract{} -> error "$extract$ is an internal term and cannot appear in source"-      Rzk.LetMod _loc comp (Rzk.BindPattern _ pat) val body ->-        let (app, inn) = Free.modCompToMods comp-         in LetMod (toBinder pat) app inn Nothing Nothing (go val)-              (toScopedPattern scope pat env body)-      Rzk.LetMod _loc comp (Rzk.BindPatternType _ pat ty) val body ->-        let (app, inn) = Free.modCompToMods comp-         in LetMod (toBinder pat) app inn (Just (go ty)) Nothing (go val)-              (toScopedPattern scope pat env body)-      Rzk.LetModInto _loc comp (Rzk.BindPattern _ pat) val motive body ->-        let (app, inn) = Free.modCompToMods comp-         in LetMod (toBinder pat) app inn Nothing (Just (go motive)) (go val)-              (toScopedPattern scope pat env body)-      Rzk.LetModInto _loc comp (Rzk.BindPatternType _ pat ty) val motive body ->-        let (app, inn) = Free.modCompToMods comp-         in LetMod (toBinder pat) app inn (Just (go ty)) (Just (go motive)) (go val)-              (toScopedPattern scope pat env body)+      Rzk.LetModBind _loc md bind val body ->+        let m = Free.toModality md+         in letMod bind Id m (ModApp m (go val)) Nothing body+      Rzk.LetModBindInto _loc md bind val motive body ->+        let m = Free.toModality md+         in letMod bind Id m (ModApp m (go val)) (Just (go motive)) body+      Rzk.LetMod _loc inn bind val body ->+        letMod bind Id (Free.toModality inn) (go val) Nothing body+      Rzk.LetModInto _loc inn bind val motive body ->+        letMod bind Id (Free.toModality inn) (go val) (Just (go motive)) body+      Rzk.LetModFramed _loc ext inn bind val body ->+        letMod bind (Free.toModality ext) (Free.toModality inn) (go val) Nothing body+      Rzk.LetModFramedInto _loc ext inn bind val motive body ->+        letMod bind (Free.toModality ext) (Free.toModality inn) (go val) (Just (go motive)) body+    letMod bind app inn value mmotive body =+      case bind of+        Rzk.BindPattern _ pat ->+          LetMod (toBinder pat) app inn Nothing mmotive value (toScopedPattern scope pat env body)+        Rzk.BindPatternType _ pat ty ->+          LetMod (toBinder pat) app inn (Just (go ty)) mmotive value (toScopedPattern scope pat env body)      restriction = \case       Rzk.Restriction _loc tope term       -> (go tope, go term)@@ -387,7 +391,7 @@  -- | Sink an association list of binders by coercion, with no per-entry -- rebuild ('withOpenTerm' calls this at every binder it opens).--- 'Foil.sinkContainer' cannot see through the pair (its element must be the+-- 'Foil.sink1' cannot see through the pair (its element must be the -- sunk type itself), but the sinkability argument is the same: only the -- names mention the scope, and a name sinks by coercion. sinkBound :: Foil.DExt n l => [(VarIdent, Foil.Name n)] -> [(VarIdent, Foil.Name l)]
src/Language/Rzk/Foil/Names.hs view
@@ -151,19 +151,11 @@ toModality Rzk.ASCII_Op{}    = Op toModality Rzk.Id{}          = Id -modCompToMods :: Rzk.ModComp -> (TModality, TModality)-modCompToMods (Rzk.Single _ m)      = (Id, toModality m)-modCompToMods (Rzk.Comp _ ext inn)  = (toModality ext, toModality inn)- fromMod :: TModality -> Rzk.Modality fromMod Sharp = Rzk.Sharp Nothing fromMod Flat  = Rzk.Flat Nothing fromMod Op    = Rzk.Op Nothing fromMod Id    = Rzk.Id Nothing--modsToModComp :: TModality -> TModality -> Rzk.ModComp-modsToModComp Id inn  = Rzk.Single Nothing (fromMod inn)-modsToModComp ext inn = Rzk.Comp Nothing (fromMod ext) (fromMod inn)   -- | A tuple pattern is sugar for nested pairs.
src/Language/Rzk/Foil/Print.hs view
@@ -36,7 +36,7 @@                                            binderToPattern, defaultVarIdents,                                            fromTModalityToModalColon,                                            fromVarIdent, fromMod, holeIdentToken,-                                           modsToModComp, patternToTerm,+                                           patternToTerm,                                            refreshVar) import qualified Language.Rzk.Syntax      as Rzk @@ -214,9 +214,11 @@       let bind = case mty of             Nothing -> Rzk.BindPattern loc (binderToPattern z')             Just ty -> Rzk.BindPatternType loc (binderToPattern z') (go ty)-       in case mmotive of-            Nothing     -> Rzk.LetMod loc (modsToModComp app inn) bind (go val) body'-            Just motive -> Rzk.LetModInto loc (modsToModComp app inn) bind (go val) (go motive) body'+       in case (app, mmotive) of+            (Id, Nothing)     -> Rzk.LetMod loc (goMod inn) bind (go val) body'+            (Id, Just motive) -> Rzk.LetModInto loc (goMod inn) bind (go val) (go motive) body'+            (_, Nothing)      -> Rzk.LetModFramed loc (goMod app) (goMod inn) bind (go val) body'+            (_, Just motive)  -> Rzk.LetModFramedInto loc (goMod app) (goMod inn) bind (go val) (go motive) body'  -- | Peel a match branch's arm chain back into its binder patterns and body. --
src/Language/Rzk/Foil/Syntax.hs view
@@ -316,9 +316,10 @@  -- | The free variables of a term. ----- free-foil has @freeVarsOf@ only on its unreleased @main@, so this is written--- here. A name bound on the way down is dropped from the result, which is what--- makes the coercion back to the outer scope right.+-- free-foil 0.4.0 exports @freeVarsOf@, but it deduplicates and sorts; this one+-- keeps mention order and repeats, as the old representation's did. A name+-- bound on the way down is dropped from the result, which is what makes the+-- coercion back to the outer scope right. freeVarsOfTerm :: Term n -> [Foil.Name n] freeVarsOfTerm (Var x)    = [x] freeVarsOfTerm (UntypedNode sig) = bifoldMap freeVarsOfScoped freeVarsOfTerm sig@@ -354,8 +355,8 @@ isHoleT HoleT{} = True isHoleT _       = False --- | Is the term a /flexible/ spine: a hole, or an application headed by one--- (@? a b@)?+-- | Is the term a /flexible/ spine: a hole, or an elimination headed by one+-- (@? a b@, @first ?@, @second (? a)@)? -- -- Such a term is not yet committed to any shape: filling the head hole can turn -- it into anything. A type of this form therefore stands for an arbitrary type,@@ -363,10 +364,19 @@ -- (@ind-path A a C d x p : C x p@) be judged against a concrete goal. Contrast -- 'containsHole', which is also true of a term whose /shape/ is already fixed -- and only has holes among its parts (@? = ?@ is an identity type either way).+--+-- A projection counts for the same reason an application does. @first ?@ is+-- whatever the first component of the pair turns out to be, so it has no shape+-- of its own to mismatch with. Without this, a lemma stating a property of+-- projections (@first-path-Σ ... : first s = first t@) is not offered against a+-- goal whose endpoint is a plain variable, because solving @first ?t@ against it+-- would mean inventing the pair. isHoleHeadedT :: TermT n -> Bool-isHoleHeadedT HoleT{}     = True-isHoleHeadedT (AppT _ f _) = isHoleHeadedT f-isHoleHeadedT _           = False+isHoleHeadedT HoleT{}       = True+isHoleHeadedT (AppT _ f _)  = isHoleHeadedT f+isHoleHeadedT (FirstT _ t)  = isHoleHeadedT t+isHoleHeadedT (SecondT _ t) = isHoleHeadedT t+isHoleHeadedT _             = False  -- | The name of every hole in a term. holeNamesOf :: Term n -> [Maybe VarIdent]
src/Language/Rzk/Syntax/Abs.hs view
@@ -215,8 +215,12 @@     | ModApp a (Modality' a) (Term' a)     | ModType a (Modality' a) (Term' a)     | ModExtract a (ModComp' a) (Term' a)-    | LetMod a (ModComp' a) (Bind' a) (Term' a) (Term' a)-    | LetModInto a (ModComp' a) (Bind' a) (Term' a) (Term' a) (Term' a)+    | LetModBind a (Modality' a) (Bind' a) (Term' a) (Term' a)+    | LetMod a (Modality' a) (Bind' a) (Term' a) (Term' a)+    | LetModFramed a (Modality' a) (Modality' a) (Bind' a) (Term' a) (Term' a)+    | LetModBindInto a (Modality' a) (Bind' a) (Term' a) (Term' a) (Term' a)+    | LetModInto a (Modality' a) (Bind' a) (Term' a) (Term' a) (Term' a)+    | LetModFramedInto a (Modality' a) (Modality' a) (Bind' a) (Term' a) (Term' a) (Term' a)     | First a (Term' a)     | Second a (Term' a)     | Unit a@@ -515,8 +519,12 @@     ModApp p _ _ -> p     ModType p _ _ -> p     ModExtract p _ _ -> p+    LetModBind p _ _ _ _ -> p     LetMod p _ _ _ _ -> p+    LetModFramed p _ _ _ _ _ -> p+    LetModBindInto p _ _ _ _ _ -> p     LetModInto p _ _ _ _ _ -> p+    LetModFramedInto p _ _ _ _ _ _ -> p     First p _ -> p     Second p _ -> p     Unit p -> p
src/Language/Rzk/Syntax/Par.hs view
@@ -423,21 +423,21 @@ happyTokenStrings = ["'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#data'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'$extract$'","'('","')'","'*'","'*_1'","'*\8321'","','","'->'","'/'","'/\\\\'","'0_2'","'0_I'","'0\7522'","'0\8322'","'1'","'1_2'","'1_I'","'1\7522'","'1\8322'","'2'","':'","':='","':_#'","':_b'","':_id'","':_op'","':\7506\7510'","':\9837'","':\9839'","';'","'<='","'='","'==='","'=>'","'=_{'","'BOT'","'CUBE'","'II'","'Sigma'","'TOP'","'TOPE'","'U'","'Unit'","'['","'\\\\'","'\\\\/'","']'","'_#'","'_b'","'_id'","'_op'","'as'","'compute'","'eliminate'","'first'","'flip_op'","'flip\7506\7510'","'idJ'","'in'","'inf'","'into'","'inv_op'","'inv\7506\7510'","'let'","'match'","'mod'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'sup'","'unflip_op'","'unflip\7506\7510'","'uninv_op'","'uninv\7506\7510'","'unit'","'uses'","'with'","'|'","'|->'","'}'","'\215'","'\931'","'\960\8321'","'\960\8322'","'\7506\7510'","'\8594'","'\8614'","'\8658'","'\8721'","'\8743'","'\8744'","'\8801'","'\8804'","'\8851'","'\8852'","'\8868'","'\8869'","'\9837'","'\9839'","'\120128'","L_quoted","L_VarIdentToken","L_HoleIdentToken","%eof"]  happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\xff\xff\xff\xff\x9d\xff\xff\xff\xa9\xff\xff\xff\xa9\xff\xff\xff\x2a\x00\x00\x00\xe3\xff\xff\xff\xe9\x0b\x00\x00\xe9\x0b\x00\x00\x14\x00\x00\x00\xd5\xff\xff\xff\x3a\x00\x00\x00\x63\x00\x00\x00\x2b\x00\x00\x00\x2b\x00\x00\x00\x96\x00\x00\x00\xbd\xff\xff\xff\xbd\xff\xff\xff\x5f\x00\x00\x00\x5f\x00\x00\x00\x85\x00\x00\x00\x85\x00\x00\x00\x85\x00\x00\x00\x85\x00\x00\x00\xc4\x00\x00\x00\xc4\x00\x00\x00\xd4\x00\x00\x00\x59\x00\x00\x00\xd4\x00\x00\x00\xd4\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\x8f\x01\x00\x00\x73\x03\x00\x00\xf7\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\xf7\x01\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\xed\xff\xff\xff\x42\x00\x00\x00\x51\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x7c\x00\x00\x00\x8f\x01\x00\x00\xef\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x12\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf4\xff\xff\xff\xf7\x01\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x21\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x27\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\xc0\x00\x00\x00\x76\x00\x00\x00\xc0\x00\x00\x00\xf5\x00\x00\x00\xef\xff\xff\xff\xc0\x00\x00\x00\xa9\x01\x00\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\x0d\x00\x00\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\xd9\x00\x00\x00\xd9\x00\x00\x00\x3f\x01\x00\x00\xe1\x00\x00\x00\xb2\xff\xff\xff\xe1\x00\x00\x00\x00\x00\x00\x00\xd5\x0b\x00\x00\x5e\x01\x00\x00\x07\x01\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x07\x01\x00\x00\x07\x01\x00\x00\xa9\x01\x00\x00\x65\x01\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x15\x01\x00\x00\x18\x01\x00\x00\x16\x01\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x83\x01\x00\x00\x25\x01\x00\x00\x25\x01\x00\x00\x16\x01\x00\x00\x25\x01\x00\x00\x25\x01\x00\x00\x48\x01\x00\x00\x47\x01\x00\x00\x2f\x01\x00\x00\x2f\x01\x00\x00\xbd\xff\xff\xff\x2f\x01\x00\x00\x4f\x01\x00\x00\x51\x01\x00\x00\x53\x01\x00\x00\x53\x01\x00\x00\xef\xff\xff\xff\x09\x00\x00\x00\x73\x01\x00\x00\x8d\x01\x00\x00\x8d\x01\x00\x00\x8d\x01\x00\x00\x74\x01\x00\x00\x95\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x95\x01\x00\x00\x95\x01\x00\x00\x15\x02\x00\x00\x00\x02\x00\x00\xb8\x01\x00\x00\xbb\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbb\x01\x00\x00\xbd\x01\x00\x00\xbd\x01\x00\x00\xcc\x01\x00\x00\xcc\x01\x00\x00\xd4\x01\x00\x00\xd4\x01\x00\x00\x00\x00\x00\x00\xd4\x01\x00\x00\xf0\x01\x00\x00\xe0\x01\x00\x00\x05\x02\x00\x00\x05\x02\x00\x00\x05\x02\x00\x00\x05\x02\x00\x00\xe9\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x02\x00\x00\x44\x02\x00\x00\x5d\x02\x00\x00\x00\x00\x00\x00\x59\x02\x00\x00\x00\x00\x00\x00\x2b\x02\x00\x00\x00\x00\x00\x00\x2b\x02\x00\x00\x2b\x02\x00\x00\x2b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x02\x00\x00\x6c\x02\x00\x00\xe9\x0b\x00\x00\x19\x02\x00\x00\x00\x00\x00\x00\xbd\xff\xff\xff\x19\x02\x00\x00\x00\x00\x00\x00\x9c\x02\x00\x00\x00\x00\x00\x00\x4b\x02\x00\x00\x4b\x02\x00\x00\x00\x00\x00\x00\x4b\x02\x00\x00\xe6\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x16\x01\x00\x00\x41\x00\x00\x00\xde\x0b\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xb3\x02\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\x06\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\x16\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf9\xff\xff\xff\xef\xff\xff\xff\xf7\x01\x00\x00\x03\x00\x00\x00\xa7\x02\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x16\x01\x00\x00\x6f\x0b\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x01\x00\x00\x2c\x01\x00\x00\x2c\x01\x00\x00\x2c\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\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xe7\x0b\x00\x00\xc5\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xcb\x02\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\x7a\x02\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xe5\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x0b\x00\x00\xe2\x02\x00\x00\xf9\x0b\x00\x00\xe3\x02\x00\x00\x9d\x02\x00\x00\x00\x00\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\xc4\x02\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\xe4\x02\x00\x00\xf3\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x0e\x00\x00\x00\x60\x00\x00\x00\x79\x00\x00\x00\xc8\x00\x00\x00\xbe\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x03\x00\x00\xef\xff\xff\xff\x1a\x03\x00\x00\xef\xff\xff\xff\x1b\x03\x00\x00\xef\xff\xff\xff\x3d\x03\x00\x00\x40\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\xa7\x00\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\x16\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xf2\x02\x00\x00\x00\x00\x00\x00\x42\x03\x00\x00\x58\x03\x00\x00\x21\x03\x00\x00\x48\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x3c\x00\x00\x00\x96\x01\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x60\x03\x00\x00\x63\x03\x00\x00\x65\x03\x00\x00\x7b\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x1e\x03\x00\x00\x00\x00\x00\x00\x80\x03\x00\x00\x81\x03\x00\x00\x8f\x03\x00\x00\x90\x03\x00\x00\x91\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x03\x00\x00\x00\x00\x00\x00\x82\x03\x00\x00\xef\xff\xff\xff\x8c\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x8d\x03\x00\x00\xef\xff\xff\xff\x9b\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x94\x03\x00\x00\xaf\x03\x00\x00\xb0\x03\x00\x00\xb2\x03\x00\x00\xb3\x03\x00\x00\xb5\x03\x00\x00\xb6\x03\x00\x00\xb7\x03\x00\x00\xb8\x03\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\xef\xff\xff\xff\xba\x03\x00\x00\xbb\x03\x00\x00\xbc\x03\x00\x00\xc1\x03\x00\x00\xc3\x03\x00\x00\xce\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xc0\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\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\x84\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xd9\x03\x00\x00\xef\xff\xff\xff\xde\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#+happyActOffsets = HappyA# "\xff\xff\xff\xff\x9d\xff\xff\xff\xa4\xff\xff\xff\xa4\xff\xff\xff\x21\x00\x00\x00\xcb\xff\xff\xff\xbe\x0c\x00\x00\xbe\x0c\x00\x00\xd5\xff\xff\xff\xc1\xff\xff\xff\x39\x00\x00\x00\x4d\x00\x00\x00\x1d\x00\x00\x00\x1d\x00\x00\x00\x84\x00\x00\x00\xbd\xff\xff\xff\xbd\xff\xff\xff\x37\x00\x00\x00\x37\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\x41\x00\x00\x00\xc4\x00\x00\x00\xc4\x00\x00\x00\xd4\x00\x00\x00\x59\x00\x00\x00\xd4\x00\x00\x00\xd4\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\x8f\x01\x00\x00\xa3\x03\x00\x00\xf7\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\xf7\x01\x00\x00\x00\x00\x00\x00\x91\x01\x00\x00\xed\xff\xff\xff\xd8\xff\xff\xff\x10\x01\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\xc7\x00\x00\x00\x79\x00\x00\x00\x8f\x01\x00\x00\xef\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x00\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xfd\x01\x00\x00\xf7\x01\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x21\x01\x00\x00\xf7\x01\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x27\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\xc3\x00\x00\x00\x56\x00\x00\x00\xc3\x00\x00\x00\xf5\x00\x00\x00\xef\xff\xff\xff\xc3\x00\x00\x00\xa9\x01\x00\x00\xc3\x00\x00\x00\xc3\x00\x00\x00\x0d\x00\x00\x00\xc3\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\xe1\x00\x00\x00\xe1\x00\x00\x00\x5e\x01\x00\x00\x18\x01\x00\x00\x2e\x00\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\xaa\x0c\x00\x00\x7a\x01\x00\x00\x24\x01\x00\x00\x13\x01\x00\x00\x00\x00\x00\x00\x24\x01\x00\x00\x24\x01\x00\x00\xa9\x01\x00\x00\x78\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x22\x01\x00\x00\x2c\x01\x00\x00\x2a\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\xb7\x01\x00\x00\x59\x01\x00\x00\x59\x01\x00\x00\x2a\x01\x00\x00\x59\x01\x00\x00\x59\x01\x00\x00\x48\x01\x00\x00\x85\x01\x00\x00\x6c\x01\x00\x00\x6c\x01\x00\x00\xbd\xff\xff\xff\x6c\x01\x00\x00\xa8\x01\x00\x00\xc7\x01\x00\x00\x72\x01\x00\x00\x72\x01\x00\x00\xef\xff\xff\xff\xf4\xff\xff\xff\xaf\x01\x00\x00\x93\x01\x00\x00\x93\x01\x00\x00\x93\x01\x00\x00\xb5\x01\x00\x00\xb8\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xb8\x01\x00\x00\xb8\x01\x00\x00\x22\x02\x00\x00\x07\x02\x00\x00\xcc\x01\x00\x00\xcb\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xcb\x01\x00\x00\xd8\x01\x00\x00\xd8\x01\x00\x00\xf0\x01\x00\x00\xf0\x01\x00\x00\xd6\x01\x00\x00\xd6\x01\x00\x00\x00\x00\x00\x00\xd6\x01\x00\x00\x30\x02\x00\x00\x14\x02\x00\x00\x15\x02\x00\x00\x15\x02\x00\x00\x15\x02\x00\x00\x15\x02\x00\x00\xbe\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x02\x00\x00\x76\x02\x00\x00\x89\x02\x00\x00\x00\x00\x00\x00\x7f\x02\x00\x00\x00\x00\x00\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x5f\x02\x00\x00\x5f\x02\x00\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x02\x00\x00\xa3\x02\x00\x00\xbe\x0c\x00\x00\x64\x02\x00\x00\x00\x00\x00\x00\xbd\xff\xff\xff\x64\x02\x00\x00\x00\x00\x00\x00\xbe\x02\x00\x00\x00\x00\x00\x00\x7e\x02\x00\x00\x7e\x02\x00\x00\x00\x00\x00\x00\x7e\x02\x00\x00\xe3\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x2a\x01\x00\x00\x09\x00\x00\x00\xb3\x0c\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xe2\x02\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x8f\x01\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xc1\x00\x00\x00\xa7\x00\x00\x00\xef\xff\xff\xff\x2a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf5\xff\xff\xff\xef\xff\xff\xff\xf7\x01\x00\x00\x02\x00\x00\x00\xd8\x02\x00\x00\x85\x00\x00\x00\x8f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x2a\x01\x00\x00\x41\x0c\x00\x00\xf7\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xbc\x0c\x00\x00\xea\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xeb\x02\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\xe1\x02\x00\x00\x8f\x01\x00\x00\xef\xff\xff\xff\xa0\x02\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\xf7\x02\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x0c\x00\x00\x08\x03\x00\x00\xce\x0c\x00\x00\x13\x03\x00\x00\xd0\x02\x00\x00\x00\x00\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\xfb\x02\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x10\x03\x00\x00\x11\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x60\x00\x00\x00\xc8\x00\x00\x00\x15\x01\x00\x00\x16\x01\x00\x00\xc6\x02\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x03\x00\x00\xef\xff\xff\xff\x1c\x03\x00\x00\xef\xff\xff\xff\x23\x03\x00\x00\xef\xff\xff\xff\x19\x03\x00\x00\x31\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x5f\x01\x00\x00\xa7\x00\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xf2\x02\x00\x00\x00\x00\x00\x00\x52\x03\x00\x00\x53\x03\x00\x00\x1e\x03\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\x3f\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x22\x00\x00\x00\x8d\x01\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x59\x03\x00\x00\x5a\x03\x00\x00\x5b\x03\x00\x00\x58\x03\x00\x00\xef\xff\xff\xff\x12\x00\x00\x00\x4a\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xf9\x02\x00\x00\x00\x00\x00\x00\x61\x03\x00\x00\x63\x03\x00\x00\x64\x03\x00\x00\x66\x03\x00\x00\x80\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x54\x03\x00\x00\x00\x00\x00\x00\x6e\x03\x00\x00\xef\xff\xff\xff\x6f\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x72\x03\x00\x00\xef\xff\xff\xff\x75\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x89\x03\x00\x00\x8a\x03\x00\x00\x8b\x03\x00\x00\x88\x03\x00\x00\x8c\x03\x00\x00\x8e\x03\x00\x00\x8f\x03\x00\x00\x91\x03\x00\x00\xaf\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x01\x01\x00\x00\xef\xff\xff\xff\x92\x03\x00\x00\xac\x03\x00\x00\xad\x03\x00\x00\xb4\x03\x00\x00\xbf\x03\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xbd\x03\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\x56\x03\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\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\xef\xff\xff\xff\xef\xff\xff\xff\xef\xff\xff\xff\x8d\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x03\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\x97\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\x00\x00\x00\x00\xef\xff\xff\xff\xcc\x03\x00\x00\x00\x00\x00\x00\xef\xff\xff\xff\xc4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#  happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x8a\x00\x00\x00\x95\x00\x00\x00\x08\x01\x00\x00\x4c\x01\x00\x00\xec\x03\x00\x00\xbf\x03\x00\x00\xed\x03\x00\x00\xe3\x00\x00\x00\xee\x03\x00\x00\xba\x02\x00\x00\xef\x03\x00\x00\xf0\x03\x00\x00\x4e\x02\x00\x00\x72\x01\x00\x00\xe9\x03\x00\x00\xeb\x03\x00\x00\x31\x01\x00\x00\xdc\x01\x00\x00\xd1\x00\x00\x00\xae\x01\x00\x00\xc3\x0b\x00\x00\x16\x00\x00\x00\x7b\x0b\x00\x00\xa8\x0b\x00\x00\x04\x03\x00\x00\x8b\x02\x00\x00\x3f\x0a\x00\x00\x1f\x01\x00\x00\xd3\x01\x00\x00\xfb\x02\x00\x00\x83\x02\x00\x00\xdd\x03\x00\x00\x23\x01\x00\x00\xd7\x03\x00\x00\xd5\x01\x00\x00\x4f\x0a\x00\x00\x30\x0a\x00\x00\x06\x0a\x00\x00\xc1\x09\x00\x00\x88\x0a\x00\x00\xe8\x08\x00\x00\x27\x03\x00\x00\x3c\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\xbf\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x01\x00\x00\x37\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x0a\x00\x00\xdb\x0a\x00\x00\xe1\x0a\x00\x00\x00\x00\x00\x00\xe8\x0a\x00\x00\xed\x0a\x00\x00\xf2\x0a\x00\x00\xa1\x02\x00\x00\xfd\x0a\x00\x00\xdf\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x03\x00\x00\x03\x0b\x00\x00\x14\x0b\x00\x00\x19\x0b\x00\x00\x1f\x0b\x00\x00\x25\x0b\x00\x00\x2a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x0b\x00\x00\x3b\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x0b\x00\x00\x66\x03\x00\x00\x00\x00\x00\x00\x41\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x0b\x00\x00\x00\x00\x00\x00\xc6\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x03\x00\x00\xdd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x02\x00\x00\x00\x00\x00\x00\x95\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x02\x00\x00\xb4\x03\x00\x00\xc4\x03\x00\x00\xe3\x03\x00\x00\xf3\x03\x00\x00\xee\x01\x00\x00\xf4\x01\x00\x00\x5a\x02\x00\x00\x31\x03\x00\x00\xb7\x02\x00\x00\x64\x03\x00\x00\x02\x04\x00\x00\x03\x04\x00\x00\x39\x03\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x03\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\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\xfc\x03\x00\x00\x00\x00\x00\x00\x06\x04\x00\x00\x07\x04\x00\x00\x15\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x01\x00\x00\xfd\x02\x00\x00\x00\x00\x00\x00\xfd\x01\x00\x00\xb9\x02\x00\x00\x00\x00\x00\x00\x10\x04\x00\x00\x00\x00\x00\x00\x6d\x03\x00\x00\x75\x03\x00\x00\x00\x00\x00\x00\x81\x02\x00\x00\x00\x00\x00\x00\x12\x04\x00\x00\x22\x04\x00\x00\x00\x00\x00\x00\xad\x0b\x00\x00\xd3\x0b\x00\x00\x01\x04\x00\x00\x00\x00\x00\x00\x41\x04\x00\x00\x00\x00\x00\x00\xaf\x02\x00\x00\x00\x00\x00\x00\x26\x02\x00\x00\x51\x04\x00\x00\x70\x04\x00\x00\x80\x04\x00\x00\x9f\x04\x00\x00\xbf\x02\x00\x00\x00\x04\x00\x00\x95\x0a\x00\x00\xa4\x0a\x00\x00\xaa\x0a\x00\x00\xb4\x0a\x00\x00\x00\x00\x00\x00\xd0\x09\x00\x00\xaf\x04\x00\x00\x3a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x02\x00\x00\x56\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0b\x00\x00\xce\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x02\x00\x00\x04\x04\x00\x00\x63\x0b\x00\x00\x53\x02\x00\x00\xf7\x08\x00\x00\xdc\x09\x00\x00\xeb\x09\x00\x00\x15\x0a\x00\x00\x25\x0a\x00\x00\x5e\x0a\x00\x00\x69\x0a\x00\x00\x76\x0a\x00\x00\x7d\x0a\x00\x00\x00\x00\x00\x00\x07\x09\x00\x00\x16\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x04\x00\x00\x00\x00\x00\x00\xfd\x04\x00\x00\x0d\x05\x00\x00\x05\x04\x00\x00\x00\x00\x00\x00\x26\x09\x00\x00\x35\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x02\x00\x00\x2c\x05\x00\x00\x2e\x03\x00\x00\x68\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x04\x00\x00\x00\x00\x00\x00\x09\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x0b\x00\x00\x6d\x0b\x00\x00\x6d\x0b\x00\x00\x6d\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x05\x00\x00\x6b\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x05\x00\x00\x9a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x05\x00\x00\xc9\x05\x00\x00\x9b\x01\x00\x00\x9d\x0b\x00\x00\x9f\x0b\x00\x00\xa6\x0b\x00\x00\x2a\x04\x00\x00\xe8\x05\x00\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x06\x00\x00\x00\x00\x00\x00\x27\x06\x00\x00\x00\x00\x00\x00\x46\x06\x00\x00\x1d\x04\x00\x00\x21\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x06\x00\x00\x75\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x09\x00\x00\xb4\x02\x00\x00\x85\x06\x00\x00\xf0\x02\x00\x00\xa4\x06\x00\x00\xb4\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x03\x00\x00\xe3\x06\x00\x00\x02\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x07\x00\x00\x00\x00\x00\x00\x72\x02\x00\x00\x00\x00\x00\x00\x31\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x07\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x70\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x0b\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x8f\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x07\x00\x00\x00\x00\x00\x00\xbe\x07\x00\x00\x00\x00\x00\x00\xce\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x07\x00\x00\x00\x00\x00\x00\xfd\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\x1c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x09\x00\x00\x54\x09\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x2c\x08\x00\x00\x4b\x08\x00\x00\x00\x00\x00\x00\x73\x09\x00\x00\x83\x09\x00\x00\x92\x09\x00\x00\xa2\x09\x00\x00\xb1\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x08\x00\x00\x00\x00\x00\x00\x7a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x08\x00\x00\x00\x00\x00\x00\xb9\x08\x00\x00\x00\x00\x00\x00\xd8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#+happyGotoOffsets = HappyA# "\x06\x01\x00\x00\xa3\x00\x00\x00\xad\x01\x00\x00\x5c\x00\x00\x00\xeb\x03\x00\x00\xec\x03\x00\x00\xea\x03\x00\x00\x48\x00\x00\x00\xef\x03\x00\x00\x8b\x02\x00\x00\xee\x03\x00\x00\xe9\x03\x00\x00\xc5\x02\x00\x00\x59\x02\x00\x00\xed\x03\x00\x00\xf0\x03\x00\x00\xda\x00\x00\x00\xdc\x01\x00\x00\xd1\x00\x00\x00\xae\x01\x00\x00\x18\x00\x00\x00\x70\x0b\x00\x00\x4d\x0b\x00\x00\x30\x0c\x00\x00\x73\x0c\x00\x00\x9a\x01\x00\x00\x0c\x0b\x00\x00\xde\x02\x00\x00\x80\x00\x00\x00\x28\x03\x00\x00\xb0\x02\x00\x00\xda\x03\x00\x00\x23\x01\x00\x00\xd9\x03\x00\x00\xd5\x01\x00\x00\x1b\x0b\x00\x00\x01\x0b\x00\x00\xd7\x0a\x00\x00\xb4\x09\x00\x00\x5d\x0b\x00\x00\xc4\x09\x00\x00\x38\x03\x00\x00\x53\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\x42\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x57\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0b\x00\x00\xaa\x0b\x00\x00\xaf\x0b\x00\x00\x00\x00\x00\x00\xba\x0b\x00\x00\xbf\x0b\x00\x00\xc4\x0b\x00\x00\x87\x01\x00\x00\xc9\x0b\x00\x00\xdd\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x03\x00\x00\xd1\x0b\x00\x00\xd6\x0b\x00\x00\xeb\x0b\x00\x00\xf0\x0b\x00\x00\xf8\x0b\x00\x00\xfd\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x0c\x00\x00\x07\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x0c\x00\x00\x86\x03\x00\x00\x00\x00\x00\x00\x12\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0c\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x03\x00\x00\x61\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x02\x00\x00\x00\x00\x00\x00\xb5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x00\x00\x00\xc5\x03\x00\x00\xe4\x03\x00\x00\xf4\x03\x00\x00\x13\x04\x00\x00\xb0\x01\x00\x00\xee\x01\x00\x00\xf4\x01\x00\x00\xc2\x02\x00\x00\x58\x02\x00\x00\xc7\x02\x00\x00\x03\x04\x00\x00\x04\x04\x00\x00\x5a\x02\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x03\x00\x00\x06\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\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\xfc\x03\x00\x00\x00\x00\x00\x00\x07\x04\x00\x00\x08\x04\x00\x00\x16\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x01\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\xc9\x01\x00\x00\xf6\x02\x00\x00\x00\x00\x00\x00\xf7\x03\x00\x00\x00\x00\x00\x00\xca\x02\x00\x00\xf4\x02\x00\x00\x00\x00\x00\x00\x4e\x02\x00\x00\x00\x00\x00\x00\x23\x04\x00\x00\x42\x04\x00\x00\x00\x00\x00\x00\x9a\x0c\x00\x00\xa8\x0c\x00\x00\xfe\x03\x00\x00\x00\x00\x00\x00\x52\x04\x00\x00\x00\x00\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\xd3\x01\x00\x00\x71\x04\x00\x00\x81\x04\x00\x00\xa0\x04\x00\x00\xb0\x04\x00\x00\xec\x02\x00\x00\x01\x04\x00\x00\x69\x0b\x00\x00\x79\x0b\x00\x00\x7f\x0b\x00\x00\x88\x0b\x00\x00\x00\x00\x00\x00\x9d\x0a\x00\x00\xcf\x04\x00\x00\x1a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x02\x00\x00\x29\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x02\x00\x00\x09\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x0c\x00\x00\xdf\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x03\x00\x00\x02\x04\x00\x00\x39\x0c\x00\x00\x80\x02\x00\x00\xd3\x09\x00\x00\xac\x0a\x00\x00\xb8\x0a\x00\x00\xe2\x0a\x00\x00\xf1\x0a\x00\x00\x2b\x0b\x00\x00\x36\x0b\x00\x00\x42\x0b\x00\x00\x52\x0b\x00\x00\x00\x00\x00\x00\xe3\x09\x00\x00\xf2\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x04\x00\x00\x00\x00\x00\x00\x0e\x05\x00\x00\x2d\x05\x00\x00\x05\x04\x00\x00\x00\x00\x00\x00\x02\x0a\x00\x00\x11\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x02\x00\x00\x00\x00\x00\x00\x0a\x04\x00\x00\x3d\x05\x00\x00\x71\x03\x00\x00\x3e\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x04\x00\x00\x00\x00\x00\x00\x0b\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x0c\x00\x00\x43\x0c\x00\x00\x43\x0c\x00\x00\x43\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x05\x00\x00\x8b\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x05\x00\x00\xba\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x05\x00\x00\xe9\x05\x00\x00\x70\x0c\x00\x00\x82\x0c\x00\x00\x8b\x0c\x00\x00\x91\x0c\x00\x00\x2d\x04\x00\x00\xf9\x05\x00\x00\x18\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x47\x06\x00\x00\x00\x00\x00\x00\x57\x06\x00\x00\x20\x04\x00\x00\x24\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x06\x00\x00\x86\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x0a\x00\x00\x82\x02\x00\x00\xa5\x06\x00\x00\x85\x02\x00\x00\xb5\x06\x00\x00\xd4\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x0b\x00\x00\xe4\x06\x00\x00\x00\x00\x00\x00\x03\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x02\x00\x00\x13\x07\x00\x00\x32\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x07\x00\x00\x00\x00\x00\x00\x91\x02\x00\x00\x00\x00\x00\x00\x61\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xa0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x0c\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xbf\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\x07\x00\x00\x00\x00\x00\x00\xee\x07\x00\x00\x00\x00\x00\x00\xfe\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x08\x00\x00\x00\x00\x00\x00\x2d\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x08\x00\x00\x5c\x08\x00\x00\x7b\x08\x00\x00\x00\x00\x00\x00\x8b\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x0a\x00\x00\x30\x0a\x00\x00\x40\x0a\x00\x00\x00\x00\x00\x00\xaa\x08\x00\x00\xba\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x0a\x00\x00\x5f\x0a\x00\x00\x6e\x0a\x00\x00\x7e\x0a\x00\x00\x8d\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x08\x00\x00\x00\x00\x00\x00\xe9\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x18\x09\x00\x00\x37\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x09\x00\x00\x00\x00\x00\x00\x95\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#  happyDefActions :: HappyAddr-happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xb4\xff\xff\xff\xb3\xff\xff\xff\xb0\xff\xff\xff\xae\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xff\xff\x00\x00\x00\x00\xa5\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\xff\xff\xcf\xff\xff\xff\xd0\xff\xff\xff\x53\xff\xff\xff\x52\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2b\xff\xff\xff\x41\xff\xff\xff\x3d\xff\xff\xff\x3a\xff\xff\xff\x1c\xff\xff\xff\x45\xff\xff\xff\x13\xff\xff\xff\x12\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\xff\xff\x6a\xff\xff\xff\x4f\xff\xff\xff\x4c\xff\xff\xff\x65\xff\xff\xff\x68\xff\xff\xff\x6b\xff\xff\xff\x4e\xff\xff\xff\x4b\xff\xff\xff\x64\xff\xff\xff\x67\xff\xff\xff\x69\xff\xff\xff\x49\xff\xff\xff\x6d\xff\xff\xff\x4d\xff\xff\xff\x00\x00\x00\x00\x4a\xff\xff\xff\x6c\xff\xff\xff\x6e\xff\xff\xff\x5f\xff\xff\xff\x00\x00\x00\x00\x7b\xff\xff\xff\x7d\xff\xff\xff\x78\xff\xff\xff\x79\xff\xff\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\x61\xff\xff\xff\x00\x00\x00\x00\x59\xff\xff\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\x5a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xff\xff\xff\x00\x00\x00\x00\x63\xff\xff\xff\x62\xff\xff\xff\x7e\xff\xff\xff\x7c\xff\xff\xff\x66\xff\xff\xff\xd3\xff\xff\xff\xd2\xff\xff\xff\x00\x00\x00\x00\x1c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xff\xff\xff\x71\xff\xff\xff\x72\xff\xff\xff\x6f\xff\xff\xff\x73\xff\xff\xff\x75\xff\xff\xff\x74\xff\xff\xff\x77\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x80\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xff\xff\xff\x00\x00\x00\x00\x84\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xff\xff\xff\x8d\xff\xff\xff\x00\x00\x00\x00\x94\xff\xff\xff\x8f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\xff\xff\x96\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa5\xff\xff\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\xa8\xff\xff\xff\xab\xff\xff\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\xb2\xff\xff\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\x00\x00\xb3\xff\xff\xff\x00\x00\x00\x00\xb3\xff\xff\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\xcb\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xd1\xff\xff\xff\xcd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xff\xff\x00\x00\x00\x00\xbf\xff\xff\xff\xb4\xff\xff\xff\xbe\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xc6\xff\xff\xff\xc5\xff\xff\xff\xc7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\x00\x00\x00\x00\xb1\xff\xff\xff\xa5\xff\xff\xff\x00\x00\x00\x00\xac\xff\xff\xff\xa8\xff\xff\xff\xa9\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\xff\xff\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x8e\xff\xff\xff\x00\x00\x00\x00\x2f\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\xff\xff\xff\x2d\xff\xff\xff\x00\x00\x00\x00\x36\xff\xff\xff\x35\xff\xff\xff\x32\xff\xff\xff\x31\xff\xff\xff\x00\x00\x00\x00\x27\xff\xff\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\x38\xff\xff\xff\x37\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x34\xff\xff\xff\x33\xff\xff\xff\x28\xff\xff\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\x00\x00\x00\x00\x00\x00\x5b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x26\xff\xff\xff\x1b\xff\xff\xff\x42\xff\xff\xff\x43\xff\xff\xff\x40\xff\xff\xff\x3f\xff\xff\xff\x3e\xff\xff\xff\x3c\xff\xff\xff\x3b\xff\xff\xff\x39\xff\xff\xff\x14\xff\xff\xff\x11\xff\xff\xff\x2e\xff\xff\xff\x00\x00\x00\x00\x51\xff\xff\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\x29\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\xff\xff\x2a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\xff\xff\xff\x47\xff\xff\xff\x46\xff\xff\xff\x48\xff\xff\xff\x44\xff\xff\xff\x76\xff\xff\xff\x7f\xff\xff\xff\x82\xff\xff\xff\x81\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x83\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x95\xff\xff\xff\xa2\xff\xff\xff\xa0\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xad\xff\xff\xff\xaa\xff\xff\xff\xaf\xff\xff\xff\x00\x00\x00\x00\xb6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\xff\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\xcc\xff\xff\xff\xc0\xff\xff\xff\xc1\xff\xff\xff\xca\xff\xff\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\xae\xff\xff\xff\xb0\xff\xff\xff\xc8\xff\xff\xff\xc2\xff\xff\xff\xb5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa3\xff\xff\xff\xa1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x30\xff\xff\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\x60\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\xff\xff\x17\xff\xff\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\x88\xff\xff\xff\x00\x00\x00\x00\x5e\xff\xff\xff\x00\x00\x00\x00\x8a\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x85\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xff\xff\xff\x00\x00\x00\x00\x57\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x00\x00\x00\x00\x22\xff\xff\xff\x9b\xff\xff\xff\x00\x00\x00\x00\x91\xff\xff\xff\x00\x00\x00\x00\x93\xff\xff\xff\x00\x00\x00\x00\xa6\xff\xff\xff\xa7\xff\xff\xff\xae\xff\xff\xff\xb8\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\xff\xff\x00\x00\x00\x00\xc4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\xff\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\x20\xff\xff\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\x87\xff\xff\xff\x5d\xff\xff\xff\x89\xff\xff\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\x54\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xff\xff\xff\x90\xff\xff\xff\x92\xff\xff\xff\xba\xff\xff\xff\x00\x00\x00\x00\xbc\xff\xff\xff\x00\x00\x00\x00\xbd\xff\xff\xff\xbb\xff\xff\xff\x15\xff\xff\xff\x16\xff\xff\xff\x23\xff\xff\xff\x24\xff\xff\xff\x25\xff\xff\xff\x00\x00\x00\x00\x1e\xff\xff\xff\x00\x00\x00\x00\x18\xff\xff\xff\x19\xff\xff\xff\x1a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\xff\xff"#+happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xb4\xff\xff\xff\xb3\xff\xff\xff\xb0\xff\xff\xff\xae\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xff\xff\xff\x00\x00\x00\x00\xa5\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xff\xff\xff\xcf\xff\xff\xff\xd0\xff\xff\xff\x53\xff\xff\xff\x52\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x2b\xff\xff\xff\x41\xff\xff\xff\x3d\xff\xff\xff\x3a\xff\xff\xff\x18\xff\xff\xff\x45\xff\xff\xff\x0f\xff\xff\xff\x0e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xff\xff\xff\x6a\xff\xff\xff\x4f\xff\xff\xff\x4c\xff\xff\xff\x65\xff\xff\xff\x68\xff\xff\xff\x6b\xff\xff\xff\x4e\xff\xff\xff\x4b\xff\xff\xff\x64\xff\xff\xff\x67\xff\xff\xff\x69\xff\xff\xff\x49\xff\xff\xff\x6d\xff\xff\xff\x4d\xff\xff\xff\x00\x00\x00\x00\x4a\xff\xff\xff\x6c\xff\xff\xff\x6e\xff\xff\xff\x5f\xff\xff\xff\x00\x00\x00\x00\x7b\xff\xff\xff\x7d\xff\xff\xff\x78\xff\xff\xff\x79\xff\xff\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\x61\xff\xff\xff\x00\x00\x00\x00\x59\xff\xff\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\x5a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xff\xff\xff\x00\x00\x00\x00\x63\xff\xff\xff\x62\xff\xff\xff\x7e\xff\xff\xff\x7c\xff\xff\xff\x66\xff\xff\xff\xd3\xff\xff\xff\xd2\xff\xff\xff\x00\x00\x00\x00\x18\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xff\xff\xff\x71\xff\xff\xff\x72\xff\xff\xff\x6f\xff\xff\xff\x73\xff\xff\xff\x75\xff\xff\xff\x74\xff\xff\xff\x77\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x80\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xff\xff\xff\x00\x00\x00\x00\x84\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xff\xff\xff\x8d\xff\xff\xff\x00\x00\x00\x00\x94\xff\xff\xff\x8f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xff\xff\xff\x96\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa5\xff\xff\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\xa8\xff\xff\xff\xab\xff\xff\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\xb2\xff\xff\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\x00\x00\xb3\xff\xff\xff\x00\x00\x00\x00\xb3\xff\xff\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\xcb\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\xd1\xff\xff\xff\xcd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\xff\xff\x00\x00\x00\x00\xbf\xff\xff\xff\xb4\xff\xff\xff\xbe\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xb4\xff\xff\xff\xc6\xff\xff\xff\xc5\xff\xff\xff\xc7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xff\xff\xff\x00\x00\x00\x00\xb1\xff\xff\xff\xa5\xff\xff\xff\x00\x00\x00\x00\xac\xff\xff\xff\xa8\xff\xff\xff\xa9\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\xff\xff\x00\x00\x00\x00\x99\xff\xff\xff\x00\x00\x00\x00\x8e\xff\xff\xff\x00\x00\x00\x00\x2f\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\xff\xff\xff\x2d\xff\xff\xff\x00\x00\x00\x00\x36\xff\xff\xff\x35\xff\xff\xff\x32\xff\xff\xff\x31\xff\xff\xff\x00\x00\x00\x00\x27\xff\xff\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\x38\xff\xff\xff\x37\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x34\xff\xff\xff\x33\xff\xff\xff\x28\xff\xff\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\x00\x00\x00\x00\x00\x00\x5b\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x26\xff\xff\xff\x17\xff\xff\xff\x42\xff\xff\xff\x43\xff\xff\xff\x40\xff\xff\xff\x3f\xff\xff\xff\x3e\xff\xff\xff\x3c\xff\xff\xff\x3b\xff\xff\xff\x39\xff\xff\xff\x10\xff\xff\xff\x0d\xff\xff\xff\x2e\xff\xff\xff\x00\x00\x00\x00\x51\xff\xff\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\x29\xff\xff\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\x5c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\xff\xff\x2a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\xff\xff\xff\x47\xff\xff\xff\x46\xff\xff\xff\x48\xff\xff\xff\x44\xff\xff\xff\x76\xff\xff\xff\x7f\xff\xff\xff\x82\xff\xff\xff\x81\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x83\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x95\xff\xff\xff\xa2\xff\xff\xff\xa0\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xad\xff\xff\xff\xaa\xff\xff\xff\xaf\xff\xff\xff\x00\x00\x00\x00\xb6\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\xff\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\xcc\xff\xff\xff\xc0\xff\xff\xff\xc1\xff\xff\xff\xca\xff\xff\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\xae\xff\xff\xff\xb0\xff\xff\xff\xc8\xff\xff\xff\xc2\xff\xff\xff\xb5\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa3\xff\xff\xff\xa1\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x30\xff\xff\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\x60\xff\xff\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\x1f\xff\xff\xff\x13\xff\xff\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\x88\xff\xff\xff\x00\x00\x00\x00\x5e\xff\xff\xff\x00\x00\x00\x00\x8a\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x85\xff\xff\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\x55\xff\xff\xff\x00\x00\x00\x00\x57\xff\xff\xff\x86\xff\xff\xff\x85\xff\xff\xff\x00\x00\x00\x00\x86\xff\xff\xff\x00\x00\x00\x00\x22\xff\xff\xff\x9b\xff\xff\xff\x00\x00\x00\x00\x91\xff\xff\xff\x00\x00\x00\x00\x93\xff\xff\xff\x00\x00\x00\x00\xa6\xff\xff\xff\xa7\xff\xff\xff\xae\xff\xff\xff\xb8\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\xff\xff\x00\x00\x00\x00\xc4\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\xff\xff\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\x20\xff\xff\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\x87\xff\xff\xff\x5d\xff\xff\xff\x89\xff\xff\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\x1e\xff\xff\xff\x00\x00\x00\x00\x54\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xff\xff\xff\x90\xff\xff\xff\x92\xff\xff\xff\xba\xff\xff\xff\x00\x00\x00\x00\xbc\xff\xff\xff\x00\x00\x00\x00\xbd\xff\xff\xff\xbb\xff\xff\xff\x11\xff\xff\xff\x12\xff\xff\xff\x23\xff\xff\xff\x24\xff\xff\xff\x25\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\xff\xff\xff\x00\x00\x00\x00\x14\xff\xff\xff\x15\xff\xff\xff\x16\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1b\xff\xff\xff\x00\x00\x00\x00\x1c\xff\xff\xff\x00\x00\x00\x00\x1a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x19\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x56\xff\xff\xff"#  happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\xff\xff\x12\x00\x00\x00\x13\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x1b\x00\x00\x00\x19\x00\x00\x00\x0b\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x63\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x7b\x00\x00\x00\x33\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x6b\x00\x00\x00\x18\x00\x00\x00\x26\x00\x00\x00\x19\x00\x00\x00\x13\x00\x00\x00\x15\x00\x00\x00\x7a\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x16\x00\x00\x00\x3e\x00\x00\x00\x18\x00\x00\x00\x26\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x26\x00\x00\x00\x0b\x00\x00\x00\x14\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x58\x00\x00\x00\x4d\x00\x00\x00\x14\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x53\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x14\x00\x00\x00\x4e\x00\x00\x00\x6c\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x18\x00\x00\x00\x6a\x00\x00\x00\x6e\x00\x00\x00\x6d\x00\x00\x00\x64\x00\x00\x00\x14\x00\x00\x00\x4c\x00\x00\x00\x26\x00\x00\x00\x4e\x00\x00\x00\x18\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x6a\x00\x00\x00\x65\x00\x00\x00\x13\x00\x00\x00\x60\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x3f\x00\x00\x00\x31\x00\x00\x00\x7a\x00\x00\x00\x62\x00\x00\x00\x34\x00\x00\x00\x26\x00\x00\x00\x14\x00\x00\x00\x7a\x00\x00\x00\x7c\x00\x00\x00\x27\x00\x00\x00\x62\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x07\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x45\x00\x00\x00\x02\x00\x00\x00\x13\x00\x00\x00\x04\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x62\x00\x00\x00\x26\x00\x00\x00\x5f\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x4d\x00\x00\x00\x31\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x34\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x6f\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x5f\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x62\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x79\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x26\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x4d\x00\x00\x00\x18\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7a\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x05\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x5f\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x13\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x1e\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x15\x00\x00\x00\x7a\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x1a\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x18\x00\x00\x00\x1e\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x19\x00\x00\x00\x7c\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x33\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x7c\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x65\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x1e\x00\x00\x00\x15\x00\x00\x00\x5f\x00\x00\x00\x0d\x00\x00\x00\x62\x00\x00\x00\x14\x00\x00\x00\x7c\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x61\x00\x00\x00\x16\x00\x00\x00\x61\x00\x00\x00\x05\x00\x00\x00\x6c\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x30\x00\x00\x00\x7a\x00\x00\x00\x32\x00\x00\x00\x16\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x7c\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x62\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x05\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x65\x00\x00\x00\x22\x00\x00\x00\x69\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7c\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x2f\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x7c\x00\x00\x00\x7a\x00\x00\x00\x79\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x1e\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x58\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x5f\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x2f\x00\x00\x00\x0f\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x69\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x26\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x31\x00\x00\x00\x60\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x7a\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x26\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x0c\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x18\x00\x00\x00\x1d\x00\x00\x00\x1c\x00\x00\x00\x27\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x64\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x40\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x20\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x79\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x22\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x13\x00\x00\x00\x64\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x4c\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x7a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x27\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x4c\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0b\x00\x00\x00\x11\x00\x00\x00\x24\x00\x00\x00\x0d\x00\x00\x00\x12\x00\x00\x00\x0e\x00\x00\x00\x22\x00\x00\x00\x1d\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x08\x00\x00\x00\x0b\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x0b\x00\x00\x00\x11\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x0d\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\x0e\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x14\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x25\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x1a\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x01\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\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\x16\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\xff\xff\xff\xff\x0c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#+happyCheck = HappyA# "\xff\xff\xff\xff\x12\x00\x00\x00\x13\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x1b\x00\x00\x00\x19\x00\x00\x00\x0b\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x13\x00\x00\x00\x33\x00\x00\x00\x3f\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x14\x00\x00\x00\x19\x00\x00\x00\x18\x00\x00\x00\x15\x00\x00\x00\x58\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x0b\x00\x00\x00\x3e\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x14\x00\x00\x00\x60\x00\x00\x00\x14\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x4d\x00\x00\x00\x14\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x6f\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x6c\x00\x00\x00\x4e\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x64\x00\x00\x00\x6a\x00\x00\x00\x6e\x00\x00\x00\x6d\x00\x00\x00\x01\x00\x00\x00\x4c\x00\x00\x00\x26\x00\x00\x00\x4e\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x5f\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x62\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x6a\x00\x00\x00\x65\x00\x00\x00\x13\x00\x00\x00\x27\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x01\x00\x00\x00\x62\x00\x00\x00\x7a\x00\x00\x00\x62\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x31\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x34\x00\x00\x00\x62\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x63\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x6b\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x5f\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x02\x00\x00\x00\x4d\x00\x00\x00\x04\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x26\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7a\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x79\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x5f\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x53\x00\x00\x00\x18\x00\x00\x00\x7a\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x18\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x15\x00\x00\x00\x4d\x00\x00\x00\x7c\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x13\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x7a\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x13\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x07\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x5f\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x13\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x13\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x13\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x13\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x7c\x00\x00\x00\x4b\x00\x00\x00\x31\x00\x00\x00\x7a\x00\x00\x00\x65\x00\x00\x00\x34\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x4c\x00\x00\x00\x7a\x00\x00\x00\x4e\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x1a\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x45\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x13\x00\x00\x00\x19\x00\x00\x00\x7c\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x5f\x00\x00\x00\x14\x00\x00\x00\x5f\x00\x00\x00\x5f\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x33\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x5f\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x4b\x00\x00\x00\x7a\x00\x00\x00\x7a\x00\x00\x00\x4c\x00\x00\x00\x18\x00\x00\x00\x4e\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x16\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x14\x00\x00\x00\x5f\x00\x00\x00\x1c\x00\x00\x00\x7a\x00\x00\x00\x18\x00\x00\x00\x15\x00\x00\x00\x5f\x00\x00\x00\x7c\x00\x00\x00\x22\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x6c\x00\x00\x00\x05\x00\x00\x00\x1c\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x13\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x30\x00\x00\x00\x7a\x00\x00\x00\x32\x00\x00\x00\x16\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x18\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x01\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x05\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x62\x00\x00\x00\x7c\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x05\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x65\x00\x00\x00\x22\x00\x00\x00\x69\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x70\x00\x00\x00\x71\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x61\x00\x00\x00\x13\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x62\x00\x00\x00\x69\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\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x61\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x05\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x7a\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x7c\x00\x00\x00\x13\x00\x00\x00\x2f\x00\x00\x00\x16\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x16\x00\x00\x00\x1c\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x4b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x7a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x01\x00\x00\x00\x53\x00\x00\x00\x79\x00\x00\x00\x7c\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x5f\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x5f\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x69\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x69\x00\x00\x00\x25\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x7a\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x7b\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x22\x00\x00\x00\x16\x00\x00\x00\x7a\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x58\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x7c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2f\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x26\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x1d\x00\x00\x00\x26\x00\x00\x00\x31\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x60\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x0c\x00\x00\x00\x05\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x0c\x00\x00\x00\x0f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x1e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x27\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x16\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x16\x00\x00\x00\x27\x00\x00\x00\x1d\x00\x00\x00\x1c\x00\x00\x00\x14\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x7a\x00\x00\x00\x01\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x64\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x1e\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x40\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x79\x00\x00\x00\x27\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\x00\x16\x00\x00\x00\x16\x00\x00\x00\x1d\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\x20\x00\x00\x00\x26\x00\x00\x00\x22\x00\x00\x00\x1e\x00\x00\x00\x1e\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x64\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x13\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x4c\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x7a\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x05\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x14\x00\x00\x00\x27\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x27\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x27\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x4c\x00\x00\x00\x1d\x00\x00\x00\x18\x00\x00\x00\x05\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x22\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x22\x00\x00\x00\x14\x00\x00\x00\x4c\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x4c\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x0b\x00\x00\x00\x0d\x00\x00\x00\x22\x00\x00\x00\x24\x00\x00\x00\x11\x00\x00\x00\x22\x00\x00\x00\x24\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x22\x00\x00\x00\x0b\x00\x00\x00\x11\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\x0b\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x0b\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x24\x00\x00\x00\x24\x00\x00\x00\x22\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x24\x00\x00\x00\x1d\x00\x00\x00\x0d\x00\x00\x00\xff\xff\xff\xff\x0e\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\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\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\xff\xff\xff\xff\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x28\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x22\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x2a\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x2a\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x2a\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x22\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\x04\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x16\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x14\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x25\x00\x00\x00\xff\xff\xff\xff\x22\x00\x00\x00\x05\x00\x00\x00\x26\x00\x00\x00\x25\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x11\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x0d\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\xff\xff\xff\xff\x05\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x05\x00\x00\x00\x1a\x00\x00\x00\x1b\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\x1a\x00\x00\x00\x1b\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\x16\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\xff\xff\xff\xff\x0c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\xff\xff\xff\xff\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\xb0\x00\x00\x00\xb1\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x34\x01\x00\x00\x3b\x01\x00\x00\xd6\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x0a\x01\x00\x00\x56\x01\x00\x00\x2d\x00\x00\x00\x78\x00\x00\x00\x76\x01\x00\x00\x4b\x01\x00\x00\x92\x00\x00\x00\xa1\x00\x00\x00\x0b\x01\x00\x00\x4c\x01\x00\x00\x5a\x01\x00\x00\x50\x01\x00\x00\xa1\x00\x00\x00\x0e\x01\x00\x00\x77\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xa2\x00\x00\x00\x53\x00\x00\x00\xa5\x00\x00\x00\xb4\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xbc\x00\x00\x00\xd6\x00\x00\x00\xce\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\xd4\x00\x00\x00\x5c\x00\x00\x00\xcc\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x24\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x77\x00\x00\x00\xb9\x01\x00\x00\x57\x01\x00\x00\x77\x01\x00\x00\x98\x00\x00\x00\x97\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x6e\x01\x00\x00\x3c\x01\x00\x00\x35\x01\x00\x00\x71\x00\x00\x00\x5b\x01\x00\x00\xca\x01\x00\x00\xf9\x01\x00\x00\xbc\x00\x00\x00\xfa\x01\x00\x00\xcb\x01\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x51\x01\x00\x00\x0f\x01\x00\x00\xa1\x00\x00\x00\xc0\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x32\x01\x00\x00\x13\x01\x00\x00\x77\x00\x00\x00\xcf\x01\x00\x00\x14\x01\x00\x00\x92\x01\x00\x00\xb5\x01\x00\x00\x77\x00\x00\x00\xff\xff\xff\xff\xba\x00\x00\x00\xcd\x01\x00\x00\xa1\x00\x00\x00\xda\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xdb\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x31\x01\x00\x00\x2e\x00\x00\x00\x97\x00\x00\x00\xd9\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xba\x01\x00\x00\x90\x01\x00\x00\x98\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x5c\x00\x00\x00\x13\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x14\x01\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x33\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x3d\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\xb4\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x98\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\xb6\x01\x00\x00\xa9\x00\x00\x00\xa1\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\xa1\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x2d\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x98\x00\x00\x00\xaa\x00\x00\x00\xab\x00\x00\x00\x97\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xc0\x00\x00\x00\xc1\x00\x00\x00\x8e\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x5c\x00\x00\x00\x30\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x77\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\xa1\x00\x00\x00\x7d\x00\x00\x00\x2d\x00\x00\x00\x2d\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xd8\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x98\x00\x00\x00\x92\x00\x00\x00\x28\x01\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\xa1\x00\x00\x00\x97\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x20\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x98\x00\x00\x00\x18\x01\x00\x00\x93\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x15\x01\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\x77\x00\x00\x00\x92\x00\x00\x00\x5b\x00\x00\x00\x0e\x01\x00\x00\x77\x00\x00\x00\xad\x00\x00\x00\xae\x00\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x0d\x01\x00\x00\x5e\x01\x00\x00\xd6\x00\x00\x00\xd7\x00\x00\x00\x98\x00\x00\x00\x6c\x00\x00\x00\xff\xff\xff\xff\x7d\x00\x00\x00\x0c\x01\x00\x00\x5f\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x8b\xff\xff\xff\xff\xff\xff\xff\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\x2d\x00\x00\x00\x98\x00\x00\x00\x98\x00\x00\x00\x07\x01\x00\x00\xb4\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xfc\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\xb5\x00\x00\x00\xb6\x00\x00\x00\xff\xff\xff\xff\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\x8b\x00\x00\x00\x2e\x01\x00\x00\x03\x01\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x0f\x01\x00\x00\xad\x00\x00\x00\xf8\x00\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\xff\x00\x00\x00\x2d\x00\x00\x00\x5c\x01\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x92\x00\x00\x00\xff\xff\xff\xff\x6c\x00\x00\x00\xc0\x00\x00\x00\xdc\x00\x00\x00\x5d\x01\x00\x00\x0e\x01\x00\x00\x98\x00\x00\x00\x92\x01\x00\x00\xfa\x00\x00\x00\xb7\x01\x00\x00\xff\xff\xff\xff\x70\x00\x00\x00\x8b\xff\xff\xff\xb8\x01\x00\x00\x2d\x00\x00\x00\xf8\x00\x00\x00\x9d\x00\x00\x00\xf7\x00\x00\x00\x92\x00\x00\x00\xfd\x00\x00\x00\x9e\x00\x00\x00\x93\x01\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x36\x01\x00\x00\x77\x00\x00\x00\x37\x01\x00\x00\xa8\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\xff\xff\xff\xff\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\xf3\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x92\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xc0\x00\x00\x00\x7e\x01\x00\x00\x2d\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xa9\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x8b\x00\x00\x00\x53\x01\x00\x00\x93\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\xac\x00\x00\x00\x94\x00\x00\x00\x95\x00\x00\x00\xe8\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x0f\x01\x00\x00\x32\x00\x00\x00\x70\x00\x00\x00\xe7\x00\x00\x00\x82\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x38\x01\x00\x00\x39\x01\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x2d\x00\x00\x00\x6c\x00\x00\x00\xff\xff\xff\xff\x7d\x00\x00\x00\xd6\x00\x00\x00\xed\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xad\x00\x00\x00\x7c\x01\x00\x00\xff\xff\xff\xff\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\xf0\x00\x00\x00\xd6\x00\x00\x00\xdf\x00\x00\x00\x92\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xef\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xff\xff\xff\xff\x77\x00\x00\x00\x2d\x00\x00\x00\x4d\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x93\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x4e\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x94\x00\x00\x00\x6c\x01\x00\x00\x77\x00\x00\x00\xb4\x00\x00\x00\xd4\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xb5\x00\x00\x00\xf1\x00\x00\x00\xb4\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x6c\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x89\x01\x00\x00\xb7\x00\x00\x00\x32\x00\x00\x00\xe6\x00\x00\x00\x70\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x88\x01\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x47\x01\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\x87\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xa9\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x86\x01\x00\x00\xc0\x00\x00\x00\x2d\x00\x00\x00\xd6\x00\x00\x00\xdd\x00\x00\x00\x31\x00\x00\x00\x92\x00\x00\x00\x81\x01\x00\x00\x80\x01\x00\x00\x77\x00\x00\x00\x32\x00\x00\x00\xaa\x00\x00\x00\x77\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\xef\x01\x00\x00\x31\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x8f\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x9c\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\xe4\x00\x00\x00\x22\x01\x00\x00\xb4\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xb4\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x77\x00\x00\x00\xbd\x00\x00\x00\x9b\x00\x00\x00\xb5\x00\x00\x00\x7b\x01\x00\x00\x93\x00\x00\x00\x6e\x01\x00\x00\x31\x00\x00\x00\xaa\x01\x00\x00\x55\x01\x00\x00\x8e\x00\x00\x00\x6e\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xc7\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\xaf\x01\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x67\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xac\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xf3\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x77\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\xf4\x00\x00\x00\xa7\x01\x00\x00\xa3\x01\x00\x00\xa1\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xa0\x01\x00\x00\xd6\x00\x00\x00\x7d\x01\x00\x00\x9e\x01\x00\x00\x2d\x00\x00\x00\x93\x00\x00\x00\x05\x01\x00\x00\x31\x00\x00\x00\x92\x00\x00\x00\x99\x01\x00\x00\x8e\x00\x00\x00\x58\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xc5\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\x98\x01\x00\x00\x9d\x00\x00\x00\x91\x00\x00\x00\x97\x01\x00\x00\x32\x00\x00\x00\x9e\x00\x00\x00\x9f\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xd9\x01\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\xa9\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xe5\x00\x00\x00\xe0\x00\x00\x00\x93\x00\x00\x00\xd7\x01\x00\x00\xd5\x01\x00\x00\xaa\x00\x00\x00\xa8\x01\x00\x00\x31\x00\x00\x00\x9e\x01\x00\x00\x9d\x00\x00\x00\x94\x00\x00\x00\xbc\x01\x00\x00\x32\x00\x00\x00\x9e\x00\x00\x00\x2b\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x78\x00\x00\x00\x31\x00\x00\x00\xc2\x01\x00\x00\xc3\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2d\x01\x00\x00\xba\x00\x00\x00\x2d\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xbc\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xc1\x01\x00\x00\xc0\x01\x00\x00\x2d\x00\x00\x00\xbf\x01\x00\x00\xe3\x00\x00\x00\x2d\x00\x00\x00\x79\x01\x00\x00\x31\x00\x00\x00\xee\x01\x00\x00\xa9\x00\x00\x00\x2d\x00\x00\x00\xed\x01\x00\x00\x32\x00\x00\x00\xec\x01\x00\x00\x78\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1e\x01\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xe7\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x11\x01\x00\x00\xeb\x01\x00\x00\xe7\x01\x00\x00\xe6\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x77\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x31\x00\x00\x00\xe5\x01\x00\x00\xe4\x01\x00\x00\xe3\x01\x00\x00\xba\x00\x00\x00\x32\x00\x00\x00\x03\x02\x00\x00\xde\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf5\x00\x00\x00\x31\x00\x00\x00\xdc\x01\x00\x00\x07\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf0\x00\x00\x00\x05\x02\x00\x00\x02\x02\x00\x00\x01\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xd2\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x02\x00\x00\xff\x01\x00\x00\xfb\x01\x00\x00\xfe\x01\x00\x00\xfd\x01\x00\x00\xfc\x01\x00\x00\x16\x02\x00\x00\x31\x00\x00\x00\xf7\x01\x00\x00\xf6\x01\x00\x00\xf5\x01\x00\x00\xf4\x01\x00\x00\x32\x00\x00\x00\xf3\x01\x00\x00\x11\x02\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xec\x00\x00\x00\x31\x00\x00\x00\xf2\x01\x00\x00\x18\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xeb\x00\x00\x00\x1a\x02\x00\x00\x1c\x02\x00\x00\xd4\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xd1\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xbe\x00\x00\x00\xb2\x00\x00\x00\x83\x00\x00\x00\xba\x00\x00\x00\xb1\x00\x00\x00\xb8\x00\x00\x00\x8d\x00\x00\x00\x31\x00\x00\x00\x20\x01\x00\x00\xe2\x00\x00\x00\xe1\x00\x00\x00\x07\x01\x00\x00\x32\x00\x00\x00\xde\x00\x00\x00\x84\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xea\x00\x00\x00\x31\x00\x00\x00\x83\x01\x00\x00\x82\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe9\x00\x00\x00\x81\x01\x00\x00\x7a\x01\x00\x00\x66\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x70\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x49\x01\x00\x00\xaf\x01\x00\x00\x8b\x01\x00\x00\xd2\x01\x00\x00\xa3\x01\x00\x00\x07\x01\x00\x00\xd1\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\xde\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x74\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x73\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6f\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6a\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x69\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x68\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x60\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x51\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb2\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa9\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9a\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x99\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x95\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x94\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x8a\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd7\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd5\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd3\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc4\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbd\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xba\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xee\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xdf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xdc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xda\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x05\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x03\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf7\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x0f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x0e\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x08\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x07\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x14\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x16\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x18\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1a\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x7a\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x46\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3d\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3c\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xad\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xac\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x13\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x12\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x11\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0d\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0c\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0b\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x0a\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x09\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x61\x01\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x45\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x44\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\xc8\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x42\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x41\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3e\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x64\x01\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x62\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x39\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x03\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x29\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x28\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x24\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x21\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1d\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1b\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1a\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x16\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x15\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x03\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x01\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x52\x01\x00\x00\x4b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x48\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\xa7\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xa2\x00\x00\x00\x03\x01\x00\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\x4d\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x01\x01\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x90\x01\x00\x00\x9e\x00\x00\x00\x8e\x01\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x8c\x01\x00\x00\xa1\x00\x00\x00\xa2\x00\x00\x00\x2d\x00\x00\x00\xa3\x00\x00\x00\x72\x01\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x2d\x00\x00\x00\xa3\x00\x00\x00\xe1\x01\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\xa6\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x01\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\x00\x00\xc5\x00\x00\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\xc8\x00\x00\x00\xc9\x00\x00\x00\xca\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\xcc\x00\x00\x00\xcd\x00\x00\x00\xce\x00\x00\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\xd1\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x72\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xb1\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa2\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#+happyTable = HappyA# "\x00\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\xb0\x00\x00\x00\xb1\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xa1\x00\x00\x00\x35\x01\x00\x00\x3c\x01\x00\x00\xd6\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x59\x01\x00\x00\x79\x01\x00\x00\x33\x01\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\xb4\x00\x00\x00\x5d\x01\x00\x00\x97\x00\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\xd5\x01\x00\x00\x51\x01\x00\x00\x71\x01\x00\x00\x0e\x01\x00\x00\xd4\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xd6\x00\x00\x00\x53\x00\x00\x00\xa6\x00\x00\x00\xa7\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xd3\x01\x00\x00\xc0\x00\x00\x00\xbe\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x5c\x00\x00\x00\xba\x01\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x34\x01\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x7a\x01\x00\x00\x5a\x01\x00\x00\xc0\x00\x00\x00\xc1\x00\x00\x00\x98\x00\x00\x00\x97\x00\x00\x00\x6d\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x5e\x01\x00\x00\x3d\x01\x00\x00\x36\x01\x00\x00\x71\x00\x00\x00\x2d\x00\x00\x00\xf2\x01\x00\x00\xbc\x00\x00\x00\xf3\x01\x00\x00\xd6\x00\x00\x00\xd7\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x98\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\xd6\x01\x00\x00\x77\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x52\x01\x00\x00\x0f\x01\x00\x00\xa1\x00\x00\x00\xba\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x2d\x00\x00\x00\xd4\x01\x00\x00\x77\x00\x00\x00\xbf\x01\x00\x00\x92\x00\x00\x00\xbc\x00\x00\x00\x13\x01\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x14\x01\x00\x00\xbb\x01\x00\x00\xd6\x00\x00\x00\xed\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x0a\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x93\x00\x00\x00\x77\x00\x00\x00\x97\x00\x00\x00\x0b\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x94\x00\x00\x00\x95\x00\x00\x00\x98\x00\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x2e\x00\x00\x00\x5c\x00\x00\x00\xd9\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\xb4\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x77\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x3d\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x98\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x4c\x01\x00\x00\xa9\x00\x00\x00\xa1\x00\x00\x00\x57\x01\x00\x00\x4d\x01\x00\x00\x77\x00\x00\x00\xa1\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x31\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x98\x00\x00\x00\xaa\x00\x00\x00\xab\x00\x00\x00\x97\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xad\x00\x00\x00\xae\x00\x00\x00\x95\x01\x00\x00\x58\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x0e\x01\x00\x00\x5c\x00\x00\x00\xff\xff\xff\xff\x5d\x00\x00\x00\x5e\x00\x00\x00\x2e\x01\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x77\x00\x00\x00\x66\x00\x00\x00\x67\x00\x00\x00\x68\x00\x00\x00\x69\x00\x00\x00\x6a\x00\x00\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\xa1\x00\x00\x00\x7d\x00\x00\x00\xda\x00\x00\x00\x29\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xdb\x00\x00\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x98\x00\x00\x00\xd6\x00\x00\x00\xdf\x00\x00\x00\x97\x00\x00\x00\x98\x00\x00\x00\xa1\x00\x00\x00\xa1\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x20\x01\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x98\x00\x00\x00\x18\x01\x00\x00\xa1\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x15\x01\x00\x00\x93\x01\x00\x00\x91\x01\x00\x00\x97\x00\x00\x00\x77\x00\x00\x00\xff\xff\xff\xff\x5b\x00\x00\x00\x13\x01\x00\x00\x77\x00\x00\x00\x0f\x01\x00\x00\x14\x01\x00\x00\x8b\x00\x00\x00\x8c\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x03\x02\x00\x00\x77\x00\x00\x00\x04\x02\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x0d\x01\x00\x00\x98\x00\x00\x00\x6c\x00\x00\x00\x32\x01\x00\x00\x7d\x00\x00\x00\x8b\x00\x00\x00\x2f\x01\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x97\x00\x00\x00\x8b\xff\xff\xff\xff\xff\xff\xff\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\xff\xff\xff\xff\x98\x00\x00\x00\xd1\x01\x00\x00\x98\x00\x00\x00\x98\x00\x00\x00\x0c\x01\x00\x00\xd2\x01\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xfc\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\x98\x00\x00\x00\xad\x00\x00\x00\xf8\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\x98\x00\x00\x00\xc0\x00\x00\x00\xdc\x00\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\x5b\x00\x00\x00\x77\x00\x00\x00\x77\x00\x00\x00\x1c\x02\x00\x00\x07\x01\x00\x00\x1d\x02\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x9b\x00\x00\x00\x03\x01\x00\x00\x92\x00\x00\x00\xff\xff\xff\xff\xbc\x01\x00\x00\x6c\x00\x00\x00\x22\x01\x00\x00\x77\x00\x00\x00\xbd\x01\x00\x00\x0e\x01\x00\x00\x98\x00\x00\x00\xff\xff\xff\xff\x23\x01\x00\x00\xc0\x00\x00\x00\x81\x01\x00\x00\x70\x00\x00\x00\x8b\xff\xff\xff\x2d\x00\x00\x00\x2d\x00\x00\x00\x9b\x00\x00\x00\x2d\x00\x00\x00\xd8\x00\x00\x00\x92\x00\x00\x00\xfd\x00\x00\x00\xe8\x00\x00\x00\x9c\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x7d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\x37\x01\x00\x00\x77\x00\x00\x00\x38\x01\x00\x00\xa8\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\xff\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\x2e\x00\x00\x00\x92\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xad\x00\x00\x00\x7f\x01\x00\x00\x2d\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\xa9\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\x05\x01\x00\x00\xfa\x00\x00\x00\xff\xff\xff\xff\x93\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\xac\x00\x00\x00\x94\x00\x00\x00\x6f\x01\x00\x00\xe7\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x0f\x01\x00\x00\x32\x00\x00\x00\x70\x00\x00\x00\xe6\x00\x00\x00\x82\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x39\x01\x00\x00\x3a\x01\x00\x00\x10\x01\x00\x00\x11\x01\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x2d\x00\x00\x00\x6c\x00\x00\x00\xf8\x00\x00\x00\x7d\x00\x00\x00\xd6\x00\x00\x00\xdd\x00\x00\x00\x3f\x00\x00\x00\x40\x00\x00\x00\xff\xff\xff\xff\x97\x00\x00\x00\xf3\x00\x00\x00\x70\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\xf7\x00\x00\x00\xd6\x00\x00\x00\x80\x01\x00\x00\x92\x00\x00\x00\x4b\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x77\x00\x00\x00\x4f\x00\x00\x00\x50\x00\x00\x00\x51\x00\x00\x00\x52\x00\x00\x00\xff\xff\xff\xff\xf0\x00\x00\x00\xef\x00\x00\x00\x9b\x00\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x05\x01\x00\x00\x55\x01\x00\x00\x54\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x57\x00\x00\x00\x5b\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x77\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xff\xff\xff\xff\x60\x00\x00\x00\x61\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x64\x00\x00\x00\x65\x00\x00\x00\x2d\x00\x00\x00\x25\x01\x00\x00\x2d\x00\x00\x00\xff\xff\xff\xff\xa9\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x6c\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x98\x00\x00\x00\xe4\x00\x00\x00\xb4\x00\x00\x00\xe0\x00\x00\x00\x70\x00\x00\x00\x2d\x00\x00\x00\xaa\x00\x00\x00\x7a\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x70\x00\x00\x00\x3a\x01\x00\x00\xb5\x00\x00\x00\xb6\x00\x00\x00\x77\x00\x00\x00\x72\x00\x00\x00\x73\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x76\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x78\x00\x00\x00\x74\x00\x00\x00\x75\x00\x00\x00\x32\x00\x00\x00\xa1\x01\x00\x00\x77\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\xd4\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x77\x00\x00\x00\xb4\x00\x00\x00\xbc\x00\x00\x00\xff\xff\xff\xff\x2d\x00\x00\x00\x2e\x00\x00\x00\x8c\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xbd\x00\x00\x00\x93\x00\x00\x00\xb5\x00\x00\x00\xf1\x00\x00\x00\x93\x00\x00\x00\x8b\x01\x00\x00\x31\x00\x00\x00\xff\x00\x00\x00\x00\x01\x00\x00\x94\x00\x00\x00\xce\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xcc\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x48\x01\x00\x00\x31\x00\x00\x00\x8a\x01\x00\x00\x89\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\xf9\x01\x00\x00\xc0\x00\x00\x00\x84\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x83\x01\x00\x00\xb4\x00\x00\x00\x2d\x00\x00\x00\xbc\x00\x00\x00\x31\x00\x00\x00\xe5\x00\x00\x00\x7c\x01\x00\x00\x8e\x00\x00\x00\x8f\x00\x00\x00\x32\x00\x00\x00\xe3\x00\x00\x00\xb7\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x71\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xb4\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x7b\x01\x00\x00\x71\x01\x00\x00\xb4\x00\x00\x00\x98\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x58\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xb4\x01\x00\x00\xb1\x01\x00\x00\x9b\x00\x00\x00\xb5\x00\x00\x00\x7e\x01\x00\x00\x93\x00\x00\x00\xaf\x01\x00\x00\x31\x00\x00\x00\xaf\x01\x00\x00\xaa\x01\x00\x00\x8e\x00\x00\x00\x6a\x01\x00\x00\x32\x00\x00\x00\x94\x00\x00\x00\xc1\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\x77\x00\x00\x00\x2d\x00\x00\x00\x8e\x00\x00\x00\x5b\x01\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\xa6\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xa4\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2d\x00\x00\x00\x61\x01\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x92\x00\x00\x00\xa3\x01\x00\x00\x92\x00\x00\x00\x9c\x01\x00\x00\x9b\x01\x00\x00\x62\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xa1\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x9a\x01\x00\x00\x2d\x00\x00\x00\xba\x00\x00\x00\xe0\x01\x00\x00\xde\x01\x00\x00\x5f\x01\x00\x00\x4e\x01\x00\x00\x31\x00\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\x91\x00\x00\x00\xdc\x01\x00\x00\x32\x00\x00\x00\x60\x01\x00\x00\x4f\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x90\x00\x00\x00\x31\x00\x00\x00\xca\x01\x00\x00\xbc\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x78\x00\x00\x00\xc9\x01\x00\x00\xc4\x01\x00\x00\xc8\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xc7\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xf8\x01\x00\x00\xf7\x01\x00\x00\xf6\x01\x00\x00\xf5\x01\x00\x00\xf1\x01\x00\x00\x2d\x00\x00\x00\x77\x00\x00\x00\x31\x00\x00\x00\xee\x01\x00\x00\xa9\x00\x00\x00\xed\x01\x00\x00\xec\x01\x00\x00\x32\x00\x00\x00\xeb\x01\x00\x00\xba\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2e\x01\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xab\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1e\x01\x00\x00\xea\x01\x00\x00\xe5\x01\x00\x00\xe3\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x14\x02\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x12\x02\x00\x00\x10\x02\x00\x00\x0f\x02\x00\x00\x0e\x02\x00\x00\x0d\x02\x00\x00\x2d\x00\x00\x00\x1e\x02\x00\x00\x31\x00\x00\x00\x0c\x02\x00\x00\xa9\x00\x00\x00\x0b\x02\x00\x00\x0a\x02\x00\x00\x32\x00\x00\x00\x09\x02\x00\x00\x01\x02\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x11\x01\x00\x00\x31\x00\x00\x00\xaa\x00\x00\x00\xee\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf5\x00\x00\x00\x08\x02\x00\x00\x00\x02\x00\x00\xff\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xfe\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x31\x00\x00\x00\xfd\x01\x00\x00\xfc\x01\x00\x00\x21\x02\x00\x00\x2c\x02\x00\x00\x32\x00\x00\x00\x31\x02\x00\x00\x26\x02\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf0\x00\x00\x00\x31\x00\x00\x00\x2a\x02\x00\x00\x2f\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xec\x00\x00\x00\xd4\x00\x00\x00\xd1\x00\x00\x00\xd2\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xb8\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xbe\x00\x00\x00\xba\x00\x00\x00\x8d\x00\x00\x00\x83\x00\x00\x00\xb2\x00\x00\x00\x20\x01\x00\x00\x07\x01\x00\x00\x31\x00\x00\x00\xb1\x00\x00\x00\xe2\x00\x00\x00\xe1\x00\x00\x00\xde\x00\x00\x00\x32\x00\x00\x00\x87\x01\x00\x00\x7d\x01\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xeb\x00\x00\x00\x31\x00\x00\x00\x86\x01\x00\x00\x85\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xea\x00\x00\x00\x84\x01\x00\x00\x73\x01\x00\x00\x69\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x4a\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xb4\x01\x00\x00\xa6\x01\x00\x00\x54\x01\x00\x00\xad\x01\x00\x00\x8e\x01\x00\x00\xd9\x01\x00\x00\x07\x01\x00\x00\x31\x00\x00\x00\xd8\x01\x00\x00\x00\x00\x00\x00\xe5\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe9\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x77\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x76\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x72\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6e\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x6b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x63\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x52\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xb6\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xac\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xa8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9e\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x9c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x98\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x97\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x8d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x8c\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xde\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xdc\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd7\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xd6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcd\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xcb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xca\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc2\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xbf\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xfa\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf8\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xf3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xef\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe6\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe1\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x12\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x10\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x06\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x05\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x04\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1f\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x1e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x15\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x14\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x28\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x27\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x26\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2a\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2c\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x39\x00\x00\x00\x2f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x7d\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x7a\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x47\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3e\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x3d\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xb2\x01\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\xb1\x01\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x23\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x22\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x21\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x1a\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x19\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x18\x02\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x17\x02\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x79\x00\x00\x00\x38\x00\x00\x00\x16\x02\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x64\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x46\x01\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\x45\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x36\x00\x00\x00\xcf\x01\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x44\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x35\x00\x00\x00\x43\x01\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x80\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\xc5\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x42\x01\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x41\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\xa2\x00\x00\x00\x32\x00\x00\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\x33\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x3f\x01\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x7e\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x7b\x00\x00\x00\xa5\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x68\x01\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x92\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x67\x01\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfa\x00\x00\x00\x66\x01\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x33\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x65\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2b\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x29\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x21\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x1d\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1c\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x1a\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x32\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x19\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x15\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x5e\x01\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x9d\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x01\x00\x00\x00\x00\x00\x00\x4c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\xaa\x01\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x92\x00\x00\x00\x4e\x01\x00\x00\x03\x01\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\xf3\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\xf4\x00\x00\x00\x95\x01\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x9e\x00\x00\x00\x96\x01\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\x9f\x00\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\x2c\x01\x00\x00\x9d\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x9e\x00\x00\x00\x01\x01\x00\x00\x2d\x00\x00\x00\x9e\x00\x00\x00\x93\x01\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x2d\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x9e\x00\x00\x00\x91\x01\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x8f\x01\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x75\x01\x00\x00\x00\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\xe8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\xfd\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\x00\x00\xc5\x00\x00\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\xc8\x00\x00\x00\xc9\x00\x00\x00\xca\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\xcc\x00\x00\x00\xcd\x00\x00\x00\xce\x00\x00\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\xd1\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x75\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xb6\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa8\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\xa5\x01\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x86\x00\x00\x00\x87\x00\x00\x00\x88\x00\x00\x00\x89\x00\x00\x00\x8a\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (43, 238) [+happyReduceArr = Happy_Data_Array.array (43, 242) [         (43 , happyReduce_43),         (44 , happyReduce_44),         (45 , happyReduce_45),@@ -633,11 +633,15 @@         (235 , happyReduce_235),         (236 , happyReduce_236),         (237 , happyReduce_237),-        (238 , happyReduce_238)+        (238 , happyReduce_238),+        (239 , happyReduce_239),+        (240 , happyReduce_240),+        (241 , happyReduce_241),+        (242 , happyReduce_242)         ]  happyRuleArr :: HappyAddr-happyRuleArr = HappyA# "\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x03\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x03\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1d\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1f\x00\x00\x00\x01\x00\x00\x00\x1f\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x21\x00\x00\x00\x01\x00\x00\x00\x21\x00\x00\x00\x03\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x03\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x0e\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x01\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x05\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x06\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x0a\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2c\x00\x00\x00\x03\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00"#+happyRuleArr = HappyA# "\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x04\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x06\x00\x00\x00\x09\x00\x00\x00\x05\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x03\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x03\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x12\x00\x00\x00\x05\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x15\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x01\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x17\x00\x00\x00\x01\x00\x00\x00\x17\x00\x00\x00\x02\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x01\x00\x00\x00\x19\x00\x00\x00\x03\x00\x00\x00\x1a\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1a\x00\x00\x00\x05\x00\x00\x00\x1a\x00\x00\x00\x07\x00\x00\x00\x1b\x00\x00\x00\x01\x00\x00\x00\x1b\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\x01\x00\x00\x00\x1c\x00\x00\x00\x03\x00\x00\x00\x1d\x00\x00\x00\x01\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1d\x00\x00\x00\x05\x00\x00\x00\x1d\x00\x00\x00\x07\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x1f\x00\x00\x00\x01\x00\x00\x00\x1f\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x20\x00\x00\x00\x03\x00\x00\x00\x21\x00\x00\x00\x01\x00\x00\x00\x21\x00\x00\x00\x03\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x01\x00\x00\x00\x23\x00\x00\x00\x03\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x24\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x04\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x02\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x0e\x00\x00\x00\x25\x00\x00\x00\x05\x00\x00\x00\x25\x00\x00\x00\x07\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x03\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x26\x00\x00\x00\x01\x00\x00\x00\x26\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x27\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x28\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x29\x00\x00\x00\x01\x00\x00\x00\x29\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x04\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x03\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x02\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x05\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x06\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x07\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x09\x00\x00\x00\x2b\x00\x00\x00\x09\x00\x00\x00\x2b\x00\x00\x00\x0a\x00\x00\x00\x2b\x00\x00\x00\x0b\x00\x00\x00\x2b\x00\x00\x00\x01\x00\x00\x00\x2b\x00\x00\x00\x03\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x04\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2b\x00\x00\x00\x08\x00\x00\x00\x2c\x00\x00\x00\x03\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x01\x00\x00\x00\x2d\x00\x00\x00\x03\x00\x00\x00"#  happyCatchStates :: [Happy_Prelude.Int] happyCatchStates = []@@ -2444,8 +2448,26 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))         ) `HappyStk` happyRest}}} -happyReduce_225 = happyReduce 8# 43# happyReduction_225-happyReduction_225 (happy_x_8 `HappyStk`+happyReduce_225 = happyReduce 7# 43# happyReduction_225+happyReduction_225 (happy_x_7 `HappyStk`+        happy_x_6 `HappyStk`+        happy_x_5 `HappyStk`+        happy_x_4 `HappyStk`+        happy_x_3 `HappyStk`+        happy_x_2 `HappyStk`+        happy_x_1 `HappyStk`+        happyRest)+         = case happyOutTok happy_x_1 of { happy_var_1 -> +        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> +        case happyOut75 happy_x_3 of { (HappyWrap75 happy_var_3) -> +        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> +        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> +        happyIn90+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModBind (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7))+        ) `HappyStk` happyRest}}}}}++happyReduce_226 = happyReduce 8# 43# happyReduction_226+happyReduction_226 (happy_x_8 `HappyStk`         happy_x_7 `HappyStk`         happy_x_6 `HappyStk`         happy_x_5 `HappyStk`@@ -2455,7 +2477,7 @@         happy_x_1 `HappyStk`         happyRest)          = case happyOutTok happy_x_1 of { happy_var_1 -> -        case happyOut82 happy_x_3 of { (HappyWrap82 happy_var_3) -> +        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) ->          case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) ->          case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) ->          case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> @@ -2463,8 +2485,50 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetMod (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8))         ) `HappyStk` happyRest}}}}} -happyReduce_226 = happyReduce 10# 43# happyReduction_226-happyReduction_226 (happy_x_10 `HappyStk`+happyReduce_227 = happyReduce 9# 43# happyReduction_227+happyReduction_227 (happy_x_9 `HappyStk`+        happy_x_8 `HappyStk`+        happy_x_7 `HappyStk`+        happy_x_6 `HappyStk`+        happy_x_5 `HappyStk`+        happy_x_4 `HappyStk`+        happy_x_3 `HappyStk`+        happy_x_2 `HappyStk`+        happy_x_1 `HappyStk`+        happyRest)+         = case happyOutTok happy_x_1 of { happy_var_1 -> +        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> +        case happyOut81 happy_x_4 of { (HappyWrap81 happy_var_4) -> +        case happyOut75 happy_x_5 of { (HappyWrap75 happy_var_5) -> +        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> +        case happyOut91 happy_x_9 of { (HappyWrap91 happy_var_9) -> +        happyIn90+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModFramed (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))+        ) `HappyStk` happyRest}}}}}}++happyReduce_228 = happyReduce 9# 43# happyReduction_228+happyReduction_228 (happy_x_9 `HappyStk`+        happy_x_8 `HappyStk`+        happy_x_7 `HappyStk`+        happy_x_6 `HappyStk`+        happy_x_5 `HappyStk`+        happy_x_4 `HappyStk`+        happy_x_3 `HappyStk`+        happy_x_2 `HappyStk`+        happy_x_1 `HappyStk`+        happyRest)+         = case happyOutTok happy_x_1 of { happy_var_1 -> +        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> +        case happyOut75 happy_x_3 of { (HappyWrap75 happy_var_3) -> +        case happyOut91 happy_x_5 of { (HappyWrap91 happy_var_5) -> +        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> +        case happyOut91 happy_x_9 of { (HappyWrap91 happy_var_9) -> +        happyIn90+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModBindInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9))+        ) `HappyStk` happyRest}}}}}}++happyReduce_229 = happyReduce 10# 43# happyReduction_229+happyReduction_229 (happy_x_10 `HappyStk`         happy_x_9 `HappyStk`         happy_x_8 `HappyStk`         happy_x_7 `HappyStk`@@ -2476,7 +2540,7 @@         happy_x_1 `HappyStk`         happyRest)          = case happyOutTok happy_x_1 of { happy_var_1 -> -        case happyOut82 happy_x_3 of { (HappyWrap82 happy_var_3) -> +        case happyOut81 happy_x_3 of { (HappyWrap81 happy_var_3) ->          case happyOut75 happy_x_4 of { (HappyWrap75 happy_var_4) ->          case happyOut91 happy_x_6 of { (HappyWrap91 happy_var_6) ->          case happyOut91 happy_x_8 of { (HappyWrap91 happy_var_8) -> @@ -2485,15 +2549,39 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8) (snd happy_var_10))         ) `HappyStk` happyRest}}}}}} -happyReduce_227 = happySpecReduce_1  43# happyReduction_227-happyReduction_227 happy_x_1+happyReduce_230 = happyReduce 11# 43# happyReduction_230+happyReduction_230 (happy_x_11 `HappyStk`+        happy_x_10 `HappyStk`+        happy_x_9 `HappyStk`+        happy_x_8 `HappyStk`+        happy_x_7 `HappyStk`+        happy_x_6 `HappyStk`+        happy_x_5 `HappyStk`+        happy_x_4 `HappyStk`+        happy_x_3 `HappyStk`+        happy_x_2 `HappyStk`+        happy_x_1 `HappyStk`+        happyRest)+         = case happyOutTok happy_x_1 of { happy_var_1 -> +        case happyOut81 happy_x_2 of { (HappyWrap81 happy_var_2) -> +        case happyOut81 happy_x_4 of { (HappyWrap81 happy_var_4) -> +        case happyOut75 happy_x_5 of { (HappyWrap75 happy_var_5) -> +        case happyOut91 happy_x_7 of { (HappyWrap91 happy_var_7) -> +        case happyOut91 happy_x_9 of { (HappyWrap91 happy_var_9) -> +        case happyOut91 happy_x_11 of { (HappyWrap91 happy_var_11) -> +        happyIn90+                 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LetModFramedInto (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11))+        ) `HappyStk` happyRest}}}}}}}++happyReduce_231 = happySpecReduce_1  43# happyReduction_231+happyReduction_231 happy_x_1          =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) ->          happyIn90                  ((fst happy_var_1, (snd happy_var_1))         )} -happyReduce_228 = happySpecReduce_3  43# happyReduction_228-happyReduction_228 happy_x_3+happyReduce_232 = happySpecReduce_3  43# happyReduction_232+happyReduction_232 happy_x_3         happy_x_2         happy_x_1          =  case happyOut76 happy_x_1 of { (HappyWrap76 happy_var_1) -> @@ -2502,8 +2590,8 @@                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.ASCII_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))         )}} -happyReduce_229 = happyReduce 8# 43# happyReduction_229-happyReduction_229 (happy_x_8 `HappyStk`+happyReduce_233 = happyReduce 8# 43# happyReduction_233+happyReduction_233 (happy_x_8 `HappyStk`         happy_x_7 `HappyStk`         happy_x_6 `HappyStk`         happy_x_5 `HappyStk`@@ -2520,8 +2608,8 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))         ) `HappyStk` happyRest}}}} -happyReduce_230 = happyReduce 8# 43# happyReduction_230-happyReduction_230 (happy_x_8 `HappyStk`+happyReduce_234 = happyReduce 8# 43# happyReduction_234+happyReduction_234 (happy_x_8 `HappyStk`         happy_x_7 `HappyStk`         happy_x_6 `HappyStk`         happy_x_5 `HappyStk`@@ -2539,8 +2627,8 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ascii_TypeSigmaModal (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_4) (snd happy_var_5) (snd happy_var_8))         ) `HappyStk` happyRest}}}}} -happyReduce_231 = happyReduce 8# 43# happyReduction_231-happyReduction_231 (happy_x_8 `HappyStk`+happyReduce_235 = happyReduce 8# 43# happyReduction_235+happyReduction_235 (happy_x_8 `HappyStk`         happy_x_7 `HappyStk`         happy_x_6 `HappyStk`         happy_x_5 `HappyStk`@@ -2557,8 +2645,8 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_TypeSigmaTuple (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))         ) `HappyStk` happyRest}}}} -happyReduce_232 = happyReduce 4# 43# happyReduction_232-happyReduction_232 (happy_x_4 `HappyStk`+happyReduce_236 = happyReduce 4# 43# happyReduction_236+happyReduction_236 (happy_x_4 `HappyStk`         happy_x_3 `HappyStk`         happy_x_2 `HappyStk`         happy_x_1 `HappyStk`@@ -2570,8 +2658,8 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ASCII_Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4))         ) `HappyStk` happyRest}}} -happyReduce_233 = happyReduce 8# 43# happyReduction_233-happyReduction_233 (happy_x_8 `HappyStk`+happyReduce_237 = happyReduce 8# 43# happyReduction_237+happyReduction_237 (happy_x_8 `HappyStk`         happy_x_7 `HappyStk`         happy_x_6 `HappyStk`         happy_x_5 `HappyStk`@@ -2588,8 +2676,8 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))         ) `HappyStk` happyRest}}}} -happyReduce_234 = happyReduce 8# 43# happyReduction_234-happyReduction_234 (happy_x_8 `HappyStk`+happyReduce_238 = happyReduce 8# 43# happyReduction_238+happyReduction_238 (happy_x_8 `HappyStk`         happy_x_7 `HappyStk`         happy_x_6 `HappyStk`         happy_x_5 `HappyStk`@@ -2606,8 +2694,8 @@                  ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaTupleAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8))         ) `HappyStk` happyRest}}}} -happyReduce_235 = happySpecReduce_3  44# happyReduction_235-happyReduction_235 happy_x_3+happyReduce_239 = happySpecReduce_3  44# happyReduction_239+happyReduction_239 happy_x_3         happy_x_2         happy_x_1          =  case happyOut88 happy_x_1 of { (HappyWrap88 happy_var_1) -> @@ -2616,22 +2704,22 @@                  ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3))         )}} -happyReduce_236 = happySpecReduce_1  44# happyReduction_236-happyReduction_236 happy_x_1+happyReduce_240 = happySpecReduce_1  44# happyReduction_240+happyReduction_240 happy_x_1          =  case happyOut90 happy_x_1 of { (HappyWrap90 happy_var_1) ->          happyIn91                  ((fst happy_var_1, (snd happy_var_1))         )} -happyReduce_237 = happySpecReduce_1  45# happyReduction_237-happyReduction_237 happy_x_1+happyReduce_241 = happySpecReduce_1  45# happyReduction_241+happyReduction_241 happy_x_1          =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) ->          happyIn92                  ((fst happy_var_1, (:[]) (snd happy_var_1))         )} -happyReduce_238 = happySpecReduce_3  45# happyReduction_238-happyReduction_238 happy_x_3+happyReduce_242 = happySpecReduce_3  45# happyReduction_242+happyReduction_242 happy_x_3         happy_x_2         happy_x_1          =  case happyOut91 happy_x_1 of { (HappyWrap91 happy_var_1) -> 
src/Language/Rzk/Syntax/Print.hs view
@@ -363,8 +363,12 @@     Language.Rzk.Syntax.Abs.ModApp _ modality term -> prPrec i 7 (concatD [doc (showString "mod"), prt 0 modality, prt 7 term])     Language.Rzk.Syntax.Abs.ModType _ modality term -> prPrec i 7 (concatD [prt 0 modality, prt 7 term])     Language.Rzk.Syntax.Abs.ModExtract _ modcomp term -> prPrec i 6 (concatD [doc (showString "$extract$"), prt 0 modcomp, prt 7 term])-    Language.Rzk.Syntax.Abs.LetMod _ modcomp bind term1 term2 -> prPrec i 1 (concatD [doc (showString "let"), doc (showString "mod"), prt 0 modcomp, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "in"), prt 0 term2])-    Language.Rzk.Syntax.Abs.LetModInto _ modcomp bind term1 term2 term3 -> prPrec i 1 (concatD [doc (showString "let"), doc (showString "mod"), prt 0 modcomp, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "into"), prt 0 term2, doc (showString "in"), prt 0 term3])+    Language.Rzk.Syntax.Abs.LetModBind _ modality bind term1 term2 -> prPrec i 1 (concatD [doc (showString "let"), prt 0 modality, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "in"), prt 0 term2])+    Language.Rzk.Syntax.Abs.LetMod _ modality bind term1 term2 -> prPrec i 1 (concatD [doc (showString "let"), doc (showString "mod"), prt 0 modality, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "in"), prt 0 term2])+    Language.Rzk.Syntax.Abs.LetModFramed _ modality1 modality2 bind term1 term2 -> prPrec i 1 (concatD [doc (showString "let"), prt 0 modality1, doc (showString "mod"), prt 0 modality2, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "in"), prt 0 term2])+    Language.Rzk.Syntax.Abs.LetModBindInto _ modality bind term1 term2 term3 -> prPrec i 1 (concatD [doc (showString "let"), prt 0 modality, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "into"), prt 0 term2, doc (showString "in"), prt 0 term3])+    Language.Rzk.Syntax.Abs.LetModInto _ modality bind term1 term2 term3 -> prPrec i 1 (concatD [doc (showString "let"), doc (showString "mod"), prt 0 modality, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "into"), prt 0 term2, doc (showString "in"), prt 0 term3])+    Language.Rzk.Syntax.Abs.LetModFramedInto _ modality1 modality2 bind term1 term2 term3 -> prPrec i 1 (concatD [doc (showString "let"), prt 0 modality1, doc (showString "mod"), prt 0 modality2, prt 0 bind, doc (showString ":="), prt 0 term1, doc (showString "into"), prt 0 term2, doc (showString "in"), prt 0 term3])     Language.Rzk.Syntax.Abs.First _ term -> prPrec i 6 (concatD [doc (showString "\960\8321"), prt 7 term])     Language.Rzk.Syntax.Abs.Second _ term -> prPrec i 6 (concatD [doc (showString "\960\8322"), prt 7 term])     Language.Rzk.Syntax.Abs.Unit _ -> prPrec i 7 (concatD [doc (showString "unit")])
src/Language/Rzk/VSCode/ReferenceIndex.hs view
@@ -404,8 +404,12 @@   Rzk.Lambda _ ps body                      -> paramScope file env ps body   Rzk.ASCII_Lambda _ ps body                -> paramScope file env ps body   Rzk.Let _ bind val body                   -> letScope file env bind val body-  Rzk.LetMod _ _ bind val body              -> letScope file env bind val body-  Rzk.LetModInto _ _ bind val motive body   -> goTerm file env motive ++ letScope file env bind val body+  Rzk.LetModBind _ _ bind val body              -> letScope file env bind val body+  Rzk.LetMod _ _ bind val body           -> letScope file env bind val body+  Rzk.LetModFramed _ _ _ bind val body        -> letScope file env bind val body+  Rzk.LetModBindInto _ _ bind val motive body   -> goTerm file env motive ++ letScope file env bind val body+  Rzk.LetModInto _ _ bind val motive body -> goTerm file env motive ++ letScope file env bind val body+  Rzk.LetModFramedInto _ _ _ bind val motive body -> goTerm file env motive ++ letScope file env bind val body   Rzk.TypeSigma _ pat ty ret                -> sigmaScope file env pat ty ret   Rzk.ASCII_TypeSigma _ pat ty ret          -> sigmaScope file env pat ty ret   Rzk.TypeSigmaModal _ pat _ ty ret         -> sigmaScope file env pat ty ret
src/Language/Rzk/VSCode/Tokenize.hs view
@@ -266,8 +266,12 @@         [ foldMap tokenizeParam params         , go body ]       Let _loc bind val expr -> concat [tokenizeBind bind, go val, go expr]-      LetMod _loc comp bind val expr -> concat [tokenizeModComp comp, tokenizeBind bind, go val, go expr]-      LetModInto _loc comp bind val motive expr -> concat [tokenizeModComp comp, tokenizeBind bind, go val, go motive, go expr]+      LetModBind _loc md bind val expr -> concat [tokenizeModality md, tokenizeBind bind, go val, go expr]+      LetMod _loc inn bind val expr -> concat [tokenizeModality inn, tokenizeBind bind, go val, go expr]+      LetModFramed _loc ext inn bind val expr -> concat [tokenizeModality ext, tokenizeModality inn, tokenizeBind bind, go val, go expr]+      LetModBindInto _loc md bind val motive expr -> concat [tokenizeModality md, tokenizeBind bind, go val, go motive, go expr]+      LetModInto _loc inn bind val motive expr -> concat [tokenizeModality inn, tokenizeBind bind, go val, go motive, go expr]+      LetModFramedInto _loc ext inn bind val motive expr -> concat [tokenizeModality ext, tokenizeModality inn, tokenizeBind bind, go val, go motive, go expr]       ASCII_Lambda loc params body -> go (Lambda loc params body)        Pair _loc l r -> foldMap go [l, r]
src/Rzk/TypeCheck/Context.hs view
@@ -419,16 +419,16 @@     tope { tTope = Foil.sinkabilityProof rename (tTope tope) }  sinkVars :: DExt n l => NameMap n (VarInfo n) -> NameMap n (VarInfo l)-sinkVars = Foil.sinkContainer+sinkVars = Foil.sink1  sinkTopes :: DExt n l => [ModalTope n] -> [ModalTope l]-sinkTopes = Foil.sinkContainer+sinkTopes = Foil.sink1  sinkNamed :: DExt n l => Map VarIdent (Foil.Name n) -> Map VarIdent (Foil.Name l)-sinkNamed = Foil.sinkContainer+sinkNamed = Foil.sink1  sinkNames :: DExt n l => [Foil.Name n] -> [Foil.Name l]-sinkNames = Foil.sinkContainer+sinkNames = Foil.sink1  -- * Lookup 
src/Rzk/TypeCheck/Decl.hs view
@@ -86,9 +86,9 @@  -- | Sinking a whole list is a coercion too, with no per-element rebuild. sinkDecls :: DExt n l => [Decl n] -> [Decl l]-sinkDecls = Foil.sinkContainer+sinkDecls = Foil.sink1 --- | The per-file groups also sink by coercion. 'Foil.sinkContainer' cannot+-- | The per-file groups also sink by coercion. 'Foil.sink1' cannot -- see through the pair (its element must be the sunk type itself), but the -- sinkability argument is the same: only the declarations mention the scope. sinkDeclGroups :: DExt n l => [(FilePath, [Decl n])] -> [(FilePath, [Decl l])]@@ -147,9 +147,9 @@           { declName = name           , declNameOf = Foil.nameOf binder           , declType = Foil.sink ty-          , declValue = Foil.sinkContainer mval+          , declValue = Foil.sink1 mval           , declIsAssumption = isAssumption-          , declUsedVars = Foil.sinkContainer usedVars+          , declUsedVars = Foil.sink1 usedVars           , declLocation = ctxLocation ctx           }     inContext ctx' (k binder decl)@@ -695,7 +695,7 @@   dDeps <- assumptionDepsOf dTy   withTopLevel (varIdentAt path name) dTy Nothing False     (nubNames (used <> dDeps)) Nothing $ \dBinder dDecl ->-      bindCons (Foil.nameOf dBinder) (Foil.sinkContainer used) 0 consData [sinkDecl dDecl] $+      bindCons (Foil.nameOf dBinder) (Foil.sink1 used) 0 consData [sinkDecl dDecl] $         \dName usedL declsAcc -> bindElims dName usedL declsAcc   where     numParams  = length paramDecls@@ -750,7 +750,7 @@               (map fst (dataConRecursive con)))       withTopLevel (varIdentAt path (dataConName con)) conTy Nothing False         (nubNames (usedHere <> conDeps)) (Just role) $ \_conBinder conDecl ->-          bindCons (Foil.sink dName) (Foil.sinkContainer usedHere) (index + 1) rest+          bindCons (Foil.sink dName) (Foil.sink1 usedHere) (index + 1) rest             (sinkDecls acc <> [conDecl]) kk      bindElims@@ -885,12 +885,12 @@           recCanonical <- memoizeWHNF =<< typecheck recTyT universeT           recTy' <- reascribe recName recCanonical mrecTy           recDeps <- assumptionDepsOf recTy'-          let usedAtInd = Foil.sinkContainer usedHere+          let usedAtInd = Foil.sink1 usedHere           withTopLevel (varIdentAt path recName) recTy' Nothing False             (nubNames (usedAtInd <> recDeps))             (Just (DataRole (Foil.sink dName) numParams (DataElimKind numMethods indexArity ElimRec))) $ \_ recDecl ->               bindComputes-                (Foil.sinkContainer usedAtInd)+                (Foil.sink1 usedAtInd)                 computeReasc                 (computeRules et)                 (sinkDecls (sinkDecls declsAcc <> [indDecl]) <> [recDecl])@@ -912,7 +912,7 @@       deps <- assumptionDepsOf ty'       withTopLevel (varIdentAt path cname) ty' Nothing False         (nubNames (usedHere <> deps)) Nothing $ \_ decl ->-          bindComputes (Foil.sinkContainer usedHere) reasc rest+          bindComputes (Foil.sink1 usedHere) reasc rest             (sinkDecls acc <> [decl])      -- | Split the re-ascription clauses among the generated entries: the
src/Rzk/TypeCheck/Eval.hs view
@@ -125,16 +125,22 @@ -- @2@ (or of @I@) is one of the endpoints. Maintained at binder entry so that -- entailment does not have to rescan the context on every query. discreteAxiomOf-  :: forall n l. Distinct n-  => TModality -> TermT n -> NameBinder n l -> TypeCheck n [ModalTope l]-discreteAxiomOf Flat ty binder = whnfT ty >>= \case-    Cube2T{} -> pure [endpoints cube2_0T cube2_1T]-    CubeIT{} -> pure [endpoints cubeI_0T cubeI_1T]+  :: forall n l. (Distinct n, DExt n l)+  => TModality -> TermT n -> Maybe (TermT n) -> NameBinder n l+  -> TypeCheck n [ModalTope l]+discreteAxiomOf Flat ty mval binder = whnfT ty >>= \case+    Cube2T{} -> endpoints cube2_0T cube2_1T+    CubeIT{} -> endpoints cubeI_0T cubeI_1T     _        -> pure []   where-    z = Var (Foil.nameOf binder) :: TermT l-    endpoints zero one = plainTope (topeOrT (topeEQT z zero) (topeEQT z one))-discreteAxiomOf _ _ _ = pure []+    point :: TypeCheck n (TermT l)+    point = case mval of+      Nothing -> pure (Var (Foil.nameOf binder))+      Just v  -> Foil.sink <$> nfTope v+    endpoints zero one = do+      z <- point+      pure [plainTope (topeOrT (topeEQT z zero) (topeEQT z one))]+discreteAxiomOf _ _ _ _ = pure []  -- | What a binder adds to the context. binderInfo@@ -161,7 +167,7 @@   -> TypeCheck l a -> TypeCheck n a underBinder binder orig md ty mval action = do   ctx <- ask-  discrete <- discreteAxiomOf md ty binder+  discrete <- discreteAxiomOf md ty mval binder   let info = binderInfo orig md ty mval (ctxLocation ctx)       ctx' = enterBinder binder info discrete ctx   -- A new discreteness axiom changes the saturation input; an ordinary binder@@ -988,6 +994,13 @@ etaMatch _mterm expected actual@PairT{} = do   expected' <- etaExpand expected   pure (expected', actual)+etaMatch _mterm expected@ModAppT{} actual@ModAppT{} = pure (expected, actual)+etaMatch _mterm expected@ModAppT{} actual = do+  actual' <- etaExpand actual+  pure (expected, actual')+etaMatch _mterm expected actual@ModAppT{} = do+  expected' <- etaExpand expected+  pure (expected', actual) etaMatch _mterm expected actual = pure (expected, actual)  etaExpand :: Distinct n => TermT n -> TypeCheck n (TermT n)@@ -1014,6 +1027,9 @@      CubeProductT _ty a b -> pure $       pairT ty (firstT a term) (secondT b term)++    TypeModalT _ty md inner | isRA md -> pure $+      modAppT ty md (modExtractT inner Id md term)      _ -> pure term 
src/Rzk/TypeCheck/Judgements.hs view
@@ -103,8 +103,17 @@  -- | A fresh hole of the given type. mkHole :: TermT n -> TermT n-mkHole t = HoleT TypeInfo{ infoType = t, infoWHNF = Nothing, infoNF = Nothing } Nothing+mkHole = mkNamedHole Nothing +-- | A hole carrying a name, so a suggested move can say what each of its holes+-- stands for: @id-hom ?A ?x@ rather than @id-hom ? ?@. The name is the Π+-- binder's, so the move reads like the lemma's own signature, and two spines of+-- the same lemma applied to different numbers of arguments are told apart by+-- what the extra holes are called.+mkNamedHole :: Maybe VarIdent -> TermT n -> TermT n+mkNamedHole mname t =+  HoleT TypeInfo{ infoType = t, infoWHNF = Nothing, infoNF = Nothing } mname+ -- | The constructors of a @#data@ type former, in declaration order; empty -- for anything else. Found by their roles: the type former itself carries -- none, so the scan is over the names in scope.@@ -316,9 +325,9 @@   => Set.Set VarIdent -> TermT n -> TypeCheck n [(ElimCost, TermT n -> TypeCheck n (TermT n))] eliminatorsOf takenNames ty =   case stripTypeRestrictions ty of-    TypeFunT _ty _orig _md param _mtope ret ->+    TypeFunT _ty orig _md param _mtope ret ->       pure [ (SpineStep, \term -> do-                let h = mkHole param+                let h = mkNamedHole (binderName orig) param                 retAt <- instantiate ret h                 pure (appT retAt term h)) ]     TypeSigmaT _ty _orig _md a b ->@@ -505,6 +514,11 @@       pure [ pairT target' h (mkHole bAt) ]     CubeProductT _ty a b ->       pure [ pairT target' (mkHole a) (mkHole b) ]+    -- the directed interval: its two endpoints are the only closed points, and+    -- they are what a hole in a cube position (@α ? ?@) almost always wants.+    -- The unit cube is offered the same way, for its single point.+    Cube2T{} -> pure [ cube2_0T, cube2_1T ]+    CubeUnitT{} -> pure [ cubeUnitStarT ]     TypeIdT _ty a _tA b -> do       agree <- endpointsAgree a b       pure [ reflT target' Nothing | agree ]
src/Rzk/TypeCheck/NbE.hs view
@@ -11,24 +11,35 @@ -- (sharing by construction: a definition's value is evaluated once per -- occurrence, not once per copy, and Haskell's laziness makes the evaluation -- call-by-need) and compares the values structurally, with one-step η for--- lambdas and pairs mirroring 'Rzk.TypeCheck.Eval.etaMatch'. It answers only--- 'True' ("definitely convertible") or 'False' ("do not know") — never a--- definite inequality — so a caller falls back to the ordinary unification on--- 'False' and the fast path cannot change what typechecks, only how fast.+-- lambdas and pairs mirroring 'Rzk.TypeCheck.Eval.etaMatch'. Evaluation is+-- \emph{glued}: a spine over a definition keeps the spine as well as its+-- unfolding, and the unfolding is lazy. Two spines over the same definition+-- are then compared argument by argument, without unfolding it. Only where+-- the spines disagree is an unfolding forced. ----- Soundness is a subset argument: 'True' is answered only for terms that are+-- It answers only 'Convertible' or 'DontKnow', never a definite inequality,+-- so a caller falls back to the ordinary unification on 'DontKnow'. The two+-- cases are not opposites, which is why the answer is not a 'Bool'. The fast+-- path can therefore accept more+-- than the unification below it, but never less. Note that it does accept+-- more. The ordinary path decomposes an application pairwise, which invents+-- subgoals that a βδ-equal but structurally different pair need not meet+-- (see 'Rzk.TypeCheck.Unify.unifyViaDecompose').+--+-- Soundness is a subset argument: 'Convertible' is answered only for terms that are -- βδ-convertible up to α and the one-step η above, with every construct whose -- /reduction/ consults the context — @recOR@ guard selection, holes, the -- modal constructs — evaluating to an opaque 'VAbort' that poisons the--- comparison into 'False'. Extension types and @recBOT@ are compared+-- comparison into 'DontKnow'. Extension types and @recBOT@ are compared -- structurally (see the note at their 'eval' case): a structurally identical -- pair of restricted types is also accepted by the ordinary unification, -- through reflexive coverage and the cross-face coherences already proved at--- formation. Every 'True' is therefore also a success of the old unification.+-- formation. Every 'Convertible' is therefore also a success of the old+-- unification. -- -- The evaluator is a pure function of the 'Context': 'valueOfVar' is a plain -- reader-only lookup, and fresh variables for comparing closures are de--- Bruijn levels ('NLevel'), so the foil scope machinery is never extended and+-- Bruijn levels ('HFresh'), so the foil scope machinery is never extended and -- no quote function is needed. -- -- == Attribution@@ -38,30 +49,45 @@ -- values, applying functions to fresh generic values — is the algorithm of -- Coquand, /An algorithm for type-checking dependent types/ (Science of -- Computer Programming 26, 1996), the implementation-level core of--- normalisation by evaluation (Berger and Schwichtenberg, LICS 1991). The--- concrete implementation shape follows the style popularised by András--- Kovács' <https://github.com/AndrasKovacs/smalltt smalltt> and--- <https://github.com/AndrasKovacs/elaboration-zoo elaboration-zoo>:--- environment machines with closures, de Bruijn levels for fresh variables,--- and demand-driven definition unfolding (our 'unfoldNeu' — unfold at an--- elimination or on a comparison mismatch, comparing neutral spines first —--- is a simplified form of smalltt's glued evaluation). For the fragment this--- module deliberately aborts on (tope-indexed reduction such as @recOR@),--- the template is cubical: Sterling and Angiuli, /Normalization for Cubical--- Type Theory/ (LICS 2021), and its implementation lineage in @cooltt@.--- What is specific to rzk is only the packaging: the all-or-nothing--- gating ('True' or do-not-know, never refute), and 'VAbort' poisoning of--- the context-sensitive fragment so that the fast path stays sound by a--- subset argument.-module Rzk.TypeCheck.NbE (nbeConvertible) where+-- normalisation by evaluation (Berger and Schwichtenberg, LICS 1991).+--+-- Comparing two stuck terms by their spines, head first and arguments+-- pairwise, rather than by normalising them, is the algorithmic equality of+-- Abel and Coquand, /Untyped Algorithmic Equality for Martin-Löf's Logical+-- Framework with Surjective Pairs/ (Fundamenta Informaticae 77(4):345–395,+-- 2007; TLCA 2005), see <https://www2.tcs.ifi.lmu.de/~abel/lfsigma.pdf>.+--+-- The representation we use for it is the \emph{glued evaluation} of András+-- Kovács' <https://github.com/AndrasKovacs/smalltt smalltt>. Its README+-- states the tension as "in basic conversion checking, we want to evaluate+-- as efficiently as possible; in quoting, we want to output terms which are+-- as small as possible". It resolves the tension by evaluating a top-level+-- variable to "values which represent lazy ('non-deterministic') choice+-- between unfolding the definition, and not unfolding it". Following+-- smalltt, 'conv' also speculates: "whenever we have the same top-level head+-- symbol on both sides, we try to unify the spines", and unfolds only when+-- that fails. smalltt separates its modes and uses gluing for quoting small+-- terms as well. This module has no quote function, so it needs neither.+-- The general implementation shape, environment machines with closures and+-- de Bruijn levels for fresh variables, follows the same author's+-- <https://github.com/AndrasKovacs/elaboration-zoo elaboration-zoo>.+--+-- For the fragment this module deliberately aborts on (tope-indexed+-- reduction such as @recOR@), the template is cubical: Sterling and Angiuli,+-- /Normalization for Cubical Type Theory/ (LICS 2021), and its+-- implementation lineage in @cooltt@.+--+-- What is specific to rzk is only the packaging: the all-or-nothing gating+-- ('Convertible' or 'DontKnow', never refute), and 'VAbort' poisoning of the+-- context-sensitive fragment so that the fast path stays sound by a subset+-- argument.+module Rzk.TypeCheck.NbE (Conversion (..), nbeConvertible) where  import           Control.Monad.Reader              (asks) import           Data.Bifoldable                   (bifoldMap) import           Data.Bifunctor                    (bimap)-import qualified Data.IntMap                       as IntMap import           Data.Monoid                       (All (..)) import           Data.ZipMatchK                    (zipMatch2)-import           Unsafe.Coerce                     (unsafeCoerce)  import           Control.Monad.Foil                (NameBinder) import qualified Control.Monad.Foil                as Foil@@ -79,85 +105,184 @@   = VLam (Closure n)     -- ^ A lambda: its body under the environment it was evaluated in.   | VNeutral (Neu n)-    -- ^ A stuck elimination spine over a variable.+    -- ^ An elimination spine, \emph{glued} to its unfolding when it has one.   | VCon (TermSig (Closure n) (Val n))     -- ^ Any other node, its term fields evaluated and its scoped fields     -- closed over the environment. Covers constructors (pairs, @refl@),     -- types (Π, Σ, identity, universes) and the cube/tope operators, which     -- are compared structurally only (reflexivity is entailment).-  | VAbort AbortReason-    -- ^ A construct outside the context-insensitive fragment. Poisons the-    -- comparison: 'conv' answers 'False' the moment it meets one. The-    -- reason records which construct, for diagnostics.---- | Why evaluation gave up: which context-sensitive construct was met.-data AbortReason-  = AbortHole-  | AbortRecOr-  | AbortModal-  | AbortStuckElim-    -- ^ An elimination of a non-canonical, non-neutral value (an abort-    -- propagating through an application, projection or @idJ@).-  deriving (Eq, Ord, Show, Enum, Bounded)+  | VAbort+    -- ^ A construct outside the context-insensitive fragment, or an+    -- elimination of a value that is neither canonical nor neutral. Poisons+    -- the comparison: 'conv' gives up the moment it meets one.+    --+    -- Carries no reason. Nothing can observe one: the module exports+    -- 'nbeConvertible' alone, whose 'DontKnow' says only that the fast path+    -- declined. The eval cases below say which construct each abort is for. +-- | An elimination spine: what it stands on, and what is eliminated off it.+--+-- The two constructors carry the gluing invariant. Only a spine on a name with+-- a definition unfolds, so only 'NGlued' has an unfolding, and a spine on a+-- comparison level cannot be given one. This was a 'Maybe' beside the spine+-- and a comment saying when it was 'Just'. data Neu n-  = NVar (Foil.Name n)-    -- ^ An ambient variable (its definition, if any, is unfolded on demand-    -- by 'unfoldNeu').-  | NLevel Int-    -- ^ A fresh variable minted while comparing closures.-  | NApp (Neu n) (Val n)-  | NFirst (Neu n)-  | NSecond (Neu n)-  | NIdJ (Val n) (Val n) (Val n) (Val n) (Val n) (Neu n)+  = NRigid (Head n) [Elim n]+    -- ^ A spine that does not unfold: on a local, an assumption, or a fresh+    -- comparison level.+  | NGlued (Foil.Name n) [Elim n] (Val n)+    -- ^ A spine on a name with a definition, beside the value the /whole+    -- spine/ unfolds to. That value is a lazy thunk maintained as the spine+    -- grows, so we compute it at most once and only on demand.+    --+    -- We keep both so that 'conv' can answer @f a =? f a@ from the two+    -- spines, without unfolding @f@. Keeping only the unfolding, as this+    -- evaluator did before, normalises a repeated lemma once per occurrence,+    -- and again per nesting level. --- | A scoped term closed over its environment. The environment maps the raw--- ids of the binders passed on the way down to values; a missing id belongs--- to the ambient scope @n@ (the same invariant 'peelLambdas' relies on for--- its substitution).+-- | What a spine stands on.+data Head n+  = HVar (Foil.Name n)+    -- ^ An ambient name with no definition.+  | HFresh DeBruijnLevel+    -- ^ A fresh variable minted while comparing two closures.++-- | One elimination off a spine. --+-- A spine holds its eliminations \emph{outermost first}, so @f a b@ is+-- @'NRigid' ('HVar' f) ['EApp' b, 'EApp' a]@. Growing a spine is then a cons+-- rather than an append, which keeps 'applyVal' constant-time in the length+-- of the spine.+data Elim n+  = EApp (Val n)+  | EFirst+  | ESecond+  | EIdJ (Val n) (Val n) (Val n) (Val n) (Val n)+    -- ^ Path induction over the spine: the type, the base point, the motive,+    -- the base case, and the endpoint. The path is the spine itself.++-- | The supply of fresh variables minted while comparing two closures: a de+-- Bruijn level, counting binders from the outside in.+--+-- Note that such a variable is not a name of the ambient scope @n@, so a+-- @'Val' n@ is really a value in @n@ extended by whichever of these are live.+-- We do not index that: extending the foil scope per comparison is the cost+-- this module exists to avoid, and it would need a quote function to get back+-- out. The newtype buys only that the supply cannot be confused with another+-- 'Int'.+--+-- The discipline it rests on is that every level reachable from a value being+-- compared at @lvl@ was minted below @lvl@. That holds because a closure+-- captures only levels minted before it, and because sibling fields of a+-- 'VCon' are compared independently, so one field's levels never reach+-- another. It is checked by reading, not by the types.+newtype DeBruijnLevel = DeBruijnLevel Int+  deriving (Eq)++-- | The next level to mint, once @lvl@ has been used.+nextLevel :: DeBruijnLevel -> DeBruijnLevel+nextLevel (DeBruijnLevel i) = DeBruijnLevel (i + 1)++-- | Grow a spine by one elimination, pushing the same elimination into the+-- unfolding when there is one.+--+-- We match on the spine rather than use 'fmap' over a 'Maybe'. A rigid spine+-- then costs one allocation, and not also the closure that would push the+-- elimination into an unfolding it does not have.+elimNeu :: Elim n -> (Val n -> Val n) -> Neu n -> Neu n+elimNeu e onUnfolding = \case+  NRigid h es   -> NRigid h (e : es)+  NGlued x es u -> NGlued x (e : es) (onUnfolding u)++-- | What a spine stands on, always.+headOf :: Neu n -> Head n+headOf (NRigid h _)   = h+headOf (NGlued x _ _) = HVar x++-- | What is eliminated off a spine, outermost first.+elimsOf :: Neu n -> [Elim n]+elimsOf (NRigid _ es)   = es+elimsOf (NGlued _ es _) = es++-- | A scoped term closed over its environment. The term lives in the scope+-- @i@ the environment is defined on, and the values it evaluates to live in+-- the ambient scope @n@.+-- -- One binder, not @NameBinders i l@: every scope field of every 'TermSig' -- constructor is a unary 'ScopedAST' (even a pair-pattern lambda binds one -- variable operationally), so a multi-binder closure would have nothing to -- be built from without peeling syntactic lambda chains in 'eval'. Peeling -- (the eval/apply arity optimisation of Marlow and Peyton Jones' fast -- curry) does not pay here the way spine-batching paid at the term level:--- an intermediate 'VLam' costs one closure and one persistent--- 'IntMap.insert', not a 'substituteT' traversal, and η-comparison and--- partial application want one-argument-at-a-time semantics anyway.+-- an intermediate 'VLam' costs one closure and one persistent environment+-- insert, not a 'substituteT' traversal, and η-comparison and partial+-- application want one-argument-at-a-time semantics anyway. data Closure n where-  Closure :: Env n -> NameBinder i l -> TermT l -> Closure n+  Closure :: Env i n -> NameBinder i l -> TermT l -> Closure n --- | Lazy on purpose: forcing an entry would evaluate it, and evaluation is--- call-by-need.-type Env n = IntMap.IntMap (Val n)+-- | An environment for evaluating a term of scope @i@ into values of the+-- ambient scope @n@. It maps the binders passed on the way down to the values+-- they were bound to; the entries are lazy on purpose, since forcing one would+-- evaluate it and evaluation is call-by-need.+--+-- This is 'Foil.Substitution', which is exactly that: a map from the names of+-- @i@ to something in @n@, storing only the names it moves. A name it does not+-- carry stands for itself, and 'Foil.lookupSubst' produces that itself through+-- 'Foil.injectName' (see 'Foil.addRename', which deletes an identity rename+-- rather than storing it). Every 'Foil.addSubst' advances @i@ by the binder it+-- inserts, so the scope index tracks which binders the environment accounts+-- for, and the identity environment for the ambient scope is the empty one.+--+-- This is the same invariant 'peelLambdas' relies on for its substitution.+type Env i n = Foil.Substitution Val i n +-- | A name stands for the empty rigid spine on itself. 'Foil.lookupSubst' uses+-- this for a name the environment does not carry, which is also how the name+-- arrives at the ambient scope @n@.+instance Foil.InjectName Val where+  injectName x = VNeutral (NRigid (HVar x) [])+ -- * Evaluation -eval :: forall i n. Context n -> Env n -> TermT i -> Val n+eval :: forall i n. Context n -> Env i n -> TermT i -> Val n eval ctx env = \case-  Var x -> case IntMap.lookup (Foil.nameId x) env of-    Just v  -> v-    -- An env miss is an ambient name; kept neutral here, unfolded on demand.-    Nothing -> VNeutral (NVar (unsafeCoerce x))+  -- An ambient name stays a spine, glued to the value of its definition when+  -- it has one. We evaluate that value only on demand, and in the ambient+  -- scope, whose identity environment is the empty one.+  --+  -- The environment carries no ambient name, so a lookup that lands here is+  -- either a miss, or a hit on a value that is itself a rigid spine on an+  -- ambient name with nothing eliminated off it. Every value the environment+  -- holds is an output of 'eval' or a fresh 'HFresh' variable, so in the+  -- second case the head was already glued and carries no definition, and+  -- gluing it again changes nothing.+  Var x -> case Foil.lookupSubst env x of+    v@(VNeutral (NRigid (HVar x') [])) ->+      case varValue (lookupVarInfo x' ctx) of+        Nothing   -> v+        Just body -> VNeutral (NGlued x' [] (eval ctx Foil.identitySubst body))+    v -> v    AppT _ty f x -> applyVal ctx (eval ctx env f) (eval ctx env x)   LambdaT _ty _orig _mparam (ScopedAST binder body) ->     VLam (Closure env binder body)   LetT _ty _orig _mparam val (ScopedAST binder body) ->-    eval ctx (IntMap.insert (Foil.nameId (Foil.nameOf binder)) (eval ctx env val) env) body-  FirstT _ty t  -> projVal ctx NFirst  fstOf (eval ctx env t)-  SecondT _ty t -> projVal ctx NSecond sndOf (eval ctx env t)+    eval ctx (Foil.addSubst env binder (eval ctx env val)) body+  FirstT _ty t  -> projVal ProjFirst  (eval ctx env t)+  SecondT _ty t -> projVal ProjSecond (eval ctx env t)   TypeAscT _ty term _ty' -> eval ctx env term   IdJT _ty tA a tC d x p ->     let vd = eval ctx env d-    in case forceVal ctx (eval ctx env p) of-         VCon ReflF{} -> vd-         VNeutral np  -> VNeutral-           (NIdJ (eval ctx env tA) (eval ctx env a) (eval ctx env tC)-                 vd (eval ctx env x) np)-         VAbort r -> VAbort r-         _ -> VAbort AbortStuckElim+        e = EIdJ (eval ctx env tA) (eval ctx env a) (eval ctx env tC)+                 vd (eval ctx env x)+        -- As in 'projVal'. The induction stays stuck on the spine, and is+        -- glued to the induction over the unfolded path.+        elim = \case+          VCon ReflF{} -> vd+          VNeutral neu -> VNeutral (elimNeu e elim neu)+          -- an abort propagating through, or a stuck induction+          _            -> VAbort+    in elim (eval ctx env p)    -- The context-sensitive fragment. A @recOR@ reduces by deciding its guards   -- against the tope context, and a hole defers by design, so both abort. The@@ -171,127 +296,199 @@   -- disjunction containing itself) and by re-checking the cross-face   -- coherences that were already proved when the type was formed (entailment   -- is monotone in the tope context). Two @recBOT@s unify unconditionally.-  HoleT{} -> VAbort AbortHole-  RecOrT{} -> VAbort AbortRecOr-  TypeModalT{} -> VAbort AbortModal-  ModAppT{} -> VAbort AbortModal-  ModExtractT{} -> VAbort AbortModal-  LetModT{} -> VAbort AbortModal+  HoleT{} -> VAbort+  RecOrT{} -> VAbort+  TypeModalT{} -> VAbort+  ModAppT{} -> VAbort+  ModExtractT{} -> VAbort+  LetModT{} -> VAbort    -- everything else is a plain constructor: evaluate the fields   Node (AnnSig _info sig) ->     VCon (bimap (\(ScopedAST binder body) -> Closure env binder body) (eval ctx env) sig)-  where-    fstOf l _r = l-    sndOf _l r = r --- | β, and δ at the head of an elimination, exactly where 'whnfT' unfolds.+-- | β, and the same application pushed into the glued unfolding. Applying a+-- spine grows the spine rather than forcing its head. We carry the unfolded+-- side along lazily, so we normalise nothing unless a comparison asks for it,+-- and the shared thunk keeps us from normalising it twice. applyVal :: Context n -> Val n -> Val n -> Val n applyVal ctx f v = case f of   VLam closure -> applyClosure ctx closure v-  VNeutral neu -> case unfoldNeu ctx neu of-    Just f' -> applyVal ctx f' v-    Nothing -> VNeutral (NApp neu v)-  VAbort r -> VAbort r-  _ -> VAbort AbortStuckElim+  VNeutral neu -> VNeutral (elimNeu (EApp v) (\u -> applyVal ctx u v) neu)+  -- an abort propagating through, or a stuck application+  _ -> VAbort  applyClosure :: Context n -> Closure n -> Val n -> Val n applyClosure ctx (Closure env binder body) v =-  eval ctx (IntMap.insert (Foil.nameId (Foil.nameOf binder)) v env) body---- | Project from a pair value, or stay neutral.-projVal-  :: Context n-  -> (Neu n -> Neu n) -> (Val n -> Val n -> Val n)-  -> Val n -> Val n-projVal ctx neu pick v = case forceVal ctx v of-  VCon (PairF l r) -> pick l r-  VNeutral n       -> VNeutral (neu n)-  VAbort r         -> VAbort r-  _                -> VAbort AbortStuckElim+  eval ctx (Foil.addSubst env binder v) body --- | Unfold a neutral's head definition once (replaying the spine), if it has one.--- A top-level definition's value is cached (see 'cachedDefVal'); a local value--- (rare at the head of a neutral) is evaluated in place.-unfoldNeu :: Context n -> Neu n -> Maybe (Val n)-unfoldNeu ctx = \case-  NVar x   -> eval ctx IntMap.empty <$> varValue (lookupVarInfo x ctx)-  NLevel _ -> Nothing-  NApp n v -> (\f -> applyVal ctx f v) <$> unfoldNeu ctx n-  NFirst n  -> projVal ctx NFirst  (\l _ -> l) <$> unfoldNeu ctx n-  NSecond n -> projVal ctx NSecond (\_ r -> r) <$> unfoldNeu ctx n-  NIdJ tA a tC d x n ->-    (\vp -> case forceVal ctx vp of-        VCon ReflF{} -> d-        VNeutral np  -> VNeutral (NIdJ tA a tC d x np)-        VAbort r     -> VAbort r-        _            -> VAbort AbortStuckElim)-    <$> unfoldNeu ctx n+-- | Which component of a pair a projection takes. One value decides both the+-- spine 'projVal' builds and the component it picks, so the two cannot+-- disagree.+data Proj = ProjFirst | ProjSecond --- | Unfold definitions at the head until the value is canonical or truly stuck.-forceVal :: Context n -> Val n -> Val n-forceVal ctx (VNeutral n) | Just v <- unfoldNeu ctx n = forceVal ctx v-forceVal _ v = v+-- | Project from a pair value, or stay neutral. For a glued spine the+-- projection stays stuck on the spine, and is glued to the projection out of+-- the unfolding. Thus 'conv' can still compare @π₁ (f a)@ rigidly.+projVal :: Proj -> Val n -> Val n+projVal proj = go+  where+    go = \case+      VCon (PairF l r) -> case proj of+        ProjFirst  -> l+        ProjSecond -> r+      VNeutral neu -> VNeutral (elimNeu e go neu)+      -- an abort propagating through, or a stuck projection+      _            -> VAbort+    e = case proj of+      ProjFirst  -> EFirst+      ProjSecond -> ESecond  -- * Conversion --- | 'False' means "do not know", never a definite inequality.-conv :: Context n -> Int -> Val n -> Val n -> Bool-conv ctx lvl l r = case (forceVal ctx l, forceVal ctx r) of-  (VAbort _, _) -> False-  (_, VAbort _) -> False+-- | 'False' means "do not know", never a definite inequality. The exported+-- 'nbeConvertible' names the two cases; inside, 'Bool' is the conjunction+-- monoid this folds with.+--+-- We compare two spines standing on the same definition argument by argument,+-- with neither side unfolded. Congruence makes that answer definite. Forcing+-- both sides to a weak head normal form first, which is what this module did+-- before, normalises a repeated lemma once per occurrence, and again per+-- nesting level.+conv :: Context n -> DeBruijnLevel -> Val n -> Val n -> Bool+conv ctx lvl l r+  -- Look for a nearby state in which the two sides stand on the same+  -- definition, and answer from their spines if there is one.+  | align l r = True+  -- Without an alignment we force both sides to a weak head normal form and+  -- compare them structurally, as before.+  | otherwise = case (forceVal l, forceVal r) of+      (VAbort, _) -> False+      (_, VAbort) -> False -  (VLam c1, VLam c2) ->-    conv ctx (lvl + 1) (applyClosure ctx c1 (freshV lvl)) (applyClosure ctx c2 (freshV lvl))-  -- one-step η for lambdas, as in 'etaMatch'-  (VLam c1, v2) ->-    conv ctx (lvl + 1) (applyClosure ctx c1 (freshV lvl)) (applyVal ctx v2 (freshV lvl))-  (v1, VLam c2) ->-    conv ctx (lvl + 1) (applyVal ctx v1 (freshV lvl)) (applyClosure ctx c2 (freshV lvl))+      (VLam c1, VLam c2) ->+        conv ctx (nextLevel lvl) (applyClosure ctx c1 (freshV lvl)) (applyClosure ctx c2 (freshV lvl))+      -- one-step η for lambdas, as in 'etaMatch'+      (VLam c1, v2) ->+        conv ctx (nextLevel lvl) (applyClosure ctx c1 (freshV lvl)) (applyVal ctx v2 (freshV lvl))+      (v1, VLam c2) ->+        conv ctx (nextLevel lvl) (applyVal ctx v1 (freshV lvl)) (applyClosure ctx c2 (freshV lvl)) -  -- one-step η for pairs-  (VCon (PairF a b), VNeutral n) ->-    conv ctx lvl a (VNeutral (NFirst n)) && conv ctx lvl b (VNeutral (NSecond n))-  (VNeutral n, VCon (PairF a b)) ->-    conv ctx lvl (VNeutral (NFirst n)) a && conv ctx lvl (VNeutral (NSecond n)) b+      -- one-step η for pairs. Both sides are forced here, so the spine is+      -- rigid and 'projVal' grows it without unfolding anything.+      (VCon (PairF a b), n@(VNeutral _)) ->+        conv ctx lvl a (projVal ProjFirst n) && conv ctx lvl b (projVal ProjSecond n)+      (n@(VNeutral _), VCon (PairF a b)) ->+        conv ctx lvl (projVal ProjFirst n) a && conv ctx lvl (projVal ProjSecond n) b -  (VCon s1, VCon s2) -> case zipMatch2 s1 s2 of-    Nothing -> False-    Just s  -> getAll (bifoldMap-      (All . uncurry (convClosure ctx lvl))-      (All . uncurry (conv ctx lvl))-      s)+      (VCon s1, VCon s2) -> case zipMatch2 s1 s2 of+        Nothing -> False+        Just s  -> getAll (bifoldMap+          (All . uncurry (convClosure ctx lvl))+          (All . uncurry (conv ctx lvl))+          s) -  (VNeutral n1, VNeutral n2) -> convNeu ctx lvl n1 n2-  _ -> False+      (VNeutral n1, VNeutral n2) -> convNeu ctx lvl n1 n2+      _ -> False   where-    freshV = VNeutral . NLevel+    freshV k = VNeutral (NRigid (HFresh k) []) -convClosure :: Context n -> Int -> Closure n -> Closure n -> Bool+    -- Two spines on the same definition are convertible when their+    -- eliminations are. This is congruence, and it needs no unfolding.+    --+    -- Only a glued spine is worth trying. A rigid one reaches the structural+    -- case below anyway, and attempting it here would only repeat a failure.+    -- We need no separate head test: 'convNeu' compares the two heads first.+    aligned (VNeutral n1@NGlued{}) (VNeutral n2) = convNeu ctx lvl n1 n2+    aligned _ _ = False++    unfolded (VNeutral (NGlued _ _ u)) = Just u+    unfolded _                         = Nothing++    -- The two sides need not stand on the same definition to begin with.+    -- One is often the other under a thin wrapper, such as+    -- @transport … refl t@ for @t@, an alias, or an accessor, and such a+    -- wrapper is a δ-step or two away. We therefore search the unfoldings of+    -- both sides, nearest first, and take the first shared head.+    --+    -- The search is breadth-first over both chains at once. Walking one chain+    -- to its end before starting the other normalises that side completely+    -- whenever the wrapper is on the other side. For example,+    -- @d20 A f x@ against @wrap A (d20 A f x)@ aligns after one step on the+    -- right, but costs 21 million evaluation steps if we walk the left chain+    -- first.+    align a b = or+      [ aligned a' b'+      | k <- [0 .. maxAlignOffset]+      , (i, a') <- zip [0 :: Int ..] (chainOf a)+      , (j, b') <- zip [0 :: Int ..] (chainOf b)+      , max i j == k ]++    -- Lazy, and cut off at the window. An element is forced only when the+    -- search reaches it.+    chainOf v = take (maxAlignOffset + 1) (v : maybe [] chainOf (unfolded v))++    -- Unfold at the head until the value is canonical or truly stuck.+    forceVal v = maybe v forceVal (unfolded v)++-- | How far to look for a shared head before giving up and comparing weak+-- head normal forms instead. A wrapper sits one or two unfoldings from what+-- it wraps, and beyond that a shared head is unlikely. Every step inside the+-- window forces an unfolding that the fallback would force anyway, so the+-- window costs nothing extra. We keep it small.+maxAlignOffset :: Int+maxAlignOffset = 4++convClosure :: Context n -> DeBruijnLevel -> Closure n -> Closure n -> Bool convClosure ctx lvl c1 c2 =-  conv ctx (lvl + 1) (applyClosure ctx c1 fresh) (applyClosure ctx c2 fresh)+  conv ctx (nextLevel lvl) (applyClosure ctx c1 fresh) (applyClosure ctx c2 fresh)   where-    fresh = VNeutral (NLevel lvl)+    fresh = VNeutral (NRigid (HFresh lvl) []) -convNeu :: Context n -> Int -> Neu n -> Neu n -> Bool-convNeu ctx lvl = go+-- | Two spines are convertible when they stand on the same head and their+-- eliminations agree pairwise. Neither side is unfolded.+convNeu :: Context n -> DeBruijnLevel -> Neu n -> Neu n -> Bool+convNeu ctx lvl n1 n2 =+  convHead (headOf n1) (headOf n2) && convElims (elimsOf n1) (elimsOf n2)   where-    go (NVar x) (NVar y) = Foil.nameId x == Foil.nameId y-    go (NLevel i) (NLevel j) = i == j-    go (NApp n v) (NApp n' v') = go n n' && conv ctx lvl v v'-    go (NFirst n) (NFirst n') = go n n'-    go (NSecond n) (NSecond n') = go n n'-    go (NIdJ tA a tC d x n) (NIdJ tA' a' tC' d' x' n') =-      go n n'-        && conv ctx lvl tA tA' && conv ctx lvl a a' && conv ctx lvl tC tC'+    convHead (HVar x) (HVar y)     = Foil.nameId x == Foil.nameId y+    convHead (HFresh i) (HFresh j) = i == j+    convHead _ _                   = False++    -- The recursive call comes first so that a difference in spine length,+    -- and the innermost eliminations, are settled before we compare the+    -- arguments of the outermost one.+    convElims [] []           = True+    convElims (e:es) (e':es') = convElims es es' && convElim e e'+    convElims _ _             = False++    convElim (EApp v) (EApp v') = conv ctx lvl v v'+    convElim EFirst EFirst      = True+    convElim ESecond ESecond    = True+    convElim (EIdJ tA a tC d x) (EIdJ tA' a' tC' d' x') =+      conv ctx lvl tA tA' && conv ctx lvl a a' && conv ctx lvl tC tC'         && conv ctx lvl d d' && conv ctx lvl x x'-    go _ _ = False+    convElim _ _                = False  -- * Entry point --- | Are the two terms definitely convertible? 'False' means "do not know" —--- fall back to the ordinary unification.-nbeConvertible :: TermT n -> TermT n -> TypeCheck n Bool+-- | The answer of the fast path.+--+-- Note that the two cases are not opposites, so this is deliberately not a+-- 'Bool': 'DontKnow' is never a refutation, and a caller may not read it as+-- one.+data Conversion+  = Convertible+    -- ^ Definitely convertible, by the module's soundness argument.+  | DontKnow+    -- ^ No answer. The two terms may well be convertible, and the caller+    -- falls back to the ordinary unification to find out.+  deriving (Eq, Show)++-- | Are the two terms definitely convertible?+nbeConvertible :: TermT n -> TermT n -> TypeCheck n Conversion nbeConvertible t1 t2 = asks $ \ctx ->-  conv ctx 0 (eval ctx IntMap.empty t1) (eval ctx IntMap.empty t2)+  if conv ctx (DeBruijnLevel 0) (eval ctx Foil.identitySubst t1) (eval ctx Foil.identitySubst t2)+    then Convertible+    else DontKnow 
src/Rzk/TypeCheck/Render.hs view
@@ -332,7 +332,7 @@               ret' <- openScoped binder ret               -- FIXME: breaks for 2 * (2 * 2), but works for 2 * 2 * 2 = (2 * 2) * 2               Just <$> renderForSubShapeSVG mainColor dim-                (Foil.sinkContainer xs) (Foil.nameOf binder)+                (Foil.sink1 xs) (Foil.nameOf binder)                 ret' (Foil.sink f) (Foil.sink x)       _ -> do         t' <- whnfT t@@ -351,8 +351,8 @@             pure (appT ret' (Foil.sink t') z)         let mp' | extend = join' (fmap (both Foil.sink) mp) arg' z                 | otherwise = fmap (both Foil.sink) mp-            xs' | extend = Foil.nameOf binder : Foil.sinkContainer xs-                | otherwise = Foil.sinkContainer xs+            xs' | extend = Foil.nameOf binder : Foil.sink1 xs+                | otherwise = Foil.sink1 xs         renderTermSVGFor mainColor accDim' (mp', xs') body      both f (x, y) = (f x, f y)
src/Rzk/TypeCheck/Unify.hs view
@@ -29,7 +29,7 @@ import           Rzk.TypeCheck.Error import           Rzk.TypeCheck.Eval import           Rzk.TypeCheck.Monad-import           Rzk.TypeCheck.NbE (nbeConvertible)+import           Rzk.TypeCheck.NbE (Conversion (..), nbeConvertible)  -- | Open two scoped terms under /one/ binder, so that the two sides of a -- comparison are compared as functions of the same variable.@@ -51,6 +51,24 @@   scope <- asks ctxScope   pure (alphaEqT scope l r) +-- | Run @check super sub@ on the pair @(expected, actual)@, oriented by the+-- ambient variance. Under 'Covariant' the expected type is the supertype and+-- under 'Contravariant' the actual one is. 'Invariant' is normally handled+-- upstream by running both directions; we run both here as well, for safety.+bySubtyping+  :: (TermT n -> TermT n -> TypeCheck n ())+  -> TermT n -> TermT n -> TypeCheck n ()+bySubtyping check expected actual = asks ctxCovariance >>= \case+  Covariant     -> check expected actual+  Contravariant -> check actual expected+  Invariant     -> check expected actual >> check actual expected++-- | The domain of a shape-indexed function is contravariant, so the subtype's+-- domain tope has to hold wherever the supertype's does. Shared by Π-types+-- and by the lambdas that inhabit them.+domainEntails :: Distinct n => TermT n -> TermT n -> TypeCheck n ()+domainEntails superTope subTope = localTope superTope $ contextEntails subTope+ unifyTopes :: Distinct n => TermT n -> TermT n -> TypeCheck n () unifyTopes l r = do   equiv <- (&&)@@ -79,17 +97,18 @@     then return ()     else do       -- The NbE fast path: a shared-evaluation βδη-conversion check over the-      -- context-insensitive fragment. 'True' is definite (see the module's-      -- soundness note); 'False' only means "do not know", and unification-      -- proceeds unchanged. It must run /before/ the application decomposition-      -- below: decomposing @f x@ against @g y@ compares the arguments pairwise,-      -- which for βδ-equal but structurally different applications creates-      -- false subgoals (e.g. @16 =? 128@ from @16 · 16 =? 128 + 128@) that the-      -- old path then grinds through only to fail and unwind.+      -- context-insensitive fragment. 'Convertible' is definite (see the+      -- module's soundness note); 'DontKnow' is not a refutation, and+      -- unification proceeds unchanged. It must run /before/ the application+      -- decomposition below: decomposing @f x@ against @g y@ compares the+      -- arguments pairwise, which for βδ-equal but structurally different+      -- applications creates false subgoals (e.g. @16 =? 128@ from+      -- @16 · 16 =? 128 + 128@) that the old path then grinds through only to+      -- fail and unwind.       fastPath <- nbeConvertible expected actual-      if fastPath-        then return ()-        else case (expected, actual) of+      case fastPath of+        Convertible -> return ()+        DontKnow -> case (expected, actual) of           (AppT _ f x, AppT _ g y) -> do             unify Nothing f g             setVariance Invariant $ unify Nothing x y@@ -284,14 +303,6 @@               switchVariance $  -- unifying in the negative position!                 unifyTerms cube cube' -- FIXME: unifyCubes               inScope2 orig' md cube' ret ret' $ \binder retBody retBody' -> do-                -- The tope checks below are subtyping checks with a fixed direction-                -- relative to (subtype, supertype). Which side is the subtype-                -- depends on the ambient variance: under Covariant the actual type-                -- must be a subtype of the expected one; under Contravariant (inside-                -- a domain) the roles are reversed. Invariant is normally handled-                -- upstream by running both directions; it is handled here as well-                -- for safety.-                variance <- asks ctxCovariance                 scope <- asks ctxScope                 let openTope = fmap (openWith scope (Foil.nameOf binder))                     mtopeIn = openTope mtope@@ -304,16 +315,11 @@                     -- We DO NOT take the tope context Φ into account!                     expectedTopeNF <- fromMaybe topeTopT <$> traverse nfT mtopeIn                     actualTopeNF   <- fromMaybe topeTopT <$> traverse nfT mtopeIn'-                    let subEntailsSuper subNF superNF = do+                    let superEntailedBySub superNF subNF = do                           entails <- [plainTope subNF] `entailM` superNF                           unless (entails || containsHole subNF || containsHole superNF) $                             issueTypeError (TypeErrorTopeNotSatisfied [subNF] superNF)-                    case variance of-                      Covariant     -> subEntailsSuper actualTopeNF expectedTopeNF-                      Contravariant -> subEntailsSuper expectedTopeNF actualTopeNF-                      Invariant     -> do-                        subEntailsSuper actualTopeNF expectedTopeNF-                        subEntailsSuper expectedTopeNF actualTopeNF+                    bySubtyping superEntailedBySub expectedTopeNF actualTopeNF                   _ -> do                     -- this is the case for Π-types and extension types                     --@@ -321,14 +327,7 @@                     -- when Ξ | Φ, ψ ⊢ φ                     expectedTopeNF <- fromMaybe topeTopT <$> traverse nfT mtopeIn                     actualTopeNF   <- fromMaybe topeTopT <$> traverse nfT mtopeIn'-                    let superEntailsSub superNF subNF =-                          localTope superNF $ contextEntails subNF-                    case variance of-                      Covariant     -> superEntailsSub expectedTopeNF actualTopeNF-                      Contravariant -> superEntailsSub actualTopeNF expectedTopeNF-                      Invariant     -> do-                        superEntailsSub expectedTopeNF actualTopeNF-                        superEntailsSub actualTopeNF expectedTopeNF+                    bySubtyping domainEntails expectedTopeNF actualTopeNF                 case mterm of                   Nothing -> unifyTerms retBody retBody'                   Just term ->@@ -385,8 +384,14 @@                         let openTope = fmap (openWith scope (Foil.nameOf binder))                         case (openTope mtope, openTope mtope') of                           (Just tope, Just tope') -> do-                            unify Nothing tope tope' -- we (should) have already checked this in types!-                            localTope tope $ unify Nothing bodyIn bodyIn'+                            -- The two lambdas need not stand on the same shape.+                            -- η-expansion takes the domain tope from the+                            -- function's own type, so this is the same+                            -- obligation as for the Π-type above.+                            bySubtyping domainEntails tope tope'+                            -- The bodies agree only where both are defined.+                            localTope (topeAndT tope tope') $+                              unify Nothing bodyIn bodyIn'                           (Nothing, Nothing) ->                             unify Nothing bodyIn bodyIn'                           _ -> errIn@@ -471,10 +476,17 @@               when (m' /= m) err               enterModality m $ unify Nothing ty ty'             _ -> err+        -- The external component of an extraction is bookkeeping, not+        -- denotation: it records the lock under which the extracted value was+        -- checked, so that evaluation re-enters it correctly, but the term+        -- denotes the counit of the inner modality at the value either way.+        -- It is also not canonical: 'etaExpand' always writes @Id@, while the+        -- elaboration of @let ν mod µ@ writes ν, so comparing the external+        -- components would sever η-equal spellings of the same counit+        -- (e.g. @$extract$ ♯/♯ t@ against @$extract$ _id/♯ t@).         ModExtractT _ty app inn te ->           case actual' of-            ModExtractT _ty' app' inn' te' -> do-              when (app' /= app) err+            ModExtractT _ty' _app' inn' te' -> do               when (inn' /= inn) err               enterModality app $ unify Nothing te te'             _ -> err
+ src/Rzk/Version.hs view
@@ -0,0 +1,219 @@+-- The commit is spliced in at compile time, so the splices below are literals+-- by the time the pattern checker sees them and one branch of each choice is+-- statically dead. (Agda's Agda.VersionCommit silences the same warning.)+{-# OPTIONS_GHC -Wno-overlapping-patterns #-}++{-# LANGUAGE CPP               #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards   #-}+{-# LANGUAGE TemplateHaskell   #-}++-- | Which build of rzk this is: the package version, the commit it was built+-- from (when the build supplied one), the compiler and platform, and which+-- Cabal flags it was built with.+--+-- The package version itself is generated by Cabal into @Paths_rzk@, an+-- autogenerated /other/ module of the library, so a tool that links rzk cannot+-- import it. This module exposes it as part of the public API instead, together+-- with the rest of the build details, so a consumer (the @rzk@ executable, the+-- rzk-game) can report which checker it is running.+module Rzk.Version (+  -- * The package version+  version,+  versionString,++  -- * The full build description+  VersionInfo (..),+  BuildFlag (..),+  FlagState (..),+  versionInfo,+  buildFlags,+  ppVersionInfo,+  isoCommitDate,+) where++import           Data.Aeson                 (ToJSON (..), object, (.=))+import           Data.Version               (Version, showVersion)+import           Development.GitRev         (gitCommitDate, gitDirtyTracked,+                                             gitHash)+import           Language.Haskell.TH.Syntax (lift, runIO)+import           System.Environment         (lookupEnv)+import qualified System.Info++import qualified Paths_rzk++-- | The version of the @rzk@ package.+version :: Version+version = Paths_rzk.version++-- | The version of the @rzk@ package, rendered as a string (e.g. @"0.11.2"@).+--+-- This is what @rzk version@ prints, and tools scrape it as such, so it is+-- deliberately just the version and nothing else.+versionString :: String+versionString = showVersion version++-- | Whether a Cabal flag is on for this build.+data FlagState+  = FlagOn+  | FlagOff+  deriving (Eq, Show)++-- | A Cabal flag of the @rzk@ package, with the state this build has.+data BuildFlag = BuildFlag+  { buildFlagName  :: String+  , buildFlagState :: FlagState+  } deriving (Eq, Show)++-- | Every Cabal flag of the package, each with the state this build has.+--+-- A tool that wants a language server can look up @lsp@ here rather than run+-- @rzk lsp@ and see whether it fails.+--+-- Note that the state is what was compiled in, not what was asked for: the+-- JavaScript and WebAssembly backends have no LSP support whatever the @lsp@+-- flag says, and @lsp@ reads as off in such a build.+buildFlags :: [BuildFlag]+buildFlags =+  [ BuildFlag "lsp"+#ifdef LSP_ENABLED+      FlagOn+#else+      FlagOff+#endif+  ]++-- | Everything this build knows about itself.+data VersionInfo = VersionInfo+  { versionInfoVersion   :: Version+    -- ^ The package version.+  , versionInfoCommit    :: Maybe String+    -- ^ The commit rzk was built from, when the build knew one (see+    -- 'buildCommit'); 'Nothing' otherwise.+  , versionInfoCommitDate :: Maybe String+    -- ^ The date of that commit, when it came from a repository (see+    -- 'buildCommitDate').+  , versionInfoCompiler  :: String+    -- ^ The Haskell implementation, e.g. @"ghc-9.10.3"@.+  , versionInfoPlatform  :: String+    -- ^ Operating system and architecture, e.g. @"darwin-aarch64"@.+  , versionInfoFlags     :: [BuildFlag]+    -- ^ The Cabal flags this build was made with (see 'buildFlags').+  } deriving (Eq, Show)++-- | The commit this build was made from, determined when the module is+-- compiled.+--+-- The @RZK_GIT_COMMIT@ environment variable wins when it is set; it is the only+-- route for a build with no repository to read, such as one from a Hackage+-- tarball, and the release workflow sets it. Otherwise the commit comes from+-- the checkout the build ran in, so an ordinary @stack build@ stamps itself+-- too; a tree with uncommitted changes to tracked files is marked @-dirty@.+-- The hash is reported in full, as @rustc -vV@ and @ghc --info@ do: this is the+-- verbose output, and an abbreviation can become ambiguous as a repository+-- grows.+-- A build that can find neither reports 'Nothing'.+--+-- Note that a stale stamp is possible: neither stack nor GHC tracks the+-- environment for recompilation, and stack may skip a package it considers+-- unchanged even though @HEAD@ has moved. A clean build always gets it right,+-- which is what CI does for a release binary.+buildCommit :: Maybe String+buildCommit+  | Just fromEnv <- envCommit = Just fromEnv+  | hash == "UNKNOWN"         = Nothing+  | otherwise                 = Just (hash <> dirty)+  where+    hash = $(gitHash)+    dirty+      | $(gitDirtyTracked) = "-dirty"+      | otherwise          = ""++-- | The commit named by @RZK_GIT_COMMIT@ when this module was compiled.+envCommit :: Maybe String+envCommit = $(runIO (lookupEnv "RZK_GIT_COMMIT") >>= lift)++-- | The date of 'buildCommit', when the commit came from a repository.+--+-- A commit supplied through @RZK_GIT_COMMIT@ comes with no date, and reporting+-- the checkout's date next to someone else's commit would be misleading, so+-- this is 'Nothing' in that case.+buildCommitDate :: Maybe String+buildCommitDate+  | Just _ <- envCommit = Nothing+  | date == "UNKNOWN"   = Nothing+  | otherwise           = Just (isoCommitDate date)+  where+    date = $(gitCommitDate)++-- | Git's default commit date (@Fri Aug 21 21:14:42 2026 +0300@) as a plain ISO+-- date (@2026-08-21@), which is the form @rustc -vV@ reports. A date that does+-- not parse is passed through unchanged.+isoCommitDate :: String -> String+isoCommitDate raw = case words raw of+  [_weekday, month, day, _time, year, _timezone]+    | Just m <- lookup month months -> year <> "-" <> m <> "-" <> twoDigits day+  _ -> raw+  where+    twoDigits [d] = ['0', d]+    twoDigits ds  = ds+    months = zip+      [ "Jan", "Feb", "Mar", "Apr", "May", "Jun"+      , "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]+      [ "01", "02", "03", "04", "05", "06"+      , "07", "08", "09", "10", "11", "12" ]++-- | The build description of the running rzk.+versionInfo :: VersionInfo+versionInfo = VersionInfo+  { versionInfoVersion  = version+  , versionInfoCommit   = buildCommit+  , versionInfoCommitDate = buildCommitDate+  , versionInfoCompiler =+      System.Info.compilerName <> "-" <> showVersion System.Info.fullCompilerVersion+  , versionInfoPlatform = System.Info.os <> "-" <> System.Info.arch+  , versionInfoFlags    = buildFlags+  }++-- | Render a build description as a block of lines, as printed by+-- @rzk version --full@.+ppVersionInfo :: VersionInfo -> String+ppVersionInfo VersionInfo{..} = unlines $ concat+  [ [ "rzk " <> showVersion versionInfoVersion <> commitSuffix ]+  , commitDateLine+  , [ "built with: " <> versionInfoCompiler+    , "platform:   " <> versionInfoPlatform+    , "flags:      " <> unwords (map ppFlag versionInfoFlags)+    ]+  ]+  where+    commitSuffix = case versionInfoCommit of+      Nothing     -> " (commit unknown)"+      Just commit -> " (" <> commit <> ")"+    commitDateLine = case versionInfoCommitDate of+      Nothing   -> []+      Just date -> ["committed:  " <> date]+    -- Cabal's own notation for a flag assignment, as in `cabal --flags=-lsp`.+    ppFlag (BuildFlag name state) = case state of+      FlagOn  -> '+' : name+      FlagOff -> '-' : name++instance ToJSON FlagState where+  toJSON FlagOn  = toJSON True+  toJSON FlagOff = toJSON False++instance ToJSON BuildFlag where+  toJSON BuildFlag{..} = object+    [ "name"    .= buildFlagName+    , "enabled" .= buildFlagState+    ]++instance ToJSON VersionInfo where+  toJSON VersionInfo{..} = object+    [ "version"    .= showVersion versionInfoVersion+    , "commit"     .= versionInfoCommit+    , "commitDate" .= versionInfoCommitDate+    , "compiler"   .= versionInfoCompiler+    , "platform"   .= versionInfoPlatform+    , "flags"      .= versionInfoFlags+    ]
test/Rzk/HolesSpec.hs view
@@ -440,8 +440,8 @@                  <> "#postulate pick : (X : U) -> (Y : U) -> X -> X\n"                  <> "#define goal : A -> A := ?\n"       in flip oneHole (holesWithLemmas ["pick"] metaSrc) $ \h -> do-           cands h `shouldContain` ["pick ? ?"]-           filter (`elem` ["pick", "pick ?"]) (cands h) `shouldBe` []+           cands h `shouldContain` ["pick ?X ?Y"]+           filter (`elem` ["pick", "pick ?X"]) (cands h) `shouldBe` []      -- Also at the schema's own type: the bare alias is not offered (writing     -- the alias is the user's call), while the saturated spine still is.@@ -450,7 +450,7 @@                   <> "#define my-id (X : U) (x : X) : X := x\n"                   <> "#define goal : (X : U) -> X -> X := ?\n"       in flip oneHole (holesWithLemmas ["my-id"] aliasSrc) $ \h -> do-           cands h `shouldContain` ["my-id ?"]+           cands h `shouldContain` ["my-id ?X"]            filter (== "my-id") (cands h) `shouldBe` []      -- A lemma whose result type is a motive application (@ind-path ... : C x p@)@@ -466,8 +466,25 @@                 <> "  := idJ (A , a , C , d , x , p)\n"                 <> "#define goal (A : U) (x y : A) (p : x = y) : y = x := ?\n"       in flip oneHole (holesWithLemmas ["ind-path"] indSrc) $ \h ->-           cands h `shouldContain` ["ind-path ? ? ? ? ? ?"]+           cands h `shouldContain` ["ind-path ?A ?a ?C ?d ?x ?p"] +    -- A projection is flexible for the same reason an application is: @first ?@+    -- has no shape of its own. Without that, a lemma about projections is+    -- offered only when both endpoints happen to match structurally, and is+    -- dropped exactly when the goal needs it, e.g. the first-path-Σ step of the+    -- Yoneda geodesic, whose goal has a plain variable on the right.+    it "offers a lemma with a projection endpoint against a rigid endpoint" $+      let fstSrc = "#lang rzk-1\n"+                <> "#define fst-path (A : U) (B : A -> U)\n"+                <> "  (s t : Sigma (a : A) , B a) (e : s = t)\n"+                <> "  : first s = first t\n"+                <> "  := idJ (Sigma (a : A) , B a , s ,\n"+                <> "          \\ t' e' -> first s = first t' , refl , t , e)\n"+                <> "#define goal (A : U) (B : A -> U)\n"+                <> "  (w : Sigma (a : A) , B a) (c : A) : first w = c := ?\n"+      in flip oneHole (holesWithLemmas ["fst-path"] fstSrc) $ \h ->+           cands h `shouldContain` ["fst-path ?A ?B ?s ?t ?e"]+     -- Fitting anything does not mean escaping the allow-list: a hole-headed     -- lemma is still only offered when the level grants it.     it "does not offer a hole-headed lemma that was not allow-listed" $@@ -577,6 +594,15 @@     it "introduces a function goal as a λ with a hole body" $ do       case holesOf "#lang rzk-1\n#define f : (A : U) -> ((n : A) -> A)\n  := \\ A -> ?\n" of         [h] -> intros h `shouldBe` ["\\ n → ?"]+        hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))++    -- A hole in a cube position gets the cube's closed points. Writing a corner+    -- of a square as `α ? ?` is common, and 0₂ / 1₂ are the only two points of+    -- the directed interval, so leaving them unoffered left such a hole with no+    -- introduction at all. An in-scope cube variable is already a candidate.+    it "introduces a directed-interval goal as its two endpoints" $ do+      case holesOf "#lang rzk-1\n#define D1 : 2 -> TOPE := \\ t -> TOP\n#define f (A : U) (a : D1 -> A) : A := a ?\n" of+        [h] -> intros h `shouldBe` ["0₂", "1₂"]         hs  -> expectationFailure ("expected exactly one hole, got " <> show (length hs))      -- The λ binder is freshened so it does not shadow a name already in scope.
+ test/Rzk/VersionSpec.hs view
@@ -0,0 +1,63 @@+{-|+Module      : Rzk.VersionSpec+Description : Tests for the reported build description+-}+{-# LANGUAGE OverloadedStrings #-}+module Rzk.VersionSpec where++import           Data.Aeson                 (encode)+import qualified Data.ByteString.Lazy.Char8 as BL8+import           Data.List                  (isPrefixOf)+import           Data.Version               (showVersion)+import           Test.Hspec++import           Rzk.Version++spec :: Spec+spec = do+  describe "versionString" $ do+    -- Tools scrape `rzk version` for the version and nothing else: the VS Code+    -- extension takes the whole of stdout, trims it, and passes it to semver.+    -- Details belong in `rzk version --full` instead.+    it "is the bare version, with no prefix or extra words" $+      versionString `shouldBe` showVersion version++  describe "ppVersionInfo" $ do+    it "leads with the version" $+      ("rzk " ++ versionString) `shouldSatisfy` (`isPrefixOf` ppVersionInfo versionInfo)++    it "reports every field" $ do+      let rendered = ppVersionInfo versionInfo+      rendered `shouldContain` versionInfoCompiler versionInfo+      rendered `shouldContain` versionInfoPlatform versionInfo++    it "renders flags in Cabal's notation" $ do+      let rendered = ppVersionInfo versionInfo+            { versionInfoFlags = [BuildFlag "lsp" FlagOn, BuildFlag "fancy" FlagOff] }+      rendered `shouldContain` "flags:      +lsp -fancy"++    it "omits the commit date line when there is no date" $+      ppVersionInfo versionInfo { versionInfoCommitDate = Nothing }+        `shouldNotContain` "committed:"++  describe "isoCommitDate" $ do+    it "normalises git's default format" $+      isoCommitDate "Fri Aug 21 21:14:42 2026 +0300" `shouldBe` "2026-08-21"++    it "pads a single-digit day" $+      isoCommitDate "Mon Jan 5 09:00:00 2026 -0500" `shouldBe` "2026-01-05"++    it "passes an unrecognised date through unchanged" $+      isoCommitDate "2026-08-21" `shouldBe` "2026-08-21"++  describe "the JSON encoding" $ do+    it "carries every field" $ do+      let json = BL8.unpack (encode versionInfo)+      mapM_ (shouldContain json)+        [ "\"version\":\"" <> versionString <> "\""+        , "\"compiler\":\"" <> versionInfoCompiler versionInfo <> "\""+        , "\"platform\":\"" <> versionInfoPlatform versionInfo <> "\""+        , "\"flags\":[{\"enabled\":true,\"name\":\"lsp\"}]"+        , "\"commit\":"+        , "\"commitDate\":"+        ]
test/typecheck/cases/happy-modal-basics.rzk view
@@ -28,14 +28,14 @@   : A   :=   let mod _op x_1 := x in-  let mod _op / _op x_2 := x_1 in+  let _op mod _op x_2 := x_1 in   x_2  #def sharp-join (A : U) (a : _# (_# A))   : _# A   :=   let mod _# x_1 := a in-  let mod _# / _# x_2 := x_1 in+  let _# mod _# x_2 := x_1 in   mod _# x_2  #def flat-to-sharp (A :_b U) (x :_b A)@@ -54,14 +54,14 @@   : _id A   :=   let mod _id x_1 := a in-  let mod _id / _id x_2 := x_1 in+  let mod _id x_2 := x_1 in   mod _id x_2  #def op-op-is-id (A : U) (x : _op (_op A))   : _id A   :=   let mod _op x_1 := x in-  let mod _op / _op x_2 := x_1 in+  let _op mod _op x_2 := x_1 in   mod _id x_2  -- comp(Flat, Op) = Flat: flat var stays accessible inside op-under-flat@@ -293,6 +293,30 @@   = (let mod _op b := y in let mod _op a := x in mod _op (a))   := refl +-- ============ Eta ============++-- Eta for a right-adjoint modal type: f = mod _op (extract f)+#def op-modal-eta+  (A : U)+  (B :_op U)+  (f : _op ((_op A) → B))+  : ( mod _op (\ (x : _op A) →+        let _id mod _op a := x in+        let _op mod _op b :=+          (let mod _op f0 := f in mod _op (f0 (mod _op a))) in+          b))+    = f+  := refl++-- A flat point bound by let mod is discrete about its value, not its name+#def flat-letmod-discrete+  (A :_b U)+  (a :_b A)+  (w :_b 2 × 2)+  : A+  := let mod _b i := mod _b (first w)+     in recOR( i === 0_2 |-> a , i === 1_2 |-> a )+ -- Id letmod commutes (RA) #def id-letmod-commute   (A : U) (B : U)@@ -319,4 +343,29 @@ #def id-eta   (A : U) (x : _id A)   : (let mod _id a := x in mod _id a) = x+  := refl++-- Eta holds through a non-_id external lock (`let ext mod inn`)+#def sharp-op-eta+  (A :_b U) (v :_b (_# A))+  : (let _op mod _# a := v in mod _# a) = v+  := refl++-- ============ Single-modality sugar: `let m x := t` ============+-- `let m x := t in u` is sugar for `let mod m x := mod m t in u`, i.e.+-- `let mod m x := mod m t in u`, checking that `t` is available under `m`.++#def sharp-let-sugar+  (A : U) (a :_# A)+  : (let _# x := a in mod _# x) = (let mod _# x := mod _# a in mod _# x)+  := refl++#def op-let-sugar+  (A :_op U) (a :_op A)+  : (let _op x := a in mod _op x) = mod _op a+  := refl++#def flat-let-sugar+  (A :_b U) (a :_b A)+  : (let _b x := a in mod _b x) = mod _b a   := refl
+ test/typecheck/cases/happy-modal-extract-external-lock.expect.yaml view
@@ -0,0 +1,3 @@+status: ok+regression_for:+  - modal-extract-external-lock-insignificant
+ test/typecheck/cases/happy-modal-extract-external-lock.rzk view
@@ -0,0 +1,11 @@+#lang rzk-1++-- The external component of an extraction is bookkeeping, not denotation:+-- the same neutral t, bound through an external ♯ lock and without one,+-- denotes the ♯-counit of t both times, so the two bodies agree. With the+-- external components compared in unification, the two stuck extractions+-- ($extract$ ♯/♯ t and $extract$ _id/♯ t) would be severed, breaking η for+-- the right-adjoint modalities (etaExpand always writes _id).+#define same-counit (A : U) (f : A -> A) (t : _# A)+  : (let _# mod _# x := t in mod _# (f x)) =_{_# A} (let mod _# y := t in mod _# (f y))+  := refl
test/typecheck/cases/happy-modal-let-into.rzk view
@@ -6,7 +6,7 @@   : _# A   :=   let mod _# x_1 := a into (\ _ -> _# A) in-  let mod _# / _# x_2 := x_1 in+  let _# mod _# x_2 := x_1 in   mod _# x_2  #def double-op-into@@ -15,7 +15,7 @@   : A   :=   let mod _op x_1 := x into (\ _ -> A) in-  let mod _op / _op x_2 := x_1 in+  let _op mod _op x_2 := x_1 in   x_2  #def into-agrees-with-plain@@ -43,3 +43,23 @@   (x : _# A)   : C x   := let mod _# a := x into (\ z -> C z) in c a++-- The single-modality binding accepts a motive too. Its value is `mod _# a`+-- by construction, so the motive is applied to that.+#def sugar-into+  (A : U)+  (C : (_# A) -> U)+  (c : (a :_# A) -> C (mod _# a))+  (a :_# A)+  : C (mod _# a)+  := let _# x := a into C in c x++-- A motive on the full composition form, where the external lock is not `_id`.+#def comp-into+  (A : U)+  (a : _# (_# A))+  : _# A+  :=+  let mod _# x_1 := a in+  let _# mod _# x_2 := x_1 into (\ _ -> _# A) in+  mod _# x_2
+ test/typecheck/cases/happy-nbe-transport-refl-spine.expect.yaml view
@@ -0,0 +1,4 @@+status: ok+regression_for:+  - nbe-glued-spines+  - https://github.com/BennoLossin/sHoTT/commit/84fdfe3160cd785eec36f75590fad1b5d32e5cd5
+ test/typecheck/cases/happy-nbe-transport-refl-spine.rzk view
@@ -0,0 +1,62 @@+#lang rzk-1++-- Transporting a large term along `refl`. The path is `refl`, so the whole+-- application ι-reduces to the term it carries, one δ-step away. The+-- conversion fast path (Rzk.TypeCheck.NbE) can then answer from the two+-- spines, without unfolding what is carried.+--+-- This is the shape that made a definition in Benno Lossin's sHoTT fork take+-- five minutes to check. There `path-of-pairs-pair-of-paths` was applied with+-- `refl` as its first component path, which leaves `transport … refl t` to be+-- compared against `t`. In that proof `t` was a nested iso-induction with a+-- very large normal form. Here `big` plays that part, and its normal form has+-- 2^22 applications.++#define CN : U+  := (X : U) → (X → X) → X → X++#define czero : CN+  := \ X s x → x++#define csucc (n : CN) : CN+  := \ X s x → s (n X s x)++#define cadd (m n : CN) : CN+  := \ X s x → m X s (n X s x)++#define cexp (m n : CN) : CN+  := \ X → n (X → X) (m X)++#define c1 : CN := csucc czero+#define c2 : CN := cadd c1 c1+#define c4 : CN := cadd c2 c2+#define c8 : CN := cadd c4 c4+#define c16 : CN := cadd c8 c8+#define c22 : CN := cadd c16 (cadd c4 c2)++-- 2 ^ 22, i.e. a normal form of a few million nodes+#define big : CN := cexp c2 c22++-- rzk has no primitive transport; it goes through idJ.+#define transport+  ( A : U)+  ( C : A → U)+  ( x y : A)+  ( p : x = y)+  ( cx : C x)+  : C y+  := idJ (A, x, \ z _ → C z, cx, y, p)++#define test-transport-refl+  ( A : U)+  ( a : A)+  : transport A (\ _ → CN) a a refl big = big+  := refl++-- and the other way round, since the alignment search must reach a shared+-- head from either side+#define test-transport-refl-flipped+  ( A : U)+  ( a : A)+  : big = transport A (\ _ → CN) a a refl big+  := refl
+ test/typecheck/cases/happy-nbe-wrapper-alignment.expect.yaml view
@@ -0,0 +1,4 @@+status: ok+regression_for:+  - nbe-glued-spines+  - nbe-shared-head-alignment
+ test/typecheck/cases/happy-nbe-wrapper-alignment.rzk view
@@ -0,0 +1,48 @@+#lang rzk-1++-- A term compared against itself under a thin wrapper. The wrapper is a+-- δ-step away from what it wraps, so the conversion fast path+-- (Rzk.TypeCheck.NbE) can answer from the two spines, without unfolding+-- either side. Normalising instead means normalising `big`, whose normal+-- form has 2^22 applications.+--+-- We test both directions. The search for a shared head has to be+-- breadth-first over both sides at once. Walking one side to the end before+-- starting the other normalises that side in full whenever the wrapper is on+-- the side walked second.++#define CN : U+  := (X : U) → (X → X) → X → X++#define czero : CN+  := \ X s x → x++#define csucc (n : CN) : CN+  := \ X s x → s (n X s x)++#define cadd (m n : CN) : CN+  := \ X s x → m X s (n X s x)++#define cexp (m n : CN) : CN+  := \ X → n (X → X) (m X)++#define c1 : CN := csucc czero+#define c2 : CN := cadd c1 c1+#define c4 : CN := cadd c2 c2+#define c8 : CN := cadd c4 c4+#define c16 : CN := cadd c8 c8+#define c22 : CN := cadd c16 (cadd c4 c2)++-- 2 ^ 22, i.e. a normal form of a few million nodes+#define big : CN := cexp c2 c22++#define alias (A : U) (a : A) : A := a++-- wrapper on the right+#define test-wrapper-right : big = alias CN big := refl++-- wrapper on the left+#define test-wrapper-left : alias CN big = big := refl++-- a wrapper on each side, so neither single-sided walk finds the alignment+#define test-wrapper-both : alias CN big = alias CN big := refl
test/typecheck/cases/ill-modal-let-into-body.rzk view
@@ -1,6 +1,6 @@ #lang rzk-1 --- The body of a `let mod ... into C ...` must inhabit the motive at the+-- The body of a `let m mod n ... into C ...` must inhabit the motive at the -- introduction form, i.e. C (mod ♭ a). Here the motive is the constant -- family ♭ A, so the body `c a : C (mod ♭ a)` does not fit. #def into-body-misses-motive