packages feed

eo-phi-normalizer 2.0.0 → 2.1.0

raw patch · 44 files changed

+22286/−21234 lines, 44 filessetup-changed

Files

CHANGELOG.md view
@@ -6,11 +6,31 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v2.1.0 - 2024-11-22++## Breaking changes++- Rename `transform` to `rewrite` in the `eo-phi-normalizer` CLI ([#369](https://github.com/objectionary/eo-phi-normalizer/pull/369))++## New++- Add new rules ([#523](https://github.com/objectionary/eo-phi-normalizer/pull/523))+- Add new rules tests ([#540](https://github.com/objectionary/eo-phi-normalizer/pull/540))++### Documentation and maintenance++- Annotate files with copyright ([#536](https://github.com/objectionary/eo-phi-normalizer/pull/536))+- Move docs for user-defined rules to a separate page ([#524](https://github.com/objectionary/eo-phi-normalizer/pull/524))+- Document the release procedure ([#532](https://github.com/objectionary/eo-phi-normalizer/pull/532))+ ## v2.0.0 - 2024-11-18 -### New+## Breaking changes  - Rename `normalizer` to `eo-phi-normalizer` everywhere ([#494](https://github.com/objectionary/eo-phi-normalizer/pull/494))++### New+ - Add `eo-phi-normalizer version` command ([#493](https://github.com/objectionary/eo-phi-normalizer/pull/493)) - Add `eo-phi-normalizer test` command ([#498](https://github.com/objectionary/eo-phi-normalizer/pull/498)) @@ -84,6 +104,7 @@  - Undo injection of top-level Package lambda ([#392](https://github.com/objectionary/eo-phi-normalizer/pull/392)) - Fix dataization ([#395](https://github.com/objectionary/eo-phi-normalizer/pull/395))+   - Fix dataization inside $\varphi$ when `--minimize-stuck-terms` is enabled (closes [#393](https://github.com/objectionary/eo-phi-normalizer/pull/393))   - Fix evaluation of atoms stuck on other atoms (fixes `while-dataizes-only-first-cycle` in `while-tests.phi`)   - Improve pretty-printing (closes [#292](https://github.com/objectionary/eo-phi-normalizer/pull/292))@@ -91,6 +112,7 @@ - Fix pipeline script to run tests on normalized EO ([#396](https://github.com/objectionary/eo-phi-normalizer/pull/396))  - Changes to normalizer ([#396](https://github.com/objectionary/eo-phi-normalizer/pull/396))+   - Add `--wrap-raw-bytes` to automatically convert raw bytes (and terminations) in the output. This is a temporary fix, pending the change mentioned in <https://github.com/objectionary/eo/issues/3213#issuecomment-2150032168>   - Fix builtin normalizer to produce termination in some situations   - Fix dataization inside application/dispatch
Setup.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE CPP #-} {-# LANGUAGE QuasiQuotes #-} @@ -13,6 +36,8 @@ import PyF (fmt) import System.Exit (ExitCode (..)) import System.Process (callCommand)+import Text.Printf (printf)+import Control.Exception (evaluate)  -- | Run BNFC, happy, and alex on the grammar before the actual build step. --@@ -31,22 +56,36 @@                       False #endif             -- See the details on the command form in https://github.com/objectionary/eo-phi-normalizer/issues/347#issuecomment-2117097070+            addLicense :: FilePath -> IO ()+            addLicense file = do+              let readFile' path = do+                    content <- readFile path+                    evaluate (length content)+                    pure content+                  targetFile = "src/Language/EO/Phi/Syntax/" <> file+              license <- readFile' "LICENSE"+              let licenseFormatted = printf "{-\n%s-}\n\n" license+              code <- readFile' targetFile+              evaluate (length license)+              writeFile targetFile (licenseFormatted <> code)+             command = intercalate "; " $                 [ "set -ex" ] <>                 [ "chcp.com" | isWindows ] <>                 [ "chcp.com 65001" | isWindows ] <>-                [ "bnfc --haskell -d -p Language.EO.Phi --generic -o src/ grammar/EO/Phi/Syntax.cf"-                , "cd src/Language/EO/Phi/Syntax"-                , "alex Lex.x"-                , "happy Par.y"-                , "true"-                ]+                [ "bnfc --haskell -d -p Language.EO.Phi --generic -o src/ grammar/EO/Phi/Syntax.cf"] <>+                [ "cd src/Language/EO/Phi/Syntax" ] <>+                [ "alex Lex.x" ] <>+                [ "happy Par.y" ] <>+                [ "true" ]              fullCommand = [fmt|bash -c ' {command} '|]            putStrLn fullCommand            _ <- callCommand fullCommand+          _ <- addLicense "Abs.hs"+          _ <- addLicense "Print.hs"            postConf simpleUserHooks args flags packageDesc localBuildInfo       }
app/Main.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE ApplicativeDo #-} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE ConstraintKinds #-}@@ -68,7 +91,7 @@ import System.IO (IOMode (WriteMode), getContents', hFlush, hPutStr, hPutStrLn, openFile, stdout) import Test.Hspec.Core.Runner -data CLI'TransformPhi = CLI'TransformPhi+data CLI'RewritePhi = CLI'RewritePhi   { chain :: Bool   , rulesPath :: Maybe String   , outputFile :: Maybe String@@ -139,7 +162,7 @@   deriving stock (Show)  data CLI-  = CLI'TransformPhi' CLI'TransformPhi+  = CLI'RewritePhi' CLI'RewritePhi   | CLI'DataizePhi' CLI'DataizePhi   | CLI'MetricsPhi' CLI'MetricsPhi   | CLI'PrintRules' CLI'PrintRules@@ -239,7 +262,7 @@  data CommandParser = CommandParser   { metrics :: Parser CLI'MetricsPhi-  , transform :: Parser CLI'TransformPhi+  , rewrite :: Parser CLI'RewritePhi   , dataize :: Parser CLI'DataizePhi   , pipeline :: Parser CLI'Pipeline   , pipeline' :: CommandParser'Pipeline@@ -261,9 +284,9 @@     latex <- latexSwitch     compact <- compactSwitch     pure CLI'PrintRules{..}-  transform = do+  rewrite = do     rulesPath <- optional $ strOption (long "rules" <> short 'r' <> metavar.file <> help [fmt|{metavarName.file} with user-defined rules. If unspecified, builtin set of rules is used.|])-    chain <- switch (long "chain" <> short 'c' <> help "Output transformation steps.")+    chain <- switch (long "chain" <> short 'c' <> help "Output rewriting steps.")     json <- jsonSwitch     latex <- latexSwitch     outputFile <- outputFileOption@@ -276,7 +299,7 @@        in option auto (long "max-growth-factor" <> metavar.int <> value maxValue <> help [fmt|The factor by which to allow the input term to grow before stopping. Defaults to {maxValue}.|])     inputFile <- inputFileArg     dependencies <- dependenciesArg-    pure CLI'TransformPhi{..}+    pure CLI'RewritePhi{..}   dataize = do     rulesPath <- optional $ strOption (long "rules" <> short 'r' <> metavar.file <> help [fmt|{metavarName.file} with user-defined rules. If unspecified, builtin set of rules is used.|])     inputFile <- inputFileArg@@ -323,7 +346,7 @@  data CommandParserInfo = CommandParserInfo   { metrics :: ParserInfo CLI-  , transform :: ParserInfo CLI+  , rewrite :: ParserInfo CLI   , dataize :: ParserInfo CLI   , printRules :: ParserInfo CLI   , pipeline :: ParserInfo CLI@@ -335,7 +358,7 @@ commandParserInfo =   CommandParserInfo     { metrics = info (CLI'MetricsPhi' <$> commandParser.metrics) (progDesc "Collect metrics for a PHI program.")-    , transform = info (CLI'TransformPhi' <$> commandParser.transform) (progDesc "Transform a PHI program.")+    , rewrite = info (CLI'RewritePhi' <$> commandParser.rewrite) (progDesc "Rewrite a PHI program.")     , dataize = info (CLI'DataizePhi' <$> commandParser.dataize) (progDesc "Dataize a PHI program.")     , printRules = info (CLI'PrintRules' <$> commandParser.printRules) (progDesc "Print rules in LaTeX format.")     , pipeline = info (CLI'Pipeline' <$> commandParser.pipeline) (progDesc "Run pipeline-related commands.")@@ -355,7 +378,7 @@   }  data CommandNames = CommandNames-  { transform :: String+  { rewrite :: String   , metrics :: String   , dataize :: String   , printRules :: String@@ -367,7 +390,7 @@ commandNames :: CommandNames commandNames =   CommandNames-    { transform = "transform"+    { rewrite = "rewrite"     , metrics = "metrics"     , dataize = "dataize"     , printRules = "print-rules"@@ -384,7 +407,7 @@ cli :: Parser CLI cli =   hsubparser-    ( command commandNames.transform commandParserInfo.transform+    ( command commandNames.rewrite commandParserInfo.rewrite         <> command commandNames.metrics commandParserInfo.metrics         <> command commandNames.dataize commandParserInfo.dataize         <> command commandNames.pipeline commandParserInfo.pipeline@@ -529,6 +552,7 @@   ThisObject -> ThisObject   Termination -> wrapTermination   obj@MetaSubstThis{} -> obj+  obj@MetaContextualize{} -> obj   obj@MetaObject{} -> obj   obj@MetaTailContext{} -> obj   obj@MetaFunction{} -> obj@@ -552,11 +576,11 @@       rules <- rules <$> maybe (return yegorRuleSet) parseRuleSetFromFile rulesPath       let toLatex' = if compact then rulesToLatexCompact else toLatex       logStrLn $ show $ toLatex' rules-    CLI'TransformPhi' CLI'TransformPhi{..} -> do+    CLI'RewritePhi' CLI'RewritePhi{..} -> do       program' <- getProgram inputFile       deps <- mapM (getProgram . Just) dependencies       (logStrLn, logStr) <- getLoggers outputFile-      -- logStrLn "Running transform"+      -- logStrLn "Running rewrite"       (builtin, ruleSetTitle, rules) <-         case rulesPath of           Just path -> do
eo-phi-normalizer.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           eo-phi-normalizer-version:        2.0.0+version:        2.1.0 synopsis:       Command line normalizer of 𝜑-calculus expressions. description:    Please see the README on GitHub at <https://github.com/objectionary/eo-phi-normalizer#readme> homepage:       https://github.com/objectionary/eo-phi-normalizer#readme
grammar/EO/Phi/Syntax.cf view
@@ -1,3 +1,25 @@+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+ -- ========================================================== -- BNFC grammar for φ-programs (translated from EO) -- ==========================================================@@ -26,16 +48,17 @@ MetaIdObject.   MetaId ::= ObjectMetaId ; MetaIdBytes.    MetaId ::= BytesMetaId ; -Formation.      Object ::= "⟦" [Binding] "⟧" ;-Application.    Object ::= Object "(" [Binding] ")" ;-ObjectDispatch. Object ::= Object "." Attribute ;-GlobalObject.   Object ::= "Φ";-ThisObject.     Object ::= "ξ";-Termination.    Object ::= "⊥" ;-MetaSubstThis.  Object ::= Object "[" "ξ" "↦" Object "]" ;-MetaObject.     Object ::= ObjectMetaId ;-MetaTailContext. Object ::= Object "*" TailMetaId ;-MetaFunction.   Object ::= MetaFunctionName "(" Object ")" ;+Formation.         Object ::= "⟦" [Binding] "⟧" ;+Application.       Object ::= Object "(" [Binding] ")" ;+ObjectDispatch.    Object ::= Object "." Attribute ;+GlobalObject.      Object ::= "Φ";+ThisObject.        Object ::= "ξ";+Termination.       Object ::= "⊥" ;+MetaSubstThis.     Object ::= Object "[" "ξ" "↦" Object "]" ;+MetaContextualize. Object ::= "⌈" Object "," Object "⌉" ;+MetaObject.        Object ::= ObjectMetaId ;+MetaTailContext.   Object ::= Object "*" TailMetaId ;+MetaFunction.      Object ::= MetaFunctionName "(" Object ")" ;  AlphaBinding.       Binding ::= Attribute "↦" Object ; EmptyBinding.       Binding ::= Attribute "↦" "∅" ;
src/Language/EO/Phi.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} module Language.EO.Phi (   defaultMain,   normalize,
src/Language/EO/Phi/Dataize.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE OverloadedStrings #-}
src/Language/EO/Phi/Dataize/Atoms.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} 
src/Language/EO/Phi/Dataize/Context.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} module Language.EO.Phi.Dataize.Context where  import Data.HashMap.Strict qualified as HashMap
src/Language/EO/Phi/Dependencies.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE TypeApplications #-}  module Language.EO.Phi.Dependencies where
src/Language/EO/Phi/Metrics/Collect.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-}
src/Language/EO/Phi/Metrics/Data.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-}
src/Language/EO/Phi/Normalize.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLabels #-}@@ -53,6 +76,7 @@   MetaTailContext{} -> error "impossible"   MetaFunction _ _ -> error "To be honest, I'm not sure what should be here"   MetaSubstThis{} -> error "impossible"+  MetaContextualize{} -> error "impossible"  where   followedBy (PeeledObject object actions) action = PeeledObject object (actions ++ [action]) 
src/Language/EO/Phi/Pipeline/Config.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
src/Language/EO/Phi/Pipeline/Dataize/PrintConfigs.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-}
src/Language/EO/Phi/Pipeline/EOTests/Data.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
src/Language/EO/Phi/Pipeline/EOTests/PrepareTests.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedRecordDot #-}
src/Language/EO/Phi/Report/Data.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
src/Language/EO/Phi/Report/Html.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-}
src/Language/EO/Phi/Rules/Common.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# HLINT ignore "Use &&" #-} {-# LANGUAGE DeriveFunctor #-} {-# HLINT ignore "Redundant fmap" #-}@@ -132,6 +155,7 @@       MetaFunction _ _ -> []       MetaTailContext{} -> []       MetaSubstThis _ _ -> []+      MetaContextualize _ _ -> []  where   subctx = ctx{insideSubObject = True} @@ -199,6 +223,7 @@   MetaObject{} -> 1 -- should be impossible   MetaFunction{} -> 1 -- should be impossible   MetaSubstThis{} -> 1 -- should be impossible+  MetaContextualize{} -> 1 -- should be impossible   MetaTailContext{} -> 1 -- should be impossible  bindingSize :: Binding -> Int
src/Language/EO/Phi/Rules/Fast.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} @@ -184,6 +207,7 @@           ]   Termination -> Termination   MetaSubstThis{} -> error "impossible MetaSubstThis!"+  MetaContextualize{} -> error "impossible MetaContextualize!"   MetaObject{} -> error "impossible MetaObject!"   MetaTailContext{} -> error "impossible MetaTailContext!"   MetaFunction{} -> error "impossible MetaFunction!"
src/Language/EO/Phi/Rules/PhiPaper.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} module Language.EO.Phi.Rules.PhiPaper where  import Control.Monad (guard)
src/Language/EO/Phi/Rules/RunYegor.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} module Language.EO.Phi.Rules.RunYegor where  import Language.EO.Phi.Dataize.Context
src/Language/EO/Phi/Rules/Yaml.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-}@@ -215,6 +238,7 @@   MetaFunction _ obj -> objectLabelIds obj   MetaTailContext obj _ -> objectLabelIds obj   MetaSubstThis obj obj' -> objectLabelIds obj <> objectLabelIds obj'+  MetaContextualize obj obj' -> objectLabelIds obj <> objectLabelIds obj'  bindingLabelIds :: Binding -> Set LabelId bindingLabelIds = \case@@ -258,6 +282,7 @@ objectMetaIds (MetaFunction _ obj) = objectMetaIds obj objectMetaIds (MetaTailContext obj x) = objectMetaIds obj <> Set.singleton (MetaIdTail x) objectMetaIds (MetaSubstThis obj obj') = foldMap objectMetaIds [obj, obj']+objectMetaIds (MetaContextualize obj obj') = foldMap objectMetaIds [obj, obj']  bindingMetaIds :: Binding -> Set MetaId bindingMetaIds (AlphaBinding attr obj) = attrMetaIds attr <> objectMetaIds obj@@ -286,6 +311,7 @@ objectHasMetavars (MetaFunction _ _) = True objectHasMetavars MetaTailContext{} = True objectHasMetavars (MetaSubstThis _ _) = True -- technically not a metavar, but a substitution+objectHasMetavars (MetaContextualize _ _) = True  bindingHasMetavars :: Binding -> Bool bindingHasMetavars (AlphaBinding attr obj) = attrHasMetavars attr || objectHasMetavars obj@@ -405,7 +431,8 @@   ThisObject -> ThisObject   obj@(MetaObject x) -> fromMaybe obj $ lookup x objectMetas   Termination -> Termination-  MetaSubstThis obj thisObj -> MetaSubstThis (applySubst subst thisObj) (applySubst subst obj)+  MetaSubstThis obj thisObj -> MetaSubstThis (applySubst subst obj) (applySubst subst thisObj)+  MetaContextualize obj thisObj -> MetaContextualize (applySubst subst obj) (applySubst subst thisObj)   obj@MetaFunction{} -> obj   MetaTailContext obj c ->     case lookup c contextMetas of@@ -483,6 +510,7 @@     Termination -> []     -- should cases below be errors?     MetaSubstThis{} -> []+    MetaContextualize{} -> []     MetaObject{} -> []     MetaTailContext{} -> []     MetaFunction{} -> []@@ -506,6 +534,7 @@ evaluateMetaFuncs' (Application obj bindings) = Application <$> evaluateMetaFuncs' obj <*> mapM evaluateMetaFuncsBinding bindings evaluateMetaFuncs' (ObjectDispatch obj a) = ObjectDispatch <$> evaluateMetaFuncs' obj <*> pure a evaluateMetaFuncs' (MetaSubstThis obj thisObj) = evaluateMetaFuncs' (substThis thisObj obj)+evaluateMetaFuncs' (MetaContextualize obj thisObj) = evaluateMetaFuncs' (contextualize thisObj obj) evaluateMetaFuncs' obj = pure obj  evaluateMetaFuncsBinding :: Binding -> State MetaState Binding@@ -588,6 +617,7 @@     GlobalObject -> GlobalObject     Termination -> Termination     obj@MetaTailContext{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)+    obj@MetaContextualize{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)     obj@MetaSubstThis{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)     obj@MetaObject{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)     obj@MetaFunction{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)@@ -605,3 +635,29 @@   LambdaBinding bytes -> LambdaBinding bytes   b@MetaBindings{} -> error ("impossible: trying to substitute ξ in " <> printTree b)   b@MetaDeltaBinding{} -> error ("impossible: trying to substitute ξ in " <> printTree b)++contextualize :: Object -> Object -> Object+contextualize thisObj = go+ where+  go = \case+    ThisObject -> thisObj -- ξ is substituted+    obj@(Formation _bindings) -> obj+    ObjectDispatch obj a -> ObjectDispatch (go obj) a+    Application obj bindings -> Application (go obj) (map (contextualizeBinding thisObj) bindings)+    GlobalObject -> GlobalObject -- TODO: Change to what GlobalObject is attached to+    Termination -> Termination+    obj@MetaTailContext{} -> error ("impossible: trying to contextualize " <> printTree obj)+    obj@MetaContextualize{} -> error ("impossible: trying to contextualize " <> printTree obj)+    obj@MetaSubstThis{} -> error ("impossible: trying to contextualize " <> printTree obj)+    obj@MetaObject{} -> error ("impossible: trying to contextualize " <> printTree obj)+    obj@MetaFunction{} -> error ("impossible: trying to contextualize " <> printTree obj)++contextualizeBinding :: Object -> Binding -> Binding+contextualizeBinding obj = \case+  AlphaBinding a obj' -> AlphaBinding a (contextualize obj obj')+  EmptyBinding a -> EmptyBinding a+  DeltaBinding bytes -> DeltaBinding bytes+  DeltaEmptyBinding -> DeltaEmptyBinding+  LambdaBinding bytes -> LambdaBinding bytes+  b@MetaBindings{} -> error ("impossible: trying to contextualize " <> printTree b)+  b@MetaDeltaBinding{} -> error ("impossible: trying to contextualize " <> printTree b)
src/Language/EO/Phi/Syntax.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE LambdaCase #-} {-# OPTIONS_GHC -Wno-orphans #-} 
src/Language/EO/Phi/Syntax/Abs.hs view
@@ -1,3 +1,36 @@+{-+Copyright EO/Polystat Development Team (c) 2023++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of EO/Polystat Development Team nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}+ -- File generated by the BNF Converter (bnfc 2.9.5).  {-# LANGUAGE DeriveDataTypeable #-}@@ -34,6 +67,7 @@     | ThisObject     | Termination     | MetaSubstThis Object Object+    | MetaContextualize Object Object     | MetaObject ObjectMetaId     | MetaTailContext Object TailMetaId     | MetaFunction MetaFunctionName Object
src/Language/EO/Phi/Syntax/Lex.hs view
@@ -27,20836 +27,20841 @@ alex_tab_size :: Int alex_tab_size = 8 alex_base :: Array Int Int-alex_base = listArray (0 :: Int, 151)-  [ -8-  , -153-  , -159-  , 91-  , 219-  , 475-  , 594-  , 0-  , 0-  , 0-  , 707-  , -73-  , 771-  , -150-  , -156-  , 899-  , 1027-  , 1283-  , 1402-  , 0-  , 0-  , 0-  , 1515-  , 1580-  , 1644-  , -147-  , -152-  , 1772-  , 1900-  , 2156-  , 2275-  , 2403-  , 0-  , 0-  , 0-  , 2452-  , 2517-  , 2581-  , -146-  , -113-  , -28-  , 2709-  , 2773-  , 140-  , -27-  , 593-  , 623-  , 646-  , 1272-  , -144-  , 472-  , -140-  , -138-  , 2837-  , 2965-  , 3221-  , 3340-  , 0-  , 0-  , 0-  , 3453-  , 3518-  , 3582-  , -139-  , -136-  , 3710-  , 3838-  , 4094-  , 4213-  , 4341-  , 4485-  , 8-  , 0-  , 4566-  , 4822-  , 4823-  , 4951-  , 4416-  , 5016-  , 5129-  , 0-  , 0-  , 0-  , 0-  , 5343-  , 5557-  , 5813-  , 5814-  , 5942-  , 5199-  , 5409-  , 6055-  , 0-  , 0-  , 0-  , 6245-  , 605-  , 0-  , -142-  , -122-  , -98-  , 0-  , 6-  , 6389-  , 6634-  , 6879-  , 7115-  , 7371-  , 7372-  , 7500-  , -114-  , -105-  , 6325-  , 6571-  , 7613-  , 0-  , 0-  , 0-  , 7869-  , 8105-  , 8361-  , 8362-  , 8490-  , -80-  , -75-  , 6815-  , 7806-  , 8603-  , 0-  , 0-  , 0-  , 1373-  , 0-  , 1418-  , 8850-  , -44-  , 9106-  , 9107-  , 9235-  , 17-  , -43-  , 9299-  , 9364-  , 9477-  , 0-  , 0-  , 0-  , 0-  , 0-  , 9541-  , 9606-  , 9719-  ]--alex_table :: Array Int Int-alex_table = listArray (0 :: Int, 9974)-  [ 0-  , 96-  , 96-  , 96-  , 96-  , 96-  , 2-  , -1-  , -1-  , 14-  , -1-  , -1-  , 26-  , 52-  , -1-  , -1-  , 97-  , 43-  , 46-  , 97-  , 64-  , 97-  , 97-  , 97-  , 96-  , 95-  , 97-  , 97-  , -1-  , -1-  , -1-  , -1-  , 97-  , 97-  , 97-  , 97-  , 97-  , 102-  , 97-  , 71-  , 45-  , 45-  , 45-  , 45-  , 45-  , 45-  , 45-  , 45-  , 45-  , 45-  , 85-  , 101-  , -1-  , -1-  , 110-  , 73-  , 68-  , 104-  , 104-  , 104-  , 104-  , 104-  , 104-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 97-  , 123-  , 97-  , -1-  , -1-  , 134-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 97-  , 139-  , 97-  , 12-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 41-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 48-  , 39-  , 0-  , 0-  , 0-  , 0-  , 0-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 50-  , 4-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 5-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 49-  , -1-  , 100-  , 0-  , 98-  , 0-  , 0-  , 0-  , 96-  , 96-  , 96-  , 96-  , 96-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 51-  , 0-  , -1-  , -1-  , -1-  , 99-  , 96-  , -1-  , -1-  , -1-  , 40-  , 40-  , 40-  , 40-  , 40-  , 40-  , 40-  , 40-  , 40-  , 40-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 40-  , 40-  , 40-  , 40-  , 40-  , 40-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 44-  , 44-  , 44-  , 44-  , 44-  , 44-  , 44-  , 44-  , 44-  , 44-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 44-  , 44-  , 44-  , 44-  , 44-  , 44-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 5-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 147-  , 149-  , 4-  , 72-  , 1-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 72-  , 150-  , 3-  , 148-  , 148-  , 148-  , 151-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 11-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 16-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 17-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 97-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 97-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 133-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 97-  , -1-  , -1-  , 97-  , 0-  , 0-  , -1-  , 132-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 131-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 17-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 9-  , 12-  , 16-  , 8-  , 13-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 8-  , 11-  , 15-  , 7-  , 7-  , 7-  , 10-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 23-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 24-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 28-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 29-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 29-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 21-  , 24-  , 28-  , 20-  , 25-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 20-  , 23-  , 27-  , 19-  , 19-  , 19-  , 22-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 0-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 0-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 36-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 37-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 0-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 54-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 55-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 55-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 34-  , 37-  , 54-  , 33-  , 38-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 33-  , 36-  , 53-  , 32-  , 32-  , 32-  , 35-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 61-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 62-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 66-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 67-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 67-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 59-  , 62-  , 66-  , 58-  , 63-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 58-  , 61-  , 65-  , 57-  , 57-  , 57-  , 60-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 0-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , -1-  , 0-  , 0-  , 0-  , 70-  , 0-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , 70-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 69-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 74-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 77-  , 75-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 78-  , 76-  , 82-  , 82-  , 82-  , 79-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 74-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 80-  , 75-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 81-  , 77-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 78-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 84-  , 0-  , 0-  , 0-  , 0-  , 83-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 86-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 89-  , 87-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 90-  , 88-  , 94-  , 94-  , 94-  , 91-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 84-  , 89-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 86-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 89-  , 87-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 90-  , 88-  , 94-  , 94-  , 94-  , 91-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 86-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 92-  , 87-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 93-  , 90-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 18-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 30-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 6-  , 0-  , 0-  , 0-  , 0-  , 56-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 0-  , 0-  , 106-  , 106-  , 0-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 0-  , 0-  , 106-  , 106-  , 106-  , 106-  , 106-  , 70-  , 0-  , 0-  , 106-  , 106-  , 0-  , 0-  , 0-  , 106-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 0-  , 106-  , 106-  , 106-  , 135-  , 106-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 106-  , 0-  , 106-  , 103-  , 106-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 0-  , 0-  , 106-  , 106-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 107-  , 42-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 112-  , 108-  , 116-  , 111-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 113-  , 109-  , 117-  , 117-  , 117-  , 114-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 0-  , 0-  , 106-  , 106-  , 0-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 0-  , 0-  , 106-  , 106-  , 106-  , 106-  , 106-  , 70-  , 0-  , 0-  , 106-  , 106-  , 0-  , 0-  , 0-  , 106-  , 105-  , 105-  , 105-  , 105-  , 105-  , 105-  , 105-  , 105-  , 105-  , 105-  , 0-  , 0-  , 106-  , 106-  , 106-  , 0-  , 106-  , 105-  , 105-  , 105-  , 105-  , 105-  , 105-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 106-  , 0-  , 106-  , 103-  , 106-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 0-  , 0-  , 106-  , 106-  , 112-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 107-  , 42-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 112-  , 108-  , 116-  , 111-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 113-  , 109-  , 117-  , 117-  , 117-  , 114-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 0-  , 0-  , 106-  , 106-  , 0-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 106-  , 0-  , 0-  , 106-  , 106-  , 106-  , 106-  , 106-  , 70-  , 0-  , 0-  , 106-  , 106-  , 0-  , 43-  , 0-  , 106-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 0-  , 106-  , 106-  , 106-  , 0-  , 106-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 106-  , 0-  , 106-  , 103-  , 106-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 103-  , 0-  , 0-  , 0-  , 106-  , 106-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 107-  , 42-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 112-  , 108-  , 116-  , 111-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 113-  , 109-  , 117-  , 117-  , 117-  , 114-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 107-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 112-  , 108-  , 116-  , 111-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 113-  , 109-  , 117-  , 117-  , 117-  , 114-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 107-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 115-  , 108-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 116-  , 113-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 0-  , 0-  , 119-  , 119-  , 0-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 0-  , 0-  , 119-  , 119-  , 119-  , 119-  , 119-  , 70-  , 0-  , 0-  , 119-  , 119-  , 0-  , 119-  , 0-  , 119-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 0-  , 0-  , 119-  , 119-  , 119-  , 0-  , 119-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 0-  , 119-  , 0-  , 119-  , 118-  , 119-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 118-  , 0-  , 0-  , 0-  , 119-  , 119-  , 125-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 120-  , 31-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 125-  , 121-  , 129-  , 124-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 126-  , 122-  , 130-  , 130-  , 130-  , 127-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 120-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 125-  , 121-  , 129-  , 124-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 126-  , 122-  , 130-  , 130-  , 130-  , 127-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 120-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 128-  , 121-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 129-  , 126-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 136-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 141-  , 137-  , 145-  , 140-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 142-  , 138-  , 146-  , 146-  , 146-  , 143-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 136-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 144-  , 137-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , 145-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 141-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 142-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 149-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 150-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  ]--alex_check :: Array Int Int-alex_check = listArray (0 :: Int, 9974)-  [ -1-  , 9-  , 10-  , 11-  , 12-  , 13-  , 159-  , 166-  , 167-  , 159-  , 166-  , 167-  , 159-  , 159-  , 166-  , 167-  , 129-  , 45-  , 45-  , 141-  , 159-  , 134-  , 166-  , 165-  , 32-  , 33-  , 166-  , 167-  , 166-  , 167-  , 166-  , 167-  , 40-  , 41-  , 42-  , 133-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 42-  , 45-  , 166-  , 167-  , 159-  , 47-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 159-  , 93-  , 166-  , 167-  , 132-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 159-  , 125-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 166-  , 167-  , -1-  , -1-  , 195-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 206-  , 207-  , -1-  , -1-  , -1-  , -1-  , -1-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 226-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , 134-  , 13-  , 136-  , -1-  , 138-  , -1-  , -1-  , -1-  , 9-  , 10-  , 11-  , 12-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , 159-  , -1-  , 39-  , 40-  , 41-  , 164-  , 32-  , 44-  , 45-  , 46-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , 148-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , 166-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , 177-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 187-  , 58-  , 59-  , 190-  , -1-  , -1-  , 63-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , -1-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , -1-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , -1-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 39-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 10-  , -1-  , -1-  , -1-  , 95-  , -1-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 195-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 42-  , -1-  , -1-  , -1-  , -1-  , 47-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 42-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 66-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 98-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 116-  , -1-  , -1-  , -1-  , -1-  , 121-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , -1-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , 207-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , -1-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , -1-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , 45-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , -1-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , 45-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , -1-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , -1-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  ]--alex_deflt :: Array Int Int-alex_deflt = listArray (0 :: Int, 151)-  [ -1-  , 147-  , 6-  , -1-  , -1-  , 6-  , 6-  , 8-  , 9-  , 18-  , 8-  , 9-  , 18-  , 9-  , 18-  , -1-  , -1-  , 18-  , 18-  , 20-  , 21-  , 30-  , 20-  , 21-  , 30-  , 21-  , 30-  , -1-  , -1-  , 30-  , 30-  , 119-  , 33-  , 34-  , 56-  , 33-  , 34-  , 56-  , 34-  , -1-  , -1-  , -1-  , 106-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 56-  , -1-  , -1-  , 56-  , 56-  , 58-  , 59-  , 68-  , 58-  , 59-  , 68-  , 59-  , 68-  , -1-  , -1-  , 68-  , 68-  , -1-  , -1-  , -1-  , 147-  , 73-  , 73-  , -1-  , -1-  , 73-  , 80-  , 81-  , 73-  , 80-  , 81-  , -1-  , 85-  , 85-  , 85-  , -1-  , -1-  , 85-  , 92-  , 93-  , 85-  , 92-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 106-  , 106-  , -1-  , -1-  , 106-  , 115-  , 106-  , 115-  , 116-  , 106-  , 115-  , 116-  , -1-  , 119-  , 119-  , -1-  , -1-  , 119-  , 128-  , 119-  , 128-  , 129-  , 119-  , 128-  , 129-  , -1-  , -1-  , -1-  , 134-  , -1-  , 134-  , -1-  , -1-  , 134-  , 144-  , 134-  , 144-  , 145-  , 134-  , 144-  , 145-  , 6-  , 72-  , 6-  , 147-  , 72-  ]--alex_accept = listArray (0 :: Int, 151)-  [ AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 18-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 17-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 16-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 15-  , AlexAcc 14-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 13-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 12-  , AlexAccNone-  , AlexAcc 11-  , AlexAccNone-  , AlexAccNone-  , AlexAccSkip-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccSkip-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccSkip-  , AlexAcc 10-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 9-  , AlexAccNone-  , AlexAcc 8-  , AlexAcc 7-  , AlexAcc 6-  , AlexAcc 5-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 4-  , AlexAcc 3-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 2-  , AlexAcc 1-  , AlexAccNone-  , AlexAcc 0-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  ]--alex_actions = array (0 :: Int, 19)-  [ (18,alex_action_9)-  , (17,alex_action_10)-  , (16,alex_action_11)-  , (15,alex_action_4)-  , (14,alex_action_4)-  , (13,alex_action_12)-  , (12,alex_action_13)-  , (11,alex_action_14)-  , (10,alex_action_3)-  , (9,alex_action_4)-  , (8,alex_action_5)-  , (7,alex_action_5)-  , (6,alex_action_5)-  , (5,alex_action_5)-  , (4,alex_action_6)-  , (3,alex_action_6)-  , (2,alex_action_7)-  , (1,alex_action_7)-  , (0,alex_action_8)-  ]--alex_action_3 = tok (eitherResIdent TV)-alex_action_4 = tok (eitherResIdent T_Bytes)-alex_action_5 = tok (eitherResIdent T_Function)-alex_action_6 = tok (eitherResIdent T_LabelId)-alex_action_7 = tok (eitherResIdent T_AlphaIndex)-alex_action_8 = tok (eitherResIdent T_LabelMetaId)-alex_action_9 = tok (eitherResIdent T_TailMetaId)-alex_action_10 = tok (eitherResIdent T_BindingsMetaId)-alex_action_11 = tok (eitherResIdent T_ObjectMetaId)-alex_action_12 = tok (eitherResIdent T_BytesMetaId)-alex_action_13 = tok (eitherResIdent T_MetaFunctionName)-alex_action_14 = tok (eitherResIdent TV)--#define ALEX_NOPRED 1--- -------------------------------------------------------------------------------- ALEX TEMPLATE------ This code is in the PUBLIC DOMAIN; you may copy it freely and use--- it for any purpose whatsoever.---- -------------------------------------------------------------------------------- INTERNALS and main scanner engine--#ifdef ALEX_GHC-#  define ILIT(n) n#-#  define IBOX(n) (I# (n))-#  define FAST_INT Int#--- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#  if __GLASGOW_HASKELL__ > 706-#    define GTE(n,m) (tagToEnum# (n >=# m))-#    define EQ(n,m) (tagToEnum# (n ==# m))-#  else-#    define GTE(n,m) (n >=# m)-#    define EQ(n,m) (n ==# m)-#  endif-#  define PLUS(n,m) (n +# m)-#  define MINUS(n,m) (n -# m)-#  define TIMES(n,m) (n *# m)-#  define NEGATE(n) (negateInt# (n))-#  define IF_GHC(x) (x)-#else-#  define ILIT(n) (n)-#  define IBOX(n) (n)-#  define FAST_INT Int-#  define GTE(n,m) (n >= m)-#  define EQ(n,m) (n == m)-#  define PLUS(n,m) (n + m)-#  define MINUS(n,m) (n - m)-#  define TIMES(n,m) (n * m)-#  define NEGATE(n) (negate (n))-#  define IF_GHC(x)-#endif--#ifdef ALEX_GHC-data AlexAddr = AlexA# Addr#--- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ < 503-uncheckedShiftL# = shiftL#-#endif--{-# INLINE alexIndexInt16OffAddr #-}-alexIndexInt16OffAddr :: AlexAddr -> Int# -> Int#-alexIndexInt16OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN-  narrow16Int# i-  where-        i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)-        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-        low  = int2Word# (ord# (indexCharOffAddr# arr off'))-        off' = off *# 2#-#else-#if __GLASGOW_HASKELL__ >= 901-  int16ToInt#-#endif-    (indexInt16OffAddr# arr off)-#endif-#else-alexIndexInt16OffAddr arr off = arr ! off-#endif--#ifdef ALEX_GHC-{-# INLINE alexIndexInt32OffAddr #-}-alexIndexInt32OffAddr :: AlexAddr -> Int# -> Int#-alexIndexInt32OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN-  narrow32Int# i-  where-   i    = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`-                     (b2 `uncheckedShiftL#` 16#) `or#`-                     (b1 `uncheckedShiftL#` 8#) `or#` b0)-   b3   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))-   b2   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))-   b1   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-   b0   = int2Word# (ord# (indexCharOffAddr# arr off'))-   off' = off *# 4#-#else-#if __GLASGOW_HASKELL__ >= 901-  int32ToInt#-#endif-    (indexInt32OffAddr# arr off)-#endif-#else-alexIndexInt32OffAddr arr off = arr ! off-#endif--#ifdef ALEX_GHC--#if __GLASGOW_HASKELL__ < 503-quickIndex arr i = arr ! i-#else--- GHC >= 503, unsafeAt is available from Data.Array.Base.-quickIndex = unsafeAt-#endif-#else-quickIndex arr i = arr ! i-#endif---- -------------------------------------------------------------------------------- Main lexing routines--data AlexReturn a-  = AlexEOF-  | AlexError  !AlexInput-  | AlexSkip   !AlexInput !Int-  | AlexToken  !AlexInput !Int a---- alexScan :: AlexInput -> StartCode -> AlexReturn a-alexScan input__ IBOX(sc)-  = alexScanUser undefined input__ IBOX(sc)--alexScanUser user__ input__ IBOX(sc)-  = case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of-  (AlexNone, input__') ->-    case alexGetByte input__ of-      Nothing ->-#ifdef ALEX_DEBUG-                                   trace ("End of input.") $-#endif-                                   AlexEOF-      Just _ ->-#ifdef ALEX_DEBUG-                                   trace ("Error.") $-#endif-                                   AlexError input__'--  (AlexLastSkip input__'' len, _) ->-#ifdef ALEX_DEBUG-    trace ("Skipping.") $-#endif-    AlexSkip input__'' len--  (AlexLastAcc k input__''' len, _) ->-#ifdef ALEX_DEBUG-    trace ("Accept.") $-#endif-    AlexToken input__''' len (alex_actions ! k)----- Push the input through the DFA, remembering the most recent accepting--- state it encountered.--alex_scan_tkn user__ orig_input len input__ s last_acc =-  input__ `seq` -- strict in the input-  let-  new_acc = (check_accs (alex_accept `quickIndex` IBOX(s)))-  in-  new_acc `seq`-  case alexGetByte input__ of-     Nothing -> (new_acc, input__)-     Just (c, new_input) ->-#ifdef ALEX_DEBUG-      trace ("State: " ++ show IBOX(s) ++ ", char: " ++ show c) $-#endif-      case fromIntegral c of { IBOX(ord_c) ->-        let-                base   = alexIndexInt32OffAddr alex_base s-                offset = PLUS(base,ord_c)--                new_s = if GTE(offset,ILIT(0))-                          && let check  = alexIndexInt16OffAddr alex_check offset-                             in  EQ(check,ord_c)-                          then alexIndexInt16OffAddr alex_table offset-                          else alexIndexInt16OffAddr alex_deflt s-        in-        case new_s of-            ILIT(-1) -> (new_acc, input__)-                -- on an error, we want to keep the input *before* the-                -- character that failed, not after.-            _ -> alex_scan_tkn user__ orig_input-#ifdef ALEX_LATIN1-                   PLUS(len,ILIT(1))-                   -- issue 119: in the latin1 encoding, *each* byte is one character-#else-                   (if c < 0x80 || c >= 0xC0 then PLUS(len,ILIT(1)) else len)-                   -- note that the length is increased ONLY if this is the 1st byte in a char encoding)-#endif-                   new_input new_s new_acc-      }-  where-        check_accs (AlexAccNone) = last_acc-        check_accs (AlexAcc a  ) = AlexLastAcc a input__ IBOX(len)-        check_accs (AlexAccSkip) = AlexLastSkip  input__ IBOX(len)-#ifndef ALEX_NOPRED-        check_accs (AlexAccPred a predx rest)-           | predx user__ orig_input IBOX(len) input__-           = AlexLastAcc a input__ IBOX(len)-           | otherwise-           = check_accs rest-        check_accs (AlexAccSkipPred predx rest)-           | predx user__ orig_input IBOX(len) input__-           = AlexLastSkip input__ IBOX(len)-           | otherwise-           = check_accs rest-#endif--data AlexLastAcc-  = AlexNone-  | AlexLastAcc !Int !AlexInput !Int-  | AlexLastSkip     !AlexInput !Int--data AlexAcc user-  = AlexAccNone-  | AlexAcc Int-  | AlexAccSkip-#ifndef ALEX_NOPRED-  | AlexAccPred Int (AlexAccPred user) (AlexAcc user)-  | AlexAccSkipPred (AlexAccPred user) (AlexAcc user)--type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool---- -------------------------------------------------------------------------------- Predicates on a rule--alexAndPred p1 p2 user__ in1 len in2-  = p1 user__ in1 len in2 && p2 user__ in1 len in2----alexPrevCharIsPred :: Char -> AlexAccPred _-alexPrevCharIs c _ input__ _ _ = c == alexInputPrevChar input__--alexPrevCharMatches f _ input__ _ _ = f (alexInputPrevChar input__)----alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _-alexPrevCharIsOneOf arr _ input__ _ _ = arr ! alexInputPrevChar input__----alexRightContext :: Int -> AlexAccPred _-alexRightContext IBOX(sc) user__ _ _ input__ =-     case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of-          (AlexNone, _) -> False-          _ -> True-        -- TODO: there's no need to find the longest-        -- match when checking the right context, just-        -- the first match will do.-#endif-{-# LINE 92 "Lex.x" #-}--- | Create a token with position.-tok :: (String -> Tok) -> (Posn -> String -> Token)-tok f p = PT p . f---- | Token without position.-data Tok-  = TK {-# UNPACK #-} !TokSymbol  -- ^ Reserved word or symbol.-  | TL !String                    -- ^ String literal.-  | TI !String                    -- ^ Integer literal.-  | TV !String                    -- ^ Identifier.-  | TD !String                    -- ^ Float literal.-  | TC !String                    -- ^ Character literal.-  | T_Bytes !String-  | T_Function !String-  | T_LabelId !String-  | T_AlphaIndex !String-  | T_LabelMetaId !String-  | T_TailMetaId !String-  | T_BindingsMetaId !String-  | T_ObjectMetaId !String-  | T_BytesMetaId !String-  | T_MetaFunctionName !String-  deriving (Eq, Show, Ord)---- | Smart constructor for 'Tok' for the sake of backwards compatibility.-pattern TS :: String -> Int -> Tok-pattern TS t i = TK (TokSymbol t i)---- | Keyword or symbol tokens have a unique ID.-data TokSymbol = TokSymbol-  { tsText :: String-      -- ^ Keyword or symbol text.-  , tsID   :: !Int-      -- ^ Unique ID.-  } deriving (Show)---- | Keyword/symbol equality is determined by the unique ID.-instance Eq  TokSymbol where (==)    = (==)    `on` tsID---- | Keyword/symbol ordering is determined by the unique ID.-instance Ord TokSymbol where compare = compare `on` tsID---- | Token with position.-data Token-  = PT  Posn Tok-  | Err Posn-  deriving (Eq, Show, Ord)---- | Pretty print a position.-printPosn :: Posn -> String-printPosn (Pn _ l c) = "line " ++ show l ++ ", column " ++ show c---- | Pretty print the position of the first token in the list.-tokenPos :: [Token] -> String-tokenPos (t:_) = printPosn (tokenPosn t)-tokenPos []    = "end of file"---- | Get the position of a token.-tokenPosn :: Token -> Posn-tokenPosn (PT p _) = p-tokenPosn (Err p)  = p---- | Get line and column of a token.-tokenLineCol :: Token -> (Int, Int)-tokenLineCol = posLineCol . tokenPosn---- | Get line and column of a position.-posLineCol :: Posn -> (Int, Int)-posLineCol (Pn _ l c) = (l,c)---- | Convert a token into "position token" form.-mkPosToken :: Token -> ((Int, Int), String)-mkPosToken t = (tokenLineCol t, tokenText t)---- | Convert a token to its text.-tokenText :: Token -> String-tokenText t = case t of-  PT _ (TS s _) -> s-  PT _ (TL s)   -> show s-  PT _ (TI s)   -> s-  PT _ (TV s)   -> s-  PT _ (TD s)   -> s-  PT _ (TC s)   -> s-  Err _         -> "#error"-  PT _ (T_Bytes s) -> s-  PT _ (T_Function s) -> s-  PT _ (T_LabelId s) -> s-  PT _ (T_AlphaIndex s) -> s-  PT _ (T_LabelMetaId s) -> s-  PT _ (T_TailMetaId s) -> s-  PT _ (T_BindingsMetaId s) -> s-  PT _ (T_ObjectMetaId s) -> s-  PT _ (T_BytesMetaId s) -> s-  PT _ (T_MetaFunctionName s) -> s---- | Convert a token to a string.-prToken :: Token -> String-prToken t = tokenText t---- | Finite map from text to token organized as binary search tree.-data BTree-  = N -- ^ Nil (leaf).-  | B String Tok BTree BTree-      -- ^ Binary node.-  deriving (Show)---- | Convert potential keyword into token or use fallback conversion.-eitherResIdent :: (String -> Tok) -> String -> Tok-eitherResIdent tv s = treeFind resWords-  where-  treeFind N = tv s-  treeFind (B a t left right) =-    case compare s a of-      LT -> treeFind left-      GT -> treeFind right-      EQ -> t---- | The keywords and symbols of the language organized as binary search tree.-resWords :: BTree-resWords =-  b "\934" 11-    (b "[" 6-       (b "*" 3 (b ")" 2 (b "(" 1 N N) N) (b "." 5 (b "," 4 N N) N))-       (b "}" 9 (b "{" 8 (b "]" 7 N N) N) (b "\916" 10 N N)))-    (b "\8709" 17-       (b "\961" 14-          (b "\958" 13 (b "\955" 12 N N) N)-          (b "\8614" 16 (b "\966" 15 N N) N))-       (b "\10215" 20-          (b "\10214" 19 (b "\8869" 18 N N) N) (b "\10509" 21 N N)))+alex_base = listArray (0 :: Int, 152)+  [ -8+  , 76+  , -73+  , 140+  , -153+  , -159+  , 268+  , 396+  , 652+  , 771+  , 0+  , 0+  , 0+  , 884+  , 949+  , 1013+  , -150+  , -156+  , 1141+  , 1269+  , 1525+  , 1644+  , 0+  , 0+  , 0+  , 1757+  , 1822+  , 1886+  , -147+  , -152+  , 2014+  , 2078+  , 2206+  , 2462+  , 2581+  , 0+  , 0+  , 0+  , 2694+  , 2759+  , 2823+  , -146+  , -29+  , 2951+  , 3015+  , 770+  , -28+  , 800+  , 823+  , 1643+  , -111+  , 1538+  , -145+  , 50+  , -140+  , -138+  , 3079+  , 3207+  , 3463+  , 3582+  , 0+  , 0+  , 0+  , 3695+  , 3760+  , 3824+  , -139+  , -136+  , 3952+  , 4080+  , 4336+  , 4455+  , 4583+  , 4727+  , 8+  , 0+  , 4808+  , 5064+  , 5065+  , 5193+  , 4658+  , 5258+  , 5371+  , 0+  , 0+  , 0+  , 0+  , 5585+  , 5799+  , 6055+  , 6056+  , 6184+  , 5441+  , 5651+  , 6297+  , 0+  , 0+  , 0+  , 6487+  , 183+  , 0+  , -143+  , -122+  , -85+  , -98+  , 0+  , 9+  , 6631+  , 6876+  , 7121+  , 7357+  , 7613+  , 7614+  , 7742+  , -80+  , -106+  , 6567+  , 6813+  , 7855+  , 0+  , 0+  , 0+  , 8111+  , 8347+  , 8603+  , 8604+  , 8732+  , 34+  , -75+  , 7057+  , 8048+  , 8845+  , 0+  , 0+  , 0+  , 737+  , 0+  , 1610+  , 9092+  , -44+  , 9348+  , 9349+  , 9477+  , 36+  , -43+  , 9541+  , 9606+  , 9719+  , 0+  , 0+  , 0+  , 0+  , 0+  ]++alex_table :: Array Int Int+alex_table = listArray (0 :: Int, 9974)+  [ 0+  , 99+  , 99+  , 99+  , 99+  , 99+  , 5+  , -1+  , -1+  , 17+  , -1+  , -1+  , 29+  , 55+  , -1+  , -1+  , 45+  , 48+  , 100+  , 100+  , 67+  , 100+  , 100+  , 100+  , 99+  , 98+  , 100+  , 100+  , -1+  , -1+  , -1+  , -1+  , 100+  , 100+  , 100+  , 100+  , 100+  , 106+  , 100+  , 74+  , 47+  , 47+  , 47+  , 47+  , 47+  , 47+  , 47+  , 47+  , 47+  , 47+  , 88+  , 100+  , 100+  , 114+  , 105+  , 76+  , 71+  , 108+  , 108+  , 108+  , 108+  , 108+  , 108+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 100+  , 127+  , 100+  , -1+  , -1+  , 138+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 100+  , 143+  , 100+  , 3+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 52+  , 0+  , 104+  , 43+  , 101+  , 0+  , 103+  , 0+  , 99+  , 99+  , 99+  , 99+  , 99+  , 0+  , 51+  , 50+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 54+  , 0+  , 0+  , 0+  , 0+  , 102+  , 99+  , 0+  , 0+  , 53+  , 2+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 7+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 8+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 42+  , 42+  , 42+  , 42+  , 42+  , 42+  , 42+  , 42+  , 42+  , 42+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 42+  , 42+  , 42+  , 42+  , 42+  , 42+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 49+  , 49+  , 49+  , 49+  , 49+  , 49+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 8+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 151+  , 3+  , 7+  , 75+  , 4+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 2+  , 6+  , 152+  , 152+  , 152+  , 1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 14+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 15+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 19+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 20+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 136+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 135+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 100+  , 0+  , -1+  , -1+  , -1+  , 46+  , 46+  , 46+  , 46+  , 46+  , 46+  , 46+  , 46+  , 46+  , 46+  , 0+  , -1+  , -1+  , 100+  , 0+  , 0+  , -1+  , 46+  , 46+  , 46+  , 46+  , 46+  , 46+  , 0+  , 137+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 100+  , 0+  , 0+  , 100+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 20+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 12+  , 15+  , 19+  , 11+  , 16+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 11+  , 14+  , 18+  , 10+  , 10+  , 10+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 26+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 27+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 0+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 0+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 32+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 33+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 33+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 27+  , 32+  , 23+  , 28+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 23+  , 26+  , 31+  , 22+  , 22+  , 22+  , 25+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 40+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 0+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 57+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 58+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 40+  , 57+  , 36+  , 41+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 39+  , 56+  , 35+  , 35+  , 35+  , 38+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 64+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 65+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 69+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 70+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 70+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 62+  , 65+  , 69+  , 61+  , 66+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 61+  , 64+  , 68+  , 60+  , 60+  , 60+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 0+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , -1+  , 0+  , 0+  , 0+  , 73+  , 0+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , 73+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 72+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 77+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 80+  , 78+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 81+  , 79+  , 85+  , 85+  , 85+  , 82+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 77+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 83+  , 78+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 80+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 81+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 87+  , 0+  , 0+  , 0+  , 0+  , 86+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 89+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 92+  , 90+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 93+  , 91+  , 97+  , 97+  , 97+  , 94+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 87+  , 92+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 89+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 92+  , 90+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 93+  , 91+  , 97+  , 97+  , 97+  , 94+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 89+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 95+  , 90+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 96+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 21+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 34+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 9+  , 0+  , 0+  , 0+  , 0+  , 59+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 0+  , 0+  , 110+  , 110+  , 0+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 0+  , 0+  , 110+  , 110+  , 110+  , 110+  , 110+  , 73+  , 0+  , 0+  , 110+  , 110+  , 0+  , 0+  , 0+  , 110+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 0+  , 110+  , 110+  , 110+  , 139+  , 110+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 110+  , 0+  , 110+  , 107+  , 110+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 0+  , 0+  , 110+  , 110+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 111+  , 44+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 116+  , 112+  , 120+  , 115+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 117+  , 113+  , 121+  , 121+  , 121+  , 118+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 0+  , 0+  , 110+  , 110+  , 0+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 0+  , 0+  , 110+  , 110+  , 110+  , 110+  , 110+  , 73+  , 0+  , 0+  , 110+  , 110+  , 0+  , 0+  , 0+  , 110+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 0+  , 0+  , 110+  , 110+  , 110+  , 0+  , 110+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 110+  , 0+  , 110+  , 107+  , 110+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 0+  , 0+  , 110+  , 110+  , 116+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 111+  , 44+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 116+  , 112+  , 120+  , 115+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 117+  , 113+  , 121+  , 121+  , 121+  , 118+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 0+  , 0+  , 110+  , 110+  , 0+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 110+  , 0+  , 0+  , 110+  , 110+  , 110+  , 110+  , 110+  , 73+  , 0+  , 0+  , 110+  , 110+  , 0+  , 45+  , 0+  , 110+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 0+  , 110+  , 110+  , 110+  , 0+  , 110+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 110+  , 0+  , 110+  , 107+  , 110+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 107+  , 0+  , 0+  , 0+  , 110+  , 110+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 111+  , 44+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 116+  , 112+  , 120+  , 115+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 117+  , 113+  , 121+  , 121+  , 121+  , 118+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 111+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 116+  , 112+  , 120+  , 115+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 117+  , 113+  , 121+  , 121+  , 121+  , 118+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 111+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 119+  , 112+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 120+  , 117+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 0+  , 0+  , 123+  , 123+  , 0+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 123+  , 0+  , 0+  , 123+  , 123+  , 123+  , 123+  , 123+  , 73+  , 0+  , 0+  , 123+  , 123+  , 0+  , 123+  , 0+  , 123+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 0+  , 0+  , 123+  , 123+  , 123+  , 0+  , 123+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 0+  , 123+  , 0+  , 123+  , 122+  , 123+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 122+  , 0+  , 0+  , 0+  , 123+  , 123+  , 129+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 124+  , 30+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 129+  , 125+  , 133+  , 128+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 130+  , 126+  , 134+  , 134+  , 134+  , 131+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 124+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 129+  , 125+  , 133+  , 128+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 130+  , 126+  , 134+  , 134+  , 134+  , 131+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 124+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 132+  , 125+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 133+  , 130+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 140+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 145+  , 141+  , 149+  , 144+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 146+  , 142+  , 150+  , 150+  , 150+  , 147+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 140+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 148+  , 141+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , 149+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 145+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 146+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  ]++alex_check :: Array Int Int+alex_check = listArray (0 :: Int, 9974)+  [ -1+  , 9+  , 10+  , 11+  , 12+  , 13+  , 159+  , 166+  , 167+  , 159+  , 166+  , 167+  , 159+  , 159+  , 166+  , 167+  , 45+  , 45+  , 129+  , 141+  , 159+  , 166+  , 165+  , 134+  , 32+  , 33+  , 166+  , 167+  , 166+  , 167+  , 166+  , 167+  , 40+  , 41+  , 42+  , 133+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 42+  , 136+  , 137+  , 159+  , 45+  , 47+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 159+  , 93+  , 166+  , 167+  , 132+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 159+  , 125+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , 134+  , -1+  , 136+  , 195+  , 138+  , -1+  , 140+  , -1+  , 9+  , 10+  , 11+  , 12+  , 13+  , -1+  , 206+  , 207+  , 166+  , 167+  , 166+  , 167+  , -1+  , -1+  , -1+  , -1+  , -1+  , 159+  , -1+  , -1+  , -1+  , -1+  , 164+  , 32+  , -1+  , -1+  , 226+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , -1+  , 13+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , -1+  , 13+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , 148+  , -1+  , 44+  , 45+  , 46+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , 58+  , 59+  , 166+  , -1+  , -1+  , 63+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , -1+  , 177+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 187+  , -1+  , -1+  , 190+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , -1+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , -1+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , -1+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , -1+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , -1+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , -1+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , -1+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 39+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 10+  , -1+  , -1+  , -1+  , 95+  , -1+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 195+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 42+  , -1+  , -1+  , -1+  , -1+  , 47+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 42+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 66+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 98+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 116+  , -1+  , -1+  , -1+  , -1+  , 121+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , -1+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , 207+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , -1+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , -1+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , 45+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , -1+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , 45+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , -1+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , -1+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  ]++alex_deflt :: Array Int Int+alex_deflt = listArray (0 :: Int, 152)+  [ -1+  , 75+  , 151+  , 9+  , 151+  , 9+  , -1+  , -1+  , 9+  , 9+  , 11+  , 12+  , 21+  , 11+  , 12+  , 21+  , 12+  , 21+  , -1+  , -1+  , 21+  , 21+  , 23+  , 24+  , 34+  , 23+  , 24+  , 34+  , 24+  , 34+  , 123+  , -1+  , -1+  , 34+  , 34+  , 36+  , 37+  , 59+  , 36+  , 37+  , 59+  , 37+  , -1+  , -1+  , 110+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 59+  , -1+  , -1+  , 59+  , 59+  , 61+  , 62+  , 71+  , 61+  , 62+  , 71+  , 62+  , 71+  , -1+  , -1+  , 71+  , 71+  , -1+  , -1+  , -1+  , 151+  , 76+  , 76+  , -1+  , -1+  , 76+  , 83+  , 84+  , 76+  , 83+  , 84+  , -1+  , 88+  , 88+  , 88+  , -1+  , -1+  , 88+  , 95+  , 96+  , 88+  , 95+  , 96+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 110+  , 110+  , -1+  , -1+  , 110+  , 119+  , 110+  , 119+  , 120+  , 110+  , 119+  , 120+  , -1+  , 123+  , 123+  , -1+  , -1+  , 123+  , 132+  , 123+  , 132+  , 133+  , 123+  , 132+  , 133+  , -1+  , -1+  , -1+  , 138+  , -1+  , 138+  , -1+  , -1+  , 138+  , 148+  , 138+  , 148+  , 149+  , 138+  , 148+  , 149+  , 9+  , 75+  ]++alex_accept = listArray (0 :: Int, 152)+  [ AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 18+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 17+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 16+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 15+  , AlexAcc 14+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 13+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 12+  , AlexAccNone+  , AlexAcc 11+  , AlexAccNone+  , AlexAccNone+  , AlexAccSkip+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccSkip+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccSkip+  , AlexAcc 10+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 9+  , AlexAccNone+  , AlexAcc 8+  , AlexAcc 7+  , AlexAcc 6+  , AlexAcc 5+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 4+  , AlexAcc 3+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 2+  , AlexAcc 1+  , AlexAccNone+  , AlexAcc 0+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  ]++alex_actions = array (0 :: Int, 19)+  [ (18,alex_action_9)+  , (17,alex_action_10)+  , (16,alex_action_11)+  , (15,alex_action_4)+  , (14,alex_action_4)+  , (13,alex_action_12)+  , (12,alex_action_13)+  , (11,alex_action_14)+  , (10,alex_action_3)+  , (9,alex_action_4)+  , (8,alex_action_5)+  , (7,alex_action_5)+  , (6,alex_action_5)+  , (5,alex_action_5)+  , (4,alex_action_6)+  , (3,alex_action_6)+  , (2,alex_action_7)+  , (1,alex_action_7)+  , (0,alex_action_8)+  ]++alex_action_3 = tok (eitherResIdent TV)+alex_action_4 = tok (eitherResIdent T_Bytes)+alex_action_5 = tok (eitherResIdent T_Function)+alex_action_6 = tok (eitherResIdent T_LabelId)+alex_action_7 = tok (eitherResIdent T_AlphaIndex)+alex_action_8 = tok (eitherResIdent T_LabelMetaId)+alex_action_9 = tok (eitherResIdent T_TailMetaId)+alex_action_10 = tok (eitherResIdent T_BindingsMetaId)+alex_action_11 = tok (eitherResIdent T_ObjectMetaId)+alex_action_12 = tok (eitherResIdent T_BytesMetaId)+alex_action_13 = tok (eitherResIdent T_MetaFunctionName)+alex_action_14 = tok (eitherResIdent TV)++#define ALEX_NOPRED 1+-- -----------------------------------------------------------------------------+-- ALEX TEMPLATE+--+-- This code is in the PUBLIC DOMAIN; you may copy it freely and use+-- it for any purpose whatsoever.++-- -----------------------------------------------------------------------------+-- INTERNALS and main scanner engine++#ifdef ALEX_GHC+#  define ILIT(n) n#+#  define IBOX(n) (I# (n))+#  define FAST_INT Int#+-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.+#  if __GLASGOW_HASKELL__ > 706+#    define GTE(n,m) (tagToEnum# (n >=# m))+#    define EQ(n,m) (tagToEnum# (n ==# m))+#  else+#    define GTE(n,m) (n >=# m)+#    define EQ(n,m) (n ==# m)+#  endif+#  define PLUS(n,m) (n +# m)+#  define MINUS(n,m) (n -# m)+#  define TIMES(n,m) (n *# m)+#  define NEGATE(n) (negateInt# (n))+#  define IF_GHC(x) (x)+#else+#  define ILIT(n) (n)+#  define IBOX(n) (n)+#  define FAST_INT Int+#  define GTE(n,m) (n >= m)+#  define EQ(n,m) (n == m)+#  define PLUS(n,m) (n + m)+#  define MINUS(n,m) (n - m)+#  define TIMES(n,m) (n * m)+#  define NEGATE(n) (negate (n))+#  define IF_GHC(x)+#endif++#ifdef ALEX_GHC+data AlexAddr = AlexA# Addr#+-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.+#if __GLASGOW_HASKELL__ < 503+uncheckedShiftL# = shiftL#+#endif++{-# INLINE alexIndexInt16OffAddr #-}+alexIndexInt16OffAddr :: AlexAddr -> Int# -> Int#+alexIndexInt16OffAddr (AlexA# arr) off =+#ifdef WORDS_BIGENDIAN+  narrow16Int# i+  where+        i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)+        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))+        low  = int2Word# (ord# (indexCharOffAddr# arr off'))+        off' = off *# 2#+#else+#if __GLASGOW_HASKELL__ >= 901+  int16ToInt#+#endif+    (indexInt16OffAddr# arr off)+#endif+#else+alexIndexInt16OffAddr arr off = arr ! off+#endif++#ifdef ALEX_GHC+{-# INLINE alexIndexInt32OffAddr #-}+alexIndexInt32OffAddr :: AlexAddr -> Int# -> Int#+alexIndexInt32OffAddr (AlexA# arr) off =+#ifdef WORDS_BIGENDIAN+  narrow32Int# i+  where+   i    = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`+                     (b2 `uncheckedShiftL#` 16#) `or#`+                     (b1 `uncheckedShiftL#` 8#) `or#` b0)+   b3   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))+   b2   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))+   b1   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))+   b0   = int2Word# (ord# (indexCharOffAddr# arr off'))+   off' = off *# 4#+#else+#if __GLASGOW_HASKELL__ >= 901+  int32ToInt#+#endif+    (indexInt32OffAddr# arr off)+#endif+#else+alexIndexInt32OffAddr arr off = arr ! off+#endif++#ifdef ALEX_GHC++#if __GLASGOW_HASKELL__ < 503+quickIndex arr i = arr ! i+#else+-- GHC >= 503, unsafeAt is available from Data.Array.Base.+quickIndex = unsafeAt+#endif+#else+quickIndex arr i = arr ! i+#endif++-- -----------------------------------------------------------------------------+-- Main lexing routines++data AlexReturn a+  = AlexEOF+  | AlexError  !AlexInput+  | AlexSkip   !AlexInput !Int+  | AlexToken  !AlexInput !Int a++-- alexScan :: AlexInput -> StartCode -> AlexReturn a+alexScan input__ IBOX(sc)+  = alexScanUser undefined input__ IBOX(sc)++alexScanUser user__ input__ IBOX(sc)+  = case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of+  (AlexNone, input__') ->+    case alexGetByte input__ of+      Nothing ->+#ifdef ALEX_DEBUG+                                   trace ("End of input.") $+#endif+                                   AlexEOF+      Just _ ->+#ifdef ALEX_DEBUG+                                   trace ("Error.") $+#endif+                                   AlexError input__'++  (AlexLastSkip input__'' len, _) ->+#ifdef ALEX_DEBUG+    trace ("Skipping.") $+#endif+    AlexSkip input__'' len++  (AlexLastAcc k input__''' len, _) ->+#ifdef ALEX_DEBUG+    trace ("Accept.") $+#endif+    AlexToken input__''' len (alex_actions ! k)+++-- Push the input through the DFA, remembering the most recent accepting+-- state it encountered.++alex_scan_tkn user__ orig_input len input__ s last_acc =+  input__ `seq` -- strict in the input+  let+  new_acc = (check_accs (alex_accept `quickIndex` IBOX(s)))+  in+  new_acc `seq`+  case alexGetByte input__ of+     Nothing -> (new_acc, input__)+     Just (c, new_input) ->+#ifdef ALEX_DEBUG+      trace ("State: " ++ show IBOX(s) ++ ", char: " ++ show c) $+#endif+      case fromIntegral c of { IBOX(ord_c) ->+        let+                base   = alexIndexInt32OffAddr alex_base s+                offset = PLUS(base,ord_c)++                new_s = if GTE(offset,ILIT(0))+                          && let check  = alexIndexInt16OffAddr alex_check offset+                             in  EQ(check,ord_c)+                          then alexIndexInt16OffAddr alex_table offset+                          else alexIndexInt16OffAddr alex_deflt s+        in+        case new_s of+            ILIT(-1) -> (new_acc, input__)+                -- on an error, we want to keep the input *before* the+                -- character that failed, not after.+            _ -> alex_scan_tkn user__ orig_input+#ifdef ALEX_LATIN1+                   PLUS(len,ILIT(1))+                   -- issue 119: in the latin1 encoding, *each* byte is one character+#else+                   (if c < 0x80 || c >= 0xC0 then PLUS(len,ILIT(1)) else len)+                   -- note that the length is increased ONLY if this is the 1st byte in a char encoding)+#endif+                   new_input new_s new_acc+      }+  where+        check_accs (AlexAccNone) = last_acc+        check_accs (AlexAcc a  ) = AlexLastAcc a input__ IBOX(len)+        check_accs (AlexAccSkip) = AlexLastSkip  input__ IBOX(len)+#ifndef ALEX_NOPRED+        check_accs (AlexAccPred a predx rest)+           | predx user__ orig_input IBOX(len) input__+           = AlexLastAcc a input__ IBOX(len)+           | otherwise+           = check_accs rest+        check_accs (AlexAccSkipPred predx rest)+           | predx user__ orig_input IBOX(len) input__+           = AlexLastSkip input__ IBOX(len)+           | otherwise+           = check_accs rest+#endif++data AlexLastAcc+  = AlexNone+  | AlexLastAcc !Int !AlexInput !Int+  | AlexLastSkip     !AlexInput !Int++data AlexAcc user+  = AlexAccNone+  | AlexAcc Int+  | AlexAccSkip+#ifndef ALEX_NOPRED+  | AlexAccPred Int (AlexAccPred user) (AlexAcc user)+  | AlexAccSkipPred (AlexAccPred user) (AlexAcc user)++type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool++-- -----------------------------------------------------------------------------+-- Predicates on a rule++alexAndPred p1 p2 user__ in1 len in2+  = p1 user__ in1 len in2 && p2 user__ in1 len in2++--alexPrevCharIsPred :: Char -> AlexAccPred _+alexPrevCharIs c _ input__ _ _ = c == alexInputPrevChar input__++alexPrevCharMatches f _ input__ _ _ = f (alexInputPrevChar input__)++--alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _+alexPrevCharIsOneOf arr _ input__ _ _ = arr ! alexInputPrevChar input__++--alexRightContext :: Int -> AlexAccPred _+alexRightContext IBOX(sc) user__ _ _ input__ =+     case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of+          (AlexNone, _) -> False+          _ -> True+        -- TODO: there's no need to find the longest+        -- match when checking the right context, just+        -- the first match will do.+#endif+{-# LINE 92 "Lex.x" #-}+-- | Create a token with position.+tok :: (String -> Tok) -> (Posn -> String -> Token)+tok f p = PT p . f++-- | Token without position.+data Tok+  = TK {-# UNPACK #-} !TokSymbol  -- ^ Reserved word or symbol.+  | TL !String                    -- ^ String literal.+  | TI !String                    -- ^ Integer literal.+  | TV !String                    -- ^ Identifier.+  | TD !String                    -- ^ Float literal.+  | TC !String                    -- ^ Character literal.+  | T_Bytes !String+  | T_Function !String+  | T_LabelId !String+  | T_AlphaIndex !String+  | T_LabelMetaId !String+  | T_TailMetaId !String+  | T_BindingsMetaId !String+  | T_ObjectMetaId !String+  | T_BytesMetaId !String+  | T_MetaFunctionName !String+  deriving (Eq, Show, Ord)++-- | Smart constructor for 'Tok' for the sake of backwards compatibility.+pattern TS :: String -> Int -> Tok+pattern TS t i = TK (TokSymbol t i)++-- | Keyword or symbol tokens have a unique ID.+data TokSymbol = TokSymbol+  { tsText :: String+      -- ^ Keyword or symbol text.+  , tsID   :: !Int+      -- ^ Unique ID.+  } deriving (Show)++-- | Keyword/symbol equality is determined by the unique ID.+instance Eq  TokSymbol where (==)    = (==)    `on` tsID++-- | Keyword/symbol ordering is determined by the unique ID.+instance Ord TokSymbol where compare = compare `on` tsID++-- | Token with position.+data Token+  = PT  Posn Tok+  | Err Posn+  deriving (Eq, Show, Ord)++-- | Pretty print a position.+printPosn :: Posn -> String+printPosn (Pn _ l c) = "line " ++ show l ++ ", column " ++ show c++-- | Pretty print the position of the first token in the list.+tokenPos :: [Token] -> String+tokenPos (t:_) = printPosn (tokenPosn t)+tokenPos []    = "end of file"++-- | Get the position of a token.+tokenPosn :: Token -> Posn+tokenPosn (PT p _) = p+tokenPosn (Err p)  = p++-- | Get line and column of a token.+tokenLineCol :: Token -> (Int, Int)+tokenLineCol = posLineCol . tokenPosn++-- | Get line and column of a position.+posLineCol :: Posn -> (Int, Int)+posLineCol (Pn _ l c) = (l,c)++-- | Convert a token into "position token" form.+mkPosToken :: Token -> ((Int, Int), String)+mkPosToken t = (tokenLineCol t, tokenText t)++-- | Convert a token to its text.+tokenText :: Token -> String+tokenText t = case t of+  PT _ (TS s _) -> s+  PT _ (TL s)   -> show s+  PT _ (TI s)   -> s+  PT _ (TV s)   -> s+  PT _ (TD s)   -> s+  PT _ (TC s)   -> s+  Err _         -> "#error"+  PT _ (T_Bytes s) -> s+  PT _ (T_Function s) -> s+  PT _ (T_LabelId s) -> s+  PT _ (T_AlphaIndex s) -> s+  PT _ (T_LabelMetaId s) -> s+  PT _ (T_TailMetaId s) -> s+  PT _ (T_BindingsMetaId s) -> s+  PT _ (T_ObjectMetaId s) -> s+  PT _ (T_BytesMetaId s) -> s+  PT _ (T_MetaFunctionName s) -> s++-- | Convert a token to a string.+prToken :: Token -> String+prToken t = tokenText t++-- | Finite map from text to token organized as binary search tree.+data BTree+  = N -- ^ Nil (leaf).+  | B String Tok BTree BTree+      -- ^ Binary node.+  deriving (Show)++-- | Convert potential keyword into token or use fallback conversion.+eitherResIdent :: (String -> Tok) -> String -> Tok+eitherResIdent tv s = treeFind resWords+  where+  treeFind N = tv s+  treeFind (B a t left right) =+    case compare s a of+      LT -> treeFind left+      GT -> treeFind right+      EQ -> t++-- | The keywords and symbols of the language organized as binary search tree.+resWords :: BTree+resWords =+  b "\955" 12+    (b "[" 6+       (b "*" 3 (b ")" 2 (b "(" 1 N N) N) (b "." 5 (b "," 4 N N) N))+       (b "}" 9+          (b "{" 8 (b "]" 7 N N) N) (b "\934" 11 (b "\916" 10 N N) N)))+    (b "\8869" 18+       (b "\966" 15+          (b "\961" 14 (b "\958" 13 N N) N)+          (b "\8709" 17 (b "\8614" 16 N N) N))+       (b "\10214" 21+          (b "\8969" 20 (b "\8968" 19 N N) N)+          (b "\10509" 23 (b "\10215" 22 N N) N)))   where   b s n = B bs (TS bs n)     where
src/Language/EO/Phi/Syntax/Lex.x view
@@ -28,7 +28,7 @@  -- Symbols and non-identifier-like reserved words -@rsyms = \Φ | \ξ | \Δ | \λ | \φ | \ρ | \{ | \⟦ | \⟧ | \} | \( | \) | \. | \⊥ | \[ | \↦ | \] | \* | \∅ | \⤍ | \,+@rsyms = \Φ | \ξ | \Δ | \λ | \φ | \ρ | \{ | \⟦ | \⟧ | \} | \( | \) | \. | \⊥ | \[ | \↦ | \] | \⌈ | \, | \⌉ | \* | \∅ | \⤍  :- @@ -210,16 +210,18 @@ -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords =-  b "\934" 11+  b "\955" 12     (b "[" 6        (b "*" 3 (b ")" 2 (b "(" 1 N N) N) (b "." 5 (b "," 4 N N) N))-       (b "}" 9 (b "{" 8 (b "]" 7 N N) N) (b "\916" 10 N N)))-    (b "\8709" 17-       (b "\961" 14-          (b "\958" 13 (b "\955" 12 N N) N)-          (b "\8614" 16 (b "\966" 15 N N) N))-       (b "\10215" 20-          (b "\10214" 19 (b "\8869" 18 N N) N) (b "\10509" 21 N N)))+       (b "}" 9+          (b "{" 8 (b "]" 7 N N) N) (b "\934" 11 (b "\916" 10 N N) N)))+    (b "\8869" 18+       (b "\966" 15+          (b "\961" 14 (b "\958" 13 N N) N)+          (b "\8709" 17 (b "\8614" 16 N N) N))+       (b "\10214" 21+          (b "\8969" 20 (b "\8968" 19 N N) N)+          (b "\10509" 23 (b "\10215" 22 N N) N)))   where   b s n = B bs (TS bs n)     where
src/Language/EO/Phi/Syntax/Par.hs view
@@ -173,7 +173,12 @@  action_101,  action_102,  action_103,- action_104 :: () => Prelude.Int -> ({-HappyReduction (Err) = -}+ action_104,+ action_105,+ action_106,+ action_107,+ action_108,+ action_109 :: () => Prelude.Int -> ({-HappyReduction (Err) = -} 	   Prelude.Int  	-> (Token) 	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)@@ -233,7 +238,8 @@  happyReduce_60,  happyReduce_61,  happyReduce_62,- happyReduce_63 :: () => ({-HappyReduction (Err) = -}+ happyReduce_63,+ happyReduce_64 :: () => ({-HappyReduction (Err) = -} 	   Prelude.Int  	-> (Token) 	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)@@ -242,45 +248,46 @@ 	-> [(Token)] -> (Err) HappyAbsSyn)  happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int-happyExpList = Happy_Data_Array.listArray (0,215) ([0,0,512,0,0,0,0,57344,3,0,0,389,20,0,0,32874,11,0,0,424,46,0,0,1536,56,0,0,6784,224,0,0,5120,6,0,0,20480,24,0,0,272,0,0,0,1088,0,0,0,0,8192,0,0,0,0,0,0,4096,1,0,0,0,0,0,0,0,27136,2944,0,0,32768,3585,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6784,736,0,0,0,0,0,0,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,1024,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,424,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,40960,47110,0,0,0,512,0,0,0,32874,11,0,0,0,16,0,0,1536,56,0,0,1024,0,0,0,5120,20486,0,0,0,256,0,0,0,528,2,0,0,453,20,0,0,32874,11,0,0,0,0,0,0,32768,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14080,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,128,0,0,16384,0,0,0,0,0,0,0,0,6224,320,0,0,0,0,0,16384,29,0,0,0,0,0,0,0,0,0,0,0+happyExpList = Happy_Data_Array.listArray (0,230) ([0,0,512,0,0,0,0,0,62,0,0,22608,1280,0,0,6784,2944,0,0,43008,47105,0,0,0,32792,3,0,0,424,56,0,0,34048,4,0,0,20480,72,0,0,1088,0,0,0,17408,0,0,0,0,0,32,0,0,0,0,0,0,1088,0,0,0,0,0,0,0,0,6784,2944,0,0,32768,14337,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,424,184,0,0,0,0,0,0,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,32,0,0,0,0,1,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20480,88,5,0,32768,32794,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,424,184,0,0,0,8,0,0,244,0,0,0,32768,32794,11,0,0,0,64,0,0,6144,896,0,0,16384,0,0,0,0,1413,80,0,0,0,4,0,0,16384,8224,0,0,20480,92,5,0,32768,32794,11,0,0,0,0,0,0,0,8,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3520,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,22608,1280,0,0,0,0,0,0,0,128,0,0,16384,0,0,0,54272,8192,0,0,0,0,0,0,0,20480,88,5,0,0,0,0,0,54272,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 	])  {-# NOINLINE happyExpListPerState #-} happyExpListPerState st =     token_strs_expected-  where token_strs = ["error","%dummy","%start_pProgram","%start_pMetaId","%start_pObject","%start_pBinding","%start_pListBinding","%start_pAttribute","%start_pRuleAttribute","%start_pPeeledObject","%start_pObjectHead","%start_pObjectAction","%start_pListObjectAction","Bytes","Function","LabelId","AlphaIndex","LabelMetaId","TailMetaId","BindingsMetaId","ObjectMetaId","BytesMetaId","MetaFunctionName","Program","MetaId","Object","Binding","ListBinding","Attribute","RuleAttribute","PeeledObject","ObjectHead","ObjectAction","ListObjectAction","'('","')'","'*'","','","'.'","'['","']'","'{'","'}'","'\916'","'\934'","'\955'","'\958'","'\961'","'\966'","'\8614'","'\8709'","'\8869'","'\10214'","'\10215'","'\10509'","L_Bytes","L_Function","L_LabelId","L_AlphaIndex","L_LabelMetaId","L_TailMetaId","L_BindingsMetaId","L_ObjectMetaId","L_BytesMetaId","L_MetaFunctionName","%eof"]-        bit_start = st Prelude.* 66-        bit_end = (st Prelude.+ 1) Prelude.* 66+  where token_strs = ["error","%dummy","%start_pProgram","%start_pMetaId","%start_pObject","%start_pBinding","%start_pListBinding","%start_pAttribute","%start_pRuleAttribute","%start_pPeeledObject","%start_pObjectHead","%start_pObjectAction","%start_pListObjectAction","Bytes","Function","LabelId","AlphaIndex","LabelMetaId","TailMetaId","BindingsMetaId","ObjectMetaId","BytesMetaId","MetaFunctionName","Program","MetaId","Object","Binding","ListBinding","Attribute","RuleAttribute","PeeledObject","ObjectHead","ObjectAction","ListObjectAction","'('","')'","'*'","','","'.'","'['","']'","'{'","'}'","'\916'","'\934'","'\955'","'\958'","'\961'","'\966'","'\8614'","'\8709'","'\8869'","'\8968'","'\8969'","'\10214'","'\10215'","'\10509'","L_Bytes","L_Function","L_LabelId","L_AlphaIndex","L_LabelMetaId","L_TailMetaId","L_BindingsMetaId","L_ObjectMetaId","L_BytesMetaId","L_MetaFunctionName","%eof"]+        bit_start = st Prelude.* 68+        bit_end = (st Prelude.+ 1) Prelude.* 68         read_bit = readArrayBit happyExpList         bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]-        bits_indexed = Prelude.zip bits [0..65]+        bits_indexed = Prelude.zip bits [0..67]         token_strs_expected = Prelude.concatMap f bits_indexed         f (Prelude.False, _) = []         f (Prelude.True, nr) = [token_strs Prelude.!! nr] -action_0 (42) = happyShift action_64-action_0 (24) = happyGoto action_63+action_0 (42) = happyShift action_65+action_0 (24) = happyGoto action_64 action_0 _ = happyFail (happyExpListPerState 0) -action_1 (60) = happyShift action_36-action_1 (61) = happyShift action_61-action_1 (62) = happyShift action_44-action_1 (63) = happyShift action_53-action_1 (64) = happyShift action_62-action_1 (18) = happyGoto action_55-action_1 (19) = happyGoto action_56-action_1 (20) = happyGoto action_57-action_1 (21) = happyGoto action_58-action_1 (22) = happyGoto action_59-action_1 (25) = happyGoto action_60+action_1 (62) = happyShift action_36+action_1 (63) = happyShift action_62+action_1 (64) = happyShift action_44+action_1 (65) = happyShift action_54+action_1 (66) = happyShift action_63+action_1 (18) = happyGoto action_56+action_1 (19) = happyGoto action_57+action_1 (20) = happyGoto action_58+action_1 (21) = happyGoto action_59+action_1 (22) = happyGoto action_60+action_1 (25) = happyGoto action_61 action_1 _ = happyFail (happyExpListPerState 1)  action_2 (45) = happyShift action_49 action_2 (47) = happyShift action_50 action_2 (52) = happyShift action_51 action_2 (53) = happyShift action_52-action_2 (63) = happyShift action_53+action_2 (55) = happyShift action_53 action_2 (65) = happyShift action_54+action_2 (67) = happyShift action_55 action_2 (21) = happyGoto action_46 action_2 (23) = happyGoto action_47 action_2 (26) = happyGoto action_48@@ -290,10 +297,10 @@ action_3 (46) = happyShift action_43 action_3 (48) = happyShift action_32 action_3 (49) = happyShift action_33-action_3 (58) = happyShift action_34-action_3 (59) = happyShift action_35-action_3 (60) = happyShift action_36-action_3 (62) = happyShift action_44+action_3 (60) = happyShift action_34+action_3 (61) = happyShift action_35+action_3 (62) = happyShift action_36+action_3 (64) = happyShift action_44 action_3 (16) = happyGoto action_25 action_3 (17) = happyGoto action_26 action_3 (18) = happyGoto action_27@@ -306,10 +313,10 @@ action_4 (46) = happyShift action_43 action_4 (48) = happyShift action_32 action_4 (49) = happyShift action_33-action_4 (58) = happyShift action_34-action_4 (59) = happyShift action_35-action_4 (60) = happyShift action_36-action_4 (62) = happyShift action_44+action_4 (60) = happyShift action_34+action_4 (61) = happyShift action_35+action_4 (62) = happyShift action_36+action_4 (64) = happyShift action_44 action_4 (16) = happyGoto action_25 action_4 (17) = happyGoto action_26 action_4 (18) = happyGoto action_27@@ -317,13 +324,13 @@ action_4 (27) = happyGoto action_39 action_4 (28) = happyGoto action_40 action_4 (29) = happyGoto action_41-action_4 _ = happyReduce_44+action_4 _ = happyReduce_45  action_5 (48) = happyShift action_32 action_5 (49) = happyShift action_33-action_5 (58) = happyShift action_34-action_5 (59) = happyShift action_35-action_5 (60) = happyShift action_36+action_5 (60) = happyShift action_34+action_5 (61) = happyShift action_35+action_5 (62) = happyShift action_36 action_5 (16) = happyGoto action_25 action_5 (17) = happyGoto action_26 action_5 (18) = happyGoto action_27@@ -334,9 +341,9 @@ action_6 (46) = happyShift action_31 action_6 (48) = happyShift action_32 action_6 (49) = happyShift action_33-action_6 (58) = happyShift action_34-action_6 (59) = happyShift action_35-action_6 (60) = happyShift action_36+action_6 (60) = happyShift action_34+action_6 (61) = happyShift action_35+action_6 (62) = happyShift action_36 action_6 (16) = happyGoto action_25 action_6 (17) = happyGoto action_26 action_6 (18) = happyGoto action_27@@ -347,7 +354,7 @@ action_7 (45) = happyShift action_19 action_7 (47) = happyShift action_20 action_7 (52) = happyShift action_21-action_7 (53) = happyShift action_22+action_7 (55) = happyShift action_22 action_7 (31) = happyGoto action_23 action_7 (32) = happyGoto action_24 action_7 _ = happyFail (happyExpListPerState 7)@@ -355,7 +362,7 @@ action_8 (45) = happyShift action_19 action_8 (47) = happyShift action_20 action_8 (52) = happyShift action_21-action_8 (53) = happyShift action_22+action_8 (55) = happyShift action_22 action_8 (32) = happyGoto action_18 action_8 _ = happyFail (happyExpListPerState 8) @@ -368,9 +375,9 @@ action_10 (39) = happyShift action_16 action_10 (33) = happyGoto action_13 action_10 (34) = happyGoto action_14-action_10 _ = happyReduce_62+action_10 _ = happyReduce_63 -action_11 (56) = happyShift action_12+action_11 (58) = happyShift action_12 action_11 _ = happyFail (happyExpListPerState 11)  action_12 _ = happyReduce_11@@ -378,96 +385,96 @@ action_13 (35) = happyShift action_15 action_13 (39) = happyShift action_16 action_13 (33) = happyGoto action_13-action_13 (34) = happyGoto action_80-action_13 _ = happyReduce_62+action_13 (34) = happyGoto action_82+action_13 _ = happyReduce_63 -action_14 (66) = happyAccept+action_14 (68) = happyAccept action_14 _ = happyFail (happyExpListPerState 14)  action_15 (44) = happyShift action_42 action_15 (46) = happyShift action_43 action_15 (48) = happyShift action_32 action_15 (49) = happyShift action_33-action_15 (58) = happyShift action_34-action_15 (59) = happyShift action_35-action_15 (60) = happyShift action_36-action_15 (62) = happyShift action_44+action_15 (60) = happyShift action_34+action_15 (61) = happyShift action_35+action_15 (62) = happyShift action_36+action_15 (64) = happyShift action_44 action_15 (16) = happyGoto action_25 action_15 (17) = happyGoto action_26 action_15 (18) = happyGoto action_27 action_15 (20) = happyGoto action_38 action_15 (27) = happyGoto action_39-action_15 (28) = happyGoto action_79+action_15 (28) = happyGoto action_81 action_15 (29) = happyGoto action_41-action_15 _ = happyReduce_44+action_15 _ = happyReduce_45  action_16 (48) = happyShift action_32 action_16 (49) = happyShift action_33-action_16 (58) = happyShift action_34-action_16 (59) = happyShift action_35-action_16 (60) = happyShift action_36+action_16 (60) = happyShift action_34+action_16 (61) = happyShift action_35+action_16 (62) = happyShift action_36 action_16 (16) = happyGoto action_25 action_16 (17) = happyGoto action_26 action_16 (18) = happyGoto action_27-action_16 (29) = happyGoto action_78+action_16 (29) = happyGoto action_80 action_16 _ = happyFail (happyExpListPerState 16) -action_17 (66) = happyAccept+action_17 (68) = happyAccept action_17 _ = happyFail (happyExpListPerState 17) -action_18 (66) = happyAccept+action_18 (68) = happyAccept action_18 _ = happyFail (happyExpListPerState 18) -action_19 _ = happyReduce_57+action_19 _ = happyReduce_58 -action_20 _ = happyReduce_58+action_20 _ = happyReduce_59 -action_21 _ = happyReduce_59+action_21 _ = happyReduce_60  action_22 (44) = happyShift action_42 action_22 (46) = happyShift action_43 action_22 (48) = happyShift action_32 action_22 (49) = happyShift action_33-action_22 (58) = happyShift action_34-action_22 (59) = happyShift action_35-action_22 (60) = happyShift action_36-action_22 (62) = happyShift action_44+action_22 (60) = happyShift action_34+action_22 (61) = happyShift action_35+action_22 (62) = happyShift action_36+action_22 (64) = happyShift action_44 action_22 (16) = happyGoto action_25 action_22 (17) = happyGoto action_26 action_22 (18) = happyGoto action_27 action_22 (20) = happyGoto action_38 action_22 (27) = happyGoto action_39-action_22 (28) = happyGoto action_77+action_22 (28) = happyGoto action_79 action_22 (29) = happyGoto action_41-action_22 _ = happyReduce_44+action_22 _ = happyReduce_45 -action_23 (66) = happyAccept+action_23 (68) = happyAccept action_23 _ = happyFail (happyExpListPerState 23)  action_24 (35) = happyShift action_15 action_24 (39) = happyShift action_16 action_24 (33) = happyGoto action_13-action_24 (34) = happyGoto action_76-action_24 _ = happyReduce_62+action_24 (34) = happyGoto action_78+action_24 _ = happyReduce_63 -action_25 _ = happyReduce_49+action_25 _ = happyReduce_50 -action_26 _ = happyReduce_50+action_26 _ = happyReduce_51 -action_27 _ = happyReduce_51+action_27 _ = happyReduce_52 -action_28 _ = happyReduce_52+action_28 _ = happyReduce_53 -action_29 (66) = happyAccept+action_29 (68) = happyAccept action_29 _ = happyFail (happyExpListPerState 29) -action_30 _ = happyReduce_53+action_30 _ = happyReduce_54 -action_31 _ = happyReduce_54+action_31 _ = happyReduce_55 -action_32 _ = happyReduce_48+action_32 _ = happyReduce_49 -action_33 _ = happyReduce_47+action_33 _ = happyReduce_48  action_34 _ = happyReduce_13 @@ -475,41 +482,41 @@  action_36 _ = happyReduce_15 -action_37 (66) = happyAccept+action_37 (68) = happyAccept action_37 _ = happyFail (happyExpListPerState 37) -action_38 _ = happyReduce_42+action_38 _ = happyReduce_43 -action_39 (38) = happyShift action_75-action_39 _ = happyReduce_45+action_39 (38) = happyShift action_77+action_39 _ = happyReduce_46 -action_40 (66) = happyAccept+action_40 (68) = happyAccept action_40 _ = happyFail (happyExpListPerState 40) -action_41 (50) = happyShift action_74+action_41 (50) = happyShift action_76 action_41 _ = happyFail (happyExpListPerState 41) -action_42 (55) = happyShift action_73+action_42 (57) = happyShift action_75 action_42 _ = happyFail (happyExpListPerState 42) -action_43 (55) = happyShift action_72+action_43 (57) = happyShift action_74 action_43 _ = happyFail (happyExpListPerState 43)  action_44 _ = happyReduce_17 -action_45 (66) = happyAccept+action_45 (68) = happyAccept action_45 _ = happyFail (happyExpListPerState 45) -action_46 _ = happyReduce_34+action_46 _ = happyReduce_35 -action_47 (35) = happyShift action_71+action_47 (35) = happyShift action_73 action_47 _ = happyFail (happyExpListPerState 47) -action_48 (35) = happyShift action_67-action_48 (37) = happyShift action_68-action_48 (39) = happyShift action_69-action_48 (40) = happyShift action_70-action_48 (66) = happyAccept+action_48 (35) = happyShift action_69+action_48 (37) = happyShift action_70+action_48 (39) = happyShift action_71+action_48 (40) = happyShift action_72+action_48 (68) = happyAccept action_48 _ = happyFail (happyExpListPerState 48)  action_49 _ = happyReduce_30@@ -518,243 +525,286 @@  action_51 _ = happyReduce_32 -action_52 (44) = happyShift action_42-action_52 (46) = happyShift action_43-action_52 (48) = happyShift action_32-action_52 (49) = happyShift action_33-action_52 (58) = happyShift action_34-action_52 (59) = happyShift action_35-action_52 (60) = happyShift action_36-action_52 (62) = happyShift action_44-action_52 (16) = happyGoto action_25-action_52 (17) = happyGoto action_26-action_52 (18) = happyGoto action_27-action_52 (20) = happyGoto action_38-action_52 (27) = happyGoto action_39-action_52 (28) = happyGoto action_66-action_52 (29) = happyGoto action_41-action_52 _ = happyReduce_44+action_52 (45) = happyShift action_49+action_52 (47) = happyShift action_50+action_52 (52) = happyShift action_51+action_52 (53) = happyShift action_52+action_52 (55) = happyShift action_53+action_52 (65) = happyShift action_54+action_52 (67) = happyShift action_55+action_52 (21) = happyGoto action_46+action_52 (23) = happyGoto action_47+action_52 (26) = happyGoto action_68+action_52 _ = happyFail (happyExpListPerState 52) -action_53 _ = happyReduce_18+action_53 (44) = happyShift action_42+action_53 (46) = happyShift action_43+action_53 (48) = happyShift action_32+action_53 (49) = happyShift action_33+action_53 (60) = happyShift action_34+action_53 (61) = happyShift action_35+action_53 (62) = happyShift action_36+action_53 (64) = happyShift action_44+action_53 (16) = happyGoto action_25+action_53 (17) = happyGoto action_26+action_53 (18) = happyGoto action_27+action_53 (20) = happyGoto action_38+action_53 (27) = happyGoto action_39+action_53 (28) = happyGoto action_67+action_53 (29) = happyGoto action_41+action_53 _ = happyReduce_45 -action_54 _ = happyReduce_20+action_54 _ = happyReduce_18 -action_55 _ = happyReduce_22+action_55 _ = happyReduce_20 -action_56 _ = happyReduce_23+action_56 _ = happyReduce_22 -action_57 _ = happyReduce_24+action_57 _ = happyReduce_23 -action_58 _ = happyReduce_25+action_58 _ = happyReduce_24 -action_59 _ = happyReduce_26+action_59 _ = happyReduce_25 -action_60 (66) = happyAccept-action_60 _ = happyFail (happyExpListPerState 60)+action_60 _ = happyReduce_26 -action_61 _ = happyReduce_16+action_61 (68) = happyAccept+action_61 _ = happyFail (happyExpListPerState 61) -action_62 _ = happyReduce_19+action_62 _ = happyReduce_16 -action_63 (66) = happyAccept-action_63 _ = happyFail (happyExpListPerState 63)+action_63 _ = happyReduce_19 -action_64 (53) = happyShift action_65+action_64 (68) = happyAccept action_64 _ = happyFail (happyExpListPerState 64) -action_65 (44) = happyShift action_42-action_65 (46) = happyShift action_43-action_65 (48) = happyShift action_32-action_65 (49) = happyShift action_33-action_65 (58) = happyShift action_34-action_65 (59) = happyShift action_35-action_65 (60) = happyShift action_36-action_65 (62) = happyShift action_44-action_65 (16) = happyGoto action_25-action_65 (17) = happyGoto action_26-action_65 (18) = happyGoto action_27-action_65 (20) = happyGoto action_38-action_65 (27) = happyGoto action_39-action_65 (28) = happyGoto action_97-action_65 (29) = happyGoto action_41-action_65 _ = happyReduce_44+action_65 (55) = happyShift action_66+action_65 _ = happyFail (happyExpListPerState 65) -action_66 (54) = happyShift action_96-action_66 _ = happyFail (happyExpListPerState 66)+action_66 (44) = happyShift action_42+action_66 (46) = happyShift action_43+action_66 (48) = happyShift action_32+action_66 (49) = happyShift action_33+action_66 (60) = happyShift action_34+action_66 (61) = happyShift action_35+action_66 (62) = happyShift action_36+action_66 (64) = happyShift action_44+action_66 (16) = happyGoto action_25+action_66 (17) = happyGoto action_26+action_66 (18) = happyGoto action_27+action_66 (20) = happyGoto action_38+action_66 (27) = happyGoto action_39+action_66 (28) = happyGoto action_100+action_66 (29) = happyGoto action_41+action_66 _ = happyReduce_45 -action_67 (44) = happyShift action_42-action_67 (46) = happyShift action_43-action_67 (48) = happyShift action_32-action_67 (49) = happyShift action_33-action_67 (58) = happyShift action_34-action_67 (59) = happyShift action_35-action_67 (60) = happyShift action_36-action_67 (62) = happyShift action_44-action_67 (16) = happyGoto action_25-action_67 (17) = happyGoto action_26-action_67 (18) = happyGoto action_27-action_67 (20) = happyGoto action_38-action_67 (27) = happyGoto action_39-action_67 (28) = happyGoto action_95-action_67 (29) = happyGoto action_41-action_67 _ = happyReduce_44+action_67 (56) = happyShift action_99+action_67 _ = happyFail (happyExpListPerState 67) -action_68 (61) = happyShift action_61-action_68 (19) = happyGoto action_94+action_68 (35) = happyShift action_69+action_68 (37) = happyShift action_70+action_68 (38) = happyShift action_98+action_68 (39) = happyShift action_71+action_68 (40) = happyShift action_72 action_68 _ = happyFail (happyExpListPerState 68) +action_69 (44) = happyShift action_42+action_69 (46) = happyShift action_43 action_69 (48) = happyShift action_32 action_69 (49) = happyShift action_33-action_69 (58) = happyShift action_34-action_69 (59) = happyShift action_35-action_69 (60) = happyShift action_36+action_69 (60) = happyShift action_34+action_69 (61) = happyShift action_35+action_69 (62) = happyShift action_36+action_69 (64) = happyShift action_44 action_69 (16) = happyGoto action_25 action_69 (17) = happyGoto action_26 action_69 (18) = happyGoto action_27-action_69 (29) = happyGoto action_93-action_69 _ = happyFail (happyExpListPerState 69)+action_69 (20) = happyGoto action_38+action_69 (27) = happyGoto action_39+action_69 (28) = happyGoto action_97+action_69 (29) = happyGoto action_41+action_69 _ = happyReduce_45 -action_70 (47) = happyShift action_92+action_70 (63) = happyShift action_62+action_70 (19) = happyGoto action_96 action_70 _ = happyFail (happyExpListPerState 70) -action_71 (45) = happyShift action_49-action_71 (47) = happyShift action_50-action_71 (52) = happyShift action_51-action_71 (53) = happyShift action_52-action_71 (63) = happyShift action_53-action_71 (65) = happyShift action_54-action_71 (21) = happyGoto action_46-action_71 (23) = happyGoto action_47-action_71 (26) = happyGoto action_91+action_71 (48) = happyShift action_32+action_71 (49) = happyShift action_33+action_71 (60) = happyShift action_34+action_71 (61) = happyShift action_35+action_71 (62) = happyShift action_36+action_71 (16) = happyGoto action_25+action_71 (17) = happyGoto action_26+action_71 (18) = happyGoto action_27+action_71 (29) = happyGoto action_95 action_71 _ = happyFail (happyExpListPerState 71) -action_72 (57) = happyShift action_90-action_72 (15) = happyGoto action_89+action_72 (47) = happyShift action_94 action_72 _ = happyFail (happyExpListPerState 72) -action_73 (51) = happyShift action_88-action_73 (56) = happyShift action_12-action_73 (64) = happyShift action_62-action_73 (14) = happyGoto action_86-action_73 (22) = happyGoto action_87+action_73 (45) = happyShift action_49+action_73 (47) = happyShift action_50+action_73 (52) = happyShift action_51+action_73 (53) = happyShift action_52+action_73 (55) = happyShift action_53+action_73 (65) = happyShift action_54+action_73 (67) = happyShift action_55+action_73 (21) = happyGoto action_46+action_73 (23) = happyGoto action_47+action_73 (26) = happyGoto action_93 action_73 _ = happyFail (happyExpListPerState 73) -action_74 (45) = happyShift action_49-action_74 (47) = happyShift action_50-action_74 (51) = happyShift action_85-action_74 (52) = happyShift action_51-action_74 (53) = happyShift action_52-action_74 (63) = happyShift action_53-action_74 (65) = happyShift action_54-action_74 (21) = happyGoto action_46-action_74 (23) = happyGoto action_47-action_74 (26) = happyGoto action_84+action_74 (59) = happyShift action_92+action_74 (15) = happyGoto action_91 action_74 _ = happyFail (happyExpListPerState 74) -action_75 (44) = happyShift action_42-action_75 (46) = happyShift action_43-action_75 (48) = happyShift action_32-action_75 (49) = happyShift action_33-action_75 (58) = happyShift action_34-action_75 (59) = happyShift action_35-action_75 (60) = happyShift action_36-action_75 (62) = happyShift action_44-action_75 (16) = happyGoto action_25-action_75 (17) = happyGoto action_26-action_75 (18) = happyGoto action_27-action_75 (20) = happyGoto action_38-action_75 (27) = happyGoto action_39-action_75 (28) = happyGoto action_83-action_75 (29) = happyGoto action_41-action_75 _ = happyReduce_44+action_75 (51) = happyShift action_90+action_75 (58) = happyShift action_12+action_75 (66) = happyShift action_63+action_75 (14) = happyGoto action_88+action_75 (22) = happyGoto action_89+action_75 _ = happyFail (happyExpListPerState 75) -action_76 _ = happyReduce_55+action_76 (45) = happyShift action_49+action_76 (47) = happyShift action_50+action_76 (51) = happyShift action_87+action_76 (52) = happyShift action_51+action_76 (53) = happyShift action_52+action_76 (55) = happyShift action_53+action_76 (65) = happyShift action_54+action_76 (67) = happyShift action_55+action_76 (21) = happyGoto action_46+action_76 (23) = happyGoto action_47+action_76 (26) = happyGoto action_86+action_76 _ = happyFail (happyExpListPerState 76) -action_77 (54) = happyShift action_82-action_77 _ = happyFail (happyExpListPerState 77)+action_77 (44) = happyShift action_42+action_77 (46) = happyShift action_43+action_77 (48) = happyShift action_32+action_77 (49) = happyShift action_33+action_77 (60) = happyShift action_34+action_77 (61) = happyShift action_35+action_77 (62) = happyShift action_36+action_77 (64) = happyShift action_44+action_77 (16) = happyGoto action_25+action_77 (17) = happyGoto action_26+action_77 (18) = happyGoto action_27+action_77 (20) = happyGoto action_38+action_77 (27) = happyGoto action_39+action_77 (28) = happyGoto action_85+action_77 (29) = happyGoto action_41+action_77 _ = happyReduce_45 -action_78 _ = happyReduce_61+action_78 _ = happyReduce_56 -action_79 (36) = happyShift action_81+action_79 (56) = happyShift action_84 action_79 _ = happyFail (happyExpListPerState 79) -action_80 _ = happyReduce_63+action_80 _ = happyReduce_62 -action_81 _ = happyReduce_60+action_81 (36) = happyShift action_83+action_81 _ = happyFail (happyExpListPerState 81) -action_82 _ = happyReduce_56+action_82 _ = happyReduce_64 -action_83 _ = happyReduce_46+action_83 _ = happyReduce_61 -action_84 (35) = happyShift action_67-action_84 (37) = happyShift action_68-action_84 (39) = happyShift action_69-action_84 (40) = happyShift action_70-action_84 _ = happyReduce_37+action_84 _ = happyReduce_57 -action_85 _ = happyReduce_38+action_85 _ = happyReduce_47 -action_86 _ = happyReduce_39+action_86 (35) = happyShift action_69+action_86 (37) = happyShift action_70+action_86 (39) = happyShift action_71+action_86 (40) = happyShift action_72+action_86 _ = happyReduce_38 -action_87 _ = happyReduce_43+action_87 _ = happyReduce_39  action_88 _ = happyReduce_40 -action_89 _ = happyReduce_41+action_89 _ = happyReduce_44 -action_90 _ = happyReduce_12+action_90 _ = happyReduce_41 -action_91 (35) = happyShift action_67-action_91 (36) = happyShift action_101-action_91 (37) = happyShift action_68-action_91 (39) = happyShift action_69-action_91 (40) = happyShift action_70-action_91 _ = happyFail (happyExpListPerState 91)+action_91 _ = happyReduce_42 -action_92 (50) = happyShift action_100-action_92 _ = happyFail (happyExpListPerState 92)+action_92 _ = happyReduce_12 -action_93 _ = happyReduce_29+action_93 (35) = happyShift action_69+action_93 (36) = happyShift action_105+action_93 (37) = happyShift action_70+action_93 (39) = happyShift action_71+action_93 (40) = happyShift action_72+action_93 _ = happyFail (happyExpListPerState 93) -action_94 _ = happyReduce_35+action_94 (50) = happyShift action_104+action_94 _ = happyFail (happyExpListPerState 94) -action_95 (36) = happyShift action_99-action_95 _ = happyFail (happyExpListPerState 95)+action_95 _ = happyReduce_29 -action_96 _ = happyReduce_27+action_96 _ = happyReduce_36 -action_97 (54) = happyShift action_98+action_97 (36) = happyShift action_103 action_97 _ = happyFail (happyExpListPerState 97) -action_98 (43) = happyShift action_103+action_98 (45) = happyShift action_49+action_98 (47) = happyShift action_50+action_98 (52) = happyShift action_51+action_98 (53) = happyShift action_52+action_98 (55) = happyShift action_53+action_98 (65) = happyShift action_54+action_98 (67) = happyShift action_55+action_98 (21) = happyGoto action_46+action_98 (23) = happyGoto action_47+action_98 (26) = happyGoto action_102 action_98 _ = happyFail (happyExpListPerState 98) -action_99 _ = happyReduce_28+action_99 _ = happyReduce_27 -action_100 (45) = happyShift action_49-action_100 (47) = happyShift action_50-action_100 (52) = happyShift action_51-action_100 (53) = happyShift action_52-action_100 (63) = happyShift action_53-action_100 (65) = happyShift action_54-action_100 (21) = happyGoto action_46-action_100 (23) = happyGoto action_47-action_100 (26) = happyGoto action_102+action_100 (56) = happyShift action_101 action_100 _ = happyFail (happyExpListPerState 100) -action_101 _ = happyReduce_36+action_101 (43) = happyShift action_108+action_101 _ = happyFail (happyExpListPerState 101) -action_102 (35) = happyShift action_67-action_102 (37) = happyShift action_68-action_102 (39) = happyShift action_69-action_102 (40) = happyShift action_70-action_102 (41) = happyShift action_104+action_102 (35) = happyShift action_69+action_102 (37) = happyShift action_70+action_102 (39) = happyShift action_71+action_102 (40) = happyShift action_72+action_102 (54) = happyShift action_107 action_102 _ = happyFail (happyExpListPerState 102) -action_103 _ = happyReduce_21+action_103 _ = happyReduce_28 -action_104 _ = happyReduce_33+action_104 (45) = happyShift action_49+action_104 (47) = happyShift action_50+action_104 (52) = happyShift action_51+action_104 (53) = happyShift action_52+action_104 (55) = happyShift action_53+action_104 (65) = happyShift action_54+action_104 (67) = happyShift action_55+action_104 (21) = happyGoto action_46+action_104 (23) = happyGoto action_47+action_104 (26) = happyGoto action_106+action_104 _ = happyFail (happyExpListPerState 104) +action_105 _ = happyReduce_37++action_106 (35) = happyShift action_69+action_106 (37) = happyShift action_70+action_106 (39) = happyShift action_71+action_106 (40) = happyShift action_72+action_106 (41) = happyShift action_109+action_106 _ = happyFail (happyExpListPerState 106)++action_107 _ = happyReduce_34++action_108 _ = happyReduce_21++action_109 _ = happyReduce_33+ happyReduce_11 = happySpecReduce_1  14 happyReduction_11 happyReduction_11 (HappyTerminal (PT _ (T_Bytes happy_var_1))) 	 =  HappyAbsSyn14@@ -929,24 +979,35 @@ 		 (Language.EO.Phi.Syntax.Abs.MetaSubstThis happy_var_1 happy_var_5 	) `HappyStk` happyRest -happyReduce_34 = happySpecReduce_1  26 happyReduction_34-happyReduction_34 (HappyAbsSyn21  happy_var_1)+happyReduce_34 = happyReduce 5 26 happyReduction_34+happyReduction_34 (_ `HappyStk`+	(HappyAbsSyn26  happy_var_4) `HappyStk`+	_ `HappyStk`+	(HappyAbsSyn26  happy_var_2) `HappyStk`+	_ `HappyStk`+	happyRest)+	 = HappyAbsSyn26+		 (Language.EO.Phi.Syntax.Abs.MetaContextualize happy_var_2 happy_var_4+	) `HappyStk` happyRest++happyReduce_35 = happySpecReduce_1  26 happyReduction_35+happyReduction_35 (HappyAbsSyn21  happy_var_1) 	 =  HappyAbsSyn26 		 (Language.EO.Phi.Syntax.Abs.MetaObject happy_var_1 	)-happyReduction_34 _  = notHappyAtAll +happyReduction_35 _  = notHappyAtAll  -happyReduce_35 = happySpecReduce_3  26 happyReduction_35-happyReduction_35 (HappyAbsSyn19  happy_var_3)+happyReduce_36 = happySpecReduce_3  26 happyReduction_36+happyReduction_36 (HappyAbsSyn19  happy_var_3) 	_ 	(HappyAbsSyn26  happy_var_1) 	 =  HappyAbsSyn26 		 (Language.EO.Phi.Syntax.Abs.MetaTailContext happy_var_1 happy_var_3 	)-happyReduction_35 _ _ _  = notHappyAtAll +happyReduction_36 _ _ _  = notHappyAtAll  -happyReduce_36 = happyReduce 4 26 happyReduction_36-happyReduction_36 (_ `HappyStk`+happyReduce_37 = happyReduce 4 26 happyReduction_37+happyReduction_37 (_ `HappyStk` 	(HappyAbsSyn26  happy_var_3) `HappyStk` 	_ `HappyStk` 	(HappyAbsSyn23  happy_var_1) `HappyStk`@@ -955,206 +1016,206 @@ 		 (Language.EO.Phi.Syntax.Abs.MetaFunction happy_var_1 happy_var_3 	) `HappyStk` happyRest -happyReduce_37 = happySpecReduce_3  27 happyReduction_37-happyReduction_37 (HappyAbsSyn26  happy_var_3)+happyReduce_38 = happySpecReduce_3  27 happyReduction_38+happyReduction_38 (HappyAbsSyn26  happy_var_3) 	_ 	(HappyAbsSyn29  happy_var_1) 	 =  HappyAbsSyn27 		 (Language.EO.Phi.Syntax.Abs.AlphaBinding happy_var_1 happy_var_3 	)-happyReduction_37 _ _ _  = notHappyAtAll +happyReduction_38 _ _ _  = notHappyAtAll  -happyReduce_38 = happySpecReduce_3  27 happyReduction_38-happyReduction_38 _+happyReduce_39 = happySpecReduce_3  27 happyReduction_39+happyReduction_39 _ 	_ 	(HappyAbsSyn29  happy_var_1) 	 =  HappyAbsSyn27 		 (Language.EO.Phi.Syntax.Abs.EmptyBinding happy_var_1 	)-happyReduction_38 _ _ _  = notHappyAtAll +happyReduction_39 _ _ _  = notHappyAtAll  -happyReduce_39 = happySpecReduce_3  27 happyReduction_39-happyReduction_39 (HappyAbsSyn14  happy_var_3)+happyReduce_40 = happySpecReduce_3  27 happyReduction_40+happyReduction_40 (HappyAbsSyn14  happy_var_3) 	_ 	_ 	 =  HappyAbsSyn27 		 (Language.EO.Phi.Syntax.Abs.DeltaBinding happy_var_3 	)-happyReduction_39 _ _ _  = notHappyAtAll +happyReduction_40 _ _ _  = notHappyAtAll  -happyReduce_40 = happySpecReduce_3  27 happyReduction_40-happyReduction_40 _+happyReduce_41 = happySpecReduce_3  27 happyReduction_41+happyReduction_41 _ 	_ 	_ 	 =  HappyAbsSyn27 		 (Language.EO.Phi.Syntax.Abs.DeltaEmptyBinding 	) -happyReduce_41 = happySpecReduce_3  27 happyReduction_41-happyReduction_41 (HappyAbsSyn15  happy_var_3)+happyReduce_42 = happySpecReduce_3  27 happyReduction_42+happyReduction_42 (HappyAbsSyn15  happy_var_3) 	_ 	_ 	 =  HappyAbsSyn27 		 (Language.EO.Phi.Syntax.Abs.LambdaBinding happy_var_3 	)-happyReduction_41 _ _ _  = notHappyAtAll +happyReduction_42 _ _ _  = notHappyAtAll  -happyReduce_42 = happySpecReduce_1  27 happyReduction_42-happyReduction_42 (HappyAbsSyn20  happy_var_1)+happyReduce_43 = happySpecReduce_1  27 happyReduction_43+happyReduction_43 (HappyAbsSyn20  happy_var_1) 	 =  HappyAbsSyn27 		 (Language.EO.Phi.Syntax.Abs.MetaBindings happy_var_1 	)-happyReduction_42 _  = notHappyAtAll +happyReduction_43 _  = notHappyAtAll  -happyReduce_43 = happySpecReduce_3  27 happyReduction_43-happyReduction_43 (HappyAbsSyn22  happy_var_3)+happyReduce_44 = happySpecReduce_3  27 happyReduction_44+happyReduction_44 (HappyAbsSyn22  happy_var_3) 	_ 	_ 	 =  HappyAbsSyn27 		 (Language.EO.Phi.Syntax.Abs.MetaDeltaBinding happy_var_3 	)-happyReduction_43 _ _ _  = notHappyAtAll +happyReduction_44 _ _ _  = notHappyAtAll  -happyReduce_44 = happySpecReduce_0  28 happyReduction_44-happyReduction_44  =  HappyAbsSyn28+happyReduce_45 = happySpecReduce_0  28 happyReduction_45+happyReduction_45  =  HappyAbsSyn28 		 ([] 	) -happyReduce_45 = happySpecReduce_1  28 happyReduction_45-happyReduction_45 (HappyAbsSyn27  happy_var_1)+happyReduce_46 = happySpecReduce_1  28 happyReduction_46+happyReduction_46 (HappyAbsSyn27  happy_var_1) 	 =  HappyAbsSyn28 		 ((:[]) happy_var_1 	)-happyReduction_45 _  = notHappyAtAll +happyReduction_46 _  = notHappyAtAll  -happyReduce_46 = happySpecReduce_3  28 happyReduction_46-happyReduction_46 (HappyAbsSyn28  happy_var_3)+happyReduce_47 = happySpecReduce_3  28 happyReduction_47+happyReduction_47 (HappyAbsSyn28  happy_var_3) 	_ 	(HappyAbsSyn27  happy_var_1) 	 =  HappyAbsSyn28 		 ((:) happy_var_1 happy_var_3 	)-happyReduction_46 _ _ _  = notHappyAtAll --happyReduce_47 = happySpecReduce_1  29 happyReduction_47-happyReduction_47 _-	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Phi-	)+happyReduction_47 _ _ _  = notHappyAtAll   happyReduce_48 = happySpecReduce_1  29 happyReduction_48 happyReduction_48 _ 	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Rho+		 (Language.EO.Phi.Syntax.Abs.Phi 	)  happyReduce_49 = happySpecReduce_1  29 happyReduction_49-happyReduction_49 (HappyAbsSyn16  happy_var_1)+happyReduction_49 _ 	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Label happy_var_1+		 (Language.EO.Phi.Syntax.Abs.Rho 	)-happyReduction_49 _  = notHappyAtAll   happyReduce_50 = happySpecReduce_1  29 happyReduction_50-happyReduction_50 (HappyAbsSyn17  happy_var_1)+happyReduction_50 (HappyAbsSyn16  happy_var_1) 	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1+		 (Language.EO.Phi.Syntax.Abs.Label happy_var_1 	) happyReduction_50 _  = notHappyAtAll   happyReduce_51 = happySpecReduce_1  29 happyReduction_51-happyReduction_51 (HappyAbsSyn18  happy_var_1)+happyReduction_51 (HappyAbsSyn17  happy_var_1) 	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.MetaAttr happy_var_1+		 (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1 	) happyReduction_51 _  = notHappyAtAll  -happyReduce_52 = happySpecReduce_1  30 happyReduction_52-happyReduction_52 (HappyAbsSyn29  happy_var_1)-	 =  HappyAbsSyn30-		 (Language.EO.Phi.Syntax.Abs.ObjectAttr happy_var_1+happyReduce_52 = happySpecReduce_1  29 happyReduction_52+happyReduction_52 (HappyAbsSyn18  happy_var_1)+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.MetaAttr happy_var_1 	) happyReduction_52 _  = notHappyAtAll   happyReduce_53 = happySpecReduce_1  30 happyReduction_53-happyReduction_53 _+happyReduction_53 (HappyAbsSyn29  happy_var_1) 	 =  HappyAbsSyn30-		 (Language.EO.Phi.Syntax.Abs.DeltaAttr+		 (Language.EO.Phi.Syntax.Abs.ObjectAttr happy_var_1 	)+happyReduction_53 _  = notHappyAtAll   happyReduce_54 = happySpecReduce_1  30 happyReduction_54 happyReduction_54 _ 	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.DeltaAttr+	)++happyReduce_55 = happySpecReduce_1  30 happyReduction_55+happyReduction_55 _+	 =  HappyAbsSyn30 		 (Language.EO.Phi.Syntax.Abs.LambdaAttr 	) -happyReduce_55 = happySpecReduce_2  31 happyReduction_55-happyReduction_55 (HappyAbsSyn34  happy_var_2)+happyReduce_56 = happySpecReduce_2  31 happyReduction_56+happyReduction_56 (HappyAbsSyn34  happy_var_2) 	(HappyAbsSyn32  happy_var_1) 	 =  HappyAbsSyn31 		 (Language.EO.Phi.Syntax.Abs.PeeledObject happy_var_1 happy_var_2 	)-happyReduction_55 _ _  = notHappyAtAll +happyReduction_56 _ _  = notHappyAtAll  -happyReduce_56 = happySpecReduce_3  32 happyReduction_56-happyReduction_56 _+happyReduce_57 = happySpecReduce_3  32 happyReduction_57+happyReduction_57 _ 	(HappyAbsSyn28  happy_var_2) 	_ 	 =  HappyAbsSyn32 		 (Language.EO.Phi.Syntax.Abs.HeadFormation happy_var_2 	)-happyReduction_56 _ _ _  = notHappyAtAll +happyReduction_57 _ _ _  = notHappyAtAll  -happyReduce_57 = happySpecReduce_1  32 happyReduction_57-happyReduction_57 _+happyReduce_58 = happySpecReduce_1  32 happyReduction_58+happyReduction_58 _ 	 =  HappyAbsSyn32 		 (Language.EO.Phi.Syntax.Abs.HeadGlobal 	) -happyReduce_58 = happySpecReduce_1  32 happyReduction_58-happyReduction_58 _+happyReduce_59 = happySpecReduce_1  32 happyReduction_59+happyReduction_59 _ 	 =  HappyAbsSyn32 		 (Language.EO.Phi.Syntax.Abs.HeadThis 	) -happyReduce_59 = happySpecReduce_1  32 happyReduction_59-happyReduction_59 _+happyReduce_60 = happySpecReduce_1  32 happyReduction_60+happyReduction_60 _ 	 =  HappyAbsSyn32 		 (Language.EO.Phi.Syntax.Abs.HeadTermination 	) -happyReduce_60 = happySpecReduce_3  33 happyReduction_60-happyReduction_60 _+happyReduce_61 = happySpecReduce_3  33 happyReduction_61+happyReduction_61 _ 	(HappyAbsSyn28  happy_var_2) 	_ 	 =  HappyAbsSyn33 		 (Language.EO.Phi.Syntax.Abs.ActionApplication happy_var_2 	)-happyReduction_60 _ _ _  = notHappyAtAll +happyReduction_61 _ _ _  = notHappyAtAll  -happyReduce_61 = happySpecReduce_2  33 happyReduction_61-happyReduction_61 (HappyAbsSyn29  happy_var_2)+happyReduce_62 = happySpecReduce_2  33 happyReduction_62+happyReduction_62 (HappyAbsSyn29  happy_var_2) 	_ 	 =  HappyAbsSyn33 		 (Language.EO.Phi.Syntax.Abs.ActionDispatch happy_var_2 	)-happyReduction_61 _ _  = notHappyAtAll +happyReduction_62 _ _  = notHappyAtAll  -happyReduce_62 = happySpecReduce_0  34 happyReduction_62-happyReduction_62  =  HappyAbsSyn34+happyReduce_63 = happySpecReduce_0  34 happyReduction_63+happyReduction_63  =  HappyAbsSyn34 		 ([] 	) -happyReduce_63 = happySpecReduce_2  34 happyReduction_63-happyReduction_63 (HappyAbsSyn34  happy_var_2)+happyReduce_64 = happySpecReduce_2  34 happyReduction_64+happyReduction_64 (HappyAbsSyn34  happy_var_2) 	(HappyAbsSyn33  happy_var_1) 	 =  HappyAbsSyn34 		 ((:) happy_var_1 happy_var_2 	)-happyReduction_63 _ _  = notHappyAtAll +happyReduction_64 _ _  = notHappyAtAll   happyNewToken action sts stk [] =-	action 66 66 notHappyAtAll (HappyState action) sts stk []+	action 68 68 notHappyAtAll (HappyState action) sts stk []  happyNewToken action sts stk (tk:tks) = 	let cont i = action i i tk (HappyState action) sts stk tks in@@ -1180,20 +1241,22 @@ 	PT _ (TS _ 19) -> cont 53; 	PT _ (TS _ 20) -> cont 54; 	PT _ (TS _ 21) -> cont 55;-	PT _ (T_Bytes happy_dollar_dollar) -> cont 56;-	PT _ (T_Function happy_dollar_dollar) -> cont 57;-	PT _ (T_LabelId happy_dollar_dollar) -> cont 58;-	PT _ (T_AlphaIndex happy_dollar_dollar) -> cont 59;-	PT _ (T_LabelMetaId happy_dollar_dollar) -> cont 60;-	PT _ (T_TailMetaId happy_dollar_dollar) -> cont 61;-	PT _ (T_BindingsMetaId happy_dollar_dollar) -> cont 62;-	PT _ (T_ObjectMetaId happy_dollar_dollar) -> cont 63;-	PT _ (T_BytesMetaId happy_dollar_dollar) -> cont 64;-	PT _ (T_MetaFunctionName happy_dollar_dollar) -> cont 65;+	PT _ (TS _ 22) -> cont 56;+	PT _ (TS _ 23) -> cont 57;+	PT _ (T_Bytes happy_dollar_dollar) -> cont 58;+	PT _ (T_Function happy_dollar_dollar) -> cont 59;+	PT _ (T_LabelId happy_dollar_dollar) -> cont 60;+	PT _ (T_AlphaIndex happy_dollar_dollar) -> cont 61;+	PT _ (T_LabelMetaId happy_dollar_dollar) -> cont 62;+	PT _ (T_TailMetaId happy_dollar_dollar) -> cont 63;+	PT _ (T_BindingsMetaId happy_dollar_dollar) -> cont 64;+	PT _ (T_ObjectMetaId happy_dollar_dollar) -> cont 65;+	PT _ (T_BytesMetaId happy_dollar_dollar) -> cont 66;+	PT _ (T_MetaFunctionName happy_dollar_dollar) -> cont 67; 	_ -> happyError' ((tk:tks), []) 	} -happyError_ explist 66 tk tks = happyError' (tks, explist)+happyError_ explist 68 tk tks = happyError' (tks, explist) happyError_ explist _ tk tks = happyError' ((tk:tks), explist)  happyThen :: () => Err a -> (a -> Err b) -> Err b
src/Language/EO/Phi/Syntax/Par.y view
@@ -61,9 +61,11 @@   '↦'                { PT _ (TS _ 16)               }   '∅'                { PT _ (TS _ 17)               }   '⊥'                { PT _ (TS _ 18)               }-  '⟦'                { PT _ (TS _ 19)               }-  '⟧'                { PT _ (TS _ 20)               }-  '⤍'                { PT _ (TS _ 21)               }+  '⌈'                { PT _ (TS _ 19)               }+  '⌉'                { PT _ (TS _ 20)               }+  '⟦'                { PT _ (TS _ 21)               }+  '⟧'                { PT _ (TS _ 22)               }+  '⤍'                { PT _ (TS _ 23)               }   L_Bytes            { PT _ (T_Bytes $$)            }   L_Function         { PT _ (T_Function $$)         }   L_LabelId          { PT _ (T_LabelId $$)          }@@ -128,6 +130,7 @@   | 'ξ' { Language.EO.Phi.Syntax.Abs.ThisObject }   | '⊥' { Language.EO.Phi.Syntax.Abs.Termination }   | Object '[' 'ξ' '↦' Object ']' { Language.EO.Phi.Syntax.Abs.MetaSubstThis $1 $5 }+  | '⌈' Object ',' Object '⌉' { Language.EO.Phi.Syntax.Abs.MetaContextualize $2 $4 }   | ObjectMetaId { Language.EO.Phi.Syntax.Abs.MetaObject $1 }   | Object '*' TailMetaId { Language.EO.Phi.Syntax.Abs.MetaTailContext $1 $3 }   | MetaFunctionName '(' Object ')' { Language.EO.Phi.Syntax.Abs.MetaFunction $1 $3 }
src/Language/EO/Phi/Syntax/Print.hs view
@@ -1,3 +1,36 @@+{-+Copyright EO/Polystat Development Team (c) 2023++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of EO/Polystat Development Team nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}+ -- File generated by the BNF Converter (bnfc 2.9.5).  {-# LANGUAGE CPP #-}@@ -178,6 +211,7 @@     Language.EO.Phi.Syntax.Abs.ThisObject -> prPrec i 0 (concatD [doc (showString "\958")])     Language.EO.Phi.Syntax.Abs.Termination -> prPrec i 0 (concatD [doc (showString "\8869")])     Language.EO.Phi.Syntax.Abs.MetaSubstThis object1 object2 -> prPrec i 0 (concatD [prt 0 object1, doc (showString "["), doc (showString "\958"), doc (showString "\8614"), prt 0 object2, doc (showString "]")])+    Language.EO.Phi.Syntax.Abs.MetaContextualize object1 object2 -> prPrec i 0 (concatD [doc (showString "\8968"), prt 0 object1, doc (showString ","), prt 0 object2, doc (showString "\8969")])     Language.EO.Phi.Syntax.Abs.MetaObject objectmetaid -> prPrec i 0 (concatD [prt 0 objectmetaid])     Language.EO.Phi.Syntax.Abs.MetaTailContext object tailmetaid -> prPrec i 0 (concatD [prt 0 object, doc (showString "*"), prt 0 tailmetaid])     Language.EO.Phi.Syntax.Abs.MetaFunction metafunctionname object -> prPrec i 0 (concatD [prt 0 metafunctionname, doc (showString "("), prt 0 object, doc (showString ")")])
src/Language/EO/Phi/TH.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} module Language.EO.Phi.TH where  import Data.Aeson (Options (..), camelTo2)
src/Language/EO/Phi/ToLaTeX.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}@@ -59,6 +82,7 @@   toLatex MetaTailContext{} = error "rendering MetaTailContext in LaTex format"   toLatex (MetaFunction _ _) = error "rendering MetaFunction in LaTex format"   toLatex (MetaSubstThis obj1 obj2) = LaTeX "\\mathbb{S}(" <> toLatex obj1 <> ", " <> toLatex obj2 <> ")"+  toLatex (MetaContextualize obj1 obj2) = LaTeX "\\lceil" <> toLatex obj1 <> ", " <> toLatex obj2 <> "\\rceil"  removeOrgEolang :: String -> String removeOrgEolang = T.unpack . T.replace "Q.org.eolang" "QQ" . T.pack
src/Language/EO/Test/Yaml.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleInstances #-} {-# OPTIONS_GHC -Wno-orphans #-}
src/Language/EO/Test/YamlSpec.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE OverloadedRecordDot #-} 
test/Language/EO/Phi/DataizeSpec.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE RecordWildCards #-}
test/Language/EO/PhiSpec.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLists #-}
test/Language/EO/Rules/PhiPaperSpec.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}@@ -305,14 +328,19 @@ parseTests = Yaml.decodeFileThrow  spec :: Spec-spec = do-  ruleset <- runIO $ parseRuleSetFromFile "./test/eo/phi/rules/yegor.yaml"-  let rulesFromYaml = map convertRuleNamed (rules ruleset)-  inputs <- runIO $ parseTests "./test/eo/phi/confluence.yaml"-  describe "Yegor's rules" $ do-    it "Are confluent (via QuickCheck)" (confluent rulesFromYaml)-    describe-      "Are confluent (regression tests)"-      $ forM_ (tests inputs)-      $ \input -> do-        it (printTree input) (input `shouldSatisfy` confluentOnObject rulesFromYaml)+spec =+  forM_+    [ ("Old Yegor's rules", "test/eo/phi/rules/yegor.yaml")+    , ("New Yegor's rules", "test/eo/phi/rules/new.yaml")+    ]+    $ \(name, rulesFile) -> do+      ruleset <- runIO $ parseRuleSetFromFile rulesFile+      let rulesFromYaml = map convertRuleNamed (rules ruleset)+      inputs <- runIO $ parseTests "test/eo/phi/confluence.yaml"+      describe name $ do+        it "Are confluent (via QuickCheck)" (confluent rulesFromYaml)+        describe+          "Are confluent (regression tests)"+          $ forM_ (tests inputs)+          $ \input -> do+            it (printTree input) (input `shouldSatisfy` confluentOnObject rulesFromYaml)
test/Language/EO/YamlSpec.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE BlockArguments #-}  module Language.EO.YamlSpec where@@ -9,5 +32,6 @@ spec =   Test.spec     [ "test/eo/phi/rules/yegor.yaml"+    , "test/eo/phi/rules/new.yaml"     , "test/eo/phi/rules/streams.yaml"     ]
test/Main.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} module Main where  import Main.Utf8
test/Spec.hs view
@@ -1,1 +1,24 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# OPTIONS_GHC -F -pgmF hspec-discover -optF --module-name=Spec #-}
test/Test/EO/Phi.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-}
test/Test/Metrics/Phi.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-}
test/doctests/Main.hs view
@@ -1,3 +1,26 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -} module Main where  import System.Environment (getArgs)