smcdel 1.0.0 → 1.1.0
raw patch · 58 files changed
+3251/−2784 lines, 58 filesdep −lensdep ~HasCacBDDsetup-changed
Dependencies removed: lens
Dependency ranges changed: HasCacBDD
Files
- CHANGELOG.md +55/−0
- README.md +17/−14
- Setup.hs +0/−2
- bench/diningcrypto.hs +2/−0
- bench/muddychildren.hs +12/−12
- bench/sumandproduct.hs +1/−1
- exec/smcdel-web.hs +50/−25
- exec/smcdel.hs +16/−14
- package.yaml +112/−0
- smcdel.cabal +200/−159
- src/SMCDEL/Examples.hs +22/−13
- src/SMCDEL/Examples/Cheryl.hs +127/−0
- src/SMCDEL/Examples/CherylDemo.hs +46/−0
- src/SMCDEL/Examples/CoinFlip.hs +2/−3
- src/SMCDEL/Examples/DiningCrypto.hs +1/−1
- src/SMCDEL/Examples/DoorMat.hs +69/−0
- src/SMCDEL/Examples/DrinkLogic.hs +0/−3
- src/SMCDEL/Examples/GossipKw.hs +11/−7
- src/SMCDEL/Examples/GossipS5.hs +6/−9
- src/SMCDEL/Examples/LetterPassing.hs +75/−0
- src/SMCDEL/Examples/MuddyChildren.hs +24/−4
- src/SMCDEL/Examples/MuddyPlanning.hs +13/−0
- src/SMCDEL/Examples/Prisoners.hs +69/−83
- src/SMCDEL/Examples/RussianCards.hs +68/−68
- src/SMCDEL/Examples/SallyAnne.hs +16/−19
- src/SMCDEL/Examples/SimpleK.hs +85/−0
- src/SMCDEL/Examples/SimpleS5.hs +51/−0
- src/SMCDEL/Examples/SumAndProduct.hs +1/−1
- src/SMCDEL/Examples/WhatSum.hs +1/−8
- src/SMCDEL/Explicit/DEMO_S5.hs +90/−80
- src/SMCDEL/Explicit/K.hs +256/−95
- src/SMCDEL/Explicit/K/Change.hs +0/−133
- src/SMCDEL/Explicit/S5.hs +237/−74
- src/SMCDEL/Internal/Help.hs +6/−1
- src/SMCDEL/Internal/Lex.x +15/−0
- src/SMCDEL/Internal/Parse.y +14/−5
- src/SMCDEL/Internal/TaggedBDD.hs +46/−0
- src/SMCDEL/Internal/TexDisplay.hs +6/−6
- src/SMCDEL/Language.hs +95/−13
- src/SMCDEL/Other/MCTRIANGLE.hs +4/−4
- src/SMCDEL/Other/Planning.hs +160/−16
- src/SMCDEL/Symbolic/K.hs +296/−121
- src/SMCDEL/Symbolic/K/Change.hs +0/−197
- src/SMCDEL/Symbolic/S5.hs +294/−74
- src/SMCDEL/Symbolic/S5/Change.hs +0/−113
- src/SMCDEL/Symbolic/S5_CUDD.hs +13/−2
- src/SMCDEL/Translations/Convert.hs +26/−0
- src/SMCDEL/Translations/K.hs +53/−17
- src/SMCDEL/Translations/K/Change.hs +0/−48
- src/SMCDEL/Translations/S5.hs +45/−37
- stack.yaml +6/−9
- static/ace.js +17/−0
- static/index.html +44/−13
- static/viz-lite.js +198/−1173
- test/Examples.hs +55/−24
- test/K.hs +96/−0
- test/NonS5.hs +0/−70
- test/Translations.hs +27/−13
+ CHANGELOG.md view
@@ -0,0 +1,55 @@+# SMCDEL Changelog++## upcoming++...+++## v1.1.0 (2019-12-09)++New:++- minimization under bisimulation+- dynamic operators in formulas via `Data.Dynamic`+- multipointed models, action models, structures and events+- added Cheryl's Birthday and Cheryl's Age examples+- experimental functions for epistemic planning (with small examples)+- more instances for QuickCheck, more tests+- add S5 to K conversion in `SMCDEL.Translations.Convert`+- improvements to the web interface++Changed:++- polymorphic `update` replaces `productUpdate`, `transform`, `pubAnnounce` etc.+- factual change by default: merge `Symbolic.S5.Change` into `Symbolic.S5` etc.+- remove changeprops in (Kn)Trf to avoid redundancy with changelaw+- move BDD related functions to HasCacBDD (`substit`, `substitSimul`)+- avoid `Data.Map` in S5 modules, no longer depend on `lens`+- replace `.cabal` file with a `package.yml` for `hpack`+++## v1.0.0 (2018-02-26)++New:++- action models and transformers with factual change+- NonS5 modules, now called K, are no longer experimental+- separate types State and World+- automated testing and benchmarks+- lots of bugfixes++Removed:++- removed support for robbed, NooBDD and Z3+- old Example files+++## v0.2 (2015-11-17)++First release with a standalone-executable.+++## v0.1 (2015-09-21)++The first public version of SMCDEL. Note that this version does not contain a+stand-alone executable. It can only be used as a Haskell library.
README.md view
@@ -1,9 +1,11 @@ # SMCDEL [](https://github.com/jrclogic/SMCDEL/releases)+[](https://hackage.haskell.org/package/smcdel) [](https://travis-ci.org/jrclogic/SMCDEL)+[](https://zenodo.org/badge/latestdoi/36519077) -A symbolic model checker for Dynamic Epistemic Logic.+A symbolic model checker for [Dynamic Epistemic Logic](https://plato.stanford.edu/entries/dynamic-epistemic). You can find a complete literate Haskell documentation in the file [SMCDEL.pdf](https://github.com/jrclogic/SMCDEL/raw/master/SMCDEL.pdf).@@ -18,13 +20,18 @@ [Johan van Benthem, Jan van Eijck, Malvin Gattinger, and Kaile Su: *Symbolic Model Checking for Dynamic Epistemic Logic --- S5 and Beyond.* Journal of Logic and Computation,-2017](https://homepages.cwi.nl/~jve/papers/16/pdfs/2016-05-23-del-bdd-lori-journal.pdf).+2017](https://pure.uva.nl/ws/files/25483686/2016_05_23_del_bdd_lori_journal.pd.pdf). [Malvin Gattinger: *Towards Symbolic Factual Change in DEL.* ESSLLI 2017 student session, 2017](https://w4eg.de/malvin/illc/2017-07-symbolicfactualchange.pdf). +[Malvin Gattinger:+*New Directions in Model Checking Dynamic Epistemic Logic.*+PhD thesis, ILLC, Amsterdam,+2018](https://malv.in/phdthesis/).+ ## Online You can try SMCDEL online here: https://w4eg.de/malvin/illc/smcdelweb/@@ -32,7 +39,7 @@ ## Dependencies -- [graphviz](http://graphviz.org/)+- [graphviz](https://graphviz.org/) - [dot2tex](https://github.com/kjellmf/dot2tex) On Debian, just do `sudo apt install graphviz dot2tex`.@@ -49,8 +56,7 @@ - `stack install` will put two executables `smcdel` and `smcdel-web` into ~/.local/bin which should be in your `PATH` variable. -2) Create a text file which describes the knowledge structure and-the formulas you want to check for truth or validity:+2) Create a text file `MuddyShort.smcdel.txt` which describes the knowledge structure and the formulas you want to check for truth or validity: ``` -- Three Muddy Children in SMCDEL@@ -60,7 +66,7 @@ bob: 1,3 carol: 1,2 WHERE?- [ ! (1|2|3) ] alices knows whether 1+ [ ! (1|2|3) ] alice knows whether 1 VALID? [ ! (1|2|3) ] [ ! ((~ (alice knows whether 1)) & (~ (bob knows whether 2)) & (~ (carol knows whether 3))) ]@@ -68,7 +74,7 @@ (alice,bob,carol) comknow that (1 & 2 & 3) ``` -3) Run "smcdel textfile" resulting in:+3) Run `smcdel MuddyShort.smcdel.txt` resulting in: ``` >> smcdel MuddyShort.smcdel.txt@@ -89,7 +95,10 @@ To deal with more complex models and formulas, use SMCDEL as a Haskell module. -Examples can be found in `Examples.hs` and the `Bench` folder.+Examples can be found in the folders+ [src/SMCDEL/Examples](https://github.com/jrclogic/SMCDEL/tree/master/src/SMCDEL/Examples)+and+ [bench](https://github.com/jrclogic/SMCDEL/tree/master/bench). ## Used BDD packages@@ -99,9 +108,3 @@ - [Data.HasCacBDD](https://github.com/m4lvin/HasCacBDD) which runs CacBDD from <http://kailesu.net/CacBDD/> - [Cudd](https://github.com/davidcock/cudd) ([with some patches](https://github.com/m4lvin/cudd))---## Experimental Stuff--`SMCDEL.Other.NonS5` implements general knowledge structures. They are-equivalent to Kripke models which are not based on equivalence relations.
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
bench/diningcrypto.hs view
@@ -1,9 +1,11 @@ module Main (main) where+ import Control.Monad (when) import Data.Time (diffUTCTime,getCurrentTime,NominalDiffTime) import System.Environment (getArgs) import System.IO (hSetBuffering,BufferMode(NoBuffering),stdout) import Text.Printf+ import SMCDEL.Language import SMCDEL.Symbolic.S5 import SMCDEL.Examples.DiningCrypto
bench/muddychildren.hs view
@@ -1,8 +1,9 @@ module Main where+ import Criterion.Main import Data.Function import Data.List-import Data.Ord (comparing)+ import SMCDEL.Language import SMCDEL.Examples.MuddyChildren import SMCDEL.Internal.Help (apply)@@ -14,7 +15,6 @@ import qualified SMCDEL.Translations.K import qualified SMCDEL.Other.MCTRIANGLE import qualified SMCDEL.Symbolic.K-import qualified SMCDEL.Explicit.K checkForm :: Int -> Int -> Form checkForm n 0 = nobodyknows n@@ -49,7 +49,7 @@ rel = [ (show i, erelFor i) | i <- [1..n] ] where erelFor i = sort $ map sort $ groupBy ((==) `on` setForAt i) $- sortBy (comparing (setForAt i)) ws+ sortOn (setForAt i) ws setForAt i s = delete (P i) $ setAt s setAt s = map fst $ filter snd (apply val s) val = zip ws table@@ -57,12 +57,12 @@ table = foldl buildTable [[]] [P k | k<- [1..n]] buildTable partrows p = [ (p,v):pr | v <-[True,False], pr<-partrows ] -findNumberNonS5 :: Int -> Int -> Int-findNumberNonS5 = findNumberWith (mudBelScnInit, SMCDEL.Symbolic.K.evalViaBdd)+findNumberK :: Int -> Int -> Int+findNumberK = findNumberWith (mudBelScnInit, SMCDEL.Symbolic.K.evalViaBdd) -findNumberNonS5Trans :: Int -> Int -> Int-findNumberNonS5Trans = findNumberWith (start,SMCDEL.Symbolic.K.evalViaBdd) where- start n m = SMCDEL.Translations.K.kripkeToBls $ SMCDEL.Explicit.K.mudGenKrpInit n m+findNumberTransK :: Int -> Int -> Int+findNumberTransK = findNumberWith (start,SMCDEL.Symbolic.K.evalViaBdd) where+ start n m = SMCDEL.Translations.K.kripkeToBls $ mudGenKrpInit n m mudDemoKrpInit :: Int -> Int -> DEMO_S5.EpistM [Bool] mudDemoKrpInit n m = DEMO_S5.Mo states agents [] rels points where@@ -85,12 +85,12 @@ findNumberTriangle :: Int -> Int -> Int findNumberTriangle n m = findNumberTriangleLoop 0 start where- start = SMCDEL.Other.MCTRIANGLE.update (SMCDEL.Other.MCTRIANGLE.mcModel (n-m,m)) (SMCDEL.Other.MCTRIANGLE.Qf SMCDEL.Other.MCTRIANGLE.some)+ start = SMCDEL.Other.MCTRIANGLE.mcUpdate (SMCDEL.Other.MCTRIANGLE.mcModel (n-m,m)) (SMCDEL.Other.MCTRIANGLE.Qf SMCDEL.Other.MCTRIANGLE.some) findNumberTriangleLoop :: Int -> SMCDEL.Other.MCTRIANGLE.McModel -> Int findNumberTriangleLoop count curMod = if SMCDEL.Other.MCTRIANGLE.eval curMod SMCDEL.Other.MCTRIANGLE.nobodyknows- then findNumberTriangleLoop (count+1) (SMCDEL.Other.MCTRIANGLE.update curMod SMCDEL.Other.MCTRIANGLE.nobodyknows)+ then findNumberTriangleLoop (count+1) (SMCDEL.Other.MCTRIANGLE.mcUpdate curMod SMCDEL.Other.MCTRIANGLE.nobodyknows) else count main :: IO ()@@ -98,10 +98,10 @@ [ ("Triangle" , findNumberTriangle , [7..40] ) , ("CacBDD" , findNumberCacBDD , [3..40] ) , ("CUDD" , findNumberCUDD , [3..40] )- , ("NonS5" , findNumberNonS5 , [3..12] )+ , ("K" , findNumberK , [3..12] ) , ("DEMOS5" , findNumberDemoS5 , [3..12] ) , ("Trans" , findNumberTrans , [3..12] )- , ("NonS5Trans", findNumberNonS5Trans, [3..11] ) ])+ , ("TransK" , findNumberTransK , [3..11] ) ]) where mybench (name,f,range) = bgroup name $ map (run f) range run f k = bench (show k) $ whnf (\n -> f n n) k
bench/sumandproduct.hs view
@@ -18,7 +18,7 @@ partWith op = groupBy (\(x,y) (x',y') -> op x y == op x' y') $ sortBy (\(x,y) (x',y') -> compare (op x y) (op x' y')) pairs -fmrs1e, fmrp2e, fmrs3e :: Form (Int,Int)+fmrs1e, fmrp2e, fmrs3e :: DemoForm (Int,Int) --Sum says: I knew that you didn't know the two numbers. fmrs1e = Kn alice (Conj [Disj[Ng (Info p),
exec/smcdel-web.hs view
@@ -13,53 +13,63 @@ import qualified Data.Text as T import qualified Data.Text.Encoding as E import qualified Data.Text.Lazy as TL+import Data.HasCacBDD.Visuals (svgGraph)+import qualified Language.Javascript.JQuery as JQuery+import Language.Haskell.TH.Syntax+ import SMCDEL.Internal.Lex import SMCDEL.Internal.Parse import SMCDEL.Symbolic.S5 import SMCDEL.Internal.TexDisplay import SMCDEL.Translations.S5 import SMCDEL.Language-import Data.HasCacBDD.Visuals (svgGraph)-import qualified Language.Javascript.JQuery as JQuery-import Language.Haskell.TH.Syntax main :: IO () main = do- putStrLn $ "SMCDEL " ++ showVersion version+ putStrLn $ "SMCDEL " ++ showVersion version ++ " -- https://github.com/jrclogic/SMCDEL" putStrLn "Please open this link: http://localhost:3000/index.html" scotty 3000 $ do get "" $ redirect "index.html" get "/" $ redirect "index.html"- get "/index.html" . html . TL.fromStrict $ embeddedFile "index.html"+ get "/index.html" . html . TL.fromStrict $ addVersionNumber $ embeddedFile "index.html" get "/jquery.js" . html . TL.fromStrict $ embeddedFile "jquery.js"+ get "/ace.js" . html . TL.fromStrict $ embeddedFile "ace.js" get "/viz-lite.js" . html . TL.fromStrict $ embeddedFile "viz-lite.js" get "/getExample" $ do this <- param "filename" html . TL.fromStrict $ embeddedFile this post "/check" $ do smcinput <- param "smcinput"- let (CheckInput vocabInts lawform obs jobs) = parse $ alexScanTokens smcinput- let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)- knstring <- liftIO $ showStructure mykns- let results = concatMap (\j -> "<p>" ++ doJobWeb mykns j ++ "</p>") jobs- html $ mconcat- [ TL.pack knstring- , "<hr />\n"- , TL.pack results ]+ case alexScanTokensSafe smcinput of+ Left pos -> webError "Lex" pos+ Right lexResult -> case parse lexResult of+ Left pos -> webError "Parse" pos+ Right (CheckInput vocabInts lawform obs jobs) -> do+ let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)+ knstring <- liftIO $ showStructure mykns+ let results = concatMap (\j -> "<p>" ++ doJobWeb mykns j ++ "</p>") jobs+ html $ mconcat+ [ TL.pack knstring+ , "<hr />\n"+ , TL.pack results ] post "/knsToKripke" $ do smcinput <- param "smcinput"- let (CheckInput vocabInts lawform obs _) = parse $ alexScanTokens smcinput- let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)- _ <- liftIO $ showStructure mykns -- this moves parse errors to scotty- if numberOfStates mykns > 32- then html . TL.pack $ "Sorry, I will not draw " ++ show (numberOfStates mykns) ++ " states!"- else do- let (myKripke, _) = knsToKripke (mykns, head $ statesOf mykns) -- ignore actual world- html $ TL.concat- [ TL.pack "<div id='here'></div>"- , TL.pack "<script>document.getElementById('here').innerHTML += Viz('"- , textDot myKripke- , TL.pack "');</script>" ]+ case alexScanTokensSafe smcinput of+ Left pos -> webError "Lex" pos+ Right lexResult -> case parse lexResult of+ Left pos -> webError "Parse" pos+ Right (CheckInput vocabInts lawform obs _) -> do+ let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)+ _ <- liftIO $ showStructure mykns -- this moves parse errors to scotty+ if numberOfStates mykns > 32+ then html . TL.pack $ "Sorry, I will not draw " ++ show (numberOfStates mykns) ++ " states!"+ else do+ let (myKripke, _) = knsToKripke (mykns, head $ statesOf mykns) -- ignore actual world+ html $ TL.concat+ [ TL.pack "<div id='here'></div>"+ , TL.pack "<script>document.getElementById('here').innerHTML += Viz('"+ , textDot myKripke+ , TL.pack "');</script>" ] doJobWeb :: KnowStruct -> Job -> String doJobWeb mykns (ValidQ f) = unlines@@ -89,8 +99,23 @@ embeddedFile s = case s of "index.html" -> E.decodeUtf8 $(embedFile "static/index.html") "viz-lite.js" -> E.decodeUtf8 $(embedFile "static/viz-lite.js")+ "ace.js" -> E.decodeUtf8 $(embedFile "static/ace.js") "jquery.js" -> E.decodeUtf8 $(embedFile =<< runIO JQuery.file) "MuddyChildren" -> E.decodeUtf8 $(embedFile "Examples/MuddyChildren.smcdel.txt") "DiningCryptographers" -> E.decodeUtf8 $(embedFile "Examples/DiningCryptographers.smcdel.txt") "DrinkingLogicians" -> E.decodeUtf8 $(embedFile "Examples/DrinkingLogicians.smcdel.txt") _ -> error "File not found."++addVersionNumber :: T.Text -> T.Text+addVersionNumber = T.replace "<!-- VERSION NUMBER -->" (T.pack $ showVersion version)++webError :: String -> (Int,Int) -> ActionM ()+webError kind (lin,col) = html $ TL.pack $ concat+ [ "<p class='error'>", kind, " error in line ", show lin, ", column ", show col, "</p>\n"+ , "<script>"+ , "editor.clearSelection();"+ , "editor.moveCursorTo(", show (lin - 1), ",", show col, ");"+ , "editor.renderer.scrollCursorIntoView({row: ", show (lin - 1),", column: ", show col, "}, 0.5);"+ , "editor.focus();"+ , "</script>"+ ]
exec/smcdel.hs view
@@ -28,20 +28,22 @@ let outHandle = if showMode then texFileHandle else stdout unless texMode $ putStrLn infoline when texMode $ hPutStrLn outHandle texPrelude- let (CheckInput vocabInts lawform obs jobs) = parse $ alexScanTokens input- let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)- when texMode $- hPutStrLn outHandle $ unlines- [ "\\section{Given Knowledge Structure}", "\\[ (\\mathcal{F},s) = (" ++ tex ((mykns,[])::KnowScene) ++ ") \\]", "\\section{Results}" ]- mapM_ (doJob outHandle texMode mykns) jobs- when texMode $ hPutStrLn outHandle texEnd- when showMode $ do- hClose outHandle- let command = "cd /tmp && pdflatex -interaction=nonstopmode " ++ takeBaseName texFilePath ++ ".tex > " ++ takeBaseName texFilePath ++ ".pdflatex.log && xdg-open "++ takeBaseName texFilePath ++ ".pdf"- putStrLn $ "Now running: " ++ command- _ <- system command- return ()- putStrLn "\nDoei!"+ case parse $ alexScanTokens input of+ Left (lin,col) -> error ("Parse error in line " ++ show lin ++ ", column " ++ show col)+ Right (CheckInput vocabInts lawform obs jobs) -> do+ let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)+ when texMode $+ hPutStrLn outHandle $ unlines+ [ "\\section{Given Knowledge Structure}", "\\[ (\\mathcal{F},s) = (" ++ tex ((mykns,[])::KnowScene) ++ ") \\]", "\\section{Results}" ]+ mapM_ (doJob outHandle texMode mykns) jobs+ when texMode $ hPutStrLn outHandle texEnd+ when showMode $ do+ hClose outHandle+ let command = "cd /tmp && pdflatex -interaction=nonstopmode " ++ takeBaseName texFilePath ++ ".tex > " ++ takeBaseName texFilePath ++ ".pdflatex.log && xdg-open "++ takeBaseName texFilePath ++ ".pdf"+ putStrLn $ "Now running: " ++ command+ _ <- system command+ return ()+ putStrLn "\nDoei!" doJob :: Handle -> Bool -> KnowStruct -> Job -> IO () doJob outHandle True mykns (ValidQ f) = do
+ package.yaml view
@@ -0,0 +1,112 @@+name: smcdel+version: 1.1.0+synopsis: Symbolic Model Checking for Dynamic Epistemic Logic+description: See README.md and SMCDEL.pdf for references and documentation.+maintainer: Malvin Gattinger <malvin@w4eg.eu>+license: GPL-2+github: jrclogic/SMCDEL+category: Logic++ghc-options: -Wall++extra-source-files:+ - README.md+ - CHANGELOG.md+ - stack.yaml+ - package.yaml+ - static/ace.js+ - static/index.html+ - static/viz-lite.js+ - Examples/DiningCryptographers.smcdel.txt+ - Examples/MuddyChildren.smcdel.txt+ - Examples/DrinkingLogicians.smcdel.txt++library:+ source-dirs:+ - src+ dependencies:+ - base >= 4.8 && < 5+ - array+ - containers+ - cudd == 0.1.0.0+ - graphviz+ - HasCacBDD >= 0.1.0.1 && < 0.2+ - process+ - QuickCheck+ - tagged+ - temporary+ - text+ - time++executables:+ smcdel:+ source-dirs: exec+ main: smcdel.hs+ other-modules: Paths_smcdel+ dependencies:+ - base >= 4.8 && < 5+ - ansi-terminal+ - directory+ - filepath+ - process+ - smcdel+ smcdel-web:+ source-dirs: exec+ main: smcdel-web.hs+ dependencies:+ - base >= 4.8 && < 5+ - file-embed+ - scotty+ - HasCacBDD >= 0.1.0.1 && < 0.2+ - js-jquery >= 3+ - smcdel+ - template-haskell+ - text++tests:+ examples:+ main: test/Examples.hs+ dependencies:+ - base >= 4.8 && < 5+ - hspec+ - QuickCheck+ - smcdel+ translations:+ main: test/Translations.hs+ dependencies:+ - base >= 4.8 && < 5+ - hspec+ - smcdel+ k:+ main: test/K.hs+ dependencies:+ - base >= 4.8 && < 5+ - containers+ - hspec+ - smcdel++benchmarks:+ bench-diningcrypto:+ source-dirs: bench+ main: diningcrypto.hs+ dependencies:+ - base >= 4.8 && < 5+ - smcdel+ - time++ bench-sumandproduct:+ source-dirs: bench+ main: sumandproduct.hs+ dependencies:+ - base >= 4.8 && < 5+ - criterion+ - smcdel+ - time++ bench-muddychildren:+ source-dirs: bench+ main: muddychildren.hs+ dependencies:+ - base >= 4.8 && < 5+ - smcdel+ - criterion
smcdel.cabal view
@@ -1,169 +1,210 @@-name: smcdel-version: 1.0.0-synopsis: Symbolic Model Checking for Dynamic Epistemic Logic-description: See README.md and SMCDEL.pdf for references and documentation.-homepage: https://github.com/jrclogic/SMCDEL-license: GPL-2-license-file: LICENSE-author: Malvin Gattinger-maintainer: malvin@w4eg.eu-category: Logic-build-type: Simple-cabal-version: >=1.23-extra-source-files: README.md- stack.yaml- static/index.html- static/viz-lite.js- Examples/DiningCryptographers.smcdel.txt- Examples/MuddyChildren.smcdel.txt- Examples/DrinkingLogicians.smcdel.txt+cabal-version: 1.12 -Library- ghc-options: -Wall- default-language: Haskell2010- hs-source-dirs: src- exposed-modules: SMCDEL.Examples- SMCDEL.Examples.CoinFlip- SMCDEL.Examples.DiningCrypto- SMCDEL.Examples.DrinkLogic- SMCDEL.Examples.GossipKw- SMCDEL.Examples.GossipS5- SMCDEL.Examples.MuddyChildren- SMCDEL.Examples.Prisoners- SMCDEL.Examples.RussianCards- SMCDEL.Examples.SallyAnne- SMCDEL.Examples.SumAndProduct- SMCDEL.Examples.WhatSum- SMCDEL.Explicit.DEMO_S5- SMCDEL.Explicit.K- SMCDEL.Explicit.K.Change- SMCDEL.Explicit.S5- SMCDEL.Internal.Help- SMCDEL.Internal.Lex- SMCDEL.Internal.MyHaskCUDD- SMCDEL.Internal.Parse- SMCDEL.Internal.TexDisplay- SMCDEL.Internal.Token- SMCDEL.Language- SMCDEL.Other.BDD2Form- SMCDEL.Other.MCTRIANGLE- SMCDEL.Other.Planning- SMCDEL.Symbolic.K- SMCDEL.Symbolic.K.Change- SMCDEL.Symbolic.S5- SMCDEL.Symbolic.S5_CUDD- SMCDEL.Symbolic.S5.Change- SMCDEL.Translations.K- SMCDEL.Translations.K.Change- SMCDEL.Translations.S5- build-depends: base >= 4.8 && < 5,- array,- containers,- cudd == 0.1.0.0,- graphviz,- HasCacBDD == 0.1.0.0,- lens,- process,- QuickCheck,- tagged,- temporary,- text,- time+-- This file has been generated from package.yaml by hpack version 0.31.2.+--+-- see: https://github.com/sol/hpack+--+-- hash: ad827f67fb95cfcc9ac8f8536f9aa70fe08e028455b94f37a23d2006ef155305 -Executable smcdel- ghc-options: -Wall- default-language: Haskell2010- main-is: exec/smcdel.hs- other-modules: Paths_smcdel- build-tools: alex, happy- build-depends: base >= 4.8 && < 5,- ansi-terminal,- directory,- filepath,- process,- smcdel+name: smcdel+version: 1.1.0+synopsis: Symbolic Model Checking for Dynamic Epistemic Logic+description: See README.md and SMCDEL.pdf for references and documentation.+category: Logic+homepage: https://github.com/jrclogic/SMCDEL#readme+bug-reports: https://github.com/jrclogic/SMCDEL/issues+maintainer: Malvin Gattinger <malvin@w4eg.eu>+license: GPL-2+license-file: LICENSE+build-type: Simple+extra-source-files:+ README.md+ CHANGELOG.md+ stack.yaml+ package.yaml+ static/ace.js+ static/index.html+ static/viz-lite.js+ Examples/DiningCryptographers.smcdel.txt+ Examples/MuddyChildren.smcdel.txt+ Examples/DrinkingLogicians.smcdel.txt -Executable smcdel-web- ghc-options: -Wall- default-language: Haskell2010- main-is: exec/smcdel-web.hs- other-modules: Paths_smcdel- build-tools: alex, happy- build-depends: base >= 4.8 && < 5,- file-embed,- scotty,- HasCacBDD,- js-jquery >= 3,- smcdel,- template-haskell,- text+source-repository head+ type: git+ location: https://github.com/jrclogic/SMCDEL -Test-Suite translations- ghc-options: -Wall- default-language: Haskell2010- hs-source-dirs: test- main-is: Translations.hs- type: exitcode-stdio-1.0- build-depends: base >= 4.8 && < 5,- hspec,- QuickCheck,- smcdel+library+ exposed-modules:+ SMCDEL.Examples+ SMCDEL.Examples.Cheryl+ SMCDEL.Examples.CherylDemo+ SMCDEL.Examples.CoinFlip+ SMCDEL.Examples.DiningCrypto+ SMCDEL.Examples.DoorMat+ SMCDEL.Examples.DrinkLogic+ SMCDEL.Examples.GossipKw+ SMCDEL.Examples.GossipS5+ SMCDEL.Examples.LetterPassing+ SMCDEL.Examples.MuddyChildren+ SMCDEL.Examples.MuddyPlanning+ SMCDEL.Examples.Prisoners+ SMCDEL.Examples.RussianCards+ SMCDEL.Examples.SallyAnne+ SMCDEL.Examples.SimpleK+ SMCDEL.Examples.SimpleS5+ SMCDEL.Examples.SumAndProduct+ SMCDEL.Examples.WhatSum+ SMCDEL.Explicit.DEMO_S5+ SMCDEL.Explicit.K+ SMCDEL.Explicit.S5+ SMCDEL.Internal.Help+ SMCDEL.Internal.Lex+ SMCDEL.Internal.MyHaskCUDD+ SMCDEL.Internal.Parse+ SMCDEL.Internal.TaggedBDD+ SMCDEL.Internal.TexDisplay+ SMCDEL.Internal.Token+ SMCDEL.Language+ SMCDEL.Other.BDD2Form+ SMCDEL.Other.MCTRIANGLE+ SMCDEL.Other.Planning+ SMCDEL.Symbolic.K+ SMCDEL.Symbolic.S5+ SMCDEL.Symbolic.S5_CUDD+ SMCDEL.Translations.Convert+ SMCDEL.Translations.K+ SMCDEL.Translations.S5+ other-modules:+ Paths_smcdel+ hs-source-dirs:+ src+ ghc-options: -Wall+ build-depends:+ HasCacBDD >=0.1.0.1 && <0.2+ , QuickCheck+ , array+ , base >=4.8 && <5+ , containers+ , cudd ==0.1.0.0+ , graphviz+ , process+ , tagged+ , temporary+ , text+ , time+ default-language: Haskell2010 -Test-Suite examples- ghc-options: -Wall- default-language: Haskell2010- hs-source-dirs: test- main-is: Examples.hs- type: exitcode-stdio-1.0- build-depends: base >= 4.8 && < 5,- hspec,- QuickCheck,- smcdel+executable smcdel+ main-is: smcdel.hs+ other-modules:+ Paths_smcdel+ hs-source-dirs:+ exec+ ghc-options: -Wall+ build-depends:+ ansi-terminal+ , base >=4.8 && <5+ , directory+ , filepath+ , process+ , smcdel+ default-language: Haskell2010 -Test-Suite nonS5- ghc-options: -Wall- default-language: Haskell2010- hs-source-dirs: test- main-is: NonS5.hs- type: exitcode-stdio-1.0- build-depends: base >= 4.8 && < 5,- containers,- hspec,- QuickCheck,- smcdel+executable smcdel-web+ main-is: smcdel-web.hs+ other-modules:+ Paths_smcdel+ hs-source-dirs:+ exec+ ghc-options: -Wall+ build-depends:+ HasCacBDD >=0.1.0.1 && <0.2+ , base >=4.8 && <5+ , file-embed+ , js-jquery >=3+ , scotty+ , smcdel+ , template-haskell+ , text+ default-language: Haskell2010 -Benchmark bench-diningcrypto- ghc-options: -Wall- default-language: Haskell2010- hs-source-dirs: bench- main-is: diningcrypto.hs- type: exitcode-stdio-1.0- build-depends: base >= 4.8 && < 5,- smcdel,- time+test-suite examples+ type: exitcode-stdio-1.0+ main-is: test/Examples.hs+ other-modules:+ Paths_smcdel+ ghc-options: -Wall+ build-depends:+ QuickCheck+ , base >=4.8 && <5+ , hspec+ , smcdel+ default-language: Haskell2010 -Benchmark bench-sumandproduct- ghc-options: -Wall- default-language: Haskell2010- hs-source-dirs: bench- main-is: sumandproduct.hs- type: exitcode-stdio-1.0- build-depends: base >= 4.8 && < 5,- criterion,- smcdel,- time+test-suite k+ type: exitcode-stdio-1.0+ main-is: test/K.hs+ other-modules:+ Paths_smcdel+ ghc-options: -Wall+ build-depends:+ base >=4.8 && <5+ , containers+ , hspec+ , smcdel+ default-language: Haskell2010 -Benchmark bench-muddychildren- ghc-options: -Wall- default-language: Haskell2010- hs-source-dirs: bench- main-is: muddychildren.hs- type: exitcode-stdio-1.0- build-depends: base >= 4.8 && < 5,- containers,- smcdel,- criterion+test-suite translations+ type: exitcode-stdio-1.0+ main-is: test/Translations.hs+ other-modules:+ Paths_smcdel+ ghc-options: -Wall+ build-depends:+ base >=4.8 && <5+ , hspec+ , smcdel+ default-language: Haskell2010 -source-repository head- type: git- location: https://github.com/jrclogic/SMCDEL.git+benchmark bench-diningcrypto+ type: exitcode-stdio-1.0+ main-is: diningcrypto.hs+ other-modules:+ Paths_smcdel+ hs-source-dirs:+ bench+ ghc-options: -Wall+ build-depends:+ base >=4.8 && <5+ , smcdel+ , time+ default-language: Haskell2010++benchmark bench-muddychildren+ type: exitcode-stdio-1.0+ main-is: muddychildren.hs+ other-modules:+ Paths_smcdel+ hs-source-dirs:+ bench+ ghc-options: -Wall+ build-depends:+ base >=4.8 && <5+ , criterion+ , smcdel+ default-language: Haskell2010++benchmark bench-sumandproduct+ type: exitcode-stdio-1.0+ main-is: sumandproduct.hs+ other-modules:+ Paths_smcdel+ hs-source-dirs:+ bench+ ghc-options: -Wall+ build-depends:+ base >=4.8 && <5+ , criterion+ , smcdel+ , time+ default-language: Haskell2010
src/SMCDEL/Examples.hs view
@@ -1,10 +1,13 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}+{-# LANGUAGE FlexibleInstances #-} module SMCDEL.Examples where+ import Data.List ((\\),sort)++import SMCDEL.Explicit.S5+import SMCDEL.Internal.TaggedBDD import SMCDEL.Language import SMCDEL.Symbolic.S5-import SMCDEL.Explicit.S5 import SMCDEL.Translations.S5 modelA :: PointedModelS5@@ -31,26 +34,32 @@ minimizedModel :: PointedModelS5 minimizedModel = knsToKripke myKNS -pubAnnounceAction :: [Agent] -> Form -> PointedActionModel-pubAnnounceAction ags f = (ActM [0] [(0,f)] [ (i,[[0]]) | i <- ags ], 0)+minimizedKNS :: KnowScene+minimizedKNS = kripkeToKns minimizedModel -examplePaAction :: PointedActionModel+myPropu :: Propulation+myPropu = allsamebdd (vocabOf myKNS)++pubAnnounceAction :: [Agent] -> Form -> PointedActionModelS5+pubAnnounceAction ags f = (ActMS5 [(0,(f,[]))] [ (i,[[0]]) | i <- ags ], 0)++examplePaAction :: PointedActionModelS5 examplePaAction = pubAnnounceAction [alice,bob] (PrpF (P 0)) -groupAnnounceAction :: [Agent] -> [Agent] -> Form -> PointedActionModel-groupAnnounceAction everyone listeners f = (ActM [0,1] [(0,f),(1,Neg f)] actrel, 0)+groupAnnounceAction :: [Agent] -> [Agent] -> Form -> PointedActionModelS5+groupAnnounceAction everyone listeners f = (ActMS5 [(0,(f,[])),(1,(Neg f,[]))] actrel, 0) where actrel = sort $ [ (i,[[0],[1]]) | i <- listeners ] ++ [ (i,[[0 , 1]]) | i <- everyone \\ listeners ] -exampleGroupAnnounceAction :: PointedActionModel+exampleGroupAnnounceAction :: PointedActionModelS5 exampleGroupAnnounceAction = groupAnnounceAction [alice, bob] [alice] (PrpF (P 0)) eGrAnLaw :: Form exampleGrAnnEvent :: Event-exampleGrAnnEvent@(KnT _ eGrAnLaw _, _) = actionToEvent exampleGroupAnnounceAction+exampleGrAnnEvent@(KnTrf _ eGrAnLaw _ _, _) = actionToEvent exampleGroupAnnounceAction -actionOne :: PointedActionModel-actionOne = (ActM [0,1] [(0,p),(1, Disj [q, Neg q])] [("Alice",[[0],[1]]), ("Bob",[[0,1]])], 0) where (p,q) = (PrpF $ P 0, PrpF $ P 1)+actionOne :: PointedActionModelS5+actionOne = (ActMS5 [(0,(p,[])),(1, (Disj [q, Neg q],[]))] [("Alice",[[0],[1]]), ("Bob",[[0,1]])], 0) where (p,q) = (PrpF $ P 0, PrpF $ P 1) -actionTwo :: PointedActionModel-actionTwo = (ActM [0,1,2] [(0,p),(1,q),(2,Neg q)] [("Alice",[[0],[1,2]]), ("Bob",[[0,1,2]]) ], 0) where (p,q) = (PrpF $ P 0, PrpF $ P 1)+actionTwo :: PointedActionModelS5+actionTwo = (ActMS5 [(0,(p,[])),(1,(q,[])),(2,(Neg q,[]))] [("Alice",[[0],[1,2]]), ("Bob",[[0,1,2]]) ], 0) where (p,q) = (PrpF $ P 0, PrpF $ P 1)
+ src/SMCDEL/Examples/Cheryl.hs view
@@ -0,0 +1,127 @@+module SMCDEL.Examples.Cheryl where++import Data.HasCacBDD (Bdd,con,disSet)+import Data.List++import SMCDEL.Language+import SMCDEL.Symbolic.S5+import SMCDEL.Internal.Help (powerset)++type Possibility = (Int, String)++possibilities :: [Possibility]+possibilities =+ [ (15,"May"), (16,"May"), (19,"May")+ , (17,"June"), (18,"June")+ , (14,"July"), (16,"July")+ , (14,"August"), (15,"August"), (17,"August") ]++dayIs :: Int -> Prp+dayIs = P++monthIs :: String -> Prp+monthIs "May" = P 5+monthIs "June" = P 6+monthIs "July" = P 7+monthIs "August" = P 8+monthIs _ = undefined++thisPos :: Possibility -> Form+thisPos (d,m) = Conj $+ (PrpF (dayIs d) : [ Neg (PrpF $ dayIs d') | d' <- nub (map fst possibilities) \\ [d] ]) +++ (PrpF (monthIs m) : [ Neg (PrpF $ monthIs m') | m' <- nub (map snd possibilities) \\ [m] ])++knWhich :: Agent -> Form+knWhich i = Disj [ K i (thisPos pos) | pos <- possibilities ]++start :: KnowStruct+start = KnS allprops statelaw obs where+ allprops = sort $ nub $ map (dayIs . fst) possibilities ++ map (monthIs . snd) possibilities+ statelaw = boolBddOf $ Conj+ [ Disj (map thisPos possibilities)+ , Conj [ Neg $ Conj [thisPos p1, thisPos p2] | p1 <- possibilities, p2 <- possibilities, p1 /= p2 ] ]+ obs = [ ("Albert", nub $ map (dayIs . fst) possibilities)+ , ("Bernard", nub $ map (monthIs . snd) possibilities) ]++round1,round2,round3 :: KnowStruct+round1 = update start (Conj [Neg $ knWhich "Albert", K "Albert" $ Neg (knWhich "Bernard")])+round2 = update round1 (knWhich "Bernard")+round3 = update round2 (knWhich "Albert")++cherylsBirthday :: String+cherylsBirthday = m ++ " " ++ show d ++ "th" where+ [(d,m)] = filter (\(d',m') -> [monthIs m', dayIs d'] `elem` statesOf round3) possibilities++newtype Variable = Var [Prp] deriving (Eq,Ord,Show)++bitsOf :: Int -> [Int]+bitsOf 0 = []+bitsOf n = k : bitsOf (n - 2^k) where+ k :: Int+ k = floor (logBase 2 (fromIntegral n) :: Double)++-- alternative to: booloutofForm (powerset props !! n) props+is :: Variable -> Int -> Form+is (Var props) n = Conj [ (if i `elem` bitsOf n then id else Neg) (PrpF k)+ | (k,i) <- zip props [(0::Int)..] ]++isBdd :: Variable -> Int -> Bdd+isBdd v = boolBddOf . is v++-- inverse of "is":+valueIn :: Variable -> State -> Int+valueIn (Var props) s = sum [ 2^i | (k,i) <- zip props [(0::Int)..], k `elem` s ]++explainState :: [Variable] -> State -> [Int]+explainState vs s = map (`valueIn` s) vs++-- an agent knows the value iff they know-whether all bits+kv :: Agent -> Variable -> Form+kv i (Var props) = Conj [ Kw i (PrpF k) | k <- props ]++-- Cheryl: I have two younger brothers. The product of all our ages is 144.+allStates :: [(Int,Int,Int)]+allStates = [ (c,b1,b2) | c <- [1..144]+ , b1 <- [1..(c-1)]+ , b2 <- [1..(c-1)]+ , c * b1 * b2 == 144 ]++cheryl, broOne :: Variable+cheryl = Var [P (2*k ) | k <- [0..7] ]+broOne = Var [P (2*k +1) | k <- [0..7] ]++ageKnsStart :: KnowStruct+ageKnsStart = KnS allprops statelaw obs where+ allprops = let (Var cs, Var bs) = (cheryl, broOne) in sort $ cs ++ bs+ statelaw = disSet [ con (cheryl `isBdd` c) (broOne `isBdd` b) | (c,b,_) <- allStates ]+ obs = [("albernard",[])]++step1,step2,step3,step4,step5 :: KnowStruct++-- Albert: We still don't know your age. What other hints can you give us?+step1 = ageKnsStart `update` Neg (kv "albernard" cheryl)++-- Cheryl: The sum of all our ages is the bus number of this bus that we are on.+step2 = step1 `update` revealTransformer+-- For this we need a way to reveal the sum, hence we use a knowledge transformer+revealTransformer :: KnowTransformer+revealTransformer = noChange KnTrf addProps addLaw addObs where+ addProps = map P [1001..1008] -- 8 bits to label all sums+ addLaw = simplify $ Conj [ Disj [ label (c + b + a) | (c,b,a) <- allStates ]+ , Conj [ sumIs s `Equi` label s | s <- [1..144] ] ] where+ label s = booloutofForm (powerset (map P [1001..1008]) !! s) (map P [1001..1008])+ sumIs n = Disj [ Conj [ cheryl `is` c, broOne `is` b ]+ | (c,b,a) <- allStates, c + b + a == n ]+ addObs = [("albernard",addProps)]++-- Bernard: Of course we know the bus number, but we still don't know your age.+step3 = step2 `update` Neg (kv "albernard" cheryl)++-- Cheryl: Oh, I forgot to tell you that my brothers have the same age.+step4 = step3 `update` sameAge where+ sameAge = Disj [ Conj [cheryl `is` c, broOne `is` b ]+ | (c,b,a) <- allStates+ , b == a ]++-- Albert and Bernard: Oh, now we know your age.+step5 = step4 `update` kv "albernard" cheryl
+ src/SMCDEL/Examples/CherylDemo.hs view
@@ -0,0 +1,46 @@+module SMCDEL.Examples.CherylDemo where++import Data.List++import SMCDEL.Explicit.DEMO_S5 as DEMO_S5++type MyWorld = (Int,Int,Int)++-- Cheryl: I have two younger brothers. The product of all our ages is 144.+allStates :: [MyWorld]+allStates = [ (c,b1,b2) | c <- [1..144]+ , b1 <- [1..(c-1)]+ , b2 <- [1..(c-1)]+ , c * b1 * b2 == 144 ]++start,step1,step2,step3,step4,step5 :: DEMO_S5.EpistM MyWorld++start = DEMO_S5.Mo states agents [] rels points where+ states = allStates+ agents = map DEMO_S5.Ag [1] -- a single observer agent+ rels = [ (DEMO_S5.Ag 1, [states]) ] -- nothing known+ points = allStates++cherylIs :: Int -> DemoForm MyWorld+cherylIs n = Disj [ Info (n,b1,b2) | b1 <- [1..144], b2 <- [1..144], (n,b1,b2) `elem` allStates ]++weKnowIt :: DemoForm MyWorld+weKnowIt = Disj [ Kn (Ag 1) (cherylIs n) | n <- [1..144]]++-- Albert: We still don't know your age. What other hints can you give us?+step1 = start `updPa` Ng weKnowIt++-- Cheryl: The sum of all our ages is the bus number of this bus that we are on.+step2 = updsPaW step1 [ sumIs n | n <- possibleSums ] where+ possibleSums = sort . nub $ map (\(c, b1, b2) -> c+b1+b2) allStates+ sumIs n = Disj (map Info (filter (\(c, b1, b2) -> c+b1+b2 == n) allStates))++-- Bernard: Of course we know the bus number, but we still don't know your age.+step3 = step2 `updPa` Ng weKnowIt++-- Cheryl: Oh, I forgot to tell you that my brothers have the same age.+step4 = step3 `updPa` broSame where+ broSame = Disj (map Info (filter (\(_, b1, b2) -> b1 == b2) allStates))++-- Albert and Bernard: Oh, now we know your age.+step5 = step4 `updPa` weKnowIt
src/SMCDEL/Examples/CoinFlip.hs view
@@ -6,7 +6,6 @@ import SMCDEL.Language import SMCDEL.Symbolic.S5 (boolBddOf) import SMCDEL.Symbolic.K-import SMCDEL.Symbolic.K.Change coinStart :: BelScene coinStart = (BlS [P 0] law obs, actual) where@@ -15,7 +14,7 @@ actual = [P 0] flipRandomAndShowTo :: [Agent] -> Prp -> Agent -> Event-flipRandomAndShowTo everyone p i = (Trf [q] eventlaw [p] changelaw obs, [q]) where+flipRandomAndShowTo everyone p i = (Trf [q] eventlaw changelaw obs, [q]) where q = freshp [p] eventlaw = Top changelaw = fromList [ (p, boolBddOf $ PrpF q) ]@@ -27,4 +26,4 @@ coinFlip = flipRandomAndShowTo ["a","b"] (P 0) "b" coinResult :: BelScene-coinResult = coinStart `transform` coinFlip+coinResult = coinStart `update` coinFlip
src/SMCDEL/Examples/DiningCrypto.hs view
@@ -33,7 +33,7 @@ reveal _ = Xor (map PrpF [P 3, P 5, P 6]) dcScn2 :: KnowScene-dcScn2 = pubAnnounceOnScn dcScn1 (Conj [reveal 1, reveal 2, reveal 3])+dcScn2 = update dcScn1 (Conj [reveal 1, reveal 2, reveal 3]) everyoneKnowsWhetherNSApaid :: Form everyoneKnowsWhetherNSApaid = Conj [ Kw (show i) (PrpF $ P 0) | i <- [1..3]::[Int] ]
+ src/SMCDEL/Examples/DoorMat.hs view
@@ -0,0 +1,69 @@+module SMCDEL.Examples.DoorMat where++import SMCDEL.Explicit.S5 as Exp hiding (announce)+import SMCDEL.Language+import SMCDEL.Symbolic.S5 hiding (announce)+import SMCDEL.Translations.S5+import SMCDEL.Other.Planning++explain :: Prp -> String+explain (P 1) = "key-under-mat"+explain (P 2) = "bob-has-key"+explain (P k) = "prop-" ++ show k++dmStart :: MultipointedKnowScene+dmStart = (KnS voc law obs, cur) where+ voc = [ P 1, P 2 ]+ law = boolBddOf $ Neg $ PrpF $ P 2 -- it is common knowledge that Bob has no key+ obs = [ ("Anne",[P 1]), ("Bob",[ ]) ] -- Anne knows whether the key is under the mat+ cur = boolBddOf $ PrpF (P 1) -- actually, the key is under the mat++tryTake :: MultipointedEvent+tryTake = (KnTrf addprops addlaw changeLaw addObs, boolBddOf Top) where+ addprops = [P 3]+ addlaw = PrpF (P 3) `Equi` PrpF (P 1)+ changeLaw = [ (P 1, boolBddOf $ Conj [PrpF (P 3) `Impl` Bot, Neg (PrpF (P 3)) `Impl` PrpF (P 1)])+ , (P 2, boolBddOf $ Conj [PrpF (P 3) `Impl` Top, Neg (PrpF (P 3)) `Impl` PrpF (P 2)]) ]+ addObs = [ ("Anne",[]), ("Bob",[P 3]) ]+++tryTakeL :: Labelled MultipointedEvent+tryTakeL = ("tryTake", tryTake)++dmGoal :: Form+dmGoal = PrpF (P 2) -- Bob should get the key!++dmTask :: Task MultipointedKnowScene MultipointedEvent+dmTask = Task dmStart [("tryTake",tryTake)] dmGoal++dmResult :: MultipointedKnowScene+dmResult = dmStart `update` tryTake++dmResultKripke :: MultipointedModelS5+dmResultKripke = knsToKripkeMulti dmResult++dmResultBob :: MultipointedKnowScene+dmResultBob = (dmStart `asSeenBy` "Bob") `update` tryTake++dmResultBobKripke :: MultipointedModelS5+dmResultBobKripke = knsToKripkeMulti dmResultBob++dm :: Task MultipointedKnowScene MultipointedEvent+dm = Task dmStart [ tryTakeL ] dmGoal++dmCoop :: CoopTask MultipointedKnowScene MultipointedEvent+dmCoop = CoopTask dmStart [("Bob",tryTakeL)] dmGoal++announce :: MultipointedEvent+announce = ( KnTrf [] (PrpF (P 1)) [] [ ("Anne",[]), ("Bob",[]) ]+ , boolBddOf Top )++announce' :: Labelled MultipointedEvent+announce' = ("announce", announce)++dmCoop2 :: CoopTask MultipointedKnowScene MultipointedEvent+dmCoop2 = CoopTask dmStart [ ("Bob" , tryTakeL )+ , ("Anne", announce') ] dmGoal++dmPlan2 :: ICPlan MultipointedEvent+dmPlan2 = [ ("Anne",announce'), ("Bob",tryTakeL) ]
src/SMCDEL/Examples/DrinkLogic.hs view
@@ -6,9 +6,6 @@ thirstyScene :: Int -> KnowScene thirstyScene n = (KnS [P 1..P n] (boolBddOf Top) [ (show i,[P i]) | i <- [1..n] ], [P 1..P n]) -myThirstyScene :: KnowScene-myThirstyScene = thirstyScene 3- thirstyF :: Int -> Form thirstyF n = Conj [ Conj [ doesNotKnow k | k <- [1..n] ] , pubAnnounceStack [ doesNotKnow i | i<-[1..(n-1)] ] $ K (show n) allWantBeer ]
src/SMCDEL/Examples/GossipKw.hs view
@@ -23,11 +23,17 @@ willExchangeT (a,b) k | k `elem` [a,b] = PrpF (P k) | otherwise = Disj [ K (show i) $ PrpF (P k) | i <- [a,b] ] -call :: (Int,Int) -> [Int] -> GenEvent-call (a,b) secSetT = (BlT vocplus lawplus obsplus, actualSet) where+inCall,inSecT :: Int -> Prp+inCall k = P (100+k) -- k participates in the call+inSecT k = P (200+(k*2)) -- secret k is being exchanged (as true)++call :: (Int,Int) -> [Int] -> Event+call (a,b) secSetT = (callTrf,actualSet) where+ actualSet = [inCall a, inCall b] ++ map inSecT secSetT++callTrf :: Transformer+callTrf = Trf vocplus lawplus (fromList []) obsplus where vocplus = sort $ map inCall [1..n] ++ map inSecT [1..n]- inCall k = P (100+k) -- k participates in the call- inSecT k = P (200+(k*2)) -- secret k is being exchanged (as true) lawplus = simplify $ Disj [ Conj [ thisCallHappens i j, theseSecretsAreExchanged i j ] | i <- [1..n], j <- [1..n], i < j ] where thisCallHappens i j = Conj $ map (PrpF . inCall) [i,j] ++ map (Neg . PrpF . inCall) ([1..n] \\ [i,j]) -- lnsPreCondition i j = Neg $ K (show i) (PrpF $ P j)@@ -39,13 +45,11 @@ <*> (imp <$> (mvBdd . boolBddOf . PrpF $ inCall i) <*> allsamebdd (sort $ map inCall [1..n] ++ map inSecT [1..n])) - actualSet = [inCall a, inCall b] ++ map inSecT secSetT- toBeExchangedT :: BelScene -> (Int,Int) -> [Int] toBeExchangedT scn (a,b) = filter (evalViaBdd scn . willExchangeT (a,b)) [1..n] doCall :: BelScene -> (Int,Int) -> BelScene-doCall start (a,b) = cleanupObsLaw $ belTransform start (call (a,b) (toBeExchangedT start (a,b)))+doCall start (a,b) = cleanupObsLaw $ start `update` call (a,b) (toBeExchangedT start (a,b)) doCalls :: BelScene -> [(Int,Int)] -> BelScene doCalls = foldl doCall
src/SMCDEL/Examples/GossipS5.hs view
@@ -1,9 +1,7 @@ module SMCDEL.Examples.GossipS5 where import SMCDEL.Language-import SMCDEL.Symbolic.S5 hiding (Event)-import SMCDEL.Symbolic.S5.Change-import Data.Map.Strict (fromList,keys)+import SMCDEL.Symbolic.S5 import Data.List ((\\)) gossipers :: Int -> [Int]@@ -37,8 +35,8 @@ call :: Int -> (Int,Int) -> Event call n (a,b) = (callTrf n, [thisCallProp (a,b)]) -callTrf :: Int -> KnowChange-callTrf n = CTrf eventprops eventlaw changeprops changelaws eventobs where+callTrf :: Int -> KnowTransformer+callTrf n = KnTrf eventprops eventlaw changelaws eventobs where thisCallHappens (i,j) = PrpF $ thisCallProp (i,j) isInCallForm k = Disj $ [ thisCallHappens (i,k) | i <- gossipers n \\ [k], i < k ] ++ [ thisCallHappens (k,j) | j <- gossipers n \\ [k], k < j ]@@ -51,9 +49,8 @@ | c1 <- allCalls, c2 <- allCalls \\ [c1] ] ] callPropsWith k = [ thisCallProp (i,k) | i <- gossipers n, i < k ] ++ [ thisCallProp (k,j) | j <- gossipers n, k < j ]- eventobs = fromList [(show k, callPropsWith k) | k <- gossipers n]- changeprops = keys changelaws- changelaws = fromList+ eventobs = [(show k, callPropsWith k) | k <- gossipers n]+ changelaws = [(hasSof n i j, boolBddOf $ -- after a call, i has the secret of j iff Disj [ has n i j -- i already knew j, or , Conj (map isInCallForm [i,j]) -- i and j are both in the call or@@ -64,7 +61,7 @@ | i <- gossipers n, j <- gossipers n, i /= j ] doCall :: KnowScene -> (Int,Int) -> KnowScene-doCall start (a,b) = knowChange start (call (length $ agentsOf start) (a,b)) -- TODO optimize here!+doCall start (a,b) = start `update` call (length $ agentsOf start) (a,b) after :: Int -> [(Int,Int)] -> KnowScene after n = foldl doCall (gossipInit n)
+ src/SMCDEL/Examples/LetterPassing.hs view
@@ -0,0 +1,75 @@+module SMCDEL.Examples.LetterPassing where++import Data.List (sort)++import SMCDEL.Language+import SMCDEL.Symbolic.S5 hiding (announce)+import SMCDEL.Translations.S5 (booloutof)+import SMCDEL.Other.Planning++explain :: Prp -> String+explain (P k) | odd k = "at " ++ show ((k + 1) `div` 2)+ | otherwise = "for " ++ show (k `div` 2)++atP, forP :: Int -> Prp+atP k = P $ k*2 - 1+forP k = P $ k*2++at, for :: Int -> Form+at = PrpF . atP+for = PrpF . forP++letterStart :: MultipointedKnowScene+letterStart = (KnS voc law obs, cur) where+ voc = sort $ map atP [1..3] ++ map forP [1..3]+ law = boolBddOf $ Conj $+ -- letter must be at someone, but not two:+ [ Disj (map at [1..3]) ]+ ++ [ Neg $ Conj [at i, at j] | i <- [1..3], j <- [1..3], i /= j ]+ -- letter must be for someone, but not two:+ ++ [ Disj (map for [1..3]) ]+ ++ [ Neg $ Conj [for i, for j] | i <- [1..3], j <- [1..3], i /= j ]+ -- make it common knowledge that the letter is at 1, but not adressed to 1:+ ++ [ at 1, Neg (for 1) ]+ obs = [ ("1",[atP 1, forP 1, forP 2, forP 3])+ , ("2",[atP 2])+ , ("3",[atP 3]) ]+ cur = booloutof [atP 1, forP 3] voc++letterPass :: Int -> Int -> Int -> Labelled MultipointedEvent+letterPass n i j = (label, (KnTrf addprops addlaw changeLaw addObs, boolBddOf Top)) where+ offset = n*2 -- ensure addprops does not overlap with vocabOf (letterStartFor n)+ label = show i ++ "->" ++ show j+ addprops = map P [(offset + 1)..(offset + n)]+ addlaw = Conj $ at i : [ PrpF (P (offset + k)) `Equi` for k | k <- [1..n] ]+ -- publicly pass the letter from i to j:+ changeLaw = [ (atP i, boolBddOf Bot), (atP j, boolBddOf Top) ]+ -- privately tell j who the receiver is:+ addObs = [ (show k, if k == j then addprops else []) | k <- [1..n] ]++letterGoal :: Form+letterGoal = Conj [ for i `Impl` at i | i <- [1,2,3] ]++letter :: CoopTask MultipointedKnowScene MultipointedEvent+letter = CoopTask letterStart actions letterGoal where+ actions = [ (show i, letterPass 3 i j) | (i,j) <- [(1,2),(2,1),(2,3),(3,2)] ]++letterStartFor :: Int -> MultipointedKnowScene+letterStartFor n = (KnS voc law obs, cur) where+ voc = sort $ map atP [1..n] ++ map forP [1..n]+ law = boolBddOf $ Conj $+ -- letter must be at someone, but not two:+ [ Disj (map at [1..n]) ]+ ++ [ Neg $ Conj [at i, at j] | i <-[1..n], j <- [1..n], i /= j ]+ -- letter must be for someone, but not two:+ ++ [ Disj (map for [1..n]) ]+ ++ [ Neg $ Conj [for i, for j] | i <-[1..n], j <- [1..n], i /= j ]+ -- make it common knowledge that letter is at 1, but not adressed to 1:+ ++ [ at 1, Neg (for 1) ]+ obs = ("1", atP 1 : map forP [1..n]) : [ (show k, [atP k]) | k <- [2..n] ]+ cur = booloutof [atP 1, forP n] voc++letterLine :: Int -> CoopTask MultipointedKnowScene MultipointedEvent+letterLine n = CoopTask (letterStartFor n) actions goal where+ actions = [ (show i, letterPass n i j) | i <- [1..n], j <- [1..n], abs(i-j) == 1 ]+ goal = Conj [ for i `Impl` at i | i <- [1..n] ]
src/SMCDEL/Examples/MuddyChildren.hs view
@@ -3,9 +3,11 @@ import Data.List import Data.Map.Strict (fromList) +import SMCDEL.Internal.Help (seteq) import SMCDEL.Language import SMCDEL.Symbolic.S5 import qualified SMCDEL.Symbolic.K+import qualified SMCDEL.Explicit.K mudScnInit :: Int -> Int -> KnowScene mudScnInit n m = (KnS vocab law obs, actual) where@@ -26,23 +28,41 @@ father :: Int -> Form father n = Disj (map PrpF [P 1 .. P n]) mudScn0 :: KnowScene-mudScn0 = pubAnnounceOnScn myMudScnInit (father 3)+mudScn0 = update myMudScnInit (father 3) mudScn1 :: KnowScene-mudScn1 = pubAnnounceOnScn mudScn0 (nobodyknows 3)+mudScn1 = update mudScn0 (nobodyknows 3) mudScn2 :: KnowScene mudKns2 :: KnowStruct-mudScn2@(mudKns2,_) = pubAnnounceOnScn mudScn1 (nobodyknows 3)+mudScn2@(mudKns2,_) = update mudScn1 (nobodyknows 3) empty :: Int -> KnowScene empty n = (KnS [] (boolBddOf Top) obs,[]) where obs = [ (show i, []) | i <- [1..n] ] buildMC :: Int -> Int -> Event-buildMC n m = (KnT vocab Top obs, map P [1..m]) where+buildMC n m = (noChange KnTrf vocab Top obs, map P [1..m]) where obs = [ (show i, delete (P i) vocab) | i <- [1..n] ] vocab = map P [1..n]++buildResult :: KnowScene+buildResult = empty 3 `update` buildMC 3 3++mudGenKrpInit :: Int -> Int -> SMCDEL.Explicit.K.PointedModel+mudGenKrpInit n m = (SMCDEL.Explicit.K.KrM $ fromList wlist, cur) where+ wlist = [ (w, (fromList (vals !! w), fromList $ relFor w)) | w <- ws ]+ ws = [0..(2^n-1)]+ vals = map sort (foldl buildTable [[]] [P k | k<- [1..n]])+ buildTable partrows p = [ (p,v):pr | v <-[True,False], pr <- partrows ]+ relFor w = [ (show i, seesFrom i w) | i <- [1..n] ]+ seesFrom i w = filter (\v -> samefor i (vals !! w) (vals !! v)) ws+ samefor i ps qs = seteq (delete (P i) (map fst $ filter snd ps)) (delete (P i) (map fst $ filter snd qs))+ (Just cur) = elemIndex curVal vals+ curVal = sort $ [(p,True) | p <- [P 1 .. P m]] ++ [(p,True) | p <- [P (m+1) .. P n]]++myMudGenKrpInit :: SMCDEL.Explicit.K.PointedModel+myMudGenKrpInit = mudGenKrpInit 3 3 mudBelScnInit :: Int -> Int -> SMCDEL.Symbolic.K.BelScene mudBelScnInit n m = (SMCDEL.Symbolic.K.BlS vocab law obs, actual) where
+ src/SMCDEL/Examples/MuddyPlanning.hs view
@@ -0,0 +1,13 @@+module SMCDEL.Examples.MuddyPlanning where++import SMCDEL.Examples.MuddyChildren+import SMCDEL.Language+import SMCDEL.Other.Planning++toyPlan :: [OfflinePlan]+toyPlan = offlineSearch maxSteps start acts cons goal where+ maxSteps = 5 -- 2 would be enough+ start = mudScnInit 3 2+ acts = Disj [PrpF (P k) | k <- [1,2,3]] : [Neg $ Kw (show k) $ PrpF (P k) | k <- [1,2,3]]+ cons = [ Neg $ Kw "2" (PrpF $ P 2) ]+ goal = Kw "1" (PrpF $ P 1)
src/SMCDEL/Examples/Prisoners.hs view
@@ -1,115 +1,101 @@ module SMCDEL.Examples.Prisoners where import Data.HasCacBDD hiding (Top,Bot)-import Data.Map.Strict (fromList) -import SMCDEL.Explicit.K-import SMCDEL.Explicit.K.Change+import SMCDEL.Explicit.S5 import SMCDEL.Internal.TexDisplay import SMCDEL.Language-import SMCDEL.Symbolic.K-import SMCDEL.Symbolic.K.Change-import SMCDEL.Symbolic.S5 (boolBddOf)+import SMCDEL.Symbolic.S5 +n :: Int+n = 3++light :: Form+light = PrpF (P 0)+ -- P 0 -- light is on -- P i -- agent i has been in the room (and switched on the light) -- agents: 1 is the counter, 2 and 3 are the others -prisonExpStart :: KripkeModel+prisonExpStart :: KripkeModelS5 prisonExpStart =- KrM $ fromList [ (1, (fromList [(P 0,False),(P 1,False),(P 2,False),(P 3,False)], fromList [("1",[1])])) ]+ KrMS5+ [1]+ [ ("1",[[1]]) ]+ [ (1, [(P k,False) | k <- [0..n] ] ) ] prisonGoal :: Form-prisonGoal = Disj [ K i everyoneWasInTheRoom | i <- ["1"] ] where- everyoneWasInTheRoom = Conj [ PrpF $ P k | k <- [1,2,3] ]+prisonGoal = K "1" $ Conj [ PrpF $ P k | k <- [1..n] ] -prisonAction :: ChangeModel-prisonAction = ChM $ fromList actions where- p = PrpF (P 0)- [p2,p3] = map (PrpF . P) [2,3]+prisonAction :: ActionModelS5+prisonAction = ActMS5 actions actRels where+ p = PrpF . P actions =- [ (1, Ch p (fromList [(P 0, Bot), (P 1, Top) ]) (fromList [("1",[1 ])]))- , (2, Ch (Neg p) (fromList [ (P 1, Top) ]) (fromList [("1",[2 ])]))- , (3, Ch Top (fromList [(P 0, p2 `Impl` p), (P 2, p `Impl` p2)]) (fromList [("1",[3,4,5])])) -- interview 2- , (4, Ch Top (fromList [(P 0, p3 `Impl` p), (P 3, p `Impl` p3)]) (fromList [("1",[3,4,5])])) -- interview 3- -- , (5, Ch Top (fromList [ ]) (fromList [("1",[3,4,5])])) -- nothing happens, ignored for now+ [ (0, (p 0 , [(P 0, Bot), (P 1, Top)]) ) -- interview 1 with light on+ , (1, (Neg (p 0), [ (P 1, Top)]) ) -- interview 1 with light off ]+ +++ [ (k, (Top, [(P 0, p k `Impl` p 0), (P k, p 0 `Impl` p k)]) ) | k <- [2..n] ] -- interview k+ actRels = [ ("1", [[0],[1],[2..n]]) ] -prisonInterview :: Integer -> MultipointedChangeModel-prisonInterview 1 = (prisonAction, [1,2])-prisonInterview 2 = (prisonAction, [3])-prisonInterview 3 = (prisonAction, [4])-prisonInterview _ = undefined+prisonInterview :: Int -> MultipointedActionModelS5+prisonInterview 1 = (prisonAction, [0,1])+prisonInterview k = (prisonAction, [k]) -newtype KripkeStory = KrpStory (PointedModel,[MultipointedChangeModel])+data Story a b = Story a [b] -endOfStory :: KripkeStory -> PointedModel-endOfStory (KrpStory (start,actions)) = foldl productChangeMulti start actions+endOf :: (Update a b, Optimizable a) => Story a b -> a+endOf (Story start actions) =+ foldl (\cur a -> optimize (vocabOf start) $ cur `update` a) start actions -instance TexAble KripkeStory where- tex (KrpStory (start,actions)) = adjust (tex start) ++ loop start actions where- adjust thing = "\\raisebox{-.5\\height}{\\begin{adjustbox}{max height=4cm, max width=7cm}" ++ thing ++ "\\end{adjustbox}}"- loop _ [] = ""+instance (Update a b, Optimizable a, TexAble a, TexAble b) => TexAble (Story a b) where+ tex (Story start actions) = adjust (tex start) ++ loop start actions where+ adjust thing = " \\raisebox{-.5\\height}{ \\begin{adjustbox}{max height=4cm, max width=0.3\\linewidth} $ " ++ thing ++ " $ \\end{adjustbox} } "+ loop _ [] = "" loop current (a:as) = let- new = generatedSubmodel $ current `productChangeMulti` a+ new = optimize (vocabOf start) $ current `update` a in " \\times " ++ adjust (tex a) ++ " = " ++ adjust (tex new) ++ "\\] \\[ " ++ loop new as -prisonExp :: KripkeStory-prisonExp = KrpStory ((prisonExpStart,1), map prisonInterview [2,1,3,1])--prisonExpResult :: PointedModel-prisonExpResult = endOfStory prisonExp--prisonSymStart :: BelScene-prisonSymStart = (BlS (map P [0..3]) law obs, actual) where- law = boolBddOf (Conj [ Neg $ PrpF $ P k | k <- [0..3]])- -- Light off, nobody has been in the room, this is common knowledge.- obs = fromList [ ("1", pure top), ("2", pure top), ("3", pure top) ]- actual = []+prisonExpStory :: Story PointedModelS5 MultipointedActionModelS5+prisonExpStory = Story (prisonExpStart,1) (map prisonInterview [2,1,3,1]) -prisonSymInterview :: Int -> MultiEvent-prisonSymInterview 1 = (prisonSymEvent, [undefined])-prisonSymInterview 2 = (prisonSymEvent, [undefined])-prisonSymInterview 3 = (prisonSymEvent, [undefined])-prisonSymInterview _ = undefined+prisonSymStart :: MultipointedKnowScene+prisonSymStart = (KnS (map P [0..n]) law obs, actualStatesBdd) where+ law = boolBddOf (Conj (Neg light : [ Neg $ wasInterviewed k | k <- [1..n] ]))+ obs = [ ("1", []) ]+ actualStatesBdd = top -prisonSymEvent :: Transformer-prisonSymEvent = Trf -- agent 1 is interviewd- (map P [7,8,9]) -- distinguish six events using fresh variables:- -- p7 iff the light was on- -- p8 p9 - interview 1- -- p8 - interview 2- -- p9 - interview 3- -- - forbid!- (PrpF (P 7) `Equi` PrpF (P 0)) -- p7 hapens iff light is on aka p0- [P 0, P 1, P 2, P 3] -- light might be turned off and visits of agents recorded- (fromList [ (P 0, boolBddOf $ Conj [PrpF (P 7) `Impl` Bot, Neg (PrpF (P 7)) `Impl` PrpF (P 0)])- , (P 1, top) ]) -- changelaw+wasInterviewed, isNowInterviewed :: Int -> Form+wasInterviewed = PrpF . P+isNowInterviewed k = PrpF (P (k + n)) - (fromList- -- agent 1 observes whether (p8 && p9) and if true, observes p7- [("1", allsamebdd [P 7])- ,("2", pure top),("3", pure top)])+lightSeenByOne :: Form+lightSeenByOne = PrpF (P (1 + (2*n))) -prisonSymEvent' :: Transformer-prisonSymEvent' = Trf -- agent 2 or 3 is interviewd- [P 7] Top -- p7 iff interviewee is 2- [P 0, P 2, P 3] -- light p0 might be turned on and visits of 2 and 3 recorded- (fromList [ (P 0, boolBddOf $ Conj- [ PrpF (P 7) `Impl` (PrpF (P 2) `Impl` PrpF (P 0))- , Neg (PrpF (P 7)) `Impl` (PrpF (P 3) `Impl` PrpF (P 0)) ] )- , (P 2, boolBddOf $ Conj- [ PrpF (P 7) `Impl` (PrpF (P 0) `Impl` PrpF (P 2))- , Neg (PrpF (P 7)) `Impl` PrpF (P 2) ] )- , (P 3, boolBddOf $ Conj- [ Neg (PrpF (P 7)) `Impl` (PrpF (P 0) `Impl` PrpF (P 3))- , PrpF (P 7) `Impl` PrpF (P 3) ] )- ]) -- changelaw- (fromList [("1", pure top), ("2", allsamebdd [P 7]), ("3", allsamebdd [P 7])]) -- agent 2 and 3 observe+prisonSymEvent :: KnowTransformer+prisonSymEvent = KnTrf -- agent 1 is interviewed+ (map P $ [ k+n | k <- [1..n] ] ++ [1+(2*n)] ) -- distinguish events+ (Conj [ isNowInterviewed 1 `Impl` (lightSeenByOne `Equi` light)+ , Disj [ Conj $ isNowInterviewed k : [Neg $ isNowInterviewed l | l <- [1..n], l /= k ] | k <- [1..n]]+ ] )+ -- light might be switched and visits of the agents might be recorded+ ( [ (P 0, boolBddOf $+ Conj $ isNowInterviewed 1 `Impl` Bot -- 1 turns off the light+ : concat [ [ Conj [Neg $ wasInterviewed k, isNowInterviewed k] `Impl` Top+ , Conj [ wasInterviewed k, isNowInterviewed k] `Impl` light ]+ | k <- [2..n] ])+ , (P 1, boolBddOf $ Disj [wasInterviewed 1, Conj [ isNowInterviewed 1]])+ ]+ +++ [ (P k, boolBddOf $ Disj [wasInterviewed k, Conj [Neg light, isNowInterviewed k]])+ | k <- [2..n] ] )+ -- agent 1 observes whether they are interviewed, and if so, also observes the light+ [ ("1", let (PrpF px, PrpF py) = (isNowInterviewed 1, lightSeenByOne) in [px, py]) ] -type Story = (BelScene,[MultiEvent])+prisonSymInterview :: Int -> MultipointedEvent+prisonSymInterview k = (prisonSymEvent, boolBddOf (isNowInterviewed k)) -prisonSym :: Story-prisonSym = (prisonSymStart, map prisonSymInterview [2,1,3,1])+prisonSymStory :: Story MultipointedKnowScene MultipointedEvent+prisonSymStory = Story prisonSymStart (map prisonSymInterview [2,1,3,1])
src/SMCDEL/Examples/RussianCards.hs view
@@ -1,12 +1,13 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}+{-# LANGUAGE FlexibleInstances #-} module SMCDEL.Examples.RussianCards where import Control.Monad (replicateM)-import Data.List (delete,intersect,nub,sort)-import Data.Map.Strict (fromList) import Data.HasCacBDD hiding (Top,Bot)+import Data.List ((\\),delete,intersect,nub,sort)+import Data.Map.Strict (fromList) +import SMCDEL.Internal.Help (powerset) import SMCDEL.Language import SMCDEL.Other.Planning import SMCDEL.Symbolic.S5@@ -30,9 +31,11 @@ hasCard :: Agent -> Int -> Form hasCard i n = PrpF (P (3 * n + rcNumOf i)) --- use this in ppFormWith+hasHand :: Agent -> [Int] -> Form+hasHand i ns = Conj $ map (i `hasCard`) ns+ rcExplain :: Prp -> String-rcExplain (P k) = show (rcPlayers !! i) ++ " `hasCard` " ++ show n where (n,i) = divMod k 3+rcExplain (P k) = (rcPlayers !! i) ++ " has card " ++ show n where (n,i) = divMod k 3 allCardsGiven, allCardsUnique :: Form allCardsGiven = Conj [ Disj [ i `hasCard` n | i <- rcPlayers ] | n <- rcCards ]@@ -41,9 +44,10 @@ distribute331 :: Form distribute331 = Conj [ aliceAtLeastThree, bobAtLeastThree, carolAtLeastOne ] where- aliceAtLeastThree = Disj [ Conj (map (alice `hasCard`) [x, y, z]) | x<-rcCards, y<-rcCards, z<-rcCards, x/=y, x/=z, y/=z ]- bobAtLeastThree = Disj [ Conj (map (bob `hasCard`) [x, y, z]) | x<-rcCards, y<-rcCards, z<-rcCards, x/=y, x/=z, y/=z ]- carolAtLeastOne = Disj [ carol `hasCard` k | k<-[0..6] ]+ triples = [ [x, y, z] | x <- rcCards, y <- delete x rcCards, z <- rcCards \\ [x,y] ]+ aliceAtLeastThree = Disj [ Conj (map (alice `hasCard`) t) | t <- triples ]+ bobAtLeastThree = Disj [ Conj (map (bob `hasCard`) t) | t <- triples ]+ carolAtLeastOne = Disj [ carol `hasCard` k | k<-[0..6] ] rusSCN :: KnowScene rusKNS :: KnowStruct@@ -60,8 +64,8 @@ bAnnounce = K bob (carol `hasCard` 6) aKnowsBs, bKnowsAs, cIgnorant :: Form-aKnowsBs = Conj [ alice `Kw` (bob `hasCard` k) | k<-rcCards ]-bKnowsAs = Conj [ bob `Kw` (alice `hasCard` k) | k<-rcCards ]+aKnowsBs = Conj [ alice `Kw` (bob `hasCard` k) | k<-rcCards ]+bKnowsAs = Conj [ bob `Kw` (alice `hasCard` k) | k<-rcCards ] cIgnorant = Conj $ concat [ [ Neg $ K carol $ alice `hasCard` i , Neg $ K carol $ bob `hasCard` i ] | i<-rcCards ] @@ -94,65 +98,71 @@ , PubAnnounce aliceSays (PubAnnounce bobSays (Ck rcPlayers cIgnorant)) ] possibleHands :: [[Int]]-possibleHands = [ [x,y,z] | x <- rcCards, y <- rcCards, z <-rcCards, x < y, y < z ]--pickHands :: [ [Int] ] -> Int -> [ [ [Int] ] ]-pickHands _ 0 = [ [ [ ] ] ]-pickHands unused 1 = [ [h] | h <- unused ]-pickHands unused n = concat [ [ h:hs | hs <- pickHands (myfilter h unused) (n-1) ] | h <- unused ] where- myfilter h = filter (\xs -> length (h `intersect` xs) < 2 && h < xs)--allHandLists :: [ [ [Int] ] ]-allHandLists = concatMap (pickHands possibleHands) [5,6,7]+possibleHands = [ [x,y,z] | x <- rcCards, y <- filter (> x) rcCards, z <-filter (> y) rcCards ] -pickHandsNaive :: [ [Int] ] -> Int -> [ [ [Int] ] ]-pickHandsNaive _ 0 = [ [ [ ] ] ]-pickHandsNaive unused 1 = [ [h] | h <- unused ]-pickHandsNaive unused n = concat [ [ h:hs | hs <- pickHandsNaive (myfilter h unused) (n-1) ] | h <- unused ] where- myfilter h = filter (\xs -> h < xs)+pickHandsNoCrossing :: [ [Int] ] -> Int -> [ [ [Int] ] ]+pickHandsNoCrossing _ 0 = [ [ [ ] ] ]+pickHandsNoCrossing unused 1 = [ [h] | h <- unused ]+pickHandsNoCrossing unused n = concat [ [ h:hs | hs <- pickHandsNoCrossing (myfilter h unused) (n-1) ] | h <- unused ] where+ myfilter h = filter (\xs -> length (h `intersect` xs) < 2 && h < xs) -- do not allow intersection > 2 -alicesActions :: [[[Int]]]-alicesActions = pickHandsNaive (delete [0,1,2] possibleHands) 4+allHandLists, safeHandLists :: [ [ [Int] ] ]+allHandLists = concatMap (pickHandsNoCrossing possibleHands) [5,6,7]+safeHandLists = sort (filter checkSet allHandLists) -alicesForms :: [Form]-alicesForms = map translate alicesActions+alicesActions :: [Form]+alicesActions = [ Disj $ map (alice `hasHand`) ([0,1,2]:otherHands) | otherHands <- handLists ] where+ handLists :: [ [ [Int] ] ]+ handLists = pickHands (delete [0,1,2] possibleHands) 4+ pickHands :: [ [Int] ] -> Int -> [ [ [Int] ] ]+ pickHands _ 0 = [ [ [ ] ] ]+ pickHands hands 1 = [ [ h ] | h <- hands ]+ pickHands hands n = [ h:hs | h <- hands, hs <- pickHands (filter (h <) hands) (n-1) ] -translate :: [[Int]] -> Form-translate set = Disj [ Conj $ map (alice `hasCard`) h | h <- [0,1,2]:set ]+bobsActions :: [Form]+bobsActions = [ carol `hasCard` n | n <- reverse [4..6] ] -bobsForms :: [Form]-bobsForms = [carol `hasCard` n | n <- reverse [0..6]] -- FIXME relax!+rcSolutions :: [ [Form] ]+rcSolutions = [ [a, b] | a <- alicesActions, b <- bobsActions, testPlan a b ] where+ testPlan :: Form -> Form -> Bool+ testPlan aSays bSays = all (evalViaBdd rusSCN)+ -- NOTE: increasing checks are faster than one big conjunction!+ [ aSays+ , PubAnnounce aSays bKnowsAs+ , PubAnnounce aSays cIgnorant+ , PubAnnounce aSays bSays+ , PubAnnounce aSays (PubAnnounce bSays aKnowsBs)+ , PubAnnounce aSays (PubAnnounce bSays (Ck [alice,bob] $ Conj [cIgnorant,aKnowsBs,bKnowsAs])) ] -allPlans :: [(Form,Form)]-allPlans = [ (a,b) | a <- alicesForms, b <- bobsForms ]+rcPlan :: OfflinePlan+rcPlan = [ aAnnounce, bAnnounce ] -testPlan :: (Form,Form) -> Bool-testPlan (aSays,bSays) = all (evalViaBdd rusSCN) fs where- fs = [ aSays- , PubAnnounce aSays bKnowsAs- , PubAnnounce aSays (Ck [alice,bob] bKnowsAs)- , PubAnnounce aSays (Ck [alice,bob,carol] cIgnorant)- , PubAnnounce aSays bSays- , PubAnnounce aSays (PubAnnounce bSays (Ck [alice,bob] $ Conj [aKnowsBs, bKnowsAs]))- , PubAnnounce aSays (PubAnnounce bSays (Ck [alice,bob,carol] cIgnorant)) ]+rcGoal :: Form+rcGoal = Conj [ aKnowsBs+ , bKnowsAs+ , Ck [alice,bob] (Conj [aKnowsBs, bKnowsAs])+ , Ck [alice,bob,carol] cIgnorant ] -rcSolutions :: [(Form, Form)]-rcSolutions = filter testPlan allPlans+rcSolutionsViaPlanning :: [OfflinePlan]+rcSolutionsViaPlanning = offlineSearch maxSteps start actions constraints goal where+ maxSteps = 2 -- We need two steps!+ start = rusSCNfor (3,3,1)+ actions = alicesActions ++ bobsActions+ constraints = [cIgnorant,bKnowsAs]+ goal = Conj [aKnowsBs, bKnowsAs] type RusCardProblem = (Int,Int,Int) distribute :: RusCardProblem -> Form-distribute (na,nb,nc) = Conj [ alice `hasAtLeast` na, bob `hasAtLeast` nb, carol `hasAtLeast` nc ] where+distribute (na,nb,nc) = Conj [ alice `hasAtLeast` na+ , bob `hasAtLeast` nb+ , carol `hasAtLeast` nc ] where n = na + nb + nc hasAtLeast :: Agent -> Int -> Form hasAtLeast _ 0 = Top hasAtLeast i 1 = Disj [ i `hasCard` k | k <- nCards n ]- hasAtLeast i 2 = Disj [ Conj (map (i `hasCard`) [x, y]) | x <- nCards n, y <- nCards n, x/=y ]- hasAtLeast i 3 = Disj [ Conj (map (i `hasCard`) [x, y, z]) | x<-nCards n, y<-nCards n, z<-nCards n, x/=y, x/=z, y/=z ]- hasAtLeast i k = Disj [ Conj (map (i `hasCard`) set) | set <- sets ] where- sets = filter alldiff $ nub $ map sort $ replicateM k (nCards n) where- alldiff [] = True- alldiff (x:xs) = x `notElem` xs && alldiff xs+ hasAtLeast i k = Disj [ Conj (map (i `hasCard`) (sort set))+ | set <- powerset (nCards n), length set == k ] nCards :: Int -> [Int] nCards n = [0..(n-1)]@@ -174,19 +184,13 @@ cardsFor "Carol" = [(na+nb)..(na+nb+nc-1)] cardsFor _ = error "Who is that?" --- the plan for (3,3,1)-basicPlan :: OfflinePlan-basicPlan =- [ (aAnnounce, Conj [ bKnowsAs, Ck [alice,bob] bKnowsAs, Ck [alice,bob,carol] cIgnorant ] )- , (bAnnounce, Conj [ aKnowsBs, Ck [alice,bob] aKnowsBs, Ck rcPlayers cIgnorant ] ) ]- possibleHandsN :: Int -> Int -> [[Int]] possibleHandsN n na = filter alldiff $ nub $ map sort $ replicateM na (nCards n) where alldiff [] = True alldiff (x:xs) = x `notElem` xs && alldiff xs allHandListsN :: Int -> Int -> [ [ [Int] ] ]-allHandListsN n na = concatMap (pickHands (possibleHandsN n na)) [5,6,7] -- FIXME how to adapt the number of hands for larger n?+allHandListsN n na = concatMap (pickHandsNoCrossing (possibleHandsN n na)) [5,6,7] -- FIXME how to adapt the number of hands for larger n? aKnowsBsN, bKnowsAsN, cIgnorantN :: Int -> Form aKnowsBsN n = Conj [ alice `Kw` (bob `hasCard` k) | k <- nCards n ]@@ -195,14 +199,11 @@ , Neg $ K carol $ bob `hasCard` i ] | i <- nCards n ] checkSetFor :: RusCardProblem -> [[Int]] -> Bool-checkSetFor (na,nb,nc) set = plan `succeedsOn` rusSCNfor (na,nb,nc) where+checkSetFor (na,nb,nc) set = reachesOn plan rcGoal (rusSCNfor (na,nb,nc)) where n = na + nb + nc aliceSays = K alice (Disj [ Conj $ map (alice `hasCard`) h | h <- set ]) bobSays = K bob (carol `hasCard` last (nCards n))- plan =- [ (aliceSays, Conj [ bKnowsAsN n, Ck [alice,bob] (bKnowsAsN n), Ck [alice,bob,carol] (cIgnorantN n) ] )- , (bobSays , Conj [ Ck [alice,bob] $ Conj [aKnowsBsN n, bKnowsAsN n], Ck rcPlayers (cIgnorantN n) ] )- ]+ plan = [ aliceSays, bobSays ] checkHandsFor :: RusCardProblem -> [ ( [[Int]], Bool) ] checkHandsFor (na,nb,nc) = map (\hs -> (hs, checkSetFor (na,nb,nc) hs)) (allHandListsN n na) where@@ -217,13 +218,12 @@ , nc < (na - 1) , nc < nb ] - dontChange :: [Form] -> K.RelBDD dontChange fs = conSet <$> sequence [ equ <$> K.mvBdd b <*> K.cpBdd b | b <- map boolBddOf fs ] noDoubles :: Int -> Form-noDoubles n = Conj [ notDOuble k | k <- nCards n ] where- notDOuble k = Neg $ Conj [alice `hasCard` k, bob `hasCard` k]+noDoubles n = Neg $ Disj [ notDouble k | k <- nCards n ] where+ notDouble k = Conj [alice `hasCard` k, bob `hasCard` k] rusBelScnfor :: RusCardProblem -> K.BelScene rusBelScnfor (na,nb,nc) = (K.BlS props law (fromList [ (i, obsbdd i) | i <- rcPlayers ]), defaultDeal) where
src/SMCDEL/Examples/SallyAnne.hs view
@@ -4,13 +4,12 @@ import SMCDEL.Language import SMCDEL.Symbolic.K-import SMCDEL.Symbolic.K.Change import SMCDEL.Symbolic.S5 (boolBddOf) pp, qq, tt :: Prp pp = P 0 tt = P 1-qq = P 7 -- this number should not matter!+qq = P 7 -- this number does not matter sallyInit :: BelScene sallyInit = (BlS [pp, tt] law obs, actual) where@@ -19,45 +18,43 @@ actual = [pp] sallyPutsMarbleInBasket :: Event-sallyPutsMarbleInBasket = (Trf [] Top [tt]+sallyPutsMarbleInBasket = (Trf [] Top (fromList [ (tt,boolBddOf Top) ]) (fromList [ (i,totalRelBdd) | i <- ["Anne","Sally"] ]), []) sallyIntermediate1 :: BelScene-sallyIntermediate1 = sallyInit `transform` sallyPutsMarbleInBasket+sallyIntermediate1 = sallyInit `update` sallyPutsMarbleInBasket sallyLeaves :: Event-sallyLeaves = (Trf [] Top [pp]+sallyLeaves = (Trf [] Top (fromList [ (pp,boolBddOf Bot) ]) (fromList [ (i,totalRelBdd) | i <- ["Anne","Sally"] ]), []) sallyIntermediate2 :: BelScene-sallyIntermediate2 = sallyIntermediate1 `transform` sallyLeaves+sallyIntermediate2 = sallyIntermediate1 `update` sallyLeaves annePutsMarbleInBox :: Event-annePutsMarbleInBox = (Trf [qq] Top [tt]+annePutsMarbleInBox = (Trf [qq] Top (fromList [ (tt,boolBddOf $ Conj [Neg (PrpF qq) `Impl` PrpF tt, PrpF qq `Impl` Bot]) ]) (fromList [ ("Anne", allsamebdd [qq]), ("Sally", cpBdd $ boolBddOf $ Neg (PrpF qq)) ]), [qq]) sallyIntermediate3 :: BelScene-sallyIntermediate3 = sallyIntermediate2 `transform` annePutsMarbleInBox+sallyIntermediate3 = sallyIntermediate2 `update` annePutsMarbleInBox sallyComesBack :: Event-sallyComesBack = (Trf [] Top [pp]+sallyComesBack = (Trf [] Top (fromList [ (pp,boolBddOf Top) ]) (fromList [ (i,totalRelBdd) | i <- ["Anne","Sally"] ]), []) sallyIntermediate4 :: BelScene-sallyIntermediate4 = sallyIntermediate3 `transform` sallyComesBack+sallyIntermediate4 = sallyIntermediate3 `update` sallyComesBack sallyFinal :: BelScene-sallyFinal = sallyInit- `transform` sallyPutsMarbleInBasket- `transform` sallyLeaves- `transform` annePutsMarbleInBox- `transform` sallyComesBack+sallyFinal = sallyInit `updates`+ [ sallyPutsMarbleInBasket+ , sallyLeaves+ , annePutsMarbleInBox+ , sallyComesBack ] -sallyFinalCheck :: (Bool,Bool)-sallyFinalCheck =- ( SMCDEL.Symbolic.K.evalViaBdd sallyFinal (K "Sally" (PrpF tt))- , sallyIntermediate4 == sallyFinal )+sallyFinalCheck :: Bool+sallyFinalCheck = SMCDEL.Symbolic.K.evalViaBdd sallyFinal (K "Sally" (PrpF tt))
+ src/SMCDEL/Examples/SimpleK.hs view
@@ -0,0 +1,85 @@+module SMCDEL.Examples.SimpleK where++import Data.HasCacBDD hiding (Bot,Top)+import Data.List ((\\))+import qualified Data.Map.Strict as M+import Data.Tagged (untag)++import SMCDEL.Explicit.K+import SMCDEL.Language+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.S5 (boolBddOf)+import SMCDEL.Translations.K++exampleModel :: KripkeModel+exampleModel = KrM $ M.fromList+ [ (1, (M.fromList [(P 0,True ),(P 1,True )], M.fromList [(alice,[1]), (bob,[1])] ) )+ , (2, (M.fromList [(P 0,False),(P 1,True )], M.fromList [(alice,[1]), (bob,[2])] ) ) ]++examplePointedModel :: PointedModel+examplePointedModel = (exampleModel,1)++aliceBdd, bobBdd :: Bdd+[aliceBdd,bobBdd] = map (untag . flip SMCDEL.Symbolic.K.relBddOfIn exampleModel) [alice,bob]++-- Privately tell alice that P 0, while bob thinks nothing happens.+exampleGenActM :: ActionModel+exampleGenActM = ActM $ M.fromList+ [ (1, Act { pre = PrpF (P 0), post = M.fromList [], rel = M.fromList [(alice,[1]), (bob,[2])] } )+ , (2, Act { pre = Top , post = M.fromList [], rel = M.fromList [(alice,[2]), (bob,[2])] } )+ ]++examplePointedActM :: PointedActionModel+examplePointedActM = (exampleGenActM,1)++exampleResult :: PointedModel+exampleResult = update examplePointedModel examplePointedActM++exampleStart :: BelScene+exampleStart = (BlS [P 0] law obs, actual) where+ law = boolBddOf Top+ obs = M.fromList [ ("1", mvBdd $ boolBddOf Top), ("2", allsamebdd [P 0]) ]+ actual = [P 0]++exampleEvent :: Event+exampleEvent = (Trf [P 1] addlaw (M.fromList []) eventObs, [P 1]) where+ addlaw = PrpF (P 1) `Impl` PrpF (P 0)+ eventObs = M.fromList [ ("1", allsamebdd [P 1]), ("2", cpBdd . boolBddOf $ Neg (PrpF $ P 1)) ]++exampleBlTresult :: BelScene+exampleBlTresult = exampleStart `update` exampleEvent++publicMakeFalseActM :: [Agent] -> Prp -> PointedActionModel+publicMakeFalseActM ags p =+ (ActM $ M.fromList [ (1::Int, Act myPre myPost myRel) ], 0) where+ myPre = Top+ myPost = M.fromList [(p,Bot)]+ myRel = M.fromList [(i,[1]) | i <- ags]++publicMakeFalseTrf :: [Agent] -> Prp -> Event+publicMakeFalseTrf agents p = (Trf [] Top changelaw eventobs, []) where+ changelaw = M.fromList [ (p,boolBddOf Bot) ]+ eventobs = M.fromList [ (i,totalRelBdd) | i <- agents ]++myEvent :: Event+myEvent = publicMakeFalseTrf (agentsOf exampleStart) (P 0)++tResult :: BelScene+tResult = exampleStart `update` myEvent++flipOverAndShowTo :: [Agent] -> Prp -> Agent -> Event+flipOverAndShowTo everyone p i = (Trf [q] eventlaw changelaw eventobs, [q]) where+ q = freshp [p]+ eventlaw = PrpF q `Equi` PrpF p+ changelaw = M.fromList [ (p, boolBddOf . Neg . PrpF $ p) ]+ eventobs = M.fromList $ (i, allsamebdd [q])+ : [ (j,totalRelBdd) | j <- everyone \\ [i] ]++myOtherEvent :: Event+myOtherEvent = flipOverAndShowTo ["1","2"] (P 0) "1"++tResult2 :: BelScene+tResult2 = exampleStart `update` myOtherEvent++exampleBelScn :: BelScene+exampleBelScn = kripkeToBls examplePointedModel
+ src/SMCDEL/Examples/SimpleS5.hs view
@@ -0,0 +1,51 @@+module SMCDEL.Examples.SimpleS5 where++import Data.List ((\\))++import SMCDEL.Explicit.S5+import SMCDEL.Translations.S5+import SMCDEL.Symbolic.S5+import SMCDEL.Language++myStart :: KnowScene+myStart = (KnS [P 0] (boolBddOf Top) [("Alice",[]),("Bob",[P 0])],[P 0])++publicMakeFalse :: [Agent] -> Prp -> Event+publicMakeFalse agents p = (KnTrf [] Top mychangelaw myobs, []) where+ mychangelaw = [ (p,boolBddOf Bot) ]+ myobs = [ (i,[]) | i <- agents ]++myEvent :: Event+myEvent = publicMakeFalse (agentsOf myStart) (P 0)++myResult :: KnowScene+myResult = myStart `update` myEvent++exampleStart :: KnowScene+exampleStart = (KnS [P 0] (boolBddOf Top) [("Alice",[]),("Bob",[P 0])],[P 0])++makeFalseShowTo :: [Agent] -> Prp -> [Agent] -> Event+makeFalseShowTo agents p intheknow = (KnTrf [P 99] Top examplechangelaw exampleobs, []) where+ examplechangelaw = [ (p,boolBddOf $ PrpF (P 99)) ]+ exampleobs = [ (i,[P 99]) | i <- intheknow ]+ ++ [ (i,[ ]) | i <- agents \\ intheknow ]++exampleEvent :: Event+exampleEvent = makeFalseShowTo (agentsOf exampleStart) (P 0) ["Bob"]++exampleResult :: KnowScene+exampleResult = exampleStart `update` exampleEvent++thirdEvent :: Event+thirdEvent = makeFalseShowTo (agentsOf exampleStart) (P 0) ["Alice"]++thirdResult :: KnowScene+thirdResult = exampleStart `update` thirdEvent++problemPM :: PointedModelS5+problemPM = ( KrMS5 [0,1,2,3] [ (alice,[[0],[1,2,3]]), (bob,[[0,1,2],[3]]) ]+ [ (0,[(P 1,True ),(P 2,True )]), (1,[(P 1,True ),(P 2,False)])+ , (2,[(P 1,False),(P 2,True )]), (3,[(P 1,False),(P 2,False)]) ], 1::World )++problemKNS :: KnowScene+problemKNS = kripkeToKns problemPM
src/SMCDEL/Examples/SumAndProduct.hs view
@@ -50,7 +50,7 @@ , PubAnnounce sapForm1 (PubAnnounce sapForm2 sapForm3) ] sapSolutions :: [[Prp]]-sapSolutions = SMCDEL.Symbolic.S5.whereViaBdd sapKnStruct sapProtocol+sapSolutions = whereViaBdd sapKnStruct sapProtocol sapExplainState :: [Prp] -> String sapExplainState truths = concat
src/SMCDEL/Examples/WhatSum.hs view
@@ -34,15 +34,8 @@ wsKnowSelfB = Disj [ K bob $ bIs x | x <- [1..wsBound] ] wsKnowSelfC = Disj [ K carol $ cIs x | x <- [1..wsBound] ] -pubAnnounceSeq :: [Form] -> KnowStruct -> KnowStruct-pubAnnounceSeq [] = id-pubAnnounceSeq (f:fs) = \kns -> pubAnnounceSeq fs (pubAnnounce kns f)- wsResult :: KnowStruct-wsResult =- pubAnnounceSeq- [ Neg wsKnowSelfA, Neg wsKnowSelfB, Neg wsKnowSelfC ]- wsKnStruct+wsResult = foldl update wsKnStruct [ Neg wsKnowSelfA, Neg wsKnowSelfB, Neg wsKnowSelfC ] wsSolutions :: [State] wsSolutions = statesOf wsResult
src/SMCDEL/Explicit/DEMO_S5.hs view
@@ -1,38 +1,48 @@--- Note: This is a slightly modified version of DEMO-S5 by Jan van Eijck--- which can be found at http://homepages.cwi.nl/~jve/software/demo_s5/+-- Note: This is a modified version of DEMO-S5 by Jan van Eijck.+-- For the original, see http://homepages.cwi.nl/~jve/software/demo_s5/ module SMCDEL.Explicit.DEMO_S5 where+ import Control.Arrow (first,second) import Data.List (sortBy)+ import SMCDEL.Internal.Help (apply,restrict,Erel,bl) newtype Agent = Ag Int deriving (Eq,Ord,Show) -data Prp = P Int | Q Int | R Int | S Int deriving (Eq,Ord)-instance Show Prp where- show (P 0) = "p"; show (P i) = "p" ++ show i- show (Q 0) = "q"; show (Q i) = "q" ++ show i- show (R 0) = "r"; show (R i) = "r" ++ show i- show (S 0) = "s"; show (S i) = "s" ++ show i+data DemoPrp = DemoP Int | DemoQ Int | DemoR Int | DemoS Int deriving (Eq,Ord)+instance Show DemoPrp where+ show (DemoP 0) = "p"; show (DemoP i) = "p" ++ show i+ show (DemoQ 0) = "q"; show (DemoQ i) = "q" ++ show i+ show (DemoR 0) = "r"; show (DemoR i) = "r" ++ show i+ show (DemoS 0) = "s"; show (DemoS i) = "s" ++ show i data EpistM state = Mo [state] [Agent]- [(state,[Prp])]+ [(state,[DemoPrp])] [(Agent,Erel state)]- [state] deriving (Eq,Show)+ [state] deriving (Eq) +instance Show state => Show (EpistM state) where+ show (Mo worlds ags val accs points) = concat+ [ "Mo\n "+ , show worlds, "\n "+ , show ags, "\n "+ , show val, "\n "+ , show accs, "\n "+ , show points, "\n"+ ]+ rel :: Show a => Agent -> EpistM a -> Erel a rel ag (Mo _ _ _ rels _) = apply rels ag -initM :: (Num state, Enum state) =>- [Agent] -> [Prp] -> EpistM state-initM ags props = Mo worlds ags val accs points- where- worlds = [0..(2^k-1)]- k = length props- val = zip worlds (sortL (powerList props))- accs = [ (ag,[worlds]) | ag <- ags ]- points = worlds+initM :: (Num state, Enum state) => [Agent] -> [DemoPrp] -> EpistM state+initM ags props = Mo worlds ags val accs points where+ worlds = [0..(2^k-1)]+ k = length props+ val = zip worlds (sortL (powerList props))+ accs = [ (ag,[worlds]) | ag <- ags ]+ points = worlds powerList :: [a] -> [[a]] powerList [] = [[]]@@ -47,72 +57,71 @@ then GT else compare xs ys) -data Form a = Top+data DemoForm a = Top | Info a- | Prp Prp- | Ng (Form a)- | Conj [Form a]- | Disj [Form a]- | Kn Agent (Form a)+ | Prp DemoPrp+ | Ng (DemoForm a)+ | Conj [DemoForm a]+ | Disj [DemoForm a]+ | Kn Agent (DemoForm a)+ | PA (DemoForm a) (DemoForm a)+ | PAW (DemoForm a) (DemoForm a) deriving (Eq,Ord,Show) -impl :: Form a -> Form a -> Form a+impl :: DemoForm a -> DemoForm a -> DemoForm a impl form1 form2 = Disj [Ng form1, form2] -isTrueAt :: Show state => Ord state =>- EpistM state -> state -> Form state -> Bool+-- | semantics: truth at a world in a model+isTrueAt :: (Show state, Ord state) => EpistM state -> state -> DemoForm state -> Bool isTrueAt _ _ Top = True isTrueAt _ w (Info x) = w == x-isTrueAt- (Mo _ _ val _ _) w (Prp p) = let- props = apply val w- in- elem p props+isTrueAt (Mo _ _ val _ _) w (Prp p) = p `elem` apply val w isTrueAt m w (Ng f) = not (isTrueAt m w f) isTrueAt m w (Conj fs) = all (isTrueAt m w) fs isTrueAt m w (Disj fs) = any (isTrueAt m w) fs-isTrueAt m w (Kn ag f) = let- r = rel ag m- b = bl r w- in- all (flip (isTrueAt m) f) b+isTrueAt m w (Kn ag f) = all (flip (isTrueAt m) f) (bl (rel ag m) w)+isTrueAt m w (PA f g) = not (isTrueAt m w f) || isTrueAt (updPa m f) w g+isTrueAt m w (PAW f g) = not (isTrueAt m w f) || isTrueAt (updPaW m f) w g -isTrue :: Show a => Ord a => EpistM a -> Form a -> Bool-isTrue m@(Mo _ _ _ _ points) f =- all (\w -> isTrueAt m w f) points+-- | global truth in a model+isTrue :: Show a => Ord a => EpistM a -> DemoForm a -> Bool+isTrue m@(Mo _ _ _ _ points) f = all (\w -> isTrueAt m w f) points -updPa :: Show state => Ord state =>- EpistM state -> Form state -> EpistM state-updPa m@(Mo states agents val rels actual) f = Mo states' agents val' rels' actual'- where- states' = [ s | s <- states, isTrueAt m s f ]- val' = [ (s, ps) | (s,ps) <- val, s `elem` states' ]- rels' = [(ag,restrict states' r) | (ag,r) <- rels ]- actual' = [ s | s <- actual, s `elem` states' ]+-- | public announcement+updPa :: (Show state, Ord state) => EpistM state -> DemoForm state -> EpistM state+updPa m@(Mo states agents val rels actual) f = Mo states' agents val' rels' actual' where+ states' = [ s | s <- states, isTrueAt m s f ]+ val' = [ (s, ps) | (s,ps) <- val, s `elem` states' ]+ rels' = [ (ag,restrict states' r) | (ag,r) <- rels ]+ actual' = [ s | s <- actual, s `elem` states' ] -updsPa :: Show state => Ord state =>- EpistM state -> [Form state] -> EpistM state+updsPa :: (Show state, Ord state) => EpistM state -> [DemoForm state] -> EpistM state updsPa = foldl updPa -sub :: Show a => [(Prp,Form a)] -> Prp -> Form a-sub subst p =- if p `elem` map fst subst- then apply subst p- else Prp p+-- | public announcement-whether+updPaW :: (Show state, Ord state) => EpistM state -> DemoForm state -> EpistM state+updPaW m@(Mo states agents val rels actual) f = Mo states agents val rels' actual where+ rels' = [ (ag, sortL $ concatMap split r) | (ag,r) <- rels ]+ split ws = filter (/= []) [ filter (\w -> isTrueAt m w f) ws, filter (\w -> not $ isTrueAt m w f) ws ] -updPc :: Show state => Ord state => [Prp] -> EpistM state- -> [(Prp,Form state)] -> EpistM state-updPc ps m@(Mo states agents _ rels actual) sb =- Mo states agents val' rels actual- where- val' = [ (s, [p | p <- ps, isTrueAt m s (sub sb p)])- | s <- states ]+updsPaW :: (Show state, Ord state) => EpistM state -> [DemoForm state] -> EpistM state+updsPaW = foldl updPaW -updsPc :: Show state => Ord state => [Prp] -> EpistM state- -> [[(Prp,Form state)]] -> EpistM state+-- | safe substitutions+sub :: Show a => [(DemoPrp,DemoForm a)] -> DemoPrp -> DemoForm a+sub subst p | p `elem` map fst subst = apply subst p+ | otherwise = Prp p++-- | public factual change+updPc :: (Show state, Ord state) => [DemoPrp] -> EpistM state -> [(DemoPrp,DemoForm state)] -> EpistM state+updPc ps m@(Mo states agents _ rels actual) sb = Mo states agents val' rels actual where+ val' = [ (s, [p | p <- ps, isTrueAt m s (sub sb p)]) | s <- states ]++updsPc :: Show state => Ord state => [DemoPrp] -> EpistM state+ -> [[(DemoPrp,DemoForm state)]] -> EpistM state updsPc ps = foldl (updPc ps) -updPi :: (state -> state) -> EpistM state -> EpistM state+updPi :: (state1 -> state2) -> EpistM state1 -> EpistM state2 updPi f (Mo states agents val rels actual) = Mo (map f states)@@ -123,8 +132,7 @@ bTables :: Int -> [[Bool]] bTables 0 = [[]]-bTables n = map (True:) (bTables (n-1))- ++ map (False:) (bTables (n-1))+bTables n = map (True:) (bTables (n-1)) ++ map (False:) (bTables (n-1)) initN :: Int -> EpistM [Bool] initN n = Mo states agents [] rels points where@@ -135,25 +143,27 @@ tab2 <- bTables (n-i) ]) | i <- [1..n] ] points = [False: replicate (n-1) True] -fatherN :: Int -> Form [Bool]+fatherN :: Int -> DemoForm [Bool] fatherN n = Ng (Info (replicate n False)) -kn :: Int -> Int -> Form [Bool]-kn n i = Disj [Kn (Ag i) (Disj [Info (tab1++[True]++tab2) |- tab1 <- bTables (i-1),- tab2 <- bTables (n-i) ]),- Kn (Ag i) (Disj [Info (tab1++[False]++tab2) |- tab1 <- bTables (i-1),- tab2 <- bTables (n-i) ])]+kn :: Int -> Int -> DemoForm [Bool]+kn n i = Disj [Kn (Ag i) (Disj [ Info (tab1++[True]++tab2)+ | tab1 <- bTables (i-1)+ , tab2 <- bTables (n-i)+ ] ),+ Kn (Ag i) (Disj [ Info (tab1++[False]++tab2)+ | tab1 <- bTables (i-1)+ , tab2 <- bTables (n-i)+ ] )+ ] -dont :: Int -> Form [Bool]+dont :: Int -> DemoForm [Bool] dont n = Conj [Ng (kn n i) | i <- [1..n] ] -knowN :: Int -> Form [Bool]+knowN :: Int -> DemoForm [Bool] knowN n = Conj [kn n i | i <- [2..n] ] solveN :: Int -> EpistM [Bool]-solveN n = updsPa (initN n) (f:istatements ++ [knowN n])- where+solveN n = updsPa (initN n) (f:istatements ++ [knowN n]) where f = fatherN n istatements = replicate (n-2) (dont n)
src/SMCDEL/Explicit/K.hs view
@@ -1,44 +1,46 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-} module SMCDEL.Explicit.K where import Control.Arrow ((&&&))-import Data.GraphViz-import Data.List (nub,sort,(\\),delete,elemIndex)-import Data.Map.Strict (Map,fromList,elems,(!),mapMaybeWithKey)-import qualified Data.Map.Strict+import Data.Dynamic+import Data.List (nub,sort,(\\),delete,intercalate,intersect)+import qualified Data.Map.Strict as M+import Data.Map.Strict ((!))+import Data.Maybe (isJust,isNothing)+import Test.QuickCheck import SMCDEL.Language-import SMCDEL.Explicit.S5 (World,HasWorlds,worldsOf,Action)-import SMCDEL.Internal.Help (alleqWith,lfp,seteq)+import SMCDEL.Explicit.S5 (Action,Bisimulation,HasWorlds,World,worldsOf)+import SMCDEL.Internal.Help (alleqWith,lfp) import SMCDEL.Internal.TexDisplay -newtype KripkeModel = KrM (Map World (Map Prp Bool, Map Agent [World]))+newtype KripkeModel = KrM (M.Map World (M.Map Prp Bool, M.Map Agent [World])) deriving (Eq,Ord,Show) +instance Pointed KripkeModel World type PointedModel = (KripkeModel, World) +instance Pointed KripkeModel [World]+type MultipointedModel = (KripkeModel,[World])+ distinctVal :: KripkeModel -> Bool-distinctVal (KrM m) = Data.Map.Strict.size m == length (nub (map fst (elems m)))+distinctVal (KrM m) = M.size m == length (nub (map fst (M.elems m))) instance HasWorlds KripkeModel where- worldsOf (KrM m) = Data.Map.Strict.keys m+ worldsOf (KrM m) = M.keys m instance HasVocab KripkeModel where- vocabOf (KrM m) = Data.Map.Strict.keys $ fst (head (Data.Map.Strict.elems m))+ vocabOf (KrM m) = M.keys $ fst (head (M.elems m)) instance HasAgents KripkeModel where- agentsOf (KrM m) = Data.Map.Strict.keys $ snd (head (Data.Map.Strict.elems m))--instance HasWorlds PointedModel where worldsOf = worldsOf . fst-instance HasVocab PointedModel where vocabOf = vocabOf . fst-instance HasAgents PointedModel where agentsOf = agentsOf . fst+ agentsOf (KrM m) = M.keys $ snd (head (M.elems m)) -relOfIn :: Agent -> KripkeModel -> Map World [World]-relOfIn i (KrM m) = Data.Map.Strict.map (\x -> snd x ! i) m+relOfIn :: Agent -> KripkeModel -> M.Map World [World]+relOfIn i (KrM m) = M.map (\x -> snd x ! i) m truthsInAt :: KripkeModel -> World -> [Prp]-truthsInAt (KrM m) w = Data.Map.Strict.keys (Data.Map.Strict.filter id (fst (m ! w)))+truthsInAt (KrM m) w = M.keys (M.filter id (fst (m ! w))) instance KripkeLike KripkeModel where directed = const True@@ -54,24 +56,45 @@ getEdges = getEdges . fst getActuals = return . show . fromEnum . snd -instance TexAble KripkeModel where- tex = tex.ViaDot- texTo = texTo.ViaDot+instance KripkeLike MultipointedModel where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals = map (show . fromEnum) . snd++instance TexAble KripkeModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot texDocumentTo = texDocumentTo.ViaDot -instance TexAble PointedModel where- tex = tex.ViaDot- texTo = texTo.ViaDot+instance TexAble PointedModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot texDocumentTo = texDocumentTo.ViaDot -exampleModel :: KripkeModel-exampleModel = KrM $ fromList- [ (1, (fromList [(P 0,True ),(P 1,True )], fromList [(alice,[1]), (bob,[1])] ) )- , (2, (fromList [(P 0,False),(P 1,True )], fromList [(alice,[1]), (bob,[2])] ) ) ]+instance TexAble MultipointedModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot -examplePointedModel :: PointedModel-examplePointedModel = (exampleModel,1)+instance Arbitrary KripkeModel where+ arbitrary = do+ nonActualWorlds <- sublistOf [1..8]+ let worlds = 0 : nonActualWorlds+ m <- mapM (\w -> do+ myAssignment <- zip defaultVocabulary <$> infiniteListOf (choose (True,False))+ myRelations <- mapM (\a -> do+ reachables <- sublistOf worlds+ return (a,reachables)+ ) defaultAgents+ return (w, (M.fromList myAssignment, M.fromList myRelations)) -- FIXME avoid fromList, build M.map directly?+ ) worlds+ return $ KrM $ M.fromList m+ shrink krm = [ krm `withoutWorld` w | length (worldsOf krm) > 1, w <- delete 0 (worldsOf krm) ] +withoutWorld :: KripkeModel -> World -> KripkeModel+withoutWorld (KrM m) w = KrM $ M.map (\(a, r) -> (a, M.map (delete w) r)) $ M.delete w m+ eval :: PointedModel -> Form -> Bool eval _ Top = True eval _ Bot = False@@ -90,101 +113,239 @@ eval (KrM m,w) (Kw i f) = alleqWith (\w' -> eval (KrM m,w') f) (snd (m ! w) ! i) eval (m,w) (Ck ags form) = all (\w' -> eval (m,w') form) (groupRel m ags w) eval (m,w) (Ckw ags form) = alleqWith (\w' -> eval (m,w') form) (groupRel m ags w)-eval (m,w) (PubAnnounce f g) = not (eval (m,w) f) || eval (pubAnnounceNonS5 m f,w) g-eval (m,w) (PubAnnounceW f g) = eval (pubAnnounceNonS5 m aform, w) g where+eval (m,w) (PubAnnounce f g) = not (eval (m,w) f) || eval (update (m,w) f) g+eval (m,w) (PubAnnounceW f g) = eval (update m aform, w) g where aform | eval (m,w) f = f | otherwise = Neg f eval (m,w) (Announce listeners f g) = not (eval (m,w) f) || eval newm g where- newm = (m,w) `productUpdate` announceActionNonS5 (agentsOf m) listeners f+ newm = (m,w) `update` announceAction (agentsOf m) listeners f eval (m,w) (AnnounceW listeners f g) = eval newm g where- newm = (m,w) `productUpdate` announceActionNonS5 (agentsOf m) listeners aform+ newm = (m,w) `update` announceAction (agentsOf m) listeners aform aform | eval (m,w) f = f | otherwise = Neg f+eval pm (Dia (Dyn dynLabel d) f) = case fromDynamic d of+ Just pactm -> eval pm (preOf (pactm :: PointedActionModel)) && eval (pm `update` pactm) f+ Nothing -> error $ "cannot update Kripke model with '" ++ dynLabel ++ "':\n " ++ show d +instance Semantics PointedModel where+ isTrue = eval++instance Semantics KripkeModel where+ isTrue m = isTrue (m, worldsOf m)++instance Semantics MultipointedModel where+ isTrue (m,ws) f = all (\w -> isTrue (m,w) f) ws+ groupRel :: KripkeModel -> [Agent] -> World -> [World] groupRel (KrM m) ags w = lfp extend (oneStepReachFrom w) where oneStepReachFrom x = concat [ snd (m ! x) ! a | a <- ags ] extend xs = sort . nub $ xs ++ concatMap oneStepReachFrom xs -pubAnnounceNonS5 :: KripkeModel -> Form -> KripkeModel-pubAnnounceNonS5 (KrM m) f = KrM newm where- newm = mapMaybeWithKey isin m- isin w' (v,rs) | eval (KrM m,w') f = Just (v,Data.Map.Strict.map newr rs)- | otherwise = Nothing- newr = filter (`elem` Data.Map.Strict.keys newm)+instance Update KripkeModel Form where+ checks = [ ] -- unpointed models can always be updated with any formula+ unsafeUpdate (KrM m) f = KrM newm where+ newm = M.mapMaybeWithKey isin m+ isin w' (v,rs) | eval (KrM m,w') f = Just (v, M.map newr rs)+ | otherwise = Nothing+ newr = filter (`elem` M.keys newm) -announceActionNonS5 :: [Agent] -> [Agent] -> Form -> PointedActionModel-announceActionNonS5 everyone listeners f = (AM am, 1) where- am = fromList- [ (1, (f , fromList $ [(i,[1]) | i <- listeners] ++ [(i,[2]) | i <- everyone \\ listeners]))- , (2, (Top, fromList [(i,[2]) | i <- everyone]) ) ]+instance Update PointedModel Form where+ unsafeUpdate (m,w) f = (unsafeUpdate m f, w) -mudGenKrpInit :: Int -> Int -> PointedModel-mudGenKrpInit n m = (KrM $ fromList wlist, cur) where- wlist = [ (w, (fromList (vals !! w), fromList $ relFor w)) | w <- ws ]- ws = [0..(2^n-1)]- vals = map sort (foldl buildTable [[]] [P k | k<- [1..n]])- buildTable partrows p = [ (p,v):pr | v <-[True,False], pr <- partrows ]- relFor w = [ (show i, seesFrom i w) | i <- [1..n] ]- seesFrom i w = filter (\v -> samefor i (vals !! w) (vals !! v)) ws- samefor i ps qs = seteq (delete (P i) (map fst $ filter snd ps)) (delete (P i) (map fst $ filter snd qs))- (Just cur) = elemIndex curVal vals- curVal = sort $ [(p,True) | p <- [P 1 .. P m]] ++ [(p,True) | p <- [P (m+1) .. P n]]+instance Update MultipointedModel Form where+ unsafeUpdate (m,ws) f =+ let newm = unsafeUpdate m f in (newm, ws `intersect` worldsOf newm) -myMudGenKrpInit :: PointedModel-myMudGenKrpInit = mudGenKrpInit 3 3+announceAction :: [Agent] -> [Agent] -> Form -> PointedActionModel+announceAction everyone listeners f = (ActM am, 1) where+ am = M.fromList+ [ (1, Act { pre = f, post = M.fromList [], rel = M.fromList $ [(i,[1]) | i <- listeners] ++ [(i,[2]) | i <- everyone \\ listeners] } )+ , (2, Act { pre = Top, post = M.fromList [], rel = M.fromList [(i,[2]) | i <- everyone] } )+ ] +checkBisim :: Bisimulation -> KripkeModel -> KripkeModel -> Bool+checkBisim [] _ _ = False+checkBisim z m1 m2 =+ all (\(w1,w2) ->+ (truthsInAt m1 w1 == truthsInAt m2 w2) -- same valuation+ && and [ any (\v2 -> (v1,v2) `elem` z) (relOfIn ag m2 ! w2) -- forth+ | ag <- agentsOf m1, v1 <- relOfIn ag m1 ! w1 ]+ && and [ any (\v1 -> (v1,v2) `elem` z) (relOfIn ag m1 ! w1) -- back+ | ag <- agentsOf m2, v2 <- relOfIn ag m2 ! w2 ]+ ) z++checkBisimPointed :: Bisimulation -> PointedModel -> PointedModel -> Bool+checkBisimPointed z (m1,w1) (m2,w2) = (w1,w2) `elem` z && checkBisim z m1 m2++type Status = Maybe Form+type StatusMap = M.Map (World,World) Status++diff :: KripkeModel -> KripkeModel -> StatusMap+diff m1 m2 = lfp step start where+ -- initialize using differences in atomic propositions given by valuation+ start = M.fromList [ ((w1,w2), propDiff (truthsInAt m1 w1) (truthsInAt m2 w2))+ | w1 <- worldsOf m1, w2 <- worldsOf m2 ]+ propDiff ps qs | ps \\ qs /= [] = Just $ PrpF $ head (ps \\ qs)+ | qs \\ ps /= [] = Just $ Neg $ PrpF $ head (qs \\ ps)+ | otherwise = Nothing+ -- until a fixpoint is reached, update the map using all relations+ step curMap = M.mapWithKey (updateAt curMap) curMap+ updateAt _ _ (Just f) = Just f+ updateAt curMap (w1,w2) Nothing = case+ -- forth+ [ Neg . K i . Neg . Conj $ [ f | w2' <- w2's, let Just f = curMap ! (w1',w2') ]+ | i <- agentsOf m1+ , let w2's = relOfIn i m2 ! w2+ , w1' <- relOfIn i m1 ! w1+ , all (\w2' -> isJust $ curMap ! (w1',w2')) w2's+ ]+ +++ -- back+ [ K i . Disj $ [ f | w1' <- w1's, let Just f = curMap ! (w1',w2') ]+ | i <- agentsOf m1+ , let w1's = relOfIn i m1 ! w1+ , w2' <- relOfIn i m2 ! w2+ , all (\w1' -> isJust $ curMap ! (w1',w2')) w1's+ ]+ of+ [] -> Nothing+ (f:_) -> Just f++diffPointed :: PointedModel -> PointedModel -> Either Bisimulation Form+diffPointed (m1,w1) (m2,w2) =+ case diff m1 m2 ! (w1,w2) of+ Nothing -> Left $ M.keys $ M.filter isNothing (diff m1 m2)+ Just f -> Right f+ generatedSubmodel :: PointedModel -> PointedModel generatedSubmodel (KrM m, cur) = (KrM newm, cur) where- newm = mapMaybeWithKey isin m- isin w' (v,rs) | w' `elem` reachable = Just (v, Data.Map.Strict.map newr rs)+ newm = M.mapMaybeWithKey isin m+ isin w' (v,rs) | w' `elem` reachable = Just (v, M.map newr rs) | otherwise = Nothing- newr = filter (`elem` Data.Map.Strict.keys newm)+ newr = filter (`elem` M.keys newm) reachable = lfp follow [cur] where follow xs = sort . nub $ concat [ snd (m ! x) ! a | x <- xs, a <- agentsOf (KrM m) ] -newtype ActionModel = AM (Map Action (Form, Map Agent [Action]))+type PostCondition = M.Map Prp Form++data Act = Act {pre :: Form, post :: PostCondition, rel :: M.Map Agent [Action]} deriving (Eq,Ord,Show)-type PointedActionModel = (ActionModel, Action) -eventsOf :: ActionModel -> [Action]-eventsOf (AM am) = Data.Map.Strict.keys am+-- | Extend `post` to all propositions+safepost :: Act -> Prp -> Form+safepost ch p | p `elem` M.keys (post ch) = post ch ! p+ | otherwise = PrpF p +newtype ActionModel = ActM (M.Map Action Act)+ deriving (Eq,Ord,Show)+ instance HasAgents ActionModel where- agentsOf (AM am) = Data.Map.Strict.keys $ snd (head (Data.Map.Strict.elems am))+ agentsOf (ActM am) = M.keys $ rel (head (M.elems am)) -relOfInAM :: Agent -> ActionModel -> Map Action [Action]-relOfInAM i (AM am) = Data.Map.Strict.map (\x -> snd x ! i) am+instance HasPrecondition ActionModel where+ preOf _ = Top -instance KripkeLike PointedActionModel where+instance Pointed ActionModel Action+type PointedActionModel = (ActionModel, Action)++instance HasPrecondition PointedActionModel where+ preOf (ActM am, actual) = pre (am ! actual)++instance Pointed ActionModel [Action]+type MultipointedActionModel = (ActionModel, [Action])++instance HasPrecondition MultipointedActionModel where+ preOf (ActM am, as) = Disj [ pre (am ! a) | a <- as ]++instance Update KripkeModel ActionModel where+ checks = [haveSameAgents]+ unsafeUpdate m (ActM am) =+ let (newModel,_) = unsafeUpdate (m, worldsOf m) (ActM am, M.keys am) in newModel++instance Update PointedModel PointedActionModel where+ checks = [haveSameAgents,preCheck]+ unsafeUpdate (m, w) (actm, a) =+ let (newModel,[newWorld]) = unsafeUpdate (m, [w]) (actm, [a]) in (newModel,newWorld)++instance Update PointedModel MultipointedActionModel where+ checks = [haveSameAgents,preCheck]+ unsafeUpdate (m, w) mpactm =+ let (newModel,[newWorld]) = unsafeUpdate (m, [w]) mpactm in (newModel,newWorld)++instance Update MultipointedModel PointedActionModel where+ checks = [haveSameAgents] -- do not check precondition!+ unsafeUpdate mpm (actm, a) = unsafeUpdate mpm (actm, [a])++instance Update MultipointedModel MultipointedActionModel where+ checks = [haveSameAgents]+ unsafeUpdate (KrM m, ws) (ActM am, facts) =+ (KrM $ M.fromList (map annotate worldPairs), newActualWorlds) where+ worldPairs = zip (concat [ [ (s, a) | eval (KrM m, s) (pre $ am ! a) ] | s <- M.keys m, a <- M.keys am ]) [0..]+ newActualWorlds = [ k | ((w,a),k) <- worldPairs, w `elem` ws, a `elem` facts ]+ annotate ((s,a),news) = (news , (newval, M.fromList (map reachFor (agentsOf (KrM m))))) where+ newval = M.mapWithKey applyPC (fst $ m ! s)+ applyPC p oldbit+ | p `elem` M.keys (post (am ! a)) = eval (KrM m,s) (post (am ! a) ! p)+ | otherwise = oldbit+ reachFor i = (i, [ news' | ((s',a'),news') <- worldPairs, s' `elem` snd (m ! s) ! i, a' `elem` rel (am ! a) ! i ])++instance Arbitrary ActionModel where+ arbitrary = do+ let allactions = [0..3]+ BF f <- sized $ randomboolformWith defaultVocabulary+ BF g <- sized $ randomboolformWith defaultVocabulary+ BF h <- sized $ randomboolformWith defaultVocabulary+ let myPres = Top : map simplify [f,g,h]+ myPosts <- mapM (\_ -> do+ proptochange <- elements defaultVocabulary+ postconcon <- elements $ [Top,Bot] ++ map PrpF defaultVocabulary+ return $ M.fromList [ (proptochange, postconcon) ]+ ) allactions+ myRels <- mapM (\k -> do+ reachList <- sublistOf allactions+ return $ M.fromList $ ("0",[k]) : [(ag,reachList) | ag <- defaultAgents]+ ) allactions+ return $ ActM $ M.fromList+ [ (k::Action, Act (myPres !! k) (myPosts !! k) (myRels !! k)) | k <- allactions ]+ shrink (ActM am) = [ ActM $ removeFromRels k $ M.delete k am | k <- M.keys am, k /= 0 ] where+ removeFromRels = M.map . removeFrom where+ removeFrom k c = c { rel = M.map (delete k) (rel c) }++instance KripkeLike ActionModel where directed = const True- getNodes (AM am, _) = map (show &&& labelOf) (eventsOf (AM am)) where- labelOf a = "$" ++ tex (fst $ am ! a) ++ "$"- getEdges (AM am, _) = concat [ [ (a,show w,show v) | v <- relOfInAM a (AM am) ! w ] | w <- eventsOf (AM am), a <- agentsOf (AM am) ]- getActuals (_, cur) = [show cur]- nodeAts _ True = [shape BoxShape, style solid]- nodeAts _ False = [shape BoxShape, style dashed]+ getNodes (ActM am) = map (show &&& labelOf) (M.keys am) where+ labelOf a = concat+ [ "$\\begin{array}{c} ? " , tex (pre (am ! a)) , "\\\\"+ , intercalate "\\\\" (map showPost (M.toList $ post (am ! a)))+ , "\\end{array}$" ]+ showPost (p,f) = tex p ++ " := " ++ tex f+ getEdges (ActM am) =+ concat [ [ (i, show a, show b) | b <- rel (am ! a) ! i ] | a <- M.keys am, i <- agentsOf (ActM am) ]+ getActuals = const [ ] -instance TexAble PointedActionModel where tex = tex.ViaDot+instance TexAble ActionModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot -productUpdate :: PointedModel -> PointedActionModel -> PointedModel-productUpdate (KrM m, oldcur) (AM am, act)- | agentsOf (KrM m) /= agentsOf (AM am) = error "productUpdate failed: Agents of KrM and GAM are not the same!"- | not $ eval (KrM m, oldcur) (fst $ am ! act) = error "productUpdate failed: Actual precondition is false!"- | otherwise = (KrM $ fromList (map annotate statePairs), newcur) where- statePairs = zip [ (s, a) | s <- worldsOf (KrM m), a <- eventsOf (AM am), eval (KrM m, s) (fst $ am ! a) ] [0..]- annotate ((s,a),news) = (news , (fst $ m ! s, fromList (map reachFor (agentsOf (KrM m))))) where- reachFor i = (i, [ news' | ((s',a'),news') <- statePairs, s' `elem` snd (m ! s) ! i, a' `elem` snd (am ! a) ! i ])- (Just newcur) = lookup (oldcur,act) statePairs+instance KripkeLike PointedActionModel where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, a) = [show a] --- Privately tell alice that P 0, while bob thinks nothing happens.-exampleGenActM :: ActionModel-exampleGenActM = AM $ fromList- [ (1, (PrpF (P 0), fromList [(alice,[1]), (bob,[2])] ) )- , (2, (Top , fromList [(alice,[2]), (bob,[2])] ) ) ]+instance TexAble PointedActionModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot -examplePointedActM :: PointedActionModel-examplePointedActM = (exampleGenActM,1)+instance KripkeLike MultipointedActionModel where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, as) = map show as -exampleResult :: PointedModel-exampleResult = productUpdate examplePointedModel examplePointedActM+instance TexAble MultipointedActionModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot
− src/SMCDEL/Explicit/K/Change.hs
@@ -1,133 +0,0 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}--module SMCDEL.Explicit.K.Change where--import Control.Arrow ((&&&))-import Control.Monad-import Data.List (delete,intercalate)-import qualified Data.Map.Strict as M-import Data.Map.Strict ((!),fromList)-import Test.QuickCheck--import SMCDEL.Explicit.K-import SMCDEL.Explicit.S5 (World)-import SMCDEL.Internal.TexDisplay-import SMCDEL.Language--type PostCondition = M.Map Prp Form--type Action = Int--data Change = Ch {pre :: Form, post :: PostCondition, rel :: M.Map Agent [Action]}- deriving (Eq,Ord,Show)---- | Extend `post` to all propositions-safepost :: Change -> Prp -> Form-safepost ch p | p `elem` M.keys (post ch) = post ch ! p- | otherwise = PrpF p--newtype ChangeModel = ChM (M.Map Action Change)- deriving (Eq,Ord,Show)-type PointedChangeModel = (ChangeModel, Action)--type MultipointedChangeModel = (ChangeModel, [Action])--instance HasAgents ChangeModel where- agentsOf (ChM cm) = M.keys $ rel (head (M.elems cm))--instance HasAgents PointedChangeModel where- agentsOf = agentsOf . fst--instance HasPrecondition PointedChangeModel where- preOf (ChM cm, actual) = pre (cm ! actual)--productChangeWithMap :: KripkeModel -> ChangeModel -> (KripkeModel, M.Map (World, Action) World)-productChangeWithMap (KrM m) (ChM cm)- | agentsOf (KrM m) /= agentsOf (ChM cm) = error "productChange failed: agentsOf differs!"- | otherwise = (KrM $ fromList (map annotate statePairs), fromList statePairs) where- statePairs = zip (concat [ [ (s, a) | eval (KrM m, s) (pre $ cm ! a) ] | s <- M.keys m, a <- M.keys cm ]) [0..]- annotate ((s,a),news) = (news , (newval, fromList (map reachFor (agentsOf (KrM m))))) where- newval = M.mapWithKey applyPC (fst $ m ! s)- applyPC p oldbit- | p `elem` M.keys (post (cm ! a)) = eval (KrM m,s) (post (cm ! a) ! p)- | otherwise = oldbit- reachFor i = (i, [ news' | ((s',a'),news') <- statePairs, s' `elem` snd (m ! s) ! i, a' `elem` rel (cm ! a) ! i ])--productChange :: PointedModel -> PointedChangeModel -> PointedModel-productChange (m, cur) (ChM cm, act)- | not $ eval (m, cur) (pre $ cm ! act) = error "productChange failed: false actual precondition!"- | otherwise = (newm, newcur) where- (newm, stateMap) = productChangeWithMap m (ChM cm)- newcur = stateMap ! (cur,act)--productChangePointless :: KripkeModel -> ChangeModel -> KripkeModel-productChangePointless (KrM m) (ChM cm) = fst $ productChangeWithMap (KrM m) (ChM cm)--productChangeMulti :: PointedModel -> MultipointedChangeModel -> PointedModel-productChangeMulti pm (ChM cm, as) = productChange pm (ChM cm, a) where- [a] = filter (\x -> eval pm (pre $ cm ! x)) as--publicMakeFalseChM :: [Agent] -> Prp -> PointedChangeModel-publicMakeFalseChM ags p = (ChM $ fromList [ (1::Action, Ch myPre myPost myRel) ], 0) where- myPre = Top- myPost = fromList [(p,Bot)]- myRel = fromList [(i,[1]) | i <- ags]--instance Arbitrary ChangeModel where- arbitrary = do- let allactions = [0..3]- [BF f, BF g, BF h, BF l] <- replicateM 4 (sized $ randomboolformWith [P 0 .. P 4])- let myPres = map simplify [f,g,h,l]- myPosts <- mapM (\_ -> do- proptochange <- elements [P 0 .. P 4]- postconcon <- elements $ [Top,Bot] ++ map PrpF [P 0 .. P 4]- return $ fromList [ (proptochange, postconcon) ]- ) allactions- myRels <- mapM (\k -> do- reachList <- sublistOf allactions- return $ fromList $ ("0",[k]) : [(show i,reachList) | i <- [1..5::Int]]- ) allactions- return $ ChM $ fromList- [ (k::Action, Ch (myPres !! k) (myPosts !! k) (myRels !! k)) | k <- allactions ]- shrink (ChM cm) = [ ChM $ removeFromRels k $ M.delete k cm | k <- M.keys cm, k /= 0 ] where- removeFromRels = M.map . removeFrom where- removeFrom k c = c { rel = M.map (delete k) (rel c) }--instance KripkeLike ChangeModel where- directed = const True- getNodes (ChM cm) = map (show &&& labelOf) (M.keys cm) where- labelOf a = concat- [ "$\\begin{array}{c} ? " , tex (pre (cm ! a)) , "\\\\"- , intercalate "\\\\" (map showPost (M.toList $ post (cm ! a)))- , "\\end{array}$" ]- showPost (p,f) = tex p ++ " := " ++ tex f- getEdges (ChM cm) =- concat [ [ (i, show a, show b) | b <- rel (cm ! a) ! i ] | a <- M.keys cm, i <- agentsOf (ChM cm) ]- getActuals = const [ ]--instance TexAble ChangeModel where- tex = tex.ViaDot- texTo = texTo.ViaDot- texDocumentTo = texDocumentTo.ViaDot--instance KripkeLike PointedChangeModel where- directed = directed . fst- getNodes = getNodes . fst- getEdges = getEdges . fst- getActuals (_, a) = [show a]--instance TexAble PointedChangeModel where- tex = tex.ViaDot- texTo = texTo.ViaDot- texDocumentTo = texDocumentTo.ViaDot--instance KripkeLike MultipointedChangeModel where- directed = directed . fst- getNodes = getNodes . fst- getEdges = getEdges . fst- getActuals (_, as) = map show as--instance TexAble MultipointedChangeModel where- tex = tex.ViaDot- texTo = texTo.ViaDot- texDocumentTo = texDocumentTo.ViaDot
src/SMCDEL/Explicit/S5.hs view
@@ -1,9 +1,14 @@ {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, FlexibleContexts #-} module SMCDEL.Explicit.S5 where+ import Control.Arrow (second,(&&&))+import Data.Dynamic import Data.GraphViz import Data.List+import Data.Tuple (swap)+import Data.Maybe (fromMaybe)+ import SMCDEL.Language import SMCDEL.Internal.TexDisplay import SMCDEL.Internal.Help (alleqWith,fusion,apply,(!),lfp)@@ -14,30 +19,28 @@ class HasWorlds a where worldsOf :: a -> [World] +instance (HasWorlds a, Pointed a b) => HasWorlds (a,b) where worldsOf = worldsOf . fst+ type Partition = [[World]] type Assignment = [(Prp,Bool)] data KripkeModelS5 = KrMS5 [World] [(Agent,Partition)] [(World,Assignment)] deriving (Eq,Ord,Show)++instance Pointed KripkeModelS5 World type PointedModelS5 = (KripkeModelS5,World) +instance Pointed KripkeModelS5 [World]+type MultipointedModelS5 = (KripkeModelS5,[World])+ instance HasAgents KripkeModelS5 where agentsOf (KrMS5 _ rel _) = map fst rel -instance HasAgents PointedModelS5 where- agentsOf = agentsOf . fst- instance HasVocab KripkeModelS5 where vocabOf (KrMS5 _ _ val) = map fst $ snd (head val) -instance HasVocab PointedModelS5 where- vocabOf = vocabOf . fst- instance HasWorlds KripkeModelS5 where worldsOf (KrMS5 ws _ _) = ws -instance HasWorlds PointedModelS5 where- worldsOf = worldsOf . fst- newtype PropList = PropList [Prp] withoutWorld :: KripkeModelS5 -> World -> KripkeModelS5@@ -66,20 +69,19 @@ instance Arbitrary KripkeModelS5 where arbitrary = do- let agents = map show [1..(5::Int)]- let props = map P [0..4]- worlds <- sort . nub <$> listOf1 (elements [0..8])+ nonActualWorlds <- sublistOf [1..8]+ let worlds = 0 : nonActualWorlds val <- mapM (\w -> do- randomAssignment <- zip props <$> infiniteListOf (choose (True,False))- return (w,randomAssignment)+ myAssignment <- zip defaultVocabulary <$> infiniteListOf (choose (True,False))+ return (w,myAssignment) ) worlds parts <- mapM (\i -> do- randomPartition <- randomPartFor worlds- return (i,randomPartition)- ) agents+ myPartition <- randomPartFor worlds+ return (i,myPartition)+ ) defaultAgents return $ KrMS5 worlds parts val shrink m@(KrMS5 worlds _ _) =- [ m `withoutWorld` w | w <- worlds, length worlds > 1 ]+ [ m `withoutWorld` w | not (null worlds), w <- worlds ] eval :: PointedModelS5 -> Form -> Bool eval _ Top = True@@ -106,31 +108,49 @@ vs = concat $ filter (elem w) ckrel ckrel = fusion $ concat [ apply rel i | i <- ags ] eval pm (PubAnnounce form1 form2) =- not (eval pm form1) || eval (pubAnnounce pm form1) form2+ not (eval pm form1) || eval (update pm form1) form2 eval pm (PubAnnounceW form1 form2) = if eval pm form1- then eval (pubAnnounce pm form1) form2- else eval (pubAnnounce pm (Neg form1)) form2+ then eval (update pm form1) form2+ else eval (update pm (Neg form1)) form2 eval pm (Announce ags form1 form2) = not (eval pm form1) || eval (announce pm ags form1) form2 eval pm (AnnounceW ags form1 form2) = if eval pm form1 then eval (announce pm ags form1) form2 else eval (announce pm ags (Neg form1)) form2+eval pm (Dia (Dyn dynLabel d) f) = case fromDynamic d of+ Just pactm -> eval pm (preOf (pactm :: PointedActionModelS5)) && eval (pm `update` pactm) f+ Nothing -> case fromDynamic d of+ Just mpactm -> eval pm (preOf (mpactm :: MultipointedActionModelS5)) && eval (pm `update` mpactm) f+ Nothing -> error $ "cannot update S5 Kripke model with '" ++ dynLabel ++ "':\n " ++ show d valid :: KripkeModelS5 -> Form -> Bool valid m@(KrMS5 worlds _ _) f = all (\w -> eval (m,w) f) worlds -pubAnnounce :: PointedModelS5 -> Form -> PointedModelS5-pubAnnounce pm@(m@(KrMS5 sts rel val), cur) form =- if eval pm form then (KrMS5 newsts newrel newval, cur)- else error "pubAnnounce failed: Liar!"- where+instance Semantics KripkeModelS5 where+ isTrue m f = all (\w -> isTrue (m,w) f) (worldsOf m)++instance Semantics PointedModelS5 where+ isTrue = eval++instance Semantics MultipointedModelS5 where+ isTrue (m,ws) f = all (\w -> isTrue (m,w) f) ws++instance Update KripkeModelS5 Form where+ unsafeUpdate m@(KrMS5 sts rel val) form = KrMS5 newsts newrel newval where newsts = filter (\s -> eval (m,s) form) sts newrel = map (second relfil) rel relfil = filter ([]/=) . map (filter (`elem` newsts)) newval = filter (\p -> fst p `elem` newsts) val +instance Update PointedModelS5 Form where+ unsafeUpdate (m,w) f = (unsafeUpdate m f, w)++instance Update MultipointedModelS5 Form where+ unsafeUpdate (m,ws) f =+ let newm = unsafeUpdate m f in (newm, ws `intersect` worldsOf newm)+ announce :: PointedModelS5 -> [Agent] -> Form -> PointedModelS5 announce pm@(m@(KrMS5 sts rel val), cur) ags form = if eval pm form then (KrMS5 sts newrel val, cur)@@ -141,6 +161,12 @@ nrel (i,ri) | i `elem` ags = (i,filter ([]/=) (concatMap split ri)) | otherwise = (i,ri) +announceAction :: [Agent] -> [Agent] -> Form -> PointedActionModelS5+announceAction everyone listeners f = (am, 1) where+ am = ActMS5 -- [(Action,(Form,PostCondition))] [(Agent,Partition)]+ [ (1, (f, [])), (2, (Top, [])) ]+ [ (i, if i `elem` listeners then [[1],[2]] else [[1,2]] ) | i <- everyone ]+ instance KripkeLike KripkeModelS5 where directed = const False getNodes (KrMS5 ws _ val) = map (show &&& labelOf) ws where@@ -148,6 +174,11 @@ getEdges (KrMS5 _ rel _) = nub [ (a,show x,show y) | a <- map fst rel, part <- apply rel a, x <- part, y <- part, x < y ] +instance TexAble KripkeModelS5 where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot+ instance KripkeLike PointedModelS5 where directed = directed . fst getNodes = getNodes . fst@@ -155,72 +186,204 @@ getActuals (_, cur) = [show cur] instance TexAble PointedModelS5 where- tex = tex.ViaDot- texTo = texTo.ViaDot+ tex = tex.ViaDot+ texTo = texTo.ViaDot texDocumentTo = texDocumentTo.ViaDot +instance KripkeLike MultipointedModelS5 where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, curs) = map show curs++instance TexAble MultipointedModelS5 where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot+ type Bisimulation = [(World,World)] checkBisim :: Bisimulation -> KripkeModelS5 -> KripkeModelS5 -> Bool checkBisim [] _ _ = False checkBisim z m1@(KrMS5 _ rel1 val1) m2@(KrMS5 _ rel2 val2) =- all (\(w1,w2) -> val1 ! w1 == val2 ! w2) z -- same props- && and [ any (\v2 -> (v1,v2) `elem` z) (concat $ filter (elem w2) (rel2 ! ag)) -- forth- | (w1,w2) <- z, ag <- agentsOf m1, v1 <- concat $ filter (elem w1) (rel1 ! ag) ]- && and [ any (\v1 -> (v1,v2) `elem` z) (concat $ filter (elem w1) (rel1 ! ag)) -- back- | (w1,w2) <- z, ag <- agentsOf m2, v2 <- concat $ filter (elem w2) (rel2 ! ag) ]+ all (\(w1,w2) ->+ (val1 ! w1 == val2 ! w2) -- same valuation+ && and [ any (\v2 -> (v1,v2) `elem` z) (concat $ filter (elem w2) (rel2 ! ag)) -- forth+ | ag <- agentsOf m1, v1 <- concat $ filter (elem w1) (rel1 ! ag) ]+ && and [ any (\v1 -> (v1,v2) `elem` z) (concat $ filter (elem w1) (rel1 ! ag)) -- back+ | ag <- agentsOf m2, v2 <- concat $ filter (elem w2) (rel2 ! ag) ]+ ) z +checkBisimPointed :: Bisimulation -> PointedModelS5 -> PointedModelS5 -> Bool+checkBisimPointed z (m1,w1) (m2,w2) = (w1,w2) `elem` z && checkBisim z m1 m2+ generatedSubmodel :: PointedModelS5 -> PointedModelS5-generatedSubmodel (KrMS5 _ rel val, cur) = (KrMS5 newWorlds newrel newval, cur) where- newWorlds :: [World]- newWorlds = lfp follow [cur] where- follow xs = sort . nub $ concat [ part | (_,parts) <- rel, part <- parts, any (`elem` part) xs ]- newrel = map (second $ filter (any (`elem` newWorlds))) rel- newval = filter (\p -> fst p `elem` newWorlds) val+generatedSubmodel (KrMS5 oldWorlds rel val, cur) =+ if cur `notElem` oldWorlds+ then error "Actual world is not in the model!"+ else (KrMS5 newWorlds newrel newval, cur) where+ newWorlds :: [World]+ newWorlds = lfp follow [cur] where+ follow xs = sort . nub $ concat [ part | (_,parts) <- rel, part <- parts, any (`elem` part) xs ]+ newrel = map (second $ filter (any (`elem` newWorlds))) rel+ newval = filter (\p -> fst p `elem` newWorlds) val +bisimClasses :: KripkeModelS5 -> [[World]]+bisimClasses m@(KrMS5 _ rel val) = refine sameAssignmentPartition where+ sameAssignmentPartition =+ map (map snd)+ $ groupBy (\x y -> fst x == fst y)+ $ sort (map swap val)+ refine parts = sort $ map sort $ foldl splitByAgent parts (agentsOf m)+ splitByAgent parts a =+ concat [ filter (not . null) [ ws `intersect` aPart | aPart <- rel ! a ] | ws <- parts ]++checkBisimClasses :: KripkeModelS5 -> Bool+checkBisimClasses m =+ and [ checkBisimPointed (swapZ w1 w2) (m,w1) (m,w2)+ | part <- bisimClasses m, w1 <- part, w2 <-part, w1 /= w2 ] where+ swapZ w1 w2 = sort $ [(w1,w2),(w2,w1)] ++ [ (w,w) | w <- worldsOf m \\ [w1,w2] ]++bisiminimize :: PointedModelS5 -> PointedModelS5+bisiminimize (m,w) =+ if all ((==1) . length) (bisimClasses m)+ then (m,w) -- nothing to minimize+ else (KrMS5 newWorlds newRel newVal, copyFct w) where+ KrMS5 _ oldRel oldVal = m+ copyRel = zip (bisimClasses m) [1..]+ copyFct wOld = snd $ head $ filter ((wOld `elem`) . fst) copyRel+ newWorlds = map snd copyRel+ newRel = [ (a,newRelFor a) | a <- agentsOf m ]+ newRelFor a = [ nub [ copyFct wOld | wOld <- part ] | part <- oldRel ! a ]+ newVal = [ (wNew, oldVal ! wOld) | (wOld:_,wNew) <- copyRel ]++instance Optimizable PointedModelS5 where+ optimize _ = bisiminimize . generatedSubmodel+ type Action = Int-data ActionModel = ActM [Action] [(Action,Form)] [(Agent,Partition)]+type PostCondition = [(Prp,Form)]++data ActionModelS5 = ActMS5 [(Action,(Form,PostCondition))] [(Agent,Partition)] deriving (Eq,Ord,Show)-type PointedActionModel = (ActionModel,Action) -instance KripkeLike PointedActionModel where+instance HasAgents ActionModelS5 where+ agentsOf (ActMS5 _ rel) = map fst rel++-- | A safe way to `lookup` all postconditions+safepost :: PostCondition -> Prp -> Form+safepost posts p = fromMaybe (PrpF p) (lookup p posts)++instance Pointed ActionModelS5 Action+type PointedActionModelS5 = (ActionModelS5, Action)++instance HasPrecondition ActionModelS5 where+ preOf _ = Top++instance HasPrecondition PointedActionModelS5 where+ preOf (ActMS5 acts _, actual) = fst (acts ! actual)++instance Pointed ActionModelS5 [World]+type MultipointedActionModelS5 = (ActionModelS5,[Action])++instance HasPrecondition MultipointedActionModelS5 where+ preOf (am, actuals) = Disj [ preOf (am, a) | a <- actuals ]++instance KripkeLike ActionModelS5 where directed = const False- getNodes (ActM as actval _, _) = map (show &&& labelOf) as where- labelOf w = " $ ? " ++ tex (apply actval w) ++ " $ "- getEdges (ActM _ _ rel, _) =- nub [ (a, show x, show y) | a <- map fst rel, part <- apply rel a, x <- part, y <- part, x < y ]- getActuals (ActM {}, cur) = [show cur]+ getNodes (ActMS5 acts _) = map labelOf acts where+ labelOf (a,(pre,posts)) = (show a, concat+ [ "$\\begin{array}{c} ? " , tex pre, "\\\\"+ , intercalate "\\\\" (map showPost posts)+ , "\\end{array}$" ])+ showPost (p,f) = tex p ++ " := " ++ tex f+ getEdges am@(ActMS5 _ rel) =+ nub [ (a, show x, show y) | a <- agentsOf am, part <- rel ! a, x <- part, y <- part, x < y ]+ getActuals _ = [ ] nodeAts _ True = [shape BoxShape, style solid] nodeAts _ False = [shape BoxShape, style dashed] -instance TexAble PointedActionModel where tex = tex.ViaDot+instance TexAble ActionModelS5 where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot -instance Arbitrary ActionModel where+instance KripkeLike PointedActionModelS5 where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, cur) = [show cur]++instance TexAble PointedActionModelS5 where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot++instance KripkeLike MultipointedActionModelS5 where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, curs) = map show curs++instance TexAble MultipointedActionModelS5 where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot++instance Arbitrary ActionModelS5 where arbitrary = do- f <- arbitrary- g <- arbitrary- h <- arbitrary+ BF f <- sized $ randomboolformWith [P 0 .. P 4]+ BF g <- sized $ randomboolformWith [P 0 .. P 4]+ BF h <- sized $ randomboolformWith [P 0 .. P 4]+ myPost <- (\_ -> do+ proptochange <- elements [P 0 .. P 4]+ postconcon <- elements $ [Top,Bot] ++ map PrpF [P 0 .. P 4]+ return [ (proptochange, postconcon) ]+ ) (0::Action) return $- ActM [0..3] [(0,Top),(1,f),(2,g),(3,h)] ( ("0",[[0],[1],[2],[3]]):[(show k,[[0..3::Int]]) | k<-[1..5::Int] ])+ ActMS5+ [ (0,(Top,[]))+ , (1,(f ,[]))+ , (2,(g ,myPost))+ , (3,(h ,[])) ]+ ( ("0",[[0],[1],[2],[3]]):[(show k,[[0..3::Int]]) | k<-[1..5::Int] ]) -productUpdate :: PointedModelS5 -> PointedActionModel -> PointedModelS5-productUpdate pm@(m@(KrMS5 oldWorlds oldrel oldval), oldcur) (ActM actions precon actrel, faction) =- let- startcount = maximum oldWorlds + 1- copiesOf (s,a) = [ (s, a, a * startcount + s) | eval (m, s) (apply precon a) ]- newWorldsTriples = concat [ copiesOf (s,a) | s <- oldWorlds, a <- actions ]- newWorlds = map (\(_,_,x) -> x) newWorldsTriples- newval = map (\(s,_,t) -> (t, apply oldval s)) newWorldsTriples- listFor ag = cartProd (apply oldrel ag) (apply actrel ag)- newPartsFor ag = [ cartProd as bs | (as,bs) <- listFor ag ]- translSingle pair = filter (`elem` newWorlds) $ map (\(_,_,x) -> x) $ copiesOf pair- transEqClass = concatMap translSingle- nTransPartsFor ag = filter (\x-> x/=[]) $ map transEqClass (newPartsFor ag)- newrel = [ (a, nTransPartsFor a) | a <- map fst oldrel ]- ((_,_,newcur):_) = copiesOf (oldcur,faction)- factTest = apply precon faction- cartProd xs ys = [ (x,y) | x <- xs, y <- ys ]- in case ( map fst oldrel == map fst actrel, eval pm factTest ) of- (False, _) -> error "productUpdate failed: Agents of KrMS5 and ActM are not the same!"- (_, False) -> error "productUpdate failed: Actual precondition is false!"- _ -> (KrMS5 newWorlds newrel newval, newcur)+instance Update KripkeModelS5 ActionModelS5 where+ checks = [haveSameAgents]+ unsafeUpdate m am@(ActMS5 acts _) =+ let (newModel,_) = unsafeUpdate (m, worldsOf m) (am, map fst acts) in newModel++instance Update PointedModelS5 PointedActionModelS5 where+ checks = [haveSameAgents,preCheck]+ unsafeUpdate (m, w) (actm, a) =+ let (newModel,[newWorld]) = unsafeUpdate (m, [w]) (actm, [a]) in (newModel,newWorld)++instance Update PointedModelS5 MultipointedActionModelS5 where+ checks = [haveSameAgents,preCheck]+ unsafeUpdate (m, w) mpactm =+ let (newModel,[newWorld]) = unsafeUpdate (m, [w]) mpactm in (newModel,newWorld)++instance Update MultipointedModelS5 PointedActionModelS5 where+ checks = [haveSameAgents] -- do not check precondition!+ unsafeUpdate mpm (actm, a) = unsafeUpdate mpm (actm, [a])++instance Update MultipointedModelS5 MultipointedActionModelS5 where+ checks = [haveSameAgents] -- do not check precondition!+ unsafeUpdate (m@(KrMS5 oldWorlds oldrel oldval), oldcurs) (ActMS5 acts actrel, factions) =+ (KrMS5 newWorlds newrel newval, newcurs) where+ startcount = maximum oldWorlds + 1+ copiesOf (s,a) = [ (s, a, a * startcount + s) | eval (m, s) (fst $ acts ! a) ]+ newWorldsTriples = concat [ copiesOf (s,a) | s <- oldWorlds, (a,_) <- acts ]+ newWorlds = map (\(_,_,x) -> x) newWorldsTriples+ newval = map (\(s,a,t) -> (t, newValAt (s,a))) newWorldsTriples where+ newValAt sa = [ (p, newValAtFor sa p) | p <- vocabOf m ]+ newValAtFor (s,a) p = case lookup p (snd (acts ! a)) of+ Just postOfP -> eval (m, s) postOfP+ Nothing -> (oldval ! s) ! p+ listFor ag = cartProd (apply oldrel ag) (apply actrel ag)+ newPartsFor ag = [ cartProd as bs | (as,bs) <- listFor ag ]+ translSingle pair = filter (`elem` newWorlds) $ map (\(_,_,x) -> x) $ copiesOf pair+ transEqClass = concatMap translSingle+ nTransPartsFor ag = filter (\x-> x/=[]) $ map transEqClass (newPartsFor ag)+ newrel = [ (a, nTransPartsFor a) | a <- map fst oldrel ]+ newcurs = concat [ map (\(_,_,x) -> x) $ copiesOf (s,a) | s <- oldcurs, a <- factions ]+ cartProd xs ys = [ (x,y) | x <- xs, y <- ys ]
src/SMCDEL/Internal/Help.hs view
@@ -1,9 +1,10 @@ module SMCDEL.Internal.Help ( alleq,alleqWith,anydiff,anydiffWith,alldiff,+ groupSortWith, apply,applyPartial,(!),(!=), powerset,restrict,rtc,tc,Erel,bl,fusion,seteq,subseteq,lfp ) where-import Data.List (nub,union,sort,foldl',(\\))+import Data.List ((\\),foldl',groupBy,nub,sort,sortBy,union) type Rel a b = [(a,b)] type Erel a = [[a]]@@ -25,6 +26,10 @@ alldiff :: Eq a => [a] -> Bool alldiff [] = True alldiff (x:xs) = notElem x xs && alldiff xs++groupSortWith :: (Eq a, Ord b) => (a -> b) -> [a] -> [[a]]+groupSortWith f = groupBy (\ x y -> myCompare x y == EQ) . sortBy myCompare where+ myCompare x y = compare (f x) (f y) apply :: Show a => Show b => Eq a => Rel a b -> a -> b apply rel left = case lookup left rel of
src/SMCDEL/Internal/Lex.x view
@@ -52,3 +52,18 @@ -- Integers and Strings: $dig+ { \ p s -> TokenInt (read s) p } $alf [$alf $dig]* { \ p s -> TokenStr s p }++{+type LexResult a = Either (Int,Int) a++alexScanTokensSafe :: String -> LexResult [Token AlexPosn]+alexScanTokensSafe str = go (alexStartPos,'\n',[],str) where+ go inp@(pos,_,_,str) =+ case (alexScan inp 0) of+ AlexEOF -> Right []+ AlexError ((AlexPn _ line column),_,_,_) -> Left (line,column)+ AlexSkip inp' len -> go inp'+ AlexToken inp' len act -> case (act pos (take len str), go inp') of+ (_, Left lc) -> Left lc+ (x, Right y) -> Right (x : y)+}
src/SMCDEL/Internal/Parse.y view
@@ -10,6 +10,8 @@ %tokentype { Token AlexPosn } %error { parseError } +%monad { ParseResult } { >>= } { Right }+ %token VARS { TokenVARS _ } LAW { TokenLAW _ }@@ -45,9 +47,13 @@ 'Forall' { TokenForall _ } 'Exists' { TokenExists _ } -%left '&'-%left '|'-%nonassoc '~'+%left '->' 'iff'+%left '|' '&'+%nonassoc '&' '|'+%left KNOWSTHAT KNOWSWHETHER CKNOWTHAT CKNOWWHETHER+%left '[' ']'+%left '<' '>'+%left '~' %% @@ -102,7 +108,10 @@ type ObserveLine = (String,IntList) type ObserveSpec = [ObserveLine] -parseError :: [Token AlexPosn] -> a-parseError (t:ts) = error ("Parse error in line " ++ show lin ++ ", column " ++ show col)+type ParseResult a = Either (Int,Int) a++parseError :: [Token AlexPosn] -> ParseResult a+parseError [] = Left (1,1)+parseError (t:ts) = Left (lin,col) where (AlexPn abs lin col) = apn t }
+ src/SMCDEL/Internal/TaggedBDD.hs view
@@ -0,0 +1,46 @@+module SMCDEL.Internal.TaggedBDD where++import Data.Tagged+import Data.HasCacBDD hiding (Top,Bot)++import SMCDEL.Language++class TagForBDDs a where+ -- | How many copies of the vocabulary do we have?+ -- This is the number of markers + 1.+ multiplier :: Tagged a Bdd -> Int+ multiplier _ = 2+ -- | move back, must be without markers!+ unmvBdd :: Tagged a Bdd -> Bdd+ unmvBdd = relabelFun (\n -> if even n then n `div` 2 else error ("Odd: " ++ show n)) . untag+ -- | move into double vocabulary, but do not add marker+ mv :: Bdd -> Tagged a Bdd+ mv = cpMany 0+ -- | move into extended vocabulary, add one marker+ cp :: Bdd -> Tagged a Bdd+ cp = cpMany 1+ -- | move into extended vocabulary, add k many markers, MUST be available!+ cpMany :: Int -> Bdd -> Tagged a Bdd+ cpMany k b = let x = pure $ relabelFun (\n -> (2*n) + k) b+ in if k >= multiplier x then error "Not enough markers!" else x++ tagBddEval :: [Prp] -> Tagged a Bdd -> Bool+ tagBddEval truths querybdd = evaluateFun (untag querybdd) (\n -> P n `elem` truths)+ totalRelBdd, emptyRelBdd :: Tagged a Bdd+ totalRelBdd = pure top+ emptyRelBdd = pure bot++data Dubbel+instance TagForBDDs Dubbel where+ multiplier = const 2++data Tripel+instance TagForBDDs Tripel where+ multiplier = const 3++data Quadrupel+instance TagForBDDs Quadrupel where+ multiplier = const 4++allsamebdd :: TagForBDDs a => [Prp] -> Tagged a Bdd+allsamebdd ps = conSet <$> sequence [ equ <$> mv (var x) <*> cp (var x) | (P x) <- ps ]
src/SMCDEL/Internal/TexDisplay.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE FlexibleInstances, UndecidableInstances, MultiParamTypeClasses, AllowAmbiguousTypes, OverloadedStrings #-}+{-# LANGUAGE FlexibleInstances, UndecidableInstances, MultiParamTypeClasses, AllowAmbiguousTypes, OverloadedStrings, BangPatterns #-} module SMCDEL.Internal.TexDisplay where import Control.Monad@@ -26,9 +26,9 @@ class TexAble a where tex :: a -> String texTo :: a -> String -> IO ()- texTo x filename = writeFile (filename++".tex") (tex x)+ texTo !x filename = writeFile (filename++".tex") (tex x) texDocumentTo :: a -> String -> IO ()- texDocumentTo x filename =+ texDocumentTo !x filename = writeFile (filename++".tex") (pre ++ tex x ++ post) where pre = concat [ "\\documentclass{standalone}" , "\\usepackage[utf8]{inputenc}"@@ -39,17 +39,17 @@ ] post= "\\end{document}" pdfTo :: a -> String -> IO ()- pdfTo x filename = do+ pdfTo !x filename = do texDocumentTo x filename runAndWait $ "cd " ++ filename ++ "/../; /usr/bin/pdflatex -interaction=nonstopmode "++filename++".tex" disp :: a -> IO ()- disp x = withSystemTempDirectory "smcdel" $ \tmpdir -> do+ disp !x = withSystemTempDirectory "smcdel" $ \tmpdir -> do ts <- round <$> getPOSIXTime let filename = tmpdir ++ "/disp-" ++ show (ts :: Int) pdfTo x filename runIgnoreAndWait $ "/usr/bin/okular " ++ filename ++ ".pdf" svgViaTex :: a -> String- svgViaTex x = unsafePerformIO $ withSystemTempDirectory "smcdel" $ \tmpdir -> do+ svgViaTex !x = unsafePerformIO $ withSystemTempDirectory "smcdel" $ \tmpdir -> do ts <- round <$> getPOSIXTime let filename = tmpdir ++ "/svgViaTex-" ++ show (ts :: Int) pdfTo x filename
src/SMCDEL/Language.hs view
@@ -1,9 +1,13 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-} module SMCDEL.Language where+ import Data.List (nub,intercalate,(\\))+import Data.Dynamic import Data.Maybe (fromMaybe)+ import Test.QuickCheck+import SMCDEL.Internal.Help (powerset) import SMCDEL.Internal.TexDisplay newtype Prp = P Int deriving (Eq,Ord,Show)@@ -12,8 +16,11 @@ toEnum = P fromEnum (P n) = n +defaultVocabulary :: [Prp]+defaultVocabulary = map P [0..4]+ instance Arbitrary Prp where- arbitrary = P <$> choose (0,4)+ arbitrary = elements defaultVocabulary freshp :: [Prp] -> Prp freshp [] = P 1@@ -29,19 +36,28 @@ bob = "Bob" carol = "Carol" +defaultAgents :: [Agent]+defaultAgents = map show [(1::Integer)..5]+ newtype AgAgent = Ag Agent deriving (Eq,Ord,Show) instance Arbitrary AgAgent where- arbitrary = oneof $ map (pure . Ag . show) [1..(5::Integer)]+ arbitrary = elements $ map Ag defaultAgents class HasAgents a where agentsOf :: a -> [Agent] +class Pointed a b++instance (HasVocab a, Pointed a b) => HasVocab (a,b) where vocabOf = vocabOf . fst++instance (HasAgents a, Pointed a b) => HasAgents (a,b) where agentsOf = agentsOf . fst+ newtype Group = Group [Agent] deriving (Eq,Ord,Show) --- generate a non-empty group of up to 5 agents+-- generate a random group, always including agent 1 instance Arbitrary Group where- arbitrary = fmap (Group.("1":)) $ sublistOf $ map show [2..(5::Integer)]+ arbitrary = fmap (Group.("1":)) $ sublistOf $ defaultAgents \\ ["1"] data Form = Top -- ^ True Constant@@ -63,14 +79,62 @@ | PubAnnounceW Form Form -- ^ Public announcement whether | Announce [Agent] Form Form -- ^ (Semi-)Private announcement that | AnnounceW [Agent] Form Form -- ^ (Semi-)Private announcement whether+ | Dia DynamicOp Form -- ^ Dynamic Diamond deriving (Eq,Ord,Show) -class Semantics a where+box :: DynamicOp -> Form -> Form+box op f = Neg (Dia op (Neg f))++data DynamicOp = Dyn String Dynamic++instance Eq DynamicOp where+ Dyn a _ == Dyn b _ = a == b+instance Ord DynamicOp where+ compare (Dyn a _) (Dyn b _) = compare a b+instance Show DynamicOp where+ show (Dyn a _) = "Dyn " ++ show a ++ " _"++class HasVocab a => Semantics a where isTrue :: a -> Form -> Bool +(|=) :: Semantics a => a -> Form -> Bool+(|=) = isTrue++class Optimizable a where+ optimize :: [Prp] -> a -> a+ class HasPrecondition a where preOf :: a -> Form +-- | Formulas used as public announcements are their own precondition.+instance HasPrecondition Form where+ preOf = id++class (Show a, Show b, HasAgents a, Semantics a, HasPrecondition b) => Update a b where+ {-# MINIMAL unsafeUpdate #-}+ unsafeUpdate :: a -> b -> a+ checks :: [a -> b -> Bool]+ checks = [preCheck]+ preCheck :: a -> b -> Bool+ preCheck x y = isTrue x (preOf y)+ update :: a -> b -> a+ update x y = if and checkResults+ then unsafeUpdate x y+ else error . concat $+ [ "Update failed."+ , "\n x = ", show x+ , "\n y = ", show y+ , "\n preOf y = ", show (preOf y)+ , "\n preCheck y = ", show (preCheck x y)+ , "\n checkResults: ", show checkResults ]+ where checkResults = [ c x y | c <- checks ]++updates :: Update a b => a -> [b] -> a+updates = foldl update++haveSameAgents :: (HasAgents a, HasAgents b) => a -> b -> Bool+haveSameAgents x y = agentsOf x == agentsOf y+ showSet :: Show a => [a] -> String showSet xs = intercalate "," (map show xs) @@ -85,19 +149,20 @@ ppFormWith trans (Neg f) = "~" ++ ppFormWith trans f ppFormWith trans (Conj fs) = "(" ++ intercalate " & " (map (ppFormWith trans) fs) ++ ")" ppFormWith trans (Disj fs) = "(" ++ intercalate " | " (map (ppFormWith trans) fs) ++ ")"-ppFormWith trans (Xor fs) = "XOR{" ++ intercalate "," (map (ppFormWith trans) fs) ++ "}"+ppFormWith trans (Xor fs) = "XOR{" ++ showSet (map (ppFormWith trans) fs) ++ "}" ppFormWith trans (Impl f g) = "(" ++ ppFormWith trans f ++ "->" ++ ppFormWith trans g ++ ")" ppFormWith trans (Equi f g) = ppFormWith trans f ++ "=" ++ ppFormWith trans g ppFormWith trans (Forall ps f) = "Forall {" ++ showSet ps ++ "}: " ++ ppFormWith trans f ppFormWith trans (Exists ps f) = "Exists {" ++ showSet ps ++ "}: " ++ ppFormWith trans f ppFormWith trans (K i f) = "K " ++ i ++ " " ++ ppFormWith trans f-ppFormWith trans (Ck is f) = "Ck " ++ intercalate "," is ++ " " ++ ppFormWith trans f+ppFormWith trans (Ck is f) = "Ck " ++ showSet is ++ " " ++ ppFormWith trans f ppFormWith trans (Kw i f) = "Kw " ++ i ++ " " ++ ppFormWith trans f-ppFormWith trans (Ckw is f) = "Ckw " ++ intercalate "," is ++ " " ++ ppFormWith trans f+ppFormWith trans (Ckw is f) = "Ckw " ++ showSet is ++ " " ++ ppFormWith trans f ppFormWith trans (PubAnnounce f g) = "[! " ++ ppFormWith trans f ++ "] " ++ ppFormWith trans g ppFormWith trans (PubAnnounceW f g) = "[?! " ++ ppFormWith trans f ++ "] " ++ ppFormWith trans g ppFormWith trans (Announce is f g) = "[" ++ intercalate ", " is ++ " ! " ++ ppFormWith trans f ++ "]" ++ ppFormWith trans g ppFormWith trans (AnnounceW is f g) = "[" ++ intercalate ", " is ++ " ?! " ++ ppFormWith trans f ++ "]" ++ ppFormWith trans g+ppFormWith trans (Dia (Dyn s _) f) = "〈" ++ s ++ "〉" ++ ppFormWith trans f pubAnnounceStack :: [Form] -> Form -> Form pubAnnounceStack = flip $ foldr PubAnnounce@@ -128,10 +193,22 @@ subformulas (PubAnnounceW f g) = PubAnnounceW f g : nub (subformulas f ++ subformulas g) subformulas (Announce is f g) = Announce is f g : nub (subformulas f ++ subformulas g) subformulas (AnnounceW is f g) = AnnounceW is f g : nub (subformulas f ++ subformulas g)+subformulas (Dia dynop f) = Dia dynop f : subformulas f shrinkform :: Form -> [Form]-shrinkform f | f == simplify f = subformulas f \\ [f]- | otherwise = let g = simplify f in subformulas g \\ [g]+shrinkform f =+ if f /= simplify f+ then [simplify f]+ else (subformulas f \\ [f]) ++ otherShrinks f+ where+ otherShrinks (Conj fs) = [Conj gs | gs <- powerset fs \\ [fs]]+ otherShrinks (Disj fs) = [Disj gs | gs <- powerset fs \\ [fs]]+ otherShrinks (Xor fs) = [Xor gs | gs <- powerset fs \\ [fs]]+ otherShrinks (Ck is g) = [Ck js g | js <- powerset is \\ [is]]+ otherShrinks (Ckw is g) = [Ckw js g | js <- powerset is \\ [is]]+ otherShrinks (Forall ps g) = [Forall qs g | qs <- powerset ps \\ [ps]]+ otherShrinks (Exists ps g) = [Exists qs g | qs <- powerset ps \\ [ps]]+ otherShrinks _ = [] substit :: Prp -> Form -> Form -> Form substit _ _ Top = Top@@ -157,13 +234,14 @@ substit q psi (PubAnnounceW f g) = PubAnnounceW (substit q psi f) (substit q psi g) substit q psi (Announce ags f g) = Announce ags (substit q psi f) (substit q psi g) substit q psi (AnnounceW ags f g) = AnnounceW ags (substit q psi f) (substit q psi g)+substit _ _ (Dia _ _) = undefined -- TODO needs substit in dynop! Dia dynop (substit q psi f) substitSet :: [(Prp,Form)] -> Form -> Form substitSet [] f = f substitSet ((q,psi):rest) f = substitSet rest (substit q psi f) substitOutOf :: [Prp] -> [Prp] -> Form -> Form-substitOutOf truths allps = substitSet $ [(p,Top) | p <- truths] ++ [(p,Bot) | p <- allps \\ truths]+substitOutOf truths allps = substitSet [(p, if p `elem` truths then Top else Bot) | p <- allps] replPsInP :: [(Prp,Prp)] -> Prp -> Prp replPsInP repl p = fromMaybe p (lookup p repl)@@ -188,6 +266,7 @@ replPsInF repl (PubAnnounceW f g) = PubAnnounceW (replPsInF repl f) (replPsInF repl g) replPsInF repl (Announce ags f g) = Announce ags (replPsInF repl f) (replPsInF repl g) replPsInF repl (AnnounceW ags f g) = AnnounceW ags (replPsInF repl f) (replPsInF repl g)+replPsInF _ (Dia _ _) = undefined -- TODO needs propsIn dynop! propsInForm :: Form -> [Prp] propsInForm Top = []@@ -209,6 +288,7 @@ propsInForm (AnnounceW _ f g) = nub $ propsInForm f ++ propsInForm g propsInForm (PubAnnounce f g) = nub $ propsInForm f ++ propsInForm g propsInForm (PubAnnounceW f g) = nub $ propsInForm f ++ propsInForm g+propsInForm (Dia _dynOp _f) = undefined -- TODO needs HasVocab dynop! propsInForms :: [Form] -> [Prp] propsInForms fs = nub $ concatMap propsInForm fs@@ -280,6 +360,7 @@ simStep (PubAnnounceW f g) = PubAnnounceW (simStep f) (simStep g) simStep (Announce ags f g) = Announce ags (simStep f) (simStep g) simStep (AnnounceW ags f g) = AnnounceW ags (simStep f) (simStep g)+simStep (Dia dynop f) = Dia dynop (simStep f) texForm :: Form -> String texForm Top = "\\top "@@ -311,6 +392,7 @@ texForm (PubAnnounceW f g) = "[?!" ++ texForm f ++ "] " ++ texForm g texForm (Announce ags f g) = "[" ++ intercalate "," ags ++ "!" ++ texForm f ++ "] " ++ texForm g texForm (AnnounceW ags f g) = "[" ++ intercalate "," ags ++ "?!" ++ texForm f ++ "] " ++ texForm g+texForm (Dia (Dyn s _) f) = " \\langle " ++ s ++ " \\rangle " ++ texForm f instance TexAble Form where tex = removeDoubleSpaces . texForm@@ -323,7 +405,7 @@ , Xor [Top,Kw alice (PrpF (P 4))] , AnnounceW [alice,bob] (PrpF (P 5)) (Kw bob $ PrpF (P 5)) ]) -newtype BF = BF Form deriving (Show)+newtype BF = BF Form deriving (Eq,Ord,Show) instance Arbitrary BF where arbitrary = sized $ randomboolformWith [P 1 .. P 100]
src/SMCDEL/Other/MCTRIANGLE.hs view
@@ -44,15 +44,15 @@ eval m@(McM _ _ (_,curm)) (NotKnowSelf Muddy) = curm==0 || length (posFor m Muddy) == 2 eval m@(McM _ _ (curc,_)) (NotKnowSelf Clean) = curc==0 || length (posFor m Clean) == 2 -update :: McModel -> McFormula -> McModel-update (McM ostates fstates cur) f =+mcUpdate :: McModel -> McFormula -> McModel+mcUpdate (McM ostates fstates cur) f = McM ostates' fstates' cur where fstates' = filter (\s -> eval (McM ostates fstates s) f) fstates ostates' = filter (not . null . posFrom (McM [] fstates' cur)) ostates step :: State -> Int -> McModel-step s 0 = update (mcModel s) (Qf some)-step s n = update (step s (n-1)) nobodyknows+step s 0 = mcUpdate (mcModel s) (Qf some)+step s n = mcUpdate (step s (n-1)) nobodyknows showme :: State -> IO () showme s@(_,m) = mapM_ (\n -> putStrLn $ show n ++ ": " ++ show (step s n)) [0..(m-1)]
src/SMCDEL/Other/Planning.hs view
@@ -1,26 +1,170 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, AllowAmbiguousTypes #-}+{-# LANGUAGE FlexibleInstances, FlexibleContexts #-} module SMCDEL.Other.Planning where +import Data.Dynamic+import Data.HasCacBDD hiding (Top,Bot)+import Data.List (intersect,nub,sort,(\\))+import qualified Data.Map as M++import SMCDEL.Internal.Help (apply) import SMCDEL.Language+import qualified SMCDEL.Symbolic.S5 as Sym+import qualified SMCDEL.Symbolic.K as SymK+import qualified SMCDEL.Explicit.S5 as Exp+import qualified SMCDEL.Explicit.K as ExpK -type OfflinePlan = [(Form,Form)] -- list of (announcement,goal) tuples+type OfflinePlan = [Form] -- list of announcements to be made -class Plan a where- succeeds :: a -> Form+class IsPlan a where+ reaches :: a -> Form -> Form+ reachesOn :: (Semantics o) => a -> Form -> o -> Bool+ reachesOn plan f start = start |= reaches plan f -instance Plan OfflinePlan where- succeeds [] = Top- succeeds ((step,goal):rest) =- Conj [step, PubAnnounce step goal, PubAnnounce step (succeeds rest)]+instance IsPlan OfflinePlan where+ reaches [] goal = goal+ reaches (step:rest) goal = Conj [step, PubAnnounce step (reaches rest goal)] -succeedsOn :: (Semantics o, Plan a) => a -> o -> Bool-succeedsOn plan start = isTrue start (succeeds plan)+offlineSearch :: (Eq a, Semantics a, Update a Form) =>+ Int -> -- maximum number of actions+ a -> -- the starting model or structure+ [Form] -> -- the available actions+ [Form] -> -- intermediate goals / safety formulas+ Form -> -- the goal formula (when to stop)+ [OfflinePlan]+offlineSearch roundsLeft now acts safety goal+ | now |= goal = [ [] ] -- done, goal reached+ | roundsLeft == 0 = [ ] -- give up+ | otherwise = [ a : rest+ | a <- acts+ , now |= a -- only allow truthful announcements!+ , let new = now `update` a -- the new state+ , new /= now -- ignore useless actions+ , all (new |=) safety+ -- depth-first search:+ , rest <- offlineSearch (roundsLeft-1) new acts safety goal ] -data OnlinePlan = Stop | DoAnnounce Form OnlinePlan | IfThenElse Form OnlinePlan OnlinePlan+data Plan a = Stop+ | Do String a (Plan a)+ | Check Form (Plan a)+ | IfThenElse Form (Plan a) (Plan a)+ deriving (Eq,Ord,Show) -instance Plan OnlinePlan where- succeeds Stop = Top- succeeds (DoAnnounce step next) = Conj [step, PubAnnounce step (succeeds next)]- succeeds (IfThenElse check planA planB) =- Conj [ check `Impl` succeeds planA, Neg check `Impl` succeeds planB ]+execute :: Update state a => Plan a -> state -> Maybe state+execute Stop s = Just s+execute (Do _ action rest) s | s |= preOf action = execute rest (s `update` action)+ | otherwise = Nothing+execute (Check f rest) s = if s |= f then execute rest s else Nothing+execute (IfThenElse f pa pb) s = if s |= f then execute pa s else execute pb s++instance IsPlan (Plan Form) where+ reaches Stop goal = goal+ reaches (Do _ toBeAn next) goal = Conj [toBeAn, PubAnnounce toBeAn (reaches next goal)]+ reaches (Check toBeChecked next) goal = Conj [toBeChecked, reaches next goal]+ reaches (IfThenElse condition planA planB) goal =+ Conj [ condition `Impl` reaches planA goal, Neg condition `Impl` reaches planB goal ]++instance IsPlan (Plan Sym.MultipointedEvent) where+ reaches Stop goal = goal+ reaches (Do actLabel action next) goal = dix (Dyn actLabel (toDyn action)) (reaches next goal)+ reaches (Check toBeChecked next) goal = Conj [toBeChecked, reaches next goal]+ reaches (IfThenElse check planA planB) goal =+ Conj [ check `Impl` reaches planA goal, Neg check `Impl` reaches planB goal ]++dix :: DynamicOp -> Form -> Form+dix op f = Conj [Dia op Top, box op f]++data Task state action = Task state [(String,action)] Form+ deriving (Eq,Ord,Show)++findPlan :: (Eq state, Update state action) => Int -> Task state action -> [Plan action]+findPlan d (Task now acts goal)+ | now |= goal = [ Stop ]+ | d == 0 = [ ]+ | otherwise = [ Do lbl act continue+ | (lbl,act) <- acts+ , isTrue now (preOf act)+ , now /= update now act -- ignore useless actions+ , continue <- findPlan (d-1) (Task (update now act) acts goal) ]++class Eq o => HasPerspective o where+ asSeenBy :: o -> Agent -> o+ isLocalFor :: o -> Agent -> Bool+ isLocalFor state i = state `asSeenBy` i == state++instance HasPerspective Exp.MultipointedModelS5 where+ asSeenBy (m@(Exp.KrMS5 _ rel _), actualWorlds) agent = (m, seenWorlds) where+ seenWorlds = sort $ concat $ filter (not . null . intersect actualWorlds) (apply rel agent)++instance HasPerspective ExpK.MultipointedModel where+ asSeenBy (ExpK.KrM m, actualWorlds) agent = (ExpK.KrM m, seenWorlds) where+ seenWorlds = sort $ nub $ M.foldlWithKey+ (\ vs w (_,rel) -> vs ++ concat [ rel M.! agent | w `elem` actualWorlds ])+ []+ m++instance HasPerspective Sym.MultipointedKnowScene where+ asSeenBy (Sym.KnS props lawbdd obs, statesBdd) agent =+ (Sym.KnS props lawbdd obs, seenStatesBdd) where+ seenStatesBdd = existsSet otherps statesBdd+ otherps = map fromEnum (props \\ apply obs agent)++flipRelBdd :: [Prp] -> SymK.RelBDD -> SymK.RelBDD+flipRelBdd props = fmap $ Sym.relabelWith [(SymK.mvP p, SymK.cpP p) | p <- props ]++instance HasPerspective SymK.MultipointedBelScene where+ asSeenBy (SymK.BlS props lawbdd obsBdds, statesBdd) agent =+ (SymK.BlS props lawbdd obsBdds, seenStatesBdd) where+ flippedObsBdd = flipRelBdd props (obsBdds M.! agent)+ seenStatesBdd = SymK.unmvBdd $ existsSet (map fromEnum $ SymK.cp props) <$>+ (con <$> SymK.cpBdd statesBdd <*> flippedObsBdd)++data CoopTask state action = CoopTask state [Owned action] Form+ deriving (Eq,Ord,Show)++instance (HasPerspective state, Eq action) => HasPerspective (CoopTask state action) where+ asSeenBy (CoopTask start acts goal) agent = CoopTask (start `asSeenBy` agent) acts goal++type Labelled a = (String,a)++type Owned action = (Agent,Labelled action)++type ICPlan action = [Owned action]+-- note: there is no check that the action is actually local for the agent!++ppICPlan :: ICPlan action -> String+ppICPlan [] = ""+ppICPlan [(agent,(label,_))] = agent ++ ":" ++ label ++ "."+ppICPlan ((agent,(label,_)):rest) = agent ++ ":" ++ label ++ "; " ++ ppICPlan rest++icSolves :: (Typeable action, Semantics state) => CoopTask state action -> ICPlan action -> Bool+icSolves (CoopTask start acts goal) plan =+ all (`elem` map fst acts) (map fst plan) && start |= succForm plan where+ succForm [] = goal+ succForm ((agent,(label,action)):rest) = K agent (dix (Dyn label (toDyn action)) (succForm rest))++findSequentialIcPlan :: (Typeable action, Eq state, Update state action) => Int -> CoopTask state action -> [ICPlan action]+findSequentialIcPlan d (CoopTask now acts goal)+ | now |= goal = [ [] ] -- goal reached+ | d == 0 = [ ] -- give up+ | otherwise = [ (agent,(label, act)) : continue+ | a@(agent,(label,act)) <- acts+ , now |= preOf act -- action must be executable+ , now |= K agent (preOf act) -- agent must know that it is executable!+ , now /= update now act -- ignore useless actions+ , continue <- findSequentialIcPlan (d-1) (CoopTask (update now act) acts goal) -- DFS!+ , icSolves (CoopTask now acts goal) (a:continue) ]++findSequentialIcPlanBFS :: (Typeable action, Eq state, Update state action) => Int -> CoopTask state action -> Maybe (ICPlan action)+findSequentialIcPlanBFS maxDepth (CoopTask start acts goal) = loop [([],start)] where+ loop [] = Nothing+ loop ((done,now):rest)+ | now |= goal = Just done -- FIXME: need stronger condition >> icSolves (CoopTask now acts goal) (done)+ | otherwise = loop $ rest +++ [ (done ++ [a], update now act) -- TODO optimize (vocabOf start) ?+ | length done < maxDepth -- do not use more than maxDepth actions+ , a@(agent,(_,act)) <- acts+ , now |= preOf act -- action must be executable+ , now |= K agent (preOf act) -- agent must know that it is executable!+ , now /= update now act -- ignore useless actions+ ]
src/SMCDEL/Symbolic/K.hs view
@@ -1,30 +1,24 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, TypeOperators #-}+{-# LANGUAGE FlexibleInstances, TypeOperators, MultiParamTypeClasses, ScopedTypeVariables #-} module SMCDEL.Symbolic.K where import Data.Tagged -import Control.Arrow ((&&&),(***),first)+import Control.Arrow ((&&&),first)+import Data.Dynamic (fromDynamic) import Data.HasCacBDD hiding (Top,Bot)-import Data.List (intercalate,sort)-import Data.Map.Strict (Map,fromList,toList,elems,(!))-import qualified Data.Map.Strict+import Data.List (intercalate,sort,intersect,(\\))+import qualified Data.Map.Strict as M+import Data.Map.Strict ((!))+import Test.QuickCheck -import SMCDEL.Language-import SMCDEL.Symbolic.S5 (KnowScene,State,texBDD,boolBddOf,texBddWith)-import SMCDEL.Explicit.S5 (PointedModelS5,KripkeModelS5(KrMS5),World) import SMCDEL.Explicit.K-import SMCDEL.Translations.S5-import SMCDEL.Internal.Help (apply,lfp)+import SMCDEL.Internal.Help (apply,lfp,powerset) import SMCDEL.Internal.TexDisplay--problemPM :: PointedModelS5-problemPM = ( KrMS5 [0,1,2,3] [ (alice,[[0],[1,2,3]]), (bob,[[0,1,2],[3]]) ]- [ (0,[(P 1,True ),(P 2,True )]), (1,[(P 1,True ),(P 2,False)])- , (2,[(P 1,False),(P 2,True )]), (3,[(P 1,False),(P 2,False)]) ], 1::World )--problemKNS :: KnowScene-problemKNS = kripkeToKns problemPM+import SMCDEL.Language+import SMCDEL.Other.BDD2Form+import SMCDEL.Symbolic.S5 (State,texBDD,boolBddOf,texBddWith,bddEval,relabelWith)+import SMCDEL.Translations.S5 (booloutof) mvP, cpP :: Prp -> Prp mvP (P n) = P (2*n) -- represent p in the double vocabulary@@ -39,10 +33,12 @@ cp = map cpP unmv, uncp :: [Prp] -> [Prp]-unmv = map f where -- Go from p in double vocabulary to p in single vocabulary:+-- | Go from p in double vocabulary to p in single vocabulary.+unmv = map f where f (P m) | odd m = error "unmv failed: Number is odd!" | otherwise = P $ m `div` 2-uncp = map f where -- Go from p' in double vocabulary to p in single vocabulary:+-- | Go from p' in double vocabulary to p in single vocabulary.+uncp = map f where f (P m) | even m = error "uncp failed: Number is even!" | otherwise = P $ (m-1) `div` 2 @@ -63,28 +59,23 @@ instance TagBdd Dubbel cpBdd :: Bdd -> RelBDD-cpBdd b = pure $ case maxVarOf b of- Nothing -> b- Just m -> relabel [ (n, (2*n) + 1) | n <- [0..m] ] b+cpBdd b = Tagged $ relabelFun (\n -> (2*n) + 1) b mvBdd :: Bdd -> RelBDD-mvBdd b = pure $ case maxVarOf b of- Nothing -> b- Just m -> relabel [ (n, 2*n) | n <- [0..m] ] b+mvBdd b = Tagged $ relabelFun (2 *) b unmvBdd :: RelBDD -> Bdd-unmvBdd (Tagged b) = case maxVarOf b of- Nothing -> b- Just m -> relabel [ (2 * n, n) | n <- [0..m] ] b+unmvBdd (Tagged b) =+ relabelFun (\n -> if even n then n `div` 2 else error ("Not even: " ++ show n)) b -propRel2bdd :: [Prp] -> Map State [State] -> RelBDD-propRel2bdd props rel = pure $ disSet (elems $ Data.Map.Strict.mapWithKey linkbdd rel) where+propRel2bdd :: [Prp] -> M.Map State [State] -> RelBDD+propRel2bdd props relation = pure $ disSet (M.elems $ M.mapWithKey linkbdd relation) where linkbdd here theres = con (booloutof (mv here) (mv props)) (disSet [ booloutof (cp there) (cp props) | there <- theres ] ) -samplerel :: Map State [State]-samplerel = fromList [+samplerel :: M.Map State [State]+samplerel = M.fromList [ ( [] , [ [],[P 1],[P 2],[P 1, P 2] ] ), ( [P 1] , [ [P 1], [P 1, P 2] ] ), ( [P 2] , [ [P 2], [P 1, P 2] ] ),@@ -93,94 +84,120 @@ relBddOfIn :: Agent -> KripkeModel -> RelBDD relBddOfIn i (KrM m) | not (distinctVal (KrM m)) = error "m does not have distinct valuations."- | otherwise = pure $ disSet (elems $ Data.Map.Strict.map linkbdd m) where+ | otherwise = pure $ disSet (M.elems $ M.map linkbdd m) where linkbdd (mapPropBool,mapAgentReach) = con (booloutof (mv here) (mv props)) (disSet [ booloutof (cp there) (cp props) | there<-theres ] ) where- props = Data.Map.Strict.keys mapPropBool- here = Data.Map.Strict.keys (Data.Map.Strict.filter id mapPropBool)+ props = M.keys mapPropBool+ here = M.keys (M.filter id mapPropBool) theres = map (truthsInAt (KrM m)) (mapAgentReach ! i) data BelStruct = BlS [Prp] -- vocabulary Bdd -- state law- (Map Agent RelBDD) -- observation laws+ (M.Map Agent RelBDD) -- observation laws deriving (Eq,Show) +instance Pointed BelStruct State type BelScene = (BelStruct,State) +instance Pointed BelStruct Bdd+type MultipointedBelScene = (BelStruct,Bdd)+ instance HasVocab BelStruct where vocabOf (BlS voc _ _) = voc -instance HasVocab BelScene where- vocabOf = vocabOf . fst- instance HasAgents BelStruct where- agentsOf (BlS _ _ obdds) = Data.Map.Strict.keys obdds--instance HasAgents BelScene where- agentsOf = agentsOf . fst+ agentsOf (BlS _ _ obdds) = M.keys obdds bddOf :: BelStruct -> Form -> Bdd bddOf _ Top = top bddOf _ Bot = bot bddOf _ (PrpF (P n)) = var n-bddOf kns (Neg form) = neg $ bddOf kns form-bddOf kns (Conj forms) = conSet $ map (bddOf kns) forms-bddOf kns (Disj forms) = disSet $ map (bddOf kns) forms-bddOf kns (Xor forms) = xorSet $ map (bddOf kns) forms-bddOf kns (Impl f g) = imp (bddOf kns f) (bddOf kns g)-bddOf kns (Equi f g) = equ (bddOf kns f) (bddOf kns g)-bddOf kns (Forall ps f) = forallSet (map fromEnum ps) (bddOf kns f)-bddOf kns (Exists ps f) = existsSet (map fromEnum ps) (bddOf kns f)+bddOf bls (Neg form) = neg $ bddOf bls form+bddOf bls (Conj forms) = conSet $ map (bddOf bls) forms+bddOf bls (Disj forms) = disSet $ map (bddOf bls) forms+bddOf bls (Xor forms) = xorSet $ map (bddOf bls) forms+bddOf bls (Impl f g) = imp (bddOf bls f) (bddOf bls g)+bddOf bls (Equi f g) = equ (bddOf bls f) (bddOf bls g)+bddOf bls (Forall ps f) = forallSet (map fromEnum ps) (bddOf bls f)+bddOf bls (Exists ps f) = existsSet (map fromEnum ps) (bddOf bls f) -bddOf kns@(BlS allprops lawbdd obdds) (K i form) = unmvBdd result where- result = forallSet ps' <$> (imp <$> cpBdd lawbdd <*> (imp <$> omegai <*> cpBdd (bddOf kns form)))+bddOf bls@(BlS allprops lawbdd obdds) (K i form) = unmvBdd result where+ result = forallSet ps' <$> (imp <$> cpBdd lawbdd <*> (imp <$> omegai <*> cpBdd (bddOf bls form))) ps' = map fromEnum $ cp allprops omegai = obdds ! i -bddOf kns@(BlS allprops lawbdd obdds) (Kw i form) = unmvBdd result where+bddOf bls@(BlS allprops lawbdd obdds) (Kw i form) = unmvBdd result where result = dis <$> part form <*> part (Neg form)- part f = forallSet ps' <$> (imp <$> cpBdd lawbdd <*> (imp <$> omegai <*> cpBdd (bddOf kns f)))+ part f = forallSet ps' <$> (imp <$> cpBdd lawbdd <*> (imp <$> omegai <*> cpBdd (bddOf bls f))) ps' = map fromEnum $ cp allprops omegai = obdds ! i -bddOf kns@(BlS voc lawbdd obdds) (Ck ags form) = lfp lambda top where+bddOf bls@(BlS voc lawbdd obdds) (Ck ags form) = lfp lambda top where ps' = map fromEnum $ cp voc lambda :: Bdd -> Bdd lambda z = unmvBdd $ forallSet ps' <$> (imp <$> cpBdd lawbdd <*> (imp <$> (disSet <$> sequence [obdds ! i | i <- ags]) <*>- cpBdd (con (bddOf kns form) z)))+ cpBdd (con (bddOf bls form) z))) -bddOf kns (Ckw ags form) = dis (bddOf kns (Ck ags form)) (bddOf kns (Ck ags (Neg form)))+bddOf bls (Ckw ags form) = dis (bddOf bls (Ck ags form)) (bddOf bls (Ck ags (Neg form))) -bddOf kns (PubAnnounce f g) =- imp (bddOf kns f) (bddOf (pubAnnounce kns f) g)-bddOf kns (PubAnnounceW f g) =- ifthenelse (bddOf kns f)- (bddOf (pubAnnounce kns f ) g)- (bddOf (pubAnnounce kns (Neg f)) g)+bddOf bls (PubAnnounce f g) =+ imp (bddOf bls f) (bddOf (pubAnnounce bls f) g)+bddOf bls (PubAnnounceW f g) =+ ifthenelse (bddOf bls f)+ (bddOf (pubAnnounce bls f ) g)+ (bddOf (pubAnnounce bls (Neg f)) g) -bddOf kns@(BlS props _ _) (Announce ags f g) =- imp (bddOf kns f) (restrict bdd2 (k,True)) where- bdd2 = bddOf (announce kns ags f) g+bddOf bls@(BlS props _ _) (Announce ags f g) =+ imp (bddOf bls f) (restrict bdd2 (k,True)) where+ bdd2 = bddOf (announce bls ags f) g (P k) = freshp props -bddOf kns@(BlS props _ _) (AnnounceW ags f g) =- ifthenelse (bddOf kns f) bdd2a bdd2b where- bdd2a = restrict (bddOf (announce kns ags f ) g) (k,True)- bdd2b = restrict (bddOf (announce kns ags (Neg f)) g) (k,True)+bddOf bls@(BlS props _ _) (AnnounceW ags f g) =+ ifthenelse (bddOf bls f) bdd2a bdd2b where+ bdd2a = restrict (bddOf (announce bls ags f ) g) (k,True)+ bdd2b = restrict (bddOf (announce bls ags (Neg f)) g) (k,True) (P k) = freshp props +bddOf bls (Dia (Dyn dynLabel d) f) =+ con (bddOf bls preCon) -- 5. Prefix with "precon AND ..." (diamond!)+ . relabelWith copyrelInverse -- 4. Copy back changeProps V_° to V_+ . simulateActualEvents -- 3. Simulate actual event(s) [see below]+ . substitSimul [ (k, changeLaw ! p) -- 2. Replace changeProps V_ with postcons+ | p@(P k) <- changeProps] -- (no "relabelWith copyrel", undone in 4)+ . bddOf (bls `update` trf) -- 1. boolean equivalent wrt new struct+ $ f+ where+ changeProps = M.keys changeLaw+ copychangeProps = [(freshp $ vocabOf bls ++ addProps)..]+ copyrelInverse = zip copychangeProps changeProps+ (trf@(Trf addProps addLaw changeLaw _), shiftrel) = shiftPrepare bls trfUnshifted+ (preCon,trfUnshifted,simulateActualEvents) =+ case fromDynamic d of+ -- 3. For a single pointed event, simulate actual event x outof V++ Just ((t,x) :: Event) -> ( preOf (t,x), t, (`restrictSet` actualAss) )+ where actualAss = [(newK, P k `elem` x) | (P k, P newK) <- shiftrel]+ Nothing -> case fromDynamic d of+ -- 3. For a multipointed event, simulate a set of actual events by ...+ Just ((t,xsBdd) :: MultipointedEvent) ->+ ( preOf (t,xsBdd), t+ , existsSet (map fromEnum addProps) -- ... replacing addProps with assigments+ . con actualsBdd -- ... that satisfy actualsBdd+ . con (bddOf bls addLaw) -- ... and a precondition.+ ) where actualsBdd = relabelWith shiftrel xsBdd+ Nothing -> error $ "cannot update belief structure with '" ++ dynLabel ++ "':\n " ++ show d+ validViaBdd :: BelStruct -> Form -> Bool-validViaBdd kns@(BlS _ lawbdd _) f = top == imp lawbdd (bddOf kns f)+validViaBdd bls@(BlS _ lawbdd _) f = top == imp lawbdd (bddOf bls f) evalViaBdd :: BelScene -> Form -> Bool-evalViaBdd (kns@(BlS allprops _ _),s) f = let- bdd = bddOf kns f+evalViaBdd (bls@(BlS allprops _ _),s) f = let+ bdd = bddOf bls f b = restrictSet bdd list list = [ (n, P n `elem` s) | (P n) <- allprops ] in@@ -188,28 +205,34 @@ (True,_) -> True (_,True) -> False _ -> error $ "evalViaBdd failed: Composite BDD leftover!\n"- ++ " kns: " ++ show kns ++ "\n"+ ++ " bls: " ++ show bls ++ "\n" ++ " s: " ++ show s ++ "\n" ++ " form: " ++ show f ++ "\n" ++ " bdd: " ++ show bdd ++ "\n" ++ " list: " ++ show list ++ "\n" ++ " b: " ++ show b ++ "\n" +instance Semantics BelStruct where+ isTrue = validViaBdd++instance Semantics BelScene where+ isTrue = evalViaBdd+ pubAnnounce :: BelStruct -> Form -> BelStruct-pubAnnounce kns@(BlS allprops lawbdd obs) f =- BlS allprops (con lawbdd (bddOf kns f)) obs+pubAnnounce bls@(BlS allprops lawbdd obs) f =+ BlS allprops (con lawbdd (bddOf bls f)) obs pubAnnounceOnScn :: BelScene -> Form -> BelScene-pubAnnounceOnScn (kns,s) psi = if evalViaBdd (kns,s) psi- then (pubAnnounce kns psi,s)+pubAnnounceOnScn (bls,s) psi = if evalViaBdd (bls,s) psi+ then (pubAnnounce bls psi,s) else error "Liar!" announce :: BelStruct -> [Agent] -> Form -> BelStruct-announce kns@(BlS props lawbdd obdds) ags psi = BlS newprops newlawbdd newobdds where+announce bls@(BlS props lawbdd obdds) ags psi = BlS newprops newlawbdd newobdds where (P k) = freshp props newprops = sort $ P k : props- newlawbdd = con lawbdd (imp (var k) (bddOf kns psi))- newobdds = Data.Map.Strict.mapWithKey newOfor obdds+ newlawbdd = con lawbdd (imp (var k) (bddOf bls psi))+ newobdds = M.mapWithKey newOfor obdds newOfor i oi | i `elem` ags = con <$> oi <*> (equ <$> mvBdd (var k) <*> cpBdd (var k)) | otherwise = con <$> oi <*> (neg <$> cpBdd (var k)) -- p_psi' @@ -239,17 +262,25 @@ , intercalate ", " obddstrings , " \\right) \n" ] where- obddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (toList obdds)+ obddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (M.toList obdds) bddstring (i,os) = "\\Omega_{\\text{" ++ i ++ "}} = " ++ bddprefix ++ os ++ bddsuffix instance TexAble BelScene where- tex (kns, state) = concat- [ " \\left( \n", tex kns, ", ", tex state, " \\right) \n" ]+ tex (bls, state) = concat+ [ " \\left( \n", tex bls, ", ", tex state, " \\right) \n" ] +instance TexAble MultipointedBelScene where+ tex (bls, statesBdd) = concat+ [ " \\left( \n"+ , tex bls ++ ", "+ , " \\begin{array}{l} \\scalebox{0.4}{"+ , texBDD statesBdd+ , "} \\end{array}\n "+ , " \\right)" ]+ cleanupObsLaw :: BelScene -> BelScene-cleanupObsLaw (BlS vocab law obs, s) = (BlS vocab law newobs, s) where- newobs = Data.Map.Strict.map optimize obs- optimize relbdd = restrictLaw <$> relbdd <*> (con <$> cpBdd law <*> mvBdd law)+cleanupObsLaw (BlS vocab law obs, s) = (BlS vocab law (M.map clean obs), s) where+ clean relbdd = restrictLaw <$> relbdd <*> (con <$> cpBdd law <*> mvBdd law) determinedVocabOf :: BelStruct -> [Prp] determinedVocabOf strct = filter (\p -> validViaBdd strct (PrpF p) || validViaBdd strct (Neg $ PrpF p)) (vocabOf strct)@@ -260,48 +291,192 @@ map unmvcpP $ sort $ concatMap (map P . Data.HasCacBDD.allVarsOf . untag . snd)- $ Data.Map.Strict.toList obs+ $ M.toList obs -data BelTransf = BlT [Prp] Form (Map Agent RelBDD) deriving (Eq,Show)-type GenEvent = (BelTransf,State)+withoutProps :: [Prp] -> BelStruct -> BelStruct+withoutProps propsToDel (BlS oldProps oldLawBdd oldObs) =+ BlS+ (oldProps \\ propsToDel)+ (existsSet (map fromEnum propsToDel) oldLawBdd)+ (M.map (fmap $ existsSet (map fromEnum propsToDel)) oldObs) -belTransform :: BelScene -> GenEvent -> BelScene-belTransform (kns@(BlS props lawbdd obdds),s) (BlT addprops addlaw eventObs, eventFacts) =- (BlS (props ++ map snd shiftrel) newlawbdd newobs, sort $ s ++ shiftedEventFacts) where- shiftrel = zip addprops [(freshp props)..]- doubleShiftrel = map (mvP *** mvP) shiftrel ++ map (cpP *** cpP) shiftrel- doubleShiftrelVars = sort $ map (fromEnum *** fromEnum) doubleShiftrel- shiftEventObsBDD o = relabel doubleShiftrelVars <$> o- newobs = fromList [ (i , con <$> (obdds ! i) <*> shiftEventObsBDD (eventObs ! i)) | i <- Data.Map.Strict.keys obdds ]- shiftaddlaw = replPsInF shiftrel addlaw- newlawbdd = con lawbdd (bddOf kns shiftaddlaw)- shiftedEventFacts = map (apply shiftrel) eventFacts+instance Arbitrary BelStruct where+ arbitrary = do+ numExtraVars <- choose (0,3)+ let myVocabulary = defaultVocabulary ++ take numExtraVars [freshp defaultVocabulary ..]+ (BF statelaw) <- sized (randomboolformWith myVocabulary) `suchThat` (\(BF bf) -> boolBddOf bf /= bot)+ obs <- mapM (\i -> do+ BF obsLaw <- sized $ randomboolformWith (sort $ mv myVocabulary ++ cp myVocabulary) -- FIXME should rather be a random BDD?+ return (i,pure $ boolBddOf obsLaw)+ ) defaultAgents+ return $ BlS myVocabulary (boolBddOf statelaw) (M.fromList obs)+ shrink bls = [ withoutProps [p] bls | length (vocabOf bls) > 1, p <- vocabOf bls \\ defaultVocabulary ] -instance TexAble BelTransf where- tex (BlT addprops addlaw eventObs) = concat+data Transformer = Trf+ [Prp] -- addprops+ Form -- event law+ (M.Map Prp Bdd) -- changelaw+ (M.Map Agent RelBDD) -- eventObs+ deriving (Eq,Show)++instance HasAgents Transformer where+ agentsOf (Trf _ _ _ obdds) = M.keys obdds++instance HasPrecondition Transformer where+ preOf _ = Top++instance Pointed Transformer State+type Event = (Transformer,State)++instance HasPrecondition Event where+ preOf (Trf addprops addlaw _ _, x) = simplify $ substitOutOf x addprops addlaw++instance Pointed Transformer [State]+type MultipointedEvent = (Transformer,Bdd)++instance HasPrecondition MultipointedEvent where+ preOf (Trf addprops addlaw _ _, xsBdd) =+ simplify $ Exists addprops (Conj [ formOf xsBdd, addlaw ])++instance TexAble Transformer where+ tex (Trf addprops addlaw changelaw eventObs) = concat [ " \\left( \n" , tex addprops, ", "- , tex addlaw , ", "+ , tex addlaw, ", "+ , tex changeprops, ", "+ , intercalate ", " $ map snd . M.toList $ M.mapWithKey texChange changelaw, ", " , intercalate ", " eobddstrings , " \\right) \n" ] where- eobddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (toList eventObs)+ changeprops = M.keys changelaw+ texChange prop changebdd = tex prop ++ " := " ++ tex (formOf changebdd)+ eobddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (M.toList eventObs) bddstring (i,os) = "\\Omega^+_{\\text{" ++ i ++ "}} = " ++ bddprefix ++ os ++ bddsuffix -instance TexAble GenEvent where- tex (blt, eventFacts) = concat- [ " \\left( \n", tex blt, ", ", tex eventFacts, " \\right) \n" ]+instance TexAble Event where+ tex (trf, eventFacts) = concat+ [ " \\left( \n", tex trf, ", ", tex eventFacts, " \\right) \n" ] -exampleStart :: BelScene-exampleStart = (BlS [P 0] law obs, actual) where- law = boolBddOf Top- obs = fromList [ ("1", mvBdd $ boolBddOf Top), ("2", allsamebdd [P 0]) ]- actual = [P 0]+instance TexAble MultipointedEvent where+ tex (trf, eventStates) = concat+ [ " \\left( \n"+ , tex trf ++ ", \\ "+ , " \\begin{array}{l} \\scalebox{0.4}{"+ , texBDD eventStates+ , "} \\end{array}\n "+ , " \\right)" ] -exampleEvent :: GenEvent-exampleEvent = (BlT [P 1] addlaw eventObs, [P 1]) where- addlaw = PrpF (P 1) `Impl` PrpF (P 0)- eventObs = fromList [ ("1", allsamebdd [P 1]), ("2", cpBdd . boolBddOf $ Neg (PrpF $ P 1)) ]+-- | shift addprops to ensure that props and newprops are disjoint:+shiftPrepare :: BelStruct -> Transformer -> (Transformer, [(Prp,Prp)])+shiftPrepare (BlS props _ _) (Trf addprops addlaw changelaw eventObs) =+ (Trf shiftaddprops addlawShifted changelawShifted eventObsShifted, shiftrel) where+ shiftrel = sort $ zip addprops [(freshp props)..]+ shiftaddprops = map snd shiftrel+ -- apply the shifting to addlaw, changelaw and eventObs:+ addlawShifted = replPsInF shiftrel addlaw+ changelawShifted = M.map (relabelWith shiftrel) changelaw+ -- to shift addObs we need shiftrel in the double vocabulary:+ shiftrelMVCP = sort $ zip (mv addprops) (mv shiftaddprops)+ ++ zip (cp addprops) (cp shiftaddprops)+ eventObsShifted = M.map (fmap $ relabelWith shiftrelMVCP) eventObs -exampleBlTresult :: BelScene-exampleBlTresult = belTransform exampleStart exampleEvent+instance Update BelScene Event where+ unsafeUpdate (bls@(BlS props law obdds),s) (trf, eventFactsUnshifted) = (BlS newprops newlaw newobs, news) where+ -- PART 1: SHIFTING addprops to ensure props and newprops are disjoint+ (Trf addprops addlaw changelaw addObs, shiftrel) = shiftPrepare bls trf+ -- the actual event:+ eventFacts = map (apply shiftrel) eventFactsUnshifted+ -- PART 2: COPYING the modified propositions+ changeprops = M.keys changelaw+ copyrel = zip changeprops [(freshp $ props ++ addprops)..]+ copychangeprops = map snd copyrel+ copyrelMVCP = sort $ zip (mv changeprops) (mv copychangeprops)+ ++ zip (cp changeprops) (cp copychangeprops)+ -- PART 3: actual transformation+ newprops = sort $ props ++ addprops ++ copychangeprops+ newlaw = conSet $ relabelWith copyrel (con law (bddOf bls addlaw))+ : [var (fromEnum q) `equ` relabelWith copyrel (changelaw ! q) | q <- changeprops]+ newobs = M.mapWithKey (\i oldobs -> con <$> (relabelWith copyrelMVCP <$> oldobs) <*> (addObs ! i)) obdds+ news = sort $ concat+ [ s \\ changeprops+ , map (apply copyrel) $ s `intersect` changeprops+ , eventFacts+ , filter (\ p -> bddEval (s ++ eventFacts) (changelaw ! p)) changeprops ]++instance Update BelStruct Transformer where+ checks = [haveSameAgents]+ unsafeUpdate bls ctrf = BlS newprops newlaw newobs where+ (BlS newprops newlaw newobs, _) = unsafeUpdate (bls,undefined::State) (ctrf,undefined::State) -- using laziness!++instance Update BelScene MultipointedEvent where+ unsafeUpdate (bls,s) (trfUnshifted, eventFactsBddUnshifted) =+ update (bls,s) (trf,selectedEventState) where+ (trf@(Trf addprops addlaw _ _), shiftRel) = shiftPrepare bls trfUnshifted+ eventFactsBdd = relabelWith shiftRel eventFactsBddUnshifted+ selectedEventState :: State+ selectedEventState = map (P . fst) $ filter snd selectedEvent+ selectedEvent = case+ allSatsWith+ (map fromEnum addprops)+ (eventFactsBdd `con` restrictSet (bddOf bls addlaw) [ (k, P k `elem` s) | P k <- vocabOf bls ])+ of+ [] -> error "no selected event"+ [this] -> this+ more -> error $ "too many selected events: " ++ show more++trfPost :: Event -> Prp -> Bdd+trfPost (Trf addprops _ changelaw _, x) p+ | p `elem` M.keys changelaw = restrictLaw (changelaw ! p) (booloutof x addprops)+ | otherwise = boolBddOf $ PrpF p++reduce :: Event -> Form -> Maybe Form+reduce _ Top = Just Top+reduce e Bot = Just $ Neg $ preOf e+reduce e (PrpF p) = Impl (preOf e) <$> Just (formOf $ trfPost e p)+reduce e (Neg f) = Impl (preOf e) <$> (Neg <$> reduce e f)+reduce e (Conj fs) = Conj <$> mapM (reduce e) fs+reduce e (Disj fs) = Disj <$> mapM (reduce e) fs+reduce e (Xor fs) = Impl (preOf e) <$> (Xor <$> mapM (reduce e) fs)+reduce e (Impl f1 f2) = Impl <$> reduce e f1 <*> reduce e f2+reduce e (Equi f1 f2) = Equi <$> reduce e f1 <*> reduce e f2+reduce _ (Forall _ _) = Nothing+reduce _ (Exists _ _) = Nothing+reduce e@(t@(Trf addprops _ _ eventObs), x) (K a f) =+ Impl (preOf e) <$> (Conj <$> sequence+ [ K a <$> reduce (t,y) f | y <- powerset addprops -- FIXME is this a bit much?+ , tagBddEval (mv x ++ cp y) (eventObs ! a)+ ])+reduce e (Kw a f) = reduce e (Disj [K a f, K a (Neg f)])+reduce _ Ck {} = Nothing+reduce _ Ckw {} = Nothing+reduce _ PubAnnounce {} = Nothing+reduce _ PubAnnounceW {} = Nothing+reduce _ Announce {} = Nothing+reduce _ AnnounceW {} = Nothing+reduce _ Dia {} = Nothing++bddReduce :: BelScene -> Event -> Form -> Bdd+bddReduce scn@(oldBls,_) event@(Trf addprops _ changelaw _, eventFacts) f =+ let+ changeprops = M.keys changelaw+ -- same as in 'transform', to ensure props and addprops are disjoint+ shiftaddprops = [(freshp $ vocabOf scn)..]+ shiftrel = sort $ zip addprops shiftaddprops+ -- apply the shifting to addlaw and changelaw:+ changelawShifted = M.map (relabelWith shiftrel) changelaw+ (newBlS,_) = update scn event+ -- the actual event, shifted+ actualAss = [ (shifted, P orig `elem` eventFacts) | (P orig, P shifted) <- shiftrel ]+ postconrel = [ (n, changelawShifted ! P n) | (P n) <- changeprops ]+ -- reversing V° to V+ copychangeprops = [(freshp $ vocabOf scn ++ map snd shiftrel)..]+ copyrelInverse = zip copychangeprops changeprops+ in+ imp (bddOf oldBls (preOf event)) $ -- 0. check if precondition holds+ relabelWith copyrelInverse $ -- 4. changepropscopies -> original changeprops+ (`restrictSet` actualAss) $ -- 3. restrict to actual event x outof V++ substitSimul postconrel $ -- 2. replace changeprops with postconditions+ bddOf newBlS f -- 1. boolean equivalent wrt new structure++evalViaBddReduce :: BelScene -> Event -> Form -> Bool+evalViaBddReduce (bls,s) event f = evaluateFun (bddReduce (bls,s) event f) (\n -> P n `elem` s)
− src/SMCDEL/Symbolic/K/Change.hs
@@ -1,197 +0,0 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}--module SMCDEL.Symbolic.K.Change where--import Control.Arrow ((&&&))-import Control.Lens (over,both)-import Data.HasCacBDD hiding (Top,Bot)-import Data.List ((\\),intersect,intercalate,sort)-import qualified Data.Map.Strict as M-import Data.Map.Strict ((!),fromList,toList)--import SMCDEL.Internal.Help (apply,powerset)-import SMCDEL.Internal.TexDisplay-import SMCDEL.Language-import SMCDEL.Translations.S5 (booloutof)-import SMCDEL.Other.BDD2Form-import SMCDEL.Symbolic.K-import SMCDEL.Symbolic.S5 (bddEval,boolBddOf,State)--data Transformer = Trf- [Prp] -- addprops- Form -- event law- [Prp] -- changeprops, modified subset- (M.Map Prp Bdd) -- changelaw- (M.Map Agent RelBDD) -- eventObs- deriving (Eq,Show)--instance HasAgents Transformer where- agentsOf (Trf _ _ _ _ obdds) = M.keys obdds--type Event = (Transformer,State)--instance HasPrecondition Event where- preOf (Trf addprops addlaw _ _ _, x) = simplify $ substitOutOf x addprops addlaw--type MultiEvent = (Transformer,[State])--instance TexAble Transformer where- tex (Trf addprops addlaw changeprops changelaw eventObs) = concat- [ " \\left( \n"- , tex addprops, ", "- , tex addlaw, ", "- , tex changeprops, ", "- , intercalate ", " $ map snd . toList $ M.mapWithKey texChange changelaw, ", "- , intercalate ", " eobddstrings- , " \\right) \n"- ] where- texChange prop changebdd = tex prop ++ " := " ++ tex (formOf changebdd)- eobddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (toList eventObs)- bddstring (i,os) = "\\Omega^+_{\\text{" ++ i ++ "}} = " ++ bddprefix ++ os ++ bddsuffix--instance TexAble Event where- tex (trf, eventFacts) = concat- [ " \\left( \n", tex trf, ", ", tex eventFacts, " \\right) \n" ]--transform :: BelScene -> Event -> BelScene-transform (kns@(BlS props law obdds),s) (Trf addprops addlaw changeprops changelaw eventObs, eventFacts) =- (BlS newprops newlaw newobs, news) where- -- PART 1: SHIFTING addprops to ensure props and newprops are disjoint- shiftaddprops = [(freshp props)..]- shiftrel = sort $ zip addprops shiftaddprops- relabelWith r = relabel (sort $ map (over both fromEnum) r)- -- apply the shifting to addlaw and changelaw:- addlawShifted = replPsInF shiftrel addlaw- changelawShifted = M.map (relabelWith shiftrel) changelaw- -- to apply the shifting to eventObs we need shiftrel for the double vocabulary:- shiftrelMVCP = sort $ zip (mv addprops) (mv shiftaddprops)- ++ zip (cp addprops) (cp shiftaddprops)- eventObsShifted = M.map (fmap $ relabelWith shiftrelMVCP) eventObs- -- the actual event:- x = map (apply shiftrel) eventFacts- -- PART 2: COPYING the modified propositions- copychangeprops = [(freshp $ props ++ map snd shiftrel)..]- copyrel = zip changeprops copychangeprops- copyrelMVCP = sort $ zip (mv changeprops) (mv copychangeprops)- -- PART 3: actual transformation- newprops = sort $ props ++ map snd shiftrel ++ map snd copyrel- newlaw = conSet $ relabelWith copyrel (con law (bddOf kns addlawShifted))- : [var (fromEnum q) `equ` relabelWith copyrel (changelawShifted ! q) | q <- changeprops]- newobs = M.mapWithKey (\i oldobs -> con <$> (relabelWith copyrelMVCP <$> oldobs) <*> (eventObsShifted ! i)) obdds- news | bddEval (s ++ x) (con law (bddOf kns addlawShifted)) = sort $ concat- [ s \\ changeprops- , map (apply copyrel) $ s `intersect` changeprops- , x- , filter (\ p -> bddEval (s ++ x) (changelawShifted ! p)) changeprops ]- | otherwise = error "Transformer is not applicable!"--transformMulti :: BelScene -> MultiEvent -> BelScene-transformMulti (kns,s) (trf@(Trf addprops addlaw _ _ _), eventsFacts) =- transform (kns,s) (trf,selectedEventFacts) where- possible :: State -> Bool- possible eventFact = evalViaBdd (kns,s) (substitSet subs addlaw) where- subs = [ (p, if p `elem` eventFact then Top else Bot) | p <- addprops ]- selectedEventFacts :: State- [selectedEventFacts] = filter possible eventsFacts--publicMakeFalse :: [Agent] -> Prp -> Event-publicMakeFalse agents p = (Trf [] Top [p] changelaw eventobs, []) where- changelaw = fromList [ (p,boolBddOf Bot) ]- eventobs = fromList [ (i,totalRelBdd) | i <- agents ]--myEvent :: Event-myEvent = publicMakeFalse (agentsOf $ fst SMCDEL.Symbolic.K.exampleStart) (P 0)--tResult :: BelScene-tResult = SMCDEL.Symbolic.K.exampleStart `transform` myEvent--flipOverAndShowTo :: [Agent] -> Prp -> Agent -> Event-flipOverAndShowTo everyone p i = (Trf [q] eventlaw [p] changelaw eventobs, [q]) where- q = freshp [p]- eventlaw = PrpF q `Equi` PrpF p- changelaw = fromList [ (p, boolBddOf . Neg . PrpF $ p) ]- eventobs = fromList $ (i, allsamebdd [q])- : [ (j,totalRelBdd) | j <- everyone \\ [i] ]--myOtherEvent :: Event-myOtherEvent = flipOverAndShowTo ["1","2"] (P 0) "1"--tResult2 :: BelScene-tResult2 = SMCDEL.Symbolic.K.exampleStart `transform` myOtherEvent--trfPost :: Event -> Prp -> Bdd-trfPost (Trf addprops _ _ changelaw _, x) p- | p `elem` M.keys changelaw = restrictLaw (changelaw ! p) (booloutof x addprops)- | otherwise = boolBddOf $ PrpF p--reduce :: Event -> Form -> Maybe Form-reduce _ Top = Just Top-reduce e Bot = Just $ Neg $ preOf e-reduce e (PrpF p) = Impl (preOf e) <$> Just (formOf $ trfPost e p)-reduce e (Neg f) = Impl (preOf e) <$> (Neg <$> reduce e f)-reduce e (Conj fs) = Conj <$> mapM (reduce e) fs-reduce e (Disj fs) = Disj <$> mapM (reduce e) fs-reduce e (Xor fs) = Impl (preOf e) <$> (Xor <$> mapM (reduce e) fs)-reduce e (Impl f1 f2) = Impl <$> reduce e f1 <*> reduce e f2-reduce e (Equi f1 f2) = Equi <$> reduce e f1 <*> reduce e f2-reduce _ (Forall _ _) = Nothing-reduce _ (Exists _ _) = Nothing-reduce e@(t@(Trf addprops _ _ _ eventObs), x) (K a f) =- Impl (preOf e) <$> (Conj <$> sequence- [ K a <$> reduce (t,y) f | y <- powerset addprops -- FIXME is this a bit much?- , tagBddEval (mv x ++ cp y) (eventObs ! a)- ])-reduce e (Kw a f) = reduce e (Disj [K a f, K a (Neg f)])-reduce _ Ck {} = Nothing-reduce _ Ckw {} = Nothing-reduce _ PubAnnounce {} = Nothing-reduce _ PubAnnounceW {} = Nothing-reduce _ Announce {} = Nothing-reduce _ AnnounceW {} = Nothing--bddReduce :: BelScene -> Event -> Form -> Bdd-bddReduce scn@(oldBls,_) event@(Trf addprops _ changeprops changelaw _, eventFacts) f =- let- -- same as in 'transform', to ensure props and addprops are disjoint- shiftaddprops = [(freshp $ vocabOf scn)..]- shiftrel = sort $ zip addprops shiftaddprops- relabelWith r = relabel (sort $ map (over both fromEnum) r)- -- apply the shifting to addlaw and changelaw:- changelawShifted = M.map (relabelWith shiftrel) changelaw- (newBlS,_) = transform scn event- -- the actual event, shifted- actualAss = [ (shifted, P orig `elem` eventFacts) | (P orig, P shifted) <- shiftrel ]- postconrel = [ (n, changelawShifted ! P n) | (P n) <- changeprops ]- -- reversing V° to V- copychangeprops = [(freshp $ vocabOf scn ++ map snd shiftrel)..]- copyrelInverse = zip copychangeprops changeprops- in- imp (bddOf oldBls (preOf event)) $ -- 0. check if precondition holds- relabelWith copyrelInverse $ -- 4. changepropscopies -> original changeprops- (`restrictSet` actualAss) $ -- 3. restrict to actual event x outof V+- bddSubstitSimul postconrel $ -- 2. replace changeprops with postconditions- bddOf newBlS f -- 1. boolean equivalent wrt new structure--evalViaBddReduce :: BelScene -> Event -> Form -> Bool-evalViaBddReduce (kns,s) event f = evaluateFun (bddReduce (kns,s) event f) (\n -> P n `elem` s)---- replace variable n with a BDD psi in BDD b-bddSubstit :: Int -> Bdd -> Bdd -> Bdd-bddSubstit n psi b =- case firstVarOf b of- Nothing -> b- Just k -> case compare n k of- LT -> b- EQ -> ifthenelse psi (thenOf b) (elseOf b)- GT -> ifthenelse (var k) (bddSubstit n psi (thenOf b)) (bddSubstit n psi (elseOf b))---- *simultaneous* substitution of BDDs for variables--- (not the same as folding bddSubstit)-bddSubstitSimul :: [(Int,Bdd)] -> Bdd -> Bdd-bddSubstitSimul [] b = b-bddSubstitSimul repls b =- case firstVarOf b of- Nothing -> b- Just k -> case lookup k repls of- Nothing -> ifthenelse (var k) (bddSubstitSimul repls $ thenOf b) (bddSubstitSimul repls $ elseOf b)- Just psi -> ifthenelse psi (bddSubstitSimul repls $ thenOf b) (bddSubstitSimul repls $ elseOf b)
src/SMCDEL/Symbolic/S5.hs view
@@ -1,16 +1,24 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, ScopedTypeVariables #-} module SMCDEL.Symbolic.S5 where-import Control.Arrow (first)++import Control.Arrow (first,second,(***))+import Data.Char (isSpace)+import Data.Dynamic import Data.HasCacBDD hiding (Top,Bot) import Data.HasCacBDD.Visuals-import Data.List (sort,intercalate,(\\))+import Data.List ((\\),delete,dropWhile,dropWhileEnd,intercalate,intersect,nub,sort)+import Data.Tagged import System.IO (hPutStr, hGetContents, hClose) import System.IO.Unsafe (unsafePerformIO) import System.Process (runInteractiveCommand)-import SMCDEL.Internal.Help (alleqWith,apply,(!),rtc,seteq,powerset)-import SMCDEL.Language+import Test.QuickCheck++import SMCDEL.Internal.Help ((!),alleqWith,apply,applyPartial,lfp,powerset,rtc,seteq)+import SMCDEL.Internal.TaggedBDD import SMCDEL.Internal.TexDisplay+import SMCDEL.Language+import SMCDEL.Other.BDD2Form boolBddOf :: Form -> Bdd boolBddOf Top = top@@ -32,6 +40,9 @@ bddEval :: [Prp] -> Bdd -> Bool bddEval truths querybdd = evaluateFun querybdd (\n -> P n `elem` truths) +relabelWith :: [(Prp,Prp)] -> Bdd -> Bdd+relabelWith r = relabel (sort $ map (fromEnum *** fromEnum) r)+ data KnowStruct = KnS [Prp] -- vocabulary Bdd -- state law [(Agent,[Prp])] -- observational variables@@ -39,8 +50,12 @@ type State = [Prp] +instance Pointed KnowStruct State type KnowScene = (KnowStruct,State) +instance Pointed KnowStruct Bdd+type MultipointedKnowScene = (KnowStruct,Bdd)+ statesOf :: KnowStruct -> [State] statesOf (KnS props lawbdd _) = map (sort.translate) resultlists where resultlists :: [[(Prp, Bool)]]@@ -53,18 +68,12 @@ instance HasVocab KnowStruct where vocabOf (KnS props _ _) = props -instance HasAgents KnowScene where agentsOf = agentsOf . fst-instance HasVocab KnowScene where vocabOf = vocabOf . fst- numberOfStates :: KnowStruct -> Int numberOfStates (KnS props lawbdd _) = satCountWith (map fromEnum props) lawbdd -restrictState :: State -> [Prp] -> State-restrictState s props = filter (`elem` props) s- shareknow :: KnowStruct -> [[Prp]] -> [(State,State)] shareknow kns sets = filter rel [ (s,t) | s <- statesOf kns, t <- statesOf kns ] where- rel (x,y) = or [ seteq (restrictState x set) (restrictState y set) | set <- sets ]+ rel (x,y) = or [ seteq (x `intersect` set) (y `intersect` set) | set <- sets ] comknow :: KnowStruct -> [Agent] -> [(State,State)] comknow kns@(KnS _ _ obs) ags = rtc $ shareknow kns (map (apply obs) ags)@@ -80,47 +89,43 @@ eval scn (Impl f g) = not (eval scn f) || eval scn g eval scn (Equi f g) = eval scn f == eval scn g eval scn (Forall ps f) = eval scn (foldl singleForall f ps) where- singleForall g p = Conj [ substit p Top g, substit p Bot g ]+ singleForall g p = Conj [ SMCDEL.Language.substit p Top g, SMCDEL.Language.substit p Bot g ] eval scn (Exists ps f) = eval scn (foldl singleExists f ps) where- singleExists g p = Disj [ substit p Top g, substit p Bot g ]+ singleExists g p = Disj [ SMCDEL.Language.substit p Top g, SMCDEL.Language.substit p Bot g ] eval (kns@(KnS _ _ obs),s) (K i form) = all (\s' -> eval (kns,s') form) theres where- theres = filter (\s' -> seteq (restrictState s' oi) (restrictState s oi)) (statesOf kns)- oi = apply obs i+ theres = filter (\s' -> seteq (s' `intersect` oi) (s `intersect` oi)) (statesOf kns)+ oi = obs ! i eval (kns@(KnS _ _ obs),s) (Kw i form) = alleqWith (\s' -> eval (kns,s') form) theres where- theres = filter (\s' -> seteq (restrictState s' oi) (restrictState s oi)) (statesOf kns)- oi = apply obs i+ theres = filter (\s' -> seteq (s' `intersect` oi) (s `intersect` oi)) (statesOf kns)+ oi = obs ! i eval (kns,s) (Ck ags form) = all (\s' -> eval (kns,s') form) theres where theres = [ s' | (s0,s') <- comknow kns ags, s0 == s ] eval (kns,s) (Ckw ags form) = alleqWith (\s' -> eval (kns,s') form) theres where theres = [ s' | (s0,s') <- comknow kns ags, s0 == s ] eval scn (PubAnnounce form1 form2) =- not (eval scn form1) || eval (pubAnnounceOnScn scn form1) form2+ not (eval scn form1) || eval (update scn form1) form2 eval (kns,s) (PubAnnounceW form1 form2) = if eval (kns, s) form1- then eval (pubAnnounce kns form1, s) form2- else eval (pubAnnounce kns (Neg form1), s) form2+ then eval (update kns form1, s) form2+ else eval (update kns (Neg form1), s) form2 eval scn (Announce ags form1 form2) = not (eval scn form1) || eval (announceOnScn scn ags form1) form2 eval scn (AnnounceW ags form1 form2) = if eval scn form1 then eval (announceOnScn scn ags form1 ) form2 else eval (announceOnScn scn ags (Neg form1)) form2+eval scn (Dia (Dyn dynLabel d) f) = case fromDynamic d of+ Just event -> eval scn (preOf (event :: Event))+ && eval (scn `update` event) f+ Nothing -> error $ "cannot update knowledge structure with '" ++ dynLabel ++ "':\n " ++ show d -pubAnnounce :: KnowStruct -> Form -> KnowStruct-pubAnnounce kns@(KnS props lawbdd obs) psi = KnS props newlawbdd obs where- newlawbdd = con lawbdd (bddOf kns psi) -pubAnnounceOnScn :: KnowScene -> Form -> KnowScene-pubAnnounceOnScn (kns,s) psi- | eval (kns,s) psi = (pubAnnounce kns psi,s)- | otherwise = error "Liar!"- announce :: KnowStruct -> [Agent] -> Form -> KnowStruct announce kns@(KnS props lawbdd obs) ags psi = KnS newprops newlawbdd newobs where proppsi@(P k) = freshp props newprops = proppsi:props newlawbdd = con lawbdd (equ (var k) (bddOf kns psi))- newobs = [(i, apply obs i ++ [proppsi | i `elem` ags]) | i <- map fst obs]+ newobs = [(i, obs ! i ++ [proppsi | i `elem` ags]) | i <- map fst obs] announceOnScn :: KnowScene -> [Agent] -> Form -> KnowScene announceOnScn (kns@(KnS props _ _),s) ags psi@@ -141,13 +146,13 @@ bddOf kns (Exists ps f) = existsSet (map fromEnum ps) (bddOf kns f) bddOf kns@(KnS allprops lawbdd obs) (K i form) = forallSet otherps (imp lawbdd (bddOf kns form)) where- otherps = map (\(P n) -> n) $ allprops \\ apply obs i+ otherps = map (\(P n) -> n) $ allprops \\ obs ! i bddOf kns@(KnS allprops lawbdd obs) (Kw i form) = disSet [ forallSet otherps (imp lawbdd (bddOf kns f)) | f <- [form, Neg form] ] where- otherps = map (\(P n) -> n) $ allprops \\ apply obs i+ otherps = map (\(P n) -> n) $ allprops \\ obs ! i bddOf kns@(KnS allprops lawbdd obs) (Ck ags form) = gfp lambda where lambda z = conSet $ bddOf kns form : [ forallSet (otherps i) (imp lawbdd z) | i <- ags ]- otherps i = map (\(P n) -> n) $ allprops \\ apply obs i+ otherps i = map (\(P n) -> n) $ allprops \\ obs ! i bddOf kns (Ckw ags form) = dis (bddOf kns (Ck ags form)) (bddOf kns (Ck ags (Neg form))) bddOf kns@(KnS props _ _) (Announce ags form1 form2) = imp (bddOf kns form1) (restrict bdd2 (k,True)) where@@ -159,18 +164,62 @@ bdd2b = restrict (bddOf (announce kns ags form1) form2) (k,False) (P k) = freshp props bddOf kns (PubAnnounce form1 form2) =- imp (bddOf kns form1) (bddOf (pubAnnounce kns form1) form2)+ imp (bddOf kns form1) (bddOf (update kns form1) form2) bddOf kns (PubAnnounceW form1 form2) = ifthenelse (bddOf kns form1) newform2a newform2b where- newform2a = bddOf (pubAnnounce kns form1) form2- newform2b = bddOf (pubAnnounce kns (Neg form1)) form2+ newform2a = bddOf (update kns form1) form2+ newform2b = bddOf (update kns (Neg form1)) form2 +bddOf kns (Dia (Dyn dynLabel d) f) =+ con (bddOf kns preCon) -- 5. Prefix with "precon AND ..." (diamond!)+ . relabelWith copyrelInverse -- 4. Copy back changeProps V_° to V_+ . simulateActualEvents -- 3. Simulate actual event(s) [see below]+ . substitSimul [ (k, changeLaw ! p) -- 2. Replace changeProps V_ with postcons+ | p@(P k) <- changeProps] -- (no "relabelWith copyrel", undone in 4)+ . bddOf (kns `update` trf) -- 1. boolean equivalent wrt new struct+ $ f+ where+ changeProps = map fst changeLaw+ copychangeProps = [(freshp $ vocabOf kns ++ addProps)..]+ copyrelInverse = zip copychangeProps changeProps+ (trf@(KnTrf addProps addLaw changeLaw _), shiftrel) = shiftPrepare kns trfUnshifted+ (preCon,trfUnshifted,simulateActualEvents) =+ case fromDynamic d of+ -- 3. For a single event, simulate actual event x outof V++ Just ((t,x) :: Event) -> ( preOf (t,x), t, (`restrictSet` actualAss) )+ where actualAss = [(newK, P k `elem` x) | (P k, P newK) <- shiftrel]+ Nothing -> case fromDynamic d of+ -- 3. For a multipointed event, simulate a set of actual events by ...+ Just ((t,xsBdd) :: MultipointedEvent) ->+ ( preOf (t,xsBdd), t+ , existsSet (map fromEnum addProps) -- ... replacing addProps with assigments+ . con actualsBdd -- ... that satisfy actualsBdd+ . con (bddOf kns addLaw) -- ... and a precondition.+ ) where actualsBdd = relabelWith shiftrel xsBdd+ Nothing -> error $ "cannot update knowledge structure with '" ++ dynLabel ++ "':\n " ++ show d+ evalViaBdd :: KnowScene -> Form -> Bool evalViaBdd (kns,s) f = evaluateFun (bddOf kns f) (\n -> P n `elem` s) +instance Semantics KnowStruct where+ isTrue = validViaBdd+ instance Semantics KnowScene where isTrue = evalViaBdd +instance Semantics MultipointedKnowScene where+ isTrue (kns@(KnS _ lawBdd _),statesBdd) f =+ let a = lawBdd `imp` (statesBdd `imp` bddOf kns f)+ in a == top++instance Update KnowStruct Form where+ checks = [ ] -- unpointed structures can always be updated with anything+ unsafeUpdate kns@(KnS props lawbdd obs) psi =+ KnS props (lawbdd `con` bddOf kns psi) obs++instance Update KnowScene Form where+ unsafeUpdate (kns,s) psi = (unsafeUpdate kns psi,s)+ validViaBdd :: KnowStruct -> Form -> Bool validViaBdd kns@(KnS _ lawbdd _) f = top == lawbdd `imp` bddOf kns f @@ -179,28 +228,170 @@ map (sort . map (toEnum . fst) . filter snd) $ allSatsWith (map fromEnum props) $ con lawbdd (bddOf kns f) -data KnowTransf = KnT [Prp] Form [(Agent,[Prp])] deriving (Show)-type Event = (KnowTransf,State)+determinedVocabOf :: KnowStruct -> [Prp]+determinedVocabOf strct =+ filter (\p -> validViaBdd strct (PrpF p) || validViaBdd strct (Neg $ PrpF p)) (vocabOf strct) -knowTransform :: KnowScene -> Event -> KnowScene-knowTransform (kns@(KnS props lawbdd obs),s) (KnT addprops addlaw eventobs, eventfacts) =- (KnS (props ++ map snd shiftrel) newlawbdd newobs, s++shifteventfacts) where- shiftrel = zip addprops [(freshp props)..]- newobs = [ (i , sort $ apply obs i ++ map (apply shiftrel) (apply eventobs i)) | i <- map fst obs ]- shiftaddlaw = replPsInF shiftrel addlaw- newlawbdd = con lawbdd (bddOf kns shiftaddlaw)- shifteventfacts = map (apply shiftrel) eventfacts+nonobsVocabOf :: KnowStruct -> [Prp]+nonobsVocabOf (KnS vocab _ obs) = filter (`notElem` usedVars) vocab where+ usedVars = sort $ concatMap snd obs +equivExtraVocabOf :: [Prp] -> KnowStruct -> [(Prp,Prp)]+equivExtraVocabOf mainVocab kns =+ [ (p,q) | p <- vocabOf kns \\ mainVocab, q <- vocabOf kns, p > q, validViaBdd kns (PrpF p `Equi` PrpF q) ]++replaceWithIn :: (Prp,Prp) -> KnowStruct -> KnowStruct+replaceWithIn (p,q) (KnS oldProps oldLaw oldObs) =+ KnS+ (delete p oldProps)+ (Data.HasCacBDD.substit (fromEnum p) (var (fromEnum q)) oldLaw)+ [(i, if p `elem` os then sort $ nub (q : delete p os) else os) | (i,os) <- oldObs]++replaceEquivExtra :: [Prp] -> KnowStruct -> (KnowStruct,[(Prp,Prp)])+replaceEquivExtra mainVocab startKns = lfp step (startKns,[]) where+ step (kns,replRel) = case equivExtraVocabOf mainVocab kns of+ [] -> (kns,replRel)+ ((p,q):_) -> (replaceWithIn (p,q) kns, (p,q):replRel)++withoutProps :: [Prp] -> KnowStruct -> KnowStruct+withoutProps propsToDel (KnS oldProps oldLawBdd oldObs) =+ KnS+ (oldProps \\ propsToDel)+ (existsSet (map fromEnum propsToDel) oldLawBdd)+ [(i,os \\ propsToDel) | (i,os) <- oldObs]++instance Optimizable MultipointedKnowScene where+ optimize myVocab (oldKns,oldStatesBdd) = (newKns,newStatesBdd) where+ intermediateKns = withoutProps ((determinedVocabOf oldKns `intersect` nonobsVocabOf oldKns) \\ myVocab) oldKns+ removedProps = vocabOf oldKns \\ vocabOf intermediateKns+ intermediateStatesBdd = existsSet (map fromEnum removedProps) oldStatesBdd+ (newKns,replRel) = replaceEquivExtra myVocab intermediateKns+ newStatesBdd = foldr (uncurry Data.HasCacBDD.substit) intermediateStatesBdd [ (fromEnum p, var (fromEnum q)) | (p,q) <-replRel ]++generatedSubstructure :: MultipointedKnowScene -> MultipointedKnowScene+generatedSubstructure kns@(KnS props oldLaw obs, curBdd) = (KnS props newLaw obs, curBdd) where+ newLaw = oldLaw `con` disSet (curBdd : [ existsSet (map fromEnum $ props \\ obs ! i) curBdd+ | i <- agentsOf kns ])++type Propulation = Tagged Quadrupel Bdd++($$) :: Monad m => ([a] -> b) -> [m a] -> m b+($$) f xs = f <$> sequence xs++checkPropu :: Propulation -> KnowStruct -> KnowStruct -> [Prp] -> Bool+checkPropu propu kns1@(KnS _ law1 obs1) kns2@(KnS _ law2 obs2) voc =+ pure top == (imp <$> lhs <*> rhs) where+ lhs = conSet $$ [mv law1, cp law2, propu]+ rhs = conSet $$ [propAgree, forth, back]+ propAgree = allsamebdd voc+ forth = conSet $$ [ forallSet (nonObs i obs1) <$>+ (imp <$> mv law1 <*> (existsSet (nonObs i obs2) <$> (con <$> cp law2 <*> propu)))+ | i <- agentsOf kns1 ]+ back = conSet $$ [ forallSet (nonObs i obs1) <$>+ (imp <$> mv law2 <*> (existsSet (nonObs i obs1) <$> (con <$> cp law1 <*> propu)))+ | i <- agentsOf kns2 ]+ nonObs i obs = map (\(P n) -> n) $ voc \\ obs ! i+++data KnowTransformer = KnTrf+ [Prp] -- addProps+ Form -- addLaw+ [(Prp,Bdd)] -- changeLaw+ [(Agent,[Prp])] -- addObs+ deriving (Show)++noChange :: ([Prp] -> Form -> [(Prp,Bdd)] -> [(Agent,[Prp])] -> KnowTransformer)+ -> [Prp] -> Form -> [(Agent,[Prp])] -> KnowTransformer+noChange kntrf addprops addlaw = kntrf addprops addlaw []++instance HasAgents KnowTransformer where+ agentsOf (KnTrf _ _ _ obdds) = map fst obdds++instance HasPrecondition KnowTransformer where+ preOf _ = Top++instance Pointed KnowTransformer State+type Event = (KnowTransformer,State)++instance HasPrecondition Event where+ preOf (KnTrf addprops addlaw _ _, x) = simplify $ substitOutOf x addprops addlaw++instance Pointed KnowTransformer Bdd+type MultipointedEvent = (KnowTransformer,Bdd)++instance HasPrecondition MultipointedEvent where+ preOf (KnTrf addprops addlaw _ _, xsBdd) =+ simplify $ Exists addprops (Conj [ formOf xsBdd, addlaw ])++publicAnnounce :: [Agent] -> Form -> Event+publicAnnounce agents f = (noChange KnTrf [] f myobs, []) where+ myobs = [ (i,[]) | i <- agents ]++-- | shift addprops to ensure that props and newprops are disjoint:+shiftPrepare :: KnowStruct -> KnowTransformer -> (KnowTransformer, [(Prp,Prp)])+shiftPrepare (KnS props _ _) (KnTrf addprops addlaw changelaw eventObs) =+ (KnTrf shiftaddprops addlawShifted changelawShifted eventObsShifted, shiftrel) where+ shiftrel = sort $ zip addprops [(freshp props)..]+ shiftaddprops = map snd shiftrel+ -- apply the shifting to addlaw, changelaw and eventObs:+ addlawShifted = replPsInF shiftrel addlaw+ changelawShifted = map (second (relabelWith shiftrel)) changelaw+ eventObsShifted = map (second (map (apply shiftrel))) eventObs++instance Update KnowScene Event where+ unsafeUpdate (kns@(KnS props _ _),s) (ctrf, eventFactsUnshifted) = (KnS newprops newlaw newobs, news) where+ -- PART 1: SHIFTING addprops to ensure props and newprops are disjoint+ (KnTrf addprops _ changelaw _, shiftrel) = shiftPrepare kns ctrf+ -- the actual event:+ eventFacts = map (apply shiftrel) eventFactsUnshifted+ -- PART 2: COPYING the modified propositions+ changeprops = map fst changelaw+ copyrel = zip changeprops [(freshp $ props ++ addprops)..]+ -- do the pointless update and calculate new actual state+ KnS newprops newlaw newobs = unsafeUpdate kns ctrf+ news = sort $ concat+ [ s \\ changeprops+ , map (apply copyrel) $ s `intersect` changeprops+ , eventFacts+ , filter (\ p -> bddEval (s ++ eventFacts) (changelaw ! p)) changeprops ]++instance Update KnowStruct KnowTransformer where+ checks = [haveSameAgents]+ unsafeUpdate kns ctrf = KnS newprops newlaw newobs where+ (KnS newprops newlaw newobs, _) = unsafeUpdate (kns,undefined::Bdd) (ctrf,undefined::Bdd) -- using laziness!++instance Update MultipointedKnowScene MultipointedEvent where+ unsafeUpdate (kns@(KnS props law obs),statesBdd) (ctrf,eventsBddUnshifted) =+ (KnS newprops newlaw newobs, newStatesBDD) where+ (KnTrf addprops addlaw changelaw eventObs, shiftrel) = shiftPrepare kns ctrf+ -- apply the shifting to eventsBdd:+ eventsBdd = relabelWith shiftrel eventsBddUnshifted+ -- PART 2: COPYING the modified propositions+ changeprops = map fst changelaw+ copyrel = zip changeprops [(freshp $ props ++ addprops)..]+ copychangeprops = map snd copyrel+ newprops = sort $ props ++ addprops ++ copychangeprops -- V ∪ V⁺ ∪ V°+ newlaw = conSet $ relabelWith copyrel (con law (bddOf kns addlaw))+ : [var (fromEnum q) `equ` relabelWith copyrel (changelaw ! q) | q <- changeprops]+ newobs = [ (i , sort $ map (applyPartial copyrel) (obs ! i) ++ eventObs ! i) | i <- map fst obs ]+ newStatesBDD = conSet [ relabelWith copyrel statesBdd, eventsBdd ]+ texBddWith :: (Int -> String) -> Bdd -> String texBddWith myShow b = unsafePerformIO $ do (i,o,_,_) <- runInteractiveCommand "dot2tex --figpreamble=\"\\huge\" --figonly -traw" hPutStr i (genGraphWith myShow b ++ "\n") hClose i- hGetContents o+ result <- hGetContents o+ return $ dropWhileEnd isSpace $ dropWhile isSpace result texBDD :: Bdd -> String texBDD = texBddWith show +newtype WrapBdd = Wrap Bdd++instance TexAble WrapBdd where+ tex (Wrap b) = texBDD b+ instance TexAble KnowStruct where tex (KnS props lawbdd obs) = concat [ " \\left( \n"@@ -209,43 +400,68 @@ , texBDD lawbdd , "} \\end{array}\n " , ", \\begin{array}{l}\n"- , intercalate " \\\\\n " (map (\(_,os) -> (tex os)) obs)+ , intercalate " \\\\\n " (map (\(_,os) -> tex os) obs) , "\\end{array}\n" , " \\right)" ] instance TexAble KnowScene where tex (kns, state) = tex kns ++ " , " ++ tex state -instance TexAble Event where- tex (KnT props changelaw obs, actual) = concat+instance TexAble MultipointedKnowScene where+ tex (kns, statesBdd) = concat [ " \\left( \n"- , tex props ++ ", "- , tex changelaw, "\n "- , ", \\begin{array}{l}\n"- , intercalate " \\\\\n " (map (\(_,os) -> (tex os)) obs)+ , tex kns ++ ", "+ , " \\begin{array}{l} \\scalebox{0.4}{"+ , texBDD statesBdd+ , "} \\end{array}\n "+ , " \\right)" ]++instance TexAble KnowTransformer where+ tex (KnTrf addprops addlaw changelaw eventObs) = concat+ [ " \\left( \n"+ , tex addprops, ", \\ "+ , tex addlaw, ", \\ "+ , intercalate ", " $ map texChange changelaw+ , ", \\ \\begin{array}{l}\n"+ , intercalate " \\\\\n " (map (\(_,os) -> tex os) eventObs) , "\\end{array}\n"- , " \\right) , "- , tex actual ]+ , " \\right) \n"+ ] where+ texChange (prop,changebdd) = concat+ [ tex prop ++ " := "+ , " \\begin{array}{l} \\scalebox{0.4}{"+ , texBDD changebdd+ , "} \\end{array}\n " ] -pre :: Event -> Form-pre (KnT addprops changelaw _, x) = substitOutOf x addprops changelaw+instance TexAble Event where+ tex (trf, eventFacts) = concat+ [ " \\left( \n", tex trf, ", \\ ", tex eventFacts, " \\right) \n" ] +instance TexAble MultipointedEvent where+ tex (trf, eventsBdd) = concat+ [ " \\left( \n"+ , tex trf ++ ", \\ "+ , " \\begin{array}{l} \\scalebox{0.4}{"+ , texBDD eventsBdd+ , "} \\end{array}\n "+ , " \\right)" ]+ reduce :: Event -> Form -> Maybe Form reduce _ Top = Just Top-reduce e Bot = pure $ Neg (pre e)-reduce e (PrpF p) = Impl (pre e) <$> Just (PrpF p)-reduce e (Neg f) = Impl (pre e) <$> (Neg <$> reduce e f)+reduce e Bot = pure $ Neg (preOf e)+reduce e (PrpF p) = Impl (preOf e) <$> Just (PrpF p) -- FIXME use change!+reduce e (Neg f) = Impl (preOf e) <$> (Neg <$> reduce e f) reduce e (Conj fs) = Conj <$> mapM (reduce e) fs reduce e (Disj fs) = Disj <$> mapM (reduce e) fs-reduce e (Xor fs) = Impl (pre e) <$> (Xor <$> mapM (reduce e) fs)+reduce e (Xor fs) = Impl (preOf e) <$> (Xor <$> mapM (reduce e) fs) reduce e (Impl f1 f2) = Impl <$> reduce e f1 <*> reduce e f2 reduce e (Equi f1 f2) = Equi <$> reduce e f1 <*> reduce e f2 reduce _ (Forall _ _) = Nothing reduce _ (Exists _ _) = Nothing-reduce e@(t@(KnT addprops _ obs), x) (K a f) =- Impl (pre e) <$> (Conj <$> sequence- [ K a <$> reduce (t,y) f | y <- powerset addprops -- FIXME is this a bit much?- , seteq (restrictState x (obs ! a)) (restrictState y (obs ! a))+reduce event@(trf@(KnTrf addprops _ _ obs), x) (K a f) =+ Impl (preOf event) <$> (Conj <$> sequence+ [ K a <$> reduce (trf,y) f | y <- powerset addprops+ , (x `intersect` (obs ! a)) `seteq` (y `intersect` (obs ! a)) ]) reduce e (Kw a f) = reduce e (Disj [K a f, K a (Neg f)]) reduce _ Ck {} = Nothing@@ -254,12 +470,16 @@ reduce _ PubAnnounceW {} = Nothing reduce _ Announce {} = Nothing reduce _ AnnounceW {} = Nothing--bddReduce :: KnowScene -> Event -> Form -> Bdd-bddReduce scn event f = restrictSet (bddOf newKns f) actualAss where- (newKns,_) = knowTransform scn event- (KnT eventprops _ _, actual) = event- actualAss = [(k, P k `elem` actual) | (P k) <- eventprops]+reduce _ Dia {} = Nothing -evalViaBddReduce :: KnowScene -> Event -> Form -> Bool-evalViaBddReduce (kns,s) event f = evaluateFun (bddReduce (kns,s) event f) (\n -> P n `elem` s)+instance Arbitrary KnowStruct where+ arbitrary = do+ numExtraVars <- choose (0,3)+ let myVocabulary = defaultVocabulary ++ take numExtraVars [freshp defaultVocabulary ..]+ (BF statelaw) <- sized (randomboolformWith myVocabulary) `suchThat` (\(BF bf) -> boolBddOf bf /= bot)+ obs <- mapM (\i -> do+ obsVars <- sublistOf myVocabulary+ return (i,obsVars)+ ) defaultAgents+ return $ KnS defaultVocabulary (boolBddOf statelaw) obs+ shrink kns = [ withoutProps [p] kns | length (vocabOf kns) > 1, p <- vocabOf kns \\ defaultVocabulary ]
− src/SMCDEL/Symbolic/S5/Change.hs
@@ -1,113 +0,0 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}--module SMCDEL.Symbolic.S5.Change where--import Control.Lens (over,both)-import Data.HasCacBDD hiding (Top,Bot)-import Data.List-import qualified Data.Map.Strict as M-import Data.Map.Strict ((!))--import SMCDEL.Language-import SMCDEL.Internal.TexDisplay-import SMCDEL.Other.BDD2Form-import SMCDEL.Internal.Help (apply,applyPartial)-import SMCDEL.Symbolic.S5 hiding (Event)--data KnowChange = CTrf- [Prp] -- addprops- Form -- event law- [Prp] -- changeprops, modified subset- (M.Map Prp Bdd) -- changelaw- (M.Map Agent [Prp]) -- eventObs- deriving (Show)--instance HasAgents KnowChange where- agentsOf (CTrf _ _ _ _ obdds) = M.keys obdds--type Event = (KnowChange,State)--instance HasAgents Event where- agentsOf = agentsOf . fst--type MultiEvent = (KnowChange,[State])--instance TexAble KnowChange where- tex (CTrf addprops addlaw changeprops changelaw eventObs) = concat- [ " \\left( \n"- , tex addprops, ", \\ "- , tex addlaw, ", \\ "- , tex changeprops, ", \\ "- , intercalate ", " $ map snd . M.toList $ M.mapWithKey texChange changelaw- , ", \\ \\begin{array}{l}\n"- , intercalate " \\\\\n " (map (\(_,os) -> (tex os)) (M.toList eventObs))- , "\\end{array}\n"- , " \\right) \n"- ] where- texChange prop changebdd = tex prop ++ " := " ++ tex (formOf changebdd)--instance TexAble Event where- tex (trf, eventFacts) = concat- [ " \\left( \n", tex trf, ", \\ ", tex eventFacts, " \\right) \n" ]--knowChange :: KnowScene -> Event -> KnowScene-knowChange (kns@(KnS props law obs),s) (CTrf addprops addlaw changeprops changelaw eventObs, eventFacts) =- (KnS newprops newlaw newobs, news) where- relabelWith r = relabel (sort $ map (over both fromEnum) r)- -- PART 1: SHIFTING addprops to ensure props and newprops are disjoint- shiftrel = sort $ zip addprops [(freshp props)..]- shiftaddprops = map snd shiftrel- -- apply the shifting to addlaw, changelaw and eventObs:- addlawShifted = replPsInF shiftrel addlaw- changelawShifted = M.map (relabelWith shiftrel) changelaw- eventObsShifted = M.map (map (apply shiftrel)) eventObs- -- the actual event:- x = map (apply shiftrel) eventFacts- -- PART 2: COPYING the modified propositions- copyrel = zip changeprops [(freshp $ props ++ shiftaddprops)..]- copychangeprops = map snd copyrel- newprops = sort $ props ++ shiftaddprops ++ copychangeprops -- V ∪ V⁺ ∪ V°- newlaw = conSet $ relabelWith copyrel (con law (bddOf kns addlawShifted))- : [var (fromEnum q) `equ` relabelWith copyrel (changelawShifted ! q) | q <- changeprops]- newobs = [ (i , sort $ map (applyPartial copyrel) (apply obs i) ++ eventObsShifted ! i) | i <- map fst obs ]- news | bddEval (s ++ x) (con law (bddOf kns addlawShifted)) = sort $ concat- [ s \\ changeprops- , map (apply copyrel) $ s `intersect` changeprops- , x- , filter (\ p -> bddEval (s ++ x) (changelawShifted ! p)) changeprops ]- | otherwise = error "Transformer is not applicable!"--myStart :: KnowScene-myStart = (KnS [P 0] (boolBddOf Top) [("Alice",[]),("Bob",[P 0])],[P 0])--publicMakeFalse :: [Agent] -> Prp -> Event-publicMakeFalse agents p = (CTrf [] Top [p] mychangelaw myobs, []) where- mychangelaw = M.fromList [ (p,boolBddOf Bot) ]- myobs = M.fromList [ (i,[]) | i <- agents ]--myEvent :: Event-myEvent = publicMakeFalse (agentsOf myStart) (P 0)--myResult :: KnowScene-myResult = myStart `knowChange` myEvent--exampleStart :: KnowScene-exampleStart = (KnS [P 0] (boolBddOf Top) [("Alice",[]),("Bob",[P 0])],[P 0])--makeFalseShowTo :: [Agent] -> Prp -> [Agent] -> Event-makeFalseShowTo agents p intheknow = (CTrf [P 99] Top [p] examplechangelaw exampleobs, []) where- examplechangelaw = M.fromList [ (p,boolBddOf $ PrpF (P 99)) ]- exampleobs = M.fromList $ [ (i,[P 99]) | i <- intheknow ]- ++ [ (i,[ ]) | i <- agents \\ intheknow ]--exampleEvent :: Event-exampleEvent = makeFalseShowTo (agentsOf exampleStart) (P 0) ["Bob"]--exampleResult :: KnowScene-exampleResult = exampleStart `knowChange` exampleEvent--thirdEvent :: Event-thirdEvent = makeFalseShowTo (agentsOf exampleStart) (P 0) ["Alice"]--thirdResult :: KnowScene-thirdResult = exampleStart `knowChange` thirdEvent
src/SMCDEL/Symbolic/S5_CUDD.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}+ module SMCDEL.Symbolic.S5_CUDD where import SMCDEL.Internal.MyHaskCUDD@@ -22,8 +24,13 @@ data KnowStruct = KnS [Prp] Bdd [(Agent,[Prp])] deriving (Eq,Show) type KnState = [Prp]-type Scenario = (KnowStruct,KnState)+type KnowScene = (KnowStruct,KnState) +instance HasVocab KnowStruct where+ vocabOf (KnS props _ _) = props++instance Pointed KnowStruct KnState+ pubAnnounce :: KnowStruct -> Form -> KnowStruct pubAnnounce kns@(KnS props lawbdd obs) psi = KnS props newlawbdd obs where newlawbdd = con lawbdd (bddOf kns psi)@@ -72,14 +79,18 @@ ifthenelse (bddOf kns form1) newform2a newform2b where newform2a = bddOf (pubAnnounce kns form1) form2 newform2b = bddOf (pubAnnounce kns (Neg form1)) form2+bddOf _ (Dia _ _) = error "Dynamic operators are not implemented for CUDD." -evalViaBdd :: Scenario -> Form -> Bool+evalViaBdd :: KnowScene -> Form -> Bool evalViaBdd (kns@(KnS allprops _ _),s) f = bool where bool | b==top = True | b==bot = False | otherwise = error ("evalViaBdd failed: BDD leftover:\n" ++ show b) b = restrictSet (bddOf kns f) list list = [ (n, P n `elem` s) | (P n) <- allprops ]++instance Semantics KnowScene where+ isTrue = evalViaBdd validViaBdd :: KnowStruct -> Form -> Bool validViaBdd kns@(KnS _ lawbdd _) f = top == lawbdd `imp` bddOf kns f
+ src/SMCDEL/Translations/Convert.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}++module SMCDEL.Translations.Convert where++import qualified Data.Map.Strict as M++import SMCDEL.Language (agentsOf)+import SMCDEL.Internal.Help+import SMCDEL.Explicit.K+import SMCDEL.Explicit.S5+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.S5++class Convertable a b where+ convert :: a -> b++instance Convertable PointedModelS5 PointedModel where+ convert s5m@(KrMS5 worlds rels vals, cur) = (KrM m, cur) where+ m = M.fromList [ (w,(valFor w, relsFor w)) | w <- worlds ]+ valFor w = M.fromList (vals ! w)+ relsFor w = M.fromList [(i, concat $ filter (elem w) (rels ! i))+ | i <- agentsOf s5m ]++instance Convertable KnowScene BelScene where+ convert (KnS voc law obs, s) = (BlS voc law obsLaws, s) where+ obsLaws = M.fromList [ (i, allsamebdd ob) | (i,ob) <- obs ]
src/SMCDEL/Translations/K.hs view
@@ -1,40 +1,76 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, TypeOperators #-}+{-# LANGUAGE FlexibleInstances, TypeOperators #-} module SMCDEL.Translations.K where import Data.HasCacBDD hiding (Top,Bot)-import Data.Map.Strict (Map,fromList,(!))+import Data.List ((\\),elemIndex,nub,sort)+import Data.Map.Strict ((!))+import qualified Data.Map.Strict as M import SMCDEL.Language-import SMCDEL.Symbolic.S5 (State) import SMCDEL.Explicit.S5 (worldsOf)--import SMCDEL.Symbolic.K import SMCDEL.Explicit.K+import SMCDEL.Internal.Help (apply,powerset,groupSortWith)+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.S5 (boolBddOf) import SMCDEL.Translations.S5 (booloutof)-import SMCDEL.Internal.Help (apply)+import SMCDEL.Other.BDD2Form blsToKripke :: BelScene -> PointedModel blsToKripke (f@(BlS _ _ obdds), curs) = (m, cur) where links = zip (statesOf f) [0..]- m = KrM $ fromList- [ (w, ( fromList [(p, p `elem` s) | p <- vocabOf f]- , fromList [(a, map (apply links) $ reachFromFor s a) | a <- agentsOf f] ) )+ m = KrM $ M.fromList+ [ (w, ( M.fromList [(p, p `elem` s) | p <- vocabOf f]+ , M.fromList [(a, map (apply links) $ reachFromFor s a) | a <- agentsOf f] ) ) | (s,w) <- links ] reachFromFor s a = filter (\t -> tagBddEval (mv s ++ cp t) (obdds ! a)) (statesOf f) (Just cur) = lookup curs links kripkeToBls :: PointedModel -> BelScene-kripkeToBls (m, cur) = (BlS vocab lawbdd obdds, truthsInAt m cur) where+kripkeToBls pm@(m,_) | distinctVal m = kripkeToBlsUnsafe pm+ | otherwise = kripkeToBlsUnsafe (ensureDistinctVal pm)++kripkeToBlsUnsafe :: PointedModel -> BelScene+kripkeToBlsUnsafe (m, cur) = (BlS vocab lawbdd obdds, truthsInAt m cur) where vocab = vocabOf m lawbdd = disSet [ booloutof (truthsInAt m w) vocab | w <- worldsOf m ]- obdds :: Map Agent RelBDD- obdds = fromList [ (i, restrictLaw <$> relBddOfIn i m <*> (con <$> mvBdd lawbdd <*> cpBdd lawbdd)) | i <- agents ]+ obdds :: M.Map Agent RelBDD+ obdds = M.fromList [ (i, restrictLaw <$> relBddOfIn i m <*> (con <$> mvBdd lawbdd <*> cpBdd lawbdd)) | i <- agents ] agents = agentsOf m -exampleBelScn :: BelScene-exampleBelScn = kripkeToBls examplePointedModel+ensureDistinctVal :: PointedModel -> PointedModel+ensureDistinctVal (krm@(KrM m), cur) = if distinctVal krm then (krm,cur) else (KrM newM,cur) where+ sameVals = groupSortWith (truthsInAt krm) (worldsOf krm)+ indexOf w = let Just k = elemIndex w (head $ filter (elem w) sameVals) in k+ numAddProps = ceiling $ logBase (2::Double) (fromIntegral $ maximum (map length sameVals) + 1)+ addProps = take numAddProps [freshp (vocabOf krm) ..]+ addValForIndex k = M.fromList [ (p, p `elem` (reverse (powerset addProps) !! k) ) | p <- addProps ]+ newM = M.mapWithKey (\w (val,r) -> (M.union val (addValForIndex (indexOf w)),r)) m -exampleBelStruct :: BelStruct-exampleBelState :: State-(exampleBelStruct,exampleBelState) = exampleBelScn+actionToEvent :: PointedActionModel -> Event+actionToEvent (ActM am, faction) = (Trf addprops addlaw changelaw eventObs, efacts) where+ actions = M.keys am+ (P fstnewp) = freshp $ concatMap -- avoid props in pre and postconditions+ (\c -> propsInForms (pre c : M.elems (post c)) ++ M.keys (post c)) (M.elems am)+ addprops = [P fstnewp..P maxactprop] -- new props to distinguish all actions+ maxactprop = fstnewp + ceiling (logBase 2 (fromIntegral $ length actions) :: Float) - 1+ ell = apply $ zip actions (powerset addprops) -- injectively label actions with sets of propositions+ addlaw = simplify $ Disj [ Conj [ booloutofForm (ell a) addprops, pre $ am ! a ] | a <- actions ]+ changeprops = sort $ nub $ concatMap M.keys . M.elems $ M.map post am -- propositions to be changed+ changelaw = M.fromList [ (p, changeFor p) | p <- changeprops ] -- encode postconditions+ changeFor p = disSet [ booloutof (ell k) addprops `con` boolBddOf (safepost (am ! k) p) | k <- actions ]+ eventObs = M.fromList [ (i, obsLawFor i) | i <- agentsOf (ActM am) ]+ obsLawFor i = pure $ disSet (M.elems $ M.mapWithKey (link i) am)+ link i k ch = booloutof (mv $ ell k) (mv addprops) `con` -- encode relations+ disSet [ booloutof (cp $ ell there) (cp addprops) | there <- rel ch ! i ]+ efacts = ell faction++eventToAction :: Event -> PointedActionModel+eventToAction (t@(Trf addprops addlaw changelaw eventObs), efacts) = (ActM am, faction) where+ actlist = zip (powerset addprops) [0..]+ am = M.fromList [ (a, Act (preFor ps) (postFor ps) (relFor ps)) | (ps,a) <- actlist, preFor ps /= Bot ]+ preFor ps = simplify $ substitSet (zip ps (repeat Top) ++ zip (addprops \\ ps) (repeat Bot)) addlaw+ postFor ps = M.fromList [ (q, formOf $ (changelaw ! q) `restrictSet` [(p, P p `elem` ps) | (P p) <- addprops]) | q <- M.keys changelaw ]+ relFor ps = M.fromList [(i,rFor i) | i <- agentsOf t] where+ rFor i = concatMap (\(qs,b) -> [ b | tagBddEval (mv ps ++ cp qs) (eventObs ! i), preFor qs /= Bot ]) actlist+ faction = apply actlist efacts
− src/SMCDEL/Translations/K/Change.hs
@@ -1,48 +0,0 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}--module SMCDEL.Translations.K.Change where--import Data.HasCacBDD hiding (Top,Bot)-import Data.List ((\\),nub,sort)-import qualified Data.Map.Strict as M-import Data.Map.Strict ((!),fromList)--import SMCDEL.Explicit.K.Change-import SMCDEL.Internal.Help (apply,powerset)-import SMCDEL.Language-import SMCDEL.Translations.S5 (booloutof)-import SMCDEL.Other.BDD2Form-import SMCDEL.Symbolic.K-import SMCDEL.Symbolic.K.Change-import SMCDEL.Symbolic.S5 (boolBddOf)--actionToEvent :: PointedChangeModel -> Event-actionToEvent (ChM chm, faction) = (Trf addprops addlaw changeprops changelaw eventObs, efacts) where- actions = M.keys chm- (P fstnewp) = freshp $ concatMap -- avoid props in pre and postconditions- (\c -> propsInForms (pre c : M.elems (post c)) ++ M.keys (post c)) (M.elems chm)- addprops = [P fstnewp..P maxactprop] -- new props to distinguish all actions- maxactprop = fstnewp + ceiling (logBase 2 (fromIntegral $ length actions) :: Float) - 1- ell = apply $ zip actions (powerset addprops) -- injectively label actions with sets of propositions- addlaw = simplify $ Disj [ Conj [ booloutofForm (ell a) addprops, pre $ chm ! a ] | a <- actions ]- changeprops = sort $ nub $ concatMap M.keys . M.elems $ M.map post chm -- propositions to be changed- changelaw = M.fromList [ (p, changeFor p) | p <- changeprops ] -- encode postconditions- changeFor p = disSet [ booloutof (ell k) addprops `con` boolBddOf (safepost (chm ! k) p) | k <- actions ]- eventObs = M.fromList [ (i, obsLawFor i) | i <- agentsOf (ChM chm) ]- obsLawFor i = pure $ disSet (M.elems $ M.mapWithKey (link i) chm)- link i k ch = booloutof (mv $ ell k) (mv addprops) `con` -- encode relations- disSet [ booloutof (cp $ ell there) (cp addprops) | there <- rel ch ! i ]- efacts = ell faction--eventToAction' :: Event -> PointedChangeModel-eventToAction' (t@(Trf addprops addlaw changeprops changelaw eventObs), efacts) = (ChM chm, faction) where- actlist = zip (powerset addprops) [0..]- chm = fromList [ (a, Ch (preFor ps) (postFor ps) (relFor ps)) | (ps,a) <- actlist ]- preFor ps = simplify $- substitSet (zip ps (repeat Top) ++ zip (addprops \\ ps) (repeat Bot)) addlaw- postFor ps = fromList- [ (q, formOf $ restrictSet (changelaw ! q) [(p, P p `elem` ps) | (P p) <- addprops]) | q <- changeprops ]- relFor ps = fromList [(i,rFor i) | i <- agentsOf t] where- rFor i = concatMap (\(qs,b) -> [ b | tagBddEval (mv ps ++ cp qs) (eventObs ! i) ]) actlist- faction = apply actlist efacts-
src/SMCDEL/Translations/S5.hs view
@@ -1,14 +1,15 @@ module SMCDEL.Translations.S5 where import Control.Arrow (second)+import Data.HasCacBDD hiding (Top,Bot) import Data.List (groupBy,sort,(\\),elemIndex,intersect,nub) import Data.Maybe (listToMaybe)+ import SMCDEL.Language import SMCDEL.Symbolic.S5 import SMCDEL.Explicit.S5 import SMCDEL.Internal.Help (anydiffWith,alldiff,alleqWith,apply,powerset,(!),seteq,subseteq)--import Data.HasCacBDD hiding (Top,Bot)+import SMCDEL.Other.BDD2Form type StateMap = World -> State @@ -40,21 +41,24 @@ knsToKripke = fst . knsToKripkeWithG knsToKripkeWithG :: KnowScene -> (PointedModelS5, StateMap)-knsToKripkeWithG (kns@(KnS ps _ obs),curs) =- if curs `elem` statesOf kns- then ((KrMS5 worlds rel val, cur) , g)- else error "knsToKripke failed: Invalid state."- where+knsToKripkeWithG (kns@(KnS ps _ obs),currentState) =+ ((KrMS5 worlds rel val, cur), g) where+ g w = statesOf kns !! w lav = zip (statesOf kns) [0..(length (statesOf kns)-1)] val = map ( \(s,n) -> (n,state2kripkeass s) ) lav where state2kripkeass s = map (\p -> (p, p `elem` s)) ps rel = [(i,rfor i) | i <- map fst obs] rfor i = map (map snd) (groupBy ( \ (x,_) (y,_) -> x==y ) (sort pairs)) where- pairs = map (\s -> (restrictState s (obs ! i), lav ! s)) (statesOf kns)+ pairs = map (\s -> (s `intersect` (obs ! i), lav ! s)) (statesOf kns) worlds = map snd lav- cur = lav ! curs- g w = statesOf kns !! w+ cur | currentState `elem` statesOf kns = lav ! currentState+ | otherwise = error "knsToKripke failed: Invalid state." +knsToKripkeMulti :: MultipointedKnowScene -> MultipointedModelS5+knsToKripkeMulti (kns,statesBdd) = (m, ws) where+ ((m,_),g) = knsToKripkeWithG (kns,undefined) -- FIXME uh oh+ ws = filter (\w -> evaluateFun statesBdd (\k -> P k `elem` g w)) (worldsOf m)+ kripkeToKns :: PointedModelS5 -> KnowScene kripkeToKns = fst . kripkeToKnsWithG @@ -68,7 +72,7 @@ newps i = map (\k -> P (newpstart + (newpstep * inum) +k)) [0..(amount i - 1)] -- O_i where (Just inum) = elemIndex i (map fst rel) copyrel i = zip (rel ! i) (powerset (newps i)) -- label equiv.classes with P(O_i)- gag i w = snd $ head $ filter (\(ws,_) -> elem w ws) (copyrel i)+ gag i w = snd $ head $ filter (\(ws,_) -> w `elem` ws) (copyrel i) g w = filter (apply (val ! w)) v ++ concat [ gag i w | i <- ags ] ps = v ++ concat [ newps i | i <- ags ] law = disSet [ booloutof (g w) ps | w <- worlds ]@@ -123,17 +127,18 @@ obsOf = fst.obsnobs m curs = map fst $ filter snd $ apply val cur -actionToEvent :: PointedActionModel -> Event-actionToEvent (ActM actions precon actrel, faction) = (KnT eprops elaw eobs, efacts) where+actionToEvent :: PointedActionModelS5 -> Event+actionToEvent (ActMS5 acts actrel, faction) = (KnTrf addprops addlaw changelaw addobs, efacts) where+ actions = map fst acts ags = map fst actrel- eprops = actionprops ++ actrelprops- (P fstnewp) = freshp $ propsInForms (map snd precon)+ addprops = actionprops ++ actrelprops+ (P fstnewp) = freshp . propsInForms $ concat [ pre : map snd posts | (_,(pre,posts)) <- acts] -- avoid props in pre- and postconditions actionprops = [P fstnewp..P maxactprop] -- new props to distinguish all actions maxactprop = fstnewp + ceiling (logBase 2 (fromIntegral $ length actions) :: Float) -1- copyactprops = zip actions (powerset actionprops)- ell = apply copyactprops -- label actions with subsets of actionprops+ actpropsRel = zip actions (powerset actionprops)+ ell = apply actpropsRel -- label actions with subsets of actionprops happens a = booloutofForm (ell a) actionprops -- boolean formula to say that a happens- actform = Disj [ Conj [ happens a, apply precon a ] | a <- actions ] -- connect new propositions to preconditions+ actform = Disj [ Conj [ happens a, pre ] | (a,(pre,_)) <- acts ] -- connect new propositions to preconditions actrelprops = concat [ newps i | i <- ags ] -- new props to distinguish actions for i actrelpstart = maxactprop + 1 newps i = map (\k -> P (actrelpstart + (newpstep * inum) +k)) [0..(amount i - 1)]@@ -143,26 +148,29 @@ copyactrel i = zip (apply actrel i) (powerset (newps i)) -- label equclasses-of-actions with subsets-of-newps actrelfs i = [ Equi (booloutofForm (apply (copyactrel i) as) (newps i)) (Disj (map happens as)) | as <- apply actrel i ] actrelforms = concatMap actrelfs ags- factsFor i = snd $ head $ filter (\(as,_) -> elem faction as) (copyactrel i)- efacts = apply copyactprops faction ++ concatMap factsFor ags- elaw = simplify $ Conj (actform : actrelforms)- eobs = [ (i,newps i) | i<- ags ]+ factsFor i = snd $ head $ filter (\(as,_) -> faction `elem` as) (copyactrel i)+ efacts = ell faction ++ concatMap factsFor ags+ addlaw = simplify $ Conj (actform : actrelforms)+ changeprops = sort $ nub $ concatMap (\(_,(_,posts)) -> map fst posts) acts -- propositions to be changed+ changelaw = [ (p, changeFor p) | p <- changeprops ] -- encode postconditions+ changeFor p = disSet [ boolBddOf $ Conj [ happens a, safepost posts p ] | (a,(_,posts)) <- acts ]+ addobs = [ (i,newps i) | i<- ags ] -eventToAction' :: Event -> PointedActionModel-eventToAction' (KnT eprops eform eobs, efacts) = (ActM actions precon actrel, faction) where- actions = [0..(2 ^ length eprops - 1)]- actlist = zip (powerset eprops) actions- precon = [ (a, simplify $ preFor ps) | (ps,a) <- actlist ] where- preFor ps = substitSet (zip ps (repeat Top) ++ zip (eprops\\ps) (repeat Bot)) eform- actrel = [(i,rFor i) | i <- map fst eobs] where+eventToAction' :: Event -> PointedActionModelS5+eventToAction' event@(KnTrf addprops addlaw changelaw addobs, efacts) = (ActMS5 acts actrel, faction) where+ actlist = zip (powerset addprops) [0..(2 ^ length addprops - 1)]+ acts = [ (a, (simplify $ preFor ps, postsFor ps)) | (ps,a) <- actlist ] where+ preFor ps = substitSet (zip ps (repeat Top) ++ zip (addprops\\ps) (repeat Bot)) addlaw+ postsFor ps =+ [ (q, formOf $ restrictSet (changelaw ! q) [(p, P p `elem` ps) | (P p) <- addprops]) | q <- map fst changelaw ]+ actrel = [(i,rFor i) | i <- agentsOf event] where rFor i = map (map snd) (groupBy ( \ (x,_) (y,_) -> x==y ) (pairs i))- pairs i = sort $ map (\(set,a) -> (restrictState set $ apply eobs i,a)) actlist+ pairs i = sort $ map (\(set,a) -> (intersect set $ addobs ! i,a)) actlist faction = apply actlist efacts -eventToAction :: Event -> PointedActionModel-eventToAction (KnT eprops eform eobs, efacts) = (ActM actions precon actrel, faction) where- (ActM _ precon' actrel', faction) = eventToAction' (KnT eprops eform eobs, efacts)- precon = filter (\(_,f) -> f/=Bot) precon' -- remove actions w/ contradictory precon- actions = map fst precon- actrel = map (second fltr) actrel'- fltr r = filter ([]/=) $ map (filter (`elem` actions)) r+eventToAction :: Event -> PointedActionModelS5+eventToAction e = (ActMS5 acts actrel, faction) where+ (ActMS5 acts' actrel', faction) = eventToAction' e+ acts = filter (\(_,(pre,_)) -> pre /= Bot) acts' -- remove actions w/ contradictory precon+ actrel = map (second restrictRel) actrel' where+ restrictRel r = filter ([]/=) $ map (filter (`elem` map fst acts)) r
stack.yaml view
@@ -1,12 +1,9 @@-resolver: lts-10.5+resolver: lts-14.16 packages: - '.'-- location:- git: https://github.com/m4lvin/cudd.git- commit: cc794dd2c7d9f6b6cc9560226a4fb9cbe5c4454c- extra-dep: true-- location:- git: https://github.com/m4lvin/HasCacBDD.git- commit: 23405da09876356569fbbb4f150e33199e5546f9- extra-dep: true++extra-deps:+- git: https://github.com/m4lvin/cudd.git+ commit: 32f7d6b764a80bbf8f84c07e2c1d691469aaaba0+- HasCacBDD-0.1.0.2
+ static/ace.js view
@@ -0,0 +1,17 @@+(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),ace.define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=" \n\x0b\f\r \u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim"),typeof Element!="undefined"&&!Element.prototype.remove&&Object.defineProperty(Element.prototype,"remove",{enumerable:!1,writable:!0,configurable:!0,value:function(){this.parentNode&&this.parentNode.removeChild(this)}})}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var r=typeof navigator=="object"?navigator:{},i=(/mac|win|linux/i.exec(r.platform)||["other"])[0].toLowerCase(),s=r.userAgent||"",o=r.appName||"";t.isWin=i=="win",t.isMac=i=="mac",t.isLinux=i=="linux",t.isIE=o=="Microsoft Internet Explorer"||o.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function o(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s<e.length;s++){var u=o(e[s],t,n);u&&i.push(u)}return i}var a=document.createElement(e[0]),f=e[1],l=1;f&&typeof f=="object"&&!Array.isArray(f)&&(l=2);for(var s=l;s<e.length;s++)o(e[s],a,n);return l==2&&Object.keys(f).forEach(function(e){var t=f[e];e==="class"?a.className=Array.isArray(t)?t.join(" "):t:typeof t=="function"||e=="value"?a[e]=t:e==="ref"?n&&(n[t]=a):t!=null&&a.setAttribute(e,t)}),t&&t.appendChild(a),a},t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||i,e):document.createElement(e)},t.removeChildren=function(e){e.innerHTML=""},t.createTextNode=function(e,t){var n=t?t.ownerDocument:document;return n.createTextNode(e)},t.createFragment=function(e){var t=e?e.ownerDocument:document;return t.createDocumentFragment()},t.hasCssClass=function(e,t){var n=(e.className+"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(r=t.querySelectorAll("style"))while(n<r.length)if(r[n++].id===e)return!0},t.importCssString=function(n,r,i){var s=i;if(!i||!i.getRootNode)s=document;else{s=i.getRootNode();if(!s||s==i)s=document}var o=s.ownerDocument||s;if(r&&t.hasCssString(r,s))return null;r&&(n+="\n/*# sourceURL=ace/css/"+r+" */");var u=t.createElement("style");u.appendChild(o.createTextNode(n)),r&&(u.id=r),s==o&&(s=t.getDocumentHead(o)),s.insertBefore(u,s.firstChild)},t.importCssStylsheet=function(e,n){t.buildDom(["link",{rel:"stylesheet",href:e}],t.getDocumentHead(n))},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u},typeof document=="undefined"&&(t.importCssString=function(){}),t.computedStyle=function(e,t){return window.getComputedStyle(e,"")||{}},t.setStyle=function(e,t,n){e[t]!==n&&(e[t]=n)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=r.isWin?typeof window!="undefined"&&window.devicePixelRatio>=1.5:!0;if(typeof document!="undefined"){var s=document.createElement("div");t.HI_DPI&&s.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof s.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),s=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1);if(!a&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return a(n,e,o)})}else{var u=null;r(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(f(),r(window,"focus",f))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+l++,i=function(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())};t.addListener(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return(""+e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),ace.define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";var r;n.exports={lineMode:!1,pasteCancelled:function(){return r&&r>Date.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=e("../clipboard"),a=i.isChrome<18,f=i.isIE,l=i.isChrome>63,c=400,h=e("../lib/keys"),p=h.KEY_MODS,d=i.isIOS,v=d?/\s/:/\n/,m=function(e,t){function W(){S=!0,n.blur(),n.focus(),S=!1}function V(e){e.keyCode==27&&n.value.length<n.selectionStart&&(y||(x=n.value),T=N=-1,A()),X()}function J(){clearTimeout($),$=setTimeout(function(){w&&(n.style.cssText=w,w=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()},0)}function Q(e,t,n){var r=null,i=!1;n.addEventListener("keydown",function(e){r&&clearTimeout(r),i=!0},!0),n.addEventListener("keyup",function(e){r=setTimeout(function(){i=!1},100)},!0);var s=function(e){if(document.activeElement!==n)return;if(i||y||t.$mouseHandler.isMousePressed)return;if(m)return;var r=n.selectionStart,s=n.selectionEnd,o=null,u=0;if(r==0)o=h.up;else if(r==1)o=h.home;else if(s>N&&x[s]=="\n")o=h.end;else if(r<T&&x[r-1]==" ")o=h.left,u=p.option;else if(r<T||r==T&&N!=T&&r==s)o=h.left;else if(s>N&&x.slice(0,s).split("\n").length>2)o=h.down;else if(s>N&&x[s-1]==" ")o=h.right,u=p.option;else if(s>N||s==N&&N!=T&&r==s)o=h.right;r!==s&&(u|=p.shift);if(o){var a=t.onCommandKey({},u,o);if(!a&&t.commands){o=h.keyCodeToString(o);var f=t.commands.findKeyCommand(u,o);f&&t.execCommand(f)}T=r,N=s,A("")}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var m=!1,g=!1,y=!1,b=!1,w="";i.isMobile||(n.style.fontSize="1px");var E=!1,S=!1,x="",T=0,N=0,C=0;try{var k=document.activeElement===n}catch(L){}r.addListener(n,"blur",function(e){if(S)return;t.onBlur(e),k=!1}),r.addListener(n,"focus",function(e){if(S)return;k=!0;if(i.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),i.isEdge?setTimeout(A):A()}),this.$focusScroll=!1,this.focus=function(){if(w||l||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var t=n.getBoundingClientRect().top!=0}catch(r){return}var i=[];if(t){var s=n.parentElement;while(s&&s.nodeType==1)i.push(s),s.setAttribute("ace_nocontext",!0),!s.parentElement&&s.getRootNode?s=s.getRootNode().host:s=s.parentElement}n.focus({preventScroll:!0}),t&&i.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return k},t.on("beforeEndOperation",function(){if(t.curOp&&t.curOp.command.name=="insertstring")return;y&&(x=n.value="",z()),A()});var A=d?function(e){if(!k||m&&!e||b)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=x=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(T!=i||N!=s)&&n.setSelectionRange(i,s),T=i,N=s}:function(){if(y||b)return;if(!k&&!D)return;y=!0;var e=t.selection,r=e.getRange(),i=e.cursor.row,s=r.start.column,o=r.end.column,u=t.session.getLine(i);if(r.start.row!=i){var a=t.session.getLine(i-1);s=r.start.row<i-1?0:s,o+=a.length+1,u=a+"\n"+u}else if(r.end.row!=i){var f=t.session.getLine(i+1);o=r.end.row>i+1?f.length:o,o+=u.length+1,u=u+"\n"+f}u.length>c&&(s<c&&o<c?u=u.slice(0,c):(u="\n",s=0,o=1));var l=u+"\n\n";l!=x&&(n.value=x=l,T=N=l.length),D&&(T=n.selectionStart,N=n.selectionEnd);if(N!=o||T!=s||n.selectionEnd!=N)try{n.setSelectionRange(s,o),T=s,N=o}catch(h){}y=!1};k&&t.onFocus();var O=function(e){return e.selectionStart===0&&e.selectionEnd>=x.length&&e.value===x&&x&&e.selectionEnd!==N},M=function(e){if(y)return;m?m=!1:O(n)&&(t.selectAll(),A())},_=null;this.setInputHandler=function(e){_=e},this.getInputHandler=function(){return _};var D=!1,P=function(e,r){D&&(D=!1);if(g)return A(),e&&t.onPaste(e),g=!1,"";var i=n.selectionStart,s=n.selectionEnd,o=T,u=x.length-N,a=e,f=e.length-i,l=e.length-s,c=0;while(o>0&&x[c]==e[c])c++,o--;a=a.slice(c),c=1;while(u>0&&x.length-c>T-1&&x[x.length-c]==e[e.length-c])c++,u--;f-=c-1,l-=c-1;var h=a.length-c+1;return h<0&&(o=-h,h=0),a=a.slice(0,h),!r&&!a&&!f&&!o&&!u&&!l?"":(b=!0,a&&!o&&!u&&!f&&!l||E?t.onTextInput(a):t.onTextInput(a,{extendLeft:o,extendRight:u,restoreStart:f,restoreEnd:l}),b=!1,x=e,T=i,N=s,C=l,a)},H=function(e){if(y)return U();if(e&&e.inputType){if(e.inputType=="historyUndo")return t.execCommand("undo");if(e.inputType=="historyRedo")return t.execCommand("redo")}var r=n.value,i=P(r,!0);(r.length>c+100||v.test(i))&&A()},B=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||a)return;var i=f||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return B(e,t,!0)}},j=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);B(e,s)?(d&&(A(s),m=s,setTimeout(function(){m=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(m=!0,n.value=s,n.select(),setTimeout(function(){m=!1,A(),i?t.onCut():t.onCopy()}))},F=function(e){j(e,!0)},I=function(e){j(e,!1)},q=function(e){var s=B(e);if(u.pasteCancelled())return;typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(A),r.preventDefault(e)):(n.value="",g=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",M),r.addListener(n,"input",H),r.addListener(n,"cut",F),r.addListener(n,"copy",I),r.addListener(n,"paste",q),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:I(e);break;case 86:q(e);break;case 88:F(e)}});var R=function(e){if(y||!t.onCompositionStart||t.$readOnly)return;y={};if(E)return;setTimeout(U,0),t.on("mousedown",W);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,y.markerRange=r,y.selectionStart=T,t.onCompositionStart(y),y.useTextareaForIME?(n.value="",x="",T=0,N=0):(n.msGetInputContext&&(y.context=n.msGetInputContext()),n.getInputContext&&(y.context=n.getInputContext()))},U=function(){if(!y||!t.onCompositionUpdate||t.$readOnly)return;if(E)return W();if(y.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;P(e),y.markerRange&&(y.context&&(y.markerRange.start.column=y.selectionStart=y.context.compositionStartOffset),y.markerRange.end.column=y.markerRange.start.column+N-y.selectionStart+C)}},z=function(e){if(!t.onCompositionEnd||t.$readOnly)return;y=!1,t.onCompositionEnd(),t.off("mousedown",W),e&&H()},X=o.delayedCall(U,50).schedule.bind(null,null);r.addListener(n,"compositionstart",R),r.addListener(n,"compositionupdate",U),r.addListener(n,"keyup",V),r.addListener(n,"keydown",X),r.addListener(n,"compositionend",z),this.getElement=function(){return n},this.setCommandMode=function(e){E=e,n.readOnly=!1},this.setReadOnly=function(e){E||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){},this.onContextMenu=function(e){D=!0,A(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){w||(w=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+(i.isIE?"opacity:0.1;":"")+"text-indent: -"+(T+N)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){s.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout($),i.isWin&&r.capture(t.container,h,J)},this.onContextMenuClose=J;var $,K=function(e){t.textInput.onContextMenu(e),J()};r.addListener(n,"mouseup",K),r.addListener(n,"mousedown",function(e){e.preventDefault(),J()}),r.addListener(t.renderer.scroller,"contextmenu",K),r.addListener(n,"contextmenu",K),d&&Q(e,t,n)};t.TextInput=m}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function o(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select")},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i<s&&(o=(o+n.vx)/2,u=(u+n.vy)/2);var a=Math.abs(o/u),f=!1;a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowed<s){var l=Math.abs(o)<=1.5*Math.abs(n.vx)&&Math.abs(u)<=1.5*Math.abs(n.vy);l?(f=!0,n.allowed=r):n.allowed=0}n.t=r,n.vx=o,n.vy=u;if(f)return t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(o.prototype),t.DefaultHandlers=o}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){this.getElement().textContent=e},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(s.prototype),t.Tooltip=s}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.moveCursorToPosition(e),S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/dom");t.addTouchListeners=function(e,t){function y(){var e=window.navigator&&window.navigator.clipboard,r=!1,s=function(){var n=t.getCopyText(),s=t.session.getUndoManager().hasUndo();g.replaceChild(i.buildDom(r?["span",!n&&["span",{"class":"ace_mobile-button",action:"selectall"},"Select All"],n&&["span",{"class":"ace_mobile-button",action:"copy"},"Copy"],n&&["span",{"class":"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{"class":"ace_mobile-button",action:"paste"},"Paste"],s&&["span",{"class":"ace_mobile-button",action:"undo"},"Undo"],["span",{"class":"ace_mobile-button",action:"find"},"Find"],["span",{"class":"ace_mobile-button",action:"openCommandPallete"},"Pallete"]]:["span"]),g.firstChild)},o=function(n){var i=n.target.getAttribute("action");if(i=="more"||!r)return r=!r,s();if(i=="paste")e.readText().then(function(e){t.execCommand(i,e)});else if(i){if(i=="cut"||i=="copy")e?e.writeText(t.getCopyText()):document.execCommand("copy");t.execCommand(i)}g.firstChild.style.display="none",r=!1,i!="openCommandPallete"&&t.focus()};g=i.buildDom(["div",{"class":"ace_mobile-menu",ontouchstart:function(e){n="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{"class":"ace_mobile-button",action:"more"},"..."]],t.container)}function b(){g||y();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.container.getBoundingClientRect();g.style.top=n.pageY-r.top-3+"px",g.style.right="10px",g.style.display="",g.firstChild.style.display="none",t.on("input",w)}function w(e){g&&(g.style.display="none"),t.off("input",w)}function E(){f=null,clearTimeout(f);var e=t.selection.getRange(),r=e.contains(h.row,h.column);if(e.isEmpty()||!r)t.selection.moveToPosition(h),t.selection.selectWord();n="wait",b()}function S(){f=null,clearTimeout(f),t.selection.moveToPosition(h);var e=p>=2?t.selection.getLineRange(h.row):t.session.getBracketRange(h);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function x(){c+=60,l=setInterval(function(){c--<=0&&(clearInterval(l),l=null),Math.abs(d)<.01&&(d=0),Math.abs(v)<.01&&(v=0),c<20&&(d=.9*d),c<20&&(v=.9*v);var e=t.session.getScrollTop();t.renderer.scrollBy(10*d,10*v),e==t.session.getScrollTop()&&(c=0)},10)}var n="scroll",s,o,u,a,f,l,c=0,h,p=0,d=0,v=0,m,g;e.addEventListener("contextmenu",function(e){if(!m)return;var n=t.textInput.getElement();n.focus()}),e.addEventListener("touchstart",function(e){var i=e.touches;if(f||i.length>1){clearTimeout(f),f=null,u=-1,n="zoom";return}m=t.$mouseHandler.isMousePressed=!0;var l=t.renderer.layerConfig.lineHeight,g=t.renderer.layerConfig.lineHeight,y=e.timeStamp;a=y;var b=i[0],w=b.clientX,x=b.clientY;Math.abs(s-w)+Math.abs(o-x)>l&&(u=-1),s=e.clientX=w,o=e.clientY=x,d=v=0;var T=new r(e,t);h=T.getDocumentPosition();if(y-u<500&&i.length==1&&!c)p++,e.preventDefault(),e.button=0,S();else{p=0;var N=t.selection.cursor,C=t.selection.isEmpty()?N:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(N,!0),L=t.renderer.$cursorLayer.getPixelPosition(C,!0),A=t.renderer.scroller.getBoundingClientRect(),O=function(e,t){return e/=g,t=t/l-.75,e*e+t*t};if(e.clientX<A.left){n="zoom";return}var M=O(e.clientX-A.left-k.left,e.clientY-A.top-k.top),_=O(e.clientX-A.left-L.left,e.clientY-A.top-L.top);M<3.5&&_<3.5&&(n=M>_?"cursor":"anchor"),_<3.5?n="anchor":M<3.5?n="cursor":n="scroll",f=setTimeout(E,450)}u=y}),e.addEventListener("touchend",function(e){m=t.$mouseHandler.isMousePressed=!1,l&&clearInterval(l),n=="zoom"?(n="",c=0):f?(t.selection.moveToPosition(h),c=0,b()):n=="scroll"?(x(),e.preventDefault(),w()):b(),clearTimeout(f),f=null}),e.addEventListener("touchmove",function(e){f&&(clearTimeout(f),f=null);var i=e.touches;if(i.length>1||n=="zoom")return;var u=i[0],l=s-u.clientX,c=o-u.clientY;if(n=="wait"){if(!(l*l+c*c>4))return e.preventDefault();n="cursor"}s=u.clientX,o=u.clientY,e.clientX=u.clientX,e.clientY=u.clientY;var h=e.timeStamp,p=h-a;a=h;if(n=="scroll"){var m=new r(e,t);m.speed=1,m.wheelX=l,m.wheelY=c,10*Math.abs(l)<Math.abs(c)&&(l=0),10*Math.abs(c)<Math.abs(l)&&(c=0),p!=0&&(d=l/p,v=c/p),t._emit("mousewheel",m),m.propagationStopped||(d=v=0)}else{var g=new r(e,t),y=g.getDocumentPosition();n=="cursor"?t.selection.moveCursorToPosition(y):n=="anchor"&&t.selection.setSelectionAnchor(y.row,y.column),t.renderer.scrollCursorIntoView(y),e.preventDefault()}})}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)});if(!t)return new Promise(function(e){t=e})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t)r&&this.setDefaultHandler(e,r.pop());else if(r){var i=r.indexOf(t);i!=-1&&r.splice(i,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};if(!e){var n=this.$options;e=Object.keys(n).filter(function(e){return!n[e].hidden})}else Array.isArray(e)||(t=e,e=Object.keys(t));return e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){if(!e){for(e in this.$defaultOptions)if(this.$defaultOptions[e][t])break;if(!this.$defaultOptions[e][t])return!1}var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function l(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,l=f.getElementsByTagName("script");for(var h=0;h<l.length;h++){var p=l[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[c(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function c(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!="undefined"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(a.hasOwnProperty(e))a[e]=t;else if(this.setDefaultValue("",e,t)==0)throw new Error("Unknown config key: "+e)},t.all=function(){return r.copyObject(a)},t.$modes={},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a),f()};var f=function(){!a.basePath&&!a.workerPath&&!a.modePath&&!a.themePath&&!Object.keys(a.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),f=function(){})};t.init=l,t.version="1.4.7"}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/mouse/touch_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("./touch_handler").addTouchListeners,l=e("../config"),c=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),f(e.container,e);var l=e.renderer.$gutter;r.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(l,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor,s=this.editor.renderer;s.$isMousePressed=!0;var o=this,a=function(e){if(!e)return;if(i.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new u(e,o.editor),o.$mouseMoved=!0},f=function(e){n.off("beforeEndOperation",c),clearInterval(h),l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",o.isMousePressed=s.$isMousePressed=!1,s.$keepTextAreaAtCursor&&s.$moveTextAreaToCursor(),o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e),n.endOperation()},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){f(e)});var c=function(e){if(!o.releaseMouse)return;n.curOp.command.name&&n.curOp.selectionChanged&&(o[o.state+"End"]&&o[o.state+"End"](),o.state="",o.releaseMouse())};n.on("beforeEndOperation",c),n.startOperation({command:{name:"mouse"}}),o.$onCaptureMouseMove=a,o.releaseMouse=r.capture(this.editor.container,a,f);var h=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(c.prototype),l.defineOptions(c.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=c}),ace.define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";function i(e){e.on("click",function(t){var n=t.getDocumentPosition(),i=e.session,s=i.getFoldAt(n.row,n.column,1);s&&(t.getAccelKey()?i.removeFold(s):i.expandFold(s),t.stop());var o=t.domEvent&&t.domEvent.target;o&&r.hasCssClass(o,"ace_inline_button")&&r.hasCssClass(o,"ace_toggle_wrap")&&(i.setOption("wrap",!i.getUseWrapMode()),e.renderer.scrollCursorIntoView())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}var r=e("../lib/dom");t.FoldHandler=i}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);return this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){return this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,n){"use strict";function F(e,t,n,r){var i=s?d:p,c=null,h=null,v=null,m=0,g=null,y=null,b=-1,w=null,E=null,T=[];if(!r)for(w=0,r=[];w<n;w++)r[w]=R(e[w]);o=s,u=!1,a=!1,f=!1,l=!1;for(E=0;E<n;E++){c=m,T[E]=h=q(e,r,T,E),m=i[c][h],g=m&240,m&=15,t[E]=v=i[m][5];if(g>0)if(g==16){for(w=b;w<E;w++)t[w]=1;b=-1}else b=-1;y=i[m][6];if(y)b==-1&&(b=E);else if(b>-1){for(w=b;w<E;w++)t[w]=v;b=-1}r[E]==S&&(t[E]=0),o|=v}if(l)for(w=0;w<n;w++)if(r[w]==x){t[w]=s;for(var C=w-1;C>=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o<e)return;if(e==1&&s==m&&!f){n.reverse();return}var r=n.length,i=0,u,a,l,c;while(i<r){if(t[i]>=e){u=i+1;while(u<r&&t[u]>=e)u++;for(a=i,l=u-1;a<l;a++,l--)c=n[a],n[a]=n[l],n[l]=c;i=u}i++}}function q(e,t,n,r){var i=t[r],o,c,h,p;switch(i){case g:case y:u=!1;case E:case w:return i;case b:return u?w:b;case T:return u=!0,a=!0,y;case N:return E;case C:if(r<1||r+1>=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+1<t.length&&t[r+1]==b)return b;return E;case L:if(r>0&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p<h&&t[p]==L)p++;if(p<h&&t[p]==b)return b;return E;case A:h=t.length,p=r+1;while(p<h&&t[p]==A)p++;if(p<h){var d=e[r],v=d>=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;f<o.length;o[f]=f,f++);I(2,a,o),I(1,a,o);for(var f=0;f<o.length-1;f++)n[f]===w?a[f]=t.AN:a[f]===y&&(n[f]>T&&n[f]<O||n[f]===E||n[f]===H)?a[f]=t.ON_R:f>0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f<o.length;f++)u[f]=a[o[f]];return{logicalFromVisual:o,bidiLevels:u}},t.hasBidiCharacters=function(e,t){var n=!1;for(var r=0;r<e.length;r++)t[r]=R(e.charAt(r)),!n&&(t[r]==y||t[r]==T||t[r]==w)&&(n=!0);return n},t.getVisualFromLogicalIdx=function(e,t){for(var n=0;n<t.logicalFromVisual.length;n++)if(t.logicalFromVisual[n]==e)return n;return 0}}),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(e,t,n){"use strict";var r=e("./lib/bidiutil"),i=e("./lib/lang"),s=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,o=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=r,this.charWidths=[],this.EOL="\u00ac",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="\u00b6",this.RLE="\u202b",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=s.test(e.getValue())};(function(){this.isBidiRow=function(e,t,n){return this.seenBidi?(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,n),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(e){this.seenBidi?this.currentRow=null:e.action=="insert"&&s.test(e.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n=this.session.$getRowCacheIndex(t,this.currentRow);n>=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},this.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=t<o.length?this.line.substring(o[t-1],o[t]):this.line.substring(o[o.length-1])):this.line=this.line.substring(0,o[t])),t==o.length&&(this.line+=this.showInvisibles?s:r.DOT)}else this.line+=this.showInvisibles?s:r.DOT;var u=this.session,a=0,f;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(e,t){return e===" "||u.isFullWidth(e.charCodeAt(0))?(f=e===" "?u.getScreenTabSize(t+a):2,a+=f-1,i.stringRepeat(r.DOT,f)):e}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==r.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},this.updateBidiMap=function(){var e=[];r.hasBidiCharacters(this.line,e)||this.isRtlDir?this.bidiMap=r.doBidiReorder(this.line,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(this.characterWidth===e.$characterSize.width)return;this.fontMetrics=e;var t=this.characterWidth=e.$characterSize.width,n=e.$measureCharWidth("\u05d4");this.charWidths[r.L]=this.charWidths[r.EN]=this.charWidths[r.ON_R]=t,this.charWidths[r.R]=this.charWidths[r.AN]=n,this.charWidths[r.R_H]=n*.45,this.charWidths[r.B]=this.charWidths[r.RLE]=0,this.currentRow=null},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setContentWidth=function(e){this.contentWidth=e},this.isRtlLine=function(e){return this.$isRtl?!0:e!=undefined?this.session.getLine(e).charAt(0)==this.RLE:this.isRtlDir},this.setRtlDirection=function(e,t){var n=e.getCursorPosition();for(var r=e.selection.getSelectionAnchor().row;r<=n.row;r++)!t&&e.session.getLine(r).charAt(0)===e.session.$bidiHandler.RLE?e.session.doc.removeInLine(r,0,1):t&&e.session.getLine(r).charAt(0)!==e.session.$bidiHandler.RLE&&e.session.doc.insert({column:0,row:r},e.session.$bidiHandler.RLE)},this.getPosLeft=function(e){e-=this.wrapIndent;var t=this.line.charAt(0)===this.RLE?1:0,n=e>t?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;u<i;u++)o+=this.charWidths[s[u]];return!this.session.getOverwrite()&&e>t&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},this.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p<r.length;p++)h=n.logicalFromVisual[p],i=r[p],f=h>=u&&h<a,f&&!l?c=o:!f&&l&&s.push({left:c,width:o-c}),o+=this.charWidths[i],l=f;f&&p===r.length&&s.push({left:c,width:o-c});if(this.isRtlDir)for(var d=0;d<s.length;d++)s[d].left+=this.rtlLineOffset;return s},this.offsetToCol=function(e){this.isRtlDir&&(e-=this.rtlLineOffset);var t=0,e=Math.max(e,0),n=0,r=0,i=this.bidiMap.bidiLevels,s=this.charWidths[i[r]];this.wrapIndent&&(e-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);while(e>n+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e<n&&r--,t=this.bidiMap.logicalFromVisual[r]):r>0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(o.prototype),t.BidiHandler=o}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.wouldMoveIntoSoftTab(e,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(r)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(s)&&(t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0);if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var i=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&i.row===this.lead.row&&i.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[i.row]&&(i.row>0||e>0)&&i.row++,this.moveCursorTo(i.row,i.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!="^"&&(e="^"+e),e.charAt(e.length-1)!="$"&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n,e):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m),d.consumeLineEnd&&(l=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=500),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!="string"&&(c=c[0]||""),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a=="string"?a:a.include;p&&(Array.isArray(p)?f=p.map(function(e){return r[e]}):f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),ace.define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e&&e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var v=a.substring(u.column,u.column+1);if(v=="}"){var m=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var g="";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v==="}"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:"\n"+w+"\n"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(d);if(S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var T=l[f.column-2];if(!(d!=o||T!=o&&!E.test(T)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o<r.length;o+=2)s.push(i+=r[o]),r[o+1]&&s.push(45,i+=r[o+1]);t.wordChars=String.fromCharCode.apply(null,s)}),ace.define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../config"),i=e("../tokenizer").Tokenizer,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,u=e("../unicode"),a=e("../lib/lang"),f=e("../token_iterator").TokenIterator,l=e("../range").Range,c=function(){this.HighlightRules=s};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+u.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+u.wordChars+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new i(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,u=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+a.escapeRegExp(c)+")"),d=new RegExp("(?:"+a.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:u},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(a.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=a.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,u,u)?i.insertInLine({row:t,column:u},y):i.insertInLine({row:t,column:u},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<u&&(u=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<o.length;t++)(function(e){var n=o[t],r=e[n];e[o[t]]=function(){return this.$delegator(n,arguments,r)}})(this)},this.$delegator=function(e,t,n){var r=t[0]||"start";if(typeof r!="string"){if(Array.isArray(r[2])){var i=r[2][r[2].length-1],s=this.$modes[i];if(s)return s[e].apply(s,[r[1]].concat([].slice.call(t,1)))}r=r[0]||"start"}for(var o=0;o<this.$embeds.length;o++){if(!this.$modes[this.$embeds[o]])continue;var u=r.split(this.$embeds[o]);if(!u[0]&&u[1]){t[0]=u[1];var s=this.$modes[this.$embeds[o]];return s[e].apply(s,t)}}var a=n.apply(this,t);return n?a:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(c.prototype),t.Mode=c}),ace.define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length-t+1,i=e.start.row,s=e.start.column;for(var o=0,u=0;o<r;o=u){u+=t-1;var a=n.slice(o,u);a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}e.lines=n.slice(o),e.start.row=i+o,e.start.column=s,this.applyDelta(e,!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:e+n[s-1].length+r}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push(" "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[],this.$bias=1};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){var t=e.start,n=e.end,r=t.row,i=n.row,s=this.ranges;for(var o=0,u=s.length;o<u;o++){var a=s[o];if(a.end.row>=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;o<u;o++){var a=s[o];if(a.start.row>r)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column==t.column&&this.$bias<=0||(a.start.column+=l,a.start.row+=f));if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$bias<0)continue;a.end.column==t.column&&l>0&&o<u-1&&a.end.column>a.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;o<u;o++){var a=s[o];if(a.start.row>i)break;if(a.end.row<i&&(r<a.end.row||r==a.end.row&&t.column<a.end.column))a.end.row=r,a.end.column=t.column;else if(a.end.row==i)if(a.end.column<=n.column){if(f||a.end.column>t.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.row<i&&(r<a.start.row||r==a.start.row&&t.column<a.start.column))a.start.row=r,a.start.column=t.column;else if(a.start.row==i)if(a.start.column<=n.column){if(f||a.start.column>t.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o<u)for(;o<u;o++){var a=s[o];a.start.row+=f,a.end.row+=f}}}).call(s.prototype),t.RangeList=s}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function o(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function u(e,t){o(e.start,t),o(e.end,t)}function a(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function f(e,t){a(e.start,t),a(e.end,t)}var r=e("../range_list").RangeList,i=e("../lib/oop"),s=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};i.inherits(s,r),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new s(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;u(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r],o=0;if(i==0){if(s.range.containsRange(e))return s.addSubFold(e);o=1}var t=e.range.end.row,n=e.range.end.column;for(var a=r,i=-1;a<this.subFolds.length;a++){i=this.subFolds[a].range.compare(t,n);if(i!=1)break}i==0&&a++;var f=this.subFolds.splice(r,a-r,e),l=i==0?f.length-1:f.length;for(var c=o;c<l;c++)e.addSubFold(f[c]);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return f(e,this.start)}}.call(s.prototype)}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s].range;if(o.contains(e,t)){if(n==1&&o.isEnd(e,t)&&!o.isEmpty())continue;if(n==-1&&o.isStart(e,t)&&!o.isEmpty())continue;return i[s]}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal("changeFold",{data:o,action:"add"}),o},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken(),u=s.type;if(s&&/^comment|string/.test(u)){u=u.match(/comment|string/)[0],u=="comment"&&(u+="|doc-start");var a=new RegExp(u),f=new r;if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){var l=-1;do{s=i.stepForward();if(l==-1){var c=this.getState(i.$row);a.test(c)||(l=i.$row)}else if(i.$row>l)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++d.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new c(e);this.setDocument(e),this.selection=new a(this),this.$bidiHandler=new s(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};d.$uid=0,function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&(t&&t.length&&(this.$undoManager.add({action:"removeFolds",folds:t},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(e,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null){var s=n.length-1;i=this.getLine(e).length}else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker")},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new l(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new l(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes=o.$modes,this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new f);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,o.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new h(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){o.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;n<e.length;n++){var r=e[n];(r.action=="insert"||r.action=="remove")&&this.doc.applyDelta(r)}!t&&this.$undoSelect&&(e.selectionAfter?this.selection.fromJSON(e.selectionAfter):this.selection.setRange(this.$getUndoSelection(e,!1))),this.$fromUndo=!1},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t){function n(e){return t?e.action!=="insert":e.action==="insert"}var r,i,s;for(var o=0;o<e.length;o++){var u=e[o];if(!u.start)continue;if(!r){n(u)?(r=l.fromPoints(u.start,u.end),s=!0):(r=l.fromPoints(u.start,u.start),s=!1);continue}n(u)?(i=u.start,r.compare(i.row,i.column)==-1&&r.setStart(i),i=u.end,r.compare(i.row,i.column)==1&&r.setEnd(i),s=!0):(i=u.start,r.compare(i.row,i.column)==-1&&(r=l.fromPoints(u.start,u.start)),s=!1)}return r},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=l.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)==" "?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),o=this.$wrapData,u=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,o){var u;if(e!=null){u=this.$getDisplayTokens(e,a.length),u[0]=n;for(var f=1;f<u.length;f++)u[f]=s}else u=this.$getDisplayTokens(r[t].substring(o,i),a.length);a=a.concat(u)}.bind(this),f.end.row,r[f.end.row].length+1),o[f.start.row]=this.$computeWrapSplits(a,u,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),o[l]=this.$computeWrapSplits(a,u,i),l++)};var e=1,t=2,n=3,s=4,a=9,c=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(p)for(var n=0;n<e.length;n++){var r=e[n];if(r==c)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return h&&p!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=t-f;for(var r=f;r<t;r++){var i=e[r];if(i===12||i===2)n-=1}o.length||(b=g(),o.indent=b),l+=n,o.push(l),f=t}if(e.length==0)return[];var o=[],u=e.length,f=0,l=0,h=this.$wrapAsCode,p=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||p===!1?0:Math.floor(r/2),b=0;while(u-f>r-b){var w=f+r-b;if(e[w-1]>=c&&e[w]>=c){y(w);continue}if(e[w]==n||e[w]==s){for(w;w!=f-1;w--)if(e[w]==n)break;if(w>f){y(w);continue}w=f+r;for(w;w<e.length;w++)if(e[w]!=s)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),f-1);while(w>E&&e[w]<n)w--;if(h){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==a)w--}else while(w>E&&e[w]<c)w--;if(w>E){y(++w);continue}w=f+r,e[w]==t&&w--,y(w-b)}return o},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var f=1;f<s;f++)i.push(v)}else u==32?i.push(c):u>39&&u<48||u>57&&u<64?i.push(a):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-(e%this.$tabSize|0)},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,n){if(e<0)return{row:0,column:0};var r,i=0,s=0,o,u=0,a=0,f=this.$screenRowCache,l=this.$getRowCacheIndex(f,e),c=f.length;if(c&&l>=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i===" "?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=m}.call(d.prototype),e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=d}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return r},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r=t.backwards==1,i=t.skipCurrent!=0,s=t.range,o=t.start;o||(o=s?s[r?"end":"start"]:e.selection.getRange()),o.start&&(o=o[i!=r?"end":"start"]);var u=s?s.start.row:0,a=s?s.end.row:e.getLength()-1;if(r)var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n--;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0)return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&a<i||a===-1)return;for(var f=1;f<l;f++){u=e.getLine(o+f);if(u.search(n[f])==-1)return}var c=u.match(n[l-1])[0].length;if(r&&c>i)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u;n.lastIndex=r;while(u=n.exec(s)){var a=u[0].length;o=u.index;if(i(t,o,t,o+a))return!0;if(!a){n.lastIndex=o+=1;if(o>=s.length)return!1}}};return{forEach:f}}}).call(o.prototype),t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"},{name:"openCommandPallete",description:"Open command pallete",bindKey:o("F1","F1"),exec:function(e){e.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:o(null,null),exec:function(e){e.prompt({$type:"modes"})},readOnly:!0}]}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/clipboard"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=e("./clipboard"),w=function(e,t,n){var r=e.getContainerElement();this.container=r,this.renderer=e,this.id="editor"+ ++w.$uid,this.commands=new v(o.isMac?"mac":"win",m),typeof document=="object"&&(this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new a(this),new f(this)),this.keyBinding=new l(this),this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||n&&n.session||new c("")),g.resetOptions(this),n&&this.setOptions(n),g._signal("editor",this)};w.$uid=0,function(){r.implement(this,d),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),t.$tagHighlight||(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.isFocused()||e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;i<r.length;i++){var s=r[i];if(i&&r[i-1].start.row==s.start.row)continue;e+=this.session.getLine(s.start.row)+t}}var o={text:e};return this._signal("copy",o),b.lineMode=n?o.text:"",o.text},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text,n=t==b.lineMode,r=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)n?r.insert({row:this.selection.lead.row,column:0},t):this.insert(t);else if(n)this.selection.rangeList.ranges.forEach(function(e){r.insert({row:e.start.row,column:0},t)});else{var i=t.split(/\r\n|\r|\n/),s=this.selection.rangeList.ranges,o=i.length==2&&(!i[0]||!i[1]);if(i.length!=s.length||o)return this.commands.exec("insertstring",this,t);for(var u=s.length;u--;){var a=s[u];a.isEmpty()||r.remove(a),r.insert(a.start,i[u])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),e=s.text)}e==" "&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()&&e.indexOf("\n")==-1){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e);n.insert(i,e),s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var h=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},h)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},this.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},this.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r),this.session.selection.moveToPosition(i.end)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column-1]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l=" "}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last," ")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(var r=e.first;r<=e.last;r++)n.push(t.getLine(r));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var i=new p(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}else this.toggleWord()},this.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],this.toggleWord=function(){var e=this.selection.getCursor().row,t=this.selection.getCursor().column;this.selection.selectWord();var n=this.getSelectedText(),r=this.selection.getWordRange().start.column,i=n.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),o=t-r-1;o<0&&(o=0);var u=0,a=0,f=this;n.match(/[A-Za-z0-9_]+/)&&i.forEach(function(t,i){a=u+t.length,o>=u&&o<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h<l.length;h++){var p=l[h];for(var d=0;d<=1;d++){var v=+!d,m=n.match(new RegExp("^\\s?_?("+s.escapeRegExp(p[d])+")\\s?$","i"));if(m){var g=n.match(new RegExp("([_]|^|\\s)("+s.escapeRegExp(m[1])+")($|\\s)","g"));g&&(c=n.replace(new RegExp(s.escapeRegExp(p[d]),"i"),function(e){var t=p[v];return e.toUpperCase()==e?t=t.toUpperCase():e.charAt(0).toUpperCase()==e.charAt(0)&&(t=t.substr(0,0)+p[v].charAt(0).toUpperCase()+t.substr(1)),t}),this.insert(c),c="")}}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},this.prompt=function(e,t,n){var r=this;g.loadModule("./ext/prompt",function(i){i.prompt(r,e,t,n)})}}.call(w.prototype),g.defineOptions(w.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.renderer.$composition||this.getValue();if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),i.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),i.addCssClass(this.container,"ace_hasPlaceholder");var t=i.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=w}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n<t-1){var i=d(e[n],e[n+1]);e[n]=i[0],e[n+1]=i[1],n++}return!0}}}function a(e){var t=e.action=="insert",n=e.start,r=e.end,i=(r.row-n.row)*(t?1:-1),s=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var o in this.marks){var a=this.marks[o],f=u(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:u(a,r);if(l>0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+=" ("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r<t.length;r++)if(!p(e[n],t[r])){while(n<e.length){while(r--)p(t[r],e[n]);r=t.length,n++}return[e,t]}return e.selectionBefore=t.selectionBefore=e.selectionAfter=t.selectionAfter=null,[t,e]}function v(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)o(e.start,t.start)<0?m(t,e,1):m(e,t,1);else if(n&&!r)o(e.start,t.end)>=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i],o=v(s,t);t=o[0],o.length!=2&&(o[2]?(r.splice(i+1,1,o[1],o[2]),i++):o[1]||(r.splice(i,1),i--))}r.length||e.splice(n,1)}return e}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];for(var i=0;i<r.length;i++)b(e,r[i])}}var r=function(){this.$maxRev=0,this.$fromUndo=!1,this.reset()};(function(){this.addSession=function(e){this.$session=e},this.add=function(e,t,n){if(this.$fromUndo)return;if(e==this.$lastDelta)return;if(t===!1||!this.lastDeltas)this.lastDeltas=[],this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev;if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id<t&&(i.ignore=!0)}this.lastDeltas=null},this.getSelection=function(e,t){var n=this.selections;for(var r=n.length;r--;){var i=n[r];if(i.rev<e)return t&&(i=n[r+1]),i}},this.getRevision=function(){return this.$rev},this.getDeltas=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack,r=null,i=0;for(var s=n.length;s--;){var o=n[s][0];o.id<t&&!r&&(r=s+1);if(o.id<=e){i=s+1;break}}return n.slice(i,r)},this.getChangedRanges=function(e,t){t==null&&(t=this.$rev+1)},this.getChangedLines=function(e,t){t==null&&(t=this.$rev+1)},this.undo=function(e,t){this.lastDeltas=null;var n=this.$undoStack;if(!i(n,n.length))return;e||(e=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var r=n.pop(),s=null;return r&&r.length&&(s=e.undoChanges(r,t),this.$redoStack.push(r),this.$syncRev()),this.$fromUndo=!1,s},this.redo=function(e,t){this.lastDeltas=null,e||(e=this.$session),this.$fromUndo=!0;if(this.$redoStackBaseRev!=this.$rev){var n=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);w(this.$redoStack,n),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(e){e[0].id=++this.$maxRev},this)}var r=this.$redoStack.pop(),i=null;return r&&(i=e.redoChanges(r,t),this.$undoStack.push(r),this.$syncRev()),this.$fromUndo=!1,i},this.$syncRev=function(){var e=this.$undoStack,t=e[e.length-1],n=t&&t[0].id||0;this.$redoStackBaseRev=n,this.$rev=n},this.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},this.canUndo=function(){return this.$undoStack.length>0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)}}).call(r.prototype);var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},this.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},this.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},this.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLength(e)},this.getLength=function(){return this.cells.length},this.get=function(e){return this.cells[e]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.appendChild(t)}else this.cells.push(e),this.element.appendChild(e.element)},this.unshift=function(e){if(Array.isArray(e)){this.cells.unshift.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.firstChild?this.element.insertBefore(t,this.element.firstChild):this.element.appendChild(t)}else this.cells.unshift(e),this.element.insertAdjacentElement("afterbegin",e.element)},this.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},this.$cacheCell=function(e){if(!e)return;e.element.remove(),this.cellCache.push(e)},this.createCell=function(e,t,n,i){var s=this.cellCache.pop();if(!s){var o=r.createElement("div");i&&i(o),this.element.appendChild(o),s={element:o,text:"",row:e}}return s.row=e,s}}).call(i.prototype),t.Lines=i}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines"],function(e,t,n){"use strict";function f(e){var t=document.createTextNode("");e.appendChild(t);var n=r.createElement("span");return e.appendChild(n),e}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=e("./lines").Lines,a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new u(this.element),this.$lines.$offsetCoefficient=1};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action=="remove")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){this.config=e;var t=this.session,n=e.firstRow,r=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1);this.oldLastRow=r,this.config=e,this.$lines.moveContainer(e),this.$updateCursorRow();var i=t.getNextFoldLine(n),s=i?i.start.row:Infinity,o=null,u=-1,a=n;for(;;){a>s&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,f),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},this.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},this.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n<t.length;n++){var r=t[n];if(r.row>=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},this.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLines(e,e.firstRow,t.firstRow-1)),n>r&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,f);this.$renderCell(u,e,s,i),r.push(u),i++}return r},this.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],a=s.childNodes[1],f=o.$firstLineNumber,l=o.$breakpoints,c=o.$decorations,h=o.gutterRenderer||this.$renderer,p=this.$showFoldWidgets&&o.foldWidgets,d=n?n.start.row:Number.MAX_VALUE,v="ace_gutter-cell ";this.$highlightGutterLine&&(i==this.$cursorRow||n&&i<this.$cursorRow&&i>=d&&this.$cursorRow<=n.end.row)&&(v+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),l[i]&&(v+=l[i]),c[i]&&(v+=c[i]),this.$annotations[i]&&(v+=this.$annotations[i].className),s.className!=v&&(s.className=v);if(p){var m=p[i];m==null&&(m=p[i]=o.getFoldWidget(i))}if(m){var v="ace_fold-widget ace_"+m;m=="start"&&i==d&&i<n.end.row?v+=" ace_closed":v+=" ace_open",a.className!=v&&(a.className=v);var g=t.lineHeight+"px";r.setStyle(a.style,"height",g),r.setStyle(a.style,"display","inline-block")}else a&&r.setStyle(a.style,"display","none");var y=(h?h.getText(o,i):i+f).toString();return y!==u.data&&(u.data=y),r.setStyle(e.element.style,"height",this.$lines.computeLineHeight(i,t,o)+"px"),r.setStyle(e.element.style,"top",this.$lines.computeLineTop(i,t,o)+"px"),e.text=y,e},this.$fixedWidth=!1,this.$highlightGutterLine=!0,this.$renderer="",this.setHighlightGutterLine=function(e){this.$highlightGutterLine=e},this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return 0},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(e.borderLeftWidth)||0)+(parseInt(e.paddingLeft)||0)+1,this.$padding.right=(parseInt(e.borderRightWidth)||0)+(parseInt(e.paddingRight)||0),this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},this.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.i<this.element.childElementCount)this.element.removeChild(this.element.lastChild)},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?" ace_start":"")+" ace_br"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},this.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},this.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+e.width+(i||0)+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))}}).call(s.prototype),t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=function(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)if(this.showInvisibles){var r=this.dom.createElement("span");r.className="ace_invisible ace_invisible_tab",r.textContent=s.stringRepeat(this.TAB_CHAR,n),t.push(r)}else t.push(this.dom.createTextNode(s.stringRepeat(" ",n),this.element));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i="ace_indent-guide",o="",u="";if(this.showInvisibles){i+=" ace_invisible",o=" ace_invisible_space",u=" ace_invisible_tab";var a=s.stringRepeat(this.SPACE_CHAR,this.tabSize),f=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=s.stringRepeat(" ",this.tabSize),f=a;var r=this.dom.createElement("span");r.className=i+o,r.textContent=a,this.$tabStrings[" "]=r;var r=this.dom.createElement("span");r.className=i+u,r.textContent=f,this.$tabStrings[" "]=r}},this.updateLines=function(e,t,n){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var f=!1,u=r,a=this.session.getNextFoldLine(u),l=a?a.start.row:Infinity;for(;;){u>l&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1),f&&(c.style.top=this.$lines.computeLineTop(u,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o<this.$lines.cells.length){var p=this.$lines.cells[o++];p.element.style.top=this.$lines.computeLineTop(p.row,e,this.session)+"px"}},this.scrollLines=function(e){var t=this.config;this.config=e;if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=e.lastRow,r=t?t.lastRow:-1;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,t.firstRow-1)),e.lastRow>t.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow))},this.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),a,f=0;while(a=o.exec(r)){var l=a[1],c=a[2],h=a[3],p=a[4],d=a[5];if(!i.showInvisibles&&c)continue;var v=f!=a.index?r.slice(f,a.index):"";f=a.index+a[0].length,v&&u.appendChild(this.dom.createTextNode(v,this.element));if(l){var m=i.session.getScreenTabSize(t+a.index);u.appendChild(i.$tabStrings[m].cloneNode(!0)),t+=m-1}else if(c)if(i.showInvisibles){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space",g.textContent=s.stringRepeat(i.SPACE_CHAR,c.length),u.appendChild(g)}else u.appendChild(this.com.createTextNode(c,this.element));else if(h){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space ace_invalid",g.textContent=s.stringRepeat(i.SPACE_CHAR,h.length),u.appendChild(g)}else if(p){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",g.textContent=i.showInvisibles?i.SPACE_CHAR:p,u.appendChild(g)}else if(d){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className="ace_cjk",g.textContent=d,u.appendChild(g)}}u.appendChild(this.dom.createTextNode(f?r.slice(f):r,this.element));if(!this.$textToken[n.type]){var y="ace_"+n.type.replace(/\./g," ace_"),g=this.dom.createElement("span");n.type=="fold"&&(g.style.width=n.value.length*this.config.characterWidth+"px"),g.className=y,g.appendChild(u),e.appendChild(g)}else e.appendChild(u);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;s<i;s++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return t.substr(r)}if(t[0]==" "){for(var s=0;s<r;s++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return t.substr(r)}return t},this.$createLineElement=function(e){var t=this.dom.createElement("div");return t.className="ace_line",t.style.height=this.config.lineHeight+"px",t},this.$renderWrappedLine=function(e,t,n){var r=0,i=0,o=n[0],u=0,a=this.$createLineElement();e.appendChild(a);for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){r=c.length,c=this.renderIndentGuide(a,c,o);if(!c)continue;r-=c.length}if(r+c.length<o)u=this.$renderToken(a,u,l,c),r+=c.length;else{while(r+c.length>=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++){r=t[s],i=r.value;if(n+i.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,r,i);n=this.$renderToken(e,n,r,i)}},this.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"<hide>":"<click to see more...>",e.appendChild(s)},this.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showInvisibles&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";setTimeout(function(){r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){r.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.isCursorInView=function(e,t){return e.top>=0&&e.top<t.maxHeight},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,i=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,s=t.length;n<s;n++){var o=this.getPixelPosition(t[n].cursor,!0);if((o.top>e.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=256,l=typeof ResizeObserver=="function",c=200,h=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.innerHTML=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()};(function(){r.implement(this,a),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){var n=t[0].contentRect;e.checkForSizeChanges({height:n.height,width:n.width/f})}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},this.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)}}).call(h.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./layer/gutter").Gutter,u=e("./layer/marker").Marker,a=e("./layer/text").Text,f=e("./layer/cursor").Cursor,l=e("./scrollbar").HScrollBar,c=e("./scrollbar").VScrollBar,h=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,d=e("./lib/event_emitter").EventEmitter,v='.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;perspective: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {opacity: 0;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_mobile-menu {position: absolute;line-height: 1.5;border-radius: 4px;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;background: white;box-shadow: 1px 3px 2px grey;border: 1px solid #dcdcdc;color: black;}.ace_dark > .ace_mobile-menu {background: #333;color: #ccc;box-shadow: 1px 3px 2px grey;border: 1px solid #444;}.ace_mobile-button {padding: 2px;cursor: pointer;overflow: hidden;}.ace_mobile-button:hover {background-color: #eee;opacity:1;}.ace_mobile-button:active {background-color: #ddd;}.ace_placeholder {font-family: arial;transform: scale(0.9);opacity: 0.7;transform-origin: left;text-indent: 10px;}',m=e("./lib/useragent"),g=m.isIE;i.importCssString(v,"ace_editor.css");var y=function(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new u(this.content);var r=this.$textLayer=new a(this.content);this.canvas=r.element,this.$markerFront=new u(this.content),this.$cursorLayer=new f(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new c(this.container,this),this.scrollBarH=new l(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!m.isIOS,this.$loop=new h(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,d),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight());if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME?this.lineHeight:g?0:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1,f=this.$size.height-u;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var l=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(l)[0]}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,f))},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?this.$showGutter&&this.$gutterLayer.update(n):e&this.CHANGE_CURSOR&&this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},this.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),this.$textLayer&&e>this.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight+u-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME=this.$useTextareaForIME,this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText,this.$composition=null,this.$cursorLayer.element.style.display=""},this.addToken=function(e,t,n,r){var i=this.session;i.bgTokenizer.lines[n]=null;var s={type:t,value:e},o=i.getTokens(n);if(r==null)o.push(s);else{var u=0;for(var a=0;a<o.length;a++){var f=o[a];u+=f.value.length;if(r<=u){var l=f.value.length-(u-r),c=f.value.slice(0,l),h=f.value.slice(l);o.splice(a,1,{type:f.type,value:c},s,{type:f.type,value:h});break}}}this.updateLines(n,n)},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.$id&&(n.$themeId=r.$id),i.importCssString(r.cssText,r.cssClass,n.container),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.setMouseCursor=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.attachToShadowRoot=function(){i.importCssString(v,"ace_editor.css",this.container)},this.destroy=function(){this.freeze(),this.$fontMetrics.destroy(),this.$cursorLayer.destroy()}}).call(y.prototype),s.defineOptions(y.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!m.isMobile&&!m.isIE}}),t.VirtualRenderer=y}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(o.get("loadWorkerFromBlob")){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}return new Worker(e)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.$createWorkerFromOldConfig=function(t,n,r,i,s){e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?"block":"add":n&&l.$blockSelectEnabled&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column,e.offsetX);if(s(E,e)&&s(t,c.lead))return;E=e,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers()};h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),E={row:-1,column:-1};var L=function(e){k(),clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column,a=e.offsetX,f=t.offsetX;else var o=t.column,u=e.column,a=t.offsetX,f=e.offsetX;var l=e.row<t.row;if(l)var c=e.row,h=t.row;else var c=t.row,h=e.row;o<0&&(o=0),c<0&&(c=0),c==h&&(n=!0);var p;for(var d=c;d<=h;d++){var m=i.fromPoints(this.session.screenToDocumentPosition(d,o,a),this.session.screenToDocumentPosition(d,u,f));if(m.isEmpty()){if(p&&v(m.end,p))break;p=m.end}m.cursor=s?m.start:m.end,r.push(m)}l&&r.reverse();if(!n){var g=r.length-1;while(r[g].isEmpty()&&g>0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}n.fromOrientedRange(n.ranges[0])},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.session.unfold(u),this.multiSelect.addRange(u),this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o){var h=e.getTokenAt(t,0);if(!h||h.type!=="string")break}l=t}if(l>f){var p=e.getLine(l).length;return new r(f,u,l,p)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.$id="ace/theme/textmate";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action=="remove"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./range").Range,o=e("./editor").Editor,u=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,f=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,typeof define=="function"&&(t.define=define),t.edit=function(e,n){if(typeof e=="string"){var s=e;e=document.getElementById(s);if(!e)throw new Error("ace.edit can't find div #"+s)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var u="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;u=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(u=e.textContent,e.innerHTML="");var l=t.createEditSession(u),c=new o(new f(e),l,n),h={document:l,editor:c,onResize:c.resize.bind(c,null)};return a&&(h.textarea=a),i.addListener(window,"resize",h.onResize),c.on("destroy",function(){i.removeListener(window,"resize",h.onResize),h.editor.container.env=null}),c.container.env=c.env=h,c},t.createEditSession=function(e,t){var n=new u(e,t);return n.setUndoManager(new a),n},t.Range=s,t.Editor=o,t.EditSession=u,t.UndoManager=a,t.VirtualRenderer=f,t.version=t.config.version}); (function() {+ ace.require(["ace/ace"], function(a) {+ if (a) {+ a.config.init(true);+ a.define = ace.define;+ }+ if (!window.ace)+ window.ace = a;+ for (var key in a) if (a.hasOwnProperty(key))+ window.ace[key] = a[key];+ window.ace["default"] = window.ace;+ if (typeof module == "object" && typeof exports == "object" && module) {+ module.exports = window.ace;+ }+ });+ })();+
static/index.html view
@@ -1,7 +1,7 @@ <!DOCTYPE html> <html lang="en"> <head>-<title>SMCDEL web</title>+<title>SMCDEL <!-- VERSION NUMBER --></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" /> <style type="text/css">@@ -25,16 +25,24 @@ width:48%; border:1px solid #666; }-textarea, #output {+#smcinput, #output { width:100%; margin:0px; padding:0px;- min-height:400px;+ min-height:450px; height:100%; border:none; box-sizing:border-box;+}+#output { overflow-y:scroll; }+input[type=button], input[type=submit] {+ color:#000;+ background-color:#fff;+ border:1px solid #666;+ border-radius:2px;+} .expbut { padding:5px; margin:0px;@@ -48,11 +56,22 @@ max-width: 100%; height: auto; }+.error {+ padding:20px;+ color:darkred;+}+.footer {+ clear:both;+ padding-top:1em;+ color:#888;+}+.footer a {+ color:#888;+} </style> </head> <body>-<h1>SMCDEL web</h1>-<p>This is the web interface of <a href="https://github.com/jrclogic/SMCDEL">SMCDEL</a>, a symbolic model checker for Dynamic Epistemic Logic.+<p>This is the web interface of <a href="https://github.com/jrclogic/SMCDEL">SMCDEL</a> <!-- VERSION NUMBER -->, a symbolic model checker for <a href="https://plato.stanford.edu/entries/dynamic-epistemic" target="_blank">Dynamic Epistemic Logic</a>. See <a href="https://homepages.cwi.nl/~jve/papers/16/pdfs/2016-05-23-del-bdd-lori-journal.pdf">this paper</a> and <a href="https://github.com/jrclogic/SMCDEL/raw/master/SMCDEL.pdf">this technical report</a> for more information.</p> <div id="menubar">@@ -61,19 +80,20 @@ <input type="button" class="expbut" value="DrinkingLogicians" /> <input type="button" class="expbut" value="DiningCryptographers" /> or enter your own code on the left side, then- <input id="runbutton" type="submit" value="Run SMCDEL!" onclick="myRequest('check');" />+ <input id="runbutton" type="submit" value="Run SMCDEL!" onclick="myRequest('check');" title="shortcut: Ctrl + s" /> or- <input id="kripkebutton" type="submit" value="Show Kripke!" onclick="myRequest('knsToKripke');" />+ <input id="kripkebutton" type="submit" value="Show Kripke!" onclick="myRequest('knsToKripke');" title="shortcut: Ctrl + p" /> </div> <div id="left">- <textarea name="smcinput" id="smcinput" placeholder="Enter your code here."></textarea>+ <div id="smcinput"></div> </div> <div id="right"> <div id="output"></div> </div> <script src="viz-lite.js"></script> <script src="jquery.js"></script>-<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>+<script src="ace.js"></script>+<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ "HTML-CSS": { linebreaks: { automatic: true } },@@ -82,12 +102,13 @@ </script> <script> "use strict";+ var editor = ace.edit("smcinput"); $(document).ready(function(){ $('.expbut').click(function() { $('#smcinput').val('... loading ...'); $.get("getExample?filename=" + $(this).val(), function(data) {- $('#smcinput').val(data);+ editor.getSession().setValue(data); }); }); });@@ -96,7 +117,7 @@ $.ajax({ type: "POST", url: url,- data: { "smcinput": $('#smcinput').val() },+ data: { "smcinput": editor.getSession().getValue() }, success: function(data,textStatus,jqXHR) { $('#output').html(data);@@ -111,9 +132,19 @@ function toggleLaw() { $('.lawbdd').fadeToggle(); }+ $(document).keydown(function(e) {+ if(e.ctrlKey && e.key == "s") {+ $("#runbutton").click();+ return false;+ }+ if(e.ctrlKey && e.key == "p") {+ $("#kripkebutton").click();+ return false;+ }+ }); </script>-<p style="clear:both; padding-top:1em; color:#666;">- Made by <a href="https://w4eg.de/malvin/">Malvin Gattinger</a>.+<p class="footer">+ Made by <a href="https://malv.in/">Malvin Gattinger</a>. Using <a href="https://www.haskell.org/alex/">alex</a>, <a href="https://www.haskell.org/happy/">happy</a>,
static/viz-lite.js view
@@ -1,1175 +1,200 @@ /*-Viz.js-Copyright (c) 2014-2017 Michael Daines-Licensed under MIT license--This distribution contains other software in object code form:--Graphviz-Licensed under Eclipse Public License - v 1.0-http://www.graphviz.org--zlib-Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler-http://www.zlib.net/zlib_license.html-*/-(function(global) {-var Module = function(Module) {- Module = Module || {};--var e;e||(e=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},l;for(l in e)e.hasOwnProperty(l)&&(aa[l]=e[l]);var ba="object"===typeof window,ca="function"===typeof importScripts,da="object"===typeof process&&"function"===typeof require&&!ba&&!ca,fa=!ba&&!da&&!ca;-if(da){e.print||(e.print=function(a){process.stdout.write(a+"\n")});e.printErr||(e.printErr=function(a){process.stderr.write(a+"\n")});var ga=require("fs"),ha=require("path");e.read=function(a,b){a=ha.normalize(a);var c=ga.readFileSync(a);c||a==ha.resolve(a)||(a=path.join(__dirname,"..","src",a),c=ga.readFileSync(a));c&&!b&&(c=c.toString());return c};e.readBinary=function(a){a=e.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};e.load=function(a){ia(read(a))};e.thisProgram||(e.thisProgram=-1<process.argv.length?process.argv[1].replace(/\\/g,"/"):"unknown-program");e.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=e);process.on("uncaughtException",function(a){if(!(a instanceof ja))throw a;});e.inspect=function(){return"[Emscripten Module object]"}}else if(fa)e.print||(e.print=print),"undefined"!=typeof printErr&&(e.printErr=printErr),e.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},e.readBinary=function(a){if("function"===-typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?e.arguments=scriptArgs:"undefined"!=typeof arguments&&(e.arguments=arguments),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(ba||ca)e.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},"undefined"!=typeof arguments&&(e.arguments=arguments),"undefined"!==-typeof console?(e.print||(e.print=function(a){console.log(a)}),e.printErr||(e.printErr=function(a){console.log(a)})):e.print||(e.print=function(){}),ca&&(e.load=importScripts),"undefined"===typeof e.setWindowTitle&&(e.setWindowTitle=function(a){document.title=a});else throw"Unknown runtime environment. Where are we?";function ia(a){eval.call(null,a)}!e.load&&e.read&&(e.load=function(a){ia(e.read(a))});e.print||(e.print=function(){});e.printErr||(e.printErr=e.print);e.arguments||(e.arguments=[]);-e.thisProgram||(e.thisProgram="./this.program");e.print=e.print;e.X=e.printErr;e.preRun=[];e.postRun=[];for(l in aa)aa.hasOwnProperty(l)&&(e[l]=aa[l]);-var n={lb:function(a){ka=a},Za:function(){return ka},ya:function(){return m},ja:function(a){m=a},Ma:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?n.K:"i"===a[0]?(a=parseInt(a.substr(1)),assert(0===a%8),a/8):0}},Ya:function(a){return Math.max(n.Ma(a),n.K)},pd:16,Ld:function(a,b){"double"===b||"i64"===b?a&7&&(assert(4===(a&7)),a+=4):assert(0===(a&3));return a},-xd:function(a,b,c){return c||"i64"!=a&&"double"!=a?a?Math.min(b||(a?n.Ya(a):0),n.K):Math.min(b,8):8},N:function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),e["dynCall_"+a].apply(null,c)):e["dynCall_"+a].call(null,b)},ea:[],Ra:function(a){for(var b=0;b<n.ea.length;b++)if(!n.ea[b])return n.ea[b]=a,2*(1+b);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},ib:function(a){n.ea[(a-2)/2]=null},Q:function(a){n.Q.wa||-(n.Q.wa={});n.Q.wa[a]||(n.Q.wa[a]=1,e.X(a))},qa:{},Ad:function(a,b){assert(b);n.qa[b]||(n.qa[b]={});var c=n.qa[b];c[a]||(c[a]=function(){return n.N(b,a,arguments)});return c[a]},yd:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},ia:function(a){var b=m;m=m+a|0;m=m+15&-16;return b},mb:function(a){var b=la;la=la+a|0;la=la+15&-16;return b},ba:function(a){var b=q;q=q+a|0;q=q+15&-16;if(a=q>=ma)v("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+-ma+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 "),a=!0;return a?(q=b,0):b},na:function(a,b){return Math.ceil(a/(b?b:16))*(b?b:16)},Id:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296*+(b|0)},q:8,K:4,qd:0};n.addFunction=n.Ra;-n.removeFunction=n.ib;var w=!1,na,oa,ka;function assert(a,b){a||v("Assertion failed: "+b)}function pa(a){var b=e["_"+a];if(!b)try{b=eval("_"+a)}catch(c){}assert(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}var ra;-(function(){var a={stackSave:function(){n.ya()},stackRestore:function(){n.ja()},arrayToC:function(a){for(var b=n.ia(a.length),c=b,d=0;d<a.length;d++)x[c++>>0]=a[d];return b},stringToC:function(a){var b=0;null!==a&&void 0!==a&&0!==a&&(b=n.ia((a.length<<2)+1),sa(a,b));return b}},b={string:a.stringToC,array:a.arrayToC};ra=function(a,c,d,h,u){a=pa(a);var p=[],t=0;if(h)for(var r=0;r<h.length;r++){var A=b[d[r]];A?(0===t&&(t=n.ya()),p[r]=A(h[r])):p[r]=h[r]}d=a.apply(null,p);"string"===c&&(d=y(d));if(0!==-t){if(u&&u.async){EmterpreterAsync.rd.push(function(){n.ja(t)});return}n.ja(t)}return d};var c=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,d;for(d in a)a.hasOwnProperty(d)&&a[d].toString().match(c).slice(1)})();e.ccall=ra;-function ta(a){var b;b="i32";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return x[a>>0];case "i8":return x[a>>0];case "i16":return ua[a>>1];case "i32":return z[a>>2];case "i64":return z[a>>2];case "float":return va[a>>2];case "double":return wa[a>>3];default:v("invalid type for setValue: "+b)}return null}-function B(a,b,c,d){var f,g;"number"===typeof a?(f=!0,g=a):(f=!1,g=a.length);var k="string"===typeof b?b:null;c=4==c?d:[xa,n.ia,n.mb,n.ba][void 0===c?2:c](Math.max(g,k?1:b.length));if(f){d=c;assert(0==(c&3));for(a=c+(g&-4);d<a;d+=4)z[d>>2]=0;for(a=c+g;d<a;)x[d++>>0]=0;return c}if("i8"===k)return a.subarray||a.slice?E.set(a,c):E.set(new Uint8Array(a),c),c;d=0;for(var h,u;d<g;){var p=a[d];"function"===typeof p&&(p=n.Bd(p));f=k||b[d];if(0===f)d++;else{"i64"==f&&(f="i32");var t=c+d,r=f,r=r||"i8";"*"===-r.charAt(r.length-1)&&(r="i32");switch(r){case "i1":x[t>>0]=p;break;case "i8":x[t>>0]=p;break;case "i16":ua[t>>1]=p;break;case "i32":z[t>>2]=p;break;case "i64":oa=[p>>>0,(na=p,1<=+ya(na)?0<na?(za(+Aa(na/4294967296),4294967295)|0)>>>0:~~+Ba((na-+(~~na>>>0))/4294967296)>>>0:0)];z[t>>2]=oa[0];z[t+4>>2]=oa[1];break;case "float":va[t>>2]=p;break;case "double":wa[t>>3]=p;break;default:v("invalid type for setValue: "+r)}u!==f&&(h=n.Ma(f),u=f);d+=h}}return c}-function y(a,b){if(0===b||!a)return"";for(var c=0,d,f=0;;){d=E[a+f>>0];c|=d;if(0==d&&!b)break;f++;if(b&&f==b)break}b||(b=f);d="";if(128>c){for(;0<b;)c=String.fromCharCode.apply(String,E.subarray(a,a+Math.min(b,1024))),d=d?d+c:c,a+=1024,b-=1024;return d}return e.UTF8ToString(a)}e.Pointer_stringify=y;-function Ca(a,b){for(var c,d,f,g,k,h,u="";;){c=a[b++];if(!c)return u;c&128?(d=a[b++]&63,192==(c&224)?u+=String.fromCharCode((c&31)<<6|d):(f=a[b++]&63,224==(c&240)?c=(c&15)<<12|d<<6|f:(g=a[b++]&63,240==(c&248)?c=(c&7)<<18|d<<12|f<<6|g:(k=a[b++]&63,248==(c&252)?c=(c&3)<<24|d<<18|f<<12|g<<6|k:(h=a[b++]&63,c=(c&1)<<30|d<<24|f<<18|g<<12|k<<6|h))),65536>c?u+=String.fromCharCode(c):(c-=65536,u+=String.fromCharCode(55296|c>>10,56320|c&1023)))):u+=String.fromCharCode(c)}}-e.UTF8ToString=function(a){return Ca(E,a)};-function Da(a){function b(c,d,f){d=d||Infinity;var g="",k=[],r;if("N"===a[h]){h++;"K"===a[h]&&h++;for(r=[];"E"!==a[h];)if("S"===a[h]){h++;var D=a.indexOf("_",h);r.push(p[a.substring(h,D)||0]||"?");h=D+1}else if("C"===a[h])r.push(r[r.length-1]),h+=2;else{var D=parseInt(a.substr(h)),V=D.toString().length;if(!D||!V){h--;break}var Fb=a.substr(h+V,D);r.push(Fb);p.push(Fb);h+=V+D}h++;r=r.join("::");d--;if(0===d)return c?[r]:r}else if(("K"===a[h]||t&&"L"===a[h])&&h++,D=parseInt(a.substr(h)))V=D.toString().length,-r=a.substr(h+V,D),h+=V+D;t=!1;"I"===a[h]?(h++,D=b(!0),V=b(!0,1,!0),g+=V[0]+" "+r+"<"+D.join(", ")+">"):g=r;a:for(;h<a.length&&0<d--;)if(r=a[h++],r in u)k.push(u[r]);else switch(r){case "P":k.push(b(!0,1,!0)[0]+"*");break;case "R":k.push(b(!0,1,!0)[0]+"&");break;case "L":h++;D=a.indexOf("E",h)-h;k.push(a.substr(h,D));h+=D+2;break;case "A":D=parseInt(a.substr(h));h+=D.toString().length;if("_"!==a[h])throw"?";h++;k.push(b(!0,1,!0)[0]+" ["+D+"]");break;case "E":break a;default:g+="?"+r;break a}f||1!==-k.length||"void"!==k[0]||(k=[]);return c?(g&&k.push(g+"?"),k):g+("("+k.join(", ")+")")}var c=!!e.___cxa_demangle;if(c)try{var d=xa(a.length);sa(a.substr(1),d);var f=xa(4),g=e.___cxa_demangle(d,0,0,f);if(0===ta(f)&&g)return y(g)}catch(k){}finally{d&&Ea(d),f&&Ea(f),g&&Ea(g)}var h=3,u={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},-p=[],t=!0,d=a;try{if("Object._main"==a||"_main"==a)return"main()";"number"===typeof a&&(a=y(a));if("_"!==a[0]||"_"!==a[1]||"Z"!==a[2])return a;switch(a[3]){case "n":return"operator new()";case "d":return"operator delete()"}d=b()}catch(r){d+="?"}0<=d.indexOf("?")&&!c&&n.Q("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return d}-function Fa(){return Ga().replace(/__Z[\w\d_]+/g,function(a){var b=Da(a);return a===b?a:a+" ["+b+"]"})}function Ga(){var a=Error();if(!a.stack){try{throw Error(0);}catch(b){a=b}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}function Ha(){var a=q;0<a%4096&&(a+=4096-a%4096);return a}for(var x,E,ua,Ia,z,Ja,va,wa,Ka=0,la=0,La=0,m=0,Ma=0,Oa=0,q=0,Pa=e.TOTAL_STACK||5242880,ma=e.TOTAL_MEMORY||16777216,G=65536;G<ma||G<2*Pa;)G=16777216>G?2*G:G+16777216;G!==ma&&(ma=G);-assert("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(ma);x=new Int8Array(buffer);ua=new Int16Array(buffer);z=new Int32Array(buffer);E=new Uint8Array(buffer);Ia=new Uint16Array(buffer);Ja=new Uint32Array(buffer);va=new Float32Array(buffer);wa=new Float64Array(buffer);z[0]=255;assert(255===E[0]&&0===E[3],"Typed arrays 2 must be run on a little-endian system");-e.HEAP=void 0;e.buffer=buffer;e.HEAP8=x;e.HEAP16=ua;e.HEAP32=z;e.HEAPU8=E;e.HEAPU16=Ia;e.HEAPU32=Ja;e.HEAPF32=va;e.HEAPF64=wa;function Qa(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.Va;"number"===typeof c?void 0===b.aa?n.N("v",c):n.N("vi",c,[b.aa]):c(void 0===b.aa?null:b.aa)}}}var Ra=[],Sa=[],Ta=[],H=[],Ua=[],Va=!1;function Wa(){var a=e.preRun.shift();Ra.unshift(a)}-function Xa(a,b){for(var c=0,d=0;d<a.length;++d){var f=a.charCodeAt(d);55296<=f&&57343>=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++d)&1023);127>=f?++c:c=2047>=f?c+2:65535>=f?c+3:2097151>=f?c+4:67108863>=f?c+5:c+6}c=Array(c+1);var g=c.length,d=0;if(0<g){for(var f=d,g=d+g-1,k=0;k<a.length;++k){var h=a.charCodeAt(k);55296<=h&&57343>=h&&(h=65536+((h&1023)<<10)|a.charCodeAt(++k)&1023);if(127>=h){if(d>=g)break;c[d++]=h}else{if(2047>=h){if(d+1>=g)break;c[d++]=192|h>>6}else{if(65535>=h){if(d+2>=g)break;c[d++]=-224|h>>12}else{if(2097151>=h){if(d+3>=g)break;c[d++]=240|h>>18}else{if(67108863>=h){if(d+4>=g)break;c[d++]=248|h>>24}else{if(d+5>=g)break;c[d++]=252|h>>30;c[d++]=128|h>>24&63}c[d++]=128|h>>18&63}c[d++]=128|h>>12&63}c[d++]=128|h>>6&63}c[d++]=128|h&63}}c[d]=0;d=d-f}else d=0;b&&(c.length=d);return c}function sa(a,b){for(var c=Xa(a,void 0),d=0;d<c.length;)x[b+d>>0]=c[d],d+=1}-Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0});Math.Cd=Math.imul;Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var b=0;32>b;b++)if(a&1<<31-b)return b;return 32});Math.td=Math.clz32;var ya=Math.abs,Ya=Math.cos,Za=Math.sin,$a=Math.tan,ab=Math.acos,bb=Math.atan,cb=Math.atan2,db=Math.exp,eb=Math.sqrt,Ba=Math.ceil,Aa=Math.floor,fb=Math.pow,za=Math.min;e.preloadedImages={};e.preloadedAudios={};Ka=8;la=Ka+175728;Sa.push();-B([0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,32,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4,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,82,64,0,0,0,0,0,0,82,64,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,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,-0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,32,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,4,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,82,64,0,0,0,0,0,0,82,64,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,82,64,0,0,0,0,0,0,82,64,2,16,0,0,0,0,0,0,0,0,0,0,0,0,16,64,232,174,0,0,8,0,0,0,1,0,0,0,0,0,0,0,2,16,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,128,150,64,0,0,0,0,0,128,150,64,4,144,195,0,0,0,0,0,0,0,0,0,0,0,16,64,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,88,64,0,0,0,0,0,0,88,64,0,0,12,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,88,64,0,0,0,0,0,0,88,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,64,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,82,64,0,0,0,0,0,0,82,64,0,32,3,2,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,66,64,0,0,0,0,0,0,66,64,0,0,0,0,0,32,131,64,0,0,0,0,0,192,136,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,64,0,0,0,0,0,0,66,64,0,0,0,0,0,32,131,64,0,0,0,0,0,192,136,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,176,193,0,0,0,0,0,0,0,0,0,0,0,16,64,180,181,0,0,147,0,0,0,1,0,0,0,0,0,0,0,64,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,16,0,2,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,5,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,88,64,0,0,0,0,0,0,88,64,0,176,193,0,0,0,0,0,0,0,0,0,0,0,0,0,172,185,0,0,16,0,0,0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,64,32,62,3,0,0,0,0,0,0,0,0,0,0,16,64,180,186,-0,0,122,0,0,0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,64,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,82,64,0,0,0,0,0,0,82,64],"i8",4,n.q);-B([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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,4,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,51,51,51,51,51,51,243,63,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,154,153,153,153,153,153,233,63,6,0,0,0,0,0,0,-0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,8,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,51,51,51,51,211,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,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,4,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,4,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,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,128,70,64,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,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154,153,153,153,153,153,217,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,51,51,51,51,227,63,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123,-20,174,71,225,122,228,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,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,1,0,0,0,6,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,1,0,0,0,7,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,1,0,0,0,8,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,1,0,0,0,4,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,1,0,0,0,0,0,0,0,0,1,0,0,0,4,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,1,0,0,0,4,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,3,0,0,0,0,0,0,0,0,1,0,0,0,4,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,4,0,0,0,0,0,0,0,0,1,0,0,0,4,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,5,0,0,0,0,0,0,0,0,1,0,0,0,19,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,26,176,216,0,0,1,0,0,0,1,0,0,0,4,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,1,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,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,3,0,0,0,8,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,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,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,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,154,153,153,153,153,153,217,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,123,20,174,71,225,122,228,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,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,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,128,70,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,4,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,1,0,0,0,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,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,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,6,0,0,0,0,0,0,0,0,1,0,0,0,4,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,7,0,0,0,0,0,0,0,0,1,0,0,0,4,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,1,0,0,0,4,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,9,-0,0,0,0,0,0,0,0,1,0,0,0,4,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,17,0,0,0,0,0,0,0,0,1,0,0,0,4,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,18,0,0,0,0,0,0,0,0,1,0,0,0,4,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,19,0,0,0,0,0,0,0,0,1,0,0,0,4,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,20,0,0,0,0,0,0,0,0,1,0,0,0,4,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,21,0,0,0,0,0,0,0,0,-1,0,0,0,4,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,10,0,0,0,0,0,0,0,0,1,0,0,0,4,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,11,0,0,0,0,0,0,0,0,1,0,0,0,4,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,12,0,0,0,0,0,0,0,0,1,0,0,0,4,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,13,0,0,0,0,0,0,0,0,1,0,0,0,4,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,14,0,0,0,0,0,0,0,0,1,0,0,0,4,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,15,0,0,0,0,0,0,0,0,1,0,0,0,4,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,0,0,0,0,0,0,1,0,0,0,4,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,22,0,0,0,0,0,0,0,0,1,0,0,0,4,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,24,0,0,0,0,0,0,0,0,1,0,0,0,4,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,23,0,0,0,0,0,0,0,0,1,0,0,0,4,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,25,0,0,0,0,0,0,0,0,1,0,0,0,10,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,144,216,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,240,191,0,0,0,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,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,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,-0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,-63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,37,117,2,154,8,27,218,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,44,212,154,230,29,167,234,63,106,222,113,138,142,228,232,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,93,220,70,3,120,11,226,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,208,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,-63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,93,220,70,3,120,11,226,63,93,220,70,3,120,11,226,63,93,220,70,3,120,11,226,63,13,113,172,139,219,104,220,63,100,93,220,70,3,120,237,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,210,111,95,7,206,25,231,63,120,11,36,40,126,140,227,63,181,21,251,203,238,201,225,63,210,111,95,7,206,25,231,63,210,111,95,7,206,-25,231,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,210,111,95,7,206,25,231,63,120,11,36,40,126,140,227,63,196,66,173,105,222,113,236,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,181,21,251,203,238,201,225,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,181,21,251,203,238,201,225,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,134,56,214,197,109,52,238,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,120,11,36,40,126,-140,227,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,166,10,70,37,117,2,222,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,106,222,113,138,142,228,232,63,0,0,0,-0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,244,108,86,125,174,182,222,63,17,54,60,189,82,150,201,63,244,108,86,125,174,182,222,63,59,1,77,132,13,79,225,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,-0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,-63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,62,232,217,172,250,92,197,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,130,115,70,148,246,6,199,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,208,63,0,0,-0,0,0,0,208,63,7,240,22,72,80,252,220,63,162,180,55,248,194,100,214,63,88,168,53,205,59,78,213,63,13,113,172,139,219,104,220,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,208,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,-0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,196,66,-173,105,222,113,236,63,0,0,0,0,0,0,208,63,127,217,61,121,88,168,209,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,196,66,173,105,222,113,236,63,19,242,65,207,102,213,211,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,16,122,54,171,62,87,229,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,-63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,-27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,-63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,-97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,-218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,-227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,-124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,-81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,-50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,-27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,-63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,-97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,-218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,-227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,-124,97,50,227,63,81,218,27,124,97,50,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,-209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,-188,227,20,29,201,209,63,244,108,86,125,174,182,214,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,196,66,173,105,222,113,236,63,16,122,54,171,62,87,229,63,245,219,215,129,115,70,204,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,1,77,132,13,79,175,226,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,-238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,1,77,132,13,79,175,226,63,1,77,132,13,79,175,226,63,1,77,132,13,79,175,226,63,181,21,251,203,238,201,225,63,204,93,75,200,7,61,240,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,210,111,95,7,206,25,231,63,210,-111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,106,222,113,138,142,228,232,63,210,111,95,7,206,25,231,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,16,122,54,171,62,87,229,63,181,21,251,203,238,201,225,63,44,212,154,230,29,167,234,63,210,111,95,7,206,25,231,63,106,222,113,138,142,228,232,63,16,122,54,171,62,87,229,63,106,222,113,138,142,228,232,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,16,122,-54,171,62,87,229,63,134,56,214,197,109,52,238,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,166,10,70,37,117,2,222,63,181,21,251,203,238,201,225,63,72,191,125,29,56,103,204,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,224,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,181,-21,251,203,238,201,225,63,72,191,125,29,56,103,204,63,72,191,125,29,56,103,204,63,0,0,0,0,0,0,224,63,72,191,125,29,56,103,204,63,44,212,154,230,29,167,234,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,2,154,8,27,158,-94,213,63,224,190,14,156,51,162,208,63,2,154,8,27,158,94,213,63,1,77,132,13,79,175,226,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,-227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,-201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,62,232,217,172,250,92,197,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,29,56,103,68,105,111,200,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,-209,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,231,29,167,232,72,46,225,63,162,180,55,248,194,100,214,63,72,191,125,29,56,103,204,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,-88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,-20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,234,149,178,12,113,172,215,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,-211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,106,222,113,138,142,228,232,63,0,0,0,0,0,0,240,63,152,221,147,135,133,90,215,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,196,66,173,105,222,113,236,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,72,191,125,29,-56,103,204,63,120,11,36,40,126,140,227,63,134,56,214,197,109,52,238,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,81,160,79,228,73,210,14,64,180,200,118,190,159,58,53,192,58,34,223,165,212,37,213,191,243,130,62,71,154,46,138,63,159,229,121,112,119,214,249,191,126,253,16,27,44,156,230,63,150,236,216,8,196,235,204,63,205,206,162,119,42,224,208,63,176,227,191,64,16,32,237,191,173,161,212,94,68,219,216,-63,59,161,124,230,81,150,118,63,211,110,112,249,122,132,123,63,129,204,206,162,119,42,228,191,209,173,215,244,160,160,200,63,106,223,55,25,176,63,132,63,190,202,144,25,94,255,132,63,28,150,6,126,84,195,196,191,165,73,41,232,246,226,35,64,169,217,3,173,192,144,193,63,8,196,144,65,147,105,137,63,250,68,158,36,93,51,208,191,1,240,153,54,45,194,94,63,13,156,125,47,207,148,151,63,137,181,248,20,0,227,137,63,229,169,88,70,52,203,177,191,143,0,201,207,161,103,166,191,92,181,198,251,204,180,136,63,77,164,-143,84,58,179,144,63,230,199,4,161,97,214,160,191,199,105,103,28,19,247,130,191,42,127,107,229,45,112,92,191,228,87,98,84,8,154,117,63,209,241,135,85,114,4,183,63,149,212,9,104,34,60,51,192,100,35,16,175,235,119,16,192,167,33,170,240,103,120,199,63,218,255,0,107,213,174,193,63,78,40,68,192,33,84,247,191,170,72,133,177,133,32,245,63,157,104,87,33,229,39,246,63,77,46,198,192,58,142,205,63,89,107,40,181,23,209,220,191,3,63,170,97,191,39,204,63,166,71,83,61,153,127,218,63,182,129,59,80,167,60,174,63,-81,76,222,0,51,223,185,191,245,118,149,255,218,11,166,63,212,165,53,188,15,246,148,63,31,173,32,188,44,220,144,63,40,44,241,128,178,201,35,64,35,90,225,76,2,138,183,63,72,163,101,81,150,41,127,63,187,180,134,247,193,158,147,63,23,168,123,83,71,125,160,191,33,43,174,224,109,148,139,63,51,115,220,132,214,30,181,191,160,120,132,137,245,252,143,63,105,53,36,238,177,244,145,191,184,205,51,122,94,191,106,63,146,62,173,162,63,52,205,191,126,176,231,198,79,62,152,191,7,35,155,80,45,199,164,63,62,24,194,123,-88,185,145,191,45,124,125,173,75,141,198,63,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,0,0,0,0,64,251,33,249,63,0,0,0,0,45,68,116,62,0,0,0,128,152,70,248,60,0,0,0,96,81,204,120,59,0,0,0,128,131,27,240,57,0,0,0,64,32,37,122,56,0,0,0,128,34,130,227,54,0,0,0,0,29,243,105,53,0,0,0,0,176,126,1,0,4,169,0,0,3,0,0,0,240,170,0,0,3,0,0,0,192,174,0,0,3,0,0,0,64,175,0,0,3,0,0,0,236,176,0,0,3,0,0,0,112,177,0,0,3,0,0,0,140,181,0,-0,3,0,0,0,124,173,0,0,3,0,0,0,168,184,0,0,3,0,0,0,116,185,0,0,3,0,0,0,68,189,0,0,3,0,0,0,140,186,0,0,0,0,0,0,180,170,0,0,0,0,0,0,152,174,0,0,0,0,0,0,24,175,0,0,0,0,0,0,196,176,0,0,0,0,0,0,72,177,0,0,0,0,0,0,100,181,0,0,0,0,0,0,24,173,0,0,0,0,0,0,128,184,0,0,0,0,0,0,76,185,0,0,0,0,0,0,28,189,0,0,0,0,0,0,100,186,0,0,4,0,0,0,144,190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],"i8",4,n.q+33336);-B([1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,225,1,0,1,0,0,0,196,169,0,0,8,0,0,0,4,0,0,0,44,131,1,0,1,0,0,0,60,170,0,0,40,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,190,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,198,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,1,0,0,0,205,126,1,0,1,0,0,0,0,0,0,0,72,0,0,0,2,0,-0,0,215,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,3,0,0,0,225,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,4,0,0,0,239,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,5,0,0,0,249,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,6,0,0,0,6,127,1,0,1,0,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,0,0,0,20,172,0,0,36,172,0,0,52,172,0,0,68,172,0,0,84,172,0,0,100,172,0,0,116,172,0,0,132,172,0,0,36,172,0,0,36,172,0,0,100,172,0,0,100,172,0,0,0,0,0,0,31,0,0,0,63,0,0,0,127,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,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,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,0,0,0,0,0,0,0,0,0,0,6,0,0,0,7,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,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,204,127,1,0,1,0,0,0,160,172,0,0,24,1,0,0,1,0,0,0,209,127,1,0,1,0,0,0,160,172,0,0,24,1,0,0,2,0,0,0,215,127,1,0,1,0,0,0,160,172,0,0,24,1,0,0,3,0,0,0,224,127,1,0,1,0,0,0,160,172,0,0,24,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,234,127,1,0,1,0,0,0,0,0,0,0,112,1,0,0,1,0,0,0,244,127,1,0,1,0,0,0,0,0,0,0,112,1,0,0,2,0,0,0,255,127,1,0,1,0,0,0,0,0,0,0,56,1,0,0,3,0,0,0,13,128,1,0,1,0,0,0,0,0,0,0,56,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,0,0,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,4,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,9,0,0,0,0,0,0,0,0,0,0,0,10,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,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,49,131,1,0,1,0,0,0,32,174,0,0,168,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,53,131,1,0,1,0,0,0,-0,0,0,0,200,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,115,2,0,7,93,2,0,152,94,2,0,216,100,2,0,207,107,2,0,14,112,2,0,142,115,2,0,159,115,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,117,131,1,0,1,0,0,0,204,175,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,121,131,1,0,1,0,0,0,0,0,0,0,32,2,0,0,2,0,0,0,131,131,1,0,1,0,0,0,0,0,0,0,88,2,0,0,0,0,0,0,140,131,1,0,1,0,0,0,0,0,0,0,88,2,0,0,3,0,0,0,149,131,1,0,1,0,0,0,0,0,0,0,88,2,0,0,0,0,0,0,159,131,1,0,1,0,0,0,0,0,0,0,32,2,0,0,3,0,0,0,-171,131,1,0,1,0,0,0,0,0,0,0,32,2,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,15,0,0,0,16,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,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,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,17,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,19,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,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,3,0,0,0,3,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,236,132,1,0,255,255,255,255,76,176,0,0,144,2,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,239,132,1,0,255,255,255,255,0,0,0,0,176,2,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,234,115,2,0,7,93,2,0,216,100,2,0,152,94,2,0,14,112,2,0,207,107,2,0,159,115,2,0,142,115,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,234,1,0,1,0,0,0,192,177,0,0,232,2,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,194,1,0,1,0,0,0,0,0,0,0,8,3,0,0,1,0,0,0,165,134,1,0,1,0,0,0,0,0,0,0,8,3,0,0,2,0,0,0,250,193,1,0,1,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,5,0,0,0,4,0,0,0,13,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,164,138,1,0,178,138,1,0,200,138,1,0,41,129,2,0,214,138,1,0,229,138,1,0,234,138,-1,0,8,139,1,0,41,129,2,0,26,139,1,0,74,139,1,0,41,129,2,0,104,139,1,0,144,139,1,0,158,139,1,0,205,139,1,0,1,140,1,0,18,140,1,0,55,140,1,0,90,140,1,0,96,140,1,0,124,140,1,0,153,140,1,0,180,140,1,0,213,140,1,0,239,140,1,0,17,141,1,0,48,141,1,0,86,141,1,0,110,141,1,0,142,141,1,0,171,141,1,0,207,141,1,0,219,141,1,0,41,129,2,0,230,141,1,0,12,142,1,0,48,142,1,0,86,142,1,0,41,129,2,0,140,142,1,0,164,142,1,0,177,142,1,0,224,142,1,0,219,141,1,0,41,129,2,0,237,142,1,0,246,142,1,0,23,143,1,0,82,143,1,0,157,-143,1,0,241,143,1,0,19,144,1,0,40,144,1,0,63,144,1,0,85,144,1,0,109,144,1,0,41,129,2,0,131,144,1,0,158,144,1,0,194,144,1,0,230,144,1,0,11,145,1,0,41,129,2,0,44,145,1,0,70,145,1,0,88,145,1,0,101,145,1,0,114,145,1,0,134,145,1,0,149,145,1,0,157,145,1,0,178,145,1,0,192,145,1,0,254,145,1,0,9,146,1,0,219,141,1,0,41,129,2,0,15,146,1,0,27,146,1,0,42,146,1,0,90,140,1,0,41,129,2,0,61,146,1,0,102,146,1,0,132,146,1,0,148,146,1,0,165,146,1,0,172,146,1,0,187,146,1,0,203,146,1,0,15,147,1,0,22,147,1,0,90,140,1,0,-41,129,2,0,32,147,1,0,76,147,1,0,87,147,1,0,96,147,1,0,105,147,1,0,122,147,1,0,139,147,1,0,159,147,1,0,219,141,1,0,41,129,2,0,171,147,1,0,187,147,1,0,201,147,1,0,215,147,1,0,228,147,1,0,241,147,1,0,7,148,1,0,16,148,1,0,31,148,1,0,44,148,1,0,61,148,1,0,219,141,1,0,41,129,2,0,72,148,1,0,103,148,1,0,41,129,2,0,121,148,1,0,136,148,1,0,184,148,1,0,194,148,1,0,207,148,1,0,220,148,1,0,233,148,1,0,246,148,1,0,249,148,1,0,41,129,2,0,253,148,1,0,41,129,2,0,32,149,1,0,81,149,1,0,128,149,1,0,151,149,1,0,178,-149,1,0,205,149,1,0,219,141,1,0,41,129,2,0,233,149,1,0,41,129,2,0,17,150,1,0,29,150,1,0,48,150,1,0,67,150,1,0,88,150,1,0,109,150,1,0,113,150,1,0,90,140,1,0,41,129,2,0,125,150,1,0,41,129,2,0,141,150,1,0,155,150,1,0,167,150,1,0,180,150,1,0,212,150,1,0,234,150,1,0,41,129,2,0,254,150,1,0,71,151,1,0,141,151,1,0,189,151,1,0,240,151,1,0,247,151,1,0,30,152,1,0,69,152,1,0,41,129,2,0,74,152,1,0,0,0,0,0,35,0,0,0,0,0,0,0,36,0,0,0,37,0,0,0,6,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,4,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,15,0,0,0,7,0,0,0,5,0,0,0,16,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,162,234,1,0,1,0,0,0,236,180,0,0,120,3,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,216,194,1,0,1,0,0,0,0,0,0,0,152,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,92,2,0,41,92,2,0,249,160,1,0,110,92,2,0,169,92,2,0,203,92,2,0,209,92,2,0,234,115,2,0,248,92,2,0,7,93,2,0,36,93,2,0,47,93,2,0,81,93,2,0,135,93,2,0,189,93,2,0,248,93,2,0,46,94,-2,0,80,94,2,0,95,94,2,0,144,94,2,0,152,94,2,0,190,152,1,0,199,152,1,0,181,94,2,0,208,152,1,0,255,94,2,0,217,152,1,0,9,95,2,0,226,152,1,0,19,95,2,0,98,95,2,0,157,95,2,0,238,152,1,0,216,95,2,0,227,95,2,0,40,96,2,0,54,96,2,0,128,96,2,0,142,96,2,0,156,96,2,0,167,96,2,0,216,96,2,0,24,97,2,0,32,97,2,0,40,97,2,0,99,97,2,0,153,97,2,0,165,97,2,0,254,160,1,0,177,97,2,0,187,97,2,0,198,97,2,0,227,97,2,0,25,98,2,0,216,100,2,0,250,100,2,0,6,101,2,0,197,103,2,0,246,103,2,0,34,104,2,0,88,104,2,0,101,104,2,0,135,-104,2,0,169,104,2,0,178,104,2,0,252,104,2,0,6,105,2,0,75,105,2,0,129,105,2,0,140,105,2,0,17,106,2,0,38,106,2,0,246,152,1,0,48,106,2,0,58,106,2,0,112,106,2,0,176,106,2,0,190,106,2,0,18,107,2,0,33,107,2,0,48,107,2,0,127,107,2,0,6,161,1,0,191,107,2,0,201,107,2,0,207,107,2,0,251,107,2,0,34,108,2,0,51,108,2,0,62,108,2,0,131,108,2,0,200,108,2,0,215,108,2,0,231,108,2,0,249,108,2,0,9,109,2,0,25,109,2,0,38,109,2,0,48,109,2,0,102,109,2,0,111,109,2,0,175,109,2,0,194,109,2,0,11,161,1,0,202,109,2,0,0,110,2,0,-39,110,2,0,93,110,2,0,132,110,2,0,146,110,2,0,200,110,2,0,18,111,2,0,92,111,2,0,103,111,2,0,157,111,2,0,162,111,2,0,191,111,2,0,220,111,2,0,231,111,2,0,14,112,2,0,38,112,2,0,92,112,2,0,146,112,2,0,158,112,2,0,197,112,2,0,208,112,2,0,1,113,2,0,50,113,2,0,54,173,1,0,89,113,2,0,133,113,2,0,187,113,2,0,241,113,2,0,251,113,2,0,24,114,2,0,88,114,2,0,142,114,2,0,17,161,1,0,166,114,2,0,210,114,2,0,249,114,2,0,47,115,2,0,108,115,2,0,142,115,2,0,148,115,2,0,159,115,2,0,198,115,2,0,0,0,0,0,0,0,0,0,48,0,0,0,-0,0,0,0,49,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,50,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,8,0,0,0,6,0,0,0,19,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,138,159,1,0,1,0,0,0,8,184,0,0,208,3,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,141,159,1,0,1,0,0,0,0,0,0,0,240,3,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,52,0,0,0,0,0,0,0,53,0,0,0,54,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,5,0,0,0,55,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,21,0,0,0,9,0,0,0,7,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,237,160,1,0,1,0,0,0,212,184,0,0,40,4,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,241,160,1,0,1,0,0,0,0,0,0,0,72,4,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,249,160,1,0,234,115,2,0,7,93,2,0,254,160,1,0,25,98,2,0,216,100,2,0,6,161,1,0,251,107,2,0,175,109,2,0,11,161,1,0,231,111,2,0,14,112,-2,0,54,173,1,0,17,161,1,0,142,115,2,0,159,115,2,0,56,0,0,0,0,0,0,0,57,0,0,0,58,0,0,0,10,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,11,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,192,171,1,0,1,0,0,0,236,185,0,0,128,4,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,196,171,1,0,1,0,0,0,0,0,0,0,160,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,92,2,0,204,171,-1,0,234,115,2,0,7,93,2,0,36,93,2,0,215,171,1,0,221,171,1,0,232,171,1,0,239,171,1,0,47,93,2,0,135,93,2,0,247,171,1,0,253,171,1,0,8,172,1,0,46,94,2,0,80,94,2,0,152,94,2,0,15,172,1,0,255,94,2,0,19,95,2,0,157,95,2,0,25,172,1,0,40,96,2,0,54,96,2,0,128,96,2,0,36,172,1,0,142,96,2,0,44,172,1,0,53,172,1,0,67,172,1,0,77,172,1,0,99,97,2,0,86,172,1,0,165,97,2,0,198,97,2,0,227,97,2,0,92,172,1,0,42,98,2,0,85,98,2,0,126,98,2,0,161,98,2,0,202,98,2,0,237,98,2,0,22,99,2,0,57,99,2,0,98,99,2,0,133,99,2,0,174,99,2,0,-209,99,2,0,250,99,2,0,29,100,2,0,70,100,2,0,105,100,2,0,146,100,2,0,181,100,2,0,216,100,2,0,99,172,1,0,250,100,2,0,111,172,1,0,34,104,2,0,135,104,2,0,75,105,2,0,124,172,1,0,48,107,2,0,137,172,1,0,191,107,2,0,207,107,2,0,147,172,1,0,251,107,2,0,34,108,2,0,51,108,2,0,162,172,1,0,180,172,1,0,62,108,2,0,200,108,2,0,215,108,2,0,231,108,2,0,249,108,2,0,9,109,2,0,196,172,1,0,207,172,1,0,218,172,1,0,25,109,2,0,175,109,2,0,180,109,2,0,223,172,1,0,232,172,1,0,241,172,1,0,1,173,1,0,8,173,1,0,0,110,2,0,39,110,-2,0,93,110,2,0,146,110,2,0,162,111,2,0,191,111,2,0,16,173,1,0,14,112,2,0,23,173,1,0,158,112,2,0,32,173,1,0,208,112,2,0,40,173,1,0,50,113,2,0,54,173,1,0,89,113,2,0,133,113,2,0,61,173,1,0,24,114,2,0,88,114,2,0,71,173,1,0,142,114,2,0,166,114,2,0,249,114,2,0,81,173,1,0,95,173,1,0,47,115,2,0,54,115,2,0,108,115,2,0,142,115,2,0,159,115,2,0,198,115,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,0,0,0,69,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,71,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,26,0,0,0,0,0,0,0,27,0,0,0,12,0,0,0,9,0,0,0,28,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,199,182,1,0,255,255,255,255,164,188,0,0,216,4,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,203,182,1,0,255,255,255,255,0,0,0,0,248,4,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,65,66,0,0,4,254,1,0,65,73,0,0,222,253,1,0,65,82,0,0,177,253,1,0,65,88,0,0,25,254,1,0,66,32,0,0,85,0,2,0,66,73,0,0,102,0,2,0,67,66,0,0,158,254,1,0,67,79,0,0,140,254,1,0,67,88,0,0,171,254,1,0,-72,32,0,0,207,254,1,0,72,66,0,0,217,254,1,0,72,73,0,0,101,255,1,0,72,88,0,0,232,254,1,0,72,98,0,0,25,255,1,0,72,105,0,0,76,255,1,0,72,114,0,0,254,254,1,0,72,120,0,0,47,255,1,0,73,32,0,0,119,0,2,0,75,66,0,0,48,254,1,0,75,73,0,0,120,254,1,0,75,82,0,0,100,254,1,0,75,88,0,0,81,254,1,0,78,66,0,0,119,255,1,0,78,73,0,0,190,255,1,0,78,82,0,0,214,255,1,0,78,88,0,0,162,255,1,0,80,65,0,0,55,0,2,0,80,66,0,0,243,255,1,0,80,73,0,0,39,0,2,0,80,88,0,0,19,0,2,0,82,32,0,0,24,2,2,0,83,32,0,0,70,0,2,0,90,68,0,0,180,-0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,15,0,0,0,122,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,16,0,0,0,130,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,17,0,0,0,138,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,17,0,0,0,147,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,17,0,0,0,155,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,19,0,0,0,163,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,20,0,0,0,171,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,21,0,0,0,179,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,21,0,0,0,188,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,21,0,0,-0,196,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,22,0,0,0,204,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,23,0,0,0,213,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,24,0,0,0,222,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,24,0,0,0,232,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,24,0,0,0,241,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,25,0,0,0,250,193,1,0,1,0,0,0,132,194,0,0,0,0,0,0,25,0,0,0,1,194,1,0,1,0,0,0,132,194,0,0,0,0,0,0,26,0,0,0,7,194,1,0,1,0,0,0,136,194,0,0,0,0,0,0,10,0,0,0,16,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,11,0,0,0,24,194,1,0,1,0,-0,0,140,194,0,0,0,0,0,0,12,0,0,0,32,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,12,0,0,0,41,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,12,0,0,0,49,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,14,0,0,0,57,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,14,0,0,0,64,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,13,0,0,0,72,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,5,0,0,0,80,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,6,0,0,0,88,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,7,0,0,0,96,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,7,0,0,0,105,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,-7,0,0,0,113,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,9,0,0,0,121,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,9,0,0,0,128,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,8,0,0,0,136,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,0,0,0,0,144,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,1,0,0,0,153,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,2,0,0,0,162,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,2,0,0,0,172,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,2,0,0,0,181,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,4,0,0,0,190,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,4,0,0,0,198,194,1,0,1,-0,0,0,144,194,0,0,0,0,0,0,3,0,0,0,207,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,18,0,0,0,216,194,1,0,1,0,0,0,120,194,0,0,0,0,0,0,27,0,0,0,224,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,28,0,0,0,232,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,29,0,0,0,240,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,29,0,0,0,249,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,29,0,0,0,1,195,1,0,1,0,0,0,148,194,0,0,0,0,0,0,30,0,0,0,9,195,1,0,1,0,0,0,152,194,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,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,-0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,116,198,1,0,164,194,0,0,1,0,0,0,192,194,0,0,0,0,0,0,0,0,0,0,72,0,0,0,73,0,0,0,1,0,0,0,0,0,0,0,86,225,1,0,0,0,0,0,180,194,0,0,188,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,24,1,0,0,48,1,0,0,176,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,31,0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,206,1,0,210,206,1,0,214,206,1,0,221,206,1,0,225,206,1,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,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,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,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,1,0,0,0,64,0,0,0,104,196,0,0,136,196,0,0,144,196,0,0,2,0,0,0,4,0,0,0,124,196,0,0,2,0,0,0,4,0,0,0,2,0,0,0,8,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,4,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,211,1,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,10,0,0,0,56,198,0,0,188,197,0,0,32,198,0,0,0,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,22,0,0,0,6,0,0,0,74,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,-3,0,0,0,9,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,10,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,0,0,0,0,34,0,0,0,11,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,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,8,0,0,0,0,0,0,0,0,0,0,0,35,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,0,255,255,255,255,0,0,0,0,0,0,0,0,36,0,0,0,0,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,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,10,-0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,1,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,19,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,1,0,0,0,30,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,1,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,19,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,-19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,19,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,-0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,46,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,47,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,-19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,48,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,-6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,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,128,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,218,219,1,0,227,219,1,0,234,219,1,0,0,0,0,0,0,0,0,0,248,219,1,0,254,-13,2,0,51,15,2,0,255,219,1,0,6,220,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,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,164,221,1,0,8,0,0,0,3,0,0,0,173,221,1,0,177,221,1,0,11,0,0,0,6,0,0,0,159,234,1,0,189,221,1,0,2,0,0,0,1,0,0,0,192,221,1,0,196,221,1,0,4,0,0,0,2,0,0,0,201,221,1,0,205,221,1,0,4,0,0,0,4,0,0,0,210,221,1,0,215,221,1,0,5,0,0,0,5,0,0,0,221,221,1,0,225,221,1,0,4,0,0,0,7,0,0,0,230,221,1,0,234,221,1,0,5,0,0,0,9,0,0,0,240,221,-1,0,244,221,1,0,4,0,0,0,10,0,0,0,249,221,1,0,254,221,1,0,4,0,0,0,12,0,0,0,3,222,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,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,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,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,28,231,1,0,0,0,0,0,1,0,0,-0,36,231,1,0,1,0,0,0,0,0,0,0,193,13,2,0,1,0,0,0,1,0,0,0,189,109,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,225,1,0,49,0,0,0,0,0,0,0,0,0,0,0,84,3,2,0,16,0,0,0,68,122,2,0,128,0,0,0,120,225,1,0,64,0,0,0,129,248,1,0,16,0,0,0,122,225,1,0,64,0,0,0,0,0,0,0,0,0,0,0,70,225,1,0,1,0,0,0,77,225,1,0,2,0,0,0,82,225,1,0,3,0,0,0,133,248,1,0,4,0,0,0,192,248,1,0,5,0,0,0,86,225,1,0,6,0,0,0,189,109,2,0,8,0,0,0,90,225,1,0,33,0,0,0,94,225,1,0,34,0,0,0,98,225,1,0,34,0,0,0,102,225,1,0,1,0,0,0,107,225,1,0,7,0,0,0,113,-225,1,0,39,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,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,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,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,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,255,255,255,255,0,0,0,0,38,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,230,1,0,15,230,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,156,234,1,0,159,234,1,0,162,234,1],"i8",4,n.q+43580);-B([1,0,0,0,2,0,0,0,255,255,255,255,127,234,1,0,133,234,1,0,189,109,2,0,0,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,100,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,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,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,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,8,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,12,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,255,255,255,255,0,0,0,0,0,0,0,0,40,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133,248,1,0,0,216,0,0,216,131,0,0,0,0,0,0,137,248,1,0,0,216,0,0,8,132,0,0,0,0,0,0,16,2,2,0,0,216,0,0,56,-132,0,0,0,0,0,0,145,248,1,0,0,216,0,0,56,132,0,0,0,0,0,0,150,248,1,0,0,216,0,0,104,132,0,0,0,0,0,0,157,248,1,0,24,216,0,0,104,132,0,0,0,0,0,0,163,248,1,0,0,216,0,0,152,132,0,0,0,0,0,0,167,248,1,0,0,216,0,0,200,132,0,0,0,0,0,0,189,109,2,0,0,216,0,0,248,132,0,0,0,0,0,0,176,248,1,0,0,216,0,0,248,132,0,0,0,0,0,0,186,248,1,0,0,216,0,0,40,133,0,0,0,0,0,0,192,248,1,0,0,216,0,0,88,133,0,0,0,0,0,0,200,248,1,0,0,216,0,0,136,133,0,0,0,0,0,0,210,248,1,0,0,216,0,0,184,133,0,0,0,0,0,0,224,248,1,0,0,216,0,0,232,-133,0,0,0,0,0,0,230,248,1,0,0,216,0,0,24,134,0,0,0,0,0,0,239,248,1,0,0,216,0,0,72,134,0,0,0,0,0,0,247,248,1,0,0,216,0,0,120,134,0,0,0,0,0,0,0,249,1,0,0,216,0,0,168,134,0,0,0,0,0,0,8,249,1,0,0,216,0,0,216,134,0,0,0,0,0,0,13,249,1,0,0,216,0,0,8,135,0,0,0,0,0,0,17,249,1,0,0,216,0,0,56,135,0,0,0,0,0,0,24,249,1,0,0,216,0,0,104,135,0,0,0,0,0,0,30,249,1,0,0,216,0,0,152,135,0,0,0,0,0,0,40,249,1,0,48,216,0,0,200,135,0,0,0,0,0,0,49,249,1,0,0,216,0,0,216,131,0,0,0,0,0,0,54,249,1,0,0,216,0,0,216,131,0,0,0,0,-0,0,64,249,1,0,0,216,0,0,248,135,0,0,0,0,0,0,71,249,1,0,0,216,0,0,40,136,0,0,0,0,0,0,84,249,1,0,0,216,0,0,88,136,0,0,0,0,0,0,98,249,1,0,0,216,0,0,136,136,0,0,0,0,0,0,112,249,1,0,0,216,0,0,184,136,0,0,0,0,0,0,124,249,1,0,0,216,0,0,232,136,0,0,0,0,0,0,137,249,1,0,0,216,0,0,24,137,0,0,0,0,0,0,146,249,1,0,0,216,0,0,72,137,0,0,0,0,0,0,156,249,1,0,0,216,0,0,120,137,0,0,0,0,0,0,165,249,1,0,0,216,0,0,168,137,0,0,0,0,0,0,173,249,1,0,0,216,0,0,216,137,0,0,0,0,0,0,181,249,1,0,0,216,0,0,8,138,0,0,0,0,0,0,190,-249,1,0,0,216,0,0,56,138,0,0,0,0,0,0,194,249,1,0,0,216,0,0,104,138,0,0,0,0,0,0,205,249,1,0,0,216,0,0,152,138,0,0,0,0,0,0,209,249,1,0,0,216,0,0,200,138,0,0,0,0,0,0,219,249,1,0,0,216,0,0,248,138,0,0,0,0,0,0,228,249,1,0,0,216,0,0,40,139,0,0,0,0,0,0,236,249,1,0,0,216,0,0,88,139,0,0,0,0,0,0,249,249,1,0,0,216,0,0,136,139,0,0,0,0,0,0,5,250,1,0,0,216,0,0,184,139,0,0,0,0,0,0,16,250,1,0,0,216,0,0,232,139,0,0,0,0,0,0,32,250,1,0,0,216,0,0,24,140,0,0,0,0,0,0,46,250,1,0,0,216,0,0,72,140,0,0,0,0,0,0,61,250,1,0,-0,216,0,0,120,140,0,0,0,0,0,0,71,250,1,0,0,216,0,0,168,140,0,0,0,0,0,0,80,250,1,0,0,216,0,0,216,140,0,0,0,0,0,0,90,250,1,0,0,216,0,0,8,141,0,0,0,0,0,0,100,250,1,0,0,216,0,0,56,141,0,0,0,0,0,0,107,250,1,0,0,216,0,0,104,141,0,0,0,0,0,0,114,250,1,0,0,216,0,0,152,141,0,0,0,0,0,0,124,250,1,0,72,216,0,0,0,0,0,0,0,0,0,0,131,250,1,0,72,216,0,0,0,0,0,0,0,0,0,0,84,248,1,0,96,216,0,0,0,0,0,0,0,0,0,0,139,250,1,0,120,216,0,0,200,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,248,1,0,129,248,1,0,126,122,2,-0,131,248,1,0,0,0,0,0,0,0,0,0,0,0,0,0,75,0,0,0,76,0,0,0,23,0,0,0,4,0,0,0,2,0,0,0,12,0,0,0,77,0,0,0,76,0,0,0,23,0,0,0,5,0,0,0,0,0,0,0,13,0,0,0,75,0,0,0,76,0,0,0,23,0,0,0,4,0,0,0,2,0,0,0,12,0,0,0,78,0,0,0,79,0,0,0,24,0,0,0,6,0,0,0,3,0,0,0,14,0,0,0,80,0,0,0,81,0,0,0,23,0,0,0,7,0,0,0,0,0,0,0,15,0,0,0,75,0,0,0,76,0,0,0,23,0,0,0,8,0,0,0,2,0,0,0,12,0,0,0,16,0,0,0,17,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,18,0,0,0,19,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,141,251,1,0,-148,251,1,0,0,0,0,0,0,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,-0,0,76,0,0,0,77,0,0,0,78,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,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,177,253,1,0,193,253,1,0,206,253,1,0,0,0,0,0,0,0,0,0,4,0,0,0,211,253,1,0,0,0,0,0,0,0,0,0,222,253,1,0,193,253,1,0,206,253,1,0,0,0,0,0,245,253,1,0,5,0,0,0,211,253,1,0,0,0,0,0,253,253,1,0,4,254,1,0,193,253,1,0,20,254,1,0,0,0,0,0,0,0,0,0,6,0,0,0,211,253,1,0,42,13,2,0,0,0,0,0,25,254,1,0,193,253,1,0,20,254,1,0,0,0,0,0,245,253,-1,0,7,0,0,0,211,253,1,0,42,13,2,0,253,253,1,0,48,254,1,0,61,254,1,0,20,254,1,0,0,0,0,0,0,0,0,0,10,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,81,254,1,0,61,254,1,0,20,254,1,0,0,0,0,0,253,253,1,0,11,0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,100,254,1,0,61,254,1,0,114,254,1,0,0,0,0,0,0,0,0,0,8,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,120,254,1,0,61,254,1,0,114,254,1,0,0,0,0,0,253,253,1,0,9,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,140,254,1,0,140,254,1,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,148,254,1,0,0,0,0,0,0,0,0,0,158,254,-1,0,140,254,1,0,42,13,2,0,0,0,0,0,0,0,0,0,14,0,0,0,148,254,1,0,42,13,2,0,0,0,0,0,171,254,1,0,140,254,1,0,42,13,2,0,0,0,0,0,245,253,1,0,15,0,0,0,148,254,1,0,42,13,2,0,253,253,1,0,191,254,1,0,140,254,1,0,0,0,0,0,0,0,0,0,245,253,1,0,13,0,0,0,148,254,1,0,0,0,0,0,253,253,1,0,207,254,1,0,207,254,1,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,211,253,1,0,0,0,0,0,0,0,0,0,217,254,1,0,207,254,1,0,42,13,2,0,0,0,0,0,0,0,0,0,18,0,0,0,211,253,1,0,42,13,2,0,0,0,0,0,232,254,1,0,207,254,1,0,42,13,2,0,0,0,0,0,245,253,1,0,19,-0,0,0,211,253,1,0,42,13,2,0,253,253,1,0,254,254,1,0,207,254,1,0,0,0,0,0,15,255,1,0,0,0,0,0,20,0,0,0,211,253,1,0,0,0,0,0,0,0,0,0,25,255,1,0,207,254,1,0,42,13,2,0,15,255,1,0,0,0,0,0,22,0,0,0,211,253,1,0,42,13,2,0,0,0,0,0,47,255,1,0,207,254,1,0,42,13,2,0,15,255,1,0,245,253,1,0,23,0,0,0,211,253,1,0,42,13,2,0,253,253,1,0,76,255,1,0,207,254,1,0,0,0,0,0,15,255,1,0,245,253,1,0,21,0,0,0,211,253,1,0,0,0,0,0,253,253,1,0,101,255,1,0,207,254,1,0,0,0,0,0,0,0,0,0,245,253,1,0,17,0,0,0,211,253,1,0,0,0,0,0,253,253,-1,0,119,255,1,0,141,255,1,0,42,13,2,0,0,0,0,0,0,0,0,0,26,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,162,255,1,0,141,255,1,0,42,13,2,0,0,0,0,0,253,253,1,0,27,0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,190,255,1,0,141,255,1,0,0,0,0,0,0,0,0,0,253,253,1,0,25,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,214,255,1,0,141,255,1,0,237,255,1,0,0,0,0,0,0,0,0,0,24,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,243,255,1,0,1,0,2,0,42,13,2,0,0,0,0,0,0,0,0,0,30,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,19,0,2,0,1,0,2,0,42,13,2,0,0,0,0,0,253,253,1,0,31,-0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,39,0,2,0,1,0,2,0,0,0,0,0,0,0,0,0,253,253,1,0,29,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,55,0,2,0,1,0,2,0,237,255,1,0,0,0,0,0,0,0,0,0,28,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,70,0,2,0,70,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,77,0,2,0,0,0,0,0,0,0,0,0,85,0,2,0,96,0,2,0,42,13,2,0,0,0,0,0,0,0,0,0,2,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,102,0,2,0,96,0,2,0,42,13,2,0,0,0,0,0,253,253,1,0,3,0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,119,0,2,0,96,0,2,0,0,0,0,0,0,0,0,0,253,253,1,0,1,-0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,24,2,2,0,96,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,132,0,2,0,158,0,2,0,173,0,2,0,0,0,0,0,253,253,1,0,33,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,180,0,2,0,193,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,77,0,2,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,255,255,255,255,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,161,3,2,0,198,0,0,0,167,3,2,0,193,0,0,0,174,3,2,0,194,0,0,0,180,3,-2,0,192,0,0,0,187,3,2,0,145,3,0,0,193,3,2,0,197,0,0,0,199,3,2,0,195,0,0,0,206,3,2,0,196,0,0,0,211,3,2,0,146,3,0,0,216,3,2,0,199,0,0,0,223,3,2,0,167,3,0,0,227,3,2,0,33,32,0,0,234,3,2,0,148,3,0,0,240,3,2,0,208,0,0,0,244,3,2,0,201,0,0,0,251,3,2,0,202,0,0,0,1,4,2,0,200,0,0,0,8,4,2,0,149,3,0,0,16,4,2,0,151,3,0,0,20,4,2,0,203,0,0,0,25,4,2,0,147,3,0,0,31,4,2,0,205,0,0,0,38,4,2,0,206,0,0,0,44,4,2,0,204,0,0,0,51,4,2,0,153,3,0,0,56,4,2,0,207,0,0,0,61,4,2,0,154,3,0,0,67,4,2,0,155,3,0,0,74,4,2,0,156,3,0,0,77,-4,2,0,209,0,0,0,84,4,2,0,157,3,0,0,87,4,2,0,82,1,0,0,93,4,2,0,211,0,0,0,100,4,2,0,212,0,0,0,106,4,2,0,210,0,0,0,113,4,2,0,169,3,0,0,119,4,2,0,159,3,0,0,127,4,2,0,216,0,0,0,134,4,2,0,213,0,0,0,141,4,2,0,214,0,0,0,146,4,2,0,166,3,0,0,150,4,2,0,160,3,0,0,153,4,2,0,51,32,0,0,159,4,2,0,168,3,0,0,163,4,2,0,161,3,0,0,167,4,2,0,96,1,0,0,174,4,2,0,163,3,0,0,180,4,2,0,222,0,0,0,186,4,2,0,164,3,0,0,190,4,2,0,152,3,0,0,196,4,2,0,218,0,0,0,203,4,2,0,219,0,0,0,209,4,2,0,217,0,0,0,216,4,2,0,165,3,0,0,224,4,2,0,-220,0,0,0,229,4,2,0,158,3,0,0,232,4,2,0,221,0,0,0,239,4,2,0,120,1,0,0,244,4,2,0,150,3,0,0,249,4,2,0,225,0,0,0,0,5,2,0,226,0,0,0,6,5,2,0,180,0,0,0,12,5,2,0,230,0,0,0,18,5,2,0,224,0,0,0,25,5,2,0,53,33,0,0,33,5,2,0,177,3,0,0,39,5,2,0,38,0,0,0,43,5,2,0,39,34,0,0,47,5,2,0,32,34,0,0,51,5,2,0,229,0,0,0,57,5,2,0,72,34,0,0,63,5,2,0,227,0,0,0,70,5,2,0,228,0,0,0,75,5,2,0,30,32,0,0,81,5,2,0,178,3,0,0,86,5,2,0,166,0,0,0,93,5,2,0,34,32,0,0,98,5,2,0,41,34,0,0,102,5,2,0,231,0,0,0,109,5,2,0,184,0,0,0,115,5,2,0,162,-0,0,0,120,5,2,0,199,3,0,0,124,5,2,0,198,2,0,0,129,5,2,0,99,38,0,0,135,5,2,0,69,34,0,0,140,5,2,0,169,0,0,0,145,5,2,0,181,33,0,0,151,5,2,0,42,34,0,0,155,5,2,0,164,0,0,0,162,5,2,0,211,33,0,0,167,5,2,0,32,32,0,0,174,5,2,0,147,33,0,0,179,5,2,0,176,0,0,0,183,5,2,0,180,3,0,0,189,5,2,0,102,38,0,0,195,5,2,0,247,0,0,0,202,5,2,0,233,0,0,0,209,5,2,0,234,0,0,0,215,5,2,0,232,0,0,0,222,5,2,0,5,34,0,0,228,5,2,0,3,32,0,0,233,5,2,0,2,32,0,0,238,5,2,0,181,3,0,0,246,5,2,0,97,34,0,0,252,5,2,0,183,3,0,0,0,6,2,0,240,0,-0,0,4,6,2,0,235,0,0,0,9,6,2,0,172,32,0,0,14,6,2,0,3,34,0,0,20,6,2,0,146,1,0,0,25,6,2,0,0,34,0,0,32,6,2,0,189,0,0,0,39,6,2,0,188,0,0,0,46,6,2,0,190,0,0,0,53,6,2,0,68,32,0,0,59,6,2,0,179,3,0,0,65,6,2,0,101,34,0,0,68,6,2,0,62,0,0,0,71,6,2,0,212,33,0,0,76,6,2,0,148,33,0,0,81,6,2,0,101,38,0,0,88,6,2,0,38,32,0,0,95,6,2,0,237,0,0,0,102,6,2,0,238,0,0,0,108,6,2,0,161,0,0,0,114,6,2,0,236,0,0,0,121,6,2,0,17,33,0,0,127,6,2,0,30,34,0,0,133,6,2,0,43,34,0,0,137,6,2,0,185,3,0,0,142,6,2,0,191,0,0,0,149,6,2,0,8,34,-0,0,154,6,2,0,239,0,0,0,159,6,2,0,186,3,0,0,165,6,2,0,208,33,0,0,170,6,2,0,187,3,0,0,177,6,2,0,41,35,0,0,182,6,2,0,171,0,0,0,188,6,2,0,144,33,0,0,193,6,2,0,8,35,0,0,199,6,2,0,28,32,0,0,205,6,2,0,100,34,0,0,208,6,2,0,10,35,0,0,215,6,2,0,23,34,0,0,222,6,2,0,202,37,0,0,226,6,2,0,14,32,0,0,230,6,2,0,57,32,0,0,237,6,2,0,24,32,0,0,243,6,2,0,60,0,0,0,246,6,2,0,175,0,0,0,251,6,2,0,20,32,0,0,1,7,2,0,181,0,0,0,7,7,2,0,183,0,0,0,202,14,2,0,18,34,0,0,14,7,2,0,188,3,0,0,17,7,2,0,7,34,0,0,23,7,2,0,160,0,0,0,28,-7,2,0,19,32,0,0,34,7,2,0,96,34,0,0,37,7,2,0,11,34,0,0,40,7,2,0,172,0,0,0,44,7,2,0,9,34,0,0,50,7,2,0,132,34,0,0,55,7,2,0,241,0,0,0,62,7,2,0,189,3,0,0,65,7,2,0,243,0,0,0,72,7,2,0,244,0,0,0,78,7,2,0,83,1,0,0,84,7,2,0,242,0,0,0,91,7,2,0,62,32,0,0,97,7,2,0,201,3,0,0,103,7,2,0,191,3,0,0,111,7,2,0,149,34,0,0,117,7,2,0,40,34,0,0,120,7,2,0,170,0,0,0,125,7,2,0,186,0,0,0,130,7,2,0,248,0,0,0,137,7,2,0,245,0,0,0,144,7,2,0,151,34,0,0,151,7,2,0,246,0,0,0,156,7,2,0,182,0,0,0,161,7,2,0,2,34,0,0,166,7,2,0,48,32,0,-0,173,7,2,0,165,34,0,0,178,7,2,0,198,3,0,0,182,7,2,0,192,3,0,0,185,7,2,0,214,3,0,0,189,7,2,0,177,0,0,0,196,7,2,0,163,0,0,0,202,7,2,0,50,32,0,0,208,7,2,0,15,34,0,0,213,7,2,0,29,34,0,0,218,7,2,0,200,3,0,0,222,7,2,0,34,0,0,0,227,7,2,0,210,33,0,0,232,7,2,0,26,34,0,0,238,7,2,0,42,35,0,0,243,7,2,0,187,0,0,0,249,7,2,0,146,33,0,0,254,7,2,0,9,35,0,0,4,8,2,0,29,32,0,0,10,8,2,0,28,33,0,0,15,8,2,0,174,0,0,0,19,8,2,0,11,35,0,0,26,8,2,0,193,3,0,0,30,8,2,0,15,32,0,0,34,8,2,0,58,32,0,0,41,8,2,0,25,32,0,0,47,8,2,-0,26,32,0,0,53,8,2,0,97,1,0,0,60,8,2,0,197,34,0,0,65,8,2,0,167,0,0,0,70,8,2,0,173,0,0,0,74,8,2,0,195,3,0,0,80,8,2,0,194,3,0,0,87,8,2,0,60,34,0,0,91,8,2,0,96,38,0,0,98,8,2,0,130,34,0,0,102,8,2,0,134,34,0,0,107,8,2,0,17,34,0,0,111,8,2,0,131,34,0,0,115,8,2,0,185,0,0,0,120,8,2,0,178,0,0,0,125,8,2,0,179,0,0,0,130,8,2,0,135,34,0,0,135,8,2,0,223,0,0,0,141,8,2,0,196,3,0,0,145,8,2,0,52,34,0,0,152,8,2,0,184,3,0,0,158,8,2,0,209,3,0,0,167,8,2,0,9,32,0,0,174,8,2,0,254,0,0,0,180,8,2,0,220,2,0,0,186,8,2,0,215,0,-0,0,192,8,2,0,34,33,0,0,198,8,2,0,209,33,0,0,203,8,2,0,250,0,0,0,210,8,2,0,145,33,0,0,215,8,2,0,251,0,0,0,221,8,2,0,249,0,0,0,228,8,2,0,168,0,0,0,232,8,2,0,210,3,0,0,238,8,2,0,197,3,0,0,246,8,2,0,252,0,0,0,251,8,2,0,24,33,0,0,2,9,2,0,190,3,0,0,5,9,2,0,253,0,0,0,12,9,2,0,165,0,0,0,16,9,2,0,255,0,0,0,21,9,2,0,182,3,0,0,26,9,2,0,13,32,0,0,30,9,2,0,12,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,13,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,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,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,5,0,0,0,6,0,0,0,1,1,0,0,8,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,43,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,14,2,0,7,0,0,0,140,14,2,0,8,0,0,0,145,14,2,0,8,0,0,0,153,14,2,0,9,0,0,0,159,14,2,0,9,0,0,0,168,14,2,0,10,0,0,0,171,14,-2,0,10,0,0,0,177,14,2,0,11,0,0,0,182,14,2,0,11,0,0,0,190,14,2,0,12,0,0,0,195,14,2,0,12,0,0,0,202,14,2,0,13,0,0,0,208,14,2,0,13,0,0,0,220,14,2,0,14,0,0,0,14,0,0,0,82,0,0,0,44,0,0,0,45,0,0,0,20,0,0,0,46,0,0,0,83,0,0,0,47,0,0,0,21,0,0,0,48,0,0,0,8,0,0,0,4,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,15,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,67,16,2,0,85,93,201,127,201,127,255,0,78,16,2,0,187,45,212,190,174,212,255,0,89,16,2,0,20,119,253,253,192,134,255,0,100,16,2,0,85,-93,201,127,201,127,255,0,111,16,2,0,187,45,212,190,174,212,255,0,122,16,2,0,20,119,253,253,192,134,255,0,133,16,2,0,42,102,255,255,255,153,255,0,144,16,2,0,85,93,201,127,201,127,255,0,155,16,2,0,187,45,212,190,174,212,255,0,166,16,2,0,20,119,253,253,192,134,255,0,177,16,2,0,42,102,255,255,255,153,255,0,188,16,2,0,151,173,176,56,108,176,255,0,199,16,2,0,85,93,201,127,201,127,255,0,210,16,2,0,187,45,212,190,174,212,255,0,221,16,2,0,20,119,253,253,192,134,255,0,232,16,2,0,42,102,255,255,255,153,255,-0,243,16,2,0,151,173,176,56,108,176,255,0,254,16,2,0,232,252,240,240,2,127,255,0,9,17,2,0,85,93,201,127,201,127,255,0,20,17,2,0,187,45,212,190,174,212,255,0,31,17,2,0,20,119,253,253,192,134,255,0,42,17,2,0,42,102,255,255,255,153,255,0,53,17,2,0,151,173,176,56,108,176,255,0,64,17,2,0,232,252,240,240,2,127,255,0,75,17,2,0,17,224,191,191,91,23,255,0,86,17,2,0,85,93,201,127,201,127,255,0,97,17,2,0,187,45,212,190,174,212,255,0,108,17,2,0,20,119,253,253,192,134,255,0,119,17,2,0,42,102,255,255,255,153,255,-0,130,17,2,0,151,173,176,56,108,176,255,0,141,17,2,0,232,252,240,240,2,127,255,0,152,17,2,0,17,224,191,191,91,23,255,0,163,17,2,0,0,0,102,102,102,102,255,0,174,17,2,0,147,25,247,222,235,247,255,0,184,17,2,0,142,75,225,158,202,225,255,0,194,17,2,0,145,188,189,49,130,189,255,0,204,17,2,0,159,16,255,239,243,255,255,0,214,17,2,0,143,46,231,189,215,231,255,0,224,17,2,0,143,127,214,107,174,214,255,0,234,17,2,0,147,208,181,33,113,181,255,0,244,17,2,0,159,16,255,239,243,255,255,0,254,17,2,0,143,46,231,189,-215,231,255,0,8,18,2,0,143,127,214,107,174,214,255,0,18,18,2,0,145,188,189,49,130,189,255,0,28,18,2,0,149,241,156,8,81,156,255,0,38,18,2,0,159,16,255,239,243,255,255,0,48,18,2,0,148,43,239,198,219,239,255,0,58,18,2,0,142,75,225,158,202,225,255,0,68,18,2,0,143,127,214,107,174,214,255,0,78,18,2,0,145,188,189,49,130,189,255,0,88,18,2,0,149,241,156,8,81,156,255,0,98,18,2,0,159,16,255,239,243,255,255,0,108,18,2,0,148,43,239,198,219,239,255,0,118,18,2,0,142,75,225,158,202,225,255,0,128,18,2,0,143,127,214,-107,174,214,255,0,138,18,2,0,144,169,198,66,146,198,255,0,148,18,2,0,147,208,181,33,113,181,255,0,158,18,2,0,151,241,148,8,69,148,255,0,168,18,2,0,148,8,255,247,251,255,255,0,178,18,2,0,147,25,247,222,235,247,255,0,188,18,2,0,148,43,239,198,219,239,255,0,198,18,2,0,142,75,225,158,202,225,255,0,208,18,2,0,143,127,214,107,174,214,255,0,218,18,2,0,144,169,198,66,146,198,255,0,228,18,2,0,147,208,181,33,113,181,255,0,238,18,2,0,151,241,148,8,69,148,255,0,248,18,2,0,148,8,255,247,251,255,255,0,2,19,2,0,-147,25,247,222,235,247,255,0,12,19,2,0,148,43,239,198,219,239,255,0,22,19,2,0,142,75,225,158,202,225,255,0,32,19,2,0,143,127,214,107,174,214,255,0,42,19,2,0,144,169,198,66,146,198,255,0,52,19,2,0,147,208,181,33,113,181,255,0,62,19,2,0,149,241,156,8,81,156,255,0,72,19,2,0,152,235,107,8,48,107,255,0,82,19,2,0,23,239,84,84,48,5,255,0,92,19,2,0,119,255,60,0,60,48,255,0,103,19,2,0,23,236,140,140,81,10,255,0,113,19,2,0,24,194,191,191,129,45,255,0,123,19,2,0,29,112,223,223,194,125,255,0,133,19,2,0,30,52,-246,246,232,195,255,0,143,19,2,0,121,38,234,199,234,229,255,0,153,19,2,0,120,95,205,128,205,193,255,0,163,19,2,0,124,165,151,53,151,143,255,0,173,19,2,0,124,252,102,1,102,94,255,0,183,19,2,0,23,239,84,84,48,5,255,0,193,19,2,0,124,252,102,1,102,94,255,0,204,19,2,0,119,255,60,0,60,48,255,0,215,19,2,0,23,236,140,140,81,10,255,0,225,19,2,0,24,194,191,191,129,45,255,0,235,19,2,0,29,112,223,223,194,125,255,0,245,19,2,0,30,52,246,246,232,195,255,0,255,19,2,0,0,0,245,245,245,245,255,0,9,20,2,0,121,38,234,-199,234,229,255,0,19,20,2,0,120,95,205,128,205,193,255,0,29,20,2,0,124,165,151,53,151,143,255,0,39,20,2,0,28,135,216,216,179,101,255,0,48,20,2,0,0,0,245,245,245,245,255,0,57,20,2,0,123,127,180,90,180,172,255,0,66,20,2,0,21,215,166,166,97,26,255,0,75,20,2,0,29,112,223,223,194,125,255,0,84,20,2,0,120,95,205,128,205,193,255,0,93,20,2,0,121,253,133,1,133,113,255,0,102,20,2,0,21,215,166,166,97,26,255,0,111,20,2,0,29,112,223,223,194,125,255,0,120,20,2,0,0,0,245,245,245,245,255,0,129,20,2,0,120,95,205,128,-205,193,255,0,138,20,2,0,121,253,133,1,133,113,255,0,147,20,2,0,23,236,140,140,81,10,255,0,156,20,2,0,28,135,216,216,179,101,255,0,165,20,2,0,30,52,246,246,232,195,255,0,174,20,2,0,121,38,234,199,234,229,255,0,183,20,2,0,123,127,180,90,180,172,255,0,192,20,2,0,124,252,102,1,102,94,255,0,201,20,2,0,23,236,140,140,81,10,255,0,210,20,2,0,28,135,216,216,179,101,255,0,219,20,2,0,30,52,246,246,232,195,255,0,228,20,2,0,0,0,245,245,245,245,255,0,237,20,2,0,121,38,234,199,234,229,255,0,246,20,2,0,123,127,-180,90,180,172,255,0,255,20,2,0,124,252,102,1,102,94,255,0,8,21,2,0,23,236,140,140,81,10,255,0,17,21,2,0,24,194,191,191,129,45,255,0,26,21,2,0,29,112,223,223,194,125,255,0,35,21,2,0,30,52,246,246,232,195,255,0,44,21,2,0,121,38,234,199,234,229,255,0,53,21,2,0,120,95,205,128,205,193,255,0,62,21,2,0,124,165,151,53,151,143,255,0,71,21,2,0,124,252,102,1,102,94,255,0,80,21,2,0,23,236,140,140,81,10,255,0,89,21,2,0,24,194,191,191,129,45,255,0,98,21,2,0,29,112,223,223,194,125,255,0,107,21,2,0,30,52,246,246,-232,195,255,0,116,21,2,0,0,0,245,245,245,245,255,0,125,21,2,0,121,38,234,199,234,229,255,0,134,21,2,0,120,95,205,128,205,193,255,0,143,21,2,0,124,165,151,53,151,143,255,0,152,21,2,0,124,252,102,1,102,94,255,0,161,21,2,0,135,20,249,229,245,249,255,0,170,21,2,0,117,74,216,153,216,201,255,0,179,21,2,0,103,185,162,44,162,95,255,0,188,21,2,0,136,14,251,237,248,251,255,0,197,21,2,0,127,54,226,178,226,226,255,0,206,21,2,0,113,120,194,102,194,164,255,0,215,21,2,0,98,190,139,35,139,69,255,0,224,21,2,0,136,-14,251,237,248,251,255,0,233,21,2,0,127,54,226,178,226,226,255,0,242,21,2,0,113,120,194,102,194,164,255,0,251,21,2,0,103,185,162,44,162,95,255,0,4,22,2,0,102,255,109,0,109,44,255,0,13,22,2,0,136,14,251,237,248,251,255,0,22,22,2,0,119,34,236,204,236,230,255,0,31,22,2,0,117,74,216,153,216,201,255,0,40,22,2,0,113,120,194,102,194,164,255,0,49,22,2,0,103,185,162,44,162,95,255,0,58,22,2,0,102,255,109,0,109,44,255,0,67,22,2,0,136,14,251,237,248,251,255,0,76,22,2,0,119,34,236,204,236,230,255,0,85,22,2,0,-117,74,216,153,216,201,255,0,94,22,2,0,113,120,194,102,194,164,255,0,103,22,2,0,105,159,174,65,174,118,255,0,112,22,2,0,98,190,139,35,139,69,255,0,121,22,2,0,102,255,88,0,88,36,255,0,130,22,2,0,134,6,253,247,252,253,255,0,139,22,2,0,135,20,249,229,245,249,255,0,148,22,2,0,119,34,236,204,236,230,255,0,157,22,2,0,117,74,216,153,216,201,255,0,166,22,2,0,113,120,194,102,194,164,255,0,175,22,2,0,105,159,174,65,174,118,255,0,184,22,2,0,98,190,139,35,139,69,255,0,193,22,2,0,102,255,88,0,88,36,255,0,202,-22,2,0,134,6,253,247,252,253,255,0,211,22,2,0,135,20,249,229,245,249,255,0,220,22,2,0,119,34,236,204,236,230,255,0,229,22,2,0,117,74,216,153,216,201,255,0,238,22,2,0,113,120,194,102,194,164,255,0,247,22,2,0,105,159,174,65,174,118,255,0,0,23,2,0,98,190,139,35,139,69,255,0,9,23,2,0,102,255,109,0,109,44,255,0,18,23,2,0,101,255,68,0,68,27,255,0,27,23,2,0,144,20,244,224,236,244,255,0,36,23,2,0,148,70,218,158,188,218,255,0,45,23,2,0,196,123,167,136,86,167,255,0,54,23,2,0,136,14,251,237,248,251,255,0,63,-23,2,0,146,53,227,179,205,227,255,0,72,23,2,0,162,74,198,140,150,198,255,0,81,23,2,0,202,149,157,136,65,157,255,0,90,23,2,0,136,14,251,237,248,251,255,0,99,23,2,0,146,53,227,179,205,227,255,0,108,23,2,0,162,74,198,140,150,198,255,0,117,23,2,0,196,123,167,136,86,167,255,0,126,23,2,0,214,225,129,129,15,124,255,0,135,23,2,0,136,14,251,237,248,251,255,0,144,23,2,0,148,43,230,191,211,230,255,0,153,23,2,0,148,70,218,158,188,218,255,0,162,23,2,0,162,74,198,140,150,198,255,0,171,23,2,0,196,123,167,136,86,-167,255,0,180,23,2,0,214,225,129,129,15,124,255,0,189,23,2,0,136,14,251,237,248,251,255,0,198,23,2,0,148,43,230,191,211,230,255,0,207,23,2,0,148,70,218,158,188,218,255,0,216,23,2,0,162,74,198,140,150,198,255,0,225,23,2,0,190,100,177,140,107,177,255,0,234,23,2,0,202,149,157,136,65,157,255,0,243,23,2,0,213,252,110,110,1,107,255,0,252,23,2,0,134,6,253,247,252,253,255,0,5,24,2,0,144,20,244,224,236,244,255,0,14,24,2,0,148,43,230,191,211,230,255,0,23,24,2,0,148,70,218,158,188,218,255,0,32,24,2,0,162,74,-198,140,150,198,255,0,41,24,2,0,190,100,177,140,107,177,255,0,50,24,2,0,202,149,157,136,65,157,255,0,59,24,2,0,213,252,110,110,1,107,255,0,68,24,2,0,134,6,253,247,252,253,255,0,77,24,2,0,144,20,244,224,236,244,255,0,86,24,2,0,148,43,230,191,211,230,255,0,95,24,2,0,148,70,218,158,188,218,255,0,104,24,2,0,162,74,198,140,150,198,255,0,113,24,2,0,190,100,177,140,107,177,255,0,122,24,2,0,202,149,157,136,65,157,255,0,131,24,2,0,214,225,129,129,15,124,255,0,140,24,2,0,213,255,77,77,0,75,255,0,149,24,2,0,-114,211,158,27,158,119,255,0,159,24,2,0,18,252,217,217,95,2,255,0,169,24,2,0,173,95,179,117,112,179,255,0,179,24,2,0,114,211,158,27,158,119,255,0,189,24,2,0,18,252,217,217,95,2,255,0,199,24,2,0,173,95,179,117,112,179,255,0,209,24,2,0,233,209,231,231,41,138,255,0,219,24,2,0,114,211,158,27,158,119,255,0,229,24,2,0,18,252,217,217,95,2,255,0,239,24,2,0,173,95,179,117,112,179,255,0,249,24,2,0,233,209,231,231,41,138,255,0,3,25,2,0,62,208,166,102,166,30,255,0,13,25,2,0,114,211,158,27,158,119,255,0,23,25,-2,0,18,252,217,217,95,2,255,0,33,25,2,0,173,95,179,117,112,179,255,0,43,25,2,0,233,209,231,231,41,138,255,0,53,25,2,0,62,208,166,102,166,30,255,0,63,25,2,0,31,252,230,230,171,2,255,0,73,25,2,0,114,211,158,27,158,119,255,0,83,25,2,0,18,252,217,217,95,2,255,0,93,25,2,0,173,95,179,117,112,179,255,0,103,25,2,0,233,209,231,231,41,138,255,0,113,25,2,0,62,208,166,102,166,30,255,0,123,25,2,0,31,252,230,230,171,2,255,0,133,25,2,0,27,210,166,166,118,29,255,0,143,25,2,0,114,211,158,27,158,119,255,0,153,25,2,-0,18,252,217,217,95,2,255,0,163,25,2,0,173,95,179,117,112,179,255,0,173,25,2,0,233,209,231,231,41,138,255,0,183,25,2,0,62,208,166,102,166,30,255,0,193,25,2,0,31,252,230,230,171,2,255,0,203,25,2,0,27,210,166,166,118,29,255,0,213,25,2,0,0,0,102,102,102,102,255,0,223,25,2,0,76,25,243,224,243,219,255,0,232,25,2,0,95,61,221,168,221,181,255,0,241,25,2,0,140,170,202,67,162,202,255,0,250,25,2,0,65,17,249,240,249,232,255,0,3,26,2,0,87,46,228,186,228,188,255,0,12,26,2,0,123,101,204,123,204,196,255,0,21,26,-2,0,141,197,190,43,140,190,255,0,30,26,2,0,65,17,249,240,249,232,255,0,39,26,2,0,87,46,228,186,228,188,255,0,48,26,2,0,123,101,204,123,204,196,255,0,57,26,2,0,140,170,202,67,162,202,255,0,66,26,2,0,145,243,172,8,104,172,255,0,75,26,2,0,65,17,249,240,249,232,255,0,84,26,2,0,77,41,235,204,235,197,255,0,93,26,2,0,95,61,221,168,221,181,255,0,102,26,2,0,123,101,204,123,204,196,255,0,111,26,2,0,140,170,202,67,162,202,255,0,120,26,2,0,145,243,172,8,104,172,255,0,129,26,2,0,65,17,249,240,249,232,255,0,138,-26,2,0,77,41,235,204,235,197,255,0,147,26,2,0,95,61,221,168,221,181,255,0,156,26,2,0,123,101,204,123,204,196,255,0,165,26,2,0,137,160,211,78,179,211,255,0,174,26,2,0,141,197,190,43,140,190,255,0,183,26,2,0,147,242,158,8,88,158,255,0,192,26,2,0,60,12,252,247,252,240,255,0,201,26,2,0,76,25,243,224,243,219,255,0,210,26,2,0,77,41,235,204,235,197,255,0,219,26,2,0,95,61,221,168,221,181,255,0,228,26,2,0,123,101,204,123,204,196,255,0,237,26,2,0,137,160,211,78,179,211,255,0,246,26,2,0,141,197,190,43,140,190,-255,0,255,26,2,0,147,242,158,8,88,158,255,0,8,27,2,0,60,12,252,247,252,240,255,0,17,27,2,0,76,25,243,224,243,219,255,0,26,27,2,0,77,41,235,204,235,197,255,0,35,27,2,0,95,61,221,168,221,181,255,0,44,27,2,0,123,101,204,123,204,196,255,0,53,27,2,0,137,160,211,78,179,211,255,0,62,27,2,0,141,197,190,43,140,190,255,0,71,27,2,0,145,243,172,8,104,172,255,0,80,27,2,0,150,239,129,8,64,129,255,0,89,27,2,0,74,21,245,229,245,224,255,0,100,27,2,0,80,72,217,161,217,155,255,0,111,27,2,0,98,178,163,49,163,84,255,-0,122,27,2,0,73,15,248,237,248,233,255,0,133,27,2,0,78,54,228,186,228,179,255,0,144,27,2,0,86,104,196,116,196,118,255,0,155,27,2,0,98,190,139,35,139,69,255,0,166,27,2,0,73,15,248,237,248,233,255,0,177,27,2,0,78,54,228,186,228,179,255,0,188,27,2,0,86,104,196,116,196,118,255,0,199,27,2,0,98,178,163,49,163,84,255,0,210,27,2,0,102,255,109,0,109,44,255,0,221,27,2,0,73,15,248,237,248,233,255,0,232,27,2,0,77,44,233,199,233,192,255,0,243,27,2,0,80,72,217,161,217,155,255,0,254,27,2,0,86,104,196,116,196,118,-255,0,9,28,2,0,98,178,163,49,163,84,255,0,20,28,2,0,102,255,109,0,109,44,255,0,31,28,2,0,73,15,248,237,248,233,255,0,42,28,2,0,77,44,233,199,233,192,255,0,53,28,2,0,80,72,217,161,217,155,255,0,64,28,2,0,86,104,196,116,196,118,255,0,75,28,2,0,96,158,171,65,171,93,255,0,86,28,2,0,98,190,139,35,139,69,255,0,97,28,2,0,108,255,90,0,90,50,255,0,108,28,2,0,72,7,252,247,252,245,255,0,119,28,2,0,74,21,245,229,245,224,255,0,130,28,2,0,77,44,233,199,233,192,255,0,141,28,2,0,80,72,217,161,217,155,255,0,152,28,-2,0,86,104,196,116,196,118,255,0,163,28,2,0,96,158,171,65,171,93,255,0,174,28,2,0,98,190,139,35,139,69,255,0,185,28,2,0,108,255,90,0,90,50,255,0,196,28,2,0,72,7,252,247,252,245,255,0,207,28,2,0,74,21,245,229,245,224,255,0,218,28,2,0,77,44,233,199,233,192,255,0,229,28,2,0,80,72,217,161,217,155,255,0,240,28,2,0,86,104,196,116,196,118,255,0,251,28,2,0,96,158,171,65,171,93,255,0,6,29,2,0,98,190,139,35,139,69,255,0,17,29,2,0,102,255,109,0,109,44,255,0,28,29,2,0,101,255,68,0,68,27,255,0,39,29,2,0,0,0,240,-240,240,240,255,0,49,29,2,0,0,0,189,189,189,189,255,0,59,29,2,0,0,0,99,99,99,99,255,0,69,29,2,0,0,0,247,247,247,247,255,0,79,29,2,0,0,0,204,204,204,204,255,0,89,29,2,0,0,0,150,150,150,150,255,0,99,29,2,0,0,0,82,82,82,82,255,0,109,29,2,0,0,0,247,247,247,247,255,0,119,29,2,0,0,0,204,204,204,204,255,0,129,29,2,0,0,0,150,150,150,150,255,0,139,29,2,0,0,0,99,99,99,99,255,0,149,29,2,0,0,0,37,37,37,37,255,0,159,29,2,0,0,0,247,247,247,247,255,0,169,29,2,0,0,0,217,217,217,217,255,0,179,29,2,0,0,0,189,189,189,-189,255,0,189,29,2,0,0,0,150,150,150,150,255,0,199,29,2,0,0,0,99,99,99,99,255,0,209,29,2,0,0,0,37,37,37,37,255,0,219,29,2,0,0,0,247,247,247,247,255,0,229,29,2,0,0,0,217,217,217,217,255,0,239,29,2,0,0,0,189,189,189,189,255,0,249,29,2,0,0,0,150,150,150,150,255,0,3,30,2,0,0,0,115,115,115,115,255,0,13,30,2,0,0,0,82,82,82,82,255,0,23,30,2,0,0,0,37,37,37,37,255,0,33,30,2,0,0,0,255,255,255,255,255,0,43,30,2,0,0,0,240,240,240,240,255,0,53,30,2,0,0,0,217,217,217,217,255,0,63,30,2,0,0,0,189,189,189,189,255,-0,73,30,2,0,0,0,150,150,150,150,255,0,83,30,2],"i8",4,n.q+53824);-B([115,115,115,115,255,0,93,30,2,0,0,0,82,82,82,82,255,0,103,30,2,0,0,0,37,37,37,37,255,0,113,30,2,0,0,0,255,255,255,255,255,0,123,30,2,0,0,0,240,240,240,240,255,0,133,30,2,0,0,0,217,217,217,217,255,0,143,30,2,0,0,0,189,189,189,189,255,0,153,30,2,0,0,0,150,150,150,150,255,0,163,30,2,0,0,0,115,115,115,115,255,0,173,30,2,0,0,0,82,82,82,82,255,0,183,30,2,0,0,0,37,37,37,37,255,0,193,30,2,0,0,0,0,0,0,0,255,0,203,30,2,0,21,48,254,254,230,206,255,0,215,30,2,0,19,147,253,253,174,107,255,0,227,30,2,0,14,240,-230,230,85,13,255,0,239,30,2,0,19,32,254,254,237,222,255,0,251,30,2,0,20,120,253,253,190,133,255,0,7,31,2,0,17,194,253,253,141,60,255,0,19,31,2,0,13,253,217,217,71,1,255,0,31,31,2,0,19,32,254,254,237,222,255,0,43,31,2,0,20,120,253,253,190,133,255,0,55,31,2,0,17,194,253,253,141,60,255,0,67,31,2,0,14,240,230,230,85,13,255,0,79,31,2,0,13,250,166,166,54,3,255,0,91,31,2,0,19,32,254,254,237,222,255,0,103,31,2,0,21,91,253,253,208,162,255,0,115,31,2,0,19,147,253,253,174,107,255,0,127,31,2,0,17,194,253,253,-141,60,255,0,139,31,2,0,14,240,230,230,85,13,255,0,151,31,2,0,13,250,166,166,54,3,255,0,163,31,2,0,19,32,254,254,237,222,255,0,175,31,2,0,21,91,253,253,208,162,255,0,187,31,2,0,19,147,253,253,174,107,255,0,199,31,2,0,17,194,253,253,141,60,255,0,211,31,2,0,16,234,241,241,105,19,255,0,223,31,2,0,13,253,217,217,72,1,255,0,235,31,2,0,12,247,140,140,45,4,255,0,247,31,2,0,21,20,255,255,245,235,255,0,3,32,2,0,21,48,254,254,230,206,255,0,15,32,2,0,21,91,253,253,208,162,255,0,27,32,2,0,19,147,253,253,174,-107,255,0,39,32,2,0,17,194,253,253,141,60,255,0,51,32,2,0,16,234,241,241,105,19,255,0,63,32,2,0,13,253,217,217,72,1,255,0,75,32,2,0,12,247,140,140,45,4,255,0,87,32,2,0,21,20,255,255,245,235,255,0,99,32,2,0,21,48,254,254,230,206,255,0,111,32,2,0,21,91,253,253,208,162,255,0,123,32,2,0,19,147,253,253,174,107,255,0,135,32,2,0,17,194,253,253,141,60,255,0,147,32,2,0,16,234,241,241,105,19,255,0,159,32,2,0,13,253,217,217,72,1,255,0,171,32,2,0,13,250,166,166,54,3,255,0,183,32,2,0,12,246,127,127,39,4,255,0,-195,32,2,0,25,54,254,254,232,200,255,0,204,32,2,0,19,121,253,253,187,132,255,0,213,32,2,0,5,197,227,227,74,51,255,0,222,32,2,0,26,37,254,254,240,217,255,0,231,32,2,0,24,115,253,253,204,138,255,0,240,32,2,0,13,164,252,252,141,89,255,0,249,32,2,0,3,218,215,215,48,31,255,0,2,33,2,0,26,37,254,254,240,217,255,0,11,33,2,0,24,115,253,253,204,138,255,0,20,33,2,0,13,164,252,252,141,89,255,0,29,33,2,0,5,197,227,227,74,51,255,0,38,33,2,0,0,255,179,179,0,0,255,0,47,33,2,0,26,37,254,254,240,217,255,0,56,33,2,-0,24,95,253,253,212,158,255,0,65,33,2,0,19,121,253,253,187,132,255,0,74,33,2,0,13,164,252,252,141,89,255,0,83,33,2,0,5,197,227,227,74,51,255,0,92,33,2,0,0,255,179,179,0,0,255,0,101,33,2,0,26,37,254,254,240,217,255,0,110,33,2,0,24,95,253,253,212,158,255,0,119,33,2,0,19,121,253,253,187,132,255,0,128,33,2,0,13,164,252,252,141,89,255,0,137,33,2,0,7,178,239,239,101,72,255,0,146,33,2,0,3,218,215,215,48,31,255,0,155,33,2,0,0,255,153,153,0,0,255,0,164,33,2,0,24,18,255,255,247,236,255,0,173,33,2,0,25,54,254,-254,232,200,255,0,182,33,2,0,24,95,253,253,212,158,255,0,191,33,2,0,19,121,253,253,187,132,255,0,200,33,2,0,13,164,252,252,141,89,255,0,209,33,2,0,7,178,239,239,101,72,255,0,218,33,2,0,3,218,215,215,48,31,255,0,227,33,2,0,0,255,153,153,0,0,255,0,236,33,2,0,24,18,255,255,247,236,255,0,245,33,2,0,25,54,254,254,232,200,255,0,254,33,2,0,24,95,253,253,212,158,255,0,7,34,2,0,19,121,253,253,187,132,255,0,16,34,2,0,13,164,252,252,141,89,255,0,25,34,2,0,7,178,239,239,101,72,255,0,34,34,2,0,3,218,215,215,48,-31,255,0,43,34,2,0,0,255,179,179,0,0,255,0,52,34,2,0,0,255,127,127,0,0,255,0,61,34,2,0,142,68,227,166,206,227,255,0,73,34,2,0,190,153,154,106,61,154,255,0,86,34,2,0,144,211,180,31,120,180,255,0,98,34,2,0,65,97,223,178,223,138,255,0,110,34,2,0,82,184,160,51,160,44,255,0,122,34,2,0,0,99,251,251,154,153,255,0,134,34,2,0,254,225,227,227,26,28,255,0,146,34,2,0,23,143,253,253,191,111,255,0,158,34,2,0,21,255,255,255,127,0,255,0,170,34,2,0,198,42,214,202,178,214,255,0,182,34,2,0,142,68,227,166,206,227,255,-0,194,34,2,0,190,153,154,106,61,154,255,0,207,34,2,0,42,102,255,255,255,153,255,0,220,34,2,0,144,211,180,31,120,180,255,0,232,34,2,0,65,97,223,178,223,138,255,0,244,34,2,0,82,184,160,51,160,44,255,0,0,35,2,0,0,99,251,251,154,153,255,0,12,35,2,0,254,225,227,227,26,28,255,0,24,35,2,0,23,143,253,253,191,111,255,0,36,35,2,0,21,255,255,255,127,0,255,0,48,35,2,0,198,42,214,202,178,214,255,0,60,35,2,0,142,68,227,166,206,227,255,0,72,35,2,0,190,153,154,106,61,154,255,0,85,35,2,0,42,102,255,255,255,153,255,-0,98,35,2,0,15,197,177,177,89,40,255,0,111,35,2,0,144,211,180,31,120,180,255,0,123,35,2,0,65,97,223,178,223,138,255,0,135,35,2,0,82,184,160,51,160,44,255,0,147,35,2,0,0,99,251,251,154,153,255,0,159,35,2,0,254,225,227,227,26,28,255,0,171,35,2,0,23,143,253,253,191,111,255,0,183,35,2,0,21,255,255,255,127,0,255,0,195,35,2,0,198,42,214,202,178,214,255,0,207,35,2,0,142,68,227,166,206,227,255,0,218,35,2,0,144,211,180,31,120,180,255,0,229,35,2,0,65,97,223,178,223,138,255,0,240,35,2,0,142,68,227,166,206,227,-255,0,251,35,2,0,144,211,180,31,120,180,255,0,6,36,2,0,65,97,223,178,223,138,255,0,17,36,2,0,82,184,160,51,160,44,255,0,28,36,2,0,142,68,227,166,206,227,255,0,39,36,2,0,144,211,180,31,120,180,255,0,50,36,2,0,65,97,223,178,223,138,255,0,61,36,2,0,82,184,160,51,160,44,255,0,72,36,2,0,0,99,251,251,154,153,255,0,83,36,2,0,142,68,227,166,206,227,255,0,94,36,2,0,144,211,180,31,120,180,255,0,105,36,2,0,65,97,223,178,223,138,255,0,116,36,2,0,82,184,160,51,160,44,255,0,127,36,2,0,0,99,251,251,154,153,255,-0,138,36,2,0,254,225,227,227,26,28,255,0,149,36,2,0,142,68,227,166,206,227,255,0,160,36,2,0,144,211,180,31,120,180,255,0,171,36,2,0,65,97,223,178,223,138,255,0,182,36,2,0,82,184,160,51,160,44,255,0,193,36,2,0,0,99,251,251,154,153,255,0,204,36,2,0,254,225,227,227,26,28,255,0,215,36,2,0,23,143,253,253,191,111,255,0,226,36,2,0,142,68,227,166,206,227,255,0,237,36,2,0,144,211,180,31,120,180,255,0,248,36,2,0,65,97,223,178,223,138,255,0,3,37,2,0,82,184,160,51,160,44,255,0,14,37,2,0,0,99,251,251,154,153,-255,0,25,37,2,0,254,225,227,227,26,28,255,0,36,37,2,0,23,143,253,253,191,111,255,0,47,37,2,0,21,255,255,255,127,0,255,0,58,37,2,0,142,68,227,166,206,227,255,0,69,37,2,0,144,211,180,31,120,180,255,0,80,37,2,0,65,97,223,178,223,138,255,0,91,37,2,0,82,184,160,51,160,44,255,0,102,37,2,0,0,99,251,251,154,153,255,0,113,37,2,0,254,225,227,227,26,28,255,0,124,37,2,0,23,143,253,253,191,111,255,0,135,37,2,0,21,255,255,255,127,0,255,0,146,37,2,0,198,42,214,202,178,214,255,0,157,37,2,0,3,78,251,251,180,174,255,-0,169,37,2,0,146,53,227,179,205,227,255,0,181,37,2,0,77,41,235,204,235,197,255,0,193,37,2,0,3,78,251,251,180,174,255,0,205,37,2,0,146,53,227,179,205,227,255,0,217,37,2,0,77,41,235,204,235,197,255,0,229,37,2,0,202,27,228,222,203,228,255,0,241,37,2,0,3,78,251,251,180,174,255,0,253,37,2,0,146,53,227,179,205,227,255,0,9,38,2,0,77,41,235,204,235,197,255,0,21,38,2,0,202,27,228,222,203,228,255,0,33,38,2,0,24,88,254,254,217,166,255,0,45,38,2,0,3,78,251,251,180,174,255,0,57,38,2,0,146,53,227,179,205,227,255,-0,69,38,2,0,77,41,235,204,235,197,255,0,81,38,2,0,202,27,228,222,203,228,255,0,93,38,2,0,24,88,254,254,217,166,255,0,105,38,2,0,42,50,255,255,255,204,255,0,117,38,2,0,3,78,251,251,180,174,255,0,129,38,2,0,146,53,227,179,205,227,255,0,141,38,2,0,77,41,235,204,235,197,255,0,153,38,2,0,202,27,228,222,203,228,255,0,165,38,2,0,24,88,254,254,217,166,255,0,177,38,2,0,42,50,255,255,255,204,255,0,189,38,2,0,28,44,229,229,216,189,255,0,201,38,2,0,3,78,251,251,180,174,255,0,213,38,2,0,146,53,227,179,205,227,-255,0,225,38,2,0,77,41,235,204,235,197,255,0,237,38,2,0,202,27,228,222,203,228,255,0,249,38,2,0,24,88,254,254,217,166,255,0,5,39,2,0,42,50,255,255,255,204,255,0,17,39,2,0,28,44,229,229,216,189,255,0,29,39,2,0,233,35,253,253,218,236,255,0,41,39,2,0,3,78,251,251,180,174,255,0,53,39,2,0,146,53,227,179,205,227,255,0,65,39,2,0,77,41,235,204,235,197,255,0,77,39,2,0,202,27,228,222,203,228,255,0,89,39,2,0,24,88,254,254,217,166,255,0,101,39,2,0,42,50,255,255,255,204,255,0,113,39,2,0,28,44,229,229,216,189,-255,0,125,39,2,0,233,35,253,253,218,236,255,0,137,39,2,0,0,0,242,242,242,242,255,0,149,39,2,0,108,53,226,179,226,205,255,0,161,39,2,0,17,81,253,253,205,172,255,0,173,39,2,0,155,31,232,203,213,232,255,0,185,39,2,0,108,53,226,179,226,205,255,0,197,39,2,0,17,81,253,253,205,172,255,0,209,39,2,0,155,31,232,203,213,232,255,0,221,39,2,0,228,43,244,244,202,228,255,0,233,39,2,0,108,53,226,179,226,205,255,0,245,39,2,0,17,81,253,253,205,172,255,0,1,40,2,0,155,31,232,203,213,232,255,0,13,40,2,0,228,43,244,244,-202,228,255,0,25,40,2,0,56,45,245,230,245,201,255,0,37,40,2,0,108,53,226,179,226,205,255,0,49,40,2,0,17,81,253,253,205,172,255,0,61,40,2,0,155,31,232,203,213,232,255,0,73,40,2,0,228,43,244,244,202,228,255,0,85,40,2,0,56,45,245,230,245,201,255,0,97,40,2,0,35,81,255,255,242,174,255,0,109,40,2,0,108,53,226,179,226,205,255,0,121,40,2,0,17,81,253,253,205,172,255,0,133,40,2,0,155,31,232,203,213,232,255,0,145,40,2,0,228,43,244,244,202,228,255,0,157,40,2,0,56,45,245,230,245,201,255,0,169,40,2,0,35,81,255,-255,242,174,255,0,181,40,2,0,25,39,241,241,226,204,255,0,193,40,2,0,108,53,226,179,226,205,255,0,205,40,2,0,17,81,253,253,205,172,255,0,217,40,2,0,155,31,232,203,213,232,255,0,229,40,2,0,228,43,244,244,202,228,255,0,241,40,2,0,56,45,245,230,245,201,255,0,253,40,2,0,35,81,255,255,242,174,255,0,9,41,2,0,25,39,241,241,226,204,255,0,21,41,2,0,0,0,204,204,204,204,255,0,33,41,2,0,230,253,142,142,1,82,255,0,43,41,2,0,77,191,100,39,100,25,255,0,54,41,2,0,230,220,197,197,27,125,255,0,64,41,2,0,232,118,222,-222,119,174,255,0,74,41,2,0,229,62,241,241,182,218,255,0,84,41,2,0,233,29,253,253,224,239,255,0,94,41,2,0,59,38,245,230,245,208,255,0,104,41,2,0,61,103,225,184,225,134,255,0,114,41,2,0,63,166,188,127,188,65,255,0,124,41,2,0,68,197,146,77,146,33,255,0,134,41,2,0,230,253,142,142,1,82,255,0,144,41,2,0,68,197,146,77,146,33,255,0,155,41,2,0,77,191,100,39,100,25,255,0,166,41,2,0,230,220,197,197,27,125,255,0,176,41,2,0,232,118,222,222,119,174,255,0,186,41,2,0,229,62,241,241,182,218,255,0,196,41,2,0,233,-29,253,253,224,239,255,0,206,41,2,0,0,0,247,247,247,247,255,0,216,41,2,0,59,38,245,230,245,208,255,0,226,41,2,0,61,103,225,184,225,134,255,0,236,41,2,0,63,166,188,127,188,65,255,0,246,41,2,0,231,76,233,233,163,201,255,0,255,41,2,0,0,0,247,247,247,247,255,0,8,42,2,0,63,129,215,161,215,106,255,0,17,42,2,0,228,220,208,208,28,139,255,0,26,42,2,0,229,62,241,241,182,218,255,0,35,42,2,0,61,103,225,184,225,134,255,0,44,42,2,0,72,198,172,77,172,38,255,0,53,42,2,0,228,220,208,208,28,139,255,0,62,42,2,0,229,-62,241,241,182,218,255,0,71,42,2,0,0,0,247,247,247,247,255,0,80,42,2,0,61,103,225,184,225,134,255,0,89,42,2,0,72,198,172,77,172,38,255,0,98,42,2,0,230,220,197,197,27,125,255,0,107,42,2,0,231,76,233,233,163,201,255,0,116,42,2,0,233,29,253,253,224,239,255,0,125,42,2,0,59,38,245,230,245,208,255,0,134,42,2,0,63,129,215,161,215,106,255,0,143,42,2,0,68,197,146,77,146,33,255,0,152,42,2,0,230,220,197,197,27,125,255,0,161,42,2,0,231,76,233,233,163,201,255,0,170,42,2,0,233,29,253,253,224,239,255,0,179,42,2,-0,0,0,247,247,247,247,255,0,188,42,2,0,59,38,245,230,245,208,255,0,197,42,2,0,63,129,215,161,215,106,255,0,206,42,2,0,68,197,146,77,146,33,255,0,215,42,2,0,230,220,197,197,27,125,255,0,224,42,2,0,232,118,222,222,119,174,255,0,233,42,2,0,229,62,241,241,182,218,255,0,242,42,2,0,233,29,253,253,224,239,255,0,251,42,2,0,59,38,245,230,245,208,255,0,4,43,2,0,61,103,225,184,225,134,255,0,13,43,2,0,63,166,188,127,188,65,255,0,22,43,2,0,68,197,146,77,146,33,255,0,31,43,2,0,230,220,197,197,27,125,255,0,40,43,-2,0,232,118,222,222,119,174,255,0,49,43,2,0,229,62,241,241,182,218,255,0,58,43,2,0,233,29,253,253,224,239,255,0,67,43,2,0,0,0,247,247,247,247,255,0,76,43,2,0,59,38,245,230,245,208,255,0,85,43,2,0,61,103,225,184,225,134,255,0,94,43,2,0,63,166,188,127,188,65,255,0,103,43,2,0,68,197,146,77,146,33,255,0,112,43,2,0,206,255,75,64,0,75,255,0,122,43,2,0,101,255,68,0,68,27,255,0,133,43,2,0,206,173,131,118,42,131,255,0,143,43,2,0,199,87,171,153,112,171,255,0,153,43,2,0,199,51,207,194,165,207,255,0,163,43,2,-0,210,21,232,231,212,232,255,0,173,43,2,0,76,30,240,217,240,211,255,0,183,43,2,0,80,68,219,166,219,160,255,0,193,43,2,0,88,123,174,90,174,97,255,0,203,43,2,0,97,197,120,27,120,55,255,0,213,43,2,0,206,255,75,64,0,75,255,0,223,43,2,0,97,197,120,27,120,55,255,0,234,43,2,0,101,255,68,0,68,27,255,0,245,43,2,0,206,173,131,118,42,131,255,0,255,43,2,0,199,87,171,153,112,171,255,0,9,44,2,0,199,51,207,194,165,207,255,0,19,44,2,0,210,21,232,231,212,232,255,0,29,44,2,0,0,0,247,247,247,247,255,0,39,44,2,0,76,-30,240,217,240,211,255,0,49,44,2,0,80,68,219,166,219,160,255,0,59,44,2,0,88,123,174,90,174,97,255,0,69,44,2,0,196,70,195,175,141,195,255,0,78,44,2,0,0,0,247,247,247,247,255,0,87,44,2,0,82,90,191,127,191,123,255,0,96,44,2,0,201,168,148,123,50,148,255,0,105,44,2,0,199,51,207,194,165,207,255,0,114,44,2,0,80,68,219,166,219,160,255,0,123,44,2,0,102,255,136,0,136,55,255,0,132,44,2,0,201,168,148,123,50,148,255,0,141,44,2,0,199,51,207,194,165,207,255,0,150,44,2,0,0,0,247,247,247,247,255,0,159,44,2,0,80,68,-219,166,219,160,255,0,168,44,2,0,102,255,136,0,136,55,255,0,177,44,2,0,206,173,131,118,42,131,255,0,186,44,2,0,196,70,195,175,141,195,255,0,195,44,2,0,210,21,232,231,212,232,255,0,204,44,2,0,76,30,240,217,240,211,255,0,213,44,2,0,82,90,191,127,191,123,255,0,222,44,2,0,97,197,120,27,120,55,255,0,231,44,2,0,206,173,131,118,42,131,255,0,240,44,2,0,196,70,195,175,141,195,255,0,249,44,2,0,210,21,232,231,212,232,255,0,2,45,2,0,0,0,247,247,247,247,255,0,11,45,2,0,76,30,240,217,240,211,255,0,20,45,2,0,82,-90,191,127,191,123,255,0,29,45,2,0,97,197,120,27,120,55,255,0,38,45,2,0,206,173,131,118,42,131,255,0,47,45,2,0,199,87,171,153,112,171,255,0,56,45,2,0,199,51,207,194,165,207,255,0,65,45,2,0,210,21,232,231,212,232,255,0,74,45,2,0,76,30,240,217,240,211,255,0,83,45,2,0,80,68,219,166,219,160,255,0,92,45,2,0,88,123,174,90,174,97,255,0,101,45,2,0,97,197,120,27,120,55,255,0,110,45,2,0,206,173,131,118,42,131,255,0,119,45,2,0,199,87,171,153,112,171,255,0,128,45,2,0,199,51,207,194,165,207,255,0,137,45,2,0,210,-21,232,231,212,232,255,0,146,45,2,0,0,0,247,247,247,247,255,0,155,45,2,0,76,30,240,217,240,211,255,0,164,45,2,0,80,68,219,166,219,160,255,0,173,45,2,0,88,123,174,90,174,97,255,0,182,45,2,0,97,197,120,27,120,55,255,0,191,45,2,0,189,11,242,236,231,242,255,0,200,45,2,0,151,61,219,166,189,219,255,0,209,45,2,0,141,197,190,43,140,190,255,0,218,45,2,0,185,8,246,241,238,246,255,0,227,45,2,0,155,40,225,189,201,225,255,0,236,45,2,0,145,112,207,116,169,207,255,0,245,45,2,0,143,247,176,5,112,176,255,0,254,45,-2,0,185,8,246,241,238,246,255,0,7,46,2,0,155,40,225,189,201,225,255,0,16,46,2,0,145,112,207,116,169,207,255,0,25,46,2,0,141,197,190,43,140,190,255,0,34,46,2,0,143,247,141,4,90,141,255,0,43,46,2,0,185,8,246,241,238,246,255,0,52,46,2,0,168,24,230,208,209,230,255,0,61,46,2,0,151,61,219,166,189,219,255,0,70,46,2,0,145,112,207,116,169,207,255,0,79,46,2,0,141,197,190,43,140,190,255,0,88,46,2,0,143,247,141,4,90,141,255,0,97,46,2,0,185,8,246,241,238,246,255,0,106,46,2,0,168,24,230,208,209,230,255,0,115,46,-2,0,151,61,219,166,189,219,255,0,124,46,2,0,145,112,207,116,169,207,255,0,133,46,2,0,142,183,192,54,144,192,255,0,142,46,2,0,143,247,176,5,112,176,255,0,151,46,2,0,143,248,123,3,78,123,255,0,160,46,2,0,233,8,255,255,247,251,255,0,169,46,2,0,189,11,242,236,231,242,255,0,178,46,2,0,168,24,230,208,209,230,255,0,187,46,2,0,151,61,219,166,189,219,255,0,196,46,2,0,145,112,207,116,169,207,255,0,205,46,2,0,142,183,192,54,144,192,255,0,214,46,2,0,143,247,176,5,112,176,255,0,223,46,2,0,143,248,123,3,78,123,-255,0,232,46,2,0,233,8,255,255,247,251,255,0,241,46,2,0,189,11,242,236,231,242,255,0,250,46,2,0,168,24,230,208,209,230,255,0,3,47,2,0,151,61,219,166,189,219,255,0,12,47,2,0,145,112,207,116,169,207,255,0,21,47,2,0,142,183,192,54,144,192,255,0,30,47,2,0,143,247,176,5,112,176,255,0,39,47,2,0,143,247,141,4,90,141,255,0,48,47,2,0,143,249,88,2,56,88,255,0,57,47,2,0,200,14,240,236,226,240,255,0,68,47,2,0,151,61,219,166,189,219,255,0,79,47,2,0,130,208,153,28,144,153,255,0,90,47,2,0,207,8,247,246,239,247,-255,0,101,47,2,0,155,40,225,189,201,225,255,0,112,47,2,0,143,128,207,103,169,207,255,0,123,47,2,0,130,251,138,2,129,138,255,0,134,47,2,0,207,8,247,246,239,247,255,0,145,47,2,0,155,40,225,189,201,225,255,0,156,47,2,0,143,128,207,103,169,207,255,0,167,47,2,0,130,208,153,28,144,153,255,0,178,47,2,0,119,252,108,1,108,89,255,0,189,47,2,0,207,8,247,246,239,247,255,0,200,47,2,0,168,24,230,208,209,230,255,0,211,47,2,0,151,61,219,166,189,219,255,0,222,47,2,0,143,128,207,103,169,207,255,0,233,47,2,0,130,208,-153,28,144,153,255,0,244,47,2,0,119,252,108,1,108,89,255,0,255,47,2,0,207,8,247,246,239,247,255,0,10,48,2,0,168,24,230,208,209,230,255,0,21,48,2,0,151,61,219,166,189,219,255,0,32,48,2,0,143,128,207,103,169,207,255,0,43,48,2,0,142,183,192,54,144,192,255,0,54,48,2,0,130,251,138,2,129,138,255,0,65,48,2,0,118,252,100,1,100,80,255,0,76,48,2,0,233,8,255,255,247,251,255,0,87,48,2,0,200,14,240,236,226,240,255,0,98,48,2,0,168,24,230,208,209,230,255,0,109,48,2,0,151,61,219,166,189,219,255,0,120,48,2,0,143,-128,207,103,169,207,255,0,131,48,2,0,142,183,192,54,144,192,255,0,142,48,2,0,130,251,138,2,129,138,255,0,153,48,2,0,118,252,100,1,100,80,255,0,164,48,2,0,233,8,255,255,247,251,255,0,175,48,2,0,200,14,240,236,226,240,255,0,186,48,2,0,168,24,230,208,209,230,255,0,197,48,2,0,151,61,219,166,189,219,255,0,208,48,2,0,143,128,207,103,169,207,255,0,219,48,2,0,142,183,192,54,144,192,255,0,230,48,2,0,130,251,138,2,129,138,255,0,241,48,2,0,119,252,108,1,108,89,255,0,252,48,2,0,117,251,70,1,70,54,255,0,7,49,-2,0,18,238,127,127,59,8,255,0,17,49,2,0,195,255,75,45,0,75,255,0,28,49,2,0,20,246,179,179,88,6,255,0,38,49,2,0,22,232,224,224,130,20,255,0,48,49,2,0,23,155,253,253,184,99,255,0,58,49,2,0,24,72,254,254,224,182,255,0,68,49,2,0,165,20,235,216,218,235,255,0,78,49,2,0,177,47,210,178,171,210,255,0,88,49,2,0,179,84,172,128,115,172,255,0,98,49,2,0,189,181,136,84,39,136,255,0,108,49,2,0,18,238,127,127,59,8,255,0,118,49,2,0,189,181,136,84,39,136,255,0,129,49,2,0,195,255,75,45,0,75,255,0,140,49,2,0,20,246,179,-179,88,6,255,0,150,49,2,0,22,232,224,224,130,20,255,0,160,49,2,0,23,155,253,253,184,99,255,0,170,49,2,0,24,72,254,254,224,182,255,0,180,49,2,0,0,0,247,247,247,247,255,0,190,49,2,0,165,20,235,216,218,235,255,0,200,49,2,0,177,47,210,178,171,210,255,0,210,49,2,0,179,84,172,128,115,172,255,0,220,49,2,0,23,187,241,241,163,64,255,0,229,49,2,0,0,0,247,247,247,247,255,0,238,49,2,0,178,69,195,153,142,195,255,0,247,49,2,0,17,253,230,230,97,1,255,0,0,50,2,0,23,155,253,253,184,99,255,0,9,50,2,0,177,47,210,178,-171,210,255,0,18,50,2,0,185,155,153,94,60,153,255,0,27,50,2,0,17,253,230,230,97,1,255,0,36,50,2,0,23,155,253,253,184,99,255,0,45,50,2,0,0,0,247,247,247,247,255,0,54,50,2,0,177,47,210,178,171,210,255,0,63,50,2,0,185,155,153,94,60,153,255,0,72,50,2,0,20,246,179,179,88,6,255,0,81,50,2,0,23,187,241,241,163,64,255,0,90,50,2,0,24,72,254,254,224,182,255,0,99,50,2,0,165,20,235,216,218,235,255,0,108,50,2,0,178,69,195,153,142,195,255,0,117,50,2,0,189,181,136,84,39,136,255,0,126,50,2,0,20,246,179,179,88,6,255,-0,135,50,2,0,23,187,241,241,163,64,255,0,144,50,2,0,24,72,254,254,224,182,255,0,153,50,2,0,0,0,247,247,247,247,255,0,162,50,2,0,165,20,235,216,218,235,255,0,171,50,2,0,178,69,195,153,142,195,255,0,180,50,2,0,189,181,136,84,39,136,255,0,189,50,2,0,20,246,179,179,88,6,255,0,198,50,2,0,22,232,224,224,130,20,255,0,207,50,2,0,23,155,253,253,184,99,255,0,216,50,2,0,24,72,254,254,224,182,255,0,225,50,2,0,165,20,235,216,218,235,255,0,234,50,2,0,177,47,210,178,171,210,255,0,243,50,2,0,179,84,172,128,115,172,-255,0,252,50,2,0,189,181,136,84,39,136,255,0,5,51,2,0,20,246,179,179,88,6,255,0,14,51,2,0,22,232,224,224,130,20,255,0,23,51,2,0,23,155,253,253,184,99,255,0,32,51,2,0,24,72,254,254,224,182,255,0,41,51,2,0,0,0,247,247,247,247,255,0,50,51,2,0,165,20,235,216,218,235,255,0,59,51,2,0,177,47,210,178,171,210,255,0,68,51,2,0,179,84,172,128,115,172,255,0,77,51,2,0,189,181,136,84,39,136,255,0,86,51,2,0,188,14,239,231,225,239,255,0,95,51,2,0,214,67,201,201,148,199,255,0,104,51,2,0,234,222,221,221,28,119,255,-0,113,51,2,0,185,8,246,241,238,246,255,0,122,51,2,0,211,41,216,215,181,216,255,0,131,51,2,0,228,139,223,223,101,176,255,0,140,51,2,0,239,232,206,206,18,86,255,0,149,51,2,0,185,8,246,241,238,246,255,0,158,51,2,0,211,41,216,215,181,216,255,0,167,51,2,0,228,139,223,223,101,176,255,0,176,51,2,0,234,222,221,221,28,119,255,0,185,51,2,0,236,255,152,152,0,67,255,0,194,51,2,0,185,8,246,241,238,246,255,0,203,51,2,0,204,38,218,212,185,218,255,0,212,51,2,0,214,67,201,201,148,199,255,0,221,51,2,0,228,139,223,-223,101,176,255,0,230,51,2,0,234,222,221,221,28,119,255,0,239,51,2,0,236,255,152,152,0,67,255,0,248,51,2,0,185,8,246,241,238,246,255,0,1,52,2,0,204,38,218,212,185,218,255,0,10,52,2,0,214,67,201,201,148,199,255,0,19,52,2,0,228,139,223,223,101,176,255,0,28,52,2,0,233,209,231,231,41,138,255,0,37,52,2,0,239,232,206,206,18,86,255,0,46,52,2,0,236,255,145,145,0,63,255,0,55,52,2,0,195,5,249,247,244,249,255,0,64,52,2,0,188,14,239,231,225,239,255,0,73,52,2,0,204,38,218,212,185,218,255,0,82,52,2,0,214,67,201,-201,148,199,255,0,91,52,2,0,228,139,223,223,101,176,255,0,100,52,2,0,233,209,231,231,41,138,255,0,109,52,2,0,239,232,206,206,18,86,255,0,118,52,2,0,236,255,145,145,0,63,255,0,127,52,2,0,195,5,249,247,244,249,255,0,136,52,2,0,188,14,239,231,225,239,255,0,145,52,2,0,204,38,218,212,185,218,255,0,154,52,2,0,214,67,201,201,148,199,255,0,163,52,2,0,228,139,223,223,101,176,255,0,172,52,2,0,233,209,231,231,41,138,255,0,181,52,2,0,239,232,206,206,18,86,255,0,190,52,2,0,236,255,152,152,0,67,255,0,199,52,2,-0,242,255,103,103,0,31,255,0,208,52,2,0,180,8,245,239,237,245,255,0,220,52,2,0,168,37,220,188,189,220,255,0,232,52,2,0,176,100,177,117,107,177,255,0,244,52,2,0,182,7,247,242,240,247,255,0,0,53,2,0,173,28,226,203,201,226,255,0,12,53,2,0,173,58,200,158,154,200,255,0,24,53,2,0,182,128,163,106,81,163,255,0,36,53,2,0,182,7,247,242,240,247,255,0,48,53,2,0,173,28,226,203,201,226,255,0,60,53,2,0,173,58,200,158,154,200,255,0,72,53,2,0,176,100,177,117,107,177,255,0,84,53,2,0,188,185,143,84,39,143,255,0,96,-53,2,0,182,7,247,242,240,247,255,0,108,53,2,0,170,18,235,218,218,235,255,0,120,53,2,0,168,37,220,188,189,220,255,0,132,53,2,0,173,58,200,158,154,200,255,0,144,53,2,0,176,100,177,117,107,177,255,0,156,53,2,0,188,185,143,84,39,143,255,0,168,53,2,0,182,7,247,242,240,247,255,0,180,53,2,0,170,18,235,218,218,235,255,0,192,53,2,0,168,37,220,188,189,220,255,0,204,53,2,0,173,58,200,158,154,200,255,0,216,53,2,0,172,83,186,128,125,186,255,0,228,53,2,0,182,128,163,106,81,163,255,0,240,53,2,0,190,216,134,74,20,-134,255,0,252,53,2,0,191,2,253,252,251,253,255,0,8,54,2,0,180,8,245,239,237,245,255,0,20,54,2,0,170,18,235,218,218,235,255,0,32,54,2,0,168,37,220,188,189,220,255,0,44,54,2,0,173,58,200,158,154,200,255,0,56,54,2,0,172,83,186,128,125,186,255,0,68,54,2,0,182,128,163,106,81,163,255,0,80,54,2,0,190,216,134,74,20,134,255,0,92,54,2,0,191,2,253,252,251,253,255,0,104,54,2,0,180,8,245,239,237,245,255,0,116,54,2,0,170,18,235,218,218,235,255,0,128,54,2,0,168,37,220,188,189,220,255,0,140,54,2,0,173,58,200,158,-154,200,255,0,152,54,2,0,172,83,186,128,125,186,255,0,164,54,2,0,182,128,163,106,81,163,255,0,176,54,2,0,188,185,143,84,39,143,255,0,188,54,2,0,191,255,125,63,0,125,255,0,200,54,2,0,242,255,103,103,0,31,255,0,210,54,2,0,150,241,97,5,48,97,255,0,221,54,2,0,249,220,178,178,24,43,255,0,231,54,2,0,5,163,214,214,96,77,255,0,241,54,2,0,13,119,244,244,165,130,255,0,251,54,2,0,15,54,253,253,219,199,255,0,5,55,2,0,142,32,240,209,229,240,255,0,15,55,2,0,141,87,222,146,197,222,255,0,25,55,2,0,143,167,195,67,-147,195,255,0,35,55,2,0,148,206,172,33,102,172,255,0,45,55,2,0,242,255,103,103,0,31,255,0,55,55,2,0,148,206,172,33,102,172,255,0,66,55,2,0,150,241,97,5,48,97,255,0,77,55,2,0,249,220,178,178,24,43,255,0,87,55,2,0,5,163,214,214,96,77,255,0,97,55,2,0,13,119,244,244,165,130,255,0,107,55,2,0,15,54,253,253,219,199,255,0,117,55,2,0,0,0,247,247,247,247,255,0,127,55,2,0,142,32,240,209,229,240,255,0,137,55,2,0,141,87,222,146,197,222,255,0,147,55,2,0,143,167,195,67,147,195,255,0,157,55,2,0,12,150,239,239,138,-98,255,0,166,55,2,0,0,0,247,247,247,247,255,0,175,55,2,0,143,128,207,103,169,207,255,0,184,55,2,0,248,255,202,202,0,32,255,0,193,55,2,0,13,119,244,244,165,130,255,0,202,55,2,0,141,87,222,146,197,222,255,0,211,55,2,0,143,247,176,5,113,176,255,0,220,55,2,0,248,255,202,202,0,32,255,0,229,55,2,0,13,119,244,244,165,130,255,0,238,55,2,0,0,0,247,247,247,247,255,0,247,55,2,0,141,87,222,146,197,222,255,0,0,56,2,0,143,247,176,5,113,176,255,0,9,56,2,0,249,220,178,178,24,43,255,0,18,56,2,0,12,150,239,239,138,-98,255,0,27,56,2,0,15,54,253,253,219,199,255,0,36,56,2,0,142,32,240,209,229,240,255,0,45,56,2,0,143,128,207,103,169,207,255,0,54,56,2,0,148,206,172,33,102,172,255,0,63,56,2,0,249,220,178,178,24,43,255,0,72,56,2,0,12,150,239,239,138,98,255,0,81,56,2,0,15,54,253,253,219,199,255,0,90,56,2,0,0,0,247,247,247,247,255,0,99,56,2,0,142,32,240,209,229,240,255,0,108,56,2,0,143,128,207,103,169,207,255,0,117,56,2,0,148,206,172,33,102,172,255,0,126,56,2,0,249,220,178,178,24,43,255,0,135,56,2,0,5,163,214,214,96,-77,255,0,144,56,2,0,13,119,244,244,165,130,255,0,153,56,2,0,15,54,253,253,219,199,255,0,162,56,2,0,142,32,240,209,229,240,255,0,171,56,2,0,141,87,222,146,197,222,255,0,180,56,2,0,143,167,195,67,147,195,255,0,189,56,2,0,148,206,172,33,102,172,255,0,198,56,2,0,249,220,178,178,24,43,255,0,207,56,2,0,5,163,214,214,96,77,255,0,216,56,2,0,13,119,244,244,165,130,255,0,225,56,2,0,15,54,253,253,219,199,255,0,234,56,2,0,0,0,247,247,247,247,255,0,243,56,2,0,142,32,240,209,229,240,255,0,252,56,2,0,141,87,222,-146,197,222,255,0,5,57,2,0,143,167,195,67,147,195,255,0,14,57,2,0,148,206,172,33,102,172,255,0,23,57,2,0,242,255,103,103,0,31,255,0,33,57,2,0,0,0,26,26,26,26,255,0,44,57,2,0,249,220,178,178,24,43,255,0,54,57,2,0,5,163,214,214,96,77,255,0,64,57,2,0,13,119,244,244,165,130,255,0,74,57,2,0,15,54,253,253,219,199,255,0,84,57,2,0,0,0,224,224,224,224,255,0,94,57,2,0,0,0,186,186,186,186,255,0,104,57,2,0,0,0,135,135,135,135,255,0,114,57,2,0,0,0,77,77,77,77,255,0,124,57,2,0,242,255,103,103,0,31,255,0,134,57,-2,0,0,0,77,77,77,77,255,0,145,57,2,0,0,0,26,26,26,26,255,0,156,57,2,0,249,220,178,178,24,43,255,0,166,57,2,0,5,163,214,214,96,77,255,0,176,57,2,0,13,119,244,244,165,130,255,0,186,57,2,0,15,54,253,253,219,199,255,0,196,57,2,0,0,0,255,255,255,255,255,0,206,57,2,0,0,0,224,224,224,224,255,0,216,57,2,0,0,0,186,186,186,186,255,0,226,57,2,0,0,0,135,135,135,135,255,0,236,57,2,0,12,150,239,239,138,98,255,0,245,57,2,0,0,0,255,255,255,255,255,0,254,57,2,0,0,0,153,153,153,153,255,0,7,58,2,0,248,255,202,202,0,-32,255,0,16,58,2,0,13,119,244,244,165,130,255,0,25,58,2,0,0,0,186,186,186,186,255,0,34,58,2,0,0,0,64,64,64,64,255,0,43,58,2,0,248,255,202,202,0,32,255,0,52,58,2,0,13,119,244,244,165,130,255,0,61,58,2,0,0,0,255,255,255,255,255,0,70,58,2,0,0,0,186,186,186,186,255,0,79,58,2,0,0,0,64,64,64,64,255,0,88,58,2,0,249,220,178,178,24,43,255,0,97,58,2,0,12,150,239,239,138,98,255,0,106,58,2,0,15,54,253,253,219,199,255,0,115,58,2,0,0,0,224,224,224,224,255,0,124,58,2,0,0,0,153,153,153,153,255,0,133,58,2,0,0,0,77,-77,77,77,255,0,142,58,2,0,249,220,178,178,24,43,255,0,151,58,2,0,12,150,239,239,138,98,255,0,160,58,2,0,15,54,253,253,219,199,255,0,169,58,2,0,0,0,255,255,255,255,255,0,178,58,2,0,0,0,224,224,224,224,255,0,187,58,2,0,0,0,153,153,153,153,255,0,196,58,2,0,0,0,77,77,77,77,255,0,205,58,2,0,249,220,178,178,24,43,255,0,214,58,2,0,5,163,214,214,96,77,255,0,223,58,2,0,13,119,244,244,165,130,255,0,232,58,2,0,15,54,253,253,219,199,255,0,241,58,2,0,0,0,224,224,224,224,255,0,250,58,2,0,0,0,186,186,186,186,255,-0,3,59,2,0,0,0,135,135,135,135,255,0,12,59,2,0,0,0,77,77,77,77,255,0,21,59,2,0,249,220,178,178,24,43,255,0,30,59,2,0,5,163,214,214,96,77,255,0,39,59,2,0,13,119,244,244,165,130,255,0,48,59,2,0,15,54,253,253,219,199,255,0,57,59,2,0,0,0,255,255,255,255,255,0,66,59,2,0,0,0,224,224,224,224,255,0,75,59,2,0,0,0,186,186,186,186,255,0,84,59,2,0,0,0,135,135,135,135,255,0,93,59,2,0,0,0,77,77,77,77,255,0,102,59,2,0,3,32,253,253,224,221,255,0,111,59,2,0,244,92,250,250,159,181,255,0,120,59,2,0,227,220,197,197,-27,138,255,0,129,59,2,0,13,28,254,254,235,226,255,0,138,59,2,0,252,72,251,251,180,185,255,0,147,59,2,0,238,147,247,247,104,161,255,0,156,59,2,0,224,253,174,174,1,126,255,0,165,59,2,0,13,28,254,254,235,226,255,0,174,59,2,0,252,72,251,251,180,185,255,0,183,59,2,0,238,147,247,247,104,161,255,0,192,59,2,0,227,220,197,197,27,138,255,0,201,59,2,0,213,252,122,122,1,119,255,0,210,59,2,0,13,28,254,254,235,226,255,0,219,59,2,0,3,60,252,252,197,192,255,0,228,59,2,0,244,92,250,250,159,181,255,0,237,59,2,0,238,-147,247,247,104,161,255,0,246,59,2,0,227,220,197,197,27,138,255,0,255,59,2,0,213,252,122,122,1,119,255,0,8,60,2,0,13,28,254,254,235,226,255,0,17,60,2,0,3,60,252,252,197,192,255,0,26,60,2,0,244,92,250,250,159,181,255,0,35,60,2,0,238,147,247,247,104,161,255,0,44,60,2,0,230,195,221,221,52,151,255,0,53,60,2,0,224,253,174,174,1,126,255,0,62,60,2,0,213,252,122,122,1,119,255,0,71,60,2,0,14,12,255,255,247,243,255,0,80,60,2,0,3,32,253,253,224,221,255,0,89,60,2,0,3,60,252,252,197,192,255,0,98,60,2,0,244,92,-250,250,159,181,255,0,107,60,2,0,238,147,247,247,104,161,255,0,116,60,2,0,230,195,221,221,52,151,255,0,125,60,2,0,224,253,174,174,1,126,255,0,134,60,2,0,213,252,122,122,1,119,255,0,143,60,2,0,14,12,255,255,247,243,255,0,152,60,2,0,3,32,253,253,224,221,255,0,161,60,2,0,3,60,252,252,197,192,255,0,170,60,2,0,244,92,250,250,159,181,255,0,179,60,2,0,238,147,247,247,104,161,255,0,188,60,2,0,230,195,221,221,52,151,255,0,197,60,2,0,224,253,174,174,1,126,255,0,206,60,2,0,213,252,122,122,1,119,255,0,215,60,-2,0,199,255,106,73,0,106,255,0,224,60,2,0,245,255,165,165,0,38,255,0,236,60,2,0,167,171,149,49,54,149,255,0,249,60,2,0,2,208,215,215,48,39,255,0,5,61,2,0,10,184,244,244,109,67,255,0,17,61,2,0,20,157,253,253,174,97,255,0,29,61,2,0,30,110,254,254,224,144,255,0,41,61,2,0,136,24,248,224,243,248,255,0,53,61,2,0,138,67,233,171,217,233,255,0,65,61,2,0,143,113,209,116,173,209,255,0,77,61,2,0,151,157,180,69,117,180,255,0,89,61,2,0,245,255,165,165,0,38,255,0,101,61,2,0,151,157,180,69,117,180,255,0,114,61,2,-0,167,171,149,49,54,149,255,0,127,61,2,0,2,208,215,215,48,39,255,0,139,61,2,0,10,184,244,244,109,67,255,0,151,61,2,0,20,157,253,253,174,97,255,0,163,61,2,0,30,110,254,254,224,144,255,0,175,61,2,0,42,64,255,255,255,191,255,0,187,61,2,0,136,24,248,224,243,248,255,0,199,61,2,0,138,67,233,171,217,233,255,0,211,61,2,0,143,113,209,116,173,209,255,0,223,61,2,0,13,164,252,252,141,89,255,0,234,61,2,0,42,64,255,255,255,191,255,0,245,61,2,0,143,86,219,145,191,219,255,0,0,62,2,0,254,225,215,215,25,28,255,0,11,-62,2,0,20,157,253,253,174,97,255,0,22,62,2,0,138,67,233,171,217,233,255,0,33,62,2,0,145,193,182,44,123,182,255,0,44,62,2,0,254,225,215,215,25,28,255,0,55,62,2,0,20,157,253,253,174,97,255,0,66,62,2,0,42,64,255,255,255,191,255,0,77,62,2,0,138,67,233,171,217,233,255,0,88,62,2,0,145,193,182,44,123,182,255,0,99,62,2,0,2,208,215,215,48,39,255,0,110,62,2,0,13,164,252,252,141,89,255,0,121,62,2,0,30,110,254,254,224,144,255,0,132,62,2,0,136,24,248,224,243,248,255,0,143,62,2,0,143,86,219,145,191,219,255,0,154,-62,2,0,151,157,180,69,117,180,255,0,165,62,2,0,2,208,215,215,48,39,255,0,176,62,2,0,13,164,252,252,141,89,255,0,187,62,2,0,30,110,254,254,224,144,255,0,198,62,2,0,42,64,255,255,255,191,255,0,209,62,2,0,136,24,248,224,243,248,255,0,220,62,2,0,143,86,219,145,191,219,255,0,231,62,2,0,151,157,180,69,117,180,255,0,242,62,2,0,2,208,215,215,48,39,255,0,253,62,2,0,10,184,244,244,109,67,255,0,8,63,2,0,20,157,253,253,174,97,255,0,19,63,2,0,30,110,254,254,224,144,255,0,30,63,2,0,136,24,248,224,243,248,255,0,-41,63,2,0,138,67,233,171,217,233,255,0,52,63,2,0,143,113,209,116,173,209,255,0,63,63,2,0,151,157,180,69,117,180,255,0,74,63,2,0,2,208,215,215,48,39,255,0,85,63,2,0,10,184,244,244,109,67,255,0,96,63,2,0,20,157,253,253,174,97,255,0,107,63,2,0,30,110,254,254,224,144,255,0,118,63,2,0,42,64,255,255,255,191,255,0,129,63,2,0,136,24,248,224,243,248,255,0,140,63,2,0,138,67,233,171,217,233,255,0,151,63,2,0,143,113,209,116,173,209,255,0,162,63,2,0,151,157,180,69,117,180,255,0,173,63,2,0,245,255,165,165,0,38,-255,0,185,63,2,0,107,255,104,0,104,55,255,0,198,63,2,0,2,208,215,215,48,39,255,0,210,63,2,0,10,184,244,244,109,67,255,0,222,63,2,0,20,157,253,253,174,97,255,0,234,63,2,0,31,115,254,254,224,139,255,0,246,63,2,0,51,106,239,217,239,139,255,0,2,64,2,0,62,130,217,166,217,106,255,0,14,64,2,0,83,121,189,102,189,99,255,0,26,64,2,0,103,211,152,26,152,80,255,0,38,64,2,0,245,255,165,165,0,38,255,0,50,64,2,0,103,211,152,26,152,80,255,0,63,64,2,0,107,255,104,0,104,55,255,0,76,64,2,0,2,208,215,215,48,39,255,0,-88,64,2,0,10,184,244,244,109,67,255,0,100,64,2,0,20,157,253,253,174,97,255,0,112,64,2,0,31,115,254,254,224,139,255,0,124,64,2,0,42,64,255,255,255,191,255,0,136,64,2,0,51,106,239,217,239,139,255,0,148,64,2,0,62,130,217,166,217,106],"i8",4,n.q+64066);-B([255,0,160,64,2,0,83,121,189,102,189,99,255,0,172,64,2,0,13,164,252,252,141,89,255,0,183,64,2,0,42,64,255,255,255,191,255,0,194,64,2,0,66,136,207,145,207,96,255,0,205,64,2,0,254,225,215,215,25,28,255,0,216,64,2,0,20,157,253,253,174,97,255,0,227,64,2,0,62,130,217,166,217,106,255,0,238,64,2,0,98,210,150,26,150,65,255,0,249,64,2,0,254,225,215,215,25,28,255,0,4,65,2,0,20,157,253,253,174,97,255,0,15,65,2,0,42,64,255,255,255,191,255,0,26,65,2,0,62,130,217,166,217,106,255,0,37,65,2,0,98,210,150,26,150,-65,255,0,48,65,2,0,2,208,215,215,48,39,255,0,59,65,2,0,13,164,252,252,141,89,255,0,70,65,2,0,31,115,254,254,224,139,255,0,81,65,2,0,51,106,239,217,239,139,255,0,92,65,2,0,66,136,207,145,207,96,255,0,103,65,2,0,103,211,152,26,152,80,255,0,114,65,2,0,2,208,215,215,48,39,255,0,125,65,2,0,13,164,252,252,141,89,255,0,136,65,2,0,31,115,254,254,224,139,255,0,147,65,2,0,42,64,255,255,255,191,255,0,158,65,2,0,51,106,239,217,239,139,255,0,169,65,2,0,66,136,207,145,207,96,255,0,180,65,2,0,103,211,152,26,152,-80,255,0,191,65,2,0,2,208,215,215,48,39,255,0,202,65,2,0,10,184,244,244,109,67,255,0,213,65,2,0,20,157,253,253,174,97,255,0,224,65,2,0,31,115,254,254,224,139,255,0,235,65,2,0,51,106,239,217,239,139,255,0,246,65,2,0,62,130,217,166,217,106,255,0,1,66,2,0,83,121,189,102,189,99,255,0,12,66,2,0,103,211,152,26,152,80,255,0,23,66,2,0,2,208,215,215,48,39,255,0,34,66,2,0,10,184,244,244,109,67,255,0,45,66,2,0,20,157,253,253,174,97,255,0,56,66,2,0,31,115,254,254,224,139,255,0,67,66,2,0,42,64,255,255,255,191,-255,0,78,66,2,0,51,106,239,217,239,139,255,0,89,66,2,0,62,130,217,166,217,106,255,0,100,66,2,0,83,121,189,102,189,99,255,0,111,66,2,0,103,211,152,26,152,80,255,0,122,66,2,0,13,44,254,254,224,210,255,0,131,66,2,0,9,139,252,252,146,114,255,0,140,66,2,0,1,211,222,222,45,38,255,0,149,66,2,0,13,37,254,254,229,217,255,0,158,66,2,0,11,108,252,252,174,145,255,0,167,66,2,0,7,179,251,251,106,74,255,0,176,66,2,0,253,224,203,203,24,29,255,0,185,66,2,0,13,37,254,254,229,217,255,0,194,66,2,0,11,108,252,252,174,-145,255,0,203,66,2,0,7,179,251,251,106,74,255,0,212,66,2,0,1,211,222,222,45,38,255,0,221,66,2,0,253,231,165,165,15,21,255,0,230,66,2,0,13,37,254,254,229,217,255,0,239,66,2,0,12,92,252,252,187,161,255,0,248,66,2,0,9,139,252,252,146,114,255,0,1,67,2,0,7,179,251,251,106,74,255,0,10,67,2,0,1,211,222,222,45,38,255,0,19,67,2,0,253,231,165,165,15,21,255,0,28,67,2,0,13,37,254,254,229,217,255,0,37,67,2,0,12,92,252,252,187,161,255,0,46,67,2,0,9,139,252,252,146,114,255,0,55,67,2,0,7,179,251,251,106,74,255,0,-64,67,2,0,3,208,239,239,59,44,255,0,73,67,2,0,253,224,203,203,24,29,255,0,82,67,2,0,251,255,153,153,0,13,255,0,91,67,2,0,14,15,255,255,245,240,255,0,100,67,2,0,13,44,254,254,224,210,255,0,109,67,2,0,12,92,252,252,187,161,255,0,118,67,2,0,9,139,252,252,146,114,255,0,127,67,2,0,7,179,251,251,106,74,255,0,136,67,2,0,3,208,239,239,59,44,255,0,145,67,2,0,253,224,203,203,24,29,255,0,154,67,2,0,251,255,153,153,0,13,255,0,163,67,2,0,14,15,255,255,245,240,255,0,172,67,2,0,13,44,254,254,224,210,255,0,181,67,-2,0,12,92,252,252,187,161,255,0,190,67,2,0,9,139,252,252,146,114,255,0,199,67,2,0,7,179,251,251,106,74,255,0,208,67,2,0,3,208,239,239,59,44,255,0,217,67,2,0,253,224,203,203,24,29,255,0,226,67,2,0,253,231,165,165,15,21,255,0,235,67,2,0,249,255,103,103,0,13,255,0,244,67,2,0,254,225,228,228,26,28,255,0,253,67,2,0,146,178,184,55,126,184,255,0,6,68,2,0,83,147,175,77,175,74,255,0,15,68,2,0,254,225,228,228,26,28,255,0,24,68,2,0,146,178,184,55,126,184,255,0,33,68,2,0,83,147,175,77,175,74,255,0,42,68,2,0,-207,132,163,152,78,163,255,0,51,68,2,0,254,225,228,228,26,28,255,0,60,68,2,0,146,178,184,55,126,184,255,0,69,68,2,0,83,147,175,77,175,74,255,0,78,68,2,0,207,132,163,152,78,163,255,0,87,68,2,0,21,255,255,255,127,0,255,0,96,68,2,0,254,225,228,228,26,28,255,0,105,68,2,0,146,178,184,55,126,184,255,0,114,68,2,0,83,147,175,77,175,74,255,0,123,68,2,0,207,132,163,152,78,163,255,0,132,68,2,0,21,255,255,255,127,0,255,0,141,68,2,0,42,204,255,255,255,51,255,0,150,68,2,0,254,225,228,228,26,28,255,0,159,68,2,0,-146,178,184,55,126,184,255,0,168,68,2,0,83,147,175,77,175,74,255,0,177,68,2,0,207,132,163,152,78,163,255,0,186,68,2,0,21,255,255,255,127,0,255,0,195,68,2,0,42,204,255,255,255,51,255,0,204,68,2,0,15,193,166,166,86,40,255,0,213,68,2,0,254,225,228,228,26,28,255,0,222,68,2,0,146,178,184,55,126,184,255,0,231,68,2,0,83,147,175,77,175,74,255,0,240,68,2,0,207,132,163,152,78,163,255,0,249,68,2,0,21,255,255,255,127,0,255,0,2,69,2,0,42,204,255,255,255,51,255,0,11,69,2,0,15,193,166,166,86,40,255,0,20,69,2,0,-232,121,247,247,129,191,255,0,29,69,2,0,254,225,228,228,26,28,255,0,38,69,2,0,146,178,184,55,126,184,255,0,47,69,2,0,83,147,175,77,175,74,255,0,56,69,2,0,207,132,163,152,78,163,255,0,65,69,2,0,21,255,255,255,127,0,255,0,74,69,2,0,42,204,255,255,255,51,255,0,83,69,2,0,15,193,166,166,86,40,255,0,92,69,2,0,232,121,247,247,129,191,255,0,101,69,2,0,0,0,153,153,153,153,255,0,110,69,2,0,114,120,194,102,194,165,255,0,119,69,2,0,11,155,252,252,141,98,255,0,128,69,2,0,156,77,203,141,160,203,255,0,137,69,2,-0,114,120,194,102,194,165,255,0,146,69,2,0,11,155,252,252,141,98,255,0,155,69,2,0,156,77,203,141,160,203,255,0,164,69,2,0,228,102,231,231,138,195,255,0,173,69,2,0,114,120,194,102,194,165,255,0,182,69,2,0,11,155,252,252,141,98,255,0,191,69,2,0,156,77,203,141,160,203,255,0,200,69,2,0,228,102,231,231,138,195,255,0,209,69,2,0,58,155,216,166,216,84,255,0,218,69,2,0,114,120,194,102,194,165,255,0,227,69,2,0,11,155,252,252,141,98,255,0,236,69,2,0,156,77,203,141,160,203,255,0,245,69,2,0,228,102,231,231,138,-195,255,0,254,69,2,0,58,155,216,166,216,84,255,0,7,70,2,0,34,208,255,255,217,47,255,0,16,70,2,0,114,120,194,102,194,165,255,0,25,70,2,0,11,155,252,252,141,98,255,0,34,70,2,0,156,77,203,141,160,203,255,0,43,70,2,0,228,102,231,231,138,195,255,0,52,70,2,0,58,155,216,166,216,84,255,0,61,70,2,0,34,208,255,255,217,47,255,0,70,70,2,0,25,90,229,229,196,148,255,0,79,70,2,0,114,120,194,102,194,165,255,0,88,70,2,0,11,155,252,252,141,98,255,0,97,70,2,0,156,77,203,141,160,203,255,0,106,70,2,0,228,102,231,231,-138,195,255,0,115,70,2,0,58,155,216,166,216,84,255,0,124,70,2,0,34,208,255,255,217,47,255,0,133,70,2,0,25,90,229,229,196,148,255,0,142,70,2,0,0,0,179,179,179,179,255,0,151,70,2,0,120,84,211,141,211,199,255,0,161,70,2,0,211,82,189,188,128,189,255,0,172,70,2,0,42,76,255,255,255,179,255,0,182,70,2,0,175,37,218,190,186,218,255,0,192,70,2,0,4,139,251,251,128,114,255,0,202,70,2,0,144,100,211,128,177,211,255,0,212,70,2,0,22,156,253,253,180,98,255,0,222,70,2,0,58,134,222,179,222,105,255,0,232,70,2,0,233,-47,252,252,205,229,255,0,242,70,2,0,0,0,217,217,217,217,255,0,252,70,2,0,120,84,211,141,211,199,255,0,6,71,2,0,211,82,189,188,128,189,255,0,17,71,2,0,77,41,235,204,235,197,255,0,28,71,2,0,42,76,255,255,255,179,255,0,38,71,2,0,175,37,218,190,186,218,255,0,48,71,2,0,4,139,251,251,128,114,255,0,58,71,2,0,144,100,211,128,177,211,255,0,68,71,2,0,22,156,253,253,180,98,255,0,78,71,2,0,58,134,222,179,222,105,255,0,88,71,2,0,233,47,252,252,205,229,255,0,98,71,2,0,0,0,217,217,217,217,255,0,108,71,2,0,120,84,-211,141,211,199,255,0,118,71,2,0,211,82,189,188,128,189,255,0,129,71,2,0,77,41,235,204,235,197,255,0,140,71,2,0,37,144,255,255,237,111,255,0,151,71,2,0,42,76,255,255,255,179,255,0,161,71,2,0,175,37,218,190,186,218,255,0,171,71,2,0,4,139,251,251,128,114,255,0,181,71,2,0,144,100,211,128,177,211,255,0,191,71,2,0,22,156,253,253,180,98,255,0,201,71,2,0,58,134,222,179,222,105,255,0,211,71,2,0,233,47,252,252,205,229,255,0,221,71,2,0,0,0,217,217,217,217,255,0,231,71,2,0,120,84,211,141,211,199,255,0,240,71,-2,0,42,76,255,255,255,179,255,0,249,71,2,0,175,37,218,190,186,218,255,0,2,72,2,0,120,84,211,141,211,199,255,0,11,72,2,0,42,76,255,255,255,179,255,0,20,72,2,0,175,37,218,190,186,218,255,0,29,72,2,0,4,139,251,251,128,114,255,0,38,72,2,0,120,84,211,141,211,199,255,0,47,72,2,0,42,76,255,255,255,179,255,0,56,72,2,0,175,37,218,190,186,218,255,0,65,72,2,0,4,139,251,251,128,114,255,0,74,72,2,0,144,100,211,128,177,211,255,0,83,72,2,0,120,84,211,141,211,199,255,0,92,72,2,0,42,76,255,255,255,179,255,0,101,72,-2,0,175,37,218,190,186,218,255,0,110,72,2,0,4,139,251,251,128,114,255,0,119,72,2,0,144,100,211,128,177,211,255,0,128,72,2,0,22,156,253,253,180,98,255,0,137,72,2,0,120,84,211,141,211,199,255,0,146,72,2,0,42,76,255,255,255,179,255,0,155,72,2,0,175,37,218,190,186,218,255,0,164,72,2,0,4,139,251,251,128,114,255,0,173,72,2,0,144,100,211,128,177,211,255,0,182,72,2,0,22,156,253,253,180,98,255,0,191,72,2,0,58,134,222,179,222,105,255,0,200,72,2,0,120,84,211,141,211,199,255,0,209,72,2,0,42,76,255,255,255,179,-255,0,218,72,2,0,175,37,218,190,186,218,255,0,227,72,2,0,4,139,251,251,128,114,255,0,236,72,2,0,144,100,211,128,177,211,255,0,245,72,2,0,22,156,253,253,180,98,255,0,254,72,2,0,58,134,222,179,222,105,255,0,7,73,2,0,233,47,252,252,205,229,255,0,16,73,2,0,120,84,211,141,211,199,255,0,25,73,2,0,42,76,255,255,255,179,255,0,34,73,2,0,175,37,218,190,186,218,255,0,43,73,2,0,4,139,251,251,128,114,255,0,52,73,2,0,144,100,211,128,177,211,255,0,61,73,2,0,22,156,253,253,180,98,255,0,70,73,2,0,58,134,222,179,222,-105,255,0,79,73,2,0,233,47,252,252,205,229,255,0,88,73,2,0,0,0,217,217,217,217,255,0,97,73,2,0,237,253,158,158,1,66,255,0,111,73,2,0,177,130,162,94,79,162,255,0,126,73,2,0,250,180,213,213,62,79,255,0,140,73,2,0,10,184,244,244,109,67,255,0,154,73,2,0,20,157,253,253,174,97,255,0,168,73,2,0,31,115,254,254,224,139,255,0,182,73,2,0,49,96,245,230,245,152,255,0,196,73,2,0,79,65,221,171,221,164,255,0,210,73,2,0,114,120,194,102,194,165,255,0,224,73,2,0,143,187,189,50,136,189,255,0,238,73,2,0,237,253,158,158,-1,66,255,0,252,73,2,0,143,187,189,50,136,189,255,0,11,74,2,0,177,130,162,94,79,162,255,0,26,74,2,0,250,180,213,213,62,79,255,0,40,74,2,0,10,184,244,244,109,67,255,0,54,74,2,0,20,157,253,253,174,97,255,0,68,74,2,0,31,115,254,254,224,139,255,0,82,74,2,0,42,64,255,255,255,191,255,0,96,74,2,0,49,96,245,230,245,152,255,0,110,74,2,0,79,65,221,171,221,164,255,0,124,74,2,0,114,120,194,102,194,165,255,0,138,74,2,0,13,164,252,252,141,89,255,0,151,74,2,0,42,64,255,255,255,191,255,0,164,74,2,0,81,77,213,153,-213,148,255,0,177,74,2,0,254,225,215,215,25,28,255,0,190,74,2,0,20,157,253,253,174,97,255,0,203,74,2,0,79,65,221,171,221,164,255,0,216,74,2,0,143,196,186,43,131,186,255,0,229,74,2,0,254,225,215,215,25,28,255,0,242,74,2,0,20,157,253,253,174,97,255,0,255,74,2,0,42,64,255,255,255,191,255,0,12,75,2,0,79,65,221,171,221,164,255,0,25,75,2,0,143,196,186,43,131,186,255,0,38,75,2,0,250,180,213,213,62,79,255,0,51,75,2,0,13,164,252,252,141,89,255,0,64,75,2,0,31,115,254,254,224,139,255,0,77,75,2,0,49,96,245,230,-245,152,255,0,90,75,2,0,81,77,213,153,213,148,255,0,103,75,2,0,143,187,189,50,136,189,255,0,116,75,2,0,250,180,213,213,62,79,255,0,129,75,2,0,13,164,252,252,141,89,255,0,142,75,2,0,31,115,254,254,224,139,255,0,155,75,2,0,42,64,255,255,255,191,255,0,168,75,2,0,49,96,245,230,245,152,255,0,181,75,2,0,81,77,213,153,213,148,255,0,194,75,2,0,143,187,189,50,136,189,255,0,207,75,2,0,250,180,213,213,62,79,255,0,220,75,2,0,10,184,244,244,109,67,255,0,233,75,2,0,20,157,253,253,174,97,255,0,246,75,2,0,31,115,-254,254,224,139,255,0,3,76,2,0,49,96,245,230,245,152,255,0,16,76,2,0,79,65,221,171,221,164,255,0,29,76,2,0,114,120,194,102,194,165,255,0,42,76,2,0,143,187,189,50,136,189,255,0,55,76,2,0,250,180,213,213,62,79,255,0,68,76,2,0,10,184,244,244,109,67,255,0,81,76,2,0,20,157,253,253,174,97,255,0,94,76,2,0,31,115,254,254,224,139,255,0,107,76,2,0,42,64,255,255,255,191,255,0,120,76,2,0,49,96,245,230,245,152,255,0,133,76,2,0,79,65,221,171,221,164,255,0,146,76,2,0,114,120,194,102,194,165,255,0,159,76,2,0,143,-187,189,50,136,189,255,0,172,76,2,0,147,15,255,240,248,255,255,0,187,76,2,0,24,35,250,250,235,215,255,0,205,76,2,0,127,255,255,0,255,255,255,0,215,76,2,0,113,128,255,127,255,212,255,0,231,76,2,0,127,15,255,240,255,255,255,0,242,76,2,0,42,26,245,245,245,220,255,0,253,76,2,0,23,58,255,255,228,196,255,0,9,77,2,0,0,0,0,0,0,0,255,0,20,77,2,0,25,49,255,255,235,205,255,0,40,77,2,0,170,255,255,0,0,255,255,0,50,77,2,0,192,206,226,138,43,226,255,0,66,77,2,0,0,190,165,165,42,42,255,0,77,77,2,0,23,99,222,222,-184,135,255,0,92,77,2,0,128,103,160,95,158,160,255,0,107,77,2,0,63,255,255,127,255,0,255,0,123,77,2,0,17,218,210,210,105,30,255,0,138,77,2,0,11,175,255,255,127,80,255,0,149,77,2,0,154,147,237,100,149,237,255,0,169,77,2,0,33,34,255,255,248,220,255,0,183,77,2,0,246,231,220,220,20,60,255,0,196,77,2,0,127,255,255,0,255,255,255,0,206,77,2,0,170,255,139,0,0,139,255,0,220,77,2,0,127,255,139,0,139,139,255,0,234,77,2,0,30,239,184,184,134,11,255,0,253,77,2,0,0,0,169,169,169,169,255,0,11,78,2,0,85,255,100,0,-100,0,255,0,26,78,2,0,0,0,169,169,169,169,255,0,40,78,2,0,39,110,189,189,183,107,255,0,55,78,2,0,212,255,139,139,0,139,255,0,72,78,2,0,58,142,107,85,107,47,255,0,92,78,2,0,23,255,255,255,140,0,255,0,108,78,2,0,198,192,204,153,50,204,255,0,124,78,2,0,0,255,139,139,0,0,255,0,137,78,2,0,10,121,233,233,150,122,255,0,153,78,2,0,85,61,188,143,188,143,255,0,171,78,2,0,175,143,139,72,61,139,255,0,190,78,2,0,127,103,79,47,79,79,255,0,209,78,2,0,127,103,79,47,79,79,255,0,228,78,2,0,128,255,209,0,206,209,255,-0,247,78,2,0,199,255,211,148,0,211,255,0,7,79,2,0,232,235,255,255,20,147,255,0,21,79,2,0,138,255,255,0,191,255,255,0,38,79,2,0,0,0,105,105,105,105,255,0,51,79,2,0,0,0,105,105,105,105,255,0,64,79,2,0,148,225,255,30,144,255,255,0,80,79,2,0,0,206,178,178,34,34,255,0,95,79,2,0,28,15,255,255,250,240,255,0,112,79,2,0,85,192,139,34,139,34,255,0,129,79,2,0,212,255,255,255,0,255,255,0,142,79,2,0,0,0,220,220,220,220,255,0,157,79,2,0,170,7,255,248,248,255,255,0,173,79,2,0,35,255,255,255,215,0,255,0,183,79,2,-0,30,217,218,218,165,32,255,0,198,79,2,0,0,0,128,128,128,128,255,0,208,79,2,0,85,255,128,0,128,0,255,0,219,79,2,0,59,208,255,173,255,47,255,0,236,79,2,0,0,0,128,128,128,128,255,0,246,79,2,0,85,15,255,240,255,240,255,0,4,80,2,0,233,150,255,255,105,180,255,0,17,80,2,0,0,140,205,205,92,92,255,0,32,80,2,0,194,255,130,75,0,130,255,0,44,80,2,0,42,15,255,255,255,240,255,0,55,80,2,0,38,106,240,240,230,140,255,0,66,80,2,0,170,20,250,230,230,250,255,0,80,80,2,0,240,15,255,255,240,245,255,0,99,80,2,0,64,255,-252,124,252,0,255,0,114,80,2,0,38,49,255,255,250,205,255,0,132,80,2,0,137,63,230,173,216,230,255,0,147,80,2,0,0,119,240,240,128,128,255,0,163,80,2,0,127,31,255,224,255,255,255,0,178,80,2,0,42,40,250,250,250,210,255,0,204,80,2,0,0,0,211,211,211,211,255,0,219,80,2,0,85,100,238,144,238,144,255,0,235,80,2,0,0,0,211,211,211,211,255,0,250,80,2,0,248,73,255,255,182,193,255,0,9,81,2,0,12,132,255,255,160,122,255,0,26,81,2,0,125,209,178,32,178,170,255,0,45,81,2,0,143,117,250,135,206,250,255,0,63,81,2,0,148,-56,153,119,136,153,255,0,83,81,2,0,148,56,153,119,136,153,255,0,103,81,2,0,151,52,222,176,196,222,255,0,123,81,2,0,42,31,255,255,255,224,255,0,140,81,2,0,85,255,255,0,255,0,255,0,150,81,2,0,85,192,205,50,205,50,255,0,165,81,2,0,21,20,250,250,240,230,255,0,176,81,2,0,212,255,255,255,0,255,255,0,189,81,2,0,0,255,128,128,0,0,255,0,201,81,2,0,113,128,205,102,205,170,255,0,223,81,2,0,170,255,205,0,0,205,255,0,239,81,2,0,204,152,211,186,85,211,255,0,1,82,2,0,183,124,219,147,112,219,255,0,19,82,2,0,103,-169,179,60,179,113,255,0,39,82,2,0,176,143,238,123,104,238,255,0,60,82,2,0,111,255,250,0,250,154,255,0,83,82,2,0,125,167,209,72,209,204,255,0,104,82,2,0,228,228,199,199,21,133,255,0,125,82,2,0,170,198,112,25,25,112,255,0,143,82,2,0,106,9,255,245,255,250,255,0,158,82,2,0,4,30,255,255,228,225,255,0,173,82,2,0,26,73,255,255,228,181,255,0,187,82,2,0,25,81,255,255,222,173,255,0,204,82,2,0,170,255,128,0,0,128,255,0,214,82,2,0,27,23,253,253,245,230,255,0,227,82,2,0,42,255,128,128,128,0,255,0,238,82,2,0,-56,192,142,107,142,35,255,0,253,82,2,0,27,255,255,255,165,0,255,0,9,83,2,0,11,255,255,255,69,0,255,0,24,83,2,0,214,123,218,218,112,214,255,0,36,83,2,0,38,72,238,238,232,170,255,0,55,83,2,0,85,100,251,152,251,152,255,0,70,83,2,0,127,67,238,175,238,238,255,0,89,83,2,0,241,124,219,219,112,147,255,0,108,83,2,0,26,41,255,255,239,213,255,0,124,83,2,0,20,70,255,255,218,185,255,0,139,83,2,0,20,176,205,205,133,63,255,0,149,83,2,0,247,63,255,255,192,203,255,0,159,83,2,0,212,70,221,221,160,221,255,0,169,83,-2,0,132,59,230,176,224,230,255,0,185,83,2,0,212,255,128,128,0,128,255,0,197,83,2,0,0,255,255,255,0,0,255,0,206,83,2,0,0,61,188,188,143,143,255,0,221,83,2,0,159,181,225,65,105,225,255,0,236,83,2,0,17,220,139,139,69,19,255,0,253,83,2,0,4,138,250,250,128,114,255,0,9,84,2,0,19,154,244,244,164,96,255,0,25,84,2,0,103,170,139,46,139,87,255,0,39,84,2,0,17,16,255,255,245,238,255,0,53,84,2,0,13,183,160,160,82,45,255,0,65,84,2,0,0,0,192,192,192,192,255,0,77,84,2,0,139,108,235,135,206,235,255,0,90,84,2,0,175,-143,205,106,90,205,255,0,105,84,2,0,148,56,144,112,128,144,255,0,120,84,2,0,148,56,144,112,128,144,255,0,135,84,2,0,0,5,255,255,250,250,255,0,145,84,2,0,106,255,255,0,255,127,255,0,162,84,2,0,146,155,180,70,130,180,255,0,177,84,2,0,24,84,210,210,180,140,255,0,186,84,2,0,127,255,128,0,128,128,255,0,196,84,2,0,212,29,216,216,191,216,255,0,209,84,2,0,6,184,255,255,99,71,255,0,221,84,2,0,123,182,224,64,224,208,255,0,236,84,2,0,212,115,238,238,130,238,255,0,248,84,2,0,27,68,245,245,222,179,255,0,3,85,-2,0,0,0,255,255,255,255,255,0,14,85,2,0,0,0,245,245,245,245,255,0,30,85,2,0,42,255,255,255,255,0,255,0,42,85,2,0,56,192,205,154,205,50,255,0,59,85,2,0,45,67,252,247,252,185,255,0,68,85,2,0,68,91,221,173,221,142,255,0,77,85,2,0,98,178,163,49,163,84,255,0,86,85,2,0,42,50,255,255,255,204,255,0,95,85,2,0,62,85,230,194,230,153,255,0,104,85,2,0,85,100,198,120,198,121,255,0,113,85,2,0,99,187,132,35,132,67,255,0,122,85,2,0,42,50,255,255,255,204,255,0,131,85,2,0,62,85,230,194,230,153,255,0,140,85,2,0,85,100,-198,120,198,121,255,0,149,85,2,0,98,178,163,49,163,84,255,0,158,85,2,0,107,255,104,0,104,55,255,0,167,85,2,0,42,50,255,255,255,204,255,0,176,85,2,0,55,81,240,217,240,163,255,0,185,85,2,0,68,91,221,173,221,142,255,0,194,85,2,0,85,100,198,120,198,121,255,0,203,85,2,0,98,178,163,49,163,84,255,0,212,85,2,0,107,255,104,0,104,55,255,0,221,85,2,0,42,50,255,255,255,204,255,0,230,85,2,0,55,81,240,217,240,163,255,0,239,85,2,0,68,91,221,173,221,142,255,0,248,85,2,0,85,100,198,120,198,121,255,0,1,86,2,0,96,158,-171,65,171,93,255,0,10,86,2,0,99,187,132,35,132,67,255,0,19,86,2,0,108,255,90,0,90,50,255,0,28,86,2,0,42,25,255,255,255,229,255,0,37,86,2,0,45,67,252,247,252,185,255,0,46,86,2,0,55,81,240,217,240,163,255,0,55,86,2,0,68,91,221,173,221,142,255,0,64,86,2,0,85,100,198,120,198,121,255,0,73,86,2,0,96,158,171,65,171,93,255,0,82,86,2,0,99,187,132,35,132,67,255,0,91,86,2,0,108,255,90,0,90,50,255,0,100,86,2,0,42,25,255,255,255,229,255,0,109,86,2,0,45,67,252,247,252,185,255,0,118,86,2,0,55,81,240,217,240,163,-255,0,127,86,2,0,68,91,221,173,221,142,255,0,136,86,2,0,85,100,198,120,198,121,255,0,145,86,2,0,96,158,171,65,171,93,255,0,154,86,2,0,99,187,132,35,132,67,255,0,163,86,2,0,107,255,104,0,104,55,255,0,172,86,2,0,110,255,69,0,69,41,255,0,181,86,2,0,49,73,248,237,248,177,255,0,192,86,2,0,117,97,205,127,205,187,255,0,203,86,2,0,144,194,184,44,127,184,255,0,214,86,2,0,42,50,255,255,255,204,255,0,225,86,2,0,99,66,218,161,218,180,255,0,236,86,2,0,132,170,196,65,182,196,255,0,247,86,2,0,150,203,168,34,94,-168,255,0,2,87,2,0,42,50,255,255,255,204,255,0,13,87,2,0,99,66,218,161,218,180,255,0,24,87,2,0,132,170,196,65,182,196,255,0,35,87,2,0,144,194,184,44,127,184,255,0,46,87,2,0,164,191,148,37,52,148,255,0,57,87,2,0,42,50,255,255,255,204,255,0,68,87,2,0,69,58,233,199,233,180,255,0,79,87,2,0,117,97,205,127,205,187,255,0,90,87,2,0,132,170,196,65,182,196,255,0,101,87,2,0,144,194,184,44,127,184,255,0,112,87,2,0,164,191,148,37,52,148,255,0,123,87,2,0,42,50,255,255,255,204,255,0,134,87,2,0,69,58,233,199,233,-180,255,0,145,87,2,0,117,97,205,127,205,187,255,0,156,87,2,0,132,170,196,65,182,196,255,0,167,87,2,0,139,216,192,29,145,192,255,0,178,87,2,0,150,203,168,34,94,168,255,0,189,87,2,0,158,231,132,12,44,132,255,0,200,87,2,0,42,38,255,255,255,217,255,0,211,87,2,0,49,73,248,237,248,177,255,0,222,87,2,0,69,58,233,199,233,180,255,0,233,87,2,0,117,97,205,127,205,187,255,0,244,87,2,0,132,170,196,65,182,196,255,0,255,87,2,0,139,216,192,29,145,192,255,0,10,88,2,0,150,203,168,34,94,168,255,0,21,88,2,0,158,231,-132,12,44,132,255,0,32,88,2,0,42,38,255,255,255,217,255,0,43,88,2,0,49,73,248,237,248,177,255,0,54,88,2,0,69,58,233,199,233,180,255,0,65,88,2,0,117,97,205,127,205,187,255,0,76,88,2,0,132,170,196,65,182,196,255,0,87,88,2,0,139,216,192,29,145,192,255,0,98,88,2,0,150,203,168,34,94,168,255,0,109,88,2,0,164,191,148,37,52,148,255,0,120,88,2,0,158,231,88,8,29,88,255,0,131,88,2,0,37,66,255,255,247,188,255,0,142,88,2,0,28,175,254,254,196,79,255,0,153,88,2,0,16,238,217,217,95,14,255,0,164,88,2,0,42,42,255,-255,255,212,255,0,175,88,2,0,28,112,254,254,217,142,255,0,186,88,2,0,22,213,254,254,153,41,255,0,197,88,2,0,15,252,204,204,76,2,255,0,208,88,2,0,42,42,255,255,255,212,255,0,219,88,2,0,28,112,254,254,217,142,255,0,230,88,2,0,22,213,254,254,153,41,255,0,241,88,2,0,16,238,217,217,95,14,255,0,252,88,2,0,13,248,153,153,52,4,255,0,7,89,2,0,42,42,255,255,255,212,255,0,18,89,2,0,31,109,254,254,227,145,255,0,29,89,2,0,28,175,254,254,196,79,255,0,40,89,2,0,22,213,254,254,153,41,255,0,51,89,2,0,16,238,217,217,-95,14,255,0,62,89,2,0,13,248,153,153,52,4,255,0,73,89,2,0,42,42,255,255,255,212,255,0,84,89,2,0,31,109,254,254,227,145,255,0,95,89,2,0,28,175,254,254,196,79,255,0,106,89,2,0,22,213,254,254,153,41,255,0,117,89,2,0,18,233,236,236,112,20,255,0,128,89,2,0,15,252,204,204,76,2,255,0,139,89,2,0,12,247,140,140,45,4,255,0,150,89,2,0,42,25,255,255,255,229,255,0,161,89,2,0,37,66,255,255,247,188,255,0,172,89,2,0,31,109,254,254,227,145,255,0,183,89,2,0,28,175,254,254,196,79,255,0,194,89,2,0,22,213,254,254,153,-41,255,0,205,89,2,0,18,233,236,236,112,20,255,0,216,89,2,0,15,252,204,204,76,2,255,0,227,89,2,0,12,247,140,140,45,4,255,0,238,89,2,0,42,25,255,255,255,229,255,0,249,89,2,0,37,66,255,255,247,188,255,0,4,90,2,0,31,109,254,254,227,145,255,0,15,90,2,0,28,175,254,254,196,79,255,0,26,90,2,0,22,213,254,254,153,41,255,0,37,90,2,0,18,233,236,236,112,20,255,0,48,90,2,0,15,252,204,204,76,2,255,0,59,90,2,0,13,248,153,153,52,4,255,0,70,90,2,0,13,240,102,102,37,6,255,0,81,90,2,0,34,95,255,255,237,160,255,0,92,-90,2,0,24,178,254,254,178,76,255,0,103,90,2,0,5,221,240,240,59,32,255,0,114,90,2,0,42,77,255,255,255,178,255,0,125,90,2,0,29,162,254,254,204,92,255,0,136,90,2,0,17,194,253,253,141,60,255,0,147,90,2,0,254,225,227,227,26,28,255,0,158,90,2,0,42,77,255,255,255,178,255,0,169,90,2,0,29,162,254,254,204,92,255,0,180,90,2,0,17,194,253,253,141,60,255,0,191,90,2,0,5,221,240,240,59,32,255,0,202,90,2,0,246,255,189,189,0,38,255,0,213,90,2,0,42,77,255,255,255,178,255,0,224,90,2,0,30,136,254,254,217,118,255,0,235,-90,2,0,24,178,254,254,178,76,255,0,246,90,2,0,17,194,253,253,141,60,255,0,1,91,2,0,5,221,240,240,59,32,255,0,12,91,2,0,246,255,189,189,0,38,255,0,23,91,2,0,42,77,255,255,255,178,255,0,34,91,2,0,30,136,254,254,217,118,255,0,45,91,2,0,24,178,254,254,178,76,255,0,56,91,2,0,17,194,253,253,141,60,255,0,67,91,2,0,7,212,252,252,78,42,255,0,78,91,2,0,254,225,227,227,26,28,255,0,89,91,2,0,245,255,177,177,0,38,255,0,100,91,2,0,42,50,255,255,255,204,255,0,111,91,2,0,34,95,255,255,237,160,255,0,122,91,2,0,30,-136,254,254,217,118,255,0,133,91,2,0,24,178,254,254,178,76,255,0,144,91,2,0,17,194,253,253,141,60,255,0,155,91,2,0,7,212,252,252,78,42,255,0,166,91,2,0,254,225,227,227,26,28,255,0,177,91,2,0,245,255,177,177,0,38,255,0,188,91,2,0,42,50,255,255,255,204,255,0,199,91,2,0,34,95,255,255,237,160,255,0,210,91,2,0,30,136,254,254,217,118,255,0,221,91,2,0,24,178,254,254,178,76,255,0,232,91,2,0,17,194,253,253,141,60,255,0,243,91,2,0,7,212,252,252,78,42,255,0,254,91,2,0,254,225,227,227,26,28,255,0,9,92,2,0,246,-255,189,189,0,38,255,0,20,92,2,0,242,255,128,128,0,38,255,0,31,92,2,0,147,15,255,240,248,255,255,0,41,92,2,0,24,35,250,250,235,215,255,0,54,92,2,0,23,36,255,255,239,219,255,0,68,92,2,0,23,36,238,238,223,204,255,0,82,92,2,0,23,36,205,205,192,176,255,0,96,92,2,0,24,34,139,139,131,120,255,0,110,92,2,0,113,128,255,127,255,212,255,0,121,92,2,0,113,128,255,127,255,212,255,0,133,92,2,0,113,128,238,118,238,198,255,0,145,92,2,0,113,128,205,102,205,170,255,0,157,92,2,0,113,128,139,69,139,116,255,0,169,92,2,-0,127,15,255,240,255,255,255,0,175,92,2,0,127,15,255,240,255,255,255,0,182,92,2,0,127,15,238,224,238,238,255,0,189,92,2,0,127,14,205,193,205,205,255,0,196,92,2,0,127,14,139,131,139,139,255,0,203,92,2,0,42,26,245,245,245,220,255,0,209,92,2,0,23,58,255,255,228,196,255,0,216,92,2,0,23,58,255,255,228,196,255,0,224,92,2,0,23,58,238,238,213,183,255,0,232,92,2,0,22,58,205,205,183,158,255,0,240,92,2,0,23,58,139,139,125,107,255,0,234,115,2,0,0,0,0,0,0,0,255,0,248,92,2,0,25,49,255,255,235,205,255,0,7,93,2,-0,170,255,255,0,0,255,255,0,12,93,2,0,170,255,255,0,0,255,255,0,18,93,2,0,170,255,238,0,0,238,255,0,24,93,2,0,170,255,205,0,0,205,255,0,30,93,2,0,170,255,139,0,0,139,255,0,36,93,2,0,192,206,226,138,43,226,255,0,47,93,2,0,0,190,165,165,42,42,255,0,53,93,2,0,0,191,255,255,64,64,255,0,60,93,2,0,0,191,238,238,59,59,255,0,67,93,2,0,0,191,205,205,51,51,255,0,74,93,2,0,0,190,139,139,35,35,255,0,81,93,2,0,23,99,222,222,184,135,255,0,91,93,2,0,23,100,255,255,211,155,255,0,102,93,2,0,23,99,238,238,197,145,-255,0,113,93,2,0,23,99,205,205,170,125,255,0,124,93,2,0,23,99,139,139,115,85,255,0,135,93,2,0,128,103,160,95,158,160,255,0,145,93,2,0,131,103,255,152,245,255,255,0,156,93,2,0,131,102,238,142,229,238,255,0,167,93,2,0,131,103,205,122,197,205,255,0,178,93,2,0,131,102,139,83,134,139,255,0,189,93,2,0,63,255,255,127,255,0,255,0,200,93,2,0,63,255,255,127,255,0,255,0,212,93,2,0,63,255,238,118,238,0,255,0,224,93,2,0,63,255,205,102,205,0,255,0,236,93,2,0,63,255,139,69,139,0,255,0,248,93,2,0,17,218,210,210,-105,30,255,0,2,94,2,0,17,219,255,255,127,36,255,0,13,94,2,0,17,219,238,238,118,33,255,0,24,94,2,0,17,218,205,205,102,29,255,0,35,94,2,0,17,220,139,139,69,19,255,0,46,94,2,0,11,175,255,255,127,80,255,0,52,94,2,0,7,169,255,255,114,86,255,0,59,94,2,0,6,169,238,238,106,80,255,0,66,94,2,0,6,169,205,205,91,69,255,0,73,94,2,0,6,168,139,139,62,47,255,0,80,94,2,0,154,147,237,100,149,237,255,0,95,94,2,0,33,34,255,255,248,220,255,0,104,94,2,0,33,34,255,255,248,220,255,0,114,94,2,0,34,35,238,238,232,205,255,-0,124,94,2,0,34,34,205,205,200,177,255,0,134,94,2,0,35,34,139,139,136,120,255,0,144,94,2,0,246,231,220,220,20,60,255,0,152,94,2,0,127,255,255,0,255,255,255,0,157,94,2,0,127,255,255,0,255,255,255,0,163,94,2,0,127,255,238,0,238,238,255,0,169,94,2,0,127,255,205,0,205,205,255,0,175,94,2,0,127,255,139,0,139,139,255,0,181,94,2,0,30,239,184,184,134,11,255,0,195,94,2,0,30,240,255,255,185,15,255,0,210,94,2,0,30,240,238,238,173,14,255,0,225,94,2,0,30,240,205,205,149,12,255,0,240,94,2,0,30,240,139,139,101,8,-255,0,255,94,2,0,85,255,100,0,100,0,255,0,9,95,2,0,39,110,189,189,183,107,255,0,19,95,2,0,58,142,107,85,107,47,255,0,34,95,2,0,58,143,255,202,255,112,255,0,50,95,2,0,58,143,238,188,238,104,255,0,66,95,2,0,58,143,205,162,205,90,255,0,82,95,2,0,58,143,139,110,139,61,255,0,98,95,2,0,23,255,255,255,140,0,255,0,109,95,2,0,21,255,255,255,127,0,255,0,121,95,2,0,21,255,238,238,118,0,255,0,133,95,2,0,21,255,205,205,102,0,255,0,145,95,2,0,21,255,139,139,69,0,255,0,157,95,2,0,198,192,204,153,50,204,255,0,168,-95,2,0,198,193,255,191,62,255,255,0,180,95,2,0,198,192,238,178,58,238,255,0,192,95,2,0,198,192,205,154,50,205,255,0,204,95,2,0,198,192,139,104,34,139,255,0,216,95,2,0,10,121,233,233,150,122,255,0,227,95,2,0,85,61,188,143,188,143,255,0,240,95,2,0,85,62,255,193,255,193,255,0,254,95,2,0,85,62,238,180,238,180,255,0,12,96,2,0,85,62,205,155,205,155,255,0,26,96,2,0,85,62,139,105,139,105,255,0,40,96,2,0,175,143,139,72,61,139,255,0,54,96,2,0,127,103,79,47,79,79,255,0,68,96,2,0,127,104,255,151,255,255,255,-0,83,96,2,0,127,103,238,141,238,238,255,0,98,96,2,0,127,104,205,121,205,205,255,0,113,96,2,0,127,104,139,82,139,139,255,0,128,96,2,0,127,103,79,47,79,79,255,0,142,96,2,0,128,255,209,0,206,209,255,0,156,96,2,0,199,255,211,148,0,211,255,0,167,96,2,0,232,235,255,255,20,147,255,0,176,96,2,0,232,235,255,255,20,147,255,0,186,96,2,0,232,235,238,238,18,137,255,0,196,96,2,0,232,235,205,205,16,118,255,0,206,96,2,0,231,236,139,139,10,80,255,0,216,96,2,0,138,255,255,0,191,255,255,0,228,96,2,0,138,255,255,0,191,-255,255,0,241,96,2,0,138,255,238,0,178,238,255,0,254,96,2,0,138,255,205,0,154,205,255,0,11,97,2,0,138,255,139,0,104,139,255,0,24,97,2,0,0,0,105,105,105,105,255,0,32,97,2,0,0,0,105,105,105,105,255,0,40,97,2,0,148,225,255,30,144,255,255,0,51,97,2,0,148,225,255,30,144,255,255,0,63,97,2,0,148,225,238,28,134,238,255,0,75,97,2,0,148,225,205,24,116,205,255,0,87,97,2,0,148,225,139,16,78,139,255,0,99,97,2,0,0,206,178,178,34,34,255,0,109,97,2,0,0,207,255,255,48,48,255,0,120,97,2,0,0,207,238,238,44,44,255,0,-131,97,2,0,0,207,205,205,38,38,255,0,142,97,2,0,0,207,139,139,26,26,255,0,153,97,2,0,28,15,255,255,250,240,255,0,165,97,2,0,85,192,139,34,139,34,255,0,177,97,2,0,0,0,220,220,220,220,255,0,187,97,2,0,170,7,255,248,248,255,255,0,198,97,2,0,35,255,255,255,215,0,255,0,203,97,2,0,35,255,255,255,215,0,255,0,209,97,2,0,35,255,238,238,201,0,255,0,215,97,2,0,35,255,205,205,173,0,255,0,221,97,2,0,35,255,139,139,117,0,255,0,227,97,2,0,30,217,218,218,165,32,255,0,237,97,2,0,30,218,255,255,193,37,255,0,248,97,-2,0,30,218,238,238,180,34,255,0,3,98,2,0,30,218,205,205,155,29,255,0,14,98,2,0,30,218,139,139,105,20,255,0,25,98,2,0,0,0,192,192,192,192,255,0,30,98,2,0,0,0,0,0,0,0,255,0,36,98,2,0,0,0,3,3,3,3,255,0,42,98,2,0,0,0,26,26,26,26,255,0,49,98,2,0,0,0,255,255,255,255,255,0,57,98,2,0,0,0,28,28,28,28,255,0,64,98,2,0,0,0,31,31,31,31,255,0,71,98,2,0,0,0,33,33,33,33,255,0,78,98,2,0,0,0,36,36,36,36,255,0,85,98,2,0,0,0,38,38,38,38,255,0,92,98,2,0,0,0,41,41,41,41,255,0,99,98,2,0,0,0,43,43,43,43,255,0,106,98,2,0,-0,0,46,46,46,46,255,0,113,98,2,0,0,0,48,48,48,48,255,0,120,98,2,0,0,0,5,5,5,5,255,0,126,98,2,0,0,0,51,51,51,51,255,0,133,98,2,0,0,0,54,54,54,54,255,0,140,98,2,0,0,0,56,56,56,56,255,0,147,98,2,0,0,0,59,59,59,59,255,0,154,98,2,0,0,0,61,61,61,61,255,0,161,98,2,0,0,0,64,64,64,64,255,0,168,98,2,0,0,0,66,66,66,66,255,0,175,98,2,0,0,0,69,69,69,69,255,0,182,98,2,0,0,0,71,71,71,71,255,0,189,98,2,0,0,0,74,74,74,74,255,0,196,98,2,0,0,0,8,8,8,8,255,0,202,98,2,0,0,0,77,77,77,77,255,0,209,98,2,0,0,0,79,79,79,79,-255,0,216,98,2,0,0,0,82,82,82,82,255,0,223,98,2,0,0,0,84,84,84,84,255,0,230,98,2,0,0,0,87,87,87,87,255,0,237,98,2,0,0,0,89,89,89,89,255,0,244,98,2,0,0,0,92,92,92,92,255,0,251,98,2,0,0,0,94,94,94,94,255,0,2,99,2,0,0,0,97,97,97,97,255,0,9,99,2,0,0,0,99,99,99,99,255,0,16,99,2,0,0,0,10,10,10,10,255,0,22,99,2,0,0,0,102,102,102,102,255,0,29,99,2,0,0,0,105,105,105,105,255,0,36,99,2,0,0,0,107,107,107,107,255,0,43,99,2,0,0,0,110,110,110,110,255,0,50,99,2,0,0,0,112,112,112,112,255,0,57,99,2,0,0,0,115,115,115,-115,255,0,64,99,2,0,0,0,117,117,117,117,255,0,71,99,2,0,0,0,120,120,120,120,255,0,78,99,2,0,0,0,122,122,122,122,255,0,85,99,2,0,0,0,125,125,125,125,255,0,92,99,2,0,0,0,13,13,13,13,255,0,98,99,2,0,0,0,127,127,127,127,255,0,105,99,2,0,0,0,130,130,130,130,255,0,112,99,2,0,0,0,133,133,133,133,255,0,119,99,2,0,0,0,135,135,135,135,255,0,126,99,2,0,0,0,138,138,138,138,255,0,133,99,2,0,0,0,140,140,140,140,255,0,140,99,2,0,0,0,143,143,143,143,255,0,147,99,2,0,0,0,145,145,145,145,255,0,154,99,2,0,0,0,148,148,-148,148,255,0,161,99,2,0,0,0,150,150,150,150,255,0,168,99,2,0,0,0,15,15,15,15,255,0,174,99,2,0,0,0,153,153,153,153,255,0,181,99,2,0,0,0,156,156,156,156,255,0,188,99,2,0,0,0,158,158,158,158,255,0,195,99,2,0,0,0,161,161,161,161,255,0,202,99,2,0,0,0,163,163,163,163,255,0,209,99,2,0,0,0,166,166,166,166,255,0,216,99,2,0,0,0,168,168,168,168,255,0,223,99,2,0,0,0,171,171,171,171,255,0,230,99,2,0,0,0,173,173,173,173,255,0,237,99,2,0,0,0,176,176,176,176,255,0,244,99,2,0,0,0,18,18,18,18,255,0,250,99,2,0,0,0,-179,179,179,179,255,0,1,100,2,0,0,0,181,181,181,181,255,0,8,100,2,0,0,0,184,184,184,184,255,0,15,100,2,0,0,0,186,186,186,186,255,0,22,100,2,0,0,0,189,189,189,189,255,0,29,100,2,0,0,0,191,191,191,191,255,0,36,100,2,0,0,0,194,194,194,194,255,0,43,100,2,0,0,0,196,196,196,196,255,0,50,100,2,0,0,0,199,199,199,199,255,0,57,100,2,0,0,0,201,201,201,201,255,0,64,100,2,0,0,0,20,20,20,20,255,0,70,100,2,0,0,0,204,204,204,204,255,0,77,100,2,0,0,0,207,207,207,207,255,0,84,100,2,0,0,0,209,209,209,209,255,0,91,100,-2,0,0,0,212,212,212,212,255,0,98,100,2,0,0,0,214,214,214,214,255,0,105,100,2,0,0,0,217,217,217,217,255,0,112,100,2,0,0,0,219,219,219,219,255,0,119,100,2,0,0,0,222,222,222,222,255,0,126,100,2,0,0,0,224,224,224,224,255,0,133,100,2,0,0,0,227,227,227,227,255,0,140,100,2,0,0,0,23,23,23,23,255,0,146,100,2,0,0,0,229,229,229,229,255,0,153,100,2,0,0,0,232,232,232,232,255,0,160,100,2,0,0,0,235,235,235,235,255,0,167,100],"i8",4,n.q+74306);-B([2,0,0,0,237,237,237,237,255,0,174,100,2,0,0,0,240,240,240,240,255,0,181,100,2,0,0,0,242,242,242,242,255,0,188,100,2,0,0,0,245,245,245,245,255,0,195,100,2,0,0,0,247,247,247,247,255,0,202,100,2,0,0,0,250,250,250,250,255,0,209,100,2,0,0,0,252,252,252,252,255,0,216,100,2,0,85,255,255,0,255,0,255,0,222,100,2,0,85,255,255,0,255,0,255,0,229,100,2,0,85,255,238,0,238,0,255,0,236,100,2,0,85,255,205,0,205,0,255,0,243,100,2,0,85,255,139,0,139,0,255,0,250,100,2,0,59,208,255,173,255,47,255,0,6,101,2,0,0,0,192,-192,192,192,255,0,11,101,2,0,0,0,0,0,0,0,255,0,17,101,2,0,0,0,3,3,3,3,255,0,23,101,2,0,0,0,26,26,26,26,255,0,30,101,2,0,0,0,255,255,255,255,255,0,38,101,2,0,0,0,28,28,28,28,255,0,45,101,2,0,0,0,31,31,31,31,255,0,52,101,2,0,0,0,33,33,33,33,255,0,59,101,2,0,0,0,36,36,36,36,255,0,66,101,2,0,0,0,38,38,38,38,255,0,73,101,2,0,0,0,41,41,41,41,255,0,80,101,2,0,0,0,43,43,43,43,255,0,87,101,2,0,0,0,46,46,46,46,255,0,94,101,2,0,0,0,48,48,48,48,255,0,101,101,2,0,0,0,5,5,5,5,255,0,107,101,2,0,0,0,51,51,51,51,-255,0,114,101,2,0,0,0,54,54,54,54,255,0,121,101,2,0,0,0,56,56,56,56,255,0,128,101,2,0,0,0,59,59,59,59,255,0,135,101,2,0,0,0,61,61,61,61,255,0,142,101,2,0,0,0,64,64,64,64,255,0,149,101,2,0,0,0,66,66,66,66,255,0,156,101,2,0,0,0,69,69,69,69,255,0,163,101,2,0,0,0,71,71,71,71,255,0,170,101,2,0,0,0,74,74,74,74,255,0,177,101,2,0,0,0,8,8,8,8,255,0,183,101,2,0,0,0,77,77,77,77,255,0,190,101,2,0,0,0,79,79,79,79,255,0,197,101,2,0,0,0,82,82,82,82,255,0,204,101,2,0,0,0,84,84,84,84,255,0,211,101,2,0,0,0,87,87,87,-87,255,0,218,101,2,0,0,0,89,89,89,89,255,0,225,101,2,0,0,0,92,92,92,92,255,0,232,101,2,0,0,0,94,94,94,94,255,0,239,101,2,0,0,0,97,97,97,97,255,0,246,101,2,0,0,0,99,99,99,99,255,0,253,101,2,0,0,0,10,10,10,10,255,0,3,102,2,0,0,0,102,102,102,102,255,0,10,102,2,0,0,0,105,105,105,105,255,0,17,102,2,0,0,0,107,107,107,107,255,0,24,102,2,0,0,0,110,110,110,110,255,0,31,102,2,0,0,0,112,112,112,112,255,0,38,102,2,0,0,0,115,115,115,115,255,0,45,102,2,0,0,0,117,117,117,117,255,0,52,102,2,0,0,0,120,120,120,120,-255,0,59,102,2,0,0,0,122,122,122,122,255,0,66,102,2,0,0,0,125,125,125,125,255,0,73,102,2,0,0,0,13,13,13,13,255,0,79,102,2,0,0,0,127,127,127,127,255,0,86,102,2,0,0,0,130,130,130,130,255,0,93,102,2,0,0,0,133,133,133,133,255,0,100,102,2,0,0,0,135,135,135,135,255,0,107,102,2,0,0,0,138,138,138,138,255,0,114,102,2,0,0,0,140,140,140,140,255,0,121,102,2,0,0,0,143,143,143,143,255,0,128,102,2,0,0,0,145,145,145,145,255,0,135,102,2,0,0,0,148,148,148,148,255,0,142,102,2,0,0,0,150,150,150,150,255,0,149,102,2,0,-0,0,15,15,15,15,255,0,155,102,2,0,0,0,153,153,153,153,255,0,162,102,2,0,0,0,156,156,156,156,255,0,169,102,2,0,0,0,158,158,158,158,255,0,176,102,2,0,0,0,161,161,161,161,255,0,183,102,2,0,0,0,163,163,163,163,255,0,190,102,2,0,0,0,166,166,166,166,255,0,197,102,2,0,0,0,168,168,168,168,255,0,204,102,2,0,0,0,171,171,171,171,255,0,211,102,2,0,0,0,173,173,173,173,255,0,218,102,2,0,0,0,176,176,176,176,255,0,225,102,2,0,0,0,18,18,18,18,255,0,231,102,2,0,0,0,179,179,179,179,255,0,238,102,2,0,0,0,181,181,181,-181,255,0,245,102,2,0,0,0,184,184,184,184,255,0,252,102,2,0,0,0,186,186,186,186,255,0,3,103,2,0,0,0,189,189,189,189,255,0,10,103,2,0,0,0,191,191,191,191,255,0,17,103,2,0,0,0,194,194,194,194,255,0,24,103,2,0,0,0,196,196,196,196,255,0,31,103,2,0,0,0,199,199,199,199,255,0,38,103,2,0,0,0,201,201,201,201,255,0,45,103,2,0,0,0,20,20,20,20,255,0,51,103,2,0,0,0,204,204,204,204,255,0,58,103,2,0,0,0,207,207,207,207,255,0,65,103,2,0,0,0,209,209,209,209,255,0,72,103,2,0,0,0,212,212,212,212,255,0,79,103,2,0,0,-0,214,214,214,214,255,0,86,103,2,0,0,0,217,217,217,217,255,0,93,103,2,0,0,0,219,219,219,219,255,0,100,103,2,0,0,0,222,222,222,222,255,0,107,103,2,0,0,0,224,224,224,224,255,0,114,103,2,0,0,0,227,227,227,227,255,0,121,103,2,0,0,0,23,23,23,23,255,0,127,103,2,0,0,0,229,229,229,229,255,0,134,103,2,0,0,0,232,232,232,232,255,0,141,103,2,0,0,0,235,235,235,235,255,0,148,103,2,0,0,0,237,237,237,237,255,0,155,103,2,0,0,0,240,240,240,240,255,0,162,103,2,0,0,0,242,242,242,242,255,0,169,103,2,0,0,0,245,245,245,-245,255,0,176,103,2,0,0,0,247,247,247,247,255,0,183,103,2,0,0,0,250,250,250,250,255,0,190,103,2,0,0,0,252,252,252,252,255,0,197,103,2,0,85,15,255,240,255,240,255,0,206,103,2,0,85,15,255,240,255,240,255,0,216,103,2,0,85,15,238,224,238,224,255,0,226,103,2,0,85,14,205,193,205,193,255,0,236,103,2,0,85,14,139,131,139,131,255,0,246,103,2,0,233,150,255,255,105,180,255,0,254,103,2,0,234,145,255,255,110,180,255,0,7,104,2,0,235,141,238,238,106,167,255,0,16,104,2,0,236,135,205,205,96,144,255,0,25,104,2,0,234,-148,139,139,58,98,255,0,34,104,2,0,0,140,205,205,92,92,255,0,44,104,2,0,0,148,255,255,106,106,255,0,55,104,2,0,0,148,238,238,99,99,255,0,66,104,2,0,0,149,205,205,85,85,255,0,77,104,2,0,0,148,139,139,58,58,255,0,88,104,2,0,194,255,130,75,0,130,255,0,95,104,2,0,42,0,255,255,255,254,0,0,101,104,2,0,42,15,255,255,255,240,255,0,107,104,2,0,42,15,255,255,255,240,255,0,114,104,2,0,42,15,238,238,238,224,255,0,121,104,2,0,42,14,205,205,205,193,255,0,128,104,2,0,42,14,139,139,139,131,255,0,135,104,2,0,38,106,-240,240,230,140,255,0,141,104,2,0,39,112,255,255,246,143,255,0,148,104,2,0,39,112,238,238,230,133,255,0,155,104,2,0,39,111,205,205,198,115,255,0,162,104,2,0,39,111,139,139,134,78,255,0,169,104,2,0,170,20,250,230,230,250,255,0,178,104,2,0,240,15,255,255,240,245,255,0,192,104,2,0,240,15,255,255,240,245,255,0,207,104,2,0,239,15,238,238,224,229,255,0,222,104,2,0,240,14,205,205,193,197,255,0,237,104,2,0,239,14,139,139,131,134,255,0,252,104,2,0,64,255,252,124,252,0,255,0,6,105,2,0,38,49,255,255,250,205,-255,0,19,105,2,0,38,49,255,255,250,205,255,0,33,105,2,0,37,50,238,238,233,191,255,0,47,105,2,0,38,49,205,205,201,165,255,0,61,105,2,0,39,49,139,139,137,112,255,0,75,105,2,0,137,63,230,173,216,230,255,0,85,105,2,0,138,64,255,191,239,255,255,0,96,105,2,0,138,64,238,178,223,238,255,0,107,105,2,0,138,63,205,154,192,205,255,0,118,105,2,0,137,64,139,104,131,139,255,0,129,105,2,0,0,119,240,240,128,128,255,0,140,105,2,0,127,31,255,224,255,255,255,0,150,105,2,0,127,31,255,224,255,255,255,0,161,105,2,0,127,-31,238,209,238,238,255,0,172,105,2,0,127,31,205,180,205,205,255,0,183,105,2,0,127,31,139,122,139,139,255,0,194,105,2,0,35,115,238,238,221,130,255,0,209,105,2,0,35,116,255,255,236,139,255,0,225,105,2,0,35,115,238,238,220,130,255,0,241,105,2,0,35,115,205,205,190,112,255,0,1,106,2,0,35,115,139,139,129,76,255,0,17,106,2,0,42,40,250,250,250,210,255,0,38,106,2,0,0,0,211,211,211,211,255,0,48,106,2,0,0,0,211,211,211,211,255,0,58,106,2,0,248,73,255,255,182,193,255,0,68,106,2,0,249,81,255,255,174,185,255,0,-79,106,2,0,248,81,238,238,162,173,255,0,90,106,2,0,249,80,205,205,140,149,255,0,101,106,2,0,249,80,139,139,95,101,255,0,112,106,2,0,12,132,255,255,160,122,255,0,124,106,2,0,12,132,255,255,160,122,255,0,137,106,2,0,11,132,238,238,149,114,255,0,150,106,2,0,12,133,205,205,129,98,255,0,163,106,2,0,12,133,139,139,87,66,255,0,176,106,2,0,125,209,178,32,178,170,255,0,190,106,2,0,143,117,250,135,206,250,255,0,203,106,2,0,143,79,255,176,226,255,255,0,217,106,2,0,143,79,238,164,211,238,255,0,231,106,2,0,142,-79,205,141,182,205,255,0,245,106,2,0,143,78,139,96,123,139,255,0,3,107,2,0,175,143,255,132,112,255,255,0,18,107,2,0,148,56,153,119,136,153,255,0,33,107,2,0,148,56,153,119,136,153,255,0,48,107,2,0,151,52,222,176,196,222,255,0,63,107,2,0,151,53,255,202,225,255,255,0,79,107,2,0,151,53,238,188,210,238,255,0,95,107,2,0,151,53,205,162,181,205,255,0,111,107,2,0,150,53,139,110,123,139,255,0,127,107,2,0,42,31,255,255,255,224,255,0,139,107,2,0,42,31,255,255,255,224,255,0,152,107,2,0,42,31,238,238,238,209,255,-0,165,107,2,0,42,31,205,205,205,180,255,0,178,107,2,0,42,31,139,139,139,122,255,0,191,107,2,0,85,192,205,50,205,50,255,0,201,107,2,0,21,20,250,250,240,230,255,0,207,107,2,0,212,255,255,255,0,255,255,0,215,107,2,0,212,255,255,255,0,255,255,0,224,107,2,0,212,255,238,238,0,238,255,0,233,107,2,0,212,255,205,205,0,205,255,0,242,107,2,0,212,255,139,139,0,139,255,0,251,107,2,0,239,185,176,176,48,96,255,0,2,108,2,0,228,203,255,255,52,179,255,0,10,108,2,0,228,203,238,238,48,167,255,0,18,108,2,0,228,204,205,-205,41,144,255,0,26,108,2,0,228,203,139,139,28,98,255,0,34,108,2,0,113,128,205,102,205,170,255,0,51,108,2,0,170,255,205,0,0,205,255,0,62,108,2,0,204,152,211,186,85,211,255,0,75,108,2,0,203,153,255,224,102,255,255,0,89,108,2,0,203,153,238,209,95,238,255,0,103,108,2,0,203,153,205,180,82,205,255,0,117,108,2,0,203,154,139,122,55,139,255,0,131,108,2,0,183,124,219,147,112,219,255,0,144,108,2,0,183,125,255,171,130,255,255,0,158,108,2,0,183,125,238,159,121,238,255,0,172,108,2,0,183,125,205,137,104,205,255,-0,186,108,2,0,183,124,139,93,71,139,255,0,200,108,2,0,103,169,179,60,179,113,255,0,215,108,2,0,176,143,238,123,104,238,255,0,231,108,2,0,111,255,250,0,250,154,255,0,249,108,2,0,125,167,209,72,209,204,255,0,9,109,2,0,228,228,199,199,21,133,255,0,25,109,2,0,170,198,112,25,25,112,255,0,38,109,2,0,106,9,255,245,255,250,255,0,48,109,2,0,4,30,255,255,228,225,255,0,58,109,2,0,4,30,255,255,228,225,255,0,69,109,2,0,4,30,238,238,213,210,255,0,80,109,2,0,3,29,205,205,183,181,255,0,91,109,2,0,5,29,139,139,125,-123,255,0,102,109,2,0,26,73,255,255,228,181,255,0,111,109,2,0,25,81,255,255,222,173,255,0,123,109,2,0,25,81,255,255,222,173,255,0,136,109,2,0,25,82,238,238,207,161,255,0,149,109,2,0,25,82,205,205,179,139,255,0,162,109,2,0,25,82,139,139,121,94,255,0,175,109,2,0,170,255,128,0,0,128,255,0,180,109,2,0,170,255,128,0,0,128,255,0,189,109,2,0,42,0,255,255,255,254,0,0,194,109,2,0,27,23,253,253,245,230,255,0,202,109,2,0,56,192,142,107,142,35,255,0,212,109,2,0,56,193,255,192,255,62,255,0,223,109,2,0,56,192,-238,179,238,58,255,0,234,109,2,0,56,192,205,154,205,50,255,0,245,109,2,0,56,192,139,105,139,34,255,0,0,110,2,0,27,255,255,255,165,0,255,0,7,110,2,0,27,255,255,255,165,0,255,0,15,110,2,0,27,255,238,238,154,0,255,0,23,110,2,0,27,255,205,205,133,0,255,0,31,110,2,0,27,255,139,139,90,0,255,0,39,110,2,0,11,255,255,255,69,0,255,0,49,110,2,0,11,255,255,255,69,0,255,0,60,110,2,0,11,255,238,238,64,0,255,0,71,110,2,0,11,255,205,205,55,0,255,0,82,110,2,0,11,255,139,139,37,0,255,0,93,110,2,0,214,123,218,218,112,-214,255,0,100,110,2,0,214,124,255,255,131,250,255,0,108,110,2,0,214,124,238,238,122,233,255,0,116,110,2,0,214,124,205,205,105,201,255,0,124,110,2,0,213,124,139,139,71,137,255,0,132,110,2,0,38,72,238,238,232,170,255,0,146,110,2,0,85,100,251,152,251,152,255,0,156,110,2,0,85,101,255,154,255,154,255,0,167,110,2,0,85,100,238,144,238,144,255,0,178,110,2,0,85,100,205,124,205,124,255,0,189,110,2,0,85,100,139,84,139,84,255,0,200,110,2,0,127,67,238,175,238,238,255,0,214,110,2,0,127,68,255,187,255,255,255,0,-229,110,2,0,127,68,238,174,238,238,255,0,244,110,2,0,127,68,205,150,205,205,255,0,3,111,2,0,127,67,139,102,139,139,255,0,18,111,2,0,241,124,219,219,112,147,255,0,32,111,2,0,241,125,255,255,130,171,255,0,47,111,2,0,241,125,238,238,121,159,255,0,62,111,2,0,241,125,205,205,104,137,255,0,77,111,2,0,241,124,139,139,71,93,255,0,92,111,2,0,26,41,255,255,239,213,255,0,103,111,2,0,20,70,255,255,218,185,255,0,113,111,2,0,20,70,255,255,218,185,255,0,124,111,2,0,19,69,238,238,203,173,255,0,135,111,2,0,19,69,-205,205,175,149,255,0,146,111,2,0,20,69,139,139,119,101,255,0,157,111,2,0,20,176,205,205,133,63,255,0,162,111,2,0,247,63,255,255,192,203,255,0,167,111,2,0,245,73,255,255,181,197,255,0,173,111,2,0,245,73,238,238,169,184,255,0,179,111,2,0,245,74,205,205,145,158,255,0,185,111,2,0,245,73,139,139,99,108,255,0,191,111,2,0,212,70,221,221,160,221,255,0,196,111,2,0,212,68,255,255,187,255,255,0,202,111,2,0,212,68,238,238,174,238,255,0,208,111,2,0,212,68,205,205,150,205,255,0,214,111,2,0,212,67,139,139,102,-139,255,0,220,111,2,0,132,59,230,176,224,230,255,0,231,111,2,0,196,221,240,160,32,240,255,0,238,111,2,0,191,207,255,155,48,255,255,0,246,111,2,0,192,207,238,145,44,238,255,0,254,111,2,0,192,207,205,125,38,205,255,0,6,112,2,0,192,207,139,85,26,139,255,0,14,112,2,0,0,255,255,255,0,0,255,0,18,112,2,0,0,255,255,255,0,0,255,0,23,112,2,0,0,255,238,238,0,0,255,0,28,112,2,0,0,255,205,205,0,0,255,0,33,112,2,0,0,255,139,139,0,0,255,0,38,112,2,0,0,61,188,188,143,143,255,0,48,112,2,0,0,62,255,255,193,193,255,-0,59,112,2,0,0,62,238,238,180,180,255,0,70,112,2,0,0,62,205,205,155,155,255,0,81,112,2,0,0,62,139,139,105,105,255,0,92,112,2,0,159,181,225,65,105,225,255,0,102,112,2,0,159,183,255,72,118,255,255,0,113,112,2,0,159,183,238,67,110,238,255,0,124,112,2,0,159,182,205,58,95,205,255,0,135,112,2,0,159,183,139,39,64,139,255,0,146,112,2,0,17,220,139,139,69,19,255,0,158,112,2,0,4,138,250,250,128,114,255,0,165,112,2,0,9,150,255,255,140,105,255,0,173,112,2,0,9,150,238,238,130,98,255,0,181,112,2,0,9,150,205,205,-112,84,255,0,189,112,2,0,9,150,139,139,76,57,255,0,197,112,2,0,19,154,244,244,164,96,255,0,208,112,2,0,103,170,139,46,139,87,255,0,217,112,2,0,103,171,255,84,255,159,255,0,227,112,2,0,103,171,238,78,238,148,255,0,237,112,2,0,103,171,205,67,205,128,255,0,247,112,2,0,103,170,139,46,139,87,255,0,1,113,2,0,17,16,255,255,245,238,255,0,10,113,2,0,17,16,255,255,245,238,255,0,20,113,2,0,18,17,238,238,229,222,255,0,30,113,2,0,18,17,205,205,197,191,255,0,40,113,2,0,18,16,139,139,134,130,255,0,50,113,2,0,13,-183,160,160,82,45,255,0,57,113,2,0,13,184,255,255,130,71,255,0,65,113,2,0,13,184,238,238,121,66,255,0,73,113,2,0,13,184,205,205,104,57,255,0,81,113,2,0,13,185,139,139,71,38,255,0,89,113,2,0,139,108,235,135,206,235,255,0,97,113,2,0,144,120,255,135,206,255,255,0,106,113,2,0,144,120,238,126,192,238,255,0,115,113,2,0,144,120,205,108,166,205,255,0,124,113,2,0,145,119,139,74,112,139,255,0,133,113,2,0,175,143,205,106,90,205,255,0,143,113,2,0,175,144,255,131,111,255,255,0,154,113,2,0,175,144,238,122,103,-238,255,0,165,113,2,0,175,144,205,105,89,205,255,0,176,113,2,0,175,144,139,71,60,139,255,0,187,113,2,0,148,56,144,112,128,144,255,0,197,113,2,0,149,56,255,198,226,255,255,0,208,113,2,0,149,56,238,185,211,238,255,0,219,113,2,0,148,57,205,159,182,205,255,0,230,113,2,0,149,56,139,108,123,139,255,0,241,113,2,0,148,56,144,112,128,144,255,0,251,113,2,0,0,5,255,255,250,250,255,0,0,114,2,0,0,5,255,255,250,250,255,0,6,114,2,0,0,5,238,238,233,233,255,0,12,114,2,0,0,4,205,205,201,201,255,0,18,114,2,0,0,3,139,-139,137,137,255,0,24,114,2,0,106,255,255,0,255,127,255,0,36,114,2,0,106,255,255,0,255,127,255,0,49,114,2,0,106,255,238,0,238,118,255,0,62,114,2,0,106,255,205,0,205,102,255,0,75,114,2,0,106,255,139,0,139,69,255,0,88,114,2,0,146,155,180,70,130,180,255,0,98,114,2,0,146,156,255,99,184,255,255,0,109,114,2,0,146,156,238,92,172,238,255,0,120,114,2,0,146,156,205,79,148,205,255,0,131,114,2,0,147,155,139,54,100,139,255,0,142,114,2,0,24,84,210,210,180,140,255,0,146,114,2,0,20,176,255,255,165,79,255,0,151,114,-2,0,20,176,238,238,154,73,255,0,156,114,2,0,20,176,205,205,133,63,255,0,161,114,2,0,20,176,139,139,90,43,255,0,166,114,2,0,212,29,216,216,191,216,255,0,174,114,2,0,212,30,255,255,225,255,255,0,183,114,2,0,212,30,238,238,210,238,255,0,192,114,2,0,212,29,205,205,181,205,255,0,201,114,2,0,212,29,139,139,123,139,255,0,210,114,2,0,6,184,255,255,99,71,255,0,217,114,2,0,6,184,255,255,99,71,255,0,225,114,2,0,6,184,238,238,92,66,255,0,233,114,2,0,6,184,205,205,79,57,255,0,241,114,2,0,6,185,139,139,54,38,255,-0,252,117,2,0,42,0,255,255,255,254,0,0,249,114,2,0,123,182,224,64,224,208,255,0,3,115,2,0,129,255,255,0,245,255,255,0,14,115,2,0,129,255,238,0,229,238,255,0,25,115,2,0,129,255,205,0,197,205,255,0,36,115,2,0,129,255,139,0,134,139,255,0,47,115,2,0,212,115,238,238,130,238,255,0,54,115,2,0,227,215,208,208,32,144,255,0,64,115,2,0,235,193,255,255,62,150,255,0,75,115,2,0,235,192,238,238,58,140,255,0,86,115,2,0,235,192,205,205,50,120,255,0,97,115,2,0,235,192,139,139,34,82,255,0,108,115,2,0,27,68,245,245,-222,179,255,0,114,115,2,0,27,69,255,255,231,186,255,0,121,115,2,0,27,68,238,238,216,174,255,0,128,115,2,0,27,68,205,205,186,150,255,0,135,115,2,0,27,67,139,139,126,102,255,0,142,115,2,0,0,0,255,255,255,255,255,0,148,115,2,0,0,0,245,245,245,245,255,0,159,115,2,0,42,255,255,255,255,0,255,0,166,115,2,0,42,255,255,255,255,0,255,0,174,115,2,0,42,255,238,238,238,0,255,0,182,115,2,0,42,255,205,205,205,0,255,0,190,115,2,0,42,255,139,139,139,0,255,0,198,115,2,0,56,192,205,154,205,50,255,0,0,0,0,0,0,0,0,0,-0,0,0,0,153,120,2,0,154,117,2,0,156,117,2,0,158,117,2,0,160,117,2,0,162,117,2,0,164,117,2,0,166,117,2,0,168,117,2,0,170,117,2,0,172,117,2,0,175,117,2,0,178,117,2,0,181,117,2,0,184,117,2,0,187,117,2,0,190,117,2,0,193,117,2,0,196,117,2,0,199,117,2,0,202,117,2,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,49,0,0,0,16,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,0,0,0,0,30,119,2,0,90,120,2,0,8,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,-0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,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,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,4,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,51,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,51,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,51,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,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,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,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,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,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,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,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,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,-192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,76,100,1,0,188,-100,1,0,44,101,1,0,44,101,1,0,32,0,0,0,9,0,0,0,10,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,133,0,0,0,0,32,0,0,1,32,0,0,2,32,0,0,3,32,0,0,4,32,0,0,5,32,0,0,6,32,0,0,8,32,0,0,9,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,95,32,0,0,0,48,0,0,0,0,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,3,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,131,249,162,0,68,78,110,0,252,41,21,0,209,87,39,0,221,52,245,0,98,219,192,0,60,153,149,0,65,144,67,0,99,81,254,0,187,222,171,0,183,97,197,0,58,-110,36,0,210,77,66,0,73,6,224,0,9,234,46,0,28,146,209,0,235,29,254,0,41,177,28,0,232,62,167,0,245,53,130,0,68,187,46,0,156,233,132,0,180,38,112,0,65,126,95,0,214,145,57,0,83,131,57,0,156,244,57,0,139,95,132,0,40,249,189,0,248,31,59,0,222,255,151,0,15,152,5,0,17,47,239,0,10,90,139,0,109,31,109,0,207,126,54,0,9,203,39,0,70,79,183,0,158,102,63,0,45,234,95,0,186,39,117,0,229,235,199,0,61,123,241,0,247,57,7,0,146,82,138,0,251,107,234,0,31,177,95,0,8,93,141,0,48,3,86,0,123,252,70,0,240,171,107,0,32,188,-207,0,54,244,154,0,227,169,29,0,94,97,145,0,8,27,230,0,133,153,101,0,160,20,95,0,141,64,104,0,128,216,255,0,39,115,77,0,6,6,49,0,202,86,21,0,201,168,115,0,123,226,96,0,107,140,192,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,6,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,255,255,255,255,255,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,5,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,7,0,0,0,8,0,0,0,248,171,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,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,9,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,8,0,0,0,240,167,2,0,0,4,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,255,255,255,255,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,5,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,8,0,-0,0,232,163,2,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,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,116,0,0,0,14,174,2,0,110,0,0,0,16,174,2,0,114,0,0,0,18,174,2,0,102,0,0,0,20,174,2,0,97,0,0,0,22,174,2,0,101,0,0,0,24,174,2,0,119,0,0,0,26,174,2,0,87,0,0,0,39,174,2,0,115,0,0,0,53,174,2,0,83,0,0,0,65,174,2,0,100,0,0,0,78,174,2,0,68,0,0,0,90,174,2],"i8",4,n.q+84546);-B([4,0,4,0,27,0,27,0,32,0,32,0,35,0,33,0,10,0,2,0,22,0,9,0,33,0,33,0,33,0,21,0,28,0,1,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,8,0,4,0,5,0,27,0,2,0,23,0,27,0,32,0,31,0,30,0,29,0,9,0,19,0,0,0,21,0,18,0,21,0,3,0,7,0,21,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,8,0,4,0,5,0,5,0,6,0,27,0,26,0,24,0,25,0,32,0,7,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,11,0,20,0,13,0,20,0,12,0,20,0,20,0,20,0,14,0,20,0,20,0,20,0,16,0,20,0,15,0,20,0,17,0,0,0,0,0,0,0,174,0,46,0,47,0,51,0,53,0,48,0,55,0,170,0,219,0,219,0,219,0,-219,0,0,0,61,0,135,0,55,0,55,0,219,0,219,0,0,0,40,0,53,0,46,0,50,0,47,0,98,0,0,0,0,0,71,0,0,0,0,0,219,0,81,0,0,0,219,0,219,0,219,0,0,0,219,0,132,0,85,0,219,0,130,0,219,0,0,0,129,0,219,0,0,0,62,0,66,0,65,0,72,0,68,0,82,0,91,0,0,0,0,0,94,0,95,0,219,0,0,0,219,0,219,0,219,0,0,0,0,0,123,0,73,0,87,0,82,0,90,0,90,0,93,0,0,0,95,0,0,0,95,0,0,0,101,0,93,0,95,0,0,0,93,0,110,0,106,0,0,0,105,0,0,0,110,0,0,0,219,0,147,0,154,0,161,0,168,0,171,0,112,0,177,0,184,0,191,0,198,0,205,0,211,0,0,0,1,0,1,0,1,0,1,0,1,0,1,-0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,4,0,7,0,3,0,4,0,5,0,5,0,6,0,6,0,8,0,7,0,7,0,17,0,22,0,18,0,17,0,18,0,8,0,8,0,15,0,15,0,23,0,15,0,24,0,15,0,25,0,26,0,26,0,30,0,22,0,52,0,30,0,5,0,50,0,6,0,34,0,34,0,51,0,23,0,24,0,53,0,25,0,26,0,26,0,42,0,54,0,42,0,52,0,55,0,50,0,69,0,59,0,60,0,51,0,59,0,60,0,70,0,53,0,71,0,72,0,76,0,54,0,34,0,73,0,74,0,55,0,69,0,78,0,80,0,98,-0,81,0,82,0,84,0,70,0,71,0,85,0,72,0,76,0,86,0,73,0,74,0,88,0,90,0,78,0,68,0,80,0,81,0,82,0,84,0,56,0,47,0,44,0,85,0,41,0,86,0,27,0,16,0,88,0,90,0,93,0,93,0,93,0,93,0,93,0,93,0,93,0,94,0,94,0,94,0,94,0,94,0,94,0,94,0,95,0,95,0,95,0,95,0,95,0,95,0,95,0,96,0,9,0,96,0,96,0,96,0,96,0,96,0,97,0,97,0,99,0,2,0,99,0,99,0,99,0,99,0,99,0,100,0,0,0,100,0,0,0,100,0,100,0,100,0,101,0,0,0,101,0,101,0,101,0,101,0,101,0,102,0,102,0,0,0,102,0,102,0,102,0,102,0,103,0,0,0,103,0,103,0,103,0,103,0,104,0,0,0,104,0,104,-0,104,0,104,0,104,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,0,0,92,0,1,0,93,0,93,0,94,0,94,0,95,0,95,0,92,0,92,0,92,0,92,0,92,0,96,0,92,0,92,0,92,0,97,0,92,0,92,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,99,0,100,0,101,0,102,0,102,0,92,0,92,0,103,0,92,0,92,0,92,0,96,0,92,0,92,0,97,0,92,0,97,0,92,0,104,-0,97,0,92,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,99,0,100,0,101,0,101,0,92,0,102,0,92,0,92,0,92,0,103,0,104,0,97,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,0,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,0,0,10,0,11,0,12,0,13,0,14,0,10,0,15,0,16,0,17,0,18,0,19,0,10,0,20,0,21,0,21,0,21,0,22,0,23,0,21,0,24,0,21,0,21,0,25,0,21,0,21,0,21,0,26,0,21,0,21,0,10,0,21,0,21,0,21,0,22,0,23,0,24,0,21,0,21,0,25,0,21,0,-21,0,21,0,26,0,21,0,21,0,21,0,21,0,27,0,12,0,12,0,36,0,30,0,30,0,32,0,33,0,32,0,33,0,36,0,37,0,38,0,45,0,50,0,47,0,46,0,42,0,37,0,38,0,40,0,41,0,51,0,42,0,52,0,43,0,53,0,54,0,55,0,60,0,50,0,71,0,61,0,34,0,69,0,34,0,63,0,64,0,70,0,51,0,52,0,72,0,53,0,54,0,55,0,47,0,73,0,42,0,71,0,74,0,69,0,76,0,92,0,60,0,70,0,92,0,61,0,77,0,72,0,78,0,79,0,82,0,73,0,65,0,80,0,81,0,74,0,76,0,83,0,84,0,49,0,85,0,86,0,87,0,77,0,78,0,88,0,79,0,82,0,89,0,80,0,81,0,90,0,91,0,83,0,68,0,84,0,85,0,86,0,87,0,75,0,68,0,44,0,88,-0,44,0,89,0,56,0,44,0,90,0,91,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,39,0,92,0,39,0,39,0,39,0,39,0,39,0,48,0,48,0,57,0,28,0,57,0,57,0,57,0,57,0,57,0,58,0,92,0,58,0,92,0,58,0,58,0,58,0,59,0,92,0,59,0,59,0,59,0,59,0,59,0,62,0,62,0,92,0,62,0,62,0,62,0,62,0,66,0,92,0,66,0,66,0,66,0,66,0,67,0,92,0,67,0,67,0,67,0,67,0,67,0,9,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,-92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,8,0,174,255,209,0,10,0,174,255,174,255,11,0,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,5,0,209,0,174,255,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,174,255,251,255,174,255,14,0,236,255,174,255,174,255,174,255,174,255,209,0,209,0,209,0,209,0,209,0,13,0,37,0,12,0,66,0,16,0,80,0,19,0,109,0,123,0,20,0,152,0,15,0,166,0,195,0,174,255,174,255,174,255,-174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,23,0,174,255,119,0,174,255,7,0,46,0,174,255,38,0,174,255,23,0,17,0,35,0,174,255,13,0,174,255,174,255,174,255,174,255,58,0,174,255,174,255,53,0,174,255,174,255,174,255,40,0,174,255,7,0,174,255,59,0,69,0,174,255,72,0,174,255,174,255,174,255,174,255,174,255,174,255,174,255,252,255,232,0,246,255,255,255,26,0,0,0,39,0,1,0,50,0,174,255,174,-255,2,0,36,0,3,0,47,0,174,255,174,255,174,255,174,255,174,255,254,255,148,0,174,255,9,0,27,0,174,255,188,255,174,255,174,255,175,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,0,0,0,0,0,0,109,230,236,222,5,0,11,0,0,0,0,0,0,0,73,0,49,1,83,0,127,1,48,1,105,0,120,1,255,0,129,1,83,2,130,1,131,1,132,1,133,1,134,1,84,2,135,1,136,1,137,1,86,2,138,1,87,2,139,1,140,1,142,1,221,1,143,1,89,2,144,1,91,2,145,1,146,1,147,1,96,2,148,1,99,2,150,1,105,2,151,1,104,2,152,1,153,1,156,1,111,2,157,1,114,2,-159,1,117,2,166,1,128,2,167,1,168,1,169,1,131,2,172,1,173,1,174,1,136,2,175,1,176,1,177,1,138,2,178,1,139,2,183,1,146,2,184,1,185,1,188,1,189,1,196,1,198,1,196,1,197,1,197,1,198,1,199,1,201,1,199,1,200,1,200,1,201,1,202,1,204,1,202,1,203,1,203,1,204,1,241,1,243,1,241,1,242,1,242,1,243,1,244,1,245,1,246,1,149,1,247,1,191,1,32,2,158,1,134,3,172,3,136,3,173,3,137,3,174,3,138,3,175,3,140,3,204,3,142,3,205,3,143,3,206,3,153,3,69,3,153,3,190,31,163,3,194,3,247,3,248,3,250,3,251,3,96,30,155,30,223,0,223,-0,158,30,223,0,89,31,81,31,91,31,83,31,93,31,85,31,95,31,87,31,188,31,179,31,204,31,195,31,236,31,229,31,252,31,243,31,58,2,101,44,59,2,60,2,61,2,154,1,62,2,102,44,65,2,66,2,67,2,128,1,68,2,137,2,69,2,140,2,244,3,184,3,249,3,242,3,253,3,123,3,254,3,124,3,255,3,125,3,192,4,207,4,38,33,201,3,42,33,107,0,43,33,229,0,50,33,78,33,131,33,132,33,96,44,97,44,98,44,107,2,99,44,125,29,100,44,125,2,109,44,81,2,110,44,113,2,111,44,80,2,112,44,82,2,114,44,115,44,117,44,118,44,126,44,63,2,127,44,64,2,242,44,243,-44,125,167,121,29,139,167,140,167,141,167,101,2,170,167,102,2,199,16,39,45,205,16,45,45,118,3,119,3,156,3,181,0,146,3,208,3,152,3,209,3,166,3,213,3,160,3,214,3,154,3,240,3,161,3,241,3,149,3,245,3,207,3,215,3,0,0,0,0,65,0,32,26,192,0,32,31,0,1,1,47,50,1,1,5,57,1,1,15,74,1,1,45,121,1,1,5,112,3,1,3,145,3,32,17,163,3,32,9,0,4,80,16,16,4,32,32,96,4,1,33,138,4,1,53,193,4,1,13,208,4,1,63,20,5,1,19,49,5,48,38,160,1,1,5,179,1,1,3,205,1,1,15,222,1,1,17,248,1,1,39,34,2,1,17,216,3,1,23,0,30,1,149,160,30,1,95,-8,31,248,8,24,31,248,6,40,31,248,8,56,31,248,8,72,31,248,6,104,31,248,8,136,31,248,8,152,31,248,8,168,31,248,8,184,31,248,2,186,31,182,2,200,31,170,4,216,31,248,2,218,31,156,2,232,31,248,2,234,31,144,2,248,31,128,2,250,31,130,2,70,2,1,9,16,5,1,3,96,33,16,16,0,44,48,47,103,44,1,5,128,44,1,99,235,44,1,3,64,166,1,45,128,166,1,23,34,167,1,13,50,167,1,61,121,167,1,3,126,167,1,9,144,167,1,3,160,167,1,9,33,255,32,26,0,0,0,0,99,111,114,101,0,73,32,0,37,46,48,50,102,0,100,111,116,58,100,111,116,0,103,118,-58,100,111,116,0,99,97,110,111,110,58,100,111,116,0,112,108,97,105,110,58,100,111,116,0,112,108,97,105,110,45,101,120,116,58,100,111,116,0,120,100,111,116,58,120,100,111,116,0,120,100,111,116,49,46,50,58,120,100,111,116,0,120,100,111,116,49,46,52,58,120,100,111,116,0,0,0,0,0,0,0,0,0,0,0,32,37,100,32,0,35,37,48,50,120,37,48,50,120,37,48,50,120,37,48,50,120,0,115,101,116,108,105,110,101,119,105,100,116,104,40,0,37,46,51,102,0,83,32,0,67,32,0,50,32,0,37,46,48,51,102,0,69,32,0,101,32,0,70,32,0,116,32,-37,117,32,0,84,32,0,120,100,111,116,118,101,114,115,105,111,110,0,49,46,52,0,49,46,50,0,49,46,55,0,95,108,100,114,97,119,95,0,95,104,100,114,97,119,95,0,95,116,100,114,97,119,95,0,95,104,108,100,114,97,119,95,0,95,116,108,100,114,97,119,95,0,120,100,111,116,32,118,101,114,115,105,111,110,32,34,37,115,34,32,116,111,111,32,108,111,110,103,0,37,115,37,100,32,45,0,106,115,111,110,0,106,115,111,110,48,0,100,111,116,95,106,115,111,110,0,120,100,111,116,95,106,115,111,110,0,106,115,111,110,58,106,115,111,-110,0,106,115,111,110,48,58,106,115,111,110,0,100,111,116,95,106,115,111,110,58,106,115,111,110,0,120,100,111,116,95,106,115,111,110,58,106,115,111,110,0,32,32,0,34,110,97,109,101,34,58,32,34,37,115,34,0,34,100,105,114,101,99,116,101,100,34,58,32,37,115,44,10,0,34,115,116,114,105,99,116,34,58,32,37,115,0,34,95,115,117,98,103,114,97,112,104,95,99,110,116,34,58,32,37,100,0,34,95,103,118,105,100,34,58,32,37,100,0,34,111,98,106,101,99,116,115,34,58,32,91,10,0,34,115,117,98,103,114,97,112,104,115,34,58,-32,91,10,0,34,110,111,100,101,115,34,58,32,91,10,0,34,95,103,118,105,100,34,58,32,37,100,44,10,0,34,101,100,103,101,115,34,58,32,91,10,0,34,116,97,105,108,34,58,32,37,100,44,10,0,34,104,101,97,100,34,58,32,37,100,0,34,37,115,34,58,32,0,100,114,97,119,95,0,108,100,114,97,119,95,0,104,100,114,97,119,95,0,116,100,114,97,119,95,0,104,108,100,114,97,119,95,0,116,108,100,114,97,119,95,0,67,111,117,108,100,32,110,111,116,32,112,97,114,115,101,32,120,100,111,116,32,34,37,115,34,10,0,91,10,0,34,111,112,34,-58,32,34,37,99,34,44,10,0,34,114,101,99,116,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,10,0,34,111,112,34,58,32,34,76,34,44,10,0,34,111,112,34,58,32,34,84,34,44,10,0,34,112,116,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,97,108,105,103,110,34,58,32,34,37,99,34,44,10,0,34,119,105,100,116,104,34,58,32,37,46,48,51,102,44,10,0,34,116,101,120,116,34,58,32,34,37,115,34,10,0,34,103,114,97,100,34,58,32,34,110,111,110,101,34,44,10,0,34,99,111,108,-111,114,34,58,32,34,37,115,34,10,0,34,103,114,97,100,34,58,32,34,108,105,110,101,97,114,34,44,10,0,34,112,48,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,112,49,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,103,114,97,100,34,58,32,34,114,97,100,105,97,108,34,44,10,0,34,112,48,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,112,49,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,111,112,34,58,32,34,70,34,-44,10,0,34,115,105,122,101,34,58,32,37,46,48,51,102,44,10,0,34,102,97,99,101,34,58,32,34,37,115,34,10,0,34,111,112,34,58,32,34,83,34,44,10,0,34,115,116,121,108,101,34,58,32,34,37,115,34,10,0,34,111,112,34,58,32,34,116,34,44,10,0,34,102,111,110,116,99,104,97,114,34,58,32,37,100,10,0,34,37,115,34,0,34,115,116,111,112,115,34,58,32,91,0,123,34,102,114,97,99,34,58,32,37,46,48,51,102,44,32,34,99,111,108,111,114,34,58,32,34,37,115,34,125,0,93,10,0,34,112,111,105,110,116,115,34,58,32,91,0,91,37,46,48,51,-102,44,37,46,48,51,102,93,0,92,34,0,92,47,0,92,98,0,92,102,0,92,110,0,92,114,0,92,116,0,68,117,112,108,105,99,97,116,101,32,99,108,117,115,116,101,114,32,110,97,109,101,32,34,37,115,34,10,0,120,100,111,116,0,102,105,103,0,102,105,103,58,102,105,103,0,110,32,62,61,32,52,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,102,105,103,46,99,0,102,105,103,95,98,101,122,105,101,114,0,102,105,103,95,114,101,115,111,108,118,101,95,99,111,108,111,114,0,109,97,112,0,105,115,109,97,112,58,109,97,112,0,99,-109,97,112,58,109,97,112,0,105,109,97,112,58,109,97,112,0,99,109,97,112,120,58,109,97,112,0,105,109,97,112,95,110,112,58,109,97,112,0,99,109,97,112,120,95,110,112,58,109,97,112,0,114,101,99,116,32,37,115,32,37,100,44,37,100,32,37,100,44,37,100,10,0,99,105,114,99,108,101,32,37,115,32,37,100,44,37,100,44,37,100,10,0,112,111,108,121,32,37,115,0,32,37,100,44,37,100,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,109,97,112,46,99,0,109,97,112,95,111,117,116,112,117,116,95,115,104,97,112,101,0,114,-101,99,116,97,110,103,108,101,32,40,37,100,44,37,100,41,32,40,37,100,44,37,100,41,32,37,115,32,37,115,10,0,60,97,114,101,97,32,115,104,97,112,101,61,34,99,105,114,99,108,101,34,0,60,97,114,101,97,32,115,104,97,112,101,61,34,114,101,99,116,34,0,60,97,114,101,97,32,115,104,97,112,101,61,34,112,111,108,121,34,0,32,104,114,101,102,61,34,0,32,116,105,116,108,101,61,34,0,32,97,108,116,61,34,34,0,32,99,111,111,114,100,115,61,34,0,37,100,44,37,100,44,37,100,0,37,100,44,37,100,44,37,100,44,37,100,0,37,100,-44,37,100,0,44,37,100,44,37,100,0,34,62,10,0,60,47,109,97,112,62,10,0,98,97,115,101,32,114,101,102,101,114,101,114,10,0,100,101,102,97,117,108,116,32,0,60,109,97,112,32,105,100,61,34,0,34,32,110,97,109,101,61,34,0,109,112,0,109,112,58,109,112,0,35,32,37,115,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,-37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,51,102,32,37,100,32,37,46,52,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,35,37,48,50,120,37,48,50,120,37,48,50,120,10,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,109,112,46,99,0,109,112,95,114,101,115,111,108,118,101,95,99,111,108,111,114,0,37,100,32,-37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,46,52,102,32,37,100,32,37,46,49,102,32,37,46,49,102,32,37,100,32,37,100,32,37,115,92,48,48,49,10,0,35,32,101,110,100,32,111,102,32,70,73,71,32,102,105,108,101,10,0,35,70,73,71,32,51,46,50,10,0,35,32,71,101,110,101,114,97,116,101,100,32,98,121,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,35,32,84,105,116,108,101,58,32,37,115,10,0,35,32,80,97,103,101,115,58,32,37,100,10,0,80,111,114,116,114,97,105,116,10,-0,67,101,110,116,101,114,10,0,73,110,99,104,101,115,10,0,76,101,116,116,101,114,10,0,49,48,48,46,48,48,10,0,83,105,110,103,108,101,10,0,45,50,10,0,49,50,48,48,0,32,50,10,0,112,115,50,58,112,115,0,32,93,32,32,37,100,32,116,114,117,101,32,37,115,10,0,32,93,32,32,37,100,32,102,97,108,115,101,32,37,115,10,0,32,115,101,116,108,105,110,101,119,105,100,116,104,10,0,37,115,32,0,115,101,116,104,115,98,0,37,46,53,103,32,37,46,53,103,32,37,46,53,103,32,37,115,99,111,108,111,114,10,0,37,32,0,110,101,119,112,-97,116,104,32,0,32,109,111,118,101,116,111,10,0,32,108,105,110,101,116,111,10,0,115,116,114,111,107,101,10,0,32,99,117,114,118,101,116,111,10,0,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,0,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,0,32,101,108,108,105,112,115,101,95,112,97,116,104,32,102,105,108,108,10,0,32,101,108,108,105,112,115,101,95,112,97,116,104,32,115,116,114,111,107,101,10,0,32,47,37,115,32,115,101,116,95,102,111,110,116,10,0,32,109,111,118,101,116,111,-32,0,32,37,115,32,97,108,105,103,110,101,100,116,101,120,116,10,0,91,32,47,82,101,99,116,32,91,32,0,32,93,10,0,32,32,47,66,111,114,100,101,114,32,91,32,48,32,48,32,48,32,93,10,32,32,47,65,99,116,105,111,110,32,60,60,32,47,83,117,98,116,121,112,101,32,47,85,82,73,32,47,85,82,73,32,37,115,32,62,62,10,32,32,47,83,117,98,116,121,112,101,32,47,76,105,110,107,10,47,65,78,78,32,112,100,102,109,97,114,107,10,0,103,115,97,118,101,10,0,37,37,32,37,115,10,0,48,32,48,32,48,32,101,100,103,101,99,111,108,111,114,-10,0,101,110,100,112,97,103,101,10,115,104,111,119,112,97,103,101,10,103,114,101,115,116,111,114,101,10,0,37,37,80,97,103,101,84,114,97,105,108,101,114,10,0,37,37,37,37,69,110,100,80,97,103,101,58,32,37,100,10,0,37,37,37,37,80,97,103,101,58,32,37,100,32,37,100,10,0,37,37,37,37,80,97,103,101,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,76,97,110,100,115,99,97,112,101,0,80,111,114,116,114,97,105,116,0,37,37,37,37,80,97,103,101,79,114,105,101,110,116,97,116,-105,111,110,58,32,37,115,10,0,60,60,32,47,80,97,103,101,83,105,122,101,32,91,37,100,32,37,100,93,32,62,62,32,115,101,116,112,97,103,101,100,101,118,105,99,101,10,0,37,100,32,37,100,32,37,100,32,98,101,103,105,110,112,97,103,101,10,0,103,115,97,118,101,10,37,100,32,37,100,32,37,100,32,37,100,32,98,111,120,112,114,105,109,32,99,108,105,112,32,110,101,119,112,97,116,104,10,0,37,103,32,37,103,32,115,101,116,95,115,99,97,108,101,32,37,100,32,114,111,116,97,116,101,32,37,103,32,37,103,32,116,114,97,110,-115,108,97,116,101,10,0,99,97,110,118,97,115,32,115,105,122,101,32,40,37,100,44,37,100,41,32,101,120,99,101,101,100,115,32,80,68,70,32,108,105,109,105,116,32,40,37,100,41,10,9,40,115,117,103,103,101,115,116,32,115,101,116,116,105,110,103,32,97,32,98,111,117,110,100,105,110,103,32,98,111,120,32,115,105,122,101,44,32,115,101,101,32,100,111,116,40,49,41,41,10,0,91,32,47,67,114,111,112,66,111,120,32,91,37,100,32,37,100,32,37,100,32,37,100,93,32,47,80,65,71,69,83,32,112,100,102,109,97,114,107,10,0,37,-100,32,37,100,32,115,101,116,108,97,121,101,114,10,0,0,37,37,37,37,84,105,116,108,101,58,32,37,115,10,0,37,37,80,97,103,101,115,58,32,40,97,116,101,110,100,41,10,0,37,37,80,97,103,101,115,58,32,49,10,0,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,40,97,116,101,110,100,41,10,0,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,37,69,110,100,67,111,109,109,101,110,116,115,10,115,97,118,101,10,0,115,101,116,117,112,76,97,116,105,110,49,10,-0,91,32,123,67,97,116,97,108,111,103,125,32,60,60,32,47,85,82,73,32,60,60,32,47,66,97,115,101,32,37,115,32,62,62,32,62,62,10,47,80,85,84,32,112,100,102,109,97,114,107,10,0,37,37,66,101,103,105,110,80,114,111,108,111,103,0,47,68,111,116,68,105,99,116,32,50,48,48,32,100,105,99,116,32,100,101,102,0,68,111,116,68,105,99,116,32,98,101,103,105,110,0,47,115,101,116,117,112,76,97,116,105,110,49,32,123,0,109,97,114,107,0,47,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,50,53,54,32,97,114,114,97,121,-32,100,101,102,0,32,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,48,0,73,83,79,76,97,116,105,110,49,69,110,99,111,100,105,110,103,32,48,32,50,53,53,32,103,101,116,105,110,116,101,114,118,97,108,32,112,117,116,105,110,116,101,114,118,97,108,0,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,52,53,32,47,104,121,112,104,101,110,32,112,117,116,0,37,32,83,101,116,32,117,112,32,73,83,79,32,76,97,116,105,110,32,49,32,99,104,97,114,97,99,116,101,114,32,101,110,99,111,100,105,110,103,0,47,-115,116,97,114,110,101,116,73,83,79,32,123,0,32,32,32,32,32,32,32,32,100,117,112,32,100,117,112,32,102,105,110,100,102,111,110,116,32,100,117,112,32,108,101,110,103,116,104,32,100,105,99,116,32,98,101,103,105,110,0,32,32,32,32,32,32,32,32,123,32,49,32,105,110,100,101,120,32,47,70,73,68,32,110,101,32,123,32,100,101,102,32,125,123,32,112,111,112,32,112,111,112,32,125,32,105,102,101,108,115,101,0,32,32,32,32,32,32,32,32,125,32,102,111,114,97,108,108,0,32,32,32,32,32,32,32,32,47,69,110,99,111,100,105,-110,103,32,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,100,101,102,0,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,100,105,99,116,32,101,110,100,32,100,101,102,105,110,101,102,111,110,116,0,125,32,100,101,102,0,47,84,105,109,101,115,45,82,111,109,97,110,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,84,105,109,101,115,45,73,116,97,108,105,99,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,84,105,109,101,115,45,66,111,108,100,32,115,116,97,114,110,101,116,73,-83,79,32,100,101,102,0,47,84,105,109,101,115,45,66,111,108,100,73,116,97,108,105,99,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,66,111,108,100,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,-66,111,108,100,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,66,111,108,100,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,66,111,108,100,79,98,108,105,113,117,101,32,115,116,97,114,110,101,-116,73,83,79,32,100,101,102,0,99,108,101,97,114,116,111,109,97,114,107,0,125,32,98,105,110,100,32,100,101,102,0,37,37,66,101,103,105,110,82,101,115,111,117,114,99,101,58,32,112,114,111,99,115,101,116,32,103,114,97,112,104,118,105,122,32,48,32,48,0,47,99,111,111,114,100,45,102,111,110,116,45,102,97,109,105,108,121,32,47,84,105,109,101,115,45,82,111,109,97,110,32,100,101,102,0,47,100,101,102,97,117,108,116,45,102,111,110,116,45,102,97,109,105,108,121,32,47,84,105,109,101,115,45,82,111,109,97,110,32,-100,101,102,0,47,99,111,111,114,100,102,111,110,116,32,99,111,111,114,100,45,102,111,110,116,45,102,97,109,105,108,121,32,102,105,110,100,102,111,110,116,32,56,32,115,99,97,108,101,102,111,110,116,32,100,101,102,0,47,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,49,46,48,32,100,101,102,0,47,115,101,116,95,115,99,97,108,101,32,123,0,32,32,32,32,32,32,32,100,117,112,32,49,32,101,120,99,104,32,100,105,118,32,47,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,101,120,99,104,32,100,101,102,0,-32,32,32,32,32,32,32,115,99,97,108,101,0,37,32,115,116,121,108,101,115,0,47,115,111,108,105,100,32,123,32,91,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,100,97,115,104,101,100,32,123,32,91,57,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,108,32,100,117,112,32,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,100,111,116,116,101,100,32,123,32,91,49,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,-108,32,54,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,108,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,105,110,118,105,115,32,123,47,102,105,108,108,32,123,110,101,119,112,97,116,104,125,32,100,101,102,32,47,115,116,114,111,107,101,32,123,110,101,119,112,97,116,104,125,32,100,101,102,32,47,115,104,111,119,32,123,112,111,112,32,110,101,119,112,97,116,104,125,32,100,101,102,125,32,98,105,110,100,32,100,101,102,0,47,98,111,108,100,32,123,32,50,-32,115,101,116,108,105,110,101,119,105,100,116,104,32,125,32,98,105,110,100,32,100,101,102,0,47,102,105,108,108,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,117,110,102,105,108,108,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,114,111,117,110,100,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,100,105,97,103,111,110,97,108,115,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,116,97,112,101,114,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,37,-32,104,111,111,107,115,32,102,111,114,32,115,101,116,116,105,110,103,32,99,111,108,111,114,32,0,47,110,111,100,101,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,101,100,103,101,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,103,114,97,112,104,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,110,-111,112,99,111,108,111,114,32,123,112,111,112,32,112,111,112,32,112,111,112,125,32,98,105,110,100,32,100,101,102,0,47,98,101,103,105,110,112,97,103,101,32,123,9,37,32,105,32,106,32,110,112,97,103,101,115,0,9,47,110,112,97,103,101,115,32,101,120,99,104,32,100,101,102,0,9,47,106,32,101,120,99,104,32,100,101,102,0,9,47,105,32,101,120,99,104,32,100,101,102,0,9,47,115,116,114,32,49,48,32,115,116,114,105,110,103,32,100,101,102,0,9,110,112,97,103,101,115,32,49,32,103,116,32,123,0,9,9,103,115,97,118,101,-0,9,9,9,99,111,111,114,100,102,111,110,116,32,115,101,116,102,111,110,116,0,9,9,9,48,32,48,32,109,111,118,101,116,111,0,9,9,9,40,92,40,41,32,115,104,111,119,32,105,32,115,116,114,32,99,118,115,32,115,104,111,119,32,40,44,41,32,115,104,111,119,32,106,32,115,116,114,32,99,118,115,32,115,104,111,119,32,40,92,41,41,32,115,104,111,119,0,9,9,103,114,101,115,116,111,114,101,0,9,125,32,105,102,0,47,115,101,116,95,102,111,110,116,32,123,0,9,102,105,110,100,102,111,110,116,32,101,120,99,104,0,9,115,99,97,108,-101,102,111,110,116,32,115,101,116,102,111,110,116,0,37,32,100,114,97,119,32,116,101,120,116,32,102,105,116,116,101,100,32,116,111,32,105,116,115,32,101,120,112,101,99,116,101,100,32,119,105,100,116,104,0,47,97,108,105,103,110,101,100,116,101,120,116,32,123,9,9,9,37,32,119,105,100,116,104,32,116,101,120,116,0,9,47,116,101,120,116,32,101,120,99,104,32,100,101,102,0,9,47,119,105,100,116,104,32,101,120,99,104,32,100,101,102,0,9,103,115,97,118,101,0,9,9,119,105,100,116,104,32,48,32,103,116,32,123,0,9,-9,9,91,93,32,48,32,115,101,116,100,97,115,104,0,9,9,9,116,101,120,116,32,115,116,114,105,110,103,119,105,100,116,104,32,112,111,112,32,119,105,100,116,104,32,101,120,99,104,32,115,117,98,32,116,101,120,116,32,108,101,110,103,116,104,32,100,105,118,32,48,32,116,101,120,116,32,97,115,104,111,119,0,9,9,125,32,105,102,0,9,103,114,101,115,116,111,114,101,0,47,98,111,120,112,114,105,109,32,123,9,9,9,9,37,32,120,99,111,114,110,101,114,32,121,99,111,114,110,101,114,32,120,115,105,122,101,32,121,115,105,122,-101,0,9,9,52,32,50,32,114,111,108,108,0,9,9,109,111,118,101,116,111,0,9,9,50,32,99,111,112,121,0,9,9,101,120,99,104,32,48,32,114,108,105,110,101,116,111,0,9,9,48,32,101,120,99,104,32,114,108,105,110,101,116,111,0,9,9,112,111,112,32,110,101,103,32,48,32,114,108,105,110,101,116,111,0,9,9,99,108,111,115,101,112,97,116,104,0,47,101,108,108,105,112,115,101,95,112,97,116,104,32,123,0,9,47,114,121,32,101,120,99,104,32,100,101,102,0,9,47,114,120,32,101,120,99,104,32,100,101,102,0,9,47,121,32,101,120,99,104,-32,100,101,102,0,9,47,120,32,101,120,99,104,32,100,101,102,0,9,109,97,116,114,105,120,32,99,117,114,114,101,110,116,109,97,116,114,105,120,0,9,110,101,119,112,97,116,104,0,9,120,32,121,32,116,114,97,110,115,108,97,116,101,0,9,114,120,32,114,121,32,115,99,97,108,101,0,9,48,32,48,32,49,32,48,32,51,54,48,32,97,114,99,0,9,115,101,116,109,97,116,114,105,120,0,47,101,110,100,112,97,103,101,32,123,32,115,104,111,119,112,97,103,101,32,125,32,98,105,110,100,32,100,101,102,0,47,115,104,111,119,112,97,103,101,-32,123,32,125,32,100,101,102,0,47,108,97,121,101,114,99,111,108,111,114,115,101,113,0,9,91,9,37,32,108,97,121,101,114,32,99,111,108,111,114,32,115,101,113,117,101,110,99,101,32,45,32,100,97,114,107,101,115,116,32,116,111,32,108,105,103,104,116,101,115,116,0,9,9,91,48,32,48,32,48,93,0,9,9,91,46,50,32,46,56,32,46,56,93,0,9,9,91,46,52,32,46,56,32,46,56,93,0,9,9,91,46,54,32,46,56,32,46,56,93,0,9,9,91,46,56,32,46,56,32,46,56,93,0,9,93,0,100,101,102,0,47,108,97,121,101,114,108,101,110,32,108,97,121,101,-114,99,111,108,111,114,115,101,113,32,108,101,110,103,116,104,32,100,101,102,0,47,115,101,116,108,97,121,101,114,32,123,47,109,97,120,108,97,121,101,114,32,101,120,99,104,32,100,101,102,32,47,99,117,114,108,97,121,101,114,32,101,120,99,104,32,100,101,102,0,9,108,97,121,101,114,99,111,108,111,114,115,101,113,32,99,117,114,108,97,121,101,114,32,49,32,115,117,98,32,108,97,121,101,114,108,101,110,32,109,111,100,32,103,101,116,0,9,97,108,111,97,100,32,112,111,112,32,115,101,116,104,115,98,99,111,108,111,-114,0,9,47,110,111,100,101,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,9,47,101,100,103,101,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,9,47,103,114,97,112,104,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,47,111,110,108,97,121,101,114,32,123,32,99,117,114,108,97,121,101,114,32,110,101,32,123,105,110,118,105,115,125,32,105,102,32,125,32,100,101,102,0,47,111,110,108,97,121,101,114,115,32,123,0,9,47,-109,121,117,112,112,101,114,32,101,120,99,104,32,100,101,102,0,9,47,109,121,108,111,119,101,114,32,101,120,99,104,32,100,101,102,0,9,99,117,114,108,97,121,101,114,32,109,121,108,111,119,101,114,32,108,116,0,9,99,117,114,108,97,121,101,114,32,109,121,117,112,112,101,114,32,103,116,0,9,111,114,0,9,123,105,110,118,105,115,125,32,105,102,0,47,99,117,114,108,97,121,101,114,32,48,32,100,101,102,0,37,37,69,110,100,82,101,115,111,117,114,99,101,0,37,37,69,110,100,80,114,111,108,111,103,0,37,37,66,101,103,-105,110,83,101,116,117,112,0,49,52,32,100,101,102,97,117,108,116,45,102,111,110,116,45,102,97,109,105,108,121,32,115,101,116,95,102,111,110,116,0,37,32,47,97,114,114,111,119,108,101,110,103,116,104,32,49,48,32,100,101,102,0,37,32,47,97,114,114,111,119,119,105,100,116,104,32,53,32,100,101,102,0,37,32,109,97,107,101,32,115,117,114,101,32,112,100,102,109,97,114,107,32,105,115,32,104,97,114,109,108,101,115,115,32,102,111,114,32,80,83,45,105,110,116,101,114,112,114,101,116,101,114,115,32,111,116,104,101,-114,32,116,104,97,110,32,68,105,115,116,105,108,108,101,114,0,47,112,100,102,109,97,114,107,32,119,104,101,114,101,32,123,112,111,112,125,32,123,117,115,101,114,100,105,99,116,32,47,112,100,102,109,97,114,107,32,47,99,108,101,97,114,116,111,109,97,114,107,32,108,111,97,100,32,112,117,116,125,32,105,102,101,108,115,101,0,37,32,109,97,107,101,32,39,60,60,39,32,97,110,100,32,39,62,62,39,32,115,97,102,101,32,111,110,32,80,83,32,76,101,118,101,108,32,49,32,100,101,118,105,99,101,115,0,47,108,97,110,103,-117,97,103,101,108,101,118,101,108,32,119,104,101,114,101,32,123,112,111,112,32,108,97,110,103,117,97,103,101,108,101,118,101,108,125,123,49,125,32,105,102,101,108,115,101,0,50,32,108,116,32,123,0,32,32,32,32,117,115,101,114,100,105,99,116,32,40,60,60,41,32,99,118,110,32,40,91,41,32,99,118,110,32,108,111,97,100,32,112,117,116,0,32,32,32,32,117,115,101,114,100,105,99,116,32,40,62,62,41,32,99,118,110,32,40,91,41,32,99,118,110,32,108,111,97,100,32,112,117,116,0,125,32,105,102,0,37,37,69,110,100,83,101,-116,117,112,0,37,37,84,114,97,105,108,101,114,10,0,37,37,37,37,80,97,103,101,115,58,32,37,100,10,0,101,110,100,10,114,101,115,116,111,114,101,10,0,37,37,69,79,70,10,0,37,33,80,83,45,65,100,111,98,101,45,51,46,48,0,32,69,80,83,70,45,51,46,48,10,0,37,37,37,37,67,114,101,97,116,111,114,58,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,100,97,114,107,98,108,117,101,0,100,97,114,107,99,121,97,110,0,100,97,114,107,103,114,97,121,0,100,97,114,107,103,114,101,121,0,100,97,114,107,-109,97,103,101,110,116,97,0,100,97,114,107,114,101,100,0,108,105,103,104,116,103,114,101,101,110,0,60,33,45,45,32,0,60,112,111,108,121,108,105,110,101,0,32,112,111,105,110,116,115,61,34,0,34,47,62,10,0,32,102,105,108,108,61,34,0,117,114,108,40,35,108,95,37,100,41,0,117,114,108,40,35,114,95,37,100,41,0,34,32,102,105,108,108,45,111,112,97,99,105,116,121,61,34,37,102,0,34,32,115,116,114,111,107,101,61,34,0,34,32,115,116,114,111,107,101,45,119,105,100,116,104,61,34,0,34,32,115,116,114,111,107,101,45,-100,97,115,104,97,114,114,97,121,61,34,37,115,0,53,44,50,0,49,44,53,0,34,32,115,116,114,111,107,101,45,111,112,97,99,105,116,121,61,34,37,102,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,115,118,103,46,99,0,115,118,103,95,112,114,105,110,116,95,99,111,108,111,114,0,60,112,97,116,104,0,32,105,100,61,34,0,95,112,34,32,0,32,100,61,34,0,37,99,0,60,100,101,102,115,62,10,60,114,97,100,105,97,108,71,114,97,100,105,101,110,116,32,105,100,61,34,114,95,37,100,34,32,99,120,61,34,53,48,37,37,34,32,-99,121,61,34,53,48,37,37,34,32,114,61,34,55,53,37,37,34,32,102,120,61,34,37,100,37,37,34,32,102,121,61,34,37,100,37,37,34,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,48,34,32,115,116,121,108,101,61,34,115,116,111,112,45,99,111,108,111,114,58,0,59,115,116,111,112,45,111,112,97,99,105,116,121,58,0,49,46,0,59,34,47,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,49,34,32,115,116,121,108,101,61,34,115,116,111,112,45,99,111,108,111,114,58,0,59,34,47,62,10,60,47,114,97,100,105,-97,108,71,114,97,100,105,101,110,116,62,10,60,47,100,101,102,115,62,10,0,60,100,101,102,115,62,10,60,108,105,110,101,97,114,71,114,97,100,105,101,110,116,32,105,100,61,34,108,95,37,100,34,32,103,114,97,100,105,101,110,116,85,110,105,116,115,61,34,117,115,101,114,83,112,97,99,101,79,110,85,115,101,34,32,0,120,49,61,34,0,34,32,121,49,61,34,0,34,32,120,50,61,34,0,34,32,121,50,61,34,0,34,32,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,37,46,48,51,102,34,32,115,116,121,108,101,61,34,115,-116,111,112,45,99,111,108,111,114,58,0,59,34,47,62,10,60,47,108,105,110,101,97,114,71,114,97,100,105,101,110,116,62,10,60,47,100,101,102,115,62,10,0,60,112,111,108,121,103,111,110,0,60,101,108,108,105,112,115,101,0,32,99,120,61,34,0,34,32,99,121,61,34,0,34,32,114,120,61,34,0,34,32,114,121,61,34,0,60,116,101,120,116,0,32,116,101,120,116,45,97,110,99,104,111,114,61,34,115,116,97,114,116,34,0,32,116,101,120,116,45,97,110,99,104,111,114,61,34,101,110,100,34,0,32,116,101,120,116,45,97,110,99,104,111,114,-61,34,109,105,100,100,108,101,34,0,32,120,61,34,0,34,32,121,61,34,0,32,102,111,110,116,45,102,97,109,105,108,121,61,34,37,115,0,44,37,115,0,32,102,111,110,116,45,119,101,105,103,104,116,61,34,37],"i8",4,n.q+95218);-B([115,34,0,32,102,111,110,116,45,115,116,114,101,116,99,104,61,34,37,115,34,0,32,102,111,110,116,45,115,116,121,108,101,61,34,37,115,34,0,32,102,111,110,116,45,102,97,109,105,108,121,61,34,37,115,34,0,32,102,111,110,116,45,119,101,105,103,104,116,61,34,98,111,108,100,34,0,32,102,111,110,116,45,115,116,121,108,101,61,34,105,116,97,108,105,99,34,0,32,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,61,34,0,37,115,111,118,101,114,108,105,110,101,0,37,115,108,105,110,101,45,116,104,114,111,117,-103,104,0,32,98,97,115,101,108,105,110,101,45,115,104,105,102,116,61,34,115,117,112,101,114,34,0,32,98,97,115,101,108,105,110,101,45,115,104,105,102,116,61,34,115,117,98,34,0,32,102,111,110,116,45,115,105,122,101,61,34,37,46,50,102,34,0,32,102,105,108,108,61,34,37,115,34,0,32,102,105,108,108,61,34,35,37,48,50,120,37,48,50,120,37,48,50,120,34,0,115,118,103,95,116,101,120,116,115,112,97,110,0,62,0,60,116,101,120,116,80,97,116,104,32,120,108,105,110,107,58,104,114,101,102,61,34,35,37,115,95,112,34,32,-115,116,97,114,116,79,102,102,115,101,116,61,34,53,48,37,37,34,62,0,60,116,115,112,97,110,32,120,61,34,48,34,32,100,121,61,34,0,34,62,0,60,47,116,115,112,97,110,62,60,47,116,101,120,116,80,97,116,104,62,0,60,47,116,101,120,116,62,10,0,60,47,103,62,10,0,60,103,0,32,105,100,61,34,97,95,0,32,120,108,105,110,107,58,104,114,101,102,61,34,0,32,120,108,105,110,107,58,116,105,116,108,101,61,34,0,32,116,97,114,103,101,116,61,34,0,60,116,105,116,108,101,62,0,60,47,116,105,116,108,101,62,10,0,60,103,32,105,-100,61,34,0,95,37,115,0,34,32,99,108,97,115,115,61,34,37,115,0,99,108,97,115,115,0,32,116,114,97,110,115,102,111,114,109,61,34,115,99,97,108,101,40,0,41,32,114,111,116,97,116,101,40,37,100,41,32,116,114,97,110,115,108,97,116,101,40,0,41,34,62,10,0,60,47,115,118,103,62,10,0,60,33,45,45,0,32,80,97,103,101,115,58,32,37,100,32,45,45,62,10,0,60,115,118,103,32,119,105,100,116,104,61,34,37,100,112,116,34,32,104,101,105,103,104,116,61,34,37,100,112,116,34,10,0,32,118,105,101,119,66,111,120,61,34,37,46,50,-102,32,37,46,50,102,32,37,46,50,102,32,37,46,50,102,34,0,32,120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,115,118,103,34,0,32,120,109,108,110,115,58,120,108,105,110,107,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,49,57,57,57,47,120,108,105,110,107,34,0,60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,32,115,116,97,110,100,97,108,111,110,-101,61,34,110,111,34,63,62,10,0,115,116,121,108,101,115,104,101,101,116,0,60,63,120,109,108,45,115,116,121,108,101,115,104,101,101,116,32,104,114,101,102,61,34,0,34,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,63,62,10,0,60,33,68,79,67,84,89,80,69,32,115,118,103,32,80,85,66,76,73,67,32,34,45,47,47,87,51,67,47,47,68,84,68,32,83,86,71,32,49,46,49,47,47,69,78,34,10,0,32,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,71,114,97,112,104,105,99,115,47,83,86,71,47,49,46,-49,47,68,84,68,47,115,118,103,49,49,46,100,116,100,34,62,10,0,60,33,45,45,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,116,107,0,116,107,58,116,107,0,35,32,0,32,99,114,101,97,116,101,32,108,105,110,101,32,0,32,45,102,105,108,108,32,0,32,45,100,97,115,104,32,53,0,32,45,100,97,115,104,32,50,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,116,107,46,99,0,116,107,103,101,110,95,112,114,105,110,116,95,116,97,103,115,0,103,114,97,112,104,32,108,97,98,101,108,0,32,45,116,97,103,115,32,123,-37,100,37,115,37,112,125,0,116,107,103,101,110,95,112,114,105,110,116,95,99,111,108,111,114,0,36,99,0,32,45,119,105,100,116,104,32,0,32,45,115,109,111,111,116,104,32,98,101,122,105,101,114,32,0,32,99,114,101,97,116,101,32,112,111,108,121,103,111,110,32,0,32,45,111,117,116,108,105,110,101,32,0,32,99,114,101,97,116,101,32,111,118,97,108,32,0,32,99,114,101,97,116,101,32,116,101,120,116,32,0,32,45,116,101,120,116,32,123,0,125,0,32,45,102,111,110,116,32,123,0,32,37,100,125,0,32,45,97,110,99,104,111,114,-32,119,0,32,45,97,110,99,104,111,114,32,101,0,35,0,32,84,105,116,108,101,58,32,0,32,80,97,103,101,115,58,32,37,100,10,0,35,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,41,10,0,69,114,114,111,114,32,100,117,114,105,110,103,32,99,111,110,118,101,114,115,105,111,110,32,116,111,32,34,85,84,70,45,56,34,46,32,32,81,117,105,116,105,110,103,46,10,0,118,109,108,0,118,109,108,58,118,109,108,0,97,113,117,97,0,102,117,99,104,115,105,97,0,108,105,109,101,0,111,108,105,118,101,0,116,101,97,108,0,32,32,32,-32,32,32,60,33,45,45,32,0,32,45,45,62,10,0,32,60,118,58,115,104,97,112,101,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,0,32,119,105,100,116,104,58,32,37,100,59,32,104,101,105,103,104,116,58,32,37,100,34,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,62,0,60,118,58,112,97,116,104,32,118,61,34,0,32,109,32,0,37,46,48,102,44,37,46,48,102,32,0,32,108,32,0,32,101,32,0,34,47,62,0,60,47,118,58,115,104,97,112,101,62,10,0,60,118,58,115,116,114,-111,107,101,32,99,111,108,111,114,61,34,0,34,32,119,101,105,103,104,116,61,34,37,46,48,102,112,116,0,34,32,100,97,115,104,115,116,121,108,101,61,34,100,97,115,104,0,34,32,100,97,115,104,115,116,121,108,101,61,34,100,111,116,0,34,32,47,62,0,35,37,48,50,120,37,48,50,120,37,48,50,120,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,118,109,108,46,99,0,118,109,108,95,112,114,105,110,116,95,99,111,108,111,114,0,32,119,105,100,116,104,58,32,37,100,59,32,104,101,105,103,104,116,58,32,37,100,34,0,32,-62,0,60,118,58,112,97,116,104,32,32,118,61,34,0,109,32,0,37,115,37,46,48,102,44,37,46,48,102,32,0,99,32,0,47,62,60,47,118,58,115,104,97,112,101,62,10,0,32,102,105,108,108,101,100,61,34,116,114,117,101,34,32,102,105,108,108,99,111,108,111,114,61,34,0,34,32,0,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,32,0,37,46,48,102,32,37,46,48,102,32,0,108,32,0,120,32,101,32,34,47,62,0,32,32,60,118,58,111,118,97,108,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,-116,101,59,0,32,108,101,102,116,58,32,37,46,50,102,59,32,116,111,112,58,32,37,46,50,102,59,0,32,119,105,100,116,104,58,32,37,46,50,102,59,32,104,101,105,103,104,116,58,32,37,46,50,102,34,0,60,47,118,58,111,118,97,108,62,10,0,60,118,58,114,101,99,116,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,0,32,115,116,114,111,107,101,100,61,34,102,97,108,115,101,34,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,62,10,0,60,118,58,116,101,120,116,98,-111,120,32,105,110,115,101,116,61,34,48,44,48,44,48,44,48,34,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,118,45,116,101,120,116,45,119,114,97,112,112,105,110,103,58,39,102,97,108,115,101,39,59,112,97,100,100,105,110,103,58,39,48,39,59,0,102,111,110,116,45,102,97,109,105,108,121,58,32,39,37,115,39,59,0,102,111,110,116,45,119,101,105,103,104,116,58,32,37,115,59,0,102,111,110,116,45,115,116,114,101,116,99,104,58,32,37,115,59,0,102,111,110,116,45,-115,116,121,108,101,58,32,37,115,59,0,32,102,111,110,116,45,115,105,122,101,58,32,37,46,50,102,112,116,59,0,99,111,108,111,114,58,37,115,59,0,99,111,108,111,114,58,35,37,48,50,120,37,48,50,120,37,48,50,120,59,0,118,109,108,95,116,101,120,116,115,112,97,110,0,34,62,60,99,101,110,116,101,114,62,0,60,47,99,101,110,116,101,114,62,60,47,118,58,116,101,120,116,98,111,120,62,10,0,60,47,118,58,114,101,99,116,62,10,0,60,47,97,62,10,0,60,97,0,32,104,114,101,102,61,34,37,115,34,0,32,116,105,116,108,101,61,34,-37,115,34,0,32,116,97,114,103,101,116,61,34,37,115,34,0,62,10,0,60,47,118,58,103,114,111,117,112,62,10,0,60,47,68,73,86,62,10,0,60,68,73,86,32,105,100,61,39,95,86,77,76,50,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,118,105,115,105,98,105,108,105,116,121,58,104,105,100,100,101,110,34,62,10,0,60,33,45,45,32,105,110,115,101,114,116,32,97,110,121,32,111,116,104,101,114,32,104,116,109,108,32,99,111,110,116,101,110,116,32,104,101,114,101,32,45,-45,62,10,0,60,68,73,86,32,105,100,61,39,95,110,111,116,86,77,76,49,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,34,62,10,0,60,33,45,45,32,116,104,105,115,32,115,104,111,117,108,100,32,111,110,108,121,32,100,105,115,112,108,97,121,32,111,110,32,78,79,78,45,73,69,32,98,114,111,119,115,101,114,115,32,45,45,62,10,0,60,72,50,62,83,111,114,114,121,44,32,116,104,105,115,32,100,105,97,103,114,97,109,32,119,105,108,108,32,111,110,108,121,32,100,105,-115,112,108,97,121,32,99,111,114,114,101,99,116,108,121,32,111,110,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,32,53,32,40,97,110,100,32,117,112,41,32,98,114,111,119,115,101,114,115,46,60,47,72,50,62,10,0,60,68,73,86,32,105,100,61,39,95,110,111,116,86,77,76,50,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,34,62,10,0,60,33,45,45,32,105,110,115,101,114,116,32,97,110,121,32,111,116,104,101,114,32,78,79,78,45,73,69,32,104,-116,109,108,32,99,111,110,116,101,110,116,32,104,101,114,101,32,45,45,62,10,0,60,47,66,79,68,89,62,10,60,47,72,84,77,76,62,10,0,60,72,69,65,68,62,0,60,77,69,84,65,32,104,116,116,112,45,101,113,117,105,118,61,34,67,111,110,116,101,110,116,45,84,121,112,101,34,32,99,111,110,116,101,110,116,61,34,116,101,120,116,47,104,116,109,108,59,32,99,104,97,114,115,101,116,61,85,84,70,45,56,34,62,10,0,60,84,73,84,76,69,62,0,60,47,84,73,84,76,69,62,0,60,33,45,45,32,80,97,103,101,115,58,32,37,100,32,45,45,62,10,-0,32,32,32,60,83,67,82,73,80,84,32,76,65,78,71,85,65,71,69,61,39,74,97,118,97,115,99,114,105,112,116,39,62,10,0,32,32,32,102,117,110,99,116,105,111,110,32,98,114,111,119,115,101,114,99,104,101,99,107,40,41,10,0,32,32,32,123,10,0,32,32,32,32,32,32,118,97,114,32,117,97,32,61,32,119,105,110,100,111,119,46,110,97,118,105,103,97,116,111,114,46,117,115,101,114,65,103,101,110,116,10,0,32,32,32,32,32,32,118,97,114,32,109,115,105,101,32,61,32,117,97,46,105,110,100,101,120,79,102,32,40,32,39,77,83,73,69,32,-39,32,41,10,0,32,32,32,32,32,32,118,97,114,32,105,101,118,101,114,115,59,10,0,32,32,32,32,32,32,118,97,114,32,105,116,101,109,59,10,0,32,32,32,32,32,32,118,97,114,32,86,77,76,121,101,115,61,110,101,119,32,65,114,114,97,121,40,39,95,86,77,76,49,95,39,44,39,95,86,77,76,50,95,39,41,59,10,0,32,32,32,32,32,32,118,97,114,32,86,77,76,110,111,61,110,101,119,32,65,114,114,97,121,40,39,95,110,111,116,86,77,76,49,95,39,44,39,95,110,111,116,86,77,76,50,95,39,41,59,10,0,32,32,32,32,32,32,105,102,32,40,32,109,-115,105,101,32,62,32,48,32,41,123,32,32,32,32,32,32,47,47,32,73,102,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,44,32,114,101,116,117,114,110,32,118,101,114,115,105,111,110,32,110,117,109,98,101,114,10,0,32,32,32,32,32,32,32,32,32,105,101,118,101,114,115,61,32,112,97,114,115,101,73,110,116,32,40,117,97,46,115,117,98,115,116,114,105,110,103,32,40,109,115,105,101,43,53,44,32,117,97,46,105,110,100,101,120,79,102,32,40,39,46,39,44,32,109,115,105,101,32,41,41,41,10,0,32,32,32,32,-32,32,125,10,0,32,32,32,32,32,32,105,102,32,40,105,101,118,101,114,115,62,61,53,41,123,10,0,32,32,32,32,32,32,32,102,111,114,32,40,120,32,105,110,32,86,77,76,121,101,115,41,123,10,0,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,86,77,76,121,101,115,91,120,93,41,59,10,0,32,32,32,32,32,32,32,32,32,105,102,32,40,105,116,101,109,41,32,123,10,0,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,46,115,116,121,-108,101,46,118,105,115,105,98,105,108,105,116,121,61,39,118,105,115,105,98,108,101,39,59,10,0,32,32,32,32,32,32,32,32,32,125,10,0,32,32,32,32,32,32,32,125,10,0,32,32,32,32,32,32,32,102,111,114,32,40,120,32,105,110,32,86,77,76,110,111,41,123,10,0,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,86,77,76,110,111,91,120,93,41,59,10,0,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,46,115,116,121,108,101,46,-118,105,115,105,98,105,108,105,116,121,61,39,104,105,100,100,101,110,39,59,10,0,32,32,32,32,32,125,101,108,115,101,123,10,0,32,32,32,32,32,125,10,0,32,32,32,125,10,0,32,32,32,60,47,83,67,82,73,80,84,62,10,0,60,47,72,69,65,68,62,0,60,66,79,68,89,32,111,110,108,111,97,100,61,39,98,114,111,119,115,101,114,99,104,101,99,107,40,41,59,39,62,10,0,60,68,73,86,32,105,100,61,39,95,86,77,76,49,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,32,100,105,-115,112,108,97,121,58,105,110,108,105,110,101,59,32,118,105,115,105,98,105,108,105,116,121,58,104,105,100,100,101,110,0,32,119,105,100,116,104,58,32,37,100,112,116,59,32,104,101,105,103,104,116,58,32,37,100,112,116,34,62,10,0,60,83,84,89,76,69,62,10,0,118,92,58,42,32,123,32,98,101,104,97,118,105,111,114,58,32,117,114,108,40,35,100,101,102,97,117,108,116,35,86,77,76,41,59,100,105,115,112,108,97,121,58,105,110,108,105,110,101,45,98,108,111,99,107,125,10,0,60,47,83,84,89,76,69,62,10,0,60,120,109,108,-58,110,97,109,101,115,112,97,99,101,32,110,115,61,34,117,114,110,58,115,99,104,101,109,97,115,45,109,105,99,114,111,115,111,102,116,45,99,111,109,58,118,109,108,34,32,112,114,101,102,105,120,61,34,118,34,32,47,62,10,0,32,60,118,58,103,114,111,117,112,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,32,0,32,119,105,100,116,104,58,32,37,100,112,116,59,32,104,101,105,103,104,116,58,32,37,100,112,116,34,0,32,99,111,111,114,100,111,114,105,103,105,110,61,-34,48,44,48,34,32,99,111,111,114,100,115,105,122,101,61,34,37,100,44,37,100,34,32,62,0,60,72,84,77,76,62,10,0,10,60,33,45,45,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,32,118,101,114,115,105,111,110,32,0,32,40,0,41,10,45,45,62,10,0,112,111,118,32,114,101,110,100,101,114,101,114,58,101,108,32,45,32,37,115,10,0,112,111,118,0,112,111,118,58,112,111,118,0,98,97,107,101,114,115,99,104,111,99,0,98,114,97,115,115,0,98,114,105,103,104,116,103,111,108,100,0,98,114,111,110,122,101,0,98,114,111,110,-122,101,50,0,99,108,101,97,114,0,99,111,111,108,99,111,112,112,101,114,0,99,111,112,112,101,114,0,100,97,114,107,98,114,111,119,110,0,100,97,114,107,112,117,114,112,108,101,0,100,97,114,107,116,97,110,0,100,97,114,107,119,111,111,100,0,100,107,103,114,101,101,110,99,111,112,112,101,114,0,100,117,115,116,121,114,111,115,101,0,102,101,108,100,115,112,97,114,0,102,108,101,115,104,0,103,114,97,121,48,53,0,103,114,101,101,110,99,111,112,112,101,114,0,104,117,110,116,101,114,115,103,114,101,101,110,0,108,-105,103,104,116,95,112,117,114,112,108,101,0,108,105,103,104,116,119,111,111,100,0,109,97,110,100,97,114,105,110,111,114,97,110,103,101,0,109,101,100,105,117,109,102,111,114,101,115,116,103,114,101,101,110,0,109,101,100,105,117,109,103,111,108,100,101,110,114,111,100,0,109,101,100,105,117,109,119,111,111,100,0,109,101,100,95,112,117,114,112,108,101,0,109,105,99,97,0,110,101,111,110,98,108,117,101,0,110,101,111,110,112,105,110,107,0,110,101,119,109,105,100,110,105,103,104,116,98,108,117,101,0,110,-101,119,116,97,110,0,111,108,100,103,111,108,100,0,113,117,97,114,116,122,0,114,105,99,104,98,108,117,101,0,115,99,97,114,108,101,116,0,115,101,109,105,83,119,101,101,116,67,104,111,99,0,115,105,108,118,101,114,0,115,112,105,99,121,112,105,110,107,0,115,117,109,109,101,114,115,107,121,0,118,101,114,121,100,97,114,107,98,114,111,119,110,0,118,101,114,121,95,108,105,103,104,116,95,112,117,114,112,108,101,0,47,47,42,42,42,32,99,111,109,109,101,110,116,58,32,37,115,10,0,47,47,42,42,42,32,112,111,108,-121,108,105,110,101,10,0,115,99,97,108,101,32,32,32,32,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,114,111,116,97,116,101,32,32,32,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,116,114,97,110,115,108,97,116,101,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,115,112,104,101,114,101,95,115,119,101,101,112,32,123,10,32,32,32,32,37,115,10,32,32,32,32,37,100,44,10,0,108,105,110,101,97,114,95,115,112,108,105,110,101,0,60,37,57,-46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,44,32,37,46,51,102,10,0,37,115,32,32,32,32,37,115,0,32,32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,48,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,37,115,37,115,0,37,115,32,116,114,97,110,115,109,105,116,32,37,46,51,102,0,82,101,100,0,71,114,101,101,110,0,66,108,117,101,0,114,103,98,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,32,116,114,97,110,115,109,105,116,32,37,-46,51,102,0,111,111,112,115,44,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,99,111,108,111,114,32,116,121,112,101,61,37,100,32,37,115,10,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,112,111,118,46,99,0,112,111,118,95,99,111,108,111,114,95,97,115,95,115,116,114,0,112,105,103,109,101,110,116,32,123,32,99,111,108,111,114,32,37,115,32,125,10,0,47,47,42,42,42,32,98,101,122,105,101,114,10,0,98,95,115,112,108,105,110,101,0,32,32,32,32,32,-32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,48,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,112,111,108,121,103,111,110,10,0,32,32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,112,111,108,121,103,111,110,32,123,32,37,100,44,10,0,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,0,37,115,10,32,32,32,32,37,115,0,10,32,-32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,101,108,108,105,112,115,101,10,0,116,111,114,117,115,32,123,32,37,46,51,102,44,32,37,46,51,102,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,115,112,104,101,114,101,32,123,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,44,32,49,46,48,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,-116,101,120,116,115,112,97,110,58,32,37,115,44,32,102,111,110,116,115,105,122,101,32,61,32,37,46,51,102,44,32,102,111,110,116,110,97,109,101,32,61,32,37,115,10,0,115,99,97,108,101,32,37,46,51,102,10,0,116,101,120,116,32,123,10,32,32,32,32,116,116,102,32,34,37,115,34,44,10,32,32,32,32,34,37,115,34,44,32,37,46,51,102,44,32,37,46,51,102,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,32,32,32,32,110,111,95,115,104,97,100,111,119,10,0,47,47,42,-42,42,32,101,110,100,95,101,100,103,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,101,100,103,101,10,0,47,47,42,42,42,32,101,110,100,95,110,111,100,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,110,111,100,101,58,32,37,115,10,0,47,47,42,42,42,32,101,110,100,95,99,108,117,115,116,101,114,10,0,47,47,42,42,42,32,98,101,103,105,110,95,99,108,117,115,116,101,114,10,0,47,47,42,42,42,32,101,110,100,95,112,97,103,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,112,97,103,101,10,0,47,47,42,42,42,32,-101,110,100,95,108,97,121,101,114,10,0,47,47,42,42,42,32,98,101,103,105,110,95,108,97,121,101,114,58,32,37,115,44,32,37,100,47,37,100,10,0,47,47,42,42,42,32,101,110,100,95,103,114,97,112,104,10,0,47,47,42,42,42,32,98,101,103,105,110,95,103,114,97,112,104,32,37,115,10,0,99,97,109,101,114,97,32,123,32,108,111,99,97,116,105,111,110,32,60,37,46,51,102,32,44,32,37,46,51,102,32,44,32,37,46,51,102,62,10,32,32,32,32,32,32,32,32,32,108,111,111,107,95,97,116,32,32,60,37,46,51,102,32,44,32,37,46,51,102,32,44,-32,37,46,51,102,62,10,32,32,32,32,32,32,32,32,32,114,105,103,104,116,32,120,32,42,32,105,109,97,103,101,95,119,105,100,116,104,32,47,32,105,109,97,103,101,95,104,101,105,103,104,116,10,32,32,32,32,32,32,32,32,32,97,110,103,108,101,32,37,46,51,102,10,125,10,0,47,47,115,107,121,10,112,108,97,110,101,32,123,32,60,48,44,32,49,44,32,48,62,44,32,49,32,104,111,108,108,111,119,10,32,32,32,32,116,101,120,116,117,114,101,32,123,10,32,32,32,32,32,32,32,32,112,105,103,109,101,110,116,32,123,32,98,111,122,111,-32,116,117,114,98,117,108,101,110,99,101,32,48,46,57,53,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,108,111,114,95,109,97,112,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,48,48,32,114,103,98,32,60,48,46,48,53,44,32,48,46,50,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,53,48,32,114,103,98,32,60,48,46,48,53,44,32,48,46,50,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,55,53,32,114,103,98,32,60,-49,46,48,48,44,32,49,46,48,48,44,32,49,46,48,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,55,53,32,114,103,98,32,60,48,46,50,53,44,32,48,46,50,53,44,32,48,46,50,53,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,49,46,48,48,32,114,103,98,32,60,48,46,53,48,44,32,48,46,53,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,115,99,97,108,101,32,60,49,46,48,48,44,32,49,46,48,48,44,32,49,46,53,48,62,32,42,32,50,-46,53,48,10,32,32,32,32,32,32,32,32,32,32,32,32,116,114,97,110,115,108,97,116,101,32,60,48,46,48,48,44,32,48,46,48,48,44,32,48,46,48,48,62,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,102,105,110,105,115,104,32,123,32,97,109,98,105,101,110,116,32,49,32,100,105,102,102,117,115,101,32,48,32,125,10,32,32,32,32,125,10,32,32,32,32,115,99,97,108,101,32,49,48,48,48,48,10,125,10,47,47,109,105,115,116,10,102,111,103,32,123,32,102,111,103,95,116,121,112,101,32,50,10,32,32,32,32,100,105,115,116,-97,110,99,101,32,53,48,10,32,32,32,32,99,111,108,111,114,32,114,103,98,32,60,49,46,48,48,44,32,49,46,48,48,44,32,49,46,48,48,62,32,42,32,48,46,55,53,10,32,32,32,32,102,111,103,95,111,102,102,115,101,116,32,48,46,49,48,10,32,32,32,32,102,111,103,95,97,108,116,32,49,46,53,48,10,32,32,32,32,116,117,114,98,117,108,101,110,99,101,32,49,46,55,53,10,125,10,47,47,103,110,100,10,112,108,97,110,101,32,123,32,60,48,46,48,48,44,32,49,46,48,48,44,32,48,46,48,48,62,44,32,48,10,32,32,32,32,116,101,120,116,117,114,-101,32,123,10,32,32,32,32,32,32,32,32,112,105,103,109,101,110,116,123,32,99,111,108,111,114,32,114,103,98,32,60,48,46,50,53,44,32,48,46,52,53,44,32,48,46,48,48,62,32,125,10,32,32,32,32,32,32,32,32,110,111,114,109,97,108,32,123,32,98,117,109,112,115,32,48,46,55,53,32,115,99,97,108,101,32,48,46,48,49,32,125,10,32,32,32,32,32,32,32,32,102,105,110,105,115,104,32,123,32,112,104,111,110,103,32,48,46,49,48,32,125,10,32,32,32,32,125,10,125,10,0,108,105,103,104,116,95,115,111,117,114,99,101,32,123,32,60,49,-53,48,48,44,51,48,48,48,44,45,50,53,48,48,62,32,99,111,108,111,114,32,87,104,105,116,101,32,125,10,0,35,118,101,114,115,105,111,110,32,51,46,54,59,10,0,103,108,111,98,97,108,95,115,101,116,116,105,110,103,115,32,123,32,97,115,115,117,109,101,100,95,103,97,109,109,97,32,49,46,48,32,125,10,0,35,100,101,102,97,117,108,116,32,123,32,102,105,110,105,115,104,32,123,32,97,109,98,105,101,110,116,32,48,46,49,32,100,105,102,102,117,115,101,32,48,46,57,32,125,32,125,10,0,35,105,110,99,108,117,100,101,32,34,-99,111,108,111,114,115,46,105,110,99,34,10,35,105,110,99,108,117,100,101,32,34,116,101,120,116,117,114,101,115,46,105,110,99,34,10,35,105,110,99,108,117,100,101,32,34,115,104,97,112,101,115,46,105,110,99,34,10,0,35,100,101,99,108,97,114,101,32,37,115,32,61,32,37,115,59,10,0,66,108,97,99,107,0,87,104,105,116,101,0,112,105,99,0,112,105,99,58,112,105,99,0,37,115,32,37,115,10,0,46,92,34,32,0,32,37,100,32,37,100,0,32,37,115,10,0,32,37,100,0,102,105,108,108,32,0,101,108,108,105,112,115,101,32,97,116,116,-114,115,37,100,32,37,115,119,105,100,32,37,46,53,102,32,104,116,32,37,46,53,102,32,97,116,32,40,37,46,53,102,44,37,46,53,102,41,59,10,0,37,115,37,115,32,105,115,32,110,111,116,32,97,32,116,114,111,102,102,32,102,111,110,116,10,0,100,111,116,32,112,105,99,32,112,108,117,103,105,110,58,32,0,82,0,46,102,116,32,37,115,10,0,46,112,115,32,37,100,42,92,110,40,83,70,117,47,37,46,48,102,117,10,0,37,48,51,111,0,34,37,115,34,32,97,116,32,40,37,46,53,102,44,37,46,53,102,41,59,10,0,93,10,46,80,69,10,0,37,115,-37,115,32,117,110,115,117,112,112,111,114,116,101,100,10,0,114,111,116,97,116,105,111,110,0,46,80,83,32,37,46,53,102,32,37,46,53,102,10,0,37,115,32,116,111,32,99,104,97,110,103,101,32,100,114,97,119,105,110,103,32,115,105,122,101,44,32,109,117,108,116,105,112,108,121,32,116,104,101,32,119,105,100,116,104,32,97,110,100,32,104,101,105,103,104,116,32,111,110,32,116,104,101,32,46,80,83,32,108,105,110,101,32,97,98,111,118,101,32,97,110,100,32,116,104,101,32,110,117,109,98,101,114,32,111,110,32,116,104,-101,32,116,119,111,32,108,105,110,101,115,32,98,101,108,111,119,32,40,114,111,117,110,100,101,100,32,116,111,32,116,104,101,32,110,101,97,114,101,115,116,32,105,110,116,101,103,101,114,41,32,98,121,32,97,32,115,99,97,108,101,32,102,97,99,116,111,114,10,0,46,110,114,32,83,70,32,37,46,48,102,10,115,99,97,108,101,116,104,105,99,107,110,101,115,115,32,61,32,37,46,48,102,10,0,37,115,32,100,111,110,39,116,32,99,104,97,110,103,101,32,97,110,121,116,104,105,110,103,32,98,101,108,111,119,32,116,104,105,115,-32,108,105,110,101,32,105,110,32,116,104,105,115,32,100,114,97,119,105,110,103,10,0,37,115,32,110,111,110,45,102,97,116,97,108,32,114,117,110,45,116,105,109,101,32,112,105,99,32,118,101,114,115,105,111,110,32,100,101,116,101,114,109,105,110,97,116,105,111,110,44,32,118,101,114,115,105,111,110,32,50,10,0,98,111,120,114,97,100,61,50,46,48,32,37,115,32,119,105,108,108,32,98,101,32,114,101,115,101,116,32,116,111,32,48,46,48,32,98,121,32,103,112,105,99,32,111,110,108,121,10,0,115,99,97,108,101,61,49,46,-48,32,37,115,32,114,101,113,117,105,114,101,100,32,102,111,114,32,99,111,109,112,97,114,105,115,111,110,115,10,0,37,115,32,98,111,120,114,97,100,32,105,115,32,110,111,119,32,48,46,48,32,105,110,32,103,112,105,99,44,32,101,108,115,101,32,105,116,32,114,101,109,97,105,110,115,32,50,46,48,10,0,37,115,32,100,97,115,104,119,105,100,32,105,115,32,48,46,49,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,44,32,48,46,48,53,32,105,110,32,68,87,66,32,50,32,97,110,100,32,105,110,32,103,112,105,99,10,-0,37,115,32,102,105,108,108,118,97,108,32,105,115,32,48,46,51,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,32,40,102,105,108,108,32,48,32,109,101,97,110,115,32,98,108,97,99,107,41,44,32,48,46,53,32,105,110,32,103,112,105,99,32,40,102,105,108,108,32,48,32,109,101,97,110,115,32,119,104,105,116,101,41,44,32,117,110,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,10,0,37,115,32,102,105,108,108,32,104,97,115,32,110,111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,44,-32,103,112,105,99,32,99,97,110,32,117,115,101,32,102,105,108,108,32,111,114,32,102,105,108,108,101,100,44,32,49,48,116,104,32,69,100,105,116,105,111,110,32,117,115,101,115,32,102,105,108,108,32,111,110,108,121,10,0,37,115,32,68,87,66,32,50,32,100,111,101,115,110,39,116,32,117,115,101,32,102,105,108,108,32,97,110,100,32,100,111,101,115,110,39,116,32,100,101,102,105,110,101,32,102,105,108,108,118,97,108,10,0,37,115,32,114,101,115,101,116,32,119,111,114,107,115,32,105,110,32,103,112,105,99,32,97,110,-100,32,49,48,116,104,32,101,100,105,116,105,111,110,44,32,98,117,116,32,105,115,110,39,116,32,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,10,0,37,115,32,68,87,66,32,50,32,99,111,109,112,97,116,105,98,105,108,105,116,121,32,100,101,102,105,110,105,116,105,111,110,115,10,0,105,102,32,98,111,120,114,97,100,32,62,32,49,46,48,32,38,38,32,100,97,115,104,119,105,100,32,60,32,48,46,48,55,53,32,116,104,101,110,32,88,10,9,102,105,108,108,118,97,108,32,61,32,49,59,10,9,100,101,102,105,110,101,32,-102,105,108,108,32,89,32,89,59,10,9,100,101,102,105,110,101,32,115,111,108,105,100,32,89,32,89,59,10,9,100,101,102,105,110,101,32,114,101,115,101,116,32,89,32,115,99,97,108,101,61,49,46,48,32,89,59,10,88,10,0,114,101,115,101,116,32,37,115,32,115,101,116,32,116,111,32,107,110,111,119,110,32,115,116,97,116,101,10,0,37,115,32,71,78,85,32,112,105,99,32,118,115,46,32,49,48,116,104,32,69,100,105,116,105,111,110,32,100,92,40,101,39,116,101,110,116,101,10,0,105,102,32,102,105,108,108,118,97,108,32,62,32,-48,46,52,32,116,104,101,110,32,88,10,9,100,101,102,105,110,101,32,115,101,116,102,105,108,108,118,97,108,32,89,32,102,105,108,108,118,97,108,32,61,32,49,32,45,32,89,59,10,9,100,101,102,105,110,101,32,98,111,108,100,32,89,32,116,104,105,99,107,110,101,115,115,32,50,32,89,59,10,0,9,37,115,32,105,102,32,121,111,117,32,117,115,101,32,103,112,105,99,32,97,110,100,32,105,116,32,98,97,114,102,115,32,111,110,32,101,110,99,111,117,110,116,101,114,105,110,103,32,34,115,111,108,105,100,34,44,10,0,9,37,115,9,-105,110,115,116,97,108,108,32,97,32,109,111,114,101,32,114,101,99,101,110,116,32,118,101,114,115,105,111,110,32,111,102,32,103,112,105,99,32,111,114,32,115,119,105,116,99,104,32,116,111,32,68,87,66,32,111,114,32,49,48,116,104,32,69,100,105,116,105,111,110,32,112,105,99,59,10,0,9,37,115,9,115,111,114,114,121,44,32,116,104,101,32,103,114,111,102,102,32,102,111,108,107,115,32,99,104,97,110,103,101,100,32,103,112,105,99,59,32,115,101,110,100,32,97,110,121,32,99,111,109,112,108,97,105,110,116,32,116,111,-32,116,104,101,109,59,10,0,88,32,101,108,115,101,32,90,10,9,100,101,102,105,110,101,32,115,101,116,102,105,108,108,118,97,108,32,89,32,102,105,108,108,118,97,108,32,61,32,89,59,10,9,100,101,102,105,110,101,32,98,111,108,100,32,89,32,89,59,10,9,100,101,102,105,110,101,32,102,105,108,108,101,100,32,89,32,102,105,108,108,32,89,59,10,90,10,0,37,115,32,97,114,114,111,119,104,101,97,100,32,104,97,115,32,110,111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,44,32,97,114,114,111,119,104,101,-97,100,32,61,32,55,32,109,97,107,101,115,32,102,105,108,108,101,100,32,97,114,114,111,119,104,101,97,100,115,32,105,110,32,103,112,105,99,32,97,110,100,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,37,115,32,97,114,114,111,119,104,101,97,100,32,105,115,32,117,110,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,44,32,105,110,105,116,105,97,108,108,121,32,49,32,105,110,32,103,112,105,99,44,32,50,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,97,114,114,111,-119,104,101,97,100,32,61,32,55,32,37,115,32,110,111,116,32,117,115,101,100,32,98,121,32,103,114,97,112,104,118,105,122,10,0,37,115,32,71,78,85,32,112,105,99,32,115,117,112,112,111,114,116,115,32,97,32,98,111,120,114,97,100,32,118,97,114,105,97,98,108,101,32,116,111,32,100,114,97,119,32,98,111,120,101,115,32,119,105,116,104,32,114,111,117,110,100,101,100,32,99,111,114,110,101,114,115,59,32,68,87,66,32,97,110,100,32,49,48,116,104,32,69,100,46,32,100,111,32,110,111,116,10,0,98,111,120,114,97,100,32,-61,32,48,32,37,115,32,110,111,32,114,111,117,110,100,101,100,32,99,111,114,110,101,114,115,32,105,110,32,103,114,97,112,104,118,105,122,10,0,37,115,32,71,78,85,32,112,105,99,32,115,117,112,112,111,114,116,115,32,97,32,108,105,110,101,116,104,105,99,107,32,118,97,114,105,97,98,108,101,32,116,111,32,115,101,116,32,108,105,110,101,32,116,104,105,99,107,110,101,115,115,59,32,68,87,66,32,97,110,100,32,49,48,116,104,32,69,100,46,32,100,111,32,110,111,116,10,0,108,105,110,101,116,104,105,99,107,32,61,32,-48,59,32,111,108,100,108,105,110,101,116,104,105,99,107,32,61,32,108,105,110,101,116,104,105,99,107,10,0,37,115,32,46,80,83,32,119,47,111,32,97,114,103,115,32,99,97,117,115,101,115,32,71,78,85,32,112,105,99,32,116,111,32,115,99,97,108,101,32,100,114,97,119,105,110,103,32,116,111,32,102,105,116,32,56,46,53,120,49,49,32,112,97,112,101,114,59,32,68,87,66,32,100,111,101,115,32,110,111,116,10,0,37,115,32,109,97,120,112,115,104,116,32,97,110,100,32,109,97,120,112,115,119,105,100,32,104,97,118,101,32,110,-111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,46,48,44,32,115,101,116,32,112,97,103,101,32,98,111,117,110,100,97,114,105,101,115,32,105,110,32,103,112,105,99,32,97,110,100,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,37,115,32,109,97,120,112,115,104,116,32,97,110,100,32,109,97,120,112,115,119,105,100,32,97,114,101,32,112,114,101,100,101,102,105,110,101,100,32,116,111,32,49,49,46,48,32,97,110,100,32,56,46,53,32,105,110,32,103,112,105,99,10,0,109,97,120,112,115,104,-116,32,61,32,37,102,10,109,97,120,112,115,119,105,100,32,61,32,37,102,10,0,68,111,116,58,32,91,10,0,100,101,102,105,110,101,32,97,116,116,114,115,48,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,117,110,102,105,108,108,101,100,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,114,111,117,110,100,101,100,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,100,105,97,103,111,110,97,108,115,32,37,37,32,37,37,10,0,37,115,32,114,101,115,116,111,114,101,32,112,111,105,110,116,32,115,105,122,101,32,-97,110,100,32,102,111,110,116,10,46,112,115,32,92,110,40,46,83,10,46,102,116,32,92,110,40,68,70,10,0,37,115,32,67,114,101,97,116,111,114,58,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,37,115,32,84,105,116,108,101,58,32,37,115,10,0,37,115,32,115,97,118,101,32,112,111,105,110,116,32,115,105,122,101,32,97,110,100,32,102,111,110,116,10,46,110,114,32,46,83,32,92,110,40,46,115,10,46,110,114,32,68,70,32,92,110,40,46,102,10,0,112,110,103,58,115,118,103,0,103,105,102,58,115,118,-103,0,106,112,101,103,58,115,118,103,0,106,112,101,58,115,118,103,0,106,112,103,58,115,118,103,0,112,110,103,58,102,105,103,0,103,105,102,58,102,105,103,0,106,112,101,103,58,102,105,103,0,106,112,101,58,102,105,103,0,106,112,103,58,102,105,103,0,112,110,103,58,118,114,109,108,0,103,105,102,58,118,114,109,108,0,106,112,101,103,58,118,114,109,108,0,106,112,101,58,118,114,109,108,0,106,112,103,58,118,114,109,108,0,101,112,115,58,112,115,0,112,115,58,112,115,0,40,108,105,98,41,58,112,115,0,112,110,103,-58,109,97,112,0,103,105,102,58,109,97,112,0,106,112,101,103,58,109,97,112,0,106,112,101,58,109,97,112,0,106,112,103,58,109,97,112,0,112,115,58,109,97,112,0,101,112,115,58,109,97,112,0,115,118,103,58,109,97,112,0,112,110,103,58,100,111,116,0,103,105,102,58,100,111,116,0,106,112,101,103,58,100,111,116,0,106,112,101,58,100,111,116,0,106,112,103,58,100,111,116,0,112,115,58,100,111,116,0,101,112,115,58,100,111,116,0,115,118,103,58,100,111,116,0,112,110,103,58,120,100,111,116,0,103,105,102,58,120,100,111,-116,0,106,112,101,103,58,120,100,111,116,0,106,112,101,58,120,100,111,116,0,106,112,103,58,120,100,111,116,0,112,115,58,120,100,111,116,0,101,112,115,58,120,100,111,116,0,115,118,103,58,120,100,111,116,0,115,118,103,58,115,118,103,0,112,110,103,58,118,109,108,0,103,105,102,58,118,109,108,0,106,112,101,103,58,118,109,108,0,106,112,101,58,118,109,108,0,106,112,103,58,118,109,108,0,103,105,102,58,116,107,0,105,109,97,103,101,32,99,114,101,97,116,101,32,112,104,111,116,111,32,34,112,104,111,116,111,95,-37,115,34,32,45,102,105,108,101,32,34,37,115,34,10,0,36,99,32,99,114,101,97,116,101,32,105,109,97,103,101,32,37,46,50,102,32,37,46,50,102,32,45,105,109,97,103,101,32,34,112,104,111,116,111,95,37,115,34,10,0,60,118,58,105,109,97,103,101,32,115,114,99,61,34,37,115,34,32,115,116,121,108,101,61,34,32,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,119,105,100,116,104,58,37,46,50,102,59,32,104,101,105,103,104,116,58,37,46,50,102,59,32,108,101,102,116,58,37,46,50,102,32,59,32,116,-111,112,58,37,46,50,102,34,0,32,47,62,10,0,103,118,108,111,97,100,105,109,97,103,101,95,99,111,114,101,46,99,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,112,115,108,105,98,0,91,32,0,37,103,32,37,103,32],"i8",4,n.q+105458);-B([93,32,32,37,100,32,116,114,117,101,32,37,115,10,0,93,32,32,37,100,32,102,97,108,115,101,32,37,115,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,112,115,0,103,115,97,118,101,32,37,103,32,37,103,32,116,114,97,110,115,108,97,116,101,32,110,101,119,112,97,116,104,10,0,117,115,101,114,95,115,104,97,112,101,95,37,100,10,0,103,114,101,115,116,111,114,101,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,118,114,109,108,0,83,104,97,112,101,32,123,10,0,32,32,97,112,112,101,97,114,-97,110,99,101,32,65,112,112,101,97,114,97,110,99,101,32,123,10,0,32,32,32,32,109,97,116,101,114,105,97,108,32,77,97,116,101,114,105,97,108,32,123,10,0,32,32,32,32,32,32,97,109,98,105,101,110,116,73,110,116,101,110,115,105,116,121,32,48,46,51,51,10,0,32,32,32,32,32,32,32,32,100,105,102,102,117,115,101,67,111,108,111,114,32,49,32,49,32,49,10,0,32,32,32,32,125,10,0,32,32,32,32,116,101,120,116,117,114,101,32,73,109,97,103,101,84,101,120,116,117,114,101,32,123,32,117,114,108,32,34,37,115,34,32,125,10,-0,32,32,125,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,102,105,103,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,32,37,100,32,37,115,10,0,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,115,118,103,0,60,105,109,97,103,101,32,120,108,105,110,107,58,104,-114,101,102,61,34,0,34,32,119,105,100,116,104,61,34,37,103,112,120,34,32,104,101,105,103,104,116,61,34,37,103,112,120,34,32,112,114,101,115,101,114,118,101,65,115,112,101,99,116,82,97,116,105,111,61,34,120,77,105,100,89,77,105,100,32,109,101,101,116,34,32,120,61,34,37,103,34,32,121,61,34,37,103,34,0,32,116,114,97,110,115,102,111,114,109,61,34,114,111,116,97,116,101,40,37,100,32,37,103,32,37,103,41,34,0,34,32,119,105,100,116,104,61,34,37,103,112,120,34,32,104,101,105,103,104,116,61,34,37,103,112,120,-34,32,112,114,101,115,101,114,118,101,65,115,112,101,99,116,82,97,116,105,111,61,34,120,77,105,110,89,77,105,110,32,109,101,101,116,34,32,120,61,34,37,103,34,32,121,61,34,37,103,34,0,47,62,10,0,100,111,116,95,108,97,121,111,117,116,0,112,104,97,115,101,0,100,111,116,32,100,111,101,115,32,110,111,116,32,115,117,112,112,111,114,116,32,116,104,101,32,97,115,112,101,99,116,32,97,116,116,114,105,98,117,116,101,32,102,111,114,32,100,105,115,99,111,110,110,101,99,116,101,100,32,103,114,97,112,104,115,32,-111,114,32,103,114,97,112,104,115,32,119,105,116,104,32,99,108,117,115,116,101,114,115,10,0,118,32,61,61,32,110,0,100,111,116,105,110,105,116,46,99,0,114,101,109,111,118,101,95,102,114,111,109,95,114,97,110,107,0,99,111,109,112,111,117,110,100,0,111,114,100,101,114,0,101,100,103,101,32,108,97,98,101,108,115,32,119,105,116,104,32,115,112,108,105,110,101,115,61,99,117,114,118,101,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,105,110,32,100,111,116,32,45,32,117,115,101,32,120,108,97,98,-101,108,115,10,0,40,108,32,61,32,69,68,95,108,97,98,101,108,40,102,101,41,41,0,100,111,116,115,112,108,105,110,101,115,46,99,0,115,101,116,69,100,103,101,76,97,98,101,108,80,111,115,0,69,68,95,108,97,98,101,108,40,102,101,41,0,95,100,111,116,95,115,112,108,105,110,101,115,0,102,108,97,116,32,101,100,103,101,32,98,101,116,119,101,101,110,32,97,100,106,97,99,101,110,116,32,110,111,100,101,115,32,111,110,101,32,111,102,32,119,104,105,99,104,32,104,97,115,32,97,32,114,101,99,111,114,100,32,115,104,97,-112,101,32,45,32,114,101,112,108,97,99,101,32,114,101,99,111,114,100,115,32,119,105,116,104,32,72,84,77,76,45,108,105,107,101,32,108,97,98,101,108,115,10,0,32,32,69,100,103,101,32,37,115,32,37,115,32,37,115,10,0,97,117,120,103,0,108,97,98,101,108,95,102,108,111,97,116,0,102,105,120,101,100,0,120,120,120,0,49,48,48,48,48,0,123,37,115,125,0,101,32,33,61,32,78,85,76,76,0,102,97,115,116,103,114,46,99,0,100,101,108,101,116,101,95,102,97,115,116,95,101,100,103,101,0,110,32,33,61,32,78,68,95,110,101,120,-116,40,110,41,0,102,97,115,116,95,110,111,100,101,0,117,32,33,61,32,118,0,102,97,115,116,95,110,111,100,101,97,112,112,0,78,68,95,110,101,120,116,40,118,41,32,61,61,32,78,85,76,76,0,102,105,110,100,95,102,97,115,116,95,110,111,100,101,40,103,44,32,110,41,0,100,101,108,101,116,101,95,102,97,115,116,95,110,111,100,101,0,100,101,108,101,116,101,95,102,108,97,116,95,101,100,103,101,0,109,101,114,103,101,95,111,110,101,119,97,121,32,103,108,105,116,99,104,10,0,109,101,114,103,101,95,111,110,101,119,97,-121,0,108,103,0,105,110,102,111,0,99,111,109,112,0,99,110,116,32,61,61,32,115,122,0,109,105,110,99,114,111,115,115,46,99,0,102,105,120,76,97,98,101,108,79,114,100,101,114,0,0,109,99,108,105,109,105,116,0,109,101,114,103,101,50,58,32,103,114,97,112,104,32,37,115,44,32,114,97,110,107,32,37,100,32,104,97,115,32,111,110,108,121,32,37,100,32,60,32,37,100,32,110,111,100,101,115,10,0,114,101,109,105,110,99,114,111,115,115,0,109,105,110,99,114,111,115,115,32,37,115,58,32,37,100,32,99,114,111,115,115,105,-110,103,115,44,32,37,46,50,102,32,115,101,99,115,46,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,37,115,32,37,115,32,114,97,110,107,32,37,100,32,105,32,61,32,37,100,32,97,110,32,61,32,48,10,0,71,68,95,114,97,110,107,40,103,41,91,114,93,46,110,32,60,61,32,71,68,95,114,97,110,107,40,103,41,91,114,93,46,97,110,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,-32,37,100,58,32,78,68,95,111,114,100,101,114,40,37,115,41,32,91,37,100,93,32,62,32,71,68,95,114,97,110,107,40,82,111,111,116,41,91,37,100,93,46,97,110,32,91,37,100,93,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,114,97,110,107,32,37,100,32,110,111,116,32,105,110,32,114,97,110,107,32,114,97,110,103,101,32,91,37,100,44,37,100,93,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,71,68,95,114,97,110,-107,40,103,41,91,37,100,93,46,118,32,43,32,78,68,95,111,114,100,101,114,40,37,115,41,32,91,37,100,93,32,62,32,71,68,95,114,97,110,107,40,103,41,91,37,100,93,46,97,118,32,43,32,71,68,95,114,97,110,107,40,82,111,111,116,41,91,37,100,93,46,97,110,32,91,37,100,93,10,0,115,117,114,112,114,105,115,101,10,0,78,68,95,111,114,100,101,114,40,118,41,32,60,32,78,68,95,111,114,100,101,114,40,119,41,0,116,114,97,110,115,112,111,115,101,95,115,116,101,112,0,118,0,110,101,105,103,104,98,111,114,0,40,114,118,32,61,-61,32,48,41,32,124,124,32,40,78,68,95,111,114,100,101,114,40,114,118,41,45,78,68,95,111,114,100,101,114,40,118,41,41,42,100,105,114,32,62,32,48,0,99,111,110,115,116,114,97,105,110,105,110,103,95,102,108,97,116,95,101,100,103,101,40,103,44,118,44,101,41,32,61,61,32,70,65,76,83,69,0,102,108,97,116,95,114,101,111,114,100,101,114,0,78,68,95,114,97,110,107,40,118,41,32,61,61,32,114,0,112,111,115,116,111,114,100,101,114,0,102,108,97,116,105,110,100,101,120,40,97,103,104,101,97,100,40,101,41,41,32,60,32,-77,45,62,110,114,111,119,115,0,102,108,97,116,95,115,101,97,114,99,104,0,102,108,97,116,105,110,100,101,120,40,97,103,116,97,105,108,40,101,41,41,32,60,32,77,45,62,110,99,111,108,115,0,109,105,110,99,114,111,115,115,58,32,112,97,115,115,32,37,100,32,105,116,101,114,32,37,100,32,116,114,121,105,110,103,32,37,100,32,99,117,114,95,99,114,111,115,115,32,37,100,32,98,101,115,116,95,99,114,111,115,115,32,37,100,10,0,98,97,108,97,110,99,101,0,111,117,116,0,111,114,100,101,114,105,110,103,32,39,37,115,39,-32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,46,10,0,111,114,100,101,114,105,110,103,32,39,37,115,39,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,32,102,111,114,32,110,111,100,101,32,39,37,115,39,46,10,0,95,110,101,119,95,114,97,110,107,0,69,100,103,101,32,108,101,110,103,116,104,32,37,102,32,108,97,114,103,101,114,32,116,104,97,110,32,109,97,120,105,109,117,109,32,37,117,32,97,108,108,111,119,101,100,46,10,67,104,101,99,107,32,102,111,114,32,111,118,101,114,119,105,100,101,-32,110,111,100,101,40,115,41,46,10,0,104,112,0,112,111,115,105,116,105,111,110,46,99,0,99,111,110,110,101,99,116,71,114,97,112,104,0,114,97,110,107,40,103,44,32,50,44,32,110,115,105,116,101,114,50,40,103,41,41,32,61,61,32,48,0,100,111,116,95,112,111,115,105,116,105,111,110,0,65,82,61,37,48,46,52,108,102,9,32,65,114,101,97,61,32,37,48,46,52,108,102,9,0,68,117,109,109,121,61,37,100,10,0,71,111,105,110,103,32,116,111,32,97,112,112,108,121,32,97,110,111,116,104,101,114,32,101,120,112,97,110,115,105,111,-110,46,10,0,110,101,120,116,35,105,116,101,114,61,37,100,10,0,110,115,108,105,109,105,116,0,99,111,110,116,97,105,110,95,110,111,100,101,115,32,99,108,117,115,116,32,37,115,32,114,97,110,107,32,37,100,32,109,105,115,115,105,110,103,32,110,111,100,101,10,0,110,115,108,105,109,105,116,49,0,110,101,119,114,97,110,107,0,108,101,118,101,108,32,97,115,115,105,103,110,109,101,110,116,32,99,111,110,115,116,114,97,105,110,116,115,0,108,101,118,101,108,32,103,114,97,112,104,32,114,101,99,0,99,111,109,112,97,-99,116,0,95,119,101,97,107,95,37,100,0,127,114,111,111,116,0,77,97,120,114,97,110,107,32,61,32,37,100,44,32,109,105,110,114,97,110,107,32,61,32,37,100,10,0,108,101,97,100,101,114,32,33,61,32,78,85,76,76,0,114,97,110,107,46,99,0,99,108,117,115,116,101,114,95,108,101,97,100,101,114,0,40,78,68,95,85,70,95,115,105,122,101,40,110,41,32,60,61,32,49,41,32,124,124,32,40,110,32,61,61,32,108,101,97,100,101,114,41,0,97,103,104,101,97,100,40,101,41,32,61,61,32,85,70,95,102,105,110,100,40,97,103,104,101,97,100,-40,101,41,41,0,109,105,110,109,97,120,95,101,100,103,101,115,0,97,103,116,97,105,108,40,101,41,32,61,61,32,85,70,95,102,105,110,100,40,97,103,116,97,105,108,40,101,41,41,0,114,97,110,107,0,115,97,109,101,0,109,105,110,0,115,111,117,114,99,101,0,109,97,120,0,115,105,110,107,0,127,116,111,112,0,127,98,111,116,0,114,97,110,107,105,110,103,58,32,102,97,105,108,117,114,101,32,116,111,32,99,114,101,97,116,101,32,115,116,114,111,110,103,32,99,111,110,115,116,114,97,105,110,116,32,101,100,103,101,32,98,101,-116,119,101,101,110,32,110,111,100,101,115,32,37,115,32,97,110,100,32,37,115,10,0,108,101,118,101,108,32,101,100,103,101,32,114,101,99,0,108,101,118,101,108,32,110,111,100,101,32,114,101,99,0,115,97,109,101,104,101,97,100,0,115,97,109,101,116,97,105,108,0,116,111,111,32,109,97,110,121,32,40,62,32,37,100,41,32,115,97,109,101,123,104,101,97,100,44,116,97,105,108,125,32,103,114,111,117,112,115,32,102,111,114,32,110,111,100,101,32,37,115,10,0,99,111,109,98,105,65,82,32,61,32,37,108,102,10,0,37,108,102,-44,37,100,0,116,104,101,32,97,115,112,101,99,116,32,97,116,116,114,105,98,117,116,101,32,104,97,115,32,98,101,101,110,32,100,105,115,97,98,108,101,100,32,100,117,101,32,116,111,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,102,108,97,119,115,32,45,32,97,116,116,114,105,98,117,116,101,32,105,103,110,111,114,101,100,46,10,0,69,68,95,116,111,95,118,105,114,116,40,101,41,32,61,61,32,78,85,76,76,0,99,108,97,115,115,50,46,99,0,109,101,114,103,101,95,99,104,97,105,110,0,69,68,95,116,111,95,-118,105,114,116,40,111,114,105,103,41,32,61,61,32,78,85,76,76,0,109,97,107,101,95,99,104,97,105,110,0,69,68,95,116,111,95,118,105,114,116,40,111,114,105,103,41,32,33,61,32,78,85,76,76,0,37,115,32,119,97,115,32,97,108,114,101,97,100,121,32,105,110,32,97,32,114,97,110,107,115,101,116,44,32,100,101,108,101,116,101,100,32,102,114,111,109,32,99,108,117,115,116,101,114,32,37,115,10,0,78,68,95,114,97,110,107,40,102,114,111,109,41,32,60,32,78,68,95,114,97,110,107,40,116,111,41,0,99,108,117,115,116,101,114,-46,99,0,109,97,112,95,112,97,116,104,0,108,104,101,97,100,0,108,116,97,105,108,0,37,115,32,45,62,32,37,115,58,32,115,112,108,105,110,101,32,115,105,122,101,32,62,32,49,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,37,115,32,45,62,32,37,115,58,32,104,101,97,100,32,110,111,116,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,101,114,32,37,115,10,0,37,115,32,45,62,32,37,115,58,32,116,97,105,108,32,105,115,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,-101,114,32,37,115,10,0,98,101,122,45,62,115,102,108,97,103,0,99,111,109,112,111,117,110,100,46,99,0,109,97,107,101,67,111,109,112,111,117,110,100,69,100,103,101,0,98,101,122,45,62,101,102,108,97,103,0,37,115,32,45,62,32,37,115,58,32,116,97,105,108,32,110,111,116,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,37,115,32,45,62,32,37,115,58,32,104,101,97,100,32,105,115,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,-40,37,46,53,103,44,37,46,53,103,41,0,115,101,103,109,101,110,116,32,91,37,115,44,37,115,93,32,100,111,101,115,32,110,111,116,32,105,110,116,101,114,115,101,99,116,32,98,111,120,32,108,108,61,37,115,44,117,114,61,37,115,10,0,98,111,120,73,110,116,101,114,115,101,99,116,102,0,99,108,117,115,116,101,114,32,110,97,109,101,100,32,37,115,32,110,111,116,32,102,111,117,110,100,10,0,99,111,110,99,101,110,116,114,97,116,101,61,116,114,117,101,32,109,97,121,32,110,111,116,32,119,111,114,107,32,99,111,114,114,-101,99,116,108,121,46,10,0,114,101,98,117,105,108,116,100,95,118,108,105,115,116,115,58,32,114,97,110,107,32,108,101,97,100,32,37,115,32,110,111,116,32,105,110,32,111,114,100,101,114,32,37,100,32,111,102,32,114,97,110,107,32,37,100,10,0,100,101,103,101,110,101,114,97,116,101,32,99,111,110,99,101,110,116,114,97,116,101,100,32,114,97,110,107,32,37,115,44,37,100,10,0,78,68,95,105,110,40,114,105,103,104,116,41,46,115,105,122,101,32,43,32,78,68,95,111,117,116,40,114,105,103,104,116,41,46,115,105,122,101,-32,61,61,32,48,0,99,111,110,99,46,99,0,109,101,114,103,101,118,105,114,116,117,97,108,0,0,100,111,116,58,32,79,117,116,32,111,102,32,109,101,109,111,114,121,10,0,71,68,95,109,105,110,114,97,110,107,40,103,41,32,61,61,32,48,0,102,108,97,116,46,99,0,97,98,111,109,105,110,97,116,105,111,110,0,78,68,95,111,117,116,40,118,41,46,115,105,122,101,32,61,61,32,50,0,115,101,116,98,111,117,110,100,115,0,117,115,101,114,111,117,116,58,32,99,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,-101,109,111,114,121,10,0,69,114,114,111,114,0,87,97,114,110,105,110,103,0,37,115,58,32,0,95,65,71,95,100,97,116,97,100,105,99,116,0,97,103,100,105,99,116,111,102,58,32,117,110,107,110,111,119,110,32,107,105,110,100,32,37,100,10,0,95,65,71,95,115,116,114,100,97,116,97,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,37,99,37,108,100,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,117,114,101,0,97,103,100,101,108,101,116,101,32,111,110,32,119,114,-111,110,103,32,103,114,97,112,104,0,97,103,100,101,108,101,116,101,32,111,110,32,98,97,100,32,111,98,106,101,99,116,0,97,103,114,97,112,104,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,97,103,114,111,111,116,32,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,95,65,71,95,112,101,110,100,105,110,103,0,97,103,114,101,99,111,114,100,95,99,97,108,108,98,97,99,107,32,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,112,101,110,100,32,100,105,99,116,111,102,32,97,32,98,97,100,32,111,-98,106,101,99,116,0,109,111,118,101,32,116,111,32,102,114,111,110,116,32,108,111,99,107,32,105,110,99,111,110,115,105,115,116,101,110,99,121,0,0,108,105,110,101,0,37,100,32,37,49,91,34,93,37,110,0,105,110,112,117,116,0,115,121,110,116,97,120,32,97,109,98,105,103,117,105,116,121,32,45,32,98,97,100,108,121,32,100,101,108,105,109,105,116,101,100,32,110,117,109,98,101,114,32,39,0,39,32,105,110,32,108,105,110,101,32,37,100,32,111,102,32,0,32,115,112,108,105,116,115,32,105,110,116,111,32,116,119,111,32,-116,111,107,101,110,115,10,0,37,115,0,92,92,0,102,97,116,97,108,32,102,108,101,120,32,115,99,97,110,110,101,114,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,45,45,101,110,100,32,111,102,32,98,117,102,102,101,114,32,109,105,115,115,101,100,0,102,97,116,97,108,32,101,114,114,111,114,32,45,32,115,99,97,110,110,101,114,32,105,110,112,117,116,32,98,117,102,102,101,114,32,111,118,101,114,102,108,111,119,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,101,109,111,114,121,32,105,-110,32,97,97,103,95,103,101,116,95,110,101,120,116,95,98,117,102,102,101,114,40,41,0,102,97,116,97,108,32,102,108,101,120,32,115,99,97,110,110,101,114,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,45,45,110,111,32,97,99,116,105,111,110,32,102,111,117,110,100,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,101,109,111,114,121,32,105,110,32,97,97,103,95,99,114,101,97,116,101,95,98,117,102,102,101,114,40,41,0,58,32,0,32,105,110,32,108,105,110,101,32,37,100,0,32,110,101,97,114,-32,39,0,32,115,99,97,110,110,105,110,103,32,97,32,113,117,111,116,101,100,32,115,116,114,105,110,103,32,40,109,105,115,115,105,110,103,32,101,110,100,113,117,111,116,101,63,32,108,111,110,103,101,114,32,116,104,97,110,32,37,100,63,41,0,10,83,116,114,105,110,103,32,115,116,97,114,116,105,110,103,58,34,0,32,115,99,97,110,110,105,110,103,32,97,32,72,84,77,76,32,115,116,114,105,110,103,32,40,109,105,115,115,105,110,103,32,39,62,39,63,32,98,97,100,32,110,101,115,116,105,110,103,63,32,108,111,110,103,101,-114,32,116,104,97,110,32,37,100,63,41,0,10,83,116,114,105,110,103,32,115,116,97,114,116,105,110,103,58,60,0,32,115,99,97,110,110,105,110,103,32,97,32,47,42,46,46,46,42,47,32,99,111,109,109,101,110,116,32,40,109,105,115,115,105,110,103,32,39,42,47,63,32,108,111,110,103,101,114,32,116,104,97,110,32,37,100,63,41,0,102,108,101,120,32,115,99,97,110,110,101,114,32,112,117,115,104,45,98,97,99,107,32,111,118,101,114,102,108,111,119,0,37,115,10,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,-101,109,111,114,121,32,105,110,32,97,97,103,101,110,115,117,114,101,95,98,117,102,102,101,114,95,115,116,97,99,107,40,41,0,108,105,110,101,108,101,110,103,116,104,0,59,10,0,32,91,107,101,121,61,0,93,0,32,91,0,44,10,0,61,0,95,37,108,100,95,83,85,83,80,69,67,84,0,100,105,0,115,116,114,105,99,116,32,0,123,10,0,93,59,10,0,34,34,0,115,116,114,105,99,116,0,97,103,97,112,112,108,121,58,32,117,110,107,110,111,119,110,32,111,98,106,101,99,116,32,116,121,112,101,32,37,100,10,0,18,238,238,20,9,3,238,254,238,-238,238,1,238,238,238,1,238,238,10,254,238,19,25,21,238,19,1,238,238,238,238,11,17,238,238,238,238,238,238,238,238,238,1,238,238,22,9,1,1,29,15,23,238,238,26,23,27,238,238,28,238,238,238,238,1,25,251,238,238,238,1,238,16,238,238,30,238,238,238,238,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,23,17,2,2,2,2,2,2,2,2,2,2,2,2,2,18,16,2,19,2,2,22,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,20,2,21,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,-14,2,15,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,11,3,4,5,15,7,3,12,13,6,12,13,14,12,13,26,21,22,0,1,0,3,7,14,6,15,8,12,13,18,19,42,16,17,9,16,47,48,17,50,23,19,13,20,18,46,18,20,65,19,50,19,44,64,42,66,25,44,66,70,34,12,13,14,35,15,9,16,17,10,16,17,201,-16,17,45,69,70,252,1,6,246,15,7,246,36,2,16,17,47,48,54,77,78,40,38,59,60,42,54,49,57,61,63,47,58,64,216,68,48,62,37,55,67,53,75,43,56,73,76,0,3,9,0,0,0,1,14,2,11,12,8,35,36,37,54,59,61,0,13,16,18,27,22,28,18,39,50,34,23,51,30,60,6,7,53,5,15,17,20,24,41,0,19,41,0,0,0,0,0,55,21,40,29,30,0,33,38,52,31,48,62,25,44,0,27,0,32,26,42,0,43,58,46,47,0,49,56,57,45,0,2,2,1,0,3,3,1,0,1,0,1,1,1,0,2,1,1,0,2,2,3,1,1,0,0,5,0,1,3,1,3,5,3,1,1,1,1,2,0,1,0,4,2,0,2,1,1,3,2,1,0,3,2,1,0,1,1,0,1,1,1,3,107,101,121,0,0,24,-25,25,25,26,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,36,36,38,39,37,37,40,40,41,41,41,42,42,43,43,43,44,44,45,45,46,47,47,48,49,49,50,51,52,54,53,55,55,55,56,56,56,57,57,58,58,238,238,255,238,238,238,238,238,238,31,32,238,0,239,238,238,238,12,238,238,238,8,13,238,238,238,248,238,238,238,238,238,238,245,238,255,3,8,4,33,5,11,18,19,39,20,21,22,41,50,65,23,24,25,26,44,51,52,66,71,72,27,74,28,29,46,30,79,31,32,97,116,116,114,105,98,117,116,101,32,109,97,99,114,111,115,32,110,111,116,32,105,109,-112,108,101,109,101,110,116,101,100,0,37,115,58,37,115,0,46,37,100,0,110,111,110,97,109,101,46,103,118,0,67,111,117,108,100,32,110,111,116,32,111,112,101,110,32,34,37,115,34,32,102,111,114,32,119,114,105,116,105,110,103,32,58,32,37,115,10,0,78,111,32,108,105,98,122,32,115,117,112,112,111,114,116,46,10,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,117,114,101,10,0,103,118,119,114,105,116,101,95,110,111,95,122,32,112,114,111,98,108,101,109,32,37,100,10,0,78,111,-32,108,105,98,122,32,115,117,112,112,111,114,116,10,0,103,118,112,114,105,110,116,102,58,32,37,115,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,46,57,57,0,103,114,97,112,104,118,105,122,0,50,46,52,48,46,49,0,50,48,49,54,49,50,50,53,46,48,51,48,52,0,114,101,110,100,101,114,0,100,101,118,105,99,101,0,108,111,97,100,105,109,97,103,101,0,100,121,110,97,109,105,99,32,108,111,97,100,105,110,103,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,0,85,115,-105,110,103,32,37,115,58,32,37,115,58,37,115,10,0,103,118,117,115,101,114,115,104,97,112,101,46,99,0,103,118,117,115,101,114,115,104,97,112,101,95,102,105,110,100,0,103,118,117,115,101,114,115,104,97,112,101,95,102,105,108,101,95,97,99,99,101,115,115,0,70,105,108,101,110,97,109,101,32,34,37,115,34,32,105,115,32,117,110,115,97,102,101,10,0,37,115,32,119,104,105,108,101,32,111,112,101,110,105,110,103,32,37,115,10,0,117,115,45,62,102,0,103,118,117,115,101,114,115,104,97,112,101,95,111,112,101,110,0,-60,115,118,103,0,87,69,66,80,0,119,101,98,112,0,40,108,105,98,41,0,34,37,115,34,32,119,97,115,32,110,111,116,32,102,111,117,110,100,32,97,115,32,97,32,102,105,108,101,32,111,114,32,97,115,32,97,32,115,104,97,112,101,32,108,105,98,114,97,114,121,32,109,101,109,98,101,114,10,0,1,208,209,210,211,212,213,214,215,216,217,0,37,37,66,111,117,110,100,105,110,103,66,111,120,58,0,40,91,97,45,122,93,91,97,45,122,65,45,90,93,42,41,61,34,40,91,94,34,93,42,41,34,0,99,97,110,110,111,116,32,99,111,109,112,105,108,-101,32,114,101,103,117,108,97,114,32,101,120,112,114,101,115,115,105,111,110,32,37,115,0,37,108,102,37,50,115,0,112,116,0,118,105,101,119,66,111,120,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,47,77,101,100,105,97,66,111,120,0,105,110,0,112,120,0,112,99,0,34,0,99,109,0,109,109,0,137,80,78,71,13,10,26,10,0,112,110,103,0,37,33,80,83,45,65,100,111,98,101,45,0,66,77,0,98,109,112,0,71,73,70,56,0,103,105,102,0,255,216,255,224,0,106,112,101,103,0,37,80,68,70,45,0,112,100,102,0,197,208,211,198,-0,101,112,115,0,60,63,120,109,108,0,120,109,108,0,82,73,70,70,0,114,105,102,102,0,0,0,1,0,0,105,99,111,0,37,100,32,37,100,32,37,100,32,37,100,0,76,97,121,111,117,116,32,119,97,115,32,110,111,116,32,100,111,110,101,10,0,102,97,105,108,117,114,101,32,109,97,108,108,111,99,39,105,110,103,32,102,111,114,32,114,101,115,117,108,116,32,115,116,114,105,110,103,0,111,114,105,103,0,111,112,0,99,99,111,109,112,115,46,99,0,109,97,112,67,108,117,115,116,0,99,99,103,114,97,112,104,105,110,102,111,0,99,99,103,110,-111,100,101,105,110,102,111,0,100,103,0,40,37,52,108,100,41,32,37,55,108,100,32,110,111,100,101,115,32,37,55,108,100,32,101,100,103,101,115,10,0,32,32,32,32,32,32,32,37,55,100,32,110,111,100,101,115,32,37,55,100,32,101,100,103,101,115,32,37,55,108,100,32,99,111,109,112,111,110,101,110,116,115,32,37,115,10,0,69,114,114,111,114,58,32,110,111,100,101,32,34,37,115,34,32,98,101,108,111,110,103,115,32,116,111,32,116,119,111,32,110,111,110,45,110,101,115,116,101,100,32,99,108,117,115,116,101,114,115,32,-34,37,115,34,32,97,110,100,32,34,37,115,34,10,0,103,99,58,32,79,117,116,32,111,102,32,109,101,109,111,114,121,10,0,95,99,99,95,0,98,98,91,37,115,93,32,37,46,53,103,32,37,46,53,103,32,37,46,53,103,32,37,46,53,103,10,0,115,116,101,112,32,115,105,122,101,32,61,32,37,100,10,0,37,115,32,110,111,46,32,99,101,108,108,115,32,37,100,32,87,32,37,100,32,72,32,37,100,10,0,32,32,37,100,32,37,100,32,99,101,108,108,10,0,99,99,32,40,37,100,32,99,101,108,108,115,41,32,97,116,32,40,37,100,44,37,100,41,10,0,112,111,-115,91,37,100,93,32,37,100,32,37,100,10,0,115,111,114,116,118,0,112,105,110,102,111,0,112,97,99,107,46,99,0,103,101,116,80,97,99,107,73,110,102,111,0,32,32,109,97,114,103,105,110,32,37,100,10,0,112,97,99,107,109,111,100,101,0,112,97,114,115,101,80,97,99,107,77,111,100,101,73,110,102,111,0,97,114,114,97,121,0,97,115,112,101,99,116,0,37,102,0,112,97,99,107,32,105,110,102,111,58,10,0,117,110,100,101,102,105,110,101,100,0,32,32,109,111,100,101,32,32,32,37,115,10,0,32,32,97,115,112,101,99,116,32,37,102,-10,0,32,32,115,105,122,101,32,32,32,37,100,10,0,32,32,102,108,97,103,115,32,32,37,100,10,0,112,97,99,107,0,114,111,119,32,109,97,106,111,114,0,99,111,108,117,109,110,32,109,97,106,111,114,0,97,114,114,97,121,32,112,97,99,107,105,110,103,58,32,37,115,32,37,100,32,114,111,119,115,32,37,100,32,99,111,108,117,109,110,115,10,0,99,99,32,40,37,100,32,99,101,108,108,115,41,32,97,116,32,40,37,100,44,37,100,41,32,40,37,100,44,37,100,41,10,0,108,105,98,112,97,99,107,58,32,100,105,115,99,32,61,32,37,102,32,40,-32,60,32,48,41,10,0,80,97,99,107,105,110,103,58,32,99,111,109,112,117,116,101,32,103,114,105,100,32,115,105,122,101,10,0,97,32,37,102,32,98,32,37,102,32,99,32,37,102,32,100,32,37,102,32,114,32,37,102,10,0,114,111,111,116,32,37,100,32,40,37,102,41,32,37,100,32,40,37,102,41,10,0,32,114,49,32,37,102,32,114,50,32,37,102,10,0,65,114,114,111,119,32,116,121,112,101,32,34,37,115,34,32,117,110,107,110,111,119,110,32,45,32,105,103,110,111,114,105,110,103,10,0,110,111,114,109,97,108,0,99,114,111,119,0,116,101,-101,0,100,111,116,0,105,110,118,0,118,101,101,0,112,101,110,0,109,112,116,121,0,99,117,114,118,101,0,105,99,117,114,118,101,0,108,0,104,97,108,102,0,105,110,118,101,109,112,116,121,0,95,98,97,99,107,103,114,111,117,110,100,0,95,100,114,97,119,95,0,67,111,117,108,100,32,110,111,116,32,112,97,114,115,101,32,34,95,98,97,99,107,103,114,111,117,110,100,34,32,97,116,116,114,105,98,117,116,101,32,105,110,32,103,114,97,112,104,32,37,115,10,0,32,32,34,37,115,34,10,0,110,111,32,109,101,109,111,114,121,32,102,-114,111,109,32,122,109,97,108,108,111,99,40,41,10,0,111,98,106,0,101,109,105,116,46,99,0,112,111,112,95,111,98,106,95,115,116,97,116,101,0,99,108,117,115,116,0,37,108,100,0,98,103,99,111,108,111,114,0,108,97,121,101,114,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,105,110,32,37,115,32,111,117,116,112,117,116,10,0,99,111,108,111,114,115,99,104,101,109,101,0,103,114,97,100,105,101,110,116,32,112,101,110,32,99,111,108,111,114,115,32,110,111,116,32,121,101,116,32,115,117,112,112,111,114,-116,101,100,46,10,0,73,109,97,103,101,115,32,117,110,115,117,112,112,111,114,116,101,100,32,105,110,32,34,98,97,99,107,103,114,111,117,110,100,34,32,97,116,116,114,105,98,117,116,101,10,0,105,110,32,99,108,117,115,116,101,114,32,37,115,10,0,77,111,114,101,32,116,104,97,110,32,50,32,99,111,108,111,114,115,32,115,112,101,99,105,102,105,101,100,32,102,111,114,32,97,32,103,114,97,100,105,101,110,116,32,45,32,105,103,110,111,114,105,110,103,32,114,101,109,97,105,110,105,110,103,10,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,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,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,110,101,115,116,105,110,103,32,110,111,116,32,97,108,108,111,119,101,100,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,117,110,109,97,116,99,104,101,100,32,39,41,39,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,116,114,117,110,99,97,116,105,110,103,-32,115,116,121,108,101,32,39,37,115,39,10,0,117,110,109,97,116,99,104,101,100,32,39,40,39,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,67,0,76,97,121,111,117,116,32,119,97,115,32,110,111,116,32,100,111,110,101,46,32,32,77,105,115,115,105,110,103,32,108,97,121,111,117,116,32,112,108,117,103,105,110,115,63,32,10,0,103,118,82,101,110,100,101,114,74,111,98,115,32,37,115,58,32,37,46,50,102,32,115,101,99,115,46,10,0,115,112,108,45,62,115,105,122,101,32,62,32,48,0,105,110,105,116,95,115,112,108,105,-110,101,115,95,98,98,0,112,97,100,0,66,76,0,112,97,103,101,100,105,114,0,108,97,121,101,114,115,0,108,97,121,101,114,115,101,112,0,58,9,32,0,108,97,121,101,114,108,105,115,116,115,101,112,0,44,0,84,104,101,32,99,104,97,114,97,99,116,101,114,32,39,37,99,39,32,97,112,112,101,97,114,115,32,105,110,32,98,111,116,104,32,116,104,101,32,108,97,121,101,114,115,101,112,32,97,110,100,32,108,97,121,101,114,108,105,115,116,115,101,112,32,97,116,116,114,105,98,117,116,101,115,32,45,32,108,97,121,101,114,108,105,-115,116,115,101,112,32,105,103,110,111,114,101,100,46,10,0,108,97,121,101,114,115,101,108,101,99,116,0,84,104,101,32,108,97,121,101,114,115,101,108,101,99,116,32,97,116,116,114,105,98,117,116,101,32,34,37,115,34,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,97,110,121,32,108,97,121,101,114,32,115,112,101,99,105,102,101,100,32,98,121,32,116,104,101,32,108,97,121,101,114,115,32,97,116,116,114,105,98,117,116,101,32,45,32,105,103,110,111,114,101,100,46,10,0,108,97,121,111,117,116,32,119,97,-115,32,110,111,116,32,100,111,110,101,10,0,114,101,110,100,101,114,101,114,32,102,111,114,32,37,115,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,10,0,111,117,116,112,117,116,111,114,100,101,114,0,111,100,101,115,102,105,114,115,116,0,100,103,101,115,102,105,114,115,116,0,118,105,101,119,112,111,114,116,0,37,108,102,44,37,108,102,44,37,108,102,44,39,37,91,94,39,93,39,0,37,108,102,44,37,108,102,44,37,108,102,44,37,91,94,44,93,37,115,0,37,108,102,44,37,108,102,44,37,108,102,44,37,108,102,44,-37,108,102,0,112,97,103,101,100,105,114,61,37,115,32,105,103,110,111,114,101,100,10,0,115,111,108,105,100,0,0,115,101,116,108,105,110,101,119,105,100,116,104,0,49,0,0,98,122,46,115,105,122,101,32,62,32,48,0,98,101,122,105,101,114,95,98,98,0,98,122,46,115,105,122,101,32,37,32,51,32,61,61,32,49,0,97,108,108,0,108,97,98,101,108,97,108,105,103,110,101,100,0,101,100,103,101,104,114,101,102,0,101,100,103,101,85,82,76,0,108,97,98,101,108,104,114,101,102,0,108,97,98,101,108,85,82,76,0,116,97,105,108,104,-114,101,102,0,116,97,105,108,85,82,76,0,104,101,97,100,104,114,101,102,0,104,101,97,100,85,82,76,0,116,97,114,103,101,116,0,101,100,103,101,116,97,114,103,101,116,0,108,97,98,101,108,116,97,114,103,101,116,0,116,97,105,108,116,97,114,103,101,116,0,104,101,97,100,116,97,114,103,101,116,0,101,100,103,101,116,111,111,108,116,105,112,0,108,97,98,101,108,116,111,111,108,116,105,112,0,116,97,105,108,116,111,111,108,116,105,112,0,104,101,97,100,116,111,111,108,116,105,112,0,32,45,62,32,0,32,45,45,32,0,105,-110,32,101,100,103,101,32,37,115,37,115,37,115,10,0,102,111,114,119,97,114,100,0,98,97,99,107,0,101,109,105,116,95,101,100,103,101,95,108,97,98,101,108,0,37,115,45,37,115,0,84,111,116,97,108,32,115,105,122,101,32,62,32,49,32,105,110,32,34,37,115,34,32,99,111,108,111,114,32,115,112,101,99,32,0,73,108,108,101,103,97,108,32,108,101,110,103,116,104,32,118,97,108,117,101,32,105,110,32,34,37,115,34,32,99,111,108,111,114,32,97,116,116,114,105,98,117,116,101,32,0,112,97,103,101,37,100,44,37,100,95,0,0,0,-108,97,98,101,108,0,37,108,102,0,102,111,110,116,112,97,116,104,0,68,79,84,70,79,78,84,80,65,84,72,0,71,68,70,79,78,84,80,65,84,72,0,99,104,97,114,115,101,116,0,117,116,102,45,56,0,108,97,116,105,110,45,49,0,108,97,116,105,110,49,0,108,49,0,73,83,79,45,56,56,53,57,45,49,0,73,83,79,95,56,56,53,57,45,49,0,73,83,79,56,56,53,57,45,49,0,73,83,79,45,73,82,45,49,48,48,0,98,105,103,45,53,0,98,105,103,53,0,117,116,102,56,0,85,110,115,117,112,112,111,114,116,101,100,32,99,104,97,114,115,101,116,32,34,37,115,-34,32,45,32,97,115,115,117,109,105,110,103,32,117,116,102,45,56,10,0,105,109,97,103,101,112,97,116,104,0,113,117,97,110,116,117,109,0,114,97,110,107,100,105,114,0,76,82,0,66,84,0,82,76,0,110,111,100,101,115,101,112,0,114,97,110,107,115,101,112,0,101,113,117,97,108,108,121,0,115,104,111,119,98,111,120,101,115,0,102,111,110,116,110,97,109,101,115,0,114,97,116,105,111,0,97,117,116,111,0,99,111,109,112,114,101,115,115,0,101,120,112,97,110,100,0,102,105,108,108,0,115,105,122,101,0,112,97,103,101,0,99,-101,110,116,101,114,0,114,111,116,97,116,101,0,111,114,105,101,110,116,97,116,105,111,110,0,108,97,110,100,115,99,97,112,101,0,99,108,117,115,116,101,114,114,97,110,107,0,99,111,110,99,101,110,116,114,97,116,101,0,100,112,105,0,114,101,115,111,108,117,116,105,111,110,0,111,114,100,101,114,105,110,103,0,103,114,97,100,105,101,110,116,97,110,103,108,101,0,102,105,108,108,99,111,108,111,114,0,115,116,121,108,101,0,102,111,110,116,115,105,122,101,0,102,111,110,116,110,97,109,101,0,102,111,110,116,99,-111,108,111,114,0,120,108,97,98,101,108,0,112,101,110,119,105,100,116,104,0,115,105,100,101,115,0,112,101,114,105,112,104,101,114,105,101,115,0,115,107,101,119,0,100,105,115,116,111,114,116,105,111,110,0,102,105,120,101,100,115,105,122,101,0,110,111,106,117,115,116,105,102,121,0,108,97,121,101,114,0,103,114,111,117,112,0,99,111,109,109,101,110,116,0,118,101,114,116,105,99,101,115,0,122,0,119,101,105,103,104,116,0,108,97,98,101,108,102,108,111,97,116,0,100,105,114,0,97,114,114,111,119,104,101,97,100,-0,97,114,114,111,119,116,97,105,108,0,104,101,97,100,108,97,98,101,108,0,116,97,105,108,108,97,98,101,108,0,108,97,98,101,108,102,111,110,116,115,105,122,101,0,108,97,98,101,108,102,111,110,116,110,97,109,101,0,108,97,98,101,108,102,111,110,116,99,111,108,111,114,0,108,97,98,101,108,100,105,115,116,97,110,99,101,0,108,97,98,101,108,97,110,103,108,101,0,109,105,110,108,101,110,0,100,101,99,111,114,97,116,101,0,97,114,114,111,119,115,105,122,101,0,99,111,110,115,116,114,97,105,110,116,0,116,97,105,-108,99,108,105,112,0,104,101,97,100,99,108,105,112,0,105,100,0,108,97,98,101,108,106,117,115,116,0,108,111,99,97,108,0,103,108,111,98,97,108,0,37,108,102,44,37,108,102,37,99,0,37,108,102,37,99,0,103,100,0,112,115,0,115,118,103,0,105,110,32,108,97,98,101,108,32,111,102,32,103,114,97,112,104,32,37,115,10,0,105,110,32,108,97,98,101,108,32,111,102,32,110,111,100,101,32,37,115,10,0,105,110,32,108,97,98,101,108,32,111,102,32,101,100,103,101,32,37,115,32,37,115,32,37,115,10,0,107,105,110,100,32,61,61,32,-76,84,95,78,79,78,69,0,108,97,98,101,108,115,46,99,0,109,97,107,101,95,108,97,98,101,108,0,38,35,49,51,59,0,38,35,49,48,59,0,38,113,117,111,116,59,0,38,35,49,54,48,59,0,38,97,109,112,59,0,38,35,51,57,59,0,38,35,52,53,59,0,38,103,116,59,0,38,108,116,59,0,92,76,0,92,71,0,92,69,0,92,72,0,92,84,0,37,115,32,37,100,32,110,111,100,101,115,32,37,100,32,101,100,103,101,115,32,109,97,120,105,116,101,114,61,37,100,32,98,97,108,97,110,99,101,61,37,100,10,0,110,101,116,119,111,114,107,32,115,105,109,112,108,101,-120,58,32,0,116,114,111,117,98,108,101,32,105,110,32,105,110,105,116,95,114,97,110,107,10,0,9,37,115,32,37,100,10,0,33,84,82,69,69,95,69,68,71,69,40,101,41,0,110,115,46,99,0,109,101,114,103,101,95,116,114,101,101,115,0,40,114,48,45,62,104,101,97,112,95,105,110,100,101,120,32,62,32,45,49,41,32,124,124,32,40,114,49,45,62,104,101,97,112,95,105,110,100,101,120,32,62],"i8",4,n.q+115698);-B([32,45,49,41,0,83,84,115,101,116,85,110,105,111,110,0,114,45,62,104,101,97,112,95,105,110,100,101,120,32,62,61,32,48,0,84,114,101,101,95,101,100,103,101,46,115,105,122,101,32,61,61,32,78,95,110,111,100,101,115,32,45,32,49,0,102,101,97,115,105,98,108,101,95,116,114,101,101,0,117,112,100,97,116,101,58,32,109,105,115,109,97,116,99,104,101,100,32,108,99,97,32,105,110,32,116,114,101,101,117,112,100,97,116,101,115,10,0,37,100,32,0,37,115,37,100,32,110,111,100,101,115,32,37,100,32,101,100,103,101,115,-32,37,100,32,105,116,101,114,32,37,46,50,102,32,115,101,99,10,0,115,101,97,114,99,104,115,105,122,101,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,109,105,115,115,105,110,103,32,116,114,101,101,32,101,100,103,101,10,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,101,109,112,116,121,32,111,117,116,101,100,103,101,32,108,105,115,116,10,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,101,109,112,116,121,32,105,110,101,100,103,101,32,108,105,115,116,10,0,103,114,97,112,-104,32,0,37,46,53,103,0,32,0,0,0,110,111,100,101,32,0,115,116,111,112,10,0,112,111,115,0,114,101,99,116,115,0,120,108,112,0,108,112,0,104,101,97,100,95,108,112,0,116,97,105,108,95,108,112,0,108,119,105,100,116,104,0,108,104,101,105,103,104,116,0,98,98,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,0,44,37,46,53,103,0,37,46,53,103,44,37,46,53,103,0,115,97,109,112,108,101,112,111,105,110,116,115,0,37,46,53,103,32,37,46,53,103,0,115,44,37,46,53,103,44,37,46,53,103,32,0,101,44,37,46,53,103,44,37,46,53,-103,32,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,44,37,46,53,103,0,37,46,50,102,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,44,37,46,53,103,32,0,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,116,97,105,108,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,-101,32,119,105,116,104,32,104,101,97,100,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,120,108,97,98,101,108,32,37,115,0,102,111,114,99,101,108,97,98,101,108,115,0,37,100,32,111,98,106,115,32,37,100,32,120,108,97,98,101,108,115,32,102,111,114,99,101,61,37,100,32,98,98,61,40,37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,10,0,111,98,106,101,99,116,115,10,0,32,91,37,100,93,32,40,-37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,37,112,32,34,37,115,34,10,0,120,108,97,98,101,108,115,10,0,32,91,37,100,93,32,37,112,32,115,101,116,32,37,100,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,37,115,10,0,37,100,32,111,117,116,32,111,102,32,37,100,32,108,97,98,101,108,115,32,112,111,115,105,116,105,111,110,101,100,46,10,0,37,100,32,111,117,116,32,111,102,32,37,100,32,101,120,116,101,114,105,111,114,32,108,-97,98,101,108,115,32,112,111,115,105,116,105,111,110,101,100,46,10,0,108,111,115,116,32,37,115,32,37,115,32,101,100,103,101,10,0,47,112,97,116,104,98,111,120,32,123,10,32,32,32,32,47,88,32,101,120,99,104,32,110,101,103,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,89,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,110,101,103,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,37,46,53,103,-32,115,117,98,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,0,47,112,97,116,104,98,111,120,32,123,10,32,32,32,32,47,89,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,-32,47,88,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,32,32,99,108,-111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,32,125,32,100,101,102,10,47,100,98,103,115,116,97,114,116,32,123,32,103,115,97,118,101,32,37,46,53,103,32,37,46,53,103,32,116,114,97,110,115,108,97,116,101,32,125,32,100,101,102,10,47,97,114,114,111,119,108,101,110,103,116,104,32,49,48,32,100,101,102,10,47,97,114,114,111,119,119,105,100,116,104,32,97,114,114,111,119,108,101,110,103,116,104,32,50,32,100,105,118,32,100,101,102,10,47,97,114,114,111,119,104,101,97,100,32,123,10,32,32,32,32,103,-115,97,118,101,10,32,32,32,32,114,111,116,97,116,101,10,32,32,32,32,99,117,114,114,101,110,116,112,111,105,110,116,10,32,32,32,32,110,101,119,112,97,116,104,10,32,32,32,32,109,111,118,101,116,111,10,32,32,32,32,97,114,114,111,119,108,101,110,103,116,104,32,97,114,114,111,119,119,105,100,116,104,32,50,32,100,105,118,32,114,108,105,110,101,116,111,10,32,32,32,32,48,32,97,114,114,111,119,119,105,100,116,104,32,110,101,103,32,114,108,105,110,101,116,111,10,32,32,32,32,99,108,111,115,101,112,97,116,104,-32,102,105,108,108,10,32,32,32,32,103,114,101,115,116,111,114,101,10,125,32,98,105,110,100,32,100,101,102,10,47,109,97,107,101,97,114,114,111,119,32,123,10,32,32,32,32,99,117,114,114,101,110,116,112,111,105,110,116,32,101,120,99,104,32,112,111,112,32,115,117,98,32,101,120,99,104,32,99,117,114,114,101,110,116,112,111,105,110,116,32,112,111,112,32,115,117,98,32,97,116,97,110,10,32,32,32,32,97,114,114,111,119,104,101,97,100,10,125,32,98,105,110,100,32,100,101,102,10,47,112,111,105,110,116,32,123,32,-32,32,32,110,101,119,112,97,116,104,32,32,32,32,50,32,48,32,51,54,48,32,97,114,99,32,102,105,108,108,125,32,100,101,102,47,109,97,107,101,118,101,99,32,123,10,32,32,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,-111,32,115,116,114,111,107,101,10,32,32,32,32,88,32,89,32,109,111,118,101,116,111,10,32,32,32,32,120,32,121,32,109,97,107,101,97,114,114,111,119,10,125,32,100,101,102,10,0,99,111,117,108,100,110,39,116,32,111,112,101,110,32,101,112,115,102,32,102,105,108,101,32,37,115,10,0,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,0,114,101,97,100,0,66,111,117,110,100,105,110,103,66,111,120,32,110,111,116,32,102,111,117,110,100,32,105,110,32,101,112,115,102,32,-102,105,108,101,32,37,115,10,0,115,104,97,112,101,102,105,108,101,32,110,111,116,32,115,101,116,32,111,114,32,110,111,116,32,102,111,117,110,100,32,102,111,114,32,101,112,115,102,32,110,111,100,101,32,37,115,10,0,99,97,110,39,116,32,102,105,110,100,32,108,105,98,114,97,114,121,32,102,105,108,101,32,37,115,10,0,99,97,110,39,116,32,111,112,101,110,32,108,105,98,114,97,114,121,32,102,105,108,101,32,37,115,10,0,69,79,70,0,66,69,71,73,78,0,69,78,68,0,84,82,65,73,76,69,82,0,47,117,115,101,114,95,115,104,-97,112,101,95,37,100,32,123,10,0,37,37,66,101,103,105,110,68,111,99,117,109,101,110,116,58,10,0,37,37,69,110,100,68,111,99,117,109,101,110,116,10,0,125,32,98,105,110,100,32,100,101,102,10,0,85,84,70,45,56,32,105,110,112,117,116,32,117,115,101,115,32,110,111,110,45,76,97,116,105,110,49,32,99,104,97,114,97,99,116,101,114,115,32,119,104,105,99,104,32,99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,100,32,98,121,32,116,104,105,115,32,80,111,115,116,83,99,114,105,112,116,32,100,114,105,118,101,-114,10,0,114,111,117,116,101,115,112,108,105,110,101,115,105,110,105,116,58,32,99,97,110,110,111,116,32,97,108,108,111,99,97,116,101,32,112,115,10,0,114,111,117,116,101,115,112,108,105,110,101,115,58,32,37,100,32,101,100,103,101,115,44,32,37,100,32,98,111,120,101,115,32,37,46,50,102,32,115,101,99,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,99,97,110,110,111,116,32,102,105,110,100,32,78,79,82,77,65,76,32,101,100,103,101,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,-32,98,111,120,32,48,32,104,97,115,32,76,76,32,99,111,111,114,100,32,62,32,85,82,32,99,111,111,114,100,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,98,111,120,32,37,100,32,104,97,115,32,76,76,32,99,111,111,114,100,32,62,32,85,82,32,99,111,111,114,100,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,98,111,120,101,115,32,37,100,32,97,110,100,32,37,100,32,100,111,110,39,116,32,116,111,117,99,104,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,115,116,97,114,116,32,112,111,114,-116,32,110,111,116,32,105,110,32,102,105,114,115,116,32,98,111,120,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,101,110,100,32,112,111,114,116,32,110,111,116,32,105,110,32,108,97,115,116,32,98,111,120,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,105,108,108,101,103,97,108,32,118,97,108,117,101,115,32,111,102,32,112,114,101,118,32,37,100,32,97,110,100,32,110,101,120,116,32,37,100,44,32,108,105,110,101,32,37,100,10,0,105,110,32,114,111,117,116,101,115,112,108,105,-110,101,115,44,32,101,100,103,101,32,105,115,32,97,32,108,111,111,112,32,97,116,32,37,115,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,80,115,104,111,114,116,101,115,116,112,97,116,104,32,102,97,105,108,101,100,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,80,114,111,117,116,101,115,112,108,105,110,101,32,102,97,105,108,101,100,10,0,85,110,97,98,108,101,32,116,111,32,114,101,99,108,97,105,109,32,98,111,120,32,115,112,97,99,101,32,105,110,32,115,112,-108,105,110,101,32,114,111,117,116,105,110,103,32,102,111,114,32,101,100,103,101,32,34,37,115,34,32,45,62,32,34,37,115,34,46,32,83,111,109,101,116,104,105,110,103,32,105,115,32,112,114,111,98,97,98,108,121,32,115,101,114,105,111,117,115,108,121,32,119,114,111,110,103,46,10,0,37,100,32,98,111,120,101,115,58,10,0,37,100,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,40,37,46,53,103,44,32,37,46,53,103,41,10,0,99,111,110,115,116,114,97,105,110,101,100,0,110,111,116,32,99,111,110,115,116,114,97,105,110,-101,100,0,115,116,97,114,116,32,112,111,114,116,58,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,116,97,110,103,101,110,116,32,97,110,103,108,101,58,32,37,46,53,103,44,32,37,115,10,0,101,110,100,32,112,111,114,116,58,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,116,97,110,103,101,110,116,32,97,110,103,108,101,58,32,37,46,53,103,44,32,37,115,10,0,99,97,110,110,111,116,32,114,101,45,97,108,108,111,99,97,116,101,32,112,115,10,0,115,105,100,101,115,32,61,61,32,52,0,115,104,97,112,101,115,46,99,0,114,-111,117,110,100,95,99,111,114,110,101,114,115,0,115,104,97,112,101,102,105,108,101,0,101,112,115,102,0,99,117,115,116,111,109,0,117,115,105,110,103,32,37,115,32,102,111,114,32,117,110,107,110,111,119,110,32,115,104,97,112,101,32,37,115,10,0,115,0,101,0,119,0,98,111,120,0,112,111,108,121,103,111,110,0,111,118,97,108,0,99,105,114,99,108,101,0,112,111,105,110,116,0,101,103,103,0,116,114,105,97,110,103,108,101,0,112,108,97,105,110,116,101,120,116,0,112,108,97,105,110,0,100,105,97,109,111,110,100,0,116,-114,97,112,101,122,105,117,109,0,112,97,114,97,108,108,101,108,111,103,114,97,109,0,104,111,117,115,101,0,112,101,110,116,97,103,111,110,0,104,101,120,97,103,111,110,0,115,101,112,116,97,103,111,110,0,111,99,116,97,103,111,110,0,110,111,116,101,0,116,97,98,0,102,111,108,100,101,114,0,98,111,120,51,100,0,99,111,109,112,111,110,101,110,116,0,99,121,108,105,110,100,101,114,0,114,101,99,116,0,114,101,99,116,97,110,103,108,101,0,115,113,117,97,114,101,0,100,111,117,98,108,101,99,105,114,99,108,101,0,100,-111,117,98,108,101,111,99,116,97,103,111,110,0,116,114,105,112,108,101,111,99,116,97,103,111,110,0,105,110,118,116,114,105,97,110,103,108,101,0,105,110,118,116,114,97,112,101,122,105,117,109,0,105,110,118,104,111,117,115,101,0,117,110,100,101,114,108,105,110,101,0,77,100,105,97,109,111,110,100,0,77,115,113,117,97,114,101,0,77,99,105,114,99,108,101,0,112,114,111,109,111,116,101,114,0,99,100,115,0,116,101,114,109,105,110,97,116,111,114,0,117,116,114,0,105,110,115,117,108,97,116,111,114,0,114,105,98,-111,115,105,116,101,0,114,110,97,115,116,97,98,0,112,114,111,116,101,97,115,101,115,105,116,101,0,112,114,111,116,101,105,110,115,116,97,98,0,112,114,105,109,101,114,115,105,116,101,0,114,101,115,116,114,105,99,116,105,111,110,115,105,116,101,0,102,105,118,101,112,111,118,101,114,104,97,110,103,0,116,104,114,101,101,112,111,118,101,114,104,97,110,103,0,110,111,118,101,114,104,97,110,103,0,97,115,115,101,109,98,108,121,0,115,105,103,110,97,116,117,114,101,0,114,112,114,111,109,111,116,101,114,0,108,-97,114,114,111,119,0,114,97,114,114,111,119,0,108,112,114,111,109,111,116,101,114,0,114,101,99,111,114,100,0,77,114,101,99,111,114,100,0,115,116,97,114,0,35,56,48,56,48,56,48,0,35,102,99,102,99,102,99,0,35,51,48,51,48,51,48,0,35,101,56,101,56,101,56,0,35,101,48,101,48,101,48,0,35,102,48,102,48,102,48,0,35,49,48,49,48,49,48,0,35,102,56,102,56,102,56,0,105,110,32,110,111,100,101,32,37,115,10,0,114,111,117,110,100,101,100,0,100,105,97,103,111,110,97,108,115,0,114,97,100,105,97,108,0,115,116,114,105,-112,101,100,0,119,101,100,103,101,100,0,95,0,110,111,100,101,32,37,115,44,32,112,111,114,116,32,37,115,44,32,117,110,114,101,99,111,103,110,105,122,101,100,32,99,111,109,112,97,115,115,32,112,111,105,110,116,32,39,37,115,39,32,45,32,105,103,110,111,114,101,100,10,0,110,111,100,101,32,37,115,44,32,112,111,114,116,32,37,115,32,117,110,114,101,99,111,103,110,105,122,101,100,10,0,37,46,53,103,32,37,46,53,103,32,116,114,97,110,115,108,97,116,101,32,110,101,119,112,97,116,104,32,117,115,101,114,95,115,-104,97,112,101,95,37,100,10,0,105,110,118,105,115,0,0,102,105,108,108,101,100,0,0,98,97,100,32,108,97,98,101,108,32,102,111,114,109,97,116,32,37,115,10,0,92,78,0,109,97,114,103,105,110,0,37,108,102,44,37,108,102,0,114,101,103,117,108,97,114,0,60,110,105,108,62,0,78,111,32,111,114,32,105,109,112,114,111,112,101,114,32,115,104,97,112,101,102,105,108,101,61,34,37,115,34,32,102,111,114,32,110,111,100,101,32,34,37,115,34,10,0,78,111,32,111,114,32,105,109,112,114,111,112,101,114,32,105,109,97,103,101,61,-34,37,115,34,32,102,111,114,32,110,111,100,101,32,34,37,115,34,10,0,108,97,98,101,108,108,111,99,0,115,104,97,112,101,0,110,111,100,101,32,39,37,115,39,44,32,103,114,97,112,104,32,39,37,115,39,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,108,97,98,101,108,10,0,115,112,108,105,110,101,115,46,99,0,98,101,103,105,110,112,97,116,104,0,80,45,62,101,110,100,46,116,104,101,116,97,32,60,32,50,32,42,32,77,95,80,73,0,101,110,100,112,97,116,104,0,109,97,107,101,83,101,108,102,69,-100,103,101,0,112,111,108,121,108,105,110,101,77,105,100,112,111,105,110,116,0,103,101,116,115,112,108,105,110,101,112,111,105,110,116,115,58,32,110,111,32,115,112,108,105,110,101,32,112,111,105,110,116,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,101,100,103,101,32,40,37,115,44,37,115,41,10,0,115,112,97,110,45,62,102,111,110,116,0,116,101,120,116,115,112,97,110,46,99,0,116,101,120,116,115,112,97,110,95,115,105,122,101,0,102,111,110,116,45,62,110,97,109,101,0,99,111,117,114,0,97,114,105,-97,108,0,104,101,108,118,101,116,105,99,97,0,91,105,110,116,101,114,110,97,108,32,116,105,109,101,115,93,0,91,105,110,116,101,114,110,97,108,32,99,111,117,114,105,101,114,93,0,91,105,110,116,101,114,110,97,108,32,97,114,105,97,108,93,0,102,111,110,116,110,97,109,101,58,32,34,37,115,34,32,114,101,115,111,108,118,101,100,32,116,111,58,32,37,115,10,0,102,111,110,116,110,97,109,101,58,32,117,110,97,98,108,101,32,116,111,32,114,101,115,111,108,118,101,32,34,37,115,34,10,0,65,118,97,110,116,71,97,114,100,-101,45,66,111,111,107,0,85,82,87,32,71,111,116,104,105,99,32,76,0,98,111,111,107,0,115,97,110,115,45,83,101,114,105,102,0,65,118,97,110,116,71,97,114,100,101,45,66,111,111,107,79,98,108,105,113,117,101,0,111,98,108,105,113,117,101,0,105,116,97,108,105,99,0,65,118,97,110,116,71,97,114,100,101,45,68,101,109,105,0,100,101,109,105,0,65,118,97,110,116,71,97,114,100,101,45,68,101,109,105,79,98,108,105,113,117,101,0,66,111,111,107,109,97,110,45,68,101,109,105,0,85,82,87,32,66,111,111,107,109,97,110,32,76,-0,115,101,114,105,102,0,66,111,111,107,109,97,110,45,68,101,109,105,73,116,97,108,105,99,0,66,111,111,107,109,97,110,45,76,105,103,104,116,0,108,105,103,104,116,0,66,111,111,107,109,97,110,45,76,105,103,104,116,73,116,97,108,105,99,0,67,111,117,114,105,101,114,0,109,111,110,111,115,112,97,99,101,0,67,111,117,114,105,101,114,45,66,111,108,100,0,67,111,117,114,105,101,114,45,66,111,108,100,79,98,108,105,113,117,101,0,67,111,117,114,105,101,114,45,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,-99,97,0,72,101,108,118,101,116,105,99,97,45,66,111,108,100,0,72,101,108,118,101,116,105,99,97,45,66,111,108,100,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,0,99,111,110,100,101,110,115,101,100,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,66,111,108,100,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,66,111,108,100,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,79,98,108,105,113,117,-101,0,72,101,108,118,101,116,105,99,97,45,79,98,108,105,113,117,101,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,66,111,108,100,0,67,101,110,116,117,114,121,32,83,99,104,111,111,108,98,111,111,107,32,76,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,66,111,108,100,73,116,97,108,105,99,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,73,116,97,108,105,99,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,82,111,109,97,110,0,114,111,109,-97,110,0,80,97,108,97,116,105,110,111,45,66,111,108,100,0,80,97,108,97,116,105,110,111,32,76,105,110,111,116,121,112,101,0,80,97,108,97,116,105,110,111,45,66,111,108,100,73,116,97,108,105,99,0,80,97,108,97,116,105,110,111,45,73,116,97,108,105,99,0,80,97,108,97,116,105,110,111,45,82,111,109,97,110,0,83,121,109,98,111,108,0,102,97,110,116,97,115,121,0,84,105,109,101,115,45,66,111,108,100,0,84,105,109,101,115,0,84,105,109,101,115,45,66,111,108,100,73,116,97,108,105,99,0,84,105,109,101,115,45,73,116,-97,108,105,99,0,90,97,112,102,67,104,97,110,99,101,114,121,45,77,101,100,105,117,109,73,116,97,108,105,99,0,85,82,87,32,67,104,97,110,99,101,114,121,32,76,0,109,101,100,105,117,109,0,90,97,112,102,68,105,110,103,98,97,116,115,0,68,105,110,103,98,97,116,115,0,117,116,105,108,115,46,99,0,117,32,61,61,32,85,70,95,102,105,110,100,40,117,41,0,85,70,95,115,101,116,110,97,109,101,0,1,102,105,108,101,32,108,111,97,100,105,110,103,32,105,115,32,100,105,115,97,98,108,101,100,32,98,101,99,97,117,115,101,32,-116,104,101,32,101,110,118,105,114,111,110,109,101,110,116,32,99,111,110,116,97,105,110,115,32,83,69,82,86,69,82,95,78,65,77,69,61,34,37,115,34,10,97,110,100,32,116,104,101,32,71,86,95,70,73,76,69,95,80,65,84,72,32,118,97,114,105,97,98,108,101,32,105,115,32,117,110,115,101,116,32,111,114,32,101,109,112,116,121,46,10,0,80,97,116,104,32,112,114,111,118,105,100,101,100,32,116,111,32,102,105,108,101,58,32,34,37,115,34,32,104,97,115,32,98,101,101,110,32,105,103,110,111,114,101,100,32,98,101,99,97,117,-115,101,32,102,105,108,101,115,32,97,114,101,32,111,110,108,121,32,112,101,114,109,105,116,116,101,100,32,116,111,32,98,101,32,108,111,97,100,101,100,32,102,114,111,109,32,116,104,101,32,100,105,114,101,99,116,111,114,105,101,115,32,105,110,32,34,37,115,34,32,119,104,101,110,32,114,117,110,110,105,110,103,32,105,110,32,97,110,32,104,116,116,112,32,115,101,114,118,101,114,46,10,0,110,111,0,116,114,117,101,0,121,101,115,0,101,108,108,105,112,115,101,0,84,105,109,101,115,45,82,111,109,97,110,0,99,108,-117,115,116,101,114,0,95,95,99,108,117,115,116,101,114,110,111,100,101,115,0,0,85,84,70,56,32,99,111,100,101,115,32,62,32,52,32,98,121,116,101,115,32,97,114,101,32,110,111,116,32,99,117,114,114,101,110,116,108,121,32,115,117,112,112,111,114,116,101,100,32,40,103,114,97,112,104,32,37,115,41,32,45,32,116,114,101,97,116,101,100,32,97,115,32,76,97,116,105,110,45,49,46,32,80,101,114,104,97,112,115,32,34,45,71,99,104,97,114,115,101,116,61,108,97,116,105,110,49,34,32,105,115,32,110,101,101,100,101,100,63,-10,0,73,110,118,97,108,105,100,32,37,100,45,98,121,116,101,32,85,84,70,56,32,102,111,117,110,100,32,105,110,32,105,110,112,117,116,32,111,102,32,103,114,97,112,104,32,37,115,32,45,32,116,114,101,97,116,101,100,32,97,115,32,76,97,116,105,110,45,49,46,32,80,101,114,104,97,112,115,32,34,45,71,99,104,97,114,115,101,116,61,108,97,116,105,110,49,34,32,105,115,32,110,101,101,100,101,100,63,10,0,98,122,46,115,105,122,101,0,111,118,101,114,108,97,112,95,98,101,122,105,101,114,0,117,114,118,101,100,0,111,109,-112,111,117,110,100,0,97,108,115,101,0,105,110,101,0,111,110,101,0,111,0,114,116,104,111,0,111,108,121,108,105,110,101,0,112,108,105,110,101,0,114,117,101,0,101,115,0,85,110,107,110,111,119,110,32,34,115,112,108,105,110,101,115,34,32,118,97,108,117,101,58,32,34,37,115,34,32,45,32,105,103,110,111,114,101,100,10,0,115,112,108,105,110,101,115,0,65,69,108,105,103,0,65,97,99,117,116,101,0,65,99,105,114,99,0,65,103,114,97,118,101,0,65,108,112,104,97,0,65,114,105,110,103,0,65,116,105,108,100,101,0,65,117,-109,108,0,66,101,116,97,0,67,99,101,100,105,108,0,67,104,105,0,68,97,103,103,101,114,0,68,101,108,116,97,0,69,84,72,0,69,97,99,117,116,101,0,69,99,105,114,99,0,69,103,114,97,118,101,0,69,112,115,105,108,111,110,0,69,116,97,0,69,117,109,108,0,71,97,109,109,97,0,73,97,99,117,116,101,0,73,99,105,114,99,0,73,103,114,97,118,101,0,73,111,116,97,0,73,117,109,108,0,75,97,112,112,97,0,76,97,109,98,100,97,0,77,117,0,78,116,105,108,100,101,0,78,117,0,79,69,108,105,103,0,79,97,99,117,116,101,0,79,99,105,114,-99,0,79,103,114,97,118,101,0,79,109,101,103,97,0,79,109,105,99,114,111,110,0,79,115,108,97,115,104,0,79,116,105,108,100,101,0,79,117,109,108,0,80,104,105,0,80,105,0,80,114,105,109,101,0,80,115,105,0,82,104,111,0,83,99,97,114,111,110,0,83,105,103,109,97,0,84,72,79,82,78,0,84,97,117,0,84,104,101,116,97,0,85,97,99,117,116,101,0,85,99,105,114,99,0,85,103,114,97,118,101,0,85,112,115,105,108,111,110,0,85,117,109,108,0,88,105,0,89,97,99,117,116,101,0,89,117,109,108,0,90,101,116,97,0,97,97,99,117,116,101,-0,97,99,105,114,99,0,97,99,117,116,101,0,97,101,108,105,103,0,97,103,114,97,118,101,0,97,108,101,102,115,121,109,0,97,108,112,104,97,0,97,109,112,0,97,110,100,0,97,110,103,0,97,114,105,110,103,0,97,115,121,109,112,0,97,116,105,108,100,101,0,97,117,109,108,0,98,100,113,117,111,0,98,101,116,97,0,98,114,118,98,97,114,0,98,117,108,108,0,99,97,112,0,99,99,101,100,105,108,0,99,101,100,105,108,0,99,101,110,116,0,99,104,105,0,99,105,114,99,0,99,108,117,98,115,0,99,111,110,103,0,99,111,112,121,0,99,114,97,-114,114,0,99,117,112,0,99,117,114,114,101,110,0,100,65,114,114,0,100,97,103,103,101,114,0,100,97,114,114,0,100,101,103,0,100,101,108,116,97,0,100,105,97,109,115,0,100,105,118,105,100,101,0,101,97,99,117,116,101,0,101,99,105,114,99,0,101,103,114,97,118,101,0,101,109,112,116,121,0,101,109,115,112,0,101,110,115,112,0,101,112,115,105,108,111,110,0,101,113,117,105,118,0,101,116,97,0,101,116,104,0,101,117,109,108,0,101,117,114,111,0,101,120,105,115,116,0,102,110,111,102,0,102,111,114,97,108,108,0,102,114,-97,99,49,50,0,102,114,97,99,49,52,0,102,114,97,99,51,52,0,102,114,97,115,108,0,103,97,109,109,97,0,103,101,0,103,116,0,104,65,114,114,0,104,97,114,114,0,104,101,97,114,116,115,0,104,101,108,108,105,112,0,105,97,99,117,116,101,0,105,99,105,114,99,0,105,101,120,99,108,0,105,103,114,97,118,101,0,105,109,97,103,101,0,105,110,102,105,110,0,105,110,116,0,105,111,116,97,0,105,113,117,101,115,116,0,105,115,105,110,0,105,117,109,108,0,107,97,112,112,97,0,108,65,114,114,0,108,97,109,98,100,97,0,108,97,110,-103,0,108,97,113,117,111,0,108,97,114,114,0,108,99,101,105,108,0,108,100,113,117,111,0,108,101,0,108,102,108,111,111,114,0,108,111,119,97,115,116,0,108,111,122,0,108,114,109,0,108,115,97,113,117,111,0,108,115,113,117,111,0,108,116,0,109,97,99,114,0,109,100,97,115,104,0,109,105,99,114,111,0,109,105,100,100,111,116,0,109,117,0,110,97,98,108,97,0,110,98,115,112,0,110,100,97,115,104,0,110,101,0,110,105,0,110,111,116,0,110,111,116,105,110,0,110,115,117,98,0,110,116,105,108,100,101,0,110,117,0,111,97,99,-117,116,101,0,111,99,105,114,99,0,111,101,108,105,103,0,111,103,114,97,118,101,0,111,108,105,110,101,0,111,109,101,103,97,0,111,109,105,99,114,111,110,0,111,112,108,117,115,0,111,114,0,111,114,100,102,0,111,114,100,109,0,111,115,108,97,115,104,0,111,116,105,108,100,101,0,111,116,105,109,101,115,0,111,117,109,108,0,112,97,114,97,0,112,97,114,116,0,112,101,114,109,105,108,0,112,101,114,112,0,112,104,105,0,112,105,0,112,105,118,0,112,108,117,115,109,110,0,112,111,117,110,100,0,112,114,105,109,101,0,-112,114,111,100,0,112,114,111,112,0,112,115,105,0,113,117,111,116,0,114,65,114,114,0,114,97,100,105,99,0,114,97,110,103,0,114,97,113,117,111,0,114,97,114,114,0,114,99,101,105,108,0,114,100,113,117,111,0,114,101,97,108,0,114,101,103,0,114,102,108,111,111,114,0,114,104,111,0,114,108,109,0,114,115,97,113,117,111,0,114,115,113,117,111,0,115,98,113,117,111,0,115,99,97,114,111,110,0,115,100,111,116,0,115,101,99,116,0,115,104,121,0,115,105,103,109,97,0,115,105,103,109,97,102,0,115,105,109,0,115,112,97,100,-101,115,0,115,117,98,0,115,117,98,101,0,115,117,109,0,115,117,112,0,115,117,112,49,0,115,117,112,50,0,115,117,112,51,0,115,117,112,101,0,115,122,108,105,103,0,116,97,117,0,116,104,101,114,101,52,0,116,104,101,116,97,0,116,104,101,116,97,115,121,109,0,116,104,105,110,115,112,0,116,104,111,114,110,0,116,105,108,100,101,0,116,105,109,101,115,0,116,114,97,100,101,0,117,65,114,114,0,117,97,99,117,116,101,0,117,97,114,114,0,117,99,105,114,99,0,117,103,114,97,118,101,0,117,109,108,0,117,112,115,105,104,-0,117,112,115,105,108,111,110,0,117,117,109,108,0,119,101,105,101,114,112,0,120,105,0,121,97,99,117,116,101,0,121,101,110,0,121,117,109,108,0,122,101,116,97,0,122,119,106,0,122,119,110,106,0,109,97,112,78,0,84,119,111,32,99,108,117,115,116,101,114,115,32,110,97,109,101,100,32,37,115,32,45,32,116,104,101,32,115,101,99,111,110,100,32,119,105,108,108,32,98,101,32,105,103,110,111,114,101,100,10,0,37,115,37,115,37,115,0,47,0,58,0,111,100,98,0,79,114,116,104,111,103,111,110,97,108,32,101,100,103,101,115,-32,100,111,32,110,111,116,32,99,117,114,114,101,110,116,108,121,32,104,97,110,100,108,101,32,101,100,103,101,32,108,97,98,101,108,115,46,32,84,114,121,32,117,115,105,110,103,32,120,108,97,98,101,108,115,46,10,0,37,37,33,80,83,45,65,100,111,98,101,45,50,46,48,10,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,40,97,116,101,110,100,41,10,47,112,111,105,110,116,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,-97,116,104,10,32,32,88,32,89,32,51,32,48,32,51,54,48,32,97,114,99,32,102,105,108,108,10,125,32,100,101,102,10,47,99,101,108,108,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,-10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,47,110,111,100,101,32,123,10,32,47,117,32,101,120,99,104,32,100,101,102,10,32,47,114,32,101,120,99,104,32,100,101,102,10,32,47,100,32,101,120,99,104,32,100,101,102,10,32,47,108,32,101,120,99,104,32,100,101,102,10,32,110,101,119,112,97,116,104,32,108,32,100,32,109,111,118,101,116,111,10,32,114,32,100,32,108,105,110,101,116,111,32,114,32,117,32,108,105,110,101,-116,111,32,108,32,117,32,108,105,110,101,116,111,10,32,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,125,32,100,101,102,10,10,0,37,100,32,37,100,32,116,114,97,110,115,108,97,116,101,10,0,110,101,119,112,97,116,104,32,37,100,32,37,100,32,109,111,118,101,116,111,10,0,37,100,32,37,100,32,108,105,110,101,116,111,10,0,37,100,32,37,100,32,108,105,110,101,116,111,32,115,116,114,111,107,101,10,0,48,46,56,32,48,46,56,32,48,46,56,32,115,101,116,114,103,98,99,111,108,111,114,10,0,115,104,111,119,112,-97,103,101,10,37,37,37,37,84,114,97,105,108,101,114,10,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,111,114,116,104,111,32,37,115,32,37,115,10,0,99,104,97,110,110,101,108,32,37,100,32,40,37,102,44,37,102,41,10,0,32,45,62,10,0,32,32,32,32,32,0,66,95,82,73,71,72,84,0,66,95,68,79,87,78,0,66,95,76,69,70,84,0,66,95,85,80,0,66,95,78,79,68,69,0,40,40,37,102,44,37,102,41,44,40,37,102,44,37,102,41,41,32,37,115,32,37,115,0,115,101,103,0,111,114,116,104,-111,46,99,0,110,101,120,116,95,115,101,103,0,100,101,99,105,100,101,95,112,111,105,110,116,0,105,110,99,111,109,112,97,114,97,98,108,101,32,115,101,103,109,101,110,116,115,32,33,33,32,45,45,32,65,98,111,114,116,105,110,103,10,0,115,49,45,62,99,111,109,109,95,99,111,111,114,100,61,61,115,50,45,62,99,111,109,109,95,99,111,111,114,100,0,105,115,95,112,97,114,97,108,108,101,108,0,99,104,97,110,105,0,99,104,97,110,83,101,97,114,99,104,0,99,112,0,103,114,97,112,104,32,71,32,123,10,0,32,110,111,100,101,-91,115,104,97,112,101,61,112,111,105,110,116,93,10,0,32,32,37,100,32,91,112,111,115,61,34,37,100,44,37,100,34,93,10,0,32,32,37,100,32,45,45,32,37,100,91,108,101,110,61,34,37,102,34,93,10,0,125,10,0,115,111,108,105,100,0,105,110,118,105,115,105,98,108,101,0,98,111,108,100,0,115,101,116,108,105,110,101,119,105,100,116,104,0,102,105,108,108,101,100,0,117,110,102,105,108,108,101,100,0,116,97,112,101,114,101,100,0,103,118,114,101,110,100,101,114,95,115,101,116,95,115,116,121,108,101,58,32,117,110,115,-117,112,112,111,114,116,101,100,32,115,116,121,108,101,32,37,115,32,45,32,105,103,110,111,114,105,110,103,10,0,103,118,114,101,110,100,101,114,46,99,0,103,118,114,101,110,100,101,114,95,117,115,101,114,115,104,97,112,101,0,110,97,109,101,0,110,97,109,101,91,48,93,0,119,105,100,116,104,0,104,101,105,103,104,116,0,98,111,116,104,0,99,111,108,111,114,32,37,115,0,37,115,32,105,115,32,110,111,116,32,97,32,107,110,111,119,110,32,99,111,108,111,114,46,10,0,101,114,114,111,114,32,105,110,32,99,111,108,120,-108,97,116,101,40,41,10,0,108,97,121,111,117,116,0,76,97,121,111,117,116,32,116,121,112,101,58,32,34,37,115,34,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,46,32,85,115,101,32,111,110,101,32,111,102,58,37,115,10,0,106,111,98,0,103,118,108,111,97,100,105,109,97,103,101,46,99,0,103,118,108,111,97,100,105,109,97,103,101,0,117,115,0,117,115,45,62,110,97,109,101,0,117,115,45,62,110,97,109,101,91,48,93,0,78,111,32,108,111,97,100,105,109,97,103,101,32,112,108,117,103,105,110,32,102,111,114,32,-34,37,115,34,10,0,81,0,76,101,102,116,0,75,80,95,76,101,102,116,0,82,105,103,104,116,0,75,80,95,82,105,103,104,116,0,85,112,0,75,80,95,85,112,0,68,111,119,110,0,75,80,95,68,111,119,110,0,112,108,117,115,0,75,80,95,65,100,100,0,109,105,110,117,115,0,75,80,95,83,117,98,116,114,97,99,116,0,70,0,116,111,111,108,116,105,112,0,110,111,100,101,0,104,114,101,102,0,85,82,76,0,101,100,103,101,0,116,97,105,108,112,111,114,116,0,104,101,97,100,112,111,114,116,0,107,101,121,0,100,105,103,114,97,112,104,0,103,-114,97,112,104,0,115,117,98,103,114,97,112,104,0,95,76,84,88,95,108,105,98,114,97,114,121,0,116,101,120,116,108,97,121,111,117,116,0,111,117,116,32,111,102,32,109,101,109,111,114,121,10,0,114,101,99,116,46,98,111,117,110,100,97,114,121,91,50,93,32,60,32,73,78,84,95,77,65,88,0,120,108,97,98,101,108,115,46,99,0,111,98,106,112,108,112,109,107,115,0,114,101,99,116,46,98,111,117,110,100,97,114,121,91,51,93,32,60,32,73,78,84,95,77,65,88,0,118,112,0,120,108,104,100,120,117,110,108,111,97,100,0,115,105,122,-101,61,61,102,114,101,101,100,0,111,98,106,112,45,62,108,98,108,0,120,108,105,110,116,101,114,115,101,99,116,105,111,110,115,0,111,98,106,112,49,45,62,115,122,46,120,32,61,61,32,48,32,38,38,32,111,98,106,112,49,45,62,115,122,46,121,32,61,61,32,48,0,108,98,108,101,110,99,108,111,115,105,110,103,0,108,112,32,33,61,32,99,108,112,0,103,101,116,105,110,116,114,115,120,105,0,35,37,50,120,37,50,120,37,50,120,37,50,120,0,37,108,102,37,108,102,37,108,102,0,108,97,99,107,0,104,105,116,101,0,105,103,104,116,-103,114,101,121,0,88,49,49,47,0,47,97,99,99,101,110,116,51,47,49,0,47,97,99,99,101,110,116,51,47,50,0,47,97,99,99,101,110,116,51,47,51,0,47,97,99,99,101,110,116,52,47,49,0,47,97,99,99,101,110,116,52,47,50,0,47,97,99,99,101,110,116,52,47,51,0,47,97,99,99,101,110,116,52,47,52,0,47,97,99,99,101,110,116,53,47,49,0,47,97,99,99,101,110,116,53,47,50,0,47,97,99,99,101,110,116,53,47,51,0,47,97,99,99,101,110,116,53,47,52,0,47,97,99,99,101,110,116,53,47,53,0,47,97,99,99,101,110,116,54,47,49,0,47,97,99,99,101,-110,116,54,47,50,0,47,97,99,99,101,110,116,54,47,51,0,47,97,99,99,101,110,116,54,47,52,0,47,97,99,99,101,110,116,54,47,53,0,47,97,99,99,101,110,116,54,47,54,0,47,97,99,99,101,110,116,55,47,49,0,47,97,99,99,101,110,116,55,47,50,0,47,97,99,99,101,110,116,55,47,51,0,47,97,99,99,101,110,116,55,47,52,0,47,97,99,99,101,110,116,55,47,53,0,47,97,99,99,101,110,116,55,47,54,0,47,97,99,99,101,110,116,55,47,55,0,47,97,99,99,101,110,116,56,47,49,0,47,97,99,99,101,110,116,56,47,50,0,47,97,99,99,101,110,116,56,-47,51,0,47,97,99,99,101,110,116,56,47,52,0,47,97,99,99,101,110,116,56,47,53,0,47,97,99,99,101,110,116,56,47,54,0,47,97,99,99,101,110,116,56,47,55,0,47,97,99,99,101,110,116,56,47,56,0,47,98,108,117,101,115,51,47,49,0,47,98,108,117,101,115,51,47,50,0,47,98,108,117,101,115,51,47,51,0,47,98,108,117,101,115,52,47,49,0,47,98,108,117,101,115,52,47,50,0,47,98,108,117,101,115,52,47,51,0,47,98,108,117,101,115,52,47,52,0,47,98,108,117,101,115,53,47,49,0,47,98,108,117,101,115,53,47,50,0,47,98,108,117,101,115,-53,47,51,0,47,98,108,117,101,115,53,47,52,0,47,98,108,117,101,115,53,47,53,0,47,98,108,117,101,115,54,47,49,0,47,98,108,117,101,115,54,47,50,0,47,98,108,117,101,115,54,47,51,0,47,98,108,117,101,115,54,47,52,0,47,98,108,117,101,115,54,47,53,0,47,98,108,117,101,115,54,47,54,0,47,98,108,117,101,115,55,47,49,0,47,98,108,117,101,115,55,47,50,0,47,98,108,117,101,115,55,47,51,0,47,98,108,117,101,115,55,47,52,0,47,98,108,117,101,115,55,47,53,0,47,98,108,117,101,115,55,47,54,0,47,98,108,117,101,115,55,47,-55,0,47,98,108,117,101,115,56,47,49,0,47,98,108,117,101,115,56,47,50,0,47,98,108,117,101,115,56,47,51,0,47,98,108,117,101,115,56,47,52,0,47,98,108,117,101,115,56,47,53,0,47,98,108,117,101,115,56,47,54,0,47,98,108,117,101,115,56,47,55,0,47,98,108,117,101,115,56,47,56,0,47,98,108,117,101,115,57,47,49,0,47,98,108,117,101,115,57,47,50,0,47,98,108,117,101,115,57,47,51,0,47,98,108,117,101,115,57,47,52,0,47,98,108,117,101,115,57,47,53,0,47,98,108,117,101,115,57,47,54,0,47,98,108,117,101,115,57,47,55,0,47,-98,108,117,101,115,57,47,56,0,47,98,108,117,101,115,57,47,57,0,47,98,114,98,103,49,48,47,49,0,47,98,114,98,103,49,48,47,49,48,0,47,98,114,98,103,49,48,47,50,0,47,98,114,98,103,49,48,47,51,0,47,98,114,98,103,49,48,47,52,0,47,98,114,98,103,49,48,47,53,0,47,98,114,98,103,49,48,47,54,0,47,98,114,98,103,49,48,47,55,0,47,98,114,98,103,49,48,47,56,0,47,98,114,98,103,49,48,47,57,0,47,98,114,98,103,49,49,47,49,0,47,98,114,98,103,49,49,47,49,48,0,47,98,114,98,103,49,49,47,49,49,0,47,98,114,98,103,49,49,47,-50,0,47,98,114,98,103,49,49,47,51,0,47,98,114,98,103,49,49,47,52,0,47,98,114,98,103],"i8",4,n.q+125938);-B([49,49,47,53,0,47,98,114,98,103,49,49,47,54,0,47,98,114,98,103,49,49,47,55,0,47,98,114,98,103,49,49,47,56,0,47,98,114,98,103,49,49,47,57,0,47,98,114,98,103,51,47,49,0,47,98,114,98,103,51,47,50,0,47,98,114,98,103,51,47,51,0,47,98,114,98,103,52,47,49,0,47,98,114,98,103,52,47,50,0,47,98,114,98,103,52,47,51,0,47,98,114,98,103,52,47,52,0,47,98,114,98,103,53,47,49,0,47,98,114,98,103,53,47,50,0,47,98,114,98,103,53,47,51,0,47,98,114,98,103,53,47,52,0,47,98,114,98,103,53,47,53,0,47,98,114,98,103,54,47,49,-0,47,98,114,98,103,54,47,50,0,47,98,114,98,103,54,47,51,0,47,98,114,98,103,54,47,52,0,47,98,114,98,103,54,47,53,0,47,98,114,98,103,54,47,54,0,47,98,114,98,103,55,47,49,0,47,98,114,98,103,55,47,50,0,47,98,114,98,103,55,47,51,0,47,98,114,98,103,55,47,52,0,47,98,114,98,103,55,47,53,0,47,98,114,98,103,55,47,54,0,47,98,114,98,103,55,47,55,0,47,98,114,98,103,56,47,49,0,47,98,114,98,103,56,47,50,0,47,98,114,98,103,56,47,51,0,47,98,114,98,103,56,47,52,0,47,98,114,98,103,56,47,53,0,47,98,114,98,103,56,47,-54,0,47,98,114,98,103,56,47,55,0,47,98,114,98,103,56,47,56,0,47,98,114,98,103,57,47,49,0,47,98,114,98,103,57,47,50,0,47,98,114,98,103,57,47,51,0,47,98,114,98,103,57,47,52,0,47,98,114,98,103,57,47,53,0,47,98,114,98,103,57,47,54,0,47,98,114,98,103,57,47,55,0,47,98,114,98,103,57,47,56,0,47,98,114,98,103,57,47,57,0,47,98,117,103,110,51,47,49,0,47,98,117,103,110,51,47,50,0,47,98,117,103,110,51,47,51,0,47,98,117,103,110,52,47,49,0,47,98,117,103,110,52,47,50,0,47,98,117,103,110,52,47,51,0,47,98,117,103,-110,52,47,52,0,47,98,117,103,110,53,47,49,0,47,98,117,103,110,53,47,50,0,47,98,117,103,110,53,47,51,0,47,98,117,103,110,53,47,52,0,47,98,117,103,110,53,47,53,0,47,98,117,103,110,54,47,49,0,47,98,117,103,110,54,47,50,0,47,98,117,103,110,54,47,51,0,47,98,117,103,110,54,47,52,0,47,98,117,103,110,54,47,53,0,47,98,117,103,110,54,47,54,0,47,98,117,103,110,55,47,49,0,47,98,117,103,110,55,47,50,0,47,98,117,103,110,55,47,51,0,47,98,117,103,110,55,47,52,0,47,98,117,103,110,55,47,53,0,47,98,117,103,110,55,47,-54,0,47,98,117,103,110,55,47,55,0,47,98,117,103,110,56,47,49,0,47,98,117,103,110,56,47,50,0,47,98,117,103,110,56,47,51,0,47,98,117,103,110,56,47,52,0,47,98,117,103,110,56,47,53,0,47,98,117,103,110,56,47,54,0,47,98,117,103,110,56,47,55,0,47,98,117,103,110,56,47,56,0,47,98,117,103,110,57,47,49,0,47,98,117,103,110,57,47,50,0,47,98,117,103,110,57,47,51,0,47,98,117,103,110,57,47,52,0,47,98,117,103,110,57,47,53,0,47,98,117,103,110,57,47,54,0,47,98,117,103,110,57,47,55,0,47,98,117,103,110,57,47,56,0,47,-98,117,103,110,57,47,57,0,47,98,117,112,117,51,47,49,0,47,98,117,112,117,51,47,50,0,47,98,117,112,117,51,47,51,0,47,98,117,112,117,52,47,49,0,47,98,117,112,117,52,47,50,0,47,98,117,112,117,52,47,51,0,47,98,117,112,117,52,47,52,0,47,98,117,112,117,53,47,49,0,47,98,117,112,117,53,47,50,0,47,98,117,112,117,53,47,51,0,47,98,117,112,117,53,47,52,0,47,98,117,112,117,53,47,53,0,47,98,117,112,117,54,47,49,0,47,98,117,112,117,54,47,50,0,47,98,117,112,117,54,47,51,0,47,98,117,112,117,54,47,52,0,47,98,117,112,-117,54,47,53,0,47,98,117,112,117,54,47,54,0,47,98,117,112,117,55,47,49,0,47,98,117,112,117,55,47,50,0,47,98,117,112,117,55,47,51,0,47,98,117,112,117,55,47,52,0,47,98,117,112,117,55,47,53,0,47,98,117,112,117,55,47,54,0,47,98,117,112,117,55,47,55,0,47,98,117,112,117,56,47,49,0,47,98,117,112,117,56,47,50,0,47,98,117,112,117,56,47,51,0,47,98,117,112,117,56,47,52,0,47,98,117,112,117,56,47,53,0,47,98,117,112,117,56,47,54,0,47,98,117,112,117,56,47,55,0,47,98,117,112,117,56,47,56,0,47,98,117,112,117,57,47,-49,0,47,98,117,112,117,57,47,50,0,47,98,117,112,117,57,47,51,0,47,98,117,112,117,57,47,52,0,47,98,117,112,117,57,47,53,0,47,98,117,112,117,57,47,54,0,47,98,117,112,117,57,47,55,0,47,98,117,112,117,57,47,56,0,47,98,117,112,117,57,47,57,0,47,100,97,114,107,50,51,47,49,0,47,100,97,114,107,50,51,47,50,0,47,100,97,114,107,50,51,47,51,0,47,100,97,114,107,50,52,47,49,0,47,100,97,114,107,50,52,47,50,0,47,100,97,114,107,50,52,47,51,0,47,100,97,114,107,50,52,47,52,0,47,100,97,114,107,50,53,47,49,0,47,100,97,-114,107,50,53,47,50,0,47,100,97,114,107,50,53,47,51,0,47,100,97,114,107,50,53,47,52,0,47,100,97,114,107,50,53,47,53,0,47,100,97,114,107,50,54,47,49,0,47,100,97,114,107,50,54,47,50,0,47,100,97,114,107,50,54,47,51,0,47,100,97,114,107,50,54,47,52,0,47,100,97,114,107,50,54,47,53,0,47,100,97,114,107,50,54,47,54,0,47,100,97,114,107,50,55,47,49,0,47,100,97,114,107,50,55,47,50,0,47,100,97,114,107,50,55,47,51,0,47,100,97,114,107,50,55,47,52,0,47,100,97,114,107,50,55,47,53,0,47,100,97,114,107,50,55,47,54,0,-47,100,97,114,107,50,55,47,55,0,47,100,97,114,107,50,56,47,49,0,47,100,97,114,107,50,56,47,50,0,47,100,97,114,107,50,56,47,51,0,47,100,97,114,107,50,56,47,52,0,47,100,97,114,107,50,56,47,53,0,47,100,97,114,107,50,56,47,54,0,47,100,97,114,107,50,56,47,55,0,47,100,97,114,107,50,56,47,56,0,47,103,110,98,117,51,47,49,0,47,103,110,98,117,51,47,50,0,47,103,110,98,117,51,47,51,0,47,103,110,98,117,52,47,49,0,47,103,110,98,117,52,47,50,0,47,103,110,98,117,52,47,51,0,47,103,110,98,117,52,47,52,0,47,103,110,-98,117,53,47,49,0,47,103,110,98,117,53,47,50,0,47,103,110,98,117,53,47,51,0,47,103,110,98,117,53,47,52,0,47,103,110,98,117,53,47,53,0,47,103,110,98,117,54,47,49,0,47,103,110,98,117,54,47,50,0,47,103,110,98,117,54,47,51,0,47,103,110,98,117,54,47,52,0,47,103,110,98,117,54,47,53,0,47,103,110,98,117,54,47,54,0,47,103,110,98,117,55,47,49,0,47,103,110,98,117,55,47,50,0,47,103,110,98,117,55,47,51,0,47,103,110,98,117,55,47,52,0,47,103,110,98,117,55,47,53,0,47,103,110,98,117,55,47,54,0,47,103,110,98,117,55,-47,55,0,47,103,110,98,117,56,47,49,0,47,103,110,98,117,56,47,50,0,47,103,110,98,117,56,47,51,0,47,103,110,98,117,56,47,52,0,47,103,110,98,117,56,47,53,0,47,103,110,98,117,56,47,54,0,47,103,110,98,117,56,47,55,0,47,103,110,98,117,56,47,56,0,47,103,110,98,117,57,47,49,0,47,103,110,98,117,57,47,50,0,47,103,110,98,117,57,47,51,0,47,103,110,98,117,57,47,52,0,47,103,110,98,117,57,47,53,0,47,103,110,98,117,57,47,54,0,47,103,110,98,117,57,47,55,0,47,103,110,98,117,57,47,56,0,47,103,110,98,117,57,47,57,0,-47,103,114,101,101,110,115,51,47,49,0,47,103,114,101,101,110,115,51,47,50,0,47,103,114,101,101,110,115,51,47,51,0,47,103,114,101,101,110,115,52,47,49,0,47,103,114,101,101,110,115,52,47,50,0,47,103,114,101,101,110,115,52,47,51,0,47,103,114,101,101,110,115,52,47,52,0,47,103,114,101,101,110,115,53,47,49,0,47,103,114,101,101,110,115,53,47,50,0,47,103,114,101,101,110,115,53,47,51,0,47,103,114,101,101,110,115,53,47,52,0,47,103,114,101,101,110,115,53,47,53,0,47,103,114,101,101,110,115,54,47,49,0,47,103,-114,101,101,110,115,54,47,50,0,47,103,114,101,101,110,115,54,47,51,0,47,103,114,101,101,110,115,54,47,52,0,47,103,114,101,101,110,115,54,47,53,0,47,103,114,101,101,110,115,54,47,54,0,47,103,114,101,101,110,115,55,47,49,0,47,103,114,101,101,110,115,55,47,50,0,47,103,114,101,101,110,115,55,47,51,0,47,103,114,101,101,110,115,55,47,52,0,47,103,114,101,101,110,115,55,47,53,0,47,103,114,101,101,110,115,55,47,54,0,47,103,114,101,101,110,115,55,47,55,0,47,103,114,101,101,110,115,56,47,49,0,47,103,114,101,-101,110,115,56,47,50,0,47,103,114,101,101,110,115,56,47,51,0,47,103,114,101,101,110,115,56,47,52,0,47,103,114,101,101,110,115,56,47,53,0,47,103,114,101,101,110,115,56,47,54,0,47,103,114,101,101,110,115,56,47,55,0,47,103,114,101,101,110,115,56,47,56,0,47,103,114,101,101,110,115,57,47,49,0,47,103,114,101,101,110,115,57,47,50,0,47,103,114,101,101,110,115,57,47,51,0,47,103,114,101,101,110,115,57,47,52,0,47,103,114,101,101,110,115,57,47,53,0,47,103,114,101,101,110,115,57,47,54,0,47,103,114,101,101,110,-115,57,47,55,0,47,103,114,101,101,110,115,57,47,56,0,47,103,114,101,101,110,115,57,47,57,0,47,103,114,101,121,115,51,47,49,0,47,103,114,101,121,115,51,47,50,0,47,103,114,101,121,115,51,47,51,0,47,103,114,101,121,115,52,47,49,0,47,103,114,101,121,115,52,47,50,0,47,103,114,101,121,115,52,47,51,0,47,103,114,101,121,115,52,47,52,0,47,103,114,101,121,115,53,47,49,0,47,103,114,101,121,115,53,47,50,0,47,103,114,101,121,115,53,47,51,0,47,103,114,101,121,115,53,47,52,0,47,103,114,101,121,115,53,47,53,0,47,-103,114,101,121,115,54,47,49,0,47,103,114,101,121,115,54,47,50,0,47,103,114,101,121,115,54,47,51,0,47,103,114,101,121,115,54,47,52,0,47,103,114,101,121,115,54,47,53,0,47,103,114,101,121,115,54,47,54,0,47,103,114,101,121,115,55,47,49,0,47,103,114,101,121,115,55,47,50,0,47,103,114,101,121,115,55,47,51,0,47,103,114,101,121,115,55,47,52,0,47,103,114,101,121,115,55,47,53,0,47,103,114,101,121,115,55,47,54,0,47,103,114,101,121,115,55,47,55,0,47,103,114,101,121,115,56,47,49,0,47,103,114,101,121,115,56,47,-50,0,47,103,114,101,121,115,56,47,51,0,47,103,114,101,121,115,56,47,52,0,47,103,114,101,121,115,56,47,53,0,47,103,114,101,121,115,56,47,54,0,47,103,114,101,121,115,56,47,55,0,47,103,114,101,121,115,56,47,56,0,47,103,114,101,121,115,57,47,49,0,47,103,114,101,121,115,57,47,50,0,47,103,114,101,121,115,57,47,51,0,47,103,114,101,121,115,57,47,52,0,47,103,114,101,121,115,57,47,53,0,47,103,114,101,121,115,57,47,54,0,47,103,114,101,121,115,57,47,55,0,47,103,114,101,121,115,57,47,56,0,47,103,114,101,121,115,-57,47,57,0,47,111,114,97,110,103,101,115,51,47,49,0,47,111,114,97,110,103,101,115,51,47,50,0,47,111,114,97,110,103,101,115,51,47,51,0,47,111,114,97,110,103,101,115,52,47,49,0,47,111,114,97,110,103,101,115,52,47,50,0,47,111,114,97,110,103,101,115,52,47,51,0,47,111,114,97,110,103,101,115,52,47,52,0,47,111,114,97,110,103,101,115,53,47,49,0,47,111,114,97,110,103,101,115,53,47,50,0,47,111,114,97,110,103,101,115,53,47,51,0,47,111,114,97,110,103,101,115,53,47,52,0,47,111,114,97,110,103,101,115,53,47,53,-0,47,111,114,97,110,103,101,115,54,47,49,0,47,111,114,97,110,103,101,115,54,47,50,0,47,111,114,97,110,103,101,115,54,47,51,0,47,111,114,97,110,103,101,115,54,47,52,0,47,111,114,97,110,103,101,115,54,47,53,0,47,111,114,97,110,103,101,115,54,47,54,0,47,111,114,97,110,103,101,115,55,47,49,0,47,111,114,97,110,103,101,115,55,47,50,0,47,111,114,97,110,103,101,115,55,47,51,0,47,111,114,97,110,103,101,115,55,47,52,0,47,111,114,97,110,103,101,115,55,47,53,0,47,111,114,97,110,103,101,115,55,47,54,0,47,111,-114,97,110,103,101,115,55,47,55,0,47,111,114,97,110,103,101,115,56,47,49,0,47,111,114,97,110,103,101,115,56,47,50,0,47,111,114,97,110,103,101,115,56,47,51,0,47,111,114,97,110,103,101,115,56,47,52,0,47,111,114,97,110,103,101,115,56,47,53,0,47,111,114,97,110,103,101,115,56,47,54,0,47,111,114,97,110,103,101,115,56,47,55,0,47,111,114,97,110,103,101,115,56,47,56,0,47,111,114,97,110,103,101,115,57,47,49,0,47,111,114,97,110,103,101,115,57,47,50,0,47,111,114,97,110,103,101,115,57,47,51,0,47,111,114,97,110,-103,101,115,57,47,52,0,47,111,114,97,110,103,101,115,57,47,53,0,47,111,114,97,110,103,101,115,57,47,54,0,47,111,114,97,110,103,101,115,57,47,55,0,47,111,114,97,110,103,101,115,57,47,56,0,47,111,114,97,110,103,101,115,57,47,57,0,47,111,114,114,100,51,47,49,0,47,111,114,114,100,51,47,50,0,47,111,114,114,100,51,47,51,0,47,111,114,114,100,52,47,49,0,47,111,114,114,100,52,47,50,0,47,111,114,114,100,52,47,51,0,47,111,114,114,100,52,47,52,0,47,111,114,114,100,53,47,49,0,47,111,114,114,100,53,47,50,0,47,-111,114,114,100,53,47,51,0,47,111,114,114,100,53,47,52,0,47,111,114,114,100,53,47,53,0,47,111,114,114,100,54,47,49,0,47,111,114,114,100,54,47,50,0,47,111,114,114,100,54,47,51,0,47,111,114,114,100,54,47,52,0,47,111,114,114,100,54,47,53,0,47,111,114,114,100,54,47,54,0,47,111,114,114,100,55,47,49,0,47,111,114,114,100,55,47,50,0,47,111,114,114,100,55,47,51,0,47,111,114,114,100,55,47,52,0,47,111,114,114,100,55,47,53,0,47,111,114,114,100,55,47,54,0,47,111,114,114,100,55,47,55,0,47,111,114,114,100,56,47,-49,0,47,111,114,114,100,56,47,50,0,47,111,114,114,100,56,47,51,0,47,111,114,114,100,56,47,52,0,47,111,114,114,100,56,47,53,0,47,111,114,114,100,56,47,54,0,47,111,114,114,100,56,47,55,0,47,111,114,114,100,56,47,56,0,47,111,114,114,100,57,47,49,0,47,111,114,114,100,57,47,50,0,47,111,114,114,100,57,47,51,0,47,111,114,114,100,57,47,52,0,47,111,114,114,100,57,47,53,0,47,111,114,114,100,57,47,54,0,47,111,114,114,100,57,47,55,0,47,111,114,114,100,57,47,56,0,47,111,114,114,100,57,47,57,0,47,112,97,105,114,-101,100,49,48,47,49,0,47,112,97,105,114,101,100,49,48,47,49,48,0,47,112,97,105,114,101,100,49,48,47,50,0,47,112,97,105,114,101,100,49,48,47,51,0,47,112,97,105,114,101,100,49,48,47,52,0,47,112,97,105,114,101,100,49,48,47,53,0,47,112,97,105,114,101,100,49,48,47,54,0,47,112,97,105,114,101,100,49,48,47,55,0,47,112,97,105,114,101,100,49,48,47,56,0,47,112,97,105,114,101,100,49,48,47,57,0,47,112,97,105,114,101,100,49,49,47,49,0,47,112,97,105,114,101,100,49,49,47,49,48,0,47,112,97,105,114,101,100,49,49,47,-49,49,0,47,112,97,105,114,101,100,49,49,47,50,0,47,112,97,105,114,101,100,49,49,47,51,0,47,112,97,105,114,101,100,49,49,47,52,0,47,112,97,105,114,101,100,49,49,47,53,0,47,112,97,105,114,101,100,49,49,47,54,0,47,112,97,105,114,101,100,49,49,47,55,0,47,112,97,105,114,101,100,49,49,47,56,0,47,112,97,105,114,101,100,49,49,47,57,0,47,112,97,105,114,101,100,49,50,47,49,0,47,112,97,105,114,101,100,49,50,47,49,48,0,47,112,97,105,114,101,100,49,50,47,49,49,0,47,112,97,105,114,101,100,49,50,47,49,50,0,47,112,-97,105,114,101,100,49,50,47,50,0,47,112,97,105,114,101,100,49,50,47,51,0,47,112,97,105,114,101,100,49,50,47,52,0,47,112,97,105,114,101,100,49,50,47,53,0,47,112,97,105,114,101,100,49,50,47,54,0,47,112,97,105,114,101,100,49,50,47,55,0,47,112,97,105,114,101,100,49,50,47,56,0,47,112,97,105,114,101,100,49,50,47,57,0,47,112,97,105,114,101,100,51,47,49,0,47,112,97,105,114,101,100,51,47,50,0,47,112,97,105,114,101,100,51,47,51,0,47,112,97,105,114,101,100,52,47,49,0,47,112,97,105,114,101,100,52,47,50,0,47,-112,97,105,114,101,100,52,47,51,0,47,112,97,105,114,101,100,52,47,52,0,47,112,97,105,114,101,100,53,47,49,0,47,112,97,105,114,101,100,53,47,50,0,47,112,97,105,114,101,100,53,47,51,0,47,112,97,105,114,101,100,53,47,52,0,47,112,97,105,114,101,100,53,47,53,0,47,112,97,105,114,101,100,54,47,49,0,47,112,97,105,114,101,100,54,47,50,0,47,112,97,105,114,101,100,54,47,51,0,47,112,97,105,114,101,100,54,47,52,0,47,112,97,105,114,101,100,54,47,53,0,47,112,97,105,114,101,100,54,47,54,0,47,112,97,105,114,101,100,-55,47,49,0,47,112,97,105,114,101,100,55,47,50,0,47,112,97,105,114,101,100,55,47,51,0,47,112,97,105,114,101,100,55,47,52,0,47,112,97,105,114,101,100,55,47,53,0,47,112,97,105,114,101,100,55,47,54,0,47,112,97,105,114,101,100,55,47,55,0,47,112,97,105,114,101,100,56,47,49,0,47,112,97,105,114,101,100,56,47,50,0,47,112,97,105,114,101,100,56,47,51,0,47,112,97,105,114,101,100,56,47,52,0,47,112,97,105,114,101,100,56,47,53,0,47,112,97,105,114,101,100,56,47,54,0,47,112,97,105,114,101,100,56,47,55,0,47,112,97,-105,114,101,100,56,47,56,0,47,112,97,105,114,101,100,57,47,49,0,47,112,97,105,114,101,100,57,47,50,0,47,112,97,105,114,101,100,57,47,51,0,47,112,97,105,114,101,100,57,47,52,0,47,112,97,105,114,101,100,57,47,53,0,47,112,97,105,114,101,100,57,47,54,0,47,112,97,105,114,101,100,57,47,55,0,47,112,97,105,114,101,100,57,47,56,0,47,112,97,105,114,101,100,57,47,57,0,47,112,97,115,116,101,108,49,51,47,49,0,47,112,97,115,116,101,108,49,51,47,50,0,47,112,97,115,116,101,108,49,51,47,51,0,47,112,97,115,116,101,-108,49,52,47,49,0,47,112,97,115,116,101,108,49,52,47,50,0,47,112,97,115,116,101,108,49,52,47,51,0,47,112,97,115,116,101,108,49,52,47,52,0,47,112,97,115,116,101,108,49,53,47,49,0,47,112,97,115,116,101,108,49,53,47,50,0,47,112,97,115,116,101,108,49,53,47,51,0,47,112,97,115,116,101,108,49,53,47,52,0,47,112,97,115,116,101,108,49,53,47,53,0,47,112,97,115,116,101,108,49,54,47,49,0,47,112,97,115,116,101,108,49,54,47,50,0,47,112,97,115,116,101,108,49,54,47,51,0,47,112,97,115,116,101,108,49,54,47,52,0,47,-112,97,115,116,101,108,49,54,47,53,0,47,112,97,115,116,101,108,49,54,47,54,0,47,112,97,115,116,101,108,49,55,47,49,0,47,112,97,115,116,101,108,49,55,47,50,0,47,112,97,115,116,101,108,49,55,47,51,0,47,112,97,115,116,101,108,49,55,47,52,0,47,112,97,115,116,101,108,49,55,47,53,0,47,112,97,115,116,101,108,49,55,47,54,0,47,112,97,115,116,101,108,49,55,47,55,0,47,112,97,115,116,101,108,49,56,47,49,0,47,112,97,115,116,101,108,49,56,47,50,0,47,112,97,115,116,101,108,49,56,47,51,0,47,112,97,115,116,101,108,-49,56,47,52,0,47,112,97,115,116,101,108,49,56,47,53,0,47,112,97,115,116,101,108,49,56,47,54,0,47,112,97,115,116,101,108,49,56,47,55,0,47,112,97,115,116,101,108,49,56,47,56,0,47,112,97,115,116,101,108,49,57,47,49,0,47,112,97,115,116,101,108,49,57,47,50,0,47,112,97,115,116,101,108,49,57,47,51,0,47,112,97,115,116,101,108,49,57,47,52,0,47,112,97,115,116,101,108,49,57,47,53,0,47,112,97,115,116,101,108,49,57,47,54,0,47,112,97,115,116,101,108,49,57,47,55,0,47,112,97,115,116,101,108,49,57,47,56,0,47,112,-97,115,116,101,108,49,57,47,57,0,47,112,97,115,116,101,108,50,51,47,49,0,47,112,97,115,116,101,108,50,51,47,50,0,47,112,97,115,116,101,108,50,51,47,51,0,47,112,97,115,116,101,108,50,52,47,49,0,47,112,97,115,116,101,108,50,52,47,50,0,47,112,97,115,116,101,108,50,52,47,51,0,47,112,97,115,116,101,108,50,52,47,52,0,47,112,97,115,116,101,108,50,53,47,49,0,47,112,97,115,116,101,108,50,53,47,50,0,47,112,97,115,116,101,108,50,53,47,51,0,47,112,97,115,116,101,108,50,53,47,52,0,47,112,97,115,116,101,108,50,-53,47,53,0,47,112,97,115,116,101,108,50,54,47,49,0,47,112,97,115,116,101,108,50,54,47,50,0,47,112,97,115,116,101,108,50,54,47,51,0,47,112,97,115,116,101,108,50,54,47,52,0,47,112,97,115,116,101,108,50,54,47,53,0,47,112,97,115,116,101,108,50,54,47,54,0,47,112,97,115,116,101,108,50,55,47,49,0,47,112,97,115,116,101,108,50,55,47,50,0,47,112,97,115,116,101,108,50,55,47,51,0,47,112,97,115,116,101,108,50,55,47,52,0,47,112,97,115,116,101,108,50,55,47,53,0,47,112,97,115,116,101,108,50,55,47,54,0,47,112,97,-115,116,101,108,50,55,47,55,0,47,112,97,115,116,101,108,50,56,47,49,0,47,112,97,115,116,101,108,50,56,47,50,0,47,112,97,115,116,101,108,50,56,47,51,0,47,112,97,115,116,101,108,50,56,47,52,0,47,112,97,115,116,101,108,50,56,47,53,0,47,112,97,115,116,101,108,50,56,47,54,0,47,112,97,115,116,101,108,50,56,47,55,0,47,112,97,115,116,101,108,50,56,47,56,0,47,112,105,121,103,49,48,47,49,0,47,112,105,121,103,49,48,47,49,48,0,47,112,105,121,103,49,48,47,50,0,47,112,105,121,103,49,48,47,51,0,47,112,105,121,103,-49,48,47,52,0,47,112,105,121,103,49,48,47,53,0,47,112,105,121,103,49,48,47,54,0,47,112,105,121,103,49,48,47,55,0,47,112,105,121,103,49,48,47,56,0,47,112,105,121,103,49,48,47,57,0,47,112,105,121,103,49,49,47,49,0,47,112,105,121,103,49,49,47,49,48,0,47,112,105,121,103,49,49,47,49,49,0,47,112,105,121,103,49,49,47,50,0,47,112,105,121,103,49,49,47,51,0,47,112,105,121,103,49,49,47,52,0,47,112,105,121,103,49,49,47,53,0,47,112,105,121,103,49,49,47,54,0,47,112,105,121,103,49,49,47,55,0,47,112,105,121,103,-49,49,47,56,0,47,112,105,121,103,49,49,47,57,0,47,112,105,121,103,51,47,49,0,47,112,105,121,103,51,47,50,0,47,112,105,121,103,51,47,51,0,47,112,105,121,103,52,47,49,0,47,112,105,121,103,52,47,50,0,47,112,105,121,103,52,47,51,0,47,112,105,121,103,52,47,52,0,47,112,105,121,103,53,47,49,0,47,112,105,121,103,53,47,50,0,47,112,105,121,103,53,47,51,0,47,112,105,121,103,53,47,52,0,47,112,105,121,103,53,47,53,0,47,112,105,121,103,54,47,49,0,47,112,105,121,103,54,47,50,0,47,112,105,121,103,54,47,51,0,47,112,-105,121,103,54,47,52,0,47,112,105,121,103,54,47,53,0,47,112,105,121,103,54,47,54,0,47,112,105,121,103,55,47,49,0,47,112,105,121,103,55,47,50,0,47,112,105,121,103,55,47,51,0,47,112,105,121,103,55,47,52,0,47,112,105,121,103,55,47,53,0,47,112,105,121,103,55,47,54,0,47,112,105,121,103,55,47,55,0,47,112,105,121,103,56,47,49,0,47,112,105,121,103,56,47,50,0,47,112,105,121,103,56,47,51,0,47,112,105,121,103,56,47,52,0,47,112,105,121,103,56,47,53,0,47,112,105,121,103,56,47,54,0,47,112,105,121,103,56,47,55,-0,47,112,105,121,103,56,47,56,0,47,112,105,121,103,57,47,49,0,47,112,105,121,103,57,47,50,0,47,112,105,121,103,57,47,51,0,47,112,105,121,103,57,47,52,0,47,112,105,121,103,57,47,53,0,47,112,105,121,103,57,47,54,0,47,112,105,121,103,57,47,55,0,47,112,105,121,103,57,47,56,0,47,112,105,121,103,57,47,57,0,47,112,114,103,110,49,48,47,49,0,47,112,114,103,110,49,48,47,49,48,0,47,112,114,103,110,49,48,47,50,0,47,112,114,103,110,49,48,47,51,0,47,112,114,103,110,49,48,47,52,0,47,112,114,103,110,49,48,47,53,-0,47,112,114,103,110,49,48,47,54,0,47,112,114,103,110,49,48,47,55,0,47,112,114,103,110,49,48,47,56,0,47,112,114,103,110,49,48,47,57,0,47,112,114,103,110,49,49,47,49,0,47,112,114,103,110,49,49,47,49,48,0,47,112,114,103,110,49,49,47,49,49,0,47,112,114,103,110,49,49,47,50,0,47,112,114,103,110,49,49,47,51,0,47,112,114,103,110,49,49,47,52,0,47,112,114,103,110,49,49,47,53,0,47,112,114,103,110,49,49,47,54,0,47,112,114,103,110,49,49,47,55,0,47,112,114,103,110,49,49,47,56,0,47,112,114,103,110,49,49,47,57,-0,47,112,114,103,110,51,47,49,0,47,112,114,103,110,51,47,50,0,47,112,114,103,110,51,47,51,0,47,112,114,103,110,52,47,49,0,47,112,114,103,110,52,47,50,0,47,112,114,103,110,52,47,51,0,47,112,114,103,110,52,47,52,0,47,112,114,103,110,53,47,49,0,47,112,114,103,110,53,47,50,0,47,112,114,103,110,53,47,51,0,47,112,114,103,110,53,47,52,0,47,112,114,103,110,53,47,53,0,47,112,114,103,110,54,47,49,0,47,112,114,103,110,54,47,50,0,47,112,114,103,110,54,47,51,0,47,112,114,103,110,54,47,52,0,47,112,114,103,110,-54,47,53,0,47,112,114,103,110,54,47,54,0,47,112,114,103,110,55,47,49,0,47,112,114,103,110,55,47,50,0,47,112,114,103,110,55,47,51,0,47,112,114,103,110,55,47,52,0,47,112,114,103,110,55,47,53,0,47,112,114,103,110,55,47,54,0,47,112,114,103,110,55,47,55,0,47,112,114,103,110,56,47,49,0,47,112,114,103,110,56,47,50,0,47,112,114,103,110,56,47,51,0,47,112,114,103,110,56,47,52,0,47,112,114,103,110,56,47,53,0,47,112,114,103,110,56,47,54,0,47,112,114,103,110,56,47,55,0,47,112,114,103,110,56,47,56,0,47,112,114,-103,110,57,47,49,0,47,112,114,103,110,57,47,50,0,47,112,114,103,110,57,47,51,0,47,112,114,103,110,57,47,52,0,47,112,114,103,110,57,47,53,0,47,112,114,103,110,57,47,54,0,47,112,114,103,110,57,47,55,0,47,112,114,103,110,57,47,56,0,47,112,114,103,110,57,47,57,0,47,112,117,98,117,51,47,49,0,47,112,117,98,117,51,47,50,0,47,112,117,98,117,51,47,51,0,47,112,117,98,117,52,47,49,0,47,112,117,98,117,52,47,50,0,47,112,117,98,117,52,47,51,0,47,112,117,98,117,52,47,52,0,47,112,117,98,117,53,47,49,0,47,112,117,-98,117,53,47,50,0,47,112,117,98,117,53,47,51,0,47,112,117,98,117,53,47,52,0,47,112,117,98,117,53,47,53,0,47,112,117,98,117,54,47,49,0,47,112,117,98,117,54,47,50,0,47,112,117,98,117,54,47,51,0,47,112,117,98,117,54,47,52,0,47,112,117,98,117,54,47,53,0,47,112,117,98,117,54,47,54,0,47,112,117,98,117,55,47,49,0,47,112,117,98,117,55,47,50,0,47,112,117,98,117,55,47,51,0,47,112,117,98,117,55,47,52,0,47,112,117,98,117,55,47,53,0,47,112,117,98,117,55,47,54,0,47,112,117,98,117,55,47,55,0,47,112,117,98,117,56,-47,49,0,47,112,117,98,117,56,47,50,0,47,112,117,98,117,56,47,51,0,47,112,117,98,117,56,47,52,0,47,112,117,98,117,56,47,53,0,47,112,117,98,117,56,47,54,0,47,112,117,98,117,56,47,55,0,47,112,117,98,117,56,47,56,0,47,112,117,98,117,57,47,49,0,47,112,117,98,117,57,47,50,0,47,112,117,98,117,57,47,51,0,47,112,117,98,117,57,47,52,0,47,112,117,98,117,57,47,53,0,47,112,117,98,117,57,47,54,0,47,112,117,98,117,57,47,55,0,47,112,117,98,117,57,47,56,0,47,112,117,98,117,57,47,57,0,47,112,117,98,117,103,110,51,-47,49,0,47,112,117,98,117,103,110,51,47,50,0,47,112,117,98,117,103,110,51,47,51,0,47,112,117,98,117,103,110,52,47,49,0,47,112,117,98,117,103,110,52,47,50,0,47,112,117,98,117,103,110,52,47,51,0,47,112,117,98,117,103,110,52,47,52,0,47,112,117,98,117,103,110,53,47,49,0,47,112,117,98,117,103,110,53,47,50,0,47,112,117,98,117,103,110,53,47,51,0,47,112,117,98,117,103,110,53,47,52,0,47,112,117,98,117,103,110,53,47,53,0,47,112,117,98,117,103,110,54,47,49,0,47,112,117,98,117,103,110,54,47,50,0,47,112,117,98,-117,103,110,54,47,51,0,47,112,117,98,117,103,110,54,47,52,0,47,112,117,98,117,103,110,54,47,53,0,47,112,117,98,117,103,110,54,47,54,0,47,112,117,98,117,103,110,55,47,49,0,47,112,117,98,117,103,110,55,47,50,0,47,112,117,98,117,103,110,55,47,51,0,47,112,117,98,117,103,110,55,47,52,0,47,112,117,98,117,103,110,55,47,53,0,47,112,117,98,117,103,110,55,47,54,0,47,112,117,98,117,103,110,55,47,55,0,47,112,117,98,117,103,110,56,47,49,0,47,112,117,98,117,103,110,56,47,50,0,47,112,117,98,117,103,110,56,47,51,-0,47,112,117,98,117,103,110,56,47,52,0,47,112,117,98,117,103,110,56,47,53,0,47,112,117,98,117,103,110,56,47,54,0,47,112,117,98,117,103,110,56,47,55,0,47,112,117,98,117,103,110,56,47,56,0,47,112,117,98,117,103,110,57,47,49,0,47,112,117,98,117,103,110,57,47,50,0,47,112,117,98,117,103,110,57,47,51,0,47,112,117,98,117,103,110,57,47,52,0,47,112,117,98,117,103,110,57,47,53,0,47,112,117,98,117,103,110,57,47,54,0,47,112,117,98,117,103,110,57,47,55,0,47,112,117,98,117,103,110,57,47,56,0,47,112,117,98,117,-103,110,57,47,57,0,47,112,117,111,114,49,48,47,49,0,47,112,117,111,114,49,48,47,49,48,0,47,112,117,111,114,49,48,47,50,0,47,112,117,111,114,49,48,47,51,0,47,112,117,111,114,49,48,47,52,0,47,112,117,111,114,49,48,47,53,0,47,112,117,111,114,49,48,47,54,0,47,112,117,111,114,49,48,47,55,0,47,112,117,111,114,49,48,47,56,0,47,112,117,111,114,49,48,47,57,0,47,112,117,111,114,49,49,47,49,0,47,112,117,111,114,49,49,47,49,48,0,47,112,117,111,114,49,49,47,49,49,0,47,112,117,111,114,49,49,47,50,0,47,112,117,-111,114,49,49,47,51,0,47,112,117,111,114,49,49,47,52,0,47,112,117,111,114,49,49,47,53,0,47,112,117,111,114,49,49,47,54,0,47,112,117,111,114,49,49,47,55,0,47,112,117,111,114,49,49,47,56,0,47,112,117,111,114,49,49,47,57,0,47,112,117,111,114,51,47,49,0,47,112,117,111,114,51,47,50,0,47,112,117,111,114,51,47,51,0,47,112,117,111,114,52,47,49,0,47,112,117,111,114,52,47,50,0,47,112,117,111,114,52,47,51,0,47,112,117,111,114,52,47,52,0,47,112,117,111,114,53,47,49,0,47,112,117,111,114,53,47,50,0,47,112,117,-111,114,53,47,51,0,47,112,117,111,114,53,47,52,0,47,112,117,111,114,53,47,53,0,47,112,117,111,114,54,47,49,0,47,112,117,111,114,54,47,50,0,47,112,117,111,114,54,47,51,0,47,112,117,111,114,54,47,52,0,47,112,117,111,114,54,47,53,0,47,112,117,111,114,54,47,54,0,47,112,117,111,114,55,47,49,0,47,112,117,111,114,55,47,50,0,47,112,117,111,114,55,47,51,0,47,112,117,111,114,55,47,52,0,47,112,117,111,114,55,47,53,0,47,112,117,111,114,55,47,54,0,47,112,117,111,114,55,47,55,0,47,112,117,111,114,56,47,49,0,47,-112,117,111,114,56,47,50,0,47,112,117,111,114,56,47,51,0,47,112,117,111,114,56,47,52,0,47,112,117,111,114,56,47,53,0,47,112,117,111,114,56,47,54,0,47,112,117,111,114,56,47,55,0,47,112,117,111,114,56,47,56,0,47,112,117,111,114,57,47,49,0,47,112,117,111,114,57,47,50,0,47,112,117,111,114,57,47,51,0,47,112,117,111,114,57,47,52,0,47,112,117,111,114,57,47,53,0,47,112,117,111,114,57,47,54,0,47,112,117,111,114,57,47,55,0,47,112,117,111,114,57,47,56,0,47,112,117,111,114,57,47,57,0,47,112,117,114,100,51,47,-49,0,47,112,117,114,100,51,47,50,0,47,112,117,114,100,51,47,51,0,47,112,117,114,100,52,47,49,0,47,112,117,114,100,52,47,50,0,47,112,117,114,100,52,47,51,0,47,112,117,114,100,52,47,52,0,47,112,117,114,100,53,47,49,0,47,112,117,114,100,53,47,50,0,47,112,117,114,100,53,47,51,0,47,112,117,114,100,53,47,52,0,47,112,117,114,100,53,47,53,0,47,112,117,114,100,54,47,49,0,47,112,117,114,100,54,47,50,0,47,112,117,114,100,54,47,51,0,47,112,117,114,100,54,47,52,0,47,112,117,114,100,54,47,53,0,47,112,117,114,100,-54,47,54,0,47,112,117,114,100,55,47,49,0,47,112,117,114,100,55,47,50,0,47,112,117,114,100,55,47,51,0,47,112,117,114,100,55,47,52,0,47,112,117,114,100,55,47,53,0,47,112,117,114,100,55,47,54,0,47,112,117,114,100,55,47,55,0,47,112,117,114,100,56,47,49,0,47,112,117,114,100,56,47,50,0,47,112,117,114,100,56,47,51,0,47,112,117,114,100,56,47,52,0,47,112,117,114,100,56,47,53,0,47,112,117,114,100,56,47,54,0,47,112,117,114,100,56,47,55,0,47,112,117,114,100,56,47,56,0,47,112,117,114,100,57,47,49,0,47,112,117,-114,100,57,47,50,0,47,112,117,114,100,57,47,51,0,47,112,117,114,100,57,47,52,0,47,112,117,114,100,57,47,53,0,47,112,117,114,100,57,47,54,0,47,112,117,114,100,57,47,55,0,47,112,117,114,100,57,47,56,0,47,112,117,114,100,57,47,57,0,47,112,117,114,112,108,101,115,51,47,49,0,47,112,117,114,112,108,101,115,51,47,50,0,47,112,117,114,112,108,101,115,51,47,51,0,47,112,117,114,112,108,101,115,52,47,49,0,47,112,117,114,112,108,101,115,52,47,50,0,47,112,117,114,112,108,101,115,52,47,51,0,47,112,117,114,112,108,-101,115,52,47,52,0,47,112,117,114,112,108,101,115,53,47,49,0,47,112,117,114,112,108,101,115,53,47,50,0,47,112,117,114,112,108,101,115,53,47,51,0,47,112,117,114,112,108,101,115,53,47,52,0,47,112,117,114,112,108,101,115,53,47,53,0,47,112,117,114,112,108,101,115,54,47,49,0,47,112,117,114,112,108,101,115,54,47,50,0,47,112,117,114,112,108,101,115,54,47,51,0,47,112,117,114,112,108,101,115,54,47,52,0,47,112,117,114,112,108,101,115,54,47,53,0,47,112,117,114,112,108,101,115,54,47,54,0,47,112,117,114,112,108,-101,115,55,47,49,0,47,112,117,114,112,108,101,115,55,47,50,0,47,112,117,114,112,108,101,115,55,47,51,0,47,112,117,114,112,108,101,115,55,47,52,0,47,112,117,114,112,108,101,115,55,47,53,0,47,112,117,114,112,108,101,115,55,47,54,0,47,112,117,114,112,108,101,115,55,47,55,0,47,112,117,114,112,108,101,115,56,47,49,0,47,112,117,114,112,108,101,115,56,47,50,0,47,112,117,114,112,108,101,115,56,47,51,0,47,112,117,114,112,108,101,115,56,47,52,0,47,112,117,114,112,108,101,115,56,47,53,0,47,112,117,114,112,108,-101,115,56,47,54,0,47,112,117,114,112,108,101,115,56,47,55,0,47,112,117,114,112,108,101,115,56,47,56,0,47,112,117,114,112,108,101,115,57,47,49,0,47,112,117,114,112,108,101,115,57,47,50,0,47,112,117,114,112,108,101,115,57,47,51,0,47,112,117,114,112,108,101,115,57,47,52,0,47,112,117,114,112,108,101,115,57,47,53,0,47,112,117,114,112,108,101,115,57,47,54,0,47,112,117,114,112,108,101,115,57,47,55,0,47,112,117,114,112,108,101,115,57,47,56,0,47,112,117,114,112,108,101,115,57,47,57,0,47,114,100,98,117,49,-48,47,49,0,47,114,100,98,117,49,48,47,49,48,0,47,114,100,98,117,49,48,47,50,0,47,114,100,98,117,49,48,47,51,0,47,114,100,98,117,49,48,47,52,0,47,114,100,98,117,49,48,47,53,0,47,114,100,98,117,49,48,47,54,0,47,114,100,98,117,49,48,47,55,0,47,114,100,98,117,49,48,47,56,0,47,114,100,98,117,49,48,47,57,0,47,114,100,98,117,49,49,47,49,0,47,114,100,98,117,49,49,47,49,48,0,47,114,100,98,117,49,49,47,49,49,0,47,114,100,98,117,49,49,47,50,0,47,114,100,98,117,49,49,47,51,0,47,114,100,98,117,49,49,47,52,0,47,-114,100,98,117,49,49,47,53,0,47,114,100,98,117,49,49,47,54,0,47,114,100,98,117,49,49,47,55,0,47,114,100,98,117,49,49,47,56,0,47,114,100,98,117,49,49,47,57,0,47,114,100,98,117,51,47,49,0,47,114,100,98,117,51,47,50,0,47,114,100,98,117,51,47,51,0,47,114,100,98,117,52,47,49,0,47,114,100,98,117,52,47,50,0,47,114,100,98,117,52,47,51,0,47,114,100,98,117,52,47,52,0,47,114,100,98,117,53,47,49,0,47,114,100,98,117,53,47,50,0,47,114,100,98,117,53,47,51,0,47,114,100,98,117,53,47,52,0,47,114,100,98,117,53,47,53,-0,47,114,100,98,117,54,47,49,0,47,114,100,98,117,54,47,50,0,47,114,100,98,117,54,47,51,0,47,114,100,98,117,54,47,52,0,47,114,100,98,117,54,47,53,0,47,114,100,98,117,54,47,54,0,47,114,100,98,117,55,47,49,0,47,114,100,98,117,55,47,50,0,47,114,100,98,117,55,47,51,0,47,114,100,98,117,55,47,52,0,47,114,100,98,117,55,47,53,0,47,114,100,98,117,55,47,54,0,47,114,100,98,117,55,47,55,0,47,114,100,98,117,56,47,49,0,47,114,100,98,117,56,47,50,0,47,114,100,98,117,56,47,51,0,47,114,100,98,117,56,47,52,0,47,114,-100,98,117,56,47,53,0,47,114,100,98,117,56,47,54,0,47,114,100,98,117,56,47,55,0,47,114,100,98,117,56,47,56,0,47,114,100,98,117,57,47,49,0,47,114,100,98,117,57,47,50,0,47,114,100,98,117,57,47,51,0,47,114,100,98,117,57,47,52,0,47,114,100,98,117,57,47,53,0,47,114,100,98,117,57,47,54,0,47,114,100,98,117,57,47,55,0,47,114,100,98,117,57,47,56,0,47,114,100,98,117,57,47,57,0,47,114,100,103,121,49,48,47,49,0,47,114,100,103,121,49,48,47,49,48,0,47,114,100,103,121,49,48,47,50,0,47,114,100,103,121,49,48,47,51,-0,47,114,100,103,121,49,48,47,52,0,47,114,100,103,121,49,48,47,53,0,47,114,100,103,121,49,48,47,54,0,47,114,100,103,121,49,48,47,55,0,47,114,100,103,121,49,48,47,56,0,47,114,100,103,121,49,48,47,57,0,47,114,100,103,121,49,49,47,49,0,47,114,100,103,121,49,49,47,49,48,0,47,114,100,103,121,49,49,47,49,49,0,47,114,100,103,121,49,49,47,50,0,47,114,100,103,121,49,49,47,51,0,47,114,100,103,121,49,49,47,52,0,47,114,100,103,121,49,49,47,53,0,47,114,100,103,121,49,49,47,54,0,47,114,100,103,121,49,49,47,55,-0,47,114,100,103,121,49,49,47,56,0,47,114,100,103,121,49,49,47,57,0,47,114,100,103,121,51,47,49,0,47,114,100,103,121,51,47,50,0,47,114,100,103,121,51,47,51,0,47,114,100,103,121,52,47,49,0,47,114,100,103,121,52,47,50,0,47,114,100,103,121,52,47,51,0,47,114,100,103,121,52,47,52,0,47,114,100,103,121,53,47,49,0,47,114,100,103,121,53,47,50,0,47,114,100,103,121,53,47,51,0,47,114,100,103,121,53,47,52,0,47,114,100,103,121,53,47,53,0,47,114,100,103,121,54,47,49,0,47,114,100,103,121,54,47,50,0,47,114,100,103,-121,54,47,51,0,47,114,100,103,121,54,47,52,0,47,114,100,103,121,54,47,53,0,47,114,100,103,121,54,47,54,0,47,114,100,103,121,55,47,49,0,47,114,100,103,121,55,47,50,0,47,114,100,103,121,55,47,51,0,47,114,100,103,121,55,47,52,0,47,114,100,103,121,55,47,53,0,47,114,100,103,121,55,47,54,0,47,114,100,103,121,55,47,55,0,47,114,100,103,121,56,47,49,0,47,114,100,103,121,56,47,50,0,47,114,100,103,121,56,47,51,0,47,114,100,103,121,56,47,52,0,47,114,100,103,121,56,47,53,0,47,114,100,103,121,56,47,54,0,47,114,-100,103,121,56,47,55,0,47,114,100,103,121,56,47,56,0,47,114,100,103,121,57,47,49,0,47,114,100,103,121,57,47,50,0,47,114,100,103,121,57,47,51,0,47,114,100,103,121,57,47,52,0,47,114,100,103,121,57,47,53,0,47,114,100,103,121,57,47,54,0,47,114,100,103,121,57,47,55,0,47,114,100,103,121,57,47,56,0,47,114,100,103,121,57,47,57,0,47,114,100,112,117,51,47,49,0,47,114,100,112,117,51,47,50,0,47,114,100,112,117,51,47,51,0,47,114,100,112,117,52,47,49,0,47,114,100,112,117,52,47,50,0,47,114,100,112,117,52,47,51,-0,47,114,100,112,117,52,47,52,0,47,114,100,112,117,53,47,49,0,47,114,100,112,117,53,47,50,0,47,114,100,112,117,53,47,51,0,47,114,100,112,117,53,47,52,0,47,114,100,112,117,53,47,53,0,47,114,100,112,117,54,47,49,0,47,114,100,112,117,54,47,50,0,47,114,100,112,117,54,47,51,0,47,114,100,112,117,54,47,52,0,47,114,100,112],"i8",4,n.q+136178);-B([117,54,47,53,0,47,114,100,112,117,54,47,54,0,47,114,100,112,117,55,47,49,0,47,114,100,112,117,55,47,50,0,47,114,100,112,117,55,47,51,0,47,114,100,112,117,55,47,52,0,47,114,100,112,117,55,47,53,0,47,114,100,112,117,55,47,54,0,47,114,100,112,117,55,47,55,0,47,114,100,112,117,56,47,49,0,47,114,100,112,117,56,47,50,0,47,114,100,112,117,56,47,51,0,47,114,100,112,117,56,47,52,0,47,114,100,112,117,56,47,53,0,47,114,100,112,117,56,47,54,0,47,114,100,112,117,56,47,55,0,47,114,100,112,117,56,47,56,0,47,-114,100,112,117,57,47,49,0,47,114,100,112,117,57,47,50,0,47,114,100,112,117,57,47,51,0,47,114,100,112,117,57,47,52,0,47,114,100,112,117,57,47,53,0,47,114,100,112,117,57,47,54,0,47,114,100,112,117,57,47,55,0,47,114,100,112,117,57,47,56,0,47,114,100,112,117,57,47,57,0,47,114,100,121,108,98,117,49,48,47,49,0,47,114,100,121,108,98,117,49,48,47,49,48,0,47,114,100,121,108,98,117,49,48,47,50,0,47,114,100,121,108,98,117,49,48,47,51,0,47,114,100,121,108,98,117,49,48,47,52,0,47,114,100,121,108,98,117,49,48,-47,53,0,47,114,100,121,108,98,117,49,48,47,54,0,47,114,100,121,108,98,117,49,48,47,55,0,47,114,100,121,108,98,117,49,48,47,56,0,47,114,100,121,108,98,117,49,48,47,57,0,47,114,100,121,108,98,117,49,49,47,49,0,47,114,100,121,108,98,117,49,49,47,49,48,0,47,114,100,121,108,98,117,49,49,47,49,49,0,47,114,100,121,108,98,117,49,49,47,50,0,47,114,100,121,108,98,117,49,49,47,51,0,47,114,100,121,108,98,117,49,49,47,52,0,47,114,100,121,108,98,117,49,49,47,53,0,47,114,100,121,108,98,117,49,49,47,54,0,47,114,-100,121,108,98,117,49,49,47,55,0,47,114,100,121,108,98,117,49,49,47,56,0,47,114,100,121,108,98,117,49,49,47,57,0,47,114,100,121,108,98,117,51,47,49,0,47,114,100,121,108,98,117,51,47,50,0,47,114,100,121,108,98,117,51,47,51,0,47,114,100,121,108,98,117,52,47,49,0,47,114,100,121,108,98,117,52,47,50,0,47,114,100,121,108,98,117,52,47,51,0,47,114,100,121,108,98,117,52,47,52,0,47,114,100,121,108,98,117,53,47,49,0,47,114,100,121,108,98,117,53,47,50,0,47,114,100,121,108,98,117,53,47,51,0,47,114,100,121,108,-98,117,53,47,52,0,47,114,100,121,108,98,117,53,47,53,0,47,114,100,121,108,98,117,54,47,49,0,47,114,100,121,108,98,117,54,47,50,0,47,114,100,121,108,98,117,54,47,51,0,47,114,100,121,108,98,117,54,47,52,0,47,114,100,121,108,98,117,54,47,53,0,47,114,100,121,108,98,117,54,47,54,0,47,114,100,121,108,98,117,55,47,49,0,47,114,100,121,108,98,117,55,47,50,0,47,114,100,121,108,98,117,55,47,51,0,47,114,100,121,108,98,117,55,47,52,0,47,114,100,121,108,98,117,55,47,53,0,47,114,100,121,108,98,117,55,47,54,0,47,-114,100,121,108,98,117,55,47,55,0,47,114,100,121,108,98,117,56,47,49,0,47,114,100,121,108,98,117,56,47,50,0,47,114,100,121,108,98,117,56,47,51,0,47,114,100,121,108,98,117,56,47,52,0,47,114,100,121,108,98,117,56,47,53,0,47,114,100,121,108,98,117,56,47,54,0,47,114,100,121,108,98,117,56,47,55,0,47,114,100,121,108,98,117,56,47,56,0,47,114,100,121,108,98,117,57,47,49,0,47,114,100,121,108,98,117,57,47,50,0,47,114,100,121,108,98,117,57,47,51,0,47,114,100,121,108,98,117,57,47,52,0,47,114,100,121,108,98,117,-57,47,53,0,47,114,100,121,108,98,117,57,47,54,0,47,114,100,121,108,98,117,57,47,55,0,47,114,100,121,108,98,117,57,47,56,0,47,114,100,121,108,98,117,57,47,57,0,47,114,100,121,108,103,110,49,48,47,49,0,47,114,100,121,108,103,110,49,48,47,49,48,0,47,114,100,121,108,103,110,49,48,47,50,0,47,114,100,121,108,103,110,49,48,47,51,0,47,114,100,121,108,103,110,49,48,47,52,0,47,114,100,121,108,103,110,49,48,47,53,0,47,114,100,121,108,103,110,49,48,47,54,0,47,114,100,121,108,103,110,49,48,47,55,0,47,114,100,-121,108,103,110,49,48,47,56,0,47,114,100,121,108,103,110,49,48,47,57,0,47,114,100,121,108,103,110,49,49,47,49,0,47,114,100,121,108,103,110,49,49,47,49,48,0,47,114,100,121,108,103,110,49,49,47,49,49,0,47,114,100,121,108,103,110,49,49,47,50,0,47,114,100,121,108,103,110,49,49,47,51,0,47,114,100,121,108,103,110,49,49,47,52,0,47,114,100,121,108,103,110,49,49,47,53,0,47,114,100,121,108,103,110,49,49,47,54,0,47,114,100,121,108,103,110,49,49,47,55,0,47,114,100,121,108,103,110,49,49,47,56,0,47,114,100,121,-108,103,110,49,49,47,57,0,47,114,100,121,108,103,110,51,47,49,0,47,114,100,121,108,103,110,51,47,50,0,47,114,100,121,108,103,110,51,47,51,0,47,114,100,121,108,103,110,52,47,49,0,47,114,100,121,108,103,110,52,47,50,0,47,114,100,121,108,103,110,52,47,51,0,47,114,100,121,108,103,110,52,47,52,0,47,114,100,121,108,103,110,53,47,49,0,47,114,100,121,108,103,110,53,47,50,0,47,114,100,121,108,103,110,53,47,51,0,47,114,100,121,108,103,110,53,47,52,0,47,114,100,121,108,103,110,53,47,53,0,47,114,100,121,108,-103,110,54,47,49,0,47,114,100,121,108,103,110,54,47,50,0,47,114,100,121,108,103,110,54,47,51,0,47,114,100,121,108,103,110,54,47,52,0,47,114,100,121,108,103,110,54,47,53,0,47,114,100,121,108,103,110,54,47,54,0,47,114,100,121,108,103,110,55,47,49,0,47,114,100,121,108,103,110,55,47,50,0,47,114,100,121,108,103,110,55,47,51,0,47,114,100,121,108,103,110,55,47,52,0,47,114,100,121,108,103,110,55,47,53,0,47,114,100,121,108,103,110,55,47,54,0,47,114,100,121,108,103,110,55,47,55,0,47,114,100,121,108,103,110,-56,47,49,0,47,114,100,121,108,103,110,56,47,50,0,47,114,100,121,108,103,110,56,47,51,0,47,114,100,121,108,103,110,56,47,52,0,47,114,100,121,108,103,110,56,47,53,0,47,114,100,121,108,103,110,56,47,54,0,47,114,100,121,108,103,110,56,47,55,0,47,114,100,121,108,103,110,56,47,56,0,47,114,100,121,108,103,110,57,47,49,0,47,114,100,121,108,103,110,57,47,50,0,47,114,100,121,108,103,110,57,47,51,0,47,114,100,121,108,103,110,57,47,52,0,47,114,100,121,108,103,110,57,47,53,0,47,114,100,121,108,103,110,57,47,54,-0,47,114,100,121,108,103,110,57,47,55,0,47,114,100,121,108,103,110,57,47,56,0,47,114,100,121,108,103,110,57,47,57,0,47,114,101,100,115,51,47,49,0,47,114,101,100,115,51,47,50,0,47,114,101,100,115,51,47,51,0,47,114,101,100,115,52,47,49,0,47,114,101,100,115,52,47,50,0,47,114,101,100,115,52,47,51,0,47,114,101,100,115,52,47,52,0,47,114,101,100,115,53,47,49,0,47,114,101,100,115,53,47,50,0,47,114,101,100,115,53,47,51,0,47,114,101,100,115,53,47,52,0,47,114,101,100,115,53,47,53,0,47,114,101,100,115,54,47,-49,0,47,114,101,100,115,54,47,50,0,47,114,101,100,115,54,47,51,0,47,114,101,100,115,54,47,52,0,47,114,101,100,115,54,47,53,0,47,114,101,100,115,54,47,54,0,47,114,101,100,115,55,47,49,0,47,114,101,100,115,55,47,50,0,47,114,101,100,115,55,47,51,0,47,114,101,100,115,55,47,52,0,47,114,101,100,115,55,47,53,0,47,114,101,100,115,55,47,54,0,47,114,101,100,115,55,47,55,0,47,114,101,100,115,56,47,49,0,47,114,101,100,115,56,47,50,0,47,114,101,100,115,56,47,51,0,47,114,101,100,115,56,47,52,0,47,114,101,100,115,-56,47,53,0,47,114,101,100,115,56,47,54,0,47,114,101,100,115,56,47,55,0,47,114,101,100,115,56,47,56,0,47,114,101,100,115,57,47,49,0,47,114,101,100,115,57,47,50,0,47,114,101,100,115,57,47,51,0,47,114,101,100,115,57,47,52,0,47,114,101,100,115,57,47,53,0,47,114,101,100,115,57,47,54,0,47,114,101,100,115,57,47,55,0,47,114,101,100,115,57,47,56,0,47,114,101,100,115,57,47,57,0,47,115,101,116,49,51,47,49,0,47,115,101,116,49,51,47,50,0,47,115,101,116,49,51,47,51,0,47,115,101,116,49,52,47,49,0,47,115,101,116,-49,52,47,50,0,47,115,101,116,49,52,47,51,0,47,115,101,116,49,52,47,52,0,47,115,101,116,49,53,47,49,0,47,115,101,116,49,53,47,50,0,47,115,101,116,49,53,47,51,0,47,115,101,116,49,53,47,52,0,47,115,101,116,49,53,47,53,0,47,115,101,116,49,54,47,49,0,47,115,101,116,49,54,47,50,0,47,115,101,116,49,54,47,51,0,47,115,101,116,49,54,47,52,0,47,115,101,116,49,54,47,53,0,47,115,101,116,49,54,47,54,0,47,115,101,116,49,55,47,49,0,47,115,101,116,49,55,47,50,0,47,115,101,116,49,55,47,51,0,47,115,101,116,49,55,47,-52,0,47,115,101,116,49,55,47,53,0,47,115,101,116,49,55,47,54,0,47,115,101,116,49,55,47,55,0,47,115,101,116,49,56,47,49,0,47,115,101,116,49,56,47,50,0,47,115,101,116,49,56,47,51,0,47,115,101,116,49,56,47,52,0,47,115,101,116,49,56,47,53,0,47,115,101,116,49,56,47,54,0,47,115,101,116,49,56,47,55,0,47,115,101,116,49,56,47,56,0,47,115,101,116,49,57,47,49,0,47,115,101,116,49,57,47,50,0,47,115,101,116,49,57,47,51,0,47,115,101,116,49,57,47,52,0,47,115,101,116,49,57,47,53,0,47,115,101,116,49,57,47,54,0,47,-115,101,116,49,57,47,55,0,47,115,101,116,49,57,47,56,0,47,115,101,116,49,57,47,57,0,47,115,101,116,50,51,47,49,0,47,115,101,116,50,51,47,50,0,47,115,101,116,50,51,47,51,0,47,115,101,116,50,52,47,49,0,47,115,101,116,50,52,47,50,0,47,115,101,116,50,52,47,51,0,47,115,101,116,50,52,47,52,0,47,115,101,116,50,53,47,49,0,47,115,101,116,50,53,47,50,0,47,115,101,116,50,53,47,51,0,47,115,101,116,50,53,47,52,0,47,115,101,116,50,53,47,53,0,47,115,101,116,50,54,47,49,0,47,115,101,116,50,54,47,50,0,47,115,101,-116,50,54,47,51,0,47,115,101,116,50,54,47,52,0,47,115,101,116,50,54,47,53,0,47,115,101,116,50,54,47,54,0,47,115,101,116,50,55,47,49,0,47,115,101,116,50,55,47,50,0,47,115,101,116,50,55,47,51,0,47,115,101,116,50,55,47,52,0,47,115,101,116,50,55,47,53,0,47,115,101,116,50,55,47,54,0,47,115,101,116,50,55,47,55,0,47,115,101,116,50,56,47,49,0,47,115,101,116,50,56,47,50,0,47,115,101,116,50,56,47,51,0,47,115,101,116,50,56,47,52,0,47,115,101,116,50,56,47,53,0,47,115,101,116,50,56,47,54,0,47,115,101,116,50,56,-47,55,0,47,115,101,116,50,56,47,56,0,47,115,101,116,51,49,48,47,49,0,47,115,101,116,51,49,48,47,49,48,0,47,115,101,116,51,49,48,47,50,0,47,115,101,116,51,49,48,47,51,0,47,115,101,116,51,49,48,47,52,0,47,115,101,116,51,49,48,47,53,0,47,115,101,116,51,49,48,47,54,0,47,115,101,116,51,49,48,47,55,0,47,115,101,116,51,49,48,47,56,0,47,115,101,116,51,49,48,47,57,0,47,115,101,116,51,49,49,47,49,0,47,115,101,116,51,49,49,47,49,48,0,47,115,101,116,51,49,49,47,49,49,0,47,115,101,116,51,49,49,47,50,0,47,115,-101,116,51,49,49,47,51,0,47,115,101,116,51,49,49,47,52,0,47,115,101,116,51,49,49,47,53,0,47,115,101,116,51,49,49,47,54,0,47,115,101,116,51,49,49,47,55,0,47,115,101,116,51,49,49,47,56,0,47,115,101,116,51,49,49,47,57,0,47,115,101,116,51,49,50,47,49,0,47,115,101,116,51,49,50,47,49,48,0,47,115,101,116,51,49,50,47,49,49,0,47,115,101,116,51,49,50,47,49,50,0,47,115,101,116,51,49,50,47,50,0,47,115,101,116,51,49,50,47,51,0,47,115,101,116,51,49,50,47,52,0,47,115,101,116,51,49,50,47,53,0,47,115,101,116,51,49,-50,47,54,0,47,115,101,116,51,49,50,47,55,0,47,115,101,116,51,49,50,47,56,0,47,115,101,116,51,49,50,47,57,0,47,115,101,116,51,51,47,49,0,47,115,101,116,51,51,47,50,0,47,115,101,116,51,51,47,51,0,47,115,101,116,51,52,47,49,0,47,115,101,116,51,52,47,50,0,47,115,101,116,51,52,47,51,0,47,115,101,116,51,52,47,52,0,47,115,101,116,51,53,47,49,0,47,115,101,116,51,53,47,50,0,47,115,101,116,51,53,47,51,0,47,115,101,116,51,53,47,52,0,47,115,101,116,51,53,47,53,0,47,115,101,116,51,54,47,49,0,47,115,101,116,51,-54,47,50,0,47,115,101,116,51,54,47,51,0,47,115,101,116,51,54,47,52,0,47,115,101,116,51,54,47,53,0,47,115,101,116,51,54,47,54,0,47,115,101,116,51,55,47,49,0,47,115,101,116,51,55,47,50,0,47,115,101,116,51,55,47,51,0,47,115,101,116,51,55,47,52,0,47,115,101,116,51,55,47,53,0,47,115,101,116,51,55,47,54,0,47,115,101,116,51,55,47,55,0,47,115,101,116,51,56,47,49,0,47,115,101,116,51,56,47,50,0,47,115,101,116,51,56,47,51,0,47,115,101,116,51,56,47,52,0,47,115,101,116,51,56,47,53,0,47,115,101,116,51,56,47,54,-0,47,115,101,116,51,56,47,55,0,47,115,101,116,51,56,47,56,0,47,115,101,116,51,57,47,49,0,47,115,101,116,51,57,47,50,0,47,115,101,116,51,57,47,51,0,47,115,101,116,51,57,47,52,0,47,115,101,116,51,57,47,53,0,47,115,101,116,51,57,47,54,0,47,115,101,116,51,57,47,55,0,47,115,101,116,51,57,47,56,0,47,115,101,116,51,57,47,57,0,47,115,112,101,99,116,114,97,108,49,48,47,49,0,47,115,112,101,99,116,114,97,108,49,48,47,49,48,0,47,115,112,101,99,116,114,97,108,49,48,47,50,0,47,115,112,101,99,116,114,97,108,49,-48,47,51,0,47,115,112,101,99,116,114,97,108,49,48,47,52,0,47,115,112,101,99,116,114,97,108,49,48,47,53,0,47,115,112,101,99,116,114,97,108,49,48,47,54,0,47,115,112,101,99,116,114,97,108,49,48,47,55,0,47,115,112,101,99,116,114,97,108,49,48,47,56,0,47,115,112,101,99,116,114,97,108,49,48,47,57,0,47,115,112,101,99,116,114,97,108,49,49,47,49,0,47,115,112,101,99,116,114,97,108,49,49,47,49,48,0,47,115,112,101,99,116,114,97,108,49,49,47,49,49,0,47,115,112,101,99,116,114,97,108,49,49,47,50,0,47,115,112,101,-99,116,114,97,108,49,49,47,51,0,47,115,112,101,99,116,114,97,108,49,49,47,52,0,47,115,112,101,99,116,114,97,108,49,49,47,53,0,47,115,112,101,99,116,114,97,108,49,49,47,54,0,47,115,112,101,99,116,114,97,108,49,49,47,55,0,47,115,112,101,99,116,114,97,108,49,49,47,56,0,47,115,112,101,99,116,114,97,108,49,49,47,57,0,47,115,112,101,99,116,114,97,108,51,47,49,0,47,115,112,101,99,116,114,97,108,51,47,50,0,47,115,112,101,99,116,114,97,108,51,47,51,0,47,115,112,101,99,116,114,97,108,52,47,49,0,47,115,112,-101,99,116,114,97,108,52,47,50,0,47,115,112,101,99,116,114,97,108,52,47,51,0,47,115,112,101,99,116,114,97,108,52,47,52,0,47,115,112,101,99,116,114,97,108,53,47,49,0,47,115,112,101,99,116,114,97,108,53,47,50,0,47,115,112,101,99,116,114,97,108,53,47,51,0,47,115,112,101,99,116,114,97,108,53,47,52,0,47,115,112,101,99,116,114,97,108,53,47,53,0,47,115,112,101,99,116,114,97,108,54,47,49,0,47,115,112,101,99,116,114,97,108,54,47,50,0,47,115,112,101,99,116,114,97,108,54,47,51,0,47,115,112,101,99,116,114,97,-108,54,47,52,0,47,115,112,101,99,116,114,97,108,54,47,53,0,47,115,112,101,99,116,114,97,108,54,47,54,0,47,115,112,101,99,116,114,97,108,55,47,49,0,47,115,112,101,99,116,114,97,108,55,47,50,0,47,115,112,101,99,116,114,97,108,55,47,51,0,47,115,112,101,99,116,114,97,108,55,47,52,0,47,115,112,101,99,116,114,97,108,55,47,53,0,47,115,112,101,99,116,114,97,108,55,47,54,0,47,115,112,101,99,116,114,97,108,55,47,55,0,47,115,112,101,99,116,114,97,108,56,47,49,0,47,115,112,101,99,116,114,97,108,56,47,50,0,47,-115,112,101,99,116,114,97,108,56,47,51,0,47,115,112,101,99,116,114,97,108,56,47,52,0,47,115,112,101,99,116,114,97,108,56,47,53,0,47,115,112,101,99,116,114,97,108,56,47,54,0,47,115,112,101,99,116,114,97,108,56,47,55,0,47,115,112,101,99,116,114,97,108,56,47,56,0,47,115,112,101,99,116,114,97,108,57,47,49,0,47,115,112,101,99,116,114,97,108,57,47,50,0,47,115,112,101,99,116,114,97,108,57,47,51,0,47,115,112,101,99,116,114,97,108,57,47,52,0,47,115,112,101,99,116,114,97,108,57,47,53,0,47,115,112,101,99,116,-114,97,108,57,47,54,0,47,115,112,101,99,116,114,97,108,57,47,55,0,47,115,112,101,99,116,114,97,108,57,47,56,0,47,115,112,101,99,116,114,97,108,57,47,57,0,47,115,118,103,47,97,108,105,99,101,98,108,117,101,0,47,115,118,103,47,97,110,116,105,113,117,101,119,104,105,116,101,0,47,115,118,103,47,97,113,117,97,0,47,115,118,103,47,97,113,117,97,109,97,114,105,110,101,0,47,115,118,103,47,97,122,117,114,101,0,47,115,118,103,47,98,101,105,103,101,0,47,115,118,103,47,98,105,115,113,117,101,0,47,115,118,103,-47,98,108,97,99,107,0,47,115,118,103,47,98,108,97,110,99,104,101,100,97,108,109,111,110,100,0,47,115,118,103,47,98,108,117,101,0,47,115,118,103,47,98,108,117,101,118,105,111,108,101,116,0,47,115,118,103,47,98,114,111,119,110,0,47,115,118,103,47,98,117,114,108,121,119,111,111,100,0,47,115,118,103,47,99,97,100,101,116,98,108,117,101,0,47,115,118,103,47,99,104,97,114,116,114,101,117,115,101,0,47,115,118,103,47,99,104,111,99,111,108,97,116,101,0,47,115,118,103,47,99,111,114,97,108,0,47,115,118,103,47,-99,111,114,110,102,108,111,119,101,114,98,108,117,101,0,47,115,118,103,47,99,111,114,110,115,105,108,107,0,47,115,118,103,47,99,114,105,109,115,111,110,0,47,115,118,103,47,99,121,97,110,0,47,115,118,103,47,100,97,114,107,98,108,117,101,0,47,115,118,103,47,100,97,114,107,99,121,97,110,0,47,115,118,103,47,100,97,114,107,103,111,108,100,101,110,114,111,100,0,47,115,118,103,47,100,97,114,107,103,114,97,121,0,47,115,118,103,47,100,97,114,107,103,114,101,101,110,0,47,115,118,103,47,100,97,114,107,103,114,-101,121,0,47,115,118,103,47,100,97,114,107,107,104,97,107,105,0,47,115,118,103,47,100,97,114,107,109,97,103,101,110,116,97,0,47,115,118,103,47,100,97,114,107,111,108,105,118,101,103,114,101,101,110,0,47,115,118,103,47,100,97,114,107,111,114,97,110,103,101,0,47,115,118,103,47,100,97,114,107,111,114,99,104,105,100,0,47,115,118,103,47,100,97,114,107,114,101,100,0,47,115,118,103,47,100,97,114,107,115,97,108,109,111,110,0,47,115,118,103,47,100,97,114,107,115,101,97,103,114,101,101,110,0,47,115,118,103,-47,100,97,114,107,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,100,97,114,107,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,100,97,114,107,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,100,97,114,107,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,100,97,114,107,118,105,111,108,101,116,0,47,115,118,103,47,100,101,101,112,112,105,110,107,0,47,115,118,103,47,100,101,101,112,115,107,121,98,108,117,101,0,47,115,118,103,47,100,105,109,103,114,97,121,0,47,115,118,103,47,-100,105,109,103,114,101,121,0,47,115,118,103,47,100,111,100,103,101,114,98,108,117,101,0,47,115,118,103,47,102,105,114,101,98,114,105,99,107,0,47,115,118,103,47,102,108,111,114,97,108,119,104,105,116,101,0,47,115,118,103,47,102,111,114,101,115,116,103,114,101,101,110,0,47,115,118,103,47,102,117,99,104,115,105,97,0,47,115,118,103,47,103,97,105,110,115,98,111,114,111,0,47,115,118,103,47,103,104,111,115,116,119,104,105,116,101,0,47,115,118,103,47,103,111,108,100,0,47,115,118,103,47,103,111,108,100,101,-110,114,111,100,0,47,115,118,103,47,103,114,97,121,0,47,115,118,103,47,103,114,101,101,110,0,47,115,118,103,47,103,114,101,101,110,121,101,108,108,111,119,0,47,115,118,103,47,103,114,101,121,0,47,115,118,103,47,104,111,110,101,121,100,101,119,0,47,115,118,103,47,104,111,116,112,105,110,107,0,47,115,118,103,47,105,110,100,105,97,110,114,101,100,0,47,115,118,103,47,105,110,100,105,103,111,0,47,115,118,103,47,105,118,111,114,121,0,47,115,118,103,47,107,104,97,107,105,0,47,115,118,103,47,108,97,118,101,-110,100,101,114,0,47,115,118,103,47,108,97,118,101,110,100,101,114,98,108,117,115,104,0,47,115,118,103,47,108,97,119,110,103,114,101,101,110,0,47,115,118,103,47,108,101,109,111,110,99,104,105,102,102,111,110,0,47,115,118,103,47,108,105,103,104,116,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,99,111,114,97,108,0,47,115,118,103,47,108,105,103,104,116,99,121,97,110,0,47,115,118,103,47,108,105,103,104,116,103,111,108,100,101,110,114,111,100,121,101,108,108,111,119,0,47,115,118,103,47,108,105,-103,104,116,103,114,97,121,0,47,115,118,103,47,108,105,103,104,116,103,114,101,101,110,0,47,115,118,103,47,108,105,103,104,116,103,114,101,121,0,47,115,118,103,47,108,105,103,104,116,112,105,110,107,0,47,115,118,103,47,108,105,103,104,116,115,97,108,109,111,110,0,47,115,118,103,47,108,105,103,104,116,115,101,97,103,114,101,101,110,0,47,115,118,103,47,108,105,103,104,116,115,107,121,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,108,105,-103,104,116,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,108,105,103,104,116,115,116,101,101,108,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,121,101,108,108,111,119,0,47,115,118,103,47,108,105,109,101,0,47,115,118,103,47,108,105,109,101,103,114,101,101,110,0,47,115,118,103,47,108,105,110,101,110,0,47,115,118,103,47,109,97,103,101,110,116,97,0,47,115,118,103,47,109,97,114,111,111,110,0,47,115,118,103,47,109,101,100,105,117,109,97,113,117,97,109,97,114,105,110,101,0,47,115,118,-103,47,109,101,100,105,117,109,98,108,117,101,0,47,115,118,103,47,109,101,100,105,117,109,111,114,99,104,105,100,0,47,115,118,103,47,109,101,100,105,117,109,112,117,114,112,108,101,0,47,115,118,103,47,109,101,100,105,117,109,115,101,97,103,114,101,101,110,0,47,115,118,103,47,109,101,100,105,117,109,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,109,101,100,105,117,109,115,112,114,105,110,103,103,114,101,101,110,0,47,115,118,103,47,109,101,100,105,117,109,116,117,114,113,117,111,105,115,101,-0,47,115,118,103,47,109,101,100,105,117,109,118,105,111,108,101,116,114,101,100,0,47,115,118,103,47,109,105,100,110,105,103,104,116,98,108,117,101,0,47,115,118,103,47,109,105,110,116,99,114,101,97,109,0,47,115,118,103,47,109,105,115,116,121,114,111,115,101,0,47,115,118,103,47,109,111,99,99,97,115,105,110,0,47,115,118,103,47,110,97,118,97,106,111,119,104,105,116,101,0,47,115,118,103,47,110,97,118,121,0,47,115,118,103,47,111,108,100,108,97,99,101,0,47,115,118,103,47,111,108,105,118,101,0,47,115,118,-103,47,111,108,105,118,101,100,114,97,98,0,47,115,118,103,47,111,114,97,110,103,101,0,47,115,118,103,47,111,114,97,110,103,101,114,101,100,0,47,115,118,103,47,111,114,99,104,105,100,0,47,115,118,103,47,112,97,108,101,103,111,108,100,101,110,114,111,100,0,47,115,118,103,47,112,97,108,101,103,114,101,101,110,0,47,115,118,103,47,112,97,108,101,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,112,97,108,101,118,105,111,108,101,116,114,101,100,0,47,115,118,103,47,112,97,112,97,121,97,119,104,105,-112,0,47,115,118,103,47,112,101,97,99,104,112,117,102,102,0,47,115,118,103,47,112,101,114,117,0,47,115,118,103,47,112,105,110,107,0,47,115,118,103,47,112,108,117,109,0,47,115,118,103,47,112,111,119,100,101,114,98,108,117,101,0,47,115,118,103,47,112,117,114,112,108,101,0,47,115,118,103,47,114,101,100,0,47,115,118,103,47,114,111,115,121,98,114,111,119,110,0,47,115,118,103,47,114,111,121,97,108,98,108,117,101,0,47,115,118,103,47,115,97,100,100,108,101,98,114,111,119,110,0,47,115,118,103,47,115,97,108,-109,111,110,0,47,115,118,103,47,115,97,110,100,121,98,114,111,119,110,0,47,115,118,103,47,115,101,97,103,114,101,101,110,0,47,115,118,103,47,115,101,97,115,104,101,108,108,0,47,115,118,103,47,115,105,101,110,110,97,0,47,115,118,103,47,115,105,108,118,101,114,0,47,115,118,103,47,115,107,121,98,108,117,101,0,47,115,118,103,47,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,115,110,111,-119,0,47,115,118,103,47,115,112,114,105,110,103,103,114,101,101,110,0,47,115,118,103,47,115,116,101,101,108,98,108,117,101,0,47,115,118,103,47,116,97,110,0,47,115,118,103,47,116,101,97,108,0,47,115,118,103,47,116,104,105,115,116,108,101,0,47,115,118,103,47,116,111,109,97,116,111,0,47,115,118,103,47,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,118,105,111,108,101,116,0,47,115,118,103,47,119,104,101,97,116,0,47,115,118,103,47,119,104,105,116,101,0,47,115,118,103,47,119,104,105,116,101,115,-109,111,107,101,0,47,115,118,103,47,121,101,108,108,111,119,0,47,115,118,103,47,121,101,108,108,111,119,103,114,101,101,110,0,47,121,108,103,110,51,47,49,0,47,121,108,103,110,51,47,50,0,47,121,108,103,110,51,47,51,0,47,121,108,103,110,52,47,49,0,47,121,108,103,110,52,47,50,0,47,121,108,103,110,52,47,51,0,47,121,108,103,110,52,47,52,0,47,121,108,103,110,53,47,49,0,47,121,108,103,110,53,47,50,0,47,121,108,103,110,53,47,51,0,47,121,108,103,110,53,47,52,0,47,121,108,103,110,53,47,53,0,47,121,108,103,-110,54,47,49,0,47,121,108,103,110,54,47,50,0,47,121,108,103,110,54,47,51,0,47,121,108,103,110,54,47,52,0,47,121,108,103,110,54,47,53,0,47,121,108,103,110,54,47,54,0,47,121,108,103,110,55,47,49,0,47,121,108,103,110,55,47,50,0,47,121,108,103,110,55,47,51,0,47,121,108,103,110,55,47,52,0,47,121,108,103,110,55,47,53,0,47,121,108,103,110,55,47,54,0,47,121,108,103,110,55,47,55,0,47,121,108,103,110,56,47,49,0,47,121,108,103,110,56,47,50,0,47,121,108,103,110,56,47,51,0,47,121,108,103,110,56,47,52,0,47,121,-108,103,110,56,47,53,0,47,121,108,103,110,56,47,54,0,47,121,108,103,110,56,47,55,0,47,121,108,103,110,56,47,56,0,47,121,108,103,110,57,47,49,0,47,121,108,103,110,57,47,50,0,47,121,108,103,110,57,47,51,0,47,121,108,103,110,57,47,52,0,47,121,108,103,110,57,47,53,0,47,121,108,103,110,57,47,54,0,47,121,108,103,110,57,47,55,0,47,121,108,103,110,57,47,56,0,47,121,108,103,110,57,47,57,0,47,121,108,103,110,98,117,51,47,49,0,47,121,108,103,110,98,117,51,47,50,0,47,121,108,103,110,98,117,51,47,51,0,47,121,-108,103,110,98,117,52,47,49,0,47,121,108,103,110,98,117,52,47,50,0,47,121,108,103,110,98,117,52,47,51,0,47,121,108,103,110,98,117,52,47,52,0,47,121,108,103,110,98,117,53,47,49,0,47,121,108,103,110,98,117,53,47,50,0,47,121,108,103,110,98,117,53,47,51,0,47,121,108,103,110,98,117,53,47,52,0,47,121,108,103,110,98,117,53,47,53,0,47,121,108,103,110,98,117,54,47,49,0,47,121,108,103,110,98,117,54,47,50,0,47,121,108,103,110,98,117,54,47,51,0,47,121,108,103,110,98,117,54,47,52,0,47,121,108,103,110,98,117,54,-47,53,0,47,121,108,103,110,98,117,54,47,54,0,47,121,108,103,110,98,117,55,47,49,0,47,121,108,103,110,98,117,55,47,50,0,47,121,108,103,110,98,117,55,47,51,0,47,121,108,103,110,98,117,55,47,52,0,47,121,108,103,110,98,117,55,47,53,0,47,121,108,103,110,98,117,55,47,54,0,47,121,108,103,110,98,117,55,47,55,0,47,121,108,103,110,98,117,56,47,49,0,47,121,108,103,110,98,117,56,47,50,0,47,121,108,103,110,98,117,56,47,51,0,47,121,108,103,110,98,117,56,47,52,0,47,121,108,103,110,98,117,56,47,53,0,47,121,108,103,-110,98,117,56,47,54,0,47,121,108,103,110,98,117,56,47,55,0,47,121,108,103,110,98,117,56,47,56,0,47,121,108,103,110,98,117,57,47,49,0,47,121,108,103,110,98,117,57,47,50,0,47,121,108,103,110,98,117,57,47,51,0,47,121,108,103,110,98,117,57,47,52,0,47,121,108,103,110,98,117,57,47,53,0,47,121,108,103,110,98,117,57,47,54,0,47,121,108,103,110,98,117,57,47,55,0,47,121,108,103,110,98,117,57,47,56,0,47,121,108,103,110,98,117,57,47,57,0,47,121,108,111,114,98,114,51,47,49,0,47,121,108,111,114,98,114,51,47,50,-0,47,121,108,111,114,98,114,51,47,51,0,47,121,108,111,114,98,114,52,47,49,0,47,121,108,111,114,98,114,52,47,50,0,47,121,108,111,114,98,114,52,47,51,0,47,121,108,111,114,98,114,52,47,52,0,47,121,108,111,114,98,114,53,47,49,0,47,121,108,111,114,98,114,53,47,50,0,47,121,108,111,114,98,114,53,47,51,0,47,121,108,111,114,98,114,53,47,52,0,47,121,108,111,114,98,114,53,47,53,0,47,121,108,111,114,98,114,54,47,49,0,47,121,108,111,114,98,114,54,47,50,0,47,121,108,111,114,98,114,54,47,51,0,47,121,108,111,114,-98,114,54,47,52,0,47,121,108,111,114,98,114,54,47,53,0,47,121,108,111,114,98,114,54,47,54,0,47,121,108,111,114,98,114,55,47,49,0,47,121,108,111,114,98,114,55,47,50,0,47,121,108,111,114,98,114,55,47,51,0,47,121,108,111,114,98,114,55,47,52,0,47,121,108,111,114,98,114,55,47,53,0,47,121,108,111,114,98,114,55,47,54,0,47,121,108,111,114,98,114,55,47,55,0,47,121,108,111,114,98,114,56,47,49,0,47,121,108,111,114,98,114,56,47,50,0,47,121,108,111,114,98,114,56,47,51,0,47,121,108,111,114,98,114,56,47,52,0,47,-121,108,111,114,98,114,56,47,53,0,47,121,108,111,114,98,114,56,47,54,0,47,121,108,111,114,98,114,56,47,55,0,47,121,108,111,114,98,114,56,47,56,0,47,121,108,111,114,98,114,57,47,49,0,47,121,108,111,114,98,114,57,47,50,0,47,121,108,111,114,98,114,57,47,51,0,47,121,108,111,114,98,114,57,47,52,0,47,121,108,111,114,98,114,57,47,53,0,47,121,108,111,114,98,114,57,47,54,0,47,121,108,111,114,98,114,57,47,55,0,47,121,108,111,114,98,114,57,47,56,0,47,121,108,111,114,98,114,57,47,57,0,47,121,108,111,114,114,-100,51,47,49,0,47,121,108,111,114,114,100,51,47,50,0,47,121,108,111,114,114,100,51,47,51,0,47,121,108,111,114,114,100,52,47,49,0,47,121,108,111,114,114,100,52,47,50,0,47,121,108,111,114,114,100,52,47,51,0,47,121,108,111,114,114,100,52,47,52,0,47,121,108,111,114,114,100,53,47,49,0,47,121,108,111,114,114,100,53,47,50,0,47,121,108,111,114,114,100,53,47,51,0,47,121,108,111,114,114,100,53,47,52,0,47,121,108,111,114,114,100,53,47,53,0,47,121,108,111,114,114,100,54,47,49,0,47,121,108,111,114,114,100,54,-47,50,0,47,121,108,111,114,114,100,54,47,51,0,47,121,108,111,114,114,100,54,47,52,0,47,121,108,111,114,114,100,54,47,53,0,47,121,108,111,114,114,100,54,47,54,0,47,121,108,111,114,114,100,55,47,49,0,47,121,108,111,114,114,100,55,47,50,0,47,121,108,111,114,114,100,55,47,51,0,47,121,108,111,114,114,100,55,47,52,0,47,121,108,111,114,114,100,55,47,53,0,47,121,108,111,114,114,100,55,47,54,0,47,121,108,111,114,114,100,55,47,55,0,47,121,108,111,114,114,100,56,47,49,0,47,121,108,111,114,114,100,56,47,50,0,-47,121,108,111,114,114,100,56,47,51,0,47,121,108,111,114,114,100,56,47,52,0,47,121,108,111,114,114,100,56,47,53,0,47,121,108,111,114,114,100,56,47,54,0,47,121,108,111,114,114,100,56,47,55,0,47,121,108,111,114,114,100,56,47,56,0,47,121,108,111,114,114,100,57,47,49,0,47,121,108,111,114,114,100,57,47,50,0,47,121,108,111,114,114,100,57,47,51,0,47,121,108,111,114,114,100,57,47,52,0,47,121,108,111,114,114,100,57,47,53,0,47,121,108,111,114,114,100,57,47,54,0,47,121,108,111,114,114,100,57,47,55,0,47,121,-108,111,114,114,100,57,47,56,0,47,121,108,111,114,114,100,57,47,57,0,97,108,105,99,101,98,108,117,101,0,97,110,116,105,113,117,101,119,104,105,116,101,0,97,110,116,105,113,117,101,119,104,105,116,101,49,0,97,110,116,105,113,117,101,119,104,105,116,101,50,0,97,110,116,105,113,117,101,119,104,105,116,101,51,0,97,110,116,105,113,117,101,119,104,105,116,101,52,0,97,113,117,97,109,97,114,105,110,101,0,97,113,117,97,109,97,114,105,110,101,49,0,97,113,117,97,109,97,114,105,110,101,50,0,97,113,117,97,109,-97,114,105,110,101,51,0,97,113,117,97,109,97,114,105,110,101,52,0,97,122,117,114,101,0,97,122,117,114,101,49,0,97,122,117,114,101,50,0,97,122,117,114,101,51,0,97,122,117,114,101,52,0,98,101,105,103,101,0,98,105,115,113,117,101,0,98,105,115,113,117,101,49,0,98,105,115,113,117,101,50,0,98,105,115,113,117,101,51,0,98,105,115,113,117,101,52,0,98,108,97,110,99,104,101,100,97,108,109,111,110,100,0,98,108,117,101,0,98,108,117,101,49,0,98,108,117,101,50,0,98,108,117,101,51,0,98,108,117,101,52,0,98,108,117,-101,118,105,111,108,101,116,0,98,114,111,119,110,0,98,114,111,119,110,49,0,98,114,111,119,110,50,0,98,114,111,119,110,51,0,98,114,111,119,110,52,0,98,117,114,108,121,119,111,111,100,0,98,117,114,108,121,119,111,111,100,49,0,98,117,114,108,121,119,111,111,100,50,0,98,117,114,108,121,119,111,111,100,51,0,98,117,114,108,121,119,111,111,100,52,0,99,97,100,101,116,98,108,117,101,0,99,97,100,101,116,98,108,117,101,49,0,99,97,100,101,116,98,108,117,101,50,0,99,97,100,101,116,98,108,117,101,51,0,99,97,100,-101,116,98,108,117,101,52,0,99,104,97,114,116,114,101,117,115,101,0,99,104,97,114,116,114,101,117,115,101,49,0,99,104,97,114,116,114,101,117,115,101,50,0,99,104,97,114,116,114,101,117,115,101,51,0,99,104,97,114,116,114,101,117,115,101,52,0,99,104,111,99,111,108,97,116,101,0,99,104,111,99,111,108,97,116,101,49,0,99,104,111,99,111,108,97,116,101,50,0,99,104,111,99,111,108,97,116,101,51,0,99,104,111,99,111,108,97,116,101,52,0,99,111,114,97,108,0,99,111,114,97,108,49,0,99,111,114,97,108,50,0,99,111,114,-97,108,51,0,99,111,114,97,108,52,0,99,111,114,110,102,108,111,119,101,114,98,108,117,101,0,99,111,114,110,115,105,108,107,0,99,111,114,110,115,105,108,107,49,0,99,111,114,110,115,105,108,107,50,0,99,111,114,110,115,105,108,107,51,0,99,111,114,110,115,105,108,107,52,0,99,114,105,109,115,111,110,0,99,121,97,110,0,99,121,97,110,49,0,99,121,97,110,50,0,99,121,97,110,51,0,99,121,97,110,52,0,100,97,114,107,103,111,108,100,101,110,114,111,100,0,100,97,114,107,103,111,108,100,101,110,114,111,100,49,0,100,-97,114,107,103,111,108,100,101,110,114,111,100,50,0,100,97,114,107,103,111,108,100,101,110,114,111,100,51,0,100,97,114,107,103,111,108,100,101,110,114,111,100,52,0,100,97,114,107,103,114,101,101,110,0,100,97,114,107,107,104,97,107,105,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,49,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,50,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,51,0,100,97,114,107,111,108,105,-118,101,103,114,101,101,110,52,0,100,97,114,107,111,114,97,110,103,101,0,100,97,114,107,111,114,97,110,103,101,49,0,100,97,114,107,111,114,97,110,103,101,50,0,100,97,114,107,111,114,97,110,103,101,51,0,100,97,114,107,111,114,97,110,103,101,52,0,100,97,114,107,111,114,99,104,105,100,0,100,97,114,107,111,114,99,104,105,100,49,0,100,97,114,107,111,114,99,104,105,100,50,0,100,97,114,107,111,114,99,104,105,100,51,0,100,97,114,107,111,114,99,104,105,100,52,0,100,97,114,107,115,97,108,109,111,110,0,100,-97,114,107,115,101,97,103,114,101,101,110,0,100,97,114,107,115,101,97,103,114,101,101,110,49,0,100,97,114,107,115,101,97,103,114,101,101,110,50,0,100,97,114,107,115,101,97,103,114,101,101,110,51,0,100,97,114,107,115,101,97,103,114,101,101,110,52,0,100,97,114,107,115,108,97,116,101,98,108,117,101,0,100,97,114,107,115,108,97,116,101,103,114,97,121,0,100,97,114,107,115,108,97,116,101,103,114,97,121,49,0,100,97,114,107,115,108,97,116,101,103,114,97,121,50,0,100,97,114,107,115,108,97,116,101,103,114,97,-121,51,0,100,97,114,107,115,108,97,116,101,103,114,97,121,52,0,100,97,114,107,115,108,97,116,101,103,114,101,121,0,100,97,114,107,116,117,114,113,117,111,105,115,101,0,100,97,114,107,118,105,111,108,101,116,0,100,101,101,112,112,105,110,107,0,100,101,101,112,112,105,110,107,49,0,100,101,101,112,112,105,110,107,50,0,100,101,101,112,112,105,110,107,51,0,100,101,101,112,112,105,110,107,52,0,100,101,101,112,115,107,121,98,108,117,101,0,100,101,101,112,115,107,121,98,108,117,101,49,0,100,101,101,112,115,-107,121,98,108,117,101,50,0,100,101,101,112,115,107,121,98,108,117,101,51,0,100,101,101,112,115,107,121,98,108,117,101,52,0,100,105,109,103,114,97,121,0,100,105,109,103,114,101,121,0,100,111,100,103,101,114,98,108,117,101,0,100,111,100,103,101,114,98,108,117,101,49,0,100,111,100,103,101,114,98,108,117,101,50,0,100,111,100,103,101,114,98,108,117,101,51,0,100,111,100,103,101,114,98,108,117,101,52,0,102,105,114,101,98,114,105,99,107,0,102,105,114,101,98,114,105,99,107,49,0,102,105,114,101,98,114,105,-99,107,50,0,102,105,114,101,98,114,105,99,107,51,0,102,105,114,101,98,114,105,99,107,52,0,102,108,111,114,97,108,119,104,105,116,101,0,102,111,114,101,115,116,103,114,101,101,110,0,103,97,105,110,115,98,111,114,111,0,103,104,111,115,116,119,104,105,116,101,0,103,111,108,100,0,103,111,108,100,49,0,103,111,108,100,50,0,103,111,108,100,51,0,103,111,108,100,52,0,103,111,108,100,101,110,114,111,100,0,103,111,108,100,101,110,114,111,100,49,0,103,111,108,100,101,110,114,111,100,50,0,103,111,108,100,101,-110,114,111,100,51,0,103,111,108,100,101,110,114,111,100,52,0,103,114,97,121,0,103,114,97,121,48,0,103,114,97,121,49,0,103,114,97,121,49,48,0,103,114,97,121,49,48,48,0,103,114,97,121,49,49,0,103,114,97,121,49,50,0,103,114,97,121,49,51,0,103,114,97,121,49,52,0,103,114,97,121,49,53,0,103,114,97,121,49,54,0,103,114,97,121,49,55,0,103,114,97,121,49,56,0,103,114,97,121,49,57,0,103,114,97,121,50,0,103,114,97,121,50,48,0,103,114,97,121,50,49,0,103,114,97,121,50,50,0,103,114,97,121,50,51,0,103,114,97,121,-50,52,0,103,114,97,121,50,53,0,103,114,97,121,50,54,0,103,114,97,121,50,55,0,103,114,97,121,50,56,0,103,114,97,121,50,57,0,103,114,97,121,51,0,103,114,97,121,51,48,0,103,114,97,121,51,49,0,103,114,97,121,51,50,0,103,114,97,121,51,51,0,103,114,97,121,51,52,0,103,114,97,121,51,53,0,103,114,97,121,51,54,0,103,114,97,121,51,55,0,103,114,97,121,51,56,0,103,114,97,121,51,57,0,103,114,97,121,52,0,103,114,97,121,52,48,0,103,114,97,121,52,49,0,103,114,97,121,52,50,0,103,114,97,121,52,51,0,103,114,97,121,52,-52,0,103,114,97,121,52,53,0,103,114,97,121,52,54,0,103,114,97,121,52,55,0,103,114,97,121,52,56,0,103,114,97,121,52,57,0,103,114,97,121,53,0,103,114,97,121,53,48,0,103,114,97,121,53,49,0,103,114,97,121,53,50,0,103,114,97,121,53,51,0,103,114,97,121,53,52,0,103,114,97,121,53,53,0,103,114,97,121,53,54,0,103,114,97,121,53,55,0,103,114,97,121,53,56,0,103,114,97,121,53,57,0,103,114,97,121,54,0,103,114,97,121,54,48,0,103,114,97,121,54,49,0,103,114,97,121,54,50,0,103,114,97,121,54,51,0,103,114,97,121,54,52,-0,103,114,97,121,54,53,0,103,114,97,121,54,54,0,103,114,97,121,54,55,0,103,114,97,121,54,56,0,103,114,97,121,54,57,0,103,114,97,121,55],"i8",4,n.q+146418);-B([103,114,97,121,55,48,0,103,114,97,121,55,49,0,103,114,97,121,55,50,0,103,114,97,121,55,51,0,103,114,97,121,55,52,0,103,114,97,121,55,53,0,103,114,97,121,55,54,0,103,114,97,121,55,55,0,103,114,97,121,55,56,0,103,114,97,121,55,57,0,103,114,97,121,56,0,103,114,97,121,56,48,0,103,114,97,121,56,49,0,103,114,97,121,56,50,0,103,114,97,121,56,51,0,103,114,97,121,56,52,0,103,114,97,121,56,53,0,103,114,97,121,56,54,0,103,114,97,121,56,55,0,103,114,97,121,56,56,0,103,114,97,121,56,57,0,103,114,97,121,57,-0,103,114,97,121,57,48,0,103,114,97,121,57,49,0,103,114,97,121,57,50,0,103,114,97,121,57,51,0,103,114,97,121,57,52,0,103,114,97,121,57,53,0,103,114,97,121,57,54,0,103,114,97,121,57,55,0,103,114,97,121,57,56,0,103,114,97,121,57,57,0,103,114,101,101,110,0,103,114,101,101,110,49,0,103,114,101,101,110,50,0,103,114,101,101,110,51,0,103,114,101,101,110,52,0,103,114,101,101,110,121,101,108,108,111,119,0,103,114,101,121,0,103,114,101,121,48,0,103,114,101,121,49,0,103,114,101,121,49,48,0,103,114,101,121,49,-48,48,0,103,114,101,121,49,49,0,103,114,101,121,49,50,0,103,114,101,121,49,51,0,103,114,101,121,49,52,0,103,114,101,121,49,53,0,103,114,101,121,49,54,0,103,114,101,121,49,55,0,103,114,101,121,49,56,0,103,114,101,121,49,57,0,103,114,101,121,50,0,103,114,101,121,50,48,0,103,114,101,121,50,49,0,103,114,101,121,50,50,0,103,114,101,121,50,51,0,103,114,101,121,50,52,0,103,114,101,121,50,53,0,103,114,101,121,50,54,0,103,114,101,121,50,55,0,103,114,101,121,50,56,0,103,114,101,121,50,57,0,103,114,101,121,-51,0,103,114,101,121,51,48,0,103,114,101,121,51,49,0,103,114,101,121,51,50,0,103,114,101,121,51,51,0,103,114,101,121,51,52,0,103,114,101,121,51,53,0,103,114,101,121,51,54,0,103,114,101,121,51,55,0,103,114,101,121,51,56,0,103,114,101,121,51,57,0,103,114,101,121,52,0,103,114,101,121,52,48,0,103,114,101,121,52,49,0,103,114,101,121,52,50,0,103,114,101,121,52,51,0,103,114,101,121,52,52,0,103,114,101,121,52,53,0,103,114,101,121,52,54,0,103,114,101,121,52,55,0,103,114,101,121,52,56,0,103,114,101,121,52,-57,0,103,114,101,121,53,0,103,114,101,121,53,48,0,103,114,101,121,53,49,0,103,114,101,121,53,50,0,103,114,101,121,53,51,0,103,114,101,121,53,52,0,103,114,101,121,53,53,0,103,114,101,121,53,54,0,103,114,101,121,53,55,0,103,114,101,121,53,56,0,103,114,101,121,53,57,0,103,114,101,121,54,0,103,114,101,121,54,48,0,103,114,101,121,54,49,0,103,114,101,121,54,50,0,103,114,101,121,54,51,0,103,114,101,121,54,52,0,103,114,101,121,54,53,0,103,114,101,121,54,54,0,103,114,101,121,54,55,0,103,114,101,121,54,56,-0,103,114,101,121,54,57,0,103,114,101,121,55,0,103,114,101,121,55,48,0,103,114,101,121,55,49,0,103,114,101,121,55,50,0,103,114,101,121,55,51,0,103,114,101,121,55,52,0,103,114,101,121,55,53,0,103,114,101,121,55,54,0,103,114,101,121,55,55,0,103,114,101,121,55,56,0,103,114,101,121,55,57,0,103,114,101,121,56,0,103,114,101,121,56,48,0,103,114,101,121,56,49,0,103,114,101,121,56,50,0,103,114,101,121,56,51,0,103,114,101,121,56,52,0,103,114,101,121,56,53,0,103,114,101,121,56,54,0,103,114,101,121,56,55,0,103,-114,101,121,56,56,0,103,114,101,121,56,57,0,103,114,101,121,57,0,103,114,101,121,57,48,0,103,114,101,121,57,49,0,103,114,101,121,57,50,0,103,114,101,121,57,51,0,103,114,101,121,57,52,0,103,114,101,121,57,53,0,103,114,101,121,57,54,0,103,114,101,121,57,55,0,103,114,101,121,57,56,0,103,114,101,121,57,57,0,104,111,110,101,121,100,101,119,0,104,111,110,101,121,100,101,119,49,0,104,111,110,101,121,100,101,119,50,0,104,111,110,101,121,100,101,119,51,0,104,111,110,101,121,100,101,119,52,0,104,111,116,112,-105,110,107,0,104,111,116,112,105,110,107,49,0,104,111,116,112,105,110,107,50,0,104,111,116,112,105,110,107,51,0,104,111,116,112,105,110,107,52,0,105,110,100,105,97,110,114,101,100,0,105,110,100,105,97,110,114,101,100,49,0,105,110,100,105,97,110,114,101,100,50,0,105,110,100,105,97,110,114,101,100,51,0,105,110,100,105,97,110,114,101,100,52,0,105,110,100,105,103,111,0,105,110,118,105,115,0,105,118,111,114,121,0,105,118,111,114,121,49,0,105,118,111,114,121,50,0,105,118,111,114,121,51,0,105,118,111,114,-121,52,0,107,104,97,107,105,0,107,104,97,107,105,49,0,107,104,97,107,105,50,0,107,104,97,107,105,51,0,107,104,97,107,105,52,0,108,97,118,101,110,100,101,114,0,108,97,118,101,110,100,101,114,98,108,117,115,104,0,108,97,118,101,110,100,101,114,98,108,117,115,104,49,0,108,97,118,101,110,100,101,114,98,108,117,115,104,50,0,108,97,118,101,110,100,101,114,98,108,117,115,104,51,0,108,97,118,101,110,100,101,114,98,108,117,115,104,52,0,108,97,119,110,103,114,101,101,110,0,108,101,109,111,110,99,104,105,102,-102,111,110,0,108,101,109,111,110,99,104,105,102,102,111,110,49,0,108,101,109,111,110,99,104,105,102,102,111,110,50,0,108,101,109,111,110,99,104,105,102,102,111,110,51,0,108,101,109,111,110,99,104,105,102,102,111,110,52,0,108,105,103,104,116,98,108,117,101,0,108,105,103,104,116,98,108,117,101,49,0,108,105,103,104,116,98,108,117,101,50,0,108,105,103,104,116,98,108,117,101,51,0,108,105,103,104,116,98,108,117,101,52,0,108,105,103,104,116,99,111,114,97,108,0,108,105,103,104,116,99,121,97,110,0,108,105,-103,104,116,99,121,97,110,49,0,108,105,103,104,116,99,121,97,110,50,0,108,105,103,104,116,99,121,97,110,51,0,108,105,103,104,116,99,121,97,110,52,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,49,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,50,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,51,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,52,0,108,105,103,104,116,103,111,108,100,101,110,114,111,-100,121,101,108,108,111,119,0,108,105,103,104,116,103,114,97,121,0,108,105,103,104,116,103,114,101,121,0,108,105,103,104,116,112,105,110,107,0,108,105,103,104,116,112,105,110,107,49,0,108,105,103,104,116,112,105,110,107,50,0,108,105,103,104,116,112,105,110,107,51,0,108,105,103,104,116,112,105,110,107,52,0,108,105,103,104,116,115,97,108,109,111,110,0,108,105,103,104,116,115,97,108,109,111,110,49,0,108,105,103,104,116,115,97,108,109,111,110,50,0,108,105,103,104,116,115,97,108,109,111,110,51,0,108,105,-103,104,116,115,97,108,109,111,110,52,0,108,105,103,104,116,115,101,97,103,114,101,101,110,0,108,105,103,104,116,115,107,121,98,108,117,101,0,108,105,103,104,116,115,107,121,98,108,117,101,49,0,108,105,103,104,116,115,107,121,98,108,117,101,50,0,108,105,103,104,116,115,107,121,98,108,117,101,51,0,108,105,103,104,116,115,107,121,98,108,117,101,52,0,108,105,103,104,116,115,108,97,116,101,98,108,117,101,0,108,105,103,104,116,115,108,97,116,101,103,114,97,121,0,108,105,103,104,116,115,108,97,116,101,-103,114,101,121,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,49,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,50,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,51,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,52,0,108,105,103,104,116,121,101,108,108,111,119,0,108,105,103,104,116,121,101,108,108,111,119,49,0,108,105,103,104,116,121,101,108,108,111,119,50,0,108,105,103,104,116,121,101,108,108,111,119,-51,0,108,105,103,104,116,121,101,108,108,111,119,52,0,108,105,109,101,103,114,101,101,110,0,108,105,110,101,110,0,109,97,103,101,110,116,97,0,109,97,103,101,110,116,97,49,0,109,97,103,101,110,116,97,50,0,109,97,103,101,110,116,97,51,0,109,97,103,101,110,116,97,52,0,109,97,114,111,111,110,0,109,97,114,111,111,110,49,0,109,97,114,111,111,110,50,0,109,97,114,111,111,110,51,0,109,97,114,111,111,110,52,0,109,101,100,105,117,109,97,113,117,97,109,97,114,105,110,101,0,109,101,100,105,117,109,98,108,117,-101,0,109,101,100,105,117,109,111,114,99,104,105,100,0,109,101,100,105,117,109,111,114,99,104,105,100,49,0,109,101,100,105,117,109,111,114,99,104,105,100,50,0,109,101,100,105,117,109,111,114,99,104,105,100,51,0,109,101,100,105,117,109,111,114,99,104,105,100,52,0,109,101,100,105,117,109,112,117,114,112,108,101,0,109,101,100,105,117,109,112,117,114,112,108,101,49,0,109,101,100,105,117,109,112,117,114,112,108,101,50,0,109,101,100,105,117,109,112,117,114,112,108,101,51,0,109,101,100,105,117,109,112,117,-114,112,108,101,52,0,109,101,100,105,117,109,115,101,97,103,114,101,101,110,0,109,101,100,105,117,109,115,108,97,116,101,98,108,117,101,0,109,101,100,105,117,109,115,112,114,105,110,103,103,114,101,101,110,0,109,101,100,105,117,109,116,117,114,113,117,111,105,115,101,0,109,101,100,105,117,109,118,105,111,108,101,116,114,101,100,0,109,105,100,110,105,103,104,116,98,108,117,101,0,109,105,110,116,99,114,101,97,109,0,109,105,115,116,121,114,111,115,101,0,109,105,115,116,121,114,111,115,101,49,0,109,105,-115,116,121,114,111,115,101,50,0,109,105,115,116,121,114,111,115,101,51,0,109,105,115,116,121,114,111,115,101,52,0,109,111,99,99,97,115,105,110,0,110,97,118,97,106,111,119,104,105,116,101,0,110,97,118,97,106,111,119,104,105,116,101,49,0,110,97,118,97,106,111,119,104,105,116,101,50,0,110,97,118,97,106,111,119,104,105,116,101,51,0,110,97,118,97,106,111,119,104,105,116,101,52,0,110,97,118,121,0,110,97,118,121,98,108,117,101,0,110,111,110,101,0,111,108,100,108,97,99,101,0,111,108,105,118,101,100,114,-97,98,0,111,108,105,118,101,100,114,97,98,49,0,111,108,105,118,101,100,114,97,98,50,0,111,108,105,118,101,100,114,97,98,51,0,111,108,105,118,101,100,114,97,98,52,0,111,114,97,110,103,101,0,111,114,97,110,103,101,49,0,111,114,97,110,103,101,50,0,111,114,97,110,103,101,51,0,111,114,97,110,103,101,52,0,111,114,97,110,103,101,114,101,100,0,111,114,97,110,103,101,114,101,100,49,0,111,114,97,110,103,101,114,101,100,50,0,111,114,97,110,103,101,114,101,100,51,0,111,114,97,110,103,101,114,101,100,52,0,111,-114,99,104,105,100,0,111,114,99,104,105,100,49,0,111,114,99,104,105,100,50,0,111,114,99,104,105,100,51,0,111,114,99,104,105,100,52,0,112,97,108,101,103,111,108,100,101,110,114,111,100,0,112,97,108,101,103,114,101,101,110,0,112,97,108,101,103,114,101,101,110,49,0,112,97,108,101,103,114,101,101,110,50,0,112,97,108,101,103,114,101,101,110,51,0,112,97,108,101,103,114,101,101,110,52,0,112,97,108,101,116,117,114,113,117,111,105,115,101,0,112,97,108,101,116,117,114,113,117,111,105,115,101,49,0,112,97,108,-101,116,117,114,113,117,111,105,115,101,50,0,112,97,108,101,116,117,114,113,117,111,105,115,101,51,0,112,97,108,101,116,117,114,113,117,111,105,115,101,52,0,112,97,108,101,118,105,111,108,101,116,114,101,100,0,112,97,108,101,118,105,111,108,101,116,114,101,100,49,0,112,97,108,101,118,105,111,108,101,116,114,101,100,50,0,112,97,108,101,118,105,111,108,101,116,114,101,100,51,0,112,97,108,101,118,105,111,108,101,116,114,101,100,52,0,112,97,112,97,121,97,119,104,105,112,0,112,101,97,99,104,112,117,102,-102,0,112,101,97,99,104,112,117,102,102,49,0,112,101,97,99,104,112,117,102,102,50,0,112,101,97,99,104,112,117,102,102,51,0,112,101,97,99,104,112,117,102,102,52,0,112,101,114,117,0,112,105,110,107,0,112,105,110,107,49,0,112,105,110,107,50,0,112,105,110,107,51,0,112,105,110,107,52,0,112,108,117,109,0,112,108,117,109,49,0,112,108,117,109,50,0,112,108,117,109,51,0,112,108,117,109,52,0,112,111,119,100,101,114,98,108,117,101,0,112,117,114,112,108,101,0,112,117,114,112,108,101,49,0,112,117,114,112,108,101,-50,0,112,117,114,112,108,101,51,0,112,117,114,112,108,101,52,0,114,101,100,0,114,101,100,49,0,114,101,100,50,0,114,101,100,51,0,114,101,100,52,0,114,111,115,121,98,114,111,119,110,0,114,111,115,121,98,114,111,119,110,49,0,114,111,115,121,98,114,111,119,110,50,0,114,111,115,121,98,114,111,119,110,51,0,114,111,115,121,98,114,111,119,110,52,0,114,111,121,97,108,98,108,117,101,0,114,111,121,97,108,98,108,117,101,49,0,114,111,121,97,108,98,108,117,101,50,0,114,111,121,97,108,98,108,117,101,51,0,114,111,-121,97,108,98,108,117,101,52,0,115,97,100,100,108,101,98,114,111,119,110,0,115,97,108,109,111,110,0,115,97,108,109,111,110,49,0,115,97,108,109,111,110,50,0,115,97,108,109,111,110,51,0,115,97,108,109,111,110,52,0,115,97,110,100,121,98,114,111,119,110,0,115,101,97,103,114,101,101,110,0,115,101,97,103,114,101,101,110,49,0,115,101,97,103,114,101,101,110,50,0,115,101,97,103,114,101,101,110,51,0,115,101,97,103,114,101,101,110,52,0,115,101,97,115,104,101,108,108,0,115,101,97,115,104,101,108,108,49,0,115,-101,97,115,104,101,108,108,50,0,115,101,97,115,104,101,108,108,51,0,115,101,97,115,104,101,108,108,52,0,115,105,101,110,110,97,0,115,105,101,110,110,97,49,0,115,105,101,110,110,97,50,0,115,105,101,110,110,97,51,0,115,105,101,110,110,97,52,0,115,107,121,98,108,117,101,0,115,107,121,98,108,117,101,49,0,115,107,121,98,108,117,101,50,0,115,107,121,98,108,117,101,51,0,115,107,121,98,108,117,101,52,0,115,108,97,116,101,98,108,117,101,0,115,108,97,116,101,98,108,117,101,49,0,115,108,97,116,101,98,108,117,-101,50,0,115,108,97,116,101,98,108,117,101,51,0,115,108,97,116,101,98,108,117,101,52,0,115,108,97,116,101,103,114,97,121,0,115,108,97,116,101,103,114,97,121,49,0,115,108,97,116,101,103,114,97,121,50,0,115,108,97,116,101,103,114,97,121,51,0,115,108,97,116,101,103,114,97,121,52,0,115,108,97,116,101,103,114,101,121,0,115,110,111,119,0,115,110,111,119,49,0,115,110,111,119,50,0,115,110,111,119,51,0,115,110,111,119,52,0,115,112,114,105,110,103,103,114,101,101,110,0,115,112,114,105,110,103,103,114,101,101,-110,49,0,115,112,114,105,110,103,103,114,101,101,110,50,0,115,112,114,105,110,103,103,114,101,101,110,51,0,115,112,114,105,110,103,103,114,101,101,110,52,0,115,116,101,101,108,98,108,117,101,0,115,116,101,101,108,98,108,117,101,49,0,115,116,101,101,108,98,108,117,101,50,0,115,116,101,101,108,98,108,117,101,51,0,115,116,101,101,108,98,108,117,101,52,0,116,97,110,0,116,97,110,49,0,116,97,110,50,0,116,97,110,51,0,116,97,110,52,0,116,104,105,115,116,108,101,0,116,104,105,115,116,108,101,49,0,116,104,-105,115,116,108,101,50,0,116,104,105,115,116,108,101,51,0,116,104,105,115,116,108,101,52,0,116,111,109,97,116,111,0,116,111,109,97,116,111,49,0,116,111,109,97,116,111,50,0,116,111,109,97,116,111,51,0,116,111,109,97,116,111,52,0,116,117,114,113,117,111,105,115,101,0,116,117,114,113,117,111,105,115,101,49,0,116,117,114,113,117,111,105,115,101,50,0,116,117,114,113,117,111,105,115,101,51,0,116,117,114,113,117,111,105,115,101,52,0,118,105,111,108,101,116,0,118,105,111,108,101,116,114,101,100,0,118,105,-111,108,101,116,114,101,100,49,0,118,105,111,108,101,116,114,101,100,50,0,118,105,111,108,101,116,114,101,100,51,0,118,105,111,108,101,116,114,101,100,52,0,119,104,101,97,116,0,119,104,101,97,116,49,0,119,104,101,97,116,50,0,119,104,101,97,116,51,0,119,104,101,97,116,52,0,119,104,105,116,101,0,119,104,105,116,101,115,109,111,107,101,0,121,101,108,108,111,119,0,121,101,108,108,111,119,49,0,121,101,108,108,111,119,50,0,121,101,108,108,111,119,51,0,121,101,108,108,111,119,52,0,121,101,108,108,111,119,-103,114,101,101,110,0,47,37,115,47,37,115,0,105,109,97,103,101,115,99,97,108,101,0,102,97,108,115,101,0,98,108,97,99,107,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,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,37,100,0,65,103,110,111,100,101,105,110,102,111,95,116,0,114,111,119,103,0,99,111,108,103,0,65,103,114,97,112,104,105,110,102,111,95,116,0,45,62,0,45,45,0,60,84,65,66,76,69,62,0,-100,101,108,120,32,62,61,32,48,0,104,116,109,108,116,97,98,108,101,46,99,0,112,111,115,95,104,116,109,108,95,116,98,108,0,100,101,108,121,32,62,61,32,48,0,116,97,98,108,101,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,99,111,110,116,101,110,116,10,0,102,105,120,101,100,32,116,97,98,108,101,32,115,105,122,101,32,119,105,116,104,32,117,110,115,112,101,99,105,102,105,101,100,32,119,105,100,116,104,32,111,114,32,104,101,105,103,104,116,10,0,78,111,32,111,114,32,105,109,112,-114,111,112,101,114,32,105,109,97,103,101,32,102,105,108,101,61,34,37,115,34,10,0,99,101,108,108,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,99,111,110,116,101,110,116,10,0,102,105,120,101,100,32,99,101,108,108,32,115,105,122,101,32,119,105,116,104,32,117,110,115,112,101,99,105,102,105,101,100,32,119,105,100,116,104,32,111,114,32,104,101,105,103,104,116,10,0,112,101,110,99,111,108,111,114,0,99,111,108,111,114,0,65,103,101,100,103,101,105,110,102,111,95,116,0,49,0,50,-0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,49,48,0,49,49,0,49,50,0,49,51,0,49,52,0,49,53,0,49,54,0,49,55,0,49,56,0,49,57,0,50,48,0,99,112,45,62,115,114,99,0,101,109,105,116,95,104,116,109,108,95,105,109,103,0,99,112,45,62,115,114,99,91,48,93,0,100,97,115,104,101,100,0,100,111,116,116,101,100,0,116,114,97,110,115,112,97,114,101,110,116,0,95,37,100,0,102,80,81,46,99,0,80,81,99,104,101,99,107,0,72,101,97,112,32,111,118,101,114,102,108,111,119,10,0,37,37,37,37,80,97,103,101,58,32,49,32,49,10,37,37,37,37,80,-97,103,101,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,102,32,37,102,32,116,114,97,110,115,108,97,116,101,10,0,48,32,48,32,49,32,115,101,116,114,103,98,99,111,108,111,114,10,0,37,102,32,37,102,32,37,102,32,37,102,32,110,111,100,101,10,0,48,32,48,32,48,32,115,101,116,114,103,98,99,111,108,111,114,10,0,37,102,32,37,102,32,37,102,32,37,102,32,99,101,108,108,10,0,49,32,48,32,48,32,115,101,116,114,103,98,99,111,108,111,114,10,0,102,97,105,108,101,100,32,-97,116,32,110,111,100,101,32,37,100,91,48,93,10,0,110,112,45,62,99,101,108,108,115,91,48,93,0,109,97,122,101,46,99,0,99,104,107,83,103,114,97,112,104,0,102,97,105,108,101,100,32,97,116,32,110,111,100,101,32,37,100,91,49,93,10,0,110,112,45,62,99,101,108,108,115,91,49,93,0,37,33,80,83,45,65,100,111,98,101,45,50,46,48,10,47,110,111,100,101,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,47,-120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,125,32,100,101,102,10,47,99,101,108,108,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,-100,101,102,10,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,0,115,104,111,119,112,97,103,101,10,0,100,105,116,101,109,115,0,102,105,110,100,83,86,101,114,116,0,117,110,101,120,112,101,99,-116,101,100,32,99,97,115,101,32,105,110,32,108,111,99,97,116,101,95,101,110,100,112,111,105,110,116,10,0,48,0,116,114,97,112,101,122,111,105,100,46,99,0,108,111,99,97,116,101,95,101,110,100,112,111,105,110,116,0,97,100,100,95,115,101,103,109,101,110,116,58,32,101,114,114,111,114,10,0,110,101,119,116,114,97,112,58,32,84,114,97,112,101,122,111,105,100,45,116,97,98,108,101,32,111,118,101,114,102,108,111,119,32,37,100,10,0,110,101,119,116,114,97,112,0,110,101,119,110,111,100,101,58,32,81,117,101,114,-121,45,116,97,98,108,101,32,111,118,101,114,102,108,111,119,10,0,110,101,119,110,111,100,101,0,105,110,100,101,120,46,99,0,82,84,114,101,101,83,101,97,114,99,104,0,110,45,62,108,101,118,101,108,32,62,61,32,48,0,82,84,114,101,101,73,110,115,101,114,116,0,108,101,118,101,108,32,62,61,32,48,32,38,38,32,108,101,118,101,108,32,60,61,32,40,42,110,41,45,62,108,101,118,101,108,0,114,45,62,98,111,117,110,100,97,114,121,91,105,93,32,60,61,32,114,45,62,98,111,117,110,100,97,114,121,91,78,85,77,68,73,77,83,32,-43,32,105,93,0,114,32,38,38,32,110,32,38,38,32,110,101,119,0,82,84,114,101,101,73,110,115,101,114,116,50,0,108,101,118,101,108,32,62,61,32,48,32,38,38,32,108,101,118,101,108,32,60,61,32,110,45,62,108,101,118,101,108,0,70,65,76,83,69,0,110,111,100,101,46,99,0,78,111,100,101,67,111,118,101,114,0,114,32,38,38,32,110,0,80,105,99,107,66,114,97,110,99,104,0,65,100,100,66,114,97,110,99,104,0,105,32,60,32,78,79,68,69,67,65,82,68,0,110,101,119,0,110,32,38,38,32,105,32,62,61,32,48,32,38,38,32,105,32,60,32,-78,79,68,69,67,65,82,68,0,68,105,115,99,111,110,66,114,97,110,99,104,0,114,0,114,101,99,116,97,110,103,108,101,46,99,0,82,101,99,116,65,114,101,97,0,114,32,38,38,32,114,114,0,67,111,109,98,105,110,101,82,101,99,116,0,114,32,38,38,32,115,0,79,118,101,114,108,97,112,0,110,0,115,112,108,105,116,46,113,46,99,0,83,112,108,105,116,78,111,100,101,0,98,0,110,45,62,98,114,97,110,99,104,91,105,93,46,99,104,105,108,100,0,71,101,116,66,114,97,110,99,104,101,115,0,114,116,112,45,62,115,112,108,105,116,46,80,97,-114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,48,93,32,43,32,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,49,93,32,61,61,32,78,79,68,69,67,65,82,68,32,43,32,49,0,77,101,116,104,111,100,90,101,114,111,0,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,48,93,32,62,61,32,114,116,112,45,62,77,105,110,70,105,108,108,32,38,38,32,114,116,112,45,62,115,112,-108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,49,93,32,62,61,32,114,116,112,45,62,77,105,110,70,105,108,108,0,113,0,76,111,97,100,78,111,100,101,115,0,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,112,97,114,116,105,116,105,111,110,91,105,93,32,61,61,32,48,32,124,124,32,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,112,97,114,116,105,116,105,111,110,91,105,93,32,61,61,-32,49,0,110,45,62,99,111,117,110,116,32,43,32,40,42,110,110,41,45,62,99,111,117,110,116,32,61,61,32,78,79,68,69,67,65,82,68,32,43,32,49,0,33,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,116,97,107,101,110,91,105,93,0,67,108,97,115,115,105,102,121,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,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,2,2,2,2,2,2,16,12,89,1,0,31,80,8,3,7,18,19,20,87,22,23,8,11,105,12,31,10,5,12,14,41,-17,43,15,45,16,47,48,32,50,6,52,53,27,28,29,30,11,12,33,34,35,36,37,38,39,40,12,24,25,23,4,10,27,28,26,32,42,10,33,34,35,36,37,38,39,40,12,10,14,83,10,44,88,49,88,88,88,88,88,88,12,27,28,15,46,88,51,33,34,35,36,37,38,39,40,27,28,255,83,255,255,33,34,35,36,37,38,39,40,12,255,255,5,255,255,255,9,20,255,255,255,255,255,12,27,28,255,16,21,22,33,34,35,36,37,38,39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,12,255,18,19,20,17,22,23,255,255,255,255,255,255,12,27,28,255,255,255,18,33,34,35,36,37,38,-39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,12,255,255,255,255,255,255,19,255,255,255,255,255,255,12,27,28,255,255,255,255,33,34,35,36,37,38,39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,18,19,20,21,22,23,24,25,255,255,255,255,255,255,255,255,255,35,36,37,38,39,27,18,19,20,22,23,34,54,104,1,31,56,86,33,32,2,27,27,27,94,27,27,55,57,112,54,210,194,79,4,60,34,71,34,63,34,68,34,34,88,34,101,34,34,5,6,95,96,57,4,7,8,9,10,11,12,13,14,4,102,103,93,106,109,5,6,111,88,59,113,7,8,9,10,11,12,13,-14,4,114,60,91,115,62,97,70,27,18,19,20,22,23,4,5,6,63,65,98,73,7,8,9,10,11,12,13,14,5,6,0,92,0,0,7,8,9,10,11,12,13,14,4,0,0,79,0,0,0,83,66,0,0,0,0,0,4,5,6,0,68,84,85,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,4,0,42,44,46,71,49,51,0,0,0,0,0,0,4,5,6,0,0,0,74,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,4,0,0,0,0,0,0,76,0,0,0,0,0,0,4,5,6,0,0,0,0,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,41,43,45,47,48,50,52,53,0,0,0,0,0,0,0,0,0,41,43,45,48,50,0,4,47,0,36,35,0,18,20,-22,26,28,30,32,24,0,5,7,47,47,47,0,47,47,0,0,9,8,40,0,0,1,34,2,6,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,37,3,38,19,10,41,21,11,42,23,14,45,25,17,27,12,43,29,13,44,31,15,33,16,0,51,0,48,0,47,67,0,49,0,47,0,53,46,39,66,50,65,0,58,56,0,60,52,69,0,54,0,64,0,0,63,0,68,55,59,57,61,0,2,3,3,1,1,2,1,1,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,0,6,1,3,3,3,3,3,1,0,1,2,3,0,4,1,2,3,0,4,0,4,0,4,0,3,2,1,2,1,2,1,83,121,110,116,97,120,32,101,114,114,111,114,58,32,110,111,110,45,115,112,97,99,101,32,-115,116,114,105,110,103,32,117,115,101,100,32,98,101,102,111,114,101,32,60,84,65,66,76,69,62,0,83,121,110,116,97,120,32,101,114,114,111,114,58,32,110,111,110,45,115,112,97,99,101,32,115,116,114,105,110,103,32,117,115,101,100,32,97,102,116,101,114,32,60,47,84,65,66,76,69,62,0,0,41,42,42,42,43,44,44,45,45,45,45,45,45,45,45,45,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,62,63,63,65,64,66,66,66,66,66,66,67,67,68,68,68,70,69,71,71,71,73,72,74,72,75,72,76,72,77,77,78,78,79,79,255,3,15,16,17,35,-58,36,61,37,64,21,67,38,69,39,72,24,75,25,77,26,40,28,78,29,30,80,81,82,89,90,108,107,110,99,100,87,105,115,121,110,116,97,120,32,101,114,114,111,114,0,109,101,109,111,114,121,32,101,120,104,97,117,115,116,101,100,0,0,0,37,115,32,105,110,32,108,105,110,101,32,37,100,32,10,0,78,111,116,32,98,117,105,108,116,32,119,105,116,104,32,108,105,98,101,120,112,97,116,46,32,84,97,98,108,101,32,102,111,114,109,97,116,116,105,110,103,32,105,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,46,10,0,114,111,-117,116,101,46,99,0,108,105,98,112,97,116,104,47,37,115,58,37,100,58,32,37,115,10,0,115,104,111,114,116,101,115,116,46,99,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,112,110,108,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,112,110,108,112,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,112,110,108,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,112,110,108,112,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,100,113,46,112,110,108,115,0,99,97,110,-110,111,116,32,114,101,97,108,108,111,99,32,100,113,46,112,110,108,115,0,116,114,105,97,110,103,117,108,97,116,105,111,110,32,102,97,105,108,101,100,0,115,111,117,114,99,101,32,112,111,105,110,116,32,110,111,116,32,105,110,32,97,110,121,32,116,114,105,97,110,103,108,101,0,100,101,115,116,105,110,97,116,105,111,110,32,112,111,105,110,116,32,110,111,116,32,105,110,32,97,110,121,32,116,114,105,97,110,103,108,101,0,99,97,110,110,111,116,32,102,105,110,100,32,116,114,105,97,110,103,108,101,32,112,97,116,-104,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,111,112,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,111,112,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,116,114,105,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,116,114,105,115,0,18,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,17,34,35,36,17,37,38,39,40,41,42,43,44,17,45,46,47,16,16,48,16,16,16,16,16,16,16,49,50,51,16,52,53,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,-17,17,54,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,55,17,17,17,17,56,17,57,58,59,60,61,62,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,63,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,-16,16,16,16,16,16,16,17,64,65,17,66,67,68,69,70,71,72,73,16,16,16,74,75,76,77,78,16,16,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,17,17,17,82,83,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,84,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,85,16,16,16,16,86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,-16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,87,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,88,89,90,91,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,92,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,-0,0,0,0,0,0,0,0,254,255,255,7,254,255,255,7,0,0,0,0,0,4,32,4,255,255,127,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,195,255,3,0,31,80,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,223,60,64,215,255,255,251,255,255,255,255,255,255,255,255,255,191,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,254,255,255,255,127,2,254,255,255,255,255,0,-0,0,0,0,255,191,182,0,255,255,255,7,7,0,0,0,255,7,255,255,255,255,255,255,255,254,255,195,255,255,255,255,255,255,255,255,255,255,255,255,239,31,254,225,255,159,0,0,255,255,255,255,255,255,0,224,255,255,255,255,255,255,255,255,255,255,255,255,3,0,255,255,255,255,255,7,48,4,255,255,255,252,255,31,0,0,255,255,255,1,0,0,0,0,0,0,0,0,253,31,0,0,0,0,0,0,240,3,255,127,255,255,255,255,255,255,255,239,255,223,225,255,207,255,254,254,238,159,249,255,255,253,197,227,159,89,128,176,207,255,3,0,238,135,249,255,-255,253,109,195,135,25,2,94,192,255,63,0,238,191,251,255,255,253,237,227,191,27,1,0,207,255,0,0,238,159,249,255,255,253,237,227,159,25,192,176,207,255,2,0,236,199,61,214,24,199,255,195,199,29,129,0,192,255,0,0,238,223,253,255,255,253,239,227,223,29,96,3,207,255,0,0,236,223,253,255,255,253,239,227,223,29,96,64,207,255,6,0,236,223,253,255,255,255,255,231,223,93,128,0,207,255,0,252,236,255,127,252,255,255,251,47,127,128,95,255,0,0,12,0,254,255,255,255,255,127,255,7,63,32,255,3,0,0,0,0,150,37,240,254,-174,236,255,59,95,32,255,243,0,0,0,0,1,0,0,0,255,3,0,0,255,254,255,255,255,31,254,255,3,255,255,254,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,249,255,3,255,255,231,193,255,255,127,64,255,51,255,255,255,255,191,32,255,255,255,255,255,247,255,255,255,255,255,255,255,255,255,61,127,61,255,255,255,255,255,61,255,255,255,255,61,127,61,255,127,255,255,255,255,255,255,255,61,255,255,255,255,255,255,255,255,135,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,31,0,254,255,255,-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,159,255,255,254,255,255,7,255,255,255,255,255,255,255,255,255,199,1,0,255,223,15,0,255,255,15,0,255,255,15,0,255,223,13,0,255,255,255,255,255,255,207,255,255,1,128,16,255,3,0,0,0,0,255,3,255,255,255,255,255,255,255,255,255,255,255,0,255,255,255,255,255,7,255,255,255,255,255,255,255,255,63,0,255,255,255,31,255,15,255,1,192,255,255,255,-255,63,31,0,255,255,255,255,255,15,255,255,255,3,255,3,0,0,0,0,255,255,255,15,255,255,255,255,255,255,255,127,254,255,31,0,255,3,255,3,128,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,239,255,239,15,255,3,0,0,0,0,255,255,255,255,255,243,255,255,255,255,255,255,191,255,3,0,255,255,255,255,255,255,63,0,255,227,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,222,111,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,63,63,255,255,-255,255,63,63,255,170,255,255,255,63,255,255,255,255,255,255,223,95,220,31,207,15,255,31,220,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,128,0,0,255,31,0,0,0,0,0,0,0,0,0,0,0,0,132,252,47,62,80,189,255,243,224,67,0,0,255,255,255,255,255,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,0,0,0,0,0,0,0,192,255,255,255,255,255,255,3,0,0,255,255,255,255,255,127,255,255,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,120,12,0,255,255,255,255,191,32,255,255,255,255,255,255,-255,128,0,0,255,255,127,0,127,127,127,127,127,127,127,127,255,255,255,255,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,0,0,0,0,0,0,224,0,0,0,254,3,62,31,254,255,255,255,255,255,255,255,255,255,127,224,254,255,255,255,255,255,255,255,255,255,255,247,224,255,255,255,255,63,254,255,255,255,255,255,255,255,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,63,255,31,255,255,255,15,0,0,255,255,255,255,255,127,240,143,255,255,255,128,255,255,255,255,255,255,255,255,255,255,0,0,0,0,128,255,252,255,255,255,255,255,255,255,255,255,255,255,255,121,15,0,255,7,0,0,0,0,0,0,0,0,0,255,187,247,255,255,255,0,0,0,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,-15,0,255,3,0,0,252,8,255,255,255,255,255,7,255,255,255,255,7,0,255,255,255,31,255,255,255,255,255,255,247,255,0,128,255,3,0,0,0,0,255,255,255,255,255,255,127,0,255,63,255,3,255,255,127,4,255,255,255,255,255,255,255,127,5,0,0,56,255,255,60,0,126,126,126,0,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,7,255,3,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,127,248,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,255,-63,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,127,0,248,224,255,253,127,95,219,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,248,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,255,255,255,255,255,255,255,255,252,255,255,255,255,255,255,0,0,0,0,0,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,255,3,254,255,255,7,254,255,255,7,192,255,255,255,255,255,255,255,255,255,255,127,252,252,252,28,0,0,0,0,-255,239,255,255,127,255,255,183,255,63,255,63,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,255,255,255,255,255,255,31,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,255,255,255,31,255,255,255,255,255,255,1,0,0,0,0,0,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,63,255,255,255,255,15,255,62],"i8",4,n.q+156658);-B([255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,3,0,0,0,0,0,0,0,0,0,0,63,253,255,255,255,255,191,145,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,63,0,255,255,255,3,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,192,0,0,0,0,0,0,0,0,111,240,239,254,255,255,15,0,0,0,0,0,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,255,63,0,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,1,0,0,0,0,0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,192,255,0,0,252,255,255,255,255,255,255,1,0,0,255,255,255,1,255,3,255,255,255,255,255,255,199,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,30,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,-255,255,255,255,127,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,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,31,0,255,255,255,255,255,127,0,0,248,255,0,0,0,0,0,0,0,0,0,0,0,0,3,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,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,223,100,222,255,235,239,255,255,255,255,255,255,255,191,231,223,223,255,255,255,123,95,252,253,255,255,255,255,255,-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,253,255,255,247,255,255,255,247,255,255,223,255,255,255,223,255,255,127,255,255,255,127,255,255,255,253,255,255,255,253,255,255,247,207,255,255,255,255,255,255,239,255,255,255,150,254,247,10,132,234,150,170,150,247,247,94,255,251,255,15,238,251,255,15,0,0,0,0,0,0,0,0,97,108,110,117,109,0,97,108,112,104,97,0,98,108,97,110,107,0,99,110,116,114,-108,0,100,105,103,105,116,0,103,114,97,112,104,0,108,111,119,101,114,0,112,114,105,110,116,0,112,117,110,99,116,0,115,112,97,99,101,0,117,112,112,101,114,0,120,100,105,103,105,116,0,18,16,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,16,16,34,35,16,36,37,38,39,40,41,42,43,16,44,45,46,17,47,48,17,17,49,17,17,17,50,51,52,53,54,55,56,57,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,58,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,-16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,59,16,60,61,62,63,64,65,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,66,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,67,16,16,68,16,69,70,71,16,72,16,73,16,16,16,16,74,75,76,77,16,16,78,16,79,80,-16,16,16,16,81,16,16,16,16,16,16,16,16,16,16,16,16,16,82,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,83,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,-16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,84,85,86,87,16,16,88,89,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,90,16,91,92,93,94,95,96,97,98,16,16,16,16,16,16,16,16,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,0,252,1,0,0,248,1,0,0,120,0,0,0,0,255,251,223,251,0,0,128,0,0,0,128,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,60,0,252,255,224,175,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,32,64,176,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,3,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,252,0,0,0,0,0,134,254,255,255,255,0,64,73,0,0,0,0,0,24,0,223,255,0,200,0,0,0,0,0,0,0,1,0,60,0,0,0,0,0,0,0,0,0,0,0,0,16,224,1,30,0,96,255,191,0,0,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,207,3,0,0,0,3,0,32,255,127,0,0,0,78,0,0,0,0,0,0,-0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,16,0,32,30,0,48,0,1,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,252,15,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,3,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,253,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,255,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,63,2,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,0,0,0,0,0,0,128,0,128,192,223,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,254,255,255,255,0,252,255,255,0,0,0,0,0,0,0,0,252,-0,0,0,0,0,0,192,255,223,255,7,0,0,0,0,0,0,0,0,0,0,128,6,0,252,0,0,24,62,0,0,128,191,0,204,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,96,255,255,255,31,0,0,255,3,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,1,0,0,24,0,0,0,0,0,0,0,0,0,56,0,0,0,0,16,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,254,127,47,0,0,255,3,255,127,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,14,49,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,0,0,196,255,255,255,255,0,0,0,192,0,0,0,0,0,0,0,0,1,0,224,159,0,0,0,0,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,0,252,255,255,255,31,0,0,0,0,0,12,0,0,0,0,0,0,64,0,12,240,0,0,0,0,0,0,192,248,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,255,0,255,255,255,33,16,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,255,255,255,255,127,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,3,224,0,224,0,224,0,96,128,248,255,255,255,252,255,255,255,255,255,127,31,252,241,127,255,127,0,0,255,255,-255,3,0,0,255,255,255,255,1,0,123,3,208,193,175,66,0,12,31,188,255,255,0,0,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,127,0,0,0,255,7,0,0,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,252,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,-255,255,255,255,255,255,255,31,255,3,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,224,135,3,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,255,15,0,0,0,0,0,0,0,0,255,255,255,251,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,255,15,30,255,255,255,1,252,193,224,0,0,0,0,0,0,0,0,0,0,0,30,1,0,0,-0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,15,0,0,0,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,0,0,0,0,0,0,192,0,224,0,0,0,0,0,0,0,0,0,0,0,128,15,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,127,0,3,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,-0,0,0,0,0,0,0,0,0,0,0,0,68,8,0,0,0,15,255,3,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,16,192,0,0,255,255,3,7,0,0,0,0,0,248,0,0,0,0,8,128,0,0,0,0,0,0,0,0,0,0,8,0,255,63,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,128,11,0,0,0,0,0,0,0,128,2,0,0,192,0,0,67,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,56,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,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,128,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,3,0,0,-0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,255,255,255,3,127,0,255,255,255,255,247,255,127,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,254,255,0,252,1,0,0,248,1,0,0,248,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,0,48,135,255,255,255,255,255,143,255,0,0,0,0,0,0,224,255,255,7,255,15,0,0,0,0,0,0,255,255,255,255,255,63,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,143,0,0,0,128,-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,135,255,0,255,1,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,0,0,0,255,0,0,0,255,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,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,63,252,255,63,0,0,0,3,0,0,0,0,0,0,254,3,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,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,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,-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,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,255,255,255,255,127,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,127,0,255,255,3,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,8,0,0,0,8,0,0,32,0,0,0,32,0,0,128,0,0,0,128,0,0,0,2,0,0,0,2,0,0,8,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,3,0,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,127,254,127,254,255,254,255,0,0,0,0,255,7,255,255,255,127,255,255,255,255,255,255,255,15,255,255,255,255,255,7,0,0,0,0,0,0,0,0,192,255,255,255,7,0,255,255,255,255,255,7,255,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,255,255,255,255,1,0,191,255,255,255,255,255,255,255,255,31,255,255,15,0,255,255,255,255,223,7,0,0,255,255,1,0,255,255,255,255,255,255,255,127,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,30,255,255,255,255,255,255,255,63,15,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,255,255,255,255,255,255,255,225,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,0,0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,-110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,-116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,-101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,-114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,-0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,-116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,-32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,-101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,-115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,-32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,-32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,-101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,-108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,47,112,114,111,99,47,115,101,108,102,47,102,100,47,0,67,46,85,84,70,45,56,0,114,119,97,0,119,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,116,-109,112,0,47,116,109,112,47,116,37,120,45,37,120],"i8",4,n.q+166901);-B([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,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,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,-0,0,14,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,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,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,18,0,0,0,18,18,18,0,0,0,0,0,0,9,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,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,-48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,9,0,10,0,13,0,12,0,7,0,27,0,91,91,58,97,108,110,117,109,58,93,95,93,0,91,94,91,58,97,108,110,117,109,58,93,95,93,0,91,91,58,115,112,97,99,101,58,93,93,0,91,94,91,58,115,112,97,99,101,58,93,93,0,91,91,58,100,105,103,105,116,58,93,93,0,91,94,91,58,100,105,103,105,116,58,93,93,0],"i8",4,n.q+-175088);var gb=n.na(B(12,"i8",2),8);assert(0==gb%8);e._i64Subtract=hb;var ib=ya;e._i64Add=jb;-var I={J:1,H:2,$c:3,Xb:4,Y:5,Da:6,qb:7,uc:8,S:9,Eb:10,za:11,ld:11,Ba:12,R:13,Qb:14,Gc:15,ka:16,Aa:17,md:18,Z:19,ma:20,M:21,p:22,pc:23,Qa:24,T:25,hd:26,Rb:27,Cc:28,$:29,Xc:30,ic:31,Qc:32,Nb:33,Uc:34,yc:42,Ub:43,Fb:44,$b:45,ac:46,bc:47,hc:48,jd:49,sc:50,Zb:51,Kb:35,vc:37,wb:52,zb:53,nd:54,qc:55,Ab:56,Bb:57,Lb:35,Cb:59,Ec:60,tc:61,dd:62,Dc:63,zc:64,Ac:65,Wc:66,wc:67,tb:68,ad:69,Gb:70,Rc:71,kc:72,Ob:73,yb:74,Lc:76,xb:77,Vc:78,cc:79,dc:80,gc:81,fc:82,ec:83,Fc:38,Ca:39,lc:36,la:40,Mc:95,Pc:96,Jb:104,rc:105,-ub:97,Tc:91,Jc:88,Bc:92,Yc:108,Ib:111,rb:98,Hb:103,oc:101,mc:100,ed:110,Sb:112,Tb:113,Wb:115,vb:114,Mb:89,jc:90,Sc:93,Zc:94,sb:99,nc:102,Yb:106,Hc:107,gd:109,kd:87,Pb:122,bd:116,Kc:95,xc:123,Vb:84,Nc:75,Db:125,Ic:131,Oc:130,cd:86},kb={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",-13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",-35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",-54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",-75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",-92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",-109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function lb(a){e.___errno_location&&(z[e.___errno_location()>>2]=a);return a}-function mb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function nb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=mb(a.split("/").filter(function(a){return!!a}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}-function ob(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function pb(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}function qb(){var a=Array.prototype.slice.call(arguments,0);return nb(a.join("/"))}function rb(a,b){return nb(a+"/"+b)}-function sb(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!==typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=mb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var tb=[];function ub(a,b){tb[a]={input:[],output:[],P:b};vb(a,wb)}-var wb={open:function(a){var b=tb[a.g.rdev];if(!b)throw new J(I.Z);a.tty=b;a.seekable=!1},close:function(a){a.tty.P.flush(a.tty)},flush:function(a){a.tty.P.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.P.Na)throw new J(I.Da);for(var f=0,g=0;g<d;g++){var k;try{k=a.tty.P.Na(a.tty)}catch(h){throw new J(I.Y);}if(void 0===k&&0===f)throw new J(I.za);if(null===k||void 0===k)break;f++;b[c+g]=k}f&&(a.g.timestamp=Date.now());return f},write:function(a,b,c,d){if(!a.tty||!a.tty.P.ta)throw new J(I.Da);-for(var f=0;f<d;f++)try{a.tty.P.ta(a.tty,b[c+f])}catch(g){throw new J(I.Y);}d&&(a.g.timestamp=Date.now());return f}},xb={Na:function(a){if(!a.input.length){var b=null;if(da){var c=new Buffer(256),d=0,f=process.stdin.fd,g=!1;try{f=fs.openSync("/dev/stdin","r"),g=!0}catch(k){}d=fs.readSync(f,c,0,256,null);g&&fs.closeSync(f);0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&-(b=readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=Xa(b,!0)}return a.input.shift()},ta:function(a,b){null===b||10===b?(e.print(Ca(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(e.print(Ca(a.output,0)),a.output=[])}},yb={ta:function(a,b){null===b||10===b?(e.printErr(Ca(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(e.printErr(Ca(a.output,0)),a.output=[])}},K={G:null,A:function(){return K.createNode(null,-"/",16895,0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new J(I.J);K.G||(K.G={dir:{g:{D:K.k.D,F:K.k.F,lookup:K.k.lookup,U:K.k.U,rename:K.k.rename,unlink:K.k.unlink,rmdir:K.k.rmdir,readdir:K.k.readdir,symlink:K.k.symlink},stream:{I:K.n.I}},file:{g:{D:K.k.D,F:K.k.F},stream:{I:K.n.I,read:K.n.read,write:K.n.write,Ea:K.n.Ea,ga:K.n.ga,ha:K.n.ha}},link:{g:{D:K.k.D,F:K.k.F,readlink:K.k.readlink},stream:{}},Ga:{g:{D:K.k.D,F:K.k.F},stream:zb}});c=Ab(a,b,c,d);L(c.mode)?(c.k=K.G.dir.g,-c.n=K.G.dir.stream,c.e={}):32768===(c.mode&61440)?(c.k=K.G.file.g,c.n=K.G.file.stream,c.o=0,c.e=null):40960===(c.mode&61440)?(c.k=K.G.link.g,c.n=K.G.link.stream):8192===(c.mode&61440)&&(c.k=K.G.Ga.g,c.n=K.G.Ga.stream);c.timestamp=Date.now();a&&(a.e[b]=c);return c},Xa:function(a){if(a.e&&a.e.subarray){for(var b=[],c=0;c<a.o;++c)b.push(a.e[c]);return b}return a.e},zd:function(a){return a.e?a.e.subarray?a.e.subarray(0,a.o):new Uint8Array(a.e):new Uint8Array},Ia:function(a,b){a.e&&a.e.subarray&&b>a.e.length&&-(a.e=K.Xa(a),a.o=a.e.length);if(!a.e||a.e.subarray){var c=a.e?a.e.buffer.byteLength:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.e,a.e=new Uint8Array(b),0<a.o&&a.e.set(c.subarray(0,a.o),0))}else for(!a.e&&0<b&&(a.e=[]);a.e.length<b;)a.e.push(0)},jb:function(a,b){if(a.o!=b)if(0==b)a.e=null,a.o=0;else{if(!a.e||a.e.subarray){var c=a.e;a.e=new Uint8Array(new ArrayBuffer(b));c&&a.e.set(c.subarray(0,Math.min(b,a.o)))}else if(a.e||(a.e=[]),a.e.length>b)a.e.length=b;else for(;a.e.length<-b;)a.e.push(0);a.o=b}},k:{D:function(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;L(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.o:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.L=4096;b.blocks=Math.ceil(b.size/b.L);return b},F:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==-b.size&&K.jb(a,b.size)},lookup:function(){throw Bb[I.H];},U:function(a,b,c,d){return K.createNode(a,b,c,d)},rename:function(a,b,c){if(L(a.mode)){var d;try{d=Cb(b,c)}catch(f){}if(d)for(var g in d.e)throw new J(I.Ca);}delete a.parent.e[a.name];a.name=c;b.e[c]=a;a.parent=b},unlink:function(a,b){delete a.e[b]},rmdir:function(a,b){var c=Cb(a,b),d;for(d in c.e)throw new J(I.Ca);delete a.e[b]},readdir:function(a){var b=[".",".."],c;for(c in a.e)a.e.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,-b,c){a=K.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(40960!==(a.mode&61440))throw new J(I.p);return a.link}},n:{read:function(a,b,c,d,f){var g=a.g.e;if(f>=a.g.o)return 0;a=Math.min(a.g.o-f,d);assert(0<=a);if(8<a&&g.subarray)b.set(g.subarray(f,f+a),c);else for(d=0;d<a;d++)b[c+d]=g[f+d];return a},write:function(a,b,c,d,f,g){if(!d)return 0;a=a.g;a.timestamp=Date.now();if(b.subarray&&(!a.e||a.e.subarray)){if(g)return a.e=b.subarray(c,c+d),a.o=d;if(0===a.o&&0===f)return a.e=new Uint8Array(b.subarray(c,-c+d)),a.o=d;if(f+d<=a.o)return a.e.set(b.subarray(c,c+d),f),d}K.Ia(a,f+d);if(a.e.subarray&&b.subarray)a.e.set(b.subarray(c,c+d),f);else for(g=0;g<d;g++)a.e[f+g]=b[c+g];a.o=Math.max(a.o,f+d);return d},I:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.g.mode&61440)&&(b+=a.g.o);if(0>b)throw new J(I.p);return b},Ea:function(a,b,c){K.Ia(a.g,b+c);a.g.o=Math.max(a.g.o,b+c)},ga:function(a,b,c,d,f,g,k){if(32768!==(a.g.mode&61440))throw new J(I.Z);c=a.g.e;if(k&2||c.buffer!==b&&c.buffer!==b.buffer){if(0<-f||f+d<a.g.o)c.subarray?c=c.subarray(f,f+d):c=Array.prototype.slice.call(c,f,f+d);a=!0;d=xa(d);if(!d)throw new J(I.Ba);b.set(c,d)}else a=!1,d=c.byteOffset;return{gb:d,oa:a}},ha:function(a,b,c,d,f){if(32768!==(a.g.mode&61440))throw new J(I.Z);if(f&2)return 0;K.n.write(a,b,0,d,c,!1);return 0}}},M={fa:!1,nb:function(){M.fa=!!process.platform.match(/^win/)},A:function(a){assert(da);return M.createNode(null,"/",M.La(a.sa.root),0)},createNode:function(a,b,c){if(!L(c)&&32768!==(c&61440)&&40960!==(c&61440))throw new J(I.p);-a=Ab(a,b,c);a.k=M.k;a.n=M.n;return a},La:function(a){var b;try{b=fs.lstatSync(a),M.fa&&(b.mode=b.mode|(b.mode&146)>>1)}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}return b.mode},B:function(a){for(var b=[];a.parent!==a;)b.push(a.name),a=a.parent;b.push(a.A.sa.root);b.reverse();return qb.apply(null,b)},Ja:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",-4096:"rs",4098:"rs+"},Ua:function(a){a&=-32769;if(a in M.Ja)return M.Ja[a];throw new J(I.p);},k:{D:function(a){a=M.B(a);var b;try{b=fs.lstatSync(a)}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}M.fa&&!b.L&&(b.L=4096);M.fa&&!b.blocks&&(b.blocks=(b.size+b.L-1)/b.L|0);return{dev:b.dev,ino:b.ino,mode:b.mode,nlink:b.nlink,uid:b.uid,gid:b.gid,rdev:b.rdev,size:b.size,atime:b.atime,mtime:b.mtime,ctime:b.ctime,L:b.L,blocks:b.blocks}},F:function(a,b){var c=M.B(a);try{void 0!==b.mode&&(fs.chmodSync(c,-b.mode),a.mode=b.mode),void 0!==b.size&&fs.truncateSync(c,b.size)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},lookup:function(a,b){var c=rb(M.B(a),b),c=M.La(c);return M.createNode(a,b,c)},U:function(a,b,c,d){a=M.createNode(a,b,c,d);b=M.B(a);try{L(a.mode)?fs.mkdirSync(b,a.mode):fs.writeFileSync(b,"",{mode:a.mode})}catch(f){if(!f.code)throw f;throw new J(I[f.code]);}return a},rename:function(a,b,c){a=M.B(a);b=rb(M.B(b),c);try{fs.renameSync(a,b)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);-}},unlink:function(a,b){var c=rb(M.B(a),b);try{fs.unlinkSync(c)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},rmdir:function(a,b){var c=rb(M.B(a),b);try{fs.rmdirSync(c)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},readdir:function(a){a=M.B(a);try{return fs.readdirSync(a)}catch(b){if(!b.code)throw b;throw new J(I[b.code]);}},symlink:function(a,b,c){a=rb(M.B(a),b);try{fs.symlinkSync(c,a)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},readlink:function(a){var b=M.B(a);try{return b=-fs.readlinkSync(b),b=Db.relative(Db.resolve(a.A.sa.root),b)}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}}},n:{open:function(a){var b=M.B(a.g);try{32768===(a.g.mode&61440)&&(a.W=fs.openSync(b,M.Ua(a.flags)))}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}},close:function(a){try{32768===(a.g.mode&61440)&&a.W&&fs.closeSync(a.W)}catch(b){if(!b.code)throw b;throw new J(I[b.code]);}},read:function(a,b,c,d,f){if(0===d)return 0;var g=new Buffer(d),k;try{k=fs.readSync(a.W,g,0,d,f)}catch(h){throw new J(I[h.code]);-}if(0<k)for(a=0;a<k;a++)b[c+a]=g[a];return k},write:function(a,b,c,d,f){b=new Buffer(b.subarray(c,c+d));var g;try{g=fs.writeSync(a.W,b,0,d,f)}catch(k){throw new J(I[k.code]);}return g},I:function(a,b,c){if(1===c)b+=a.position;else if(2===c&&32768===(a.g.mode&61440))try{b+=fs.fstatSync(a.W).size}catch(d){throw new J(I[d.code]);}if(0>b)throw new J(I.p);return b}}};B(1,"i32*",2);B(1,"i32*",2);B(1,"i32*",2);var Eb=null,Gb=[null],N=[],Hb=1,O=null,Ib=!0,P={},J=null,Bb={};-function Q(a,b){a=sb("/",a);b=b||{};if(!a)return{path:"",g:null};var c={Ka:!0,ua:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);if(8<b.ua)throw new J(I.la);var c=mb(a.split("/").filter(function(a){return!!a}),!1),f=Eb;d="/";for(var g=0;g<c.length;g++){var k=g===c.length-1;if(k&&b.parent)break;f=Cb(f,c[g]);d=rb(d,c[g]);f.V&&(!k||k&&b.Ka)&&(f=f.V.root);if(!k||b.da)for(k=0;40960===(f.mode&61440);)if(f=Jb(d),d=sb(ob(d),f),f=Q(d,{ua:b.ua}).g,40<k++)throw new J(I.la);}return{path:d,g:f}}-function Kb(a){for(var b;;){if(a===a.parent)return a=a.A.Oa,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}}function Lb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%O.length}function Mb(a){var b=Lb(a.parent.id,a.name);a.O=O[b];O[b]=a}function Cb(a,b){var c;if(c=(c=Nb(a,"x"))?c:a.k.lookup?0:I.R)throw new J(c,a);for(c=O[Lb(a.id,b)];c;c=c.O){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.k.lookup(a,b)}-function Ab(a,b,c,d){Ob||(Ob=function(a,b,c,d){a||(a=this);this.parent=a;this.A=a.A;this.V=null;this.id=Hb++;this.name=b;this.mode=c;this.k={};this.n={};this.rdev=d},Ob.prototype={},Object.defineProperties(Ob.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Fd:{get:function(){return L(this.mode)}},Ed:{get:function(){return 8192===(this.mode&-61440)}}}));a=new Ob(a,b,c,d);Mb(a);return a}function L(a){return 16384===(a&61440)}var Pb={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function Nb(a,b){if(Ib)return 0;if(-1===b.indexOf("r")||a.mode&292){if(-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73))return I.R}else return I.R;return 0}function Qb(a,b){try{return Cb(a,b),I.Aa}catch(c){}return Nb(a,"wx")}-function Rb(a){var b;b=4096;for(a=a||0;a<=b;a++)if(!N[a])return a;throw new J(I.Qa);}function Sb(a,b){Tb||(Tb=function(){},Tb.prototype={},Object.defineProperties(Tb.prototype,{object:{get:function(){return this.g},set:function(a){this.g=a}},Gd:{get:function(){return 1!==(this.flags&2097155)}},Hd:{get:function(){return 0!==(this.flags&2097155)}},Dd:{get:function(){return this.flags&1024}}}));var c=new Tb,d;for(d in a)c[d]=a[d];a=c;c=Rb(b);a.fd=c;return N[c]=a}-var zb={open:function(a){a.n=Gb[a.g.rdev].n;a.n.open&&a.n.open(a)},I:function(){throw new J(I.$);}};function vb(a,b){Gb[a]={n:b}}function Ub(a,b){var c="/"===b,d=!b,f;if(c&&Eb)throw new J(I.ka);if(!c&&!d){f=Q(b,{Ka:!1});b=f.path;f=f.g;if(f.V)throw new J(I.ka);if(!L(f.mode))throw new J(I.ma);}var d={type:a,sa:{},Oa:b,fb:[]},g=a.A(d);g.A=d;d.root=g;c?Eb=g:f&&(f.V=d,f.A&&f.A.fb.push(d))}-function Vb(a,b,c){var d=Q(a,{parent:!0}).g;a=pb(a);if(!a||"."===a||".."===a)throw new J(I.p);var f=Qb(d,a);if(f)throw new J(f);if(!d.k.U)throw new J(I.J);return d.k.U(d,a,b,c)}function R(a){var b;b=(void 0!==b?b:511)&1023;b|=16384;Vb(a,b,0)}function Wb(a,b,c){"undefined"===typeof c&&(c=b,b=438);Vb(a,b|8192,c)}function Xb(a,b){if(!sb(a))throw new J(I.H);var c=Q(b,{parent:!0}).g;if(!c)throw new J(I.H);var d=pb(b),f=Qb(c,d);if(f)throw new J(f);if(!c.k.symlink)throw new J(I.J);c.k.symlink(c,d,a)}-function Jb(a){a=Q(a).g;if(!a)throw new J(I.H);if(!a.k.readlink)throw new J(I.p);return sb(Kb(a.parent),a.k.readlink(a))}-function Yb(a,b,c,d){if(""===a)throw new J(I.H);if("string"===typeof b){var f=Pb[b];if("undefined"===typeof f)throw Error("Unknown file open mode: "+b);b=f}c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;var g;if("object"===typeof a)g=a;else{a=nb(a);try{g=Q(a,{da:!(b&131072)}).g}catch(k){}}f=!1;if(b&64)if(g){if(b&128)throw new J(I.Aa);}else g=Vb(a,c,0),f=!0;if(!g)throw new J(I.H);8192===(g.mode&61440)&&(b&=-513);if(b&65536&&!L(g.mode))throw new J(I.ma);if(!f&&(g?40960===(g.mode&61440)?c=I.la:L(g.mode)&&-(0!==(b&2097155)||b&512)?c=I.M:(c=["r","w","rw"][b&3],b&512&&(c+="w"),c=Nb(g,c)):c=I.H,c))throw new J(c);if(b&512){c=g;var h;"string"===typeof c?h=Q(c,{da:!0}).g:h=c;if(!h.k.F)throw new J(I.J);if(L(h.mode))throw new J(I.M);if(32768!==(h.mode&61440))throw new J(I.p);if(c=Nb(h,"w"))throw new J(c);h.k.F(h,{size:0,timestamp:Date.now()})}b&=-641;d=Sb({g:g,path:Kb(g),flags:b,seekable:!0,position:0,n:g.n,ob:[],error:!1},d);d.n.open&&d.n.open(d);!e.logReadFiles||b&1||(Zb||(Zb={}),a in Zb||(Zb[a]=1,e.printErr("read file: "+-a)));try{P.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=1),0!==(b&2097155)&&(g|=2),P.onOpenFile(a,g))}catch(u){console.log("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+u.message)}return d}function $b(a){a.ra&&(a.ra=null);try{a.n.close&&a.n.close(a)}catch(b){throw b;}finally{N[a.fd]=null}}function ac(a,b,c){if(!a.seekable||!a.n.I)throw new J(I.$);a.position=a.n.I(a,b,c);a.ob=[]}-function bc(){J||(J=function(a,b){this.g=b;this.kb=function(a){this.u=a;for(var b in I)if(I[b]===a){this.code=b;break}};this.kb(a);this.message=kb[a]},J.prototype=Error(),J.prototype.constructor=J,[I.H].forEach(function(a){Bb[a]=new J(a);Bb[a].stack="<generic error, no stack>"}))}var cc;function dc(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}-function ec(a,b,c){a=rb("/dev",a);var d=dc(!!b,!!c);fc||(fc=64);var f=fc++<<8|0;vb(f,{open:function(a){a.seekable=!1},close:function(){c&&c.buffer&&c.buffer.length&&c(10)},read:function(a,c,d,f){for(var p=0,t=0;t<f;t++){var r;try{r=b()}catch(A){throw new J(I.Y);}if(void 0===r&&0===p)throw new J(I.za);if(null===r||void 0===r)break;p++;c[d+t]=r}p&&(a.g.timestamp=Date.now());return p},write:function(a,b,d,f){for(var p=0;p<f;p++)try{c(b[d+p])}catch(t){throw new J(I.Y);}f&&(a.g.timestamp=Date.now());return p}});-Wb(a,d,f)}var fc,S={},Ob,Tb,Zb,gc={};-function hc(a,b){try{var c,d=Q(a,{da:!0}).g;if(!d)throw new J(I.H);if(!d.k.D)throw new J(I.J);c=d.k.D(d)}catch(f){if(f&&f.g&&nb(a)!==nb(Kb(f.g)))return-I.ma;throw f;}z[b>>2]=c.dev;z[b+4>>2]=0;z[b+8>>2]=c.ino;z[b+12>>2]=c.mode;z[b+16>>2]=c.nlink;z[b+20>>2]=c.uid;z[b+24>>2]=c.gid;z[b+28>>2]=c.rdev;z[b+32>>2]=0;z[b+36>>2]=c.size;z[b+40>>2]=4096;z[b+44>>2]=c.blocks;z[b+48>>2]=c.atime.getTime()/1E3|0;z[b+52>>2]=0;z[b+56>>2]=c.mtime.getTime()/1E3|0;z[b+60>>2]=0;z[b+64>>2]=c.ctime.getTime()/1E3|0;z[b+68>>-2]=0;z[b+72>>2]=c.ino;return 0}var T=0;function W(){T+=4;return z[T-4>>2]}function ic(){var a;a=W();a=N[a];if(!a)throw new J(I.S);return a}function jc(){throw"bad";}e._realloc=jc;e._saveSetjmp=kc;function lc(a){e.exit(a)}e._bitshift64Lshr=mc;function nc(a,b){H.push(function(){n.N("vi",a,[b])});nc.level=H.length}e._testSetjmp=oc;function pc(a,b){X.setThrew(a,b||1);throw"longjmp";}var qc=B(1,"i32*",2);-function rc(a){var b,c;rc.C?(c=z[qc>>2],b=z[c>>2]):(rc.C=!0,Y.USER=Y.LOGNAME="web_user",Y.PATH="/",Y.PWD="/",Y.HOME="/home/web_user",Y.LANG="C",Y._=e.thisProgram,b=B(1024,"i8",2),c=B(256,"i8*",2),z[c>>2]=b,z[qc>>2]=c);var d=[],f=0,g;for(g in a)if("string"===typeof a[g]){var k=g+"="+a[g];d.push(k);f+=k.length}if(1024<f)throw Error("Environment size exceeded TOTAL_ENV_SIZE!");for(a=0;a<d.length;a++){f=k=d[a];g=b;for(var h=0;h<f.length;++h)x[g++>>0]=f.charCodeAt(h);x[g>>0]=0;z[c+4*a>>2]=b;b+=k.length+-1}z[c+4*d.length>>2]=0}var Y={};function sc(a){if(0===a)return 0;a=y(a);if(!Y.hasOwnProperty(a))return 0;sc.C&&Ea(sc.C);sc.C=B(Xa(Y[a]),"i8",0);return sc.C}e._memcpy=tc;function uc(a){uc.bb||(q=Ha(),uc.bb=!0,assert(n.ba),uc.Wa=n.ba,n.ba=function(){v("cannot dynamically allocate, sbrk now has control")});var b=q;return 0==a||uc.Wa(a)?b:4294967295}e._memmove=vc;e._memset=wc;e._bitshift64Shl=xc;var yc=ya,zc=Aa;-function Ac(a,b){Bc=a;Cc=b;if(!Dc)return 1;if(0==a)Z=function(){setTimeout(Ec,b)},Fc="timeout";else if(1==a)Z=function(){Gc(Ec)},Fc="rAF";else if(2==a){if(!window.setImmediate){var c=[];window.addEventListener("message",function(a){a.source===window&&"__emcc"===a.data&&(a.stopPropagation(),c.shift()())},!0);window.setImmediate=function(a){c.push(a);window.postMessage("__emcc","*")}}Z=function(){window.setImmediate(Ec)};Fc="immediate"}return 0}-function Hc(a,b,c,d,f){e.noExitRuntime=!0;assert(!Dc,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Dc=a;Ic=d;var g=Jc;Ec=function(){if(!w)if(0<Kc.length){var b=Date.now(),c=Kc.shift();c.Va(c.aa);if(Lc){var f=Lc,p=0==f%1?f-1:Math.floor(f);Lc=c.ud?p:(8*f+(p+.5))/9}console.log('main loop blocker "'+c.name+'" took '+(Date.now()-b)+" ms");Mc();setTimeout(Ec,0)}else g<-Jc||(Nc=Nc+1|0,1==Bc&&1<Cc&&0!=Nc%Cc?Z():("timeout"===Fc&&e.pa&&(e.X("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Fc=""),Oc(function(){"undefined"!==typeof d?n.N("vi",a,[d]):n.N("v",a)}),g<Jc||("object"===typeof SDL&&SDL.audio&&SDL.audio.hb&&SDL.audio.hb(),Z())))};f||(b&&0<b?Ac(0,1E3/b):Ac(1,1),Z());if(c)throw"SimulateInfiniteLoop";-}var Z=null,Fc="",Jc=0,Dc=null,Ic=0,Bc=0,Cc=0,Nc=0,Kc=[];function Mc(){if(e.setStatus){var a=e.statusMessage||"Please wait...",b=Lc,c=Pc.wd;b?b<c?e.setStatus(a+" ("+(c-b)+"/"+c+")"):e.setStatus(a):e.setStatus("")}}function Oc(a){if(!(w||e.preMainLoop&&!1===e.preMainLoop())){try{a()}catch(b){if(b instanceof ja)return;b&&"object"===typeof b&&b.stack&&e.X("exception thrown: "+[b,b.stack]);throw b;}e.postMainLoop&&e.postMainLoop()}}var Pc={},Ec,Lc,Qc=!1,Rc=!1,Sc=[];-function Tc(){function a(){Rc=document.pointerLockElement===c||document.mozPointerLockElement===c||document.webkitPointerLockElement===c||document.msPointerLockElement===c}e.preloadPlugins||(e.preloadPlugins=[]);if(!Uc){Uc=!0;try{Vc=!0}catch(b){Vc=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Wc="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Vc?null:console.log("warning: no BlobBuilder");Xc="undefined"!=-typeof window?window.URL?window.URL:window.webkitURL:void 0;e.Pa||"undefined"!==typeof Xc||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),e.Pa=!0);e.preloadPlugins.push({canHandle:function(a){return!e.Pa&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,b,c,k){var h=null;if(Vc)try{h=new Blob([a],{type:Yc(b)}),h.size!==a.length&&(h=new Blob([(new Uint8Array(a)).buffer],{type:Yc(b)}))}catch(u){n.Q("Blob constructor present but fails: "+-u+"; falling back to blob builder")}h||(h=new Wc,h.append((new Uint8Array(a)).buffer),h=h.getBlob());var p=Xc.createObjectURL(h),t=new Image;t.onload=function(){assert(t.complete,"Image "+b+" could not be decoded");var h=document.createElement("canvas");h.width=t.width;h.height=t.height;h.getContext("2d").drawImage(t,0,0);e.preloadedImages[b]=h;Xc.revokeObjectURL(p);c&&c(a)};t.onerror=function(){console.log("Image "+p+" could not be decoded");k&&k()};t.src=p}});e.preloadPlugins.push({canHandle:function(a){return!e.Kd&&-a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,b,c,k){function h(h){p||(p=!0,e.preloadedAudios[b]=h,c&&c(a))}function u(){p||(p=!0,e.preloadedAudios[b]=new Audio,k&&k())}var p=!1;if(Vc){try{var t=new Blob([a],{type:Yc(b)})}catch(r){return u()}var t=Xc.createObjectURL(t),A=new Audio;A.addEventListener("canplaythrough",function(){h(A)},!1);A.onerror=function(){if(!p){console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach");for(var c="",g=0,k=0,-r=0;r<a.length;r++)for(g=g<<8|a[r],k+=8;6<=k;)var t=g>>k-6&63,k=k-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[t];2==k?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(g&3)<<4],c+="=="):4==k&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(g&15)<<2],c+="=");A.src="data:audio/x-"+b.substr(-3)+";base64,"+c;h(A)}};A.src=t;Zc(function(){h(A)})}else return u()}});var c=e.canvas;c&&(c.va=c.requestPointerLock||c.mozRequestPointerLock||-c.webkitRequestPointerLock||c.msRequestPointerLock||function(){},c.Ha=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},c.Ha=c.Ha.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),e.elementPointerLock&&c.addEventListener("click",function(a){!Rc&&-c.va&&(c.va(),a.preventDefault())},!1))}}function $c(a,b,c,d){if(b&&e.pa&&a==e.canvas)return e.pa;var f,g;if(b){g={antialias:!1,alpha:!1};if(d)for(var k in d)g[k]=d[k];if(g=GL.createContext(a,g))f=GL.getContext(g).od;a.style.backgroundColor="black"}else f=a.getContext("2d");if(!f)return null;c&&(b||assert("undefined"===typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),e.pa=f,b&&GL.Jd(g),e.Md=b,Sc.forEach(function(a){a()}),Tc());return f}-var ad=!1,bd=void 0,cd=void 0;-function dd(a,b,c){function d(){Qc=!1;var a=f.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a?(f.Fa=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},-f.Fa=f.Fa.bind(document),bd&&f.va(),Qc=!0,cd&&ed()):(a.parentNode.insertBefore(f,a),a.parentNode.removeChild(a),cd&&fd());if(e.onFullScreen)e.onFullScreen(Qc);gd(f)}bd=a;cd=b;hd=c;"undefined"===typeof bd&&(bd=!0);"undefined"===typeof cd&&(cd=!1);"undefined"===typeof hd&&(hd=null);var f=e.canvas;ad||(ad=!0,document.addEventListener("fullscreenchange",d,!1),document.addEventListener("mozfullscreenchange",d,!1),document.addEventListener("webkitfullscreenchange",d,!1),document.addEventListener("MSFullscreenChange",-d,!1));var g=document.createElement("div");f.parentNode.insertBefore(g,f);g.appendChild(f);g.C=g.requestFullScreen||g.mozRequestFullScreen||g.msRequestFullscreen||(g.webkitRequestFullScreen?function(){g.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null);c?g.C({Nd:c}):g.C()}var id=0;function jd(a){var b=Date.now();if(0===id)id=b+1E3/60;else for(;b+2>=id;)id+=1E3/60;b=Math.max(id-b,0);setTimeout(a,b)}-function Gc(a){"undefined"===typeof window?jd(a):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||jd),window.requestAnimationFrame(a))}function Zc(a){e.noExitRuntime=!0;setTimeout(function(){w||a()},1E4)}-function Yc(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}var kd=[];function ld(){var a=e.canvas;kd.forEach(function(b){b(a.width,a.height)})}function ed(){if("undefined"!=typeof SDL){var a=Ja[SDL.screen+0*n.K>>2];z[SDL.screen+0*n.K>>2]=a|8388608}ld()}function fd(){if("undefined"!=typeof SDL){var a=Ja[SDL.screen+0*n.K>>2];z[SDL.screen+0*n.K>>2]=a&-8388609}ld()}-function gd(a,b,c){b&&c?(a.pb=b,a.$a=c):(b=a.pb,c=a.$a);var d=b,f=c;e.forcedAspectRatio&&0<e.forcedAspectRatio&&(d/f<e.forcedAspectRatio?d=Math.round(f*e.forcedAspectRatio):f=Math.round(d/e.forcedAspectRatio));if((document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===-a.parentNode&&"undefined"!=typeof screen)var g=Math.min(screen.width/d,screen.height/f),d=Math.round(d*g),f=Math.round(f*g);cd?(a.width!=d&&(a.width=d),a.height!=f&&(a.height=f),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=b&&(a.width=b),a.height!=c&&(a.height=c),"undefined"!=typeof a.style&&(d!=b||f!=c?(a.style.setProperty("width",d+"px","important"),a.style.setProperty("height",f+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))}-var Uc,Vc,Wc,Xc,hd,md=Ba;bc();O=Array(4096);Ub(K,"/");R("/tmp");R("/home");R("/home/web_user");-(function(){R("/dev");vb(259,{read:function(){return 0},write:function(a,b,f,g){return g}});Wb("/dev/null",259);ub(1280,xb);ub(1536,yb);Wb("/dev/tty",1280);Wb("/dev/tty1",1536);var a;if("undefined"!==typeof crypto){var b=new Uint8Array(1);a=function(){crypto.getRandomValues(b);return b[0]}}else a=da?function(){return require("crypto").randomBytes(1)[0]}:function(){return 256*Math.random()|0};ec("random",a);ec("urandom",a);R("/dev/shm");R("/dev/shm/tmp")})();R("/proc");R("/proc/self");R("/proc/self/fd");-Ub({A:function(){var a=Ab("/proc/self","fd",16895,73);a.k={lookup:function(a,c){var d=N[+c];if(!d)throw new J(I.S);var f={parent:null,A:{Oa:"fake"},k:{readlink:function(){return d.path}}};return f.parent=f}};return a}},"/proc/self/fd");-Sa.unshift(function(){if(!e.noFSInit&&!cc){assert(!cc,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");cc=!0;bc();e.stdin=e.stdin;e.stdout=e.stdout;e.stderr=e.stderr;e.stdin?ec("stdin",e.stdin):Xb("/dev/tty","/dev/stdin");e.stdout?ec("stdout",null,e.stdout):Xb("/dev/tty","/dev/stdout");e.stderr?ec("stderr",null,e.stderr):Xb("/dev/tty1","/dev/stderr");var a=Yb("/dev/stdin",-"r");assert(0===a.fd,"invalid handle for stdin ("+a.fd+")");a=Yb("/dev/stdout","w");assert(1===a.fd,"invalid handle for stdout ("+a.fd+")");a=Yb("/dev/stderr","w");assert(2===a.fd,"invalid handle for stderr ("+a.fd+")")}});Ta.push(function(){Ib=!1});H.push(function(){cc=!1;var a=e._fflush;a&&a(0);for(a=0;a<N.length;a++){var b=N[a];b&&$b(b)}});Sa.unshift(function(){});H.push(function(){});if(da){var fs=require("fs"),Db=require("path");M.nb()}rc(Y);e.requestFullScreen=function(a,b,c){dd(a,b,c)};-e.requestAnimationFrame=function(a){Gc(a)};e.setCanvasSize=function(a,b,c){gd(e.canvas,a,b);c||ld()};e.pauseMainLoop=function(){Z=null;Jc++};e.resumeMainLoop=function(){Jc++;var a=Bc,b=Cc,c=Dc;Dc=null;Hc(c,0,!1,Ic,!0);Ac(a,b);Z()};e.getUserMedia=function(){window.C||(window.C=navigator.getUserMedia||navigator.mozGetUserMedia);window.C(void 0)};e.createContext=function(a,b,c,d){return $c(a,b,c,d)};La=m=n.na(la);Ma=La+Pa;Oa=q=n.na(Ma);assert(Oa<ma,"TOTAL_MEMORY not big enough for stack");-var nd=B([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,-1,0,3,0,1,0,2,0,1,0],"i8",3);e.Sa={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};-e.Ta={abort:v,assert:assert,invoke_iiii:function(a,b,c,d){try{return e.dynCall_iiii(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_viiiiii:function(a,b,c,d,f,g,k){try{e.dynCall_viiiiii(a,b,c,d,f,g,k)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;X.setThrew(1,0)}},invoke_d:function(a){try{return e.dynCall_d(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;X.setThrew(1,0)}},invoke_viiiii:function(a,b,c,d,f,g){try{e.dynCall_viiiii(a,b,c,d,f,-g)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;X.setThrew(1,0)}},invoke_i:function(a){try{return e.dynCall_i(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;X.setThrew(1,0)}},invoke_vi:function(a,b){try{e.dynCall_vi(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;X.setThrew(1,0)}},invoke_dd:function(a,b){try{return e.dynCall_dd(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;X.setThrew(1,0)}},invoke_vii:function(a,b,c){try{e.dynCall_vii(a,b,c)}catch(d){if("number"!==-typeof d&&"longjmp"!==d)throw d;X.setThrew(1,0)}},invoke_iiiiiii:function(a,b,c,d,f,g,k){try{return e.dynCall_iiiiiii(a,b,c,d,f,g,k)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;X.setThrew(1,0)}},invoke_viiiddi:function(a,b,c,d,f,g,k){try{e.dynCall_viiiddi(a,b,c,d,f,g,k)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;X.setThrew(1,0)}},invoke_ii:function(a,b){try{return e.dynCall_ii(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;X.setThrew(1,0)}},invoke_dddd:function(a,-b,c,d){try{return e.dynCall_dddd(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_viii:function(a,b,c,d){try{e.dynCall_viii(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_v:function(a){try{e.dynCall_v(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;X.setThrew(1,0)}},invoke_viid:function(a,b,c,d){try{e.dynCall_viid(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_iiiii:function(a,-b,c,d,f){try{return e.dynCall_iiiii(a,b,c,d,f)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;X.setThrew(1,0)}},invoke_viiii:function(a,b,c,d,f){try{e.dynCall_viiii(a,b,c,d,f)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;X.setThrew(1,0)}},invoke_iii:function(a,b,c){try{return e.dynCall_iii(a,b,c)}catch(d){if("number"!==typeof d&&"longjmp"!==d)throw d;X.setThrew(1,0)}},invoke_iiiid:function(a,b,c,d,f){try{return e.dynCall_iiiid(a,b,c,d,f)}catch(g){if("number"!==typeof g&&"longjmp"!==-g)throw g;X.setThrew(1,0)}},invoke_iiiiii:function(a,b,c,d,f,g){try{return e.dynCall_iiiiii(a,b,c,d,f,g)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;X.setThrew(1,0)}},_pthread_cleanup_pop:function(){assert(nc.level==H.length,"cannot pop if something else added meanwhile!");H.pop();nc.level=H.length},_fabs:yc,_sin:Za,_exp:db,_llvm_pow_f64:fb,_acos:ab,_pthread_cleanup_push:nc,_abort:function(){e.abort()},_atan2:cb,___setErrNo:lb,_setenv:function(a,b,c){if(0===a)return lb(I.p),-1;a=y(a);b=-y(b);if(""===a||-1!==a.indexOf("="))return lb(I.p),-1;if(Y.hasOwnProperty(a)&&!c)return 0;Y[a]=b;rc(Y);return 0},___assert_fail:function(a,b,c,d){w=!0;throw"Assertion failed: "+y(a)+", at: "+[b?y(b):"unknown filename",c,d?y(d):"unknown function"]+" at "+Fa();},___buildEnvironment:rc,_longjmp:pc,___syscall91:function(a,b){T=b;try{var c=W(),d=W(),f=gc[c];if(!f)return 0;if(d===f.cb){var g=N[f.fd],k=f.flags,h=new Uint8Array(E.subarray(c,c+d));g&&g.n.ha&&g.n.ha(g,h,0,d,k);gc[c]=null;f.oa&&Ea(f.eb)}return 0}catch(u){return"undefined"!==-typeof S&&u instanceof J||v(u),-u.u}},_times:function(a){0!==a&&wc(a,0,16);return 0},_emscripten_set_main_loop_timing:Ac,_fabsf:ib,_sbrk:uc,___syscall192:function(a,b){T=b;try{var c=W(),d=W(),f=W(),g=W(),k=W(),h=W(),h=h<<12,u,p=!1;if(-1===k){u=xa(d);if(!u)return-I.Ba;wc(u,0,d);p=!0}else{var t=N[k];if(!t)return-I.S;var r,A=E;if(1===(t.flags&2097155))throw new J(I.R);if(!t.n.ga)throw new J(I.Z);r=t.n.ga(t,A,c,d,h,f,g);u=r.gb;p=r.oa}gc[u]={eb:u,cb:d,oa:p,fd:k,flags:g};return u}catch(F){return"undefined"!==-typeof S&&F instanceof J||v(F),-F.u}},___syscall197:function(a,b){T=b;try{var c=ic(),d=W();return hc(c.path,d)}catch(f){return"undefined"!==typeof S&&f instanceof J||v(f),-f.u}},___syscall195:function(a,b){T=b;try{var c=y(W()),d=W();return hc(c,d)}catch(f){return"undefined"!==typeof S&&f instanceof J||v(f),-f.u}},_sysconf:function(a){switch(a){case 30:return 4096;case 85:return G/4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;-case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;-case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}lb(I.p);return-1},-_emscripten_memcpy_big:function(a,b,c){E.set(E.subarray(b,b+c),a);return a},___syscall221:function(a,b){T=b;try{var c=ic();switch(W()){case 0:var d=W();return 0>d?-I.p:Yb(c.path,c.flags,0,d).fd;case 1:case 2:return 0;case 3:return c.flags;case 4:return d=W(),c.flags|=d,0;case 12:case 12:return d=W(),ua[d+0>>1]=2,0;case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-I.p;case 9:return lb(I.p),-1;default:return-I.p}}catch(f){return"undefined"!==typeof S&&f instanceof J||v(f),-f.u}},_atanf:bb,-_cos:Ya,_pthread_self:function(){return 0},_getenv:sc,_sqrt:eb,___syscall33:function(a,b){T=b;try{var c=y(W()),d;var f=W();if(f&-8)d=-I.p;else{var g;g=Q(c,{da:!0}).g;c="";f&4&&(c+="r");f&2&&(c+="w");f&1&&(c+="x");d=c&&Nb(g,c)?-I.R:0}return d}catch(k){return"undefined"!==typeof S&&k instanceof J||v(k),-k.u}},___syscall54:function(a,b){T=b;try{var c=ic(),d=W();switch(d){case 21505:return c.tty?0:-I.T;case 21506:return c.tty?0:-I.T;case 21519:if(!c.tty)return-I.T;var f=W();return z[f>>2]=0;case 21520:return c.tty?--I.p:-I.T;case 21531:f=W();if(!c.n.ab)throw new J(I.T);return c.n.ab(c,d,f);default:v("bad ioctl syscall "+d)}}catch(g){return"undefined"!==typeof S&&g instanceof J||v(g),-g.u}},___unlock:function(){},_emscripten_set_main_loop:Hc,___syscall10:function(a,b){T=b;try{var c=y(W()),d=Q(c,{parent:!0}).g,f=pb(c),g=Cb(d,f),k;a:{var h;try{h=Cb(d,f)}catch(u){k=u.u;break a}var p=Nb(d,"wx");k=p?p:L(h.mode)?I.M:0}if(k)throw k===I.M&&(k=I.J),new J(k);if(!d.k.unlink)throw new J(I.J);if(g.V)throw new J(I.ka);try{P.willDeletePath&&-P.willDeletePath(c)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+c+"') threw an exception: "+t.message)}d.k.unlink(d,f);var r=Lb(g.parent.id,g.name);if(O[r]===g)O[r]=g.O;else for(var A=O[r];A;){if(A.O===g){A.O=g.O;break}A=A.O}try{if(P.onDeletePath)P.onDeletePath(c)}catch(F){console.log("FS.trackingDelegate['onDeletePath']('"+c+"') threw an exception: "+F.message)}return 0}catch(U){return"undefined"!==typeof S&&U instanceof J||v(U),-U.u}},___syscall5:function(a,b){T=b;try{var c=y(W()),-d=W(),f=W();return Yb(c,d,f).fd}catch(g){return"undefined"!==typeof S&&g instanceof J||v(g),-g.u}},_tan:$a,__exit:lc,___lock:function(){},___syscall6:function(a,b){T=b;try{var c=ic();$b(c);return 0}catch(d){return"undefined"!==typeof S&&d instanceof J||v(d),-d.u}},___syscall265:function(a,b){T=b;return 0},___syscall145:function(a,b){T=b;try{var c=ic(),d=W(),f;a:{for(var g=W(),k=0,h=0;h<g;h++){var u=z[d+(8*h+4)>>2],p,t=c,r=z[d+8*h>>2],A=u,F=void 0,U=x;if(0>A||0>F)throw new J(I.p);if(1===(t.flags&2097155))throw new J(I.S);-if(L(t.g.mode))throw new J(I.M);if(!t.n.read)throw new J(I.p);var qa=!0;if("undefined"===typeof F)F=t.position,qa=!1;else if(!t.seekable)throw new J(I.$);var Na=t.n.read(t,U,r,A,F);qa||(t.position+=Na);p=Na;if(0>p){f=-1;break a}k+=p;if(p<u)break}f=k}return f}catch(ea){return"undefined"!==typeof S&&ea instanceof J||v(ea),-ea.u}},_time:function(a){var b=Date.now()/1E3|0;a&&(z[a>>2]=b);return b},_emscripten_longjmp:function(a,b){pc(a,b)},_ceil:md,___syscall140:function(a,b){T=b;try{var c=ic(),d=W(),-f=W(),g=W(),k=W();assert(0===d);ac(c,f,k);z[g>>2]=c.position;c.ra&&0===f&&0===k&&(c.ra=null);return 0}catch(h){return"undefined"!==typeof S&&h instanceof J||v(h),-h.u}},_llvm_trap:function(){v("trap!")},_exit:function(a){lc(a)},_floor:zc,___syscall146:function(a,b){T=b;try{var c=ic(),d=W(),f;a:{for(var g=W(),k=0,h=0;h<g;h++){var u,p=c,t=z[d+8*h>>2],r=z[d+(8*h+4)>>2],A=x,F=void 0;if(0>r||0>F)throw new J(I.p);if(0===(p.flags&2097155))throw new J(I.S);if(L(p.g.mode))throw new J(I.M);if(!p.n.write)throw new J(I.p);-p.flags&1024&&ac(p,0,2);var U=!0;if("undefined"===typeof F)F=p.position,U=!1;else if(!p.seekable)throw new J(I.$);var qa=p.n.write(p,A,t,r,F,void 0);U||(p.position+=qa);try{if(p.path&&P.onWriteToFile)P.onWriteToFile(p.path)}catch(Na){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+Na.message)}u=qa;if(0>u){f=-1;break a}k+=u}f=k}return f}catch(ea){return"undefined"!==typeof S&&ea instanceof J||v(ea),-ea.u}},STACKTOP:m,STACK_MAX:Ma,tempDoublePtr:gb,ABORT:w,cttz_i8:nd};-// EMSCRIPTEN_START_ASM-var X=(function(global,env,buffer) {-"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32;var ba=env.abort;var ca=env.assert;var da=env.invoke_iiii;var ea=env.invoke_viiiiii;var fa=env.invoke_d;var ga=env.invoke_viiiii;var ha=env.invoke_i;var ia=env.invoke_vi;var ja=env.invoke_dd;var ka=env.invoke_vii;var la=env.invoke_iiiiiii;var ma=env.invoke_viiiddi;var na=env.invoke_ii;var oa=env.invoke_dddd;var pa=env.invoke_viii;var qa=env.invoke_v;var ra=env.invoke_viid;var sa=env.invoke_iiiii;var ta=env.invoke_viiii;var ua=env.invoke_iii;var va=env.invoke_iiiid;var wa=env.invoke_iiiiii;var xa=env._pthread_cleanup_pop;var ya=env._fabs;var za=env._sin;var Aa=env._exp;var Ba=env._llvm_pow_f64;var Ca=env._acos;var Da=env._pthread_cleanup_push;var Ea=env._abort;var Fa=env._atan2;var Ga=env.___setErrNo;var Ha=env._setenv;var Ia=env.___assert_fail;var Ja=env.___buildEnvironment;var Ka=env._longjmp;var La=env.___syscall91;var Ma=env._times;var Na=env._emscripten_set_main_loop_timing;var Oa=env._fabsf;var Pa=env._sbrk;var Qa=env.___syscall192;var Ra=env.___syscall197;var Sa=env.___syscall195;var Ta=env._sysconf;var Ua=env._emscripten_memcpy_big;var Va=env.___syscall221;var Wa=env._atanf;var Xa=env._cos;var Ya=env._pthread_self;var Za=env._getenv;var _a=env._sqrt;var $a=env.___syscall33;var ab=env.___syscall54;var bb=env.___unlock;var cb=env._emscripten_set_main_loop;var db=env.___syscall10;var eb=env.___syscall5;var fb=env._tan;var gb=env.__exit;var hb=env.___lock;var ib=env.___syscall6;var jb=env.___syscall265;var kb=env.___syscall145;var lb=env._time;var mb=env._emscripten_longjmp;var nb=env._ceil;var ob=env.___syscall140;var pb=env._llvm_trap;var qb=env._exit;var rb=env._floor;var sb=env.___syscall146;var tb=0.0;-// EMSCRIPTEN_START_FUNCS-function ov(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+16|0;j=v;switch(e|0){case 1:{c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];wv(b,j);j=b+580|0;e=c[j>>2]|0;a:do if(e)switch(rl(e)|0){case 0:{u=(c[e+16>>2]|0)+112|0;a[u>>0]=(d[u>>0]|0)&249|4;break a}case 1:{u=(c[e+16>>2]|0)+117|0;a[u>>0]=(d[u>>0]|0)&249|4;break a}case 2:{u=(c[e+16>>2]|0)+115|0;a[u>>0]=(d[u>>0]|0)&249|4;break a}default:break a}while(0);u=b+588|0;e=c[u>>2]|0;if(e){pB(e);c[u>>2]=0}t=c[b+576>>2]|0;c[j>>2]=t;b:do if(t)switch(rl(t)|0){case 0:{u=(c[t+16>>2]|0)+112|0;a[u>>0]=d[u>>0]|0|2;yv(b,t);break b}case 1:{n=(c[t+16>>2]|0)+117|0;a[n>>0]=d[n>>0]|0|2;n=b+592|0;qn(n,0,134886);qn(n,1,ok(t)|0);c[b+596>>2]=2;n=b+604|0;o=hl(gl(t)|0)|0;e=sj(o,1,0)|0;if(!e)e=2;else{j=e;m=2;while(1){qn(n,m,c[j+8>>2]|0);e=m+2|0;qn(n,m|1,Aj(t,j)|0);j=sj(o,1,j)|0;if(!j)break;else m=e}}c[b+608>>2]=e;e=rj(gl(t)|0,1,134891,0)|0;if(!e){e=rj(gl(t)|0,1,134896,0)|0;if(!e)break b}c[u>>2]=Up(Aj(t,e)|0,t)|0;break b}case 2:{q=(c[t+16>>2]|0)+115|0;a[q>>0]=d[q>>0]|0|2;q=b+592|0;qn(q,0,134900);r=t+48|0;qn(q,1,ok(c[((c[t>>2]&3|0)==3?t:r)+40>>2]|0)|0);r=(hk(gl(c[((c[t>>2]&3|0)==3?t:r)+40>>2]|0)|0)|0)!=0;qn(q,3,r?160891:160894);r=t+-48|0;qn(q,4,ok(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0);c[b+596>>2]=7;o=b+604|0;p=hl(gl(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0)|0;e=sj(p,2,0)|0;c:do if(!e)e=7;else{j=e;n=7;while(1){while(1){e=j+8|0;m=c[e>>2]|0;if(!(lA(m,134905)|0)){s=20;break}if(!(lA(m,134914)|0)){s=22;break}if(lA(m,134923)|0)break;qn(q,6,Aj(t,j)|0);j=sj(p,2,j)|0;if(!j){e=n;break c}}if((s|0)==20){s=0;qn(q,2,Aj(t,j)|0)}else if((s|0)==22){s=0;qn(q,5,Aj(t,j)|0)}qn(o,n,c[e>>2]|0);e=n+2|0;qn(o,n+1|0,Aj(t,j)|0);j=sj(p,2,j)|0;if(!j)break;else n=e}}while(0);c[b+608>>2]=e;e=rj(gl(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0,2,134891,0)|0;if(!e){e=rj(gl(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0,2,134896,0)|0;if(!e)break b}c[u>>2]=Up(Aj(t,e)|0,t)|0;break b}default:break b}while(0);a[b+538>>0]=1;a[b+541>>0]=1;a[b+537>>0]=1;break}case 2:{a[b+538>>0]=1;a[b+541>>0]=2;a[b+537>>0]=1;break}case 3:{c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];wv(b,j);a[b+538>>0]=1;a[b+541>>0]=3;a[b+537>>0]=1;break}case 4:{a[b+536>>0]=0;g=+h[f>>3];e=c[b+448>>2]|0;if(!(c[b+360>>2]|0)){u=b+352|0;l=+h[u>>3];t=b+336|0;h[t>>3]=(g-+(e>>>0)*.5)*.10000000000000009/(l*+h[b+520>>3])+ +h[t>>3];e=b+344|0;h[e>>3]=(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(l*+h[b+528>>3])+ +h[e>>3];e=u;g=l}else{u=b+352|0;l=+h[u>>3];t=b+336|0;h[t>>3]=+h[t>>3]-(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(l*+h[b+528>>3]);t=b+344|0;h[t>>3]=(g-+(e>>>0)*.5)*.10000000000000009/(l*+h[b+520>>3])+ +h[t>>3];e=u;g=l}h[e>>3]=g*1.1;a[b+537>>0]=1;break}case 5:{a[b+536>>0]=0;e=b+352|0;g=+h[e>>3]/1.1;h[e>>3]=g;k=+h[f>>3];e=c[b+448>>2]|0;l=+h[b+520>>3];if(!(c[b+360>>2]|0)){u=b+336|0;h[u>>3]=+h[u>>3]-(k-+(e>>>0)*.5)*.10000000000000009/(g*l);u=b+344|0;h[u>>3]=+h[u>>3]-(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(g*+h[b+528>>3])}else{u=b+336|0;h[u>>3]=(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(g*+h[b+528>>3])+ +h[u>>3];u=b+344|0;h[u>>3]=+h[u>>3]-(k-+(e>>>0)*.5)*.10000000000000009/(g*l)}a[b+537>>0]=1;break}default:{}}b=b+560|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];i=v;return}function pv(b,c,d){b=b|0;c=c|0;d=d|0;a[b+538>>0]=0;a[b+541>>0]=0;return}function qv(b,e){b=b|0;e=e|0;var f=0.0,g=0,j=0,k=0.0,l=0.0,m=0;m=i;i=i+16|0;g=m;j=b+560|0;l=(+h[e>>3]-+h[j>>3])/+h[b+520>>3];k=(+h[e+8>>3]-+h[b+568>>3])/+h[b+528>>3];if(!(+N(+l)<.0001?+N(+k)<.0001:0)){switch(d[b+541>>0]|0|0){case 0:{c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];wv(b,g);break}case 2:{f=+h[b+352>>3];if(!(c[b+360>>2]|0)){g=b+336|0;h[g>>3]=+h[g>>3]-l/f;g=b+344|0;h[g>>3]=+h[g>>3]-k/f}else{g=b+336|0;h[g>>3]=+h[g>>3]-k/f;g=b+344|0;h[g>>3]=l/f+ +h[g>>3]}a[b+537>>0]=1;break}default:{}}c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2]}i=m;return}function rv(a,b,c){a=a|0;b=b|0;c=c|0;return}function sv(a){a=a|0;return}function tv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=c[b>>2]|0;if(d){d=Az(d,162372)|0;if(d){j=Mm(d,0)|0;uz(d)|0;f=5}}else{j=Mm(c[22668]|0,0)|0;f=5}if((f|0)==5?(j|0)!=0:0){g=i+168|0;d=c[g>>2]|0;if(d){f=c[i+172>>2]|0;if((f|0)!=0?(h=c[f+4>>2]|0,(h|0)!=0):0){zb[h&127](d);d=c[g>>2]|0}Np(d);dk(c[g>>2]|0)|0}zl(j,0,160878,280,1);zl(j,1,160855,304,1);zl(j,2,161165,176,1);c[g>>2]=j;c[(c[j+16>>2]|0)+144>>2]=i;if((Jn(i,j,e)|0)!=-1){c[b+580>>2]=0;c[b+576>>2]=0;a[b+537>>0]=1}}return}function uv(a,b){a=a|0;b=b|0;a=c[a>>2]|0;Jn(a,c[a+168>>2]|0,b)|0;return}function vv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c[a>>2]|0;e=h+160|0;f=c[e>>2]|0;if((f|0)!=0?(c[h+164>>2]|0)==0:0){i=h+192|0;g=c[i>>2]|0;c[e>>2]=0;c[i>>2]=0;e=f}else{g=0;e=0}Ln(h,c[h+168>>2]|0,b,d)|0;if(e){i=c[a>>2]|0;c[i+160>>2]=e;c[i+192>>2]=g}return}function wv(b,e){b=b|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0;s=i;i=i+64|0;q=s+32|0;k=s;o=+h[e>>3];l=+h[e+8>>3];p=+h[b+352>>3];m=+h[b+520>>3];j=+h[b+528>>3];if(!(c[b+360>>2]|0)){n=l/(p*j);j=o/(p*m)}else{n=-o/(p*m);j=l/(p*j)}m=j-+h[b+504>>3];o=n-+h[b+512>>3];p=1.0/p;e=c[(c[b>>2]|0)+168>>2]|0;h[k>>3]=m-p;h[k+8>>3]=o-p;h[k+16>>3]=m+p;h[k+24>>3]=o+p;f=Rk(e)|0;a:do if(!f)r=10;else b:while(1){g=Lj(e,f)|0;if(g)do{c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[q+16>>2]=c[k+16>>2];c[q+20>>2]=c[k+20>>2];c[q+24>>2]=c[k+24>>2];c[q+28>>2]=c[k+28>>2];if((kt(g,q)|0)<<24>>24){e=g;break b}g=Nj(e,g)|0}while((g|0)!=0);f=Sk(e,f)|0;if(!f){r=10;break a}}while(0);c:do if((r|0)==10){f=Tk(e)|0;d:do if(f){while(1){c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[q+16>>2]=c[k+16>>2];c[q+20>>2]=c[k+20>>2];c[q+24>>2]=c[k+24>>2];c[q+28>>2]=c[k+28>>2];if((it(f,q)|0)<<24>>24){e=f;break}f=Uk(e,f)|0;if(!f)break d}break c}while(0);c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[q+16>>2]=c[k+16>>2];c[q+20>>2]=c[k+20>>2];c[q+24>>2]=c[k+24>>2];c[q+28>>2]=c[k+28>>2];f=xv(e,q)|0;if(!f)break;else{e=f;break}}while(0);g=b+576|0;f=c[g>>2]|0;if((e|0)!=(f|0)){e:do if(f)switch(rl(f)|0){case 0:{r=(c[f+16>>2]|0)+112|0;a[r>>0]=(d[r>>0]|0)&254;break e}case 1:{r=(c[f+16>>2]|0)+117|0;a[r>>0]=(d[r>>0]|0)&254;break e}case 2:{r=(c[f+16>>2]|0)+115|0;a[r>>0]=(d[r>>0]|0)&254;break e}default:break e}while(0);k=b+584|0;c[k>>2]=0;c[g>>2]=e;f:do if(e)switch(rl(e)|0){case 0:{f=(c[e+16>>2]|0)+112|0;a[f>>0]=d[f>>0]|0|1;f=rj(e,0,134878,0)|0;if(!f)break f;c[k>>2]=Up(Aj(e,f)|0,e)|0;break f}case 1:{f=(c[e+16>>2]|0)+117|0;a[f>>0]=d[f>>0]|0|1;f=rj(gl(e)|0,1,134878,0)|0;if(!f)break f;c[k>>2]=Up(Aj(e,f)|0,e)|0;break f}case 2:{f=(c[e+16>>2]|0)+115|0;a[f>>0]=d[f>>0]|0|1;f=rj(gl(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0,2,134878,0)|0;if(!f)break f;c[k>>2]=Up(Aj(e,f)|0,e)|0;break f}default:break f}while(0);a[b+537>>0]=1}i=s;return}function xv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0;m=i;i=i+32|0;j=m;f=c[a+16>>2]|0;g=c[f+180>>2]|0;a:do if((g|0)<1)l=5;else{e=c[f+184>>2]|0;k=1;while(1){d=c[e+(k<<2)>>2]|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];c[j+16>>2]=c[b+16>>2];c[j+20>>2]=c[b+20>>2];c[j+24>>2]=c[b+24>>2];c[j+28>>2]=c[b+28>>2];d=xv(d,j)|0;if(d)break a;if((k|0)<(g|0))k=k+1|0;else{l=5;break}}}while(0);do if((l|0)==5){o=+h[f+24>>3];n=+h[f+40>>3];if(((+h[b+16>>3]>=+h[f+16>>3]?+h[f+32>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=o:0)?n>=+h[b+8>>3]:0){d=a;break}d=0}while(0);i=m;return d|0}function yv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+592|0;do if((hl(b)|0)==(b|0))if(!(hk(b)|0)){qn(d,0,134935);break}else{qn(d,0,134927);break}else qn(d,0,134941);while(0);qn(d,1,ok(b)|0);c[a+596>>2]=2;g=a+604|0;d=sj(b,0,0)|0;if(!d)d=2;else{e=d;f=2;while(1){qn(g,f,c[e+8>>2]|0);qn(g,f+1|0,Aj(b,e)|0);d=f+3|0;qn(g,f+2|0,0);e=sj(b,0,e)|0;if(!e)break;else f=d}}c[a+608>>2]=d;d=rj(b,0,134891,0)|0;if(!d){d=rj(b,0,134896,0)|0;if(d)h=10}else h=10;if((h|0)==10)c[a+588>>2]=Up(Aj(b,d)|0,b)|0;return}function zv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[d>>2]|0;g=aq(12)|0;if(!b)b=0;else b=oA(b)|0;c[g+4>>2]=b;c[g+8>>2]=oA(e)|0;e=a+100|0;c[g>>2]=c[e>>2];c[e>>2]=g;e=c[d+4>>2]|0;b=c[e+4>>2]|0;if(b)while(1){d=c[b+4>>2]|0;if(d){f=0;do{sn(a,c[e>>2]|0,d,c[b+(f*20|0)+8>>2]|0,g,b+(f*20|0)|0)|0;f=f+1|0;d=c[b+(f*20|0)+4>>2]|0}while((d|0)!=0)}b=c[e+12>>2]|0;if(!b)break;else e=e+8|0}return}function Av(b,d){b=b|0;d=d|0;var e=0;d=c[b+32>>2]|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0)do{if((a[e>>0]|0)==103?(wA(e,134950)|0)!=0:0)zv(b,0,c[d+4>>2]|0);d=d+8|0;e=c[d>>2]|0}while((e|0)!=0);a[b+44>>0]=0;Bv(b)|0;vs(b)|0;return}function Bv(a){a=a|0;var b=0;b=tn(a,2,134963)|0;if(!b)b=999;else{c[a+148>>2]=c[(c[b+16>>2]|0)+12>>2];b=300}return b|0}function Cv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[a+148>>2]|0;if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0)a=Lb[e&63](b,d)|0;else a=0;return a|0}function Dv(a){a=a|0;var b=0.0,d=0.0,e=0,f=0;a=c[a+16>>2]|0;d=+h[a+16>>3];b=+h[a+24>>3];a=~~(d>b?d:b)>>>0;if(!a)a=0;else{f=a>>>0>65535;a=f?a>>>16:a;f=f?16:0;e=a>>>0>255;a=e?a>>>8:a;f=e?f|8:f;e=a>>>0>15;a=e?a>>>4:a;f=e?f|4:f;e=a>>>0>3;a=(e?f|2:f)+1+((e?a>>>2:a)>>>0>1&1)|0}return a|0}function Ev(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0;Ka=i;i=i+432|0;Ha=Ka+384|0;va=Ka+352|0;wa=Ka+320|0;za=Ka+288|0;Aa=Ka+256|0;Ba=Ka+224|0;Ca=Ka+192|0;Da=Ka+160|0;Ea=Ka+128|0;Fa=Ka+96|0;Ga=Ka+64|0;xa=Ka+32|0;ya=Ka;l=$p(28)|0;ua=Vi(59580,c[12574]|0)|0;k=l+20|0;c[k>>2]=ua;do if(ua){ua=$w()|0;c[l+24>>2]=ua;if(!ua){Mz(134974,14,1,c[22667]|0)|0;Ja=6;break}else{c[l>>2]=b;c[l+4>>2]=d;c[l+8>>2]=e;c[l+12>>2]=f;c[l+16>>2]=g;break}}else{Mz(134974,14,1,c[22667]|0)|0;Ja=6}while(0);if((Ja|0)==6){k=c[k>>2]|0;if(k)Pi(k)|0;k=c[l+24>>2]|0;if(k)ax(k)|0;pB(l);l=0}u=Dv(l)|0;v=l+4|0;a:do if((c[v>>2]|0)>0){w=(u|0)>0;n=l+20|0;y=0;while(1){x=$p(32)|0;e=c[l>>2]|0;c[x+28>>2]=e+(y*40|0);k=c[e+(y*40|0)+32>>2]|0;if(!k){p=0.0;q=0.0}else{p=+h[k>>3];q=+h[k+8>>3]}E=+h[e+(y*40|0)>>3];m=~~+M(+(E-p));o=+h[e+(y*40|0)+8>>3];s=~~+M(+(o-q));f=~~+Z(+(p+(E+ +h[e+(y*40|0)+16>>3])));if((f|0)==2147483647){Ja=18;break}e=~~+Z(+(q+(o+ +h[e+(y*40|0)+24>>3])));if((e|0)==2147483647){Ja=20;break}c[x+12>>2]=m;c[x+16>>2]=s;c[x+20>>2]=f;c[x+24>>2]=e;if(w){t=u;k=0;r=((f-m|0)/2|0)+m|0;m=((e-s|0)/2|0)+s|0;while(1){ua=t;t=t+-1|0;f=r>>>t&1;ta=m>>>t&1;k=f<<1|k<<2|ta^f;ta=ta+-1|0;e=ta&(m^r);f=ta&0-f;if((ua|0)<=1)break;else{r=e^r^f;m=e^m^f}}}else k=0;c[x+8>>2]=k;ua=c[n>>2]|0;y=y+1|0;if(!(ub[c[ua>>2]&31](ua,x,1)|0)){j=-1;break a}if((y|0)>=(c[v>>2]|0)){Ja=25;break a}}if((Ja|0)==18)Ia(134989,135016,264,135026);else if((Ja|0)==20)Ia(135036,135016,266,135026)}else{n=l+20|0;Ja=25}while(0);if((Ja|0)==25){j=c[n>>2]|0;j=ub[c[j>>2]&31](j,0,128)|0;if(j){k=l+24|0;do{ua=c[k>>2]|0;cx(ua,j+12|0,c[j+28>>2]|0,ua,0)|0;ua=c[n>>2]|0;j=ub[c[ua>>2]&31](ua,j,8)|0}while((j|0)!=0)}m=Xi(c[n>>2]|0)|0;b:do if(!(Xi(c[n>>2]|0)|0))z=0;else{j=0;while(1){f=c[n>>2]|0;k=c[(c[f+8>>2]|0)+4>>2]|0;if(!k)break;e=c[(c[f+4>>2]|0)+8>>2]|0;if((e|0)<0)k=c[k+8>>2]|0;else k=k+(0-e)|0;if(!k)break;ub[c[f>>2]&31](f,k,4096)|0;pB(k);j=j+1|0;if(!(Xi(c[n>>2]|0)|0)){z=j;break b}}Ia(135063,135016,616,135066)}while(0);if((m|0)!=(z|0))Ia(135078,135016,623,135066);j=Pi(c[n>>2]|0)|0;if((j|0)>=0){if((d|0)>0){sa=va+8|0;ta=va+16|0;ua=va+24|0;y=g+32|0;z=wa+8|0;g=wa+16|0;F=wa+24|0;G=za+8|0;H=za+16|0;I=za+24|0;J=Aa+8|0;K=Aa+16|0;L=Aa+24|0;N=Ba+8|0;O=Ba+16|0;P=Ba+24|0;Q=Ca+8|0;R=Ca+16|0;S=Ca+24|0;T=Da+8|0;U=Da+16|0;V=Da+24|0;W=Ea+8|0;X=Ea+16|0;Y=Ea+24|0;_=Ha+24|0;$=Ha+28|0;aa=Ha+32|0;ba=Ha+12|0;ca=Ha+8|0;da=Ha+4|0;ea=Ha+20|0;fa=xa+8|0;ga=xa+16|0;ha=xa+24|0;ia=ya+8|0;ja=ya+16|0;ka=ya+24|0;la=Fa+8|0;ma=Fa+16|0;na=Fa+24|0;oa=Ga+8|0;pa=Ga+16|0;qa=Ga+24|0;ra=0;j=0;do{x=b+(ra*40|0)+32|0;m=c[x>>2]|0;do if(m){v=b+(ra*40|0)|0;o=+h[m>>3];r=b+(ra*40|0)+16|0;D=(o*2.0+ +h[r>>3])*.125;s=m+8|0;w=b+(ra*40|0)+24|0;p=+h[w>>3];E=(+h[s>>3]*2.0+p)*.5;k=Ha;e=k+36|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(e|0));n=m+16|0;h[n>>3]=+h[v>>3]-o;t=b+(ra*40|0)+8|0;u=m+24|0;h[u>>3]=p+ +h[t>>3];Fv(va,l,v,Ha);k=c[va>>2]|0;p=+h[sa>>3];q=+h[ta>>3];o=+h[ua>>3];c:do if(k){h[u>>3]=+h[t>>3];Fv(wa,l,v,Ha);e=c[wa>>2]|0;C=+h[z>>3];A=+h[g>>3];B=+h[F>>3];if(e){if(C<p){o=B;q=A;k=e;p=C}h[u>>3]=+h[t>>3]-+h[s>>3];Fv(za,l,v,Ha);e=c[za>>2]|0;C=+h[G>>3];A=+h[H>>3];B=+h[I>>3];if(e){if(C<p){o=B;q=A;k=e;p=C}h[n>>3]=+h[v>>3];h[u>>3]=+h[t>>3]+ +h[w>>3];Fv(Aa,l,v,Ha);e=c[Aa>>2]|0;C=+h[J>>3];A=+h[K>>3];B=+h[L>>3];if(!e){k=0;p=C;q=A;o=B}else{if(C<p){o=B;q=A;k=e;p=C}h[u>>3]=+h[t>>3]-+h[s>>3];Fv(Ba,l,v,Ha);e=c[Ba>>2]|0;C=+h[N>>3];A=+h[O>>3];B=+h[P>>3];if(!e){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;k=e;p=C}h[n>>3]=+h[v>>3]+ +h[r>>3];h[u>>3]=+h[t>>3]+ +h[w>>3];Fv(Ca,l,v,Ha);e=c[Ca>>2]|0;C=+h[Q>>3];A=+h[R>>3];B=+h[S>>3];if(!e){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;k=e;p=C}h[u>>3]=+h[t>>3];Fv(Da,l,v,Ha);e=c[Da>>2]|0;C=+h[T>>3];A=+h[U>>3];B=+h[V>>3];if(!e){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;p=C}else e=k;h[u>>3]=+h[t>>3]-+h[s>>3];Fv(Ea,l,v,Ha);k=c[Ea>>2]|0;C=+h[W>>3];A=+h[X>>3];B=+h[Y>>3];if(!k){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;p=C}else k=e;e=(c[$>>2]|0)==0&(c[aa>>2]|0)==0;do if(!(c[_>>2]|0)){if(!e){Ja=73;break}if((c[ba>>2]|0)==0&(c[Ha>>2]|0)==0)C=q;else Ja=68}else if(e)Ja=68;else Ja=73;while(0);do if((Ja|0)==68){Ja=0;C=+h[v>>3];B=C-+h[m>>3];h[n>>3]=B;h[u>>3]=+h[t>>3]+ +h[w>>3];if(!(B<=C+ +h[r>>3])){Ja=73;break}else{C=o;B=q;A=p}while(1){Fv(Fa,l,v,Ha);e=c[Fa>>2]|0;p=+h[la>>3];q=+h[ma>>3];o=+h[na>>3];if(!e){k=0;break c}if(p<A)k=e;else{o=C;q=B;p=A}C=D+ +h[n>>3];h[n>>3]=C;if(!(C<=+h[v>>3]+ +h[r>>3])){Ja=73;break}else{C=o;B=q;A=p}}}while(0);do if((Ja|0)==73){Ja=0;if(!((c[ba>>2]|0)==0&(c[Ha>>2]|0)==0)){C=q;break}h[n>>3]=+h[v>>3]-+h[m>>3];C=+h[t>>3];B=C+ +h[w>>3];h[u>>3]=B;if(!(B>=C-+h[s>>3])){C=q;break}else{C=o;e=k;B=p}while(1){Fv(Ga,l,v,Ha);k=c[Ga>>2]|0;p=+h[oa>>3];A=+h[pa>>3];o=+h[qa>>3];if(!k){k=0;q=A;break c}if(p<B)q=A;else{o=C;k=e;p=B}C=+h[u>>3]-E;h[u>>3]=C;if(!(C>=+h[t>>3]-+h[s>>3])){C=q;break}else{C=o;e=k;B=p}}}while(0);q=+h[v>>3];A=q+ +h[r>>3];h[n>>3]=A;B=+h[t>>3]-+h[s>>3];h[u>>3]=B;e=c[da>>2]|0;do if(!(c[ca>>2]|0)){f=c[Ha>>2]|0;if(!((e|0)==0&(f|0)==0))break;if((c[ea>>2]|0)==0&(c[aa>>2]|0)==0){q=C;break c}else{e=0;f=0}}else f=c[Ha>>2]|0;while(0);do if((f|0)==0&(e|0)==0){h[n>>3]=A;h[u>>3]=B;if(!(A>=q-+h[m>>3]))break;else B=o;while(1){Fv(xa,l,v,Ha);e=c[xa>>2]|0;A=+h[fa>>3];q=+h[ga>>3];o=+h[ha>>3];if(!e){k=0;p=A;break c}if(A<p){C=q;k=e;p=A}else o=B;B=+h[n>>3]-D;h[n>>3]=B;q=+h[v>>3];if(!(B>=q-+h[m>>3]))break;else B=o}}while(0);if(!((c[ea>>2]|0)==0&(c[aa>>2]|0)==0)){q=C;break}h[n>>3]=q+ +h[r>>3];D=+h[t>>3];B=D-+h[s>>3];h[u>>3]=B;if(!(B<=D+ +h[w>>3])){q=C;break}else{e=k;B=p}while(1){Fv(ya,l,v,Ha);k=c[ya>>2]|0;p=+h[ia>>3];q=+h[ja>>3];A=+h[ka>>3];if(!k){k=0;o=A;break c}if(p<B)o=A;else{q=C;k=e;p=B}D=E+ +h[u>>3];h[u>>3]=D;if(!(D<=+h[t>>3]+ +h[w>>3]))break;else{C=q;e=k;B=p}}}}else{k=0;p=C;q=A;o=B}}else{k=0;p=C;q=A;o=B}}else k=0;while(0);if(!k){a[(c[x>>2]|0)+36>>0]=1;break}if(p==0.0){x=c[x>>2]|0;h[x+16>>3]=q;h[x+24>>3]=o;a[x+36>>0]=1;break}if((a[y>>0]|0)==1){x=c[x>>2]|0;h[x+16>>3]=q;h[x+24>>3]=o;a[x+36>>0]=1}else j=1}while(0);ra=ra+1|0}while((ra|0)<(d|0))}else j=0;ax(c[l+24>>2]|0)|0;pB(l)}}i=Ka;return j|0}function Fv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0.0;G=i;i=i+64|0;E=G+48|0;C=G+32|0;D=G+16|0;F=G;n=c[e+32>>2]|0;if(!n)Ia(135090,135016,382,135100);q=n+16|0;c[F>>2]=c[q>>2];c[F+4>>2]=c[q+4>>2];c[F+8>>2]=c[q+8>>2];c[F+12>>2]=c[q+12>>2];q=c[d+4>>2]|0;a:do if((q|0)>0){r=c[d>>2]|0;s=n+16|0;t=n+24|0;o=n+8|0;k=0;u=0;b:while(1){do if((r+(u*40|0)|0)!=(e|0)){g=+h[r+(u*40|0)+16>>3];if(g>0.0?+h[r+(u*40|0)+24>>3]>0.0:0)break;if(!(g==0.0))break b;if(!(+h[r+(u*40|0)+24>>3]==0.0))break b;H=+h[r+(u*40|0)>>3];g=+h[s>>3];if((H>g?H<g+ +h[n>>3]:0)?(m=+h[r+(u*40|0)+8>>3],p=+h[t>>3],m>p):0)l=m<p+ +h[o>>3];else l=0;k=(l&1)+k|0}while(0);u=u+1|0;if((u|0)>=(q|0)){j=k;break a}}Ia(135116,135016,219,135153)}else j=0;while(0);p=+h[n+16>>3];c[C>>2]=~~p;H=+h[n+24>>3];c[C+4>>2]=~~H;c[C+8>>2]=~~(p+ +h[n>>3]);c[C+12>>2]=~~(H+ +h[n+8>>3]);y=c[d+24>>2]|0;y=bx(y,c[y>>2]|0,C)|0;if(!y){c[b>>2]=j;h[b+8>>3]=0.0;b=b+16|0;c[b>>2]=c[F>>2];c[b+4>>2]=c[F+4>>2];c[b+8>>2]=c[F+8>>2];c[b+12>>2]=c[F+12>>2]}else{q=D+4|0;r=D+8|0;s=D+12|0;t=E+4|0;u=E+8|0;d=E+12|0;v=E+4|0;w=E+8|0;x=E+12|0;g=0.0;o=y;do{n=c[(c[o+4>>2]|0)+16>>2]|0;if((n|0)!=(e|0)){H=+h[n>>3];c[D>>2]=~~H;m=+h[n+8>>3];c[q>>2]=~~m;c[r>>2]=~~(H+ +h[n+16>>3]);c[s>>2]=~~(m+ +h[n+24>>3]);m=+Hv(C,D);if(m>0.0){l=Iv(e,n)|0;l=f+(((l|0)<0?5:l)<<2)|0;k=c[l>>2]|0;if(k){H=+h[k>>3];c[E>>2]=~~H;p=+h[k+8>>3];c[t>>2]=~~p;c[u>>2]=~~(H+ +h[k+16>>3]);c[d>>2]=~~(p+ +h[k+24>>3]);p=+Hv(C,E);p=p>m?p:0.0;k=c[k+32>>2]|0;if((k|0)!=0?(H=+h[k+16>>3],c[E>>2]=~~H,z=+h[k+24>>3],c[t>>2]=~~z,c[u>>2]=~~(H+ +h[k>>3]),c[d>>2]=~~(z+ +h[k+8>>3]),z=+Hv(C,E),z>m):0)p=z>p?z:p;if(p>0.0)m=p;else c[l>>2]=n}else c[l>>2]=n;j=j+1|0;g=g+m}k=c[n+32>>2]|0;if(((k|0)!=0?(a[k+36>>0]|0)!=0:0)?(H=+h[k+16>>3],c[D>>2]=~~H,A=+h[k+24>>3],c[q>>2]=~~A,c[r>>2]=~~(H+ +h[k>>3]),c[s>>2]=~~(A+ +h[k+8>>3]),A=+Hv(C,D),A>0.0):0){l=Iv(e,n)|0;l=f+(((l|0)<0?5:l)<<2)|0;k=c[l>>2]|0;if(k){H=+h[k>>3];c[E>>2]=~~H;m=+h[k+8>>3];c[v>>2]=~~m;c[w>>2]=~~(H+ +h[k+16>>3]);c[x>>2]=~~(m+ +h[k+24>>3]);m=+Hv(C,E);m=m>A?m:0.0;k=c[k+32>>2]|0;if((k|0)!=0?(H=+h[k+16>>3],c[E>>2]=~~H,B=+h[k+24>>3],c[v>>2]=~~B,c[w>>2]=~~(H+ +h[k>>3]),c[x>>2]=~~(B+ +h[k+8>>3]),B=+Hv(C,E),B>A):0)m=B>m?B:m;if(!(m>0.0)){c[l>>2]=n;m=A}}else{c[l>>2]=n;m=A}j=j+1|0;g=g+m}}o=c[o>>2]|0}while((o|0)!=0);_w(y);c[b>>2]=j;h[b+8>>3]=g;b=b+16|0;c[b>>2]=c[F>>2];c[b+4>>2]=c[F+4>>2];c[b+8>>2]=c[F+8>>2];c[b+12>>2]=c[F+12>>2]}i=G;return}function Gv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;return (c[b>>2]|0)-(c[d>>2]|0)|0}function Hv(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[a+8>>2]|0;i=c[b>>2]|0;if((((e|0)>=(i|0)?(j=c[a>>2]|0,k=c[b+8>>2]|0,(j|0)<=(k|0)):0)?(l=c[a+12>>2]|0,f=c[b+4>>2]|0,(l|0)>=(f|0)):0)?(g=c[a+4>>2]|0,h=c[b+12>>2]|0,(g|0)<=(h|0)):0)d=(+(((e|0)<(k|0)?e:k)|0)-+(((j|0)>(i|0)?j:i)|0))*(+(((l|0)<(h|0)?l:h)|0)-+(((g|0)>(f|0)?g:f)|0));else d=0.0;return +d}function Iv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=c[b+32>>2]|0;f=c[d+32>>2]|0;if((e|0)==(f|0))Ia(135166,135016,276,135176);do if((a[e+36>>0]|0)!=0?(a[f+36>>0]|0)!=0:0){j=+h[b>>3];if(j==0.0?+h[b+8>>3]==0.0:0){e=-1;break}k=+h[d>>3];i=+h[d+8>>3];if(!(k==0.0&i==0.0)){g=+h[b+8>>3];if(i<g){if(k<j){e=0;break}e=k>j?2:1;break}e=k<j;if(i>g){if(e){e=6;break}e=k>j?8:7;break}if(!e)if(k>j)e=5;else e=-1;else e=3}else e=-1}else e=-1;while(0);return e|0}function Jv(b){b=b|0;var d=0,e=0,f=0;d=pA(b)|0;if(d>>>0>=(c[14904]|0)>>>0){d=d+11|0;c[14904]=d;d=cq(c[14905]|0,d)|0;c[14905]=d;if(!d)d=0;else e=4}else{d=c[14905]|0;e=4}if((e|0)==4){e=a[b>>0]|0;if(e<<24>>24){f=d;while(1){b=b+1|0;d=e&255;if(_x(d)|0)e=(ny(d)|0)&255;d=f+1|0;a[f>>0]=e;e=a[b>>0]|0;if(!(e<<24>>24))break;else f=d}}a[d>>0]=0;d=c[14905]|0}return d|0}function Kv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+112|0;y=I+64|0;o=I+48|0;B=I+92|0;C=I+40|0;E=I+32|0;G=I+24|0;D=I+16|0;F=I+8|0;H=I;l=I+88|0;u=I+84|0;v=I+80|0;w=I+76|0;c[e+32>>2]=f;while(1){j=b+1|0;if((a[b>>0]|0)==32)b=j;else{x=j;break}}c[w>>2]=255;j=a[b>>0]|0;a:do if(j<<24>>24==35){c[o>>2]=l;c[o+4>>2]=u;c[o+8>>2]=v;c[o+12>>2]=w;if((Pz(b,135187,o)|0)<=2){j=a[b>>0]|0;z=21;break}switch(f|0){case 0:{t=+((c[l>>2]|0)>>>0)/255.0;h[D>>3]=t;s=+((c[u>>2]|0)>>>0)/255.0;h[F>>3]=s;n=+((c[v>>2]|0)>>>0)/255.0;h[H>>3]=n;p=+((c[w>>2]|0)>>>0)/255.0;g=s<n?s:n;q=s>n?s:n;q=q<t?t:q;g=q-(g>t?t:g);r=q>0.0?g/q:0.0;if(r>0.0){k=(q-t)/g;m=(q-s)/g;g=(q-n)/g;do if(!(q==t)){if(q==s){g=k+2.0-g;break}if(q==n)g=m+4.0-k;else g=0.0}else g=g-m;while(0);g=g*60.0;if(g<0.0)g=g+360.0}else g=0.0;t=g/360.0;h[C>>3]=t;h[G>>3]=q;h[E>>3]=r;h[e>>3]=t;h[e+8>>3]=r;h[e+16>>3]=q;h[e+24>>3]=p;b=0;break a}case 1:{a[e>>0]=c[l>>2];a[e+1>>0]=c[u>>2];a[e+2>>0]=c[v>>2];a[e+3>>0]=c[w>>2];b=0;break a}case 3:{q=+((c[l>>2]|0)>>>0)/255.0;h[D>>3]=q;r=+((c[u>>2]|0)>>>0)/255.0;h[F>>3]=r;s=+((c[v>>2]|0)>>>0)/255.0;h[H>>3]=s;q=1.0-q;r=1.0-r;s=1.0-s;t=q<r?q:r;t=s<t?s:t;a[e>>0]=~~(q-t)*255;a[e+1>>0]=~~(r-t)*255;a[e+2>>0]=~~(s-t)*255;a[e+3>>0]=~~t*255;b=0;break a}case 2:{c[e>>2]=(((c[l>>2]|0)*65535|0)>>>0)/255|0;c[e+4>>2]=(((c[u>>2]|0)*65535|0)>>>0)/255|0;c[e+8>>2]=(((c[v>>2]|0)*65535|0)>>>0)/255|0;c[e+12>>2]=(((c[w>>2]|0)*65535|0)>>>0)/255|0;b=0;break a}case 4:{h[e>>3]=+((c[l>>2]|0)>>>0)/255.0;h[e+8>>3]=+((c[u>>2]|0)>>>0)/255.0;h[e+16>>3]=+((c[v>>2]|0)>>>0)/255.0;h[e+24>>3]=+((c[w>>2]|0)>>>0)/255.0;b=0;break a}default:{b=0;break a}}}else z=21;while(0);b:do if((z|0)==21){if(!(j<<24>>24!=46?((j&255)+-48|0)>>>0>=10:0))z=23;do if((z|0)==23){j=pA(b)|0;if(j>>>0>=(c[14906]|0)>>>0){j=j+11|0;c[14906]=j;j=cq(c[14907]|0,j)|0;c[14907]=j;if(!j){b=-1;break b}else l=b}else{l=b;j=c[14907]|0}c:while(1){o=l+1|0;l=a[l>>0]|0;switch(l<<24>>24){case 0:break c;case 44:{l=32;break}default:{}}a[j>>0]=l;l=o;j=j+1|0}a[j>>0]=0;z=c[14907]|0;c[y>>2]=C;c[y+4>>2]=E;c[y+8>>2]=G;if((Pz(z,135201,y)|0)!=3){j=a[b>>0]|0;break}m=+h[C>>3];m=m<1.0?m:1.0;m=m>0.0?m:0.0;h[C>>3]=m;k=+h[E>>3];k=k<1.0?k:1.0;k=k>0.0?k:0.0;h[E>>3]=k;g=+h[G>>3];g=g<1.0?g:1.0;g=g>0.0?g:0.0;h[G>>3]=g;switch(f|0){case 0:{h[e>>3]=m;h[e+8>>3]=k;h[e+16>>3]=g;h[e+24>>3]=1.0;b=0;break b}case 1:{Mv(m,k,g,D,F,H);a[e>>0]=~~(+h[D>>3]*255.0);a[e+1>>0]=~~(+h[F>>3]*255.0);a[e+2>>0]=~~(+h[H>>3]*255.0);a[e+3>>0]=-1;b=0;break b}case 3:{Mv(m,k,g,D,F,H);q=1.0-+h[D>>3];r=1.0-+h[F>>3];s=1.0-+h[H>>3];t=q<r?q:r;t=s<t?s:t;a[e>>0]=~~(q-t)*255;a[e+1>>0]=~~(r-t)*255;a[e+2>>0]=~~(s-t)*255;a[e+3>>0]=~~t*255;b=0;break b}case 2:{Mv(m,k,g,D,F,H);c[e>>2]=~~(+h[D>>3]*65535.0);c[e+4>>2]=~~(+h[F>>3]*65535.0);c[e+8>>2]=~~(+h[H>>3]*65535.0);c[e+12>>2]=65535;b=0;break b}case 4:{Mv(m,k,g,D,F,H);h[e>>3]=+h[D>>3];h[e+8>>3]=+h[F>>3];h[e+16>>3]=+h[H>>3];h[e+24>>3]=1.0;b=0;break b}default:{b=0;break b}}}while(0);if(((j<<24>>24!=98?!(j<<24>>24==119|(rA(x,135211,4)|0)==0):0)?!(j<<24>>24==108|(rA(x,135216,4)|0)==0):0)?(rA(x,135221,8)|0)!=0:0){do if(j<<24>>24==47){j=jA(x,47)|0;if(!j)b=x;else{if((a[x>>0]|0)!=47){G=(qA(135230,x,4)|0)==0;b=G?j+1|0:b;break}j=c[14908]|0;if(((j|0)!=0?(a[j>>0]|0)!=0:0)?(qA(135230,j,3)|0)!=0:0){b=Nv(j,b+2|0)|0;break}b=b+2|0}}else{j=c[14908]|0;if(((j|0)!=0?(a[j>>0]|0)!=0:0)?(qA(135230,j,3)|0)!=0:0)b=Nv(j,b)|0}while(0);b=Jv(b)|0;c[B>>2]=b;if(!b){b=-1;break}}else c[B>>2]=b;l=c[14909]|0;if(((l|0)!=0?(A=c[l>>2]|0,(a[A>>0]|0)==(a[b>>0]|0)):0)?(lA(A,b)|0)==0:0){j=l;b=l}else{b=Zz(B,59640,2491,12,42)|0;c[14909]=b;if(!b)switch(f|0){case 0:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[e+24>>3]=1.0;b=1;break b}case 1:{a[e+2>>0]=0;a[e+1>>0]=0;a[e>>0]=0;a[e+3>>0]=-1;b=1;break b}case 3:{a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;a[e+3>>0]=0;b=1;break b}case 2:{c[e+8>>2]=0;c[e+4>>2]=0;c[e>>2]=0;c[e+12>>2]=65535;b=1;break b}case 4:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[e+24>>3]=1.0;b=1;break b}default:{b=1;break b}}else j=b}switch(f|0){case 0:{h[e>>3]=+(d[j+4>>0]|0)/255.0;h[e+8>>3]=+(d[b+5>>0]|0)/255.0;h[e+16>>3]=+(d[b+6>>0]|0)/255.0;h[e+24>>3]=+(d[b+10>>0]|0)/255.0;b=0;break b}case 1:{a[e>>0]=a[j+7>>0]|0;a[e+1>>0]=a[(c[14909]|0)+8>>0]|0;a[e+2>>0]=a[(c[14909]|0)+9>>0]|0;a[e+3>>0]=a[(c[14909]|0)+10>>0]|0;b=0;break b}case 3:{q=+(d[j+7>>0]|0)/255.0;h[D>>3]=q;r=+(d[b+8>>0]|0)/255.0;h[F>>3]=r;s=+(d[b+9>>0]|0)/255.0;h[H>>3]=s;q=1.0-q;r=1.0-r;s=1.0-s;t=q<r?q:r;t=s<t?s:t;a[e>>0]=~~(q-t)*255;a[e+1>>0]=~~(r-t)*255;a[e+2>>0]=~~(s-t)*255;a[e+3>>0]=~~t*255;b=0;break b}case 2:{c[e>>2]=(d[j+7>>0]|0)*257;c[e+4>>2]=(d[b+8>>0]|0)*257;c[e+8>>2]=(d[b+9>>0]|0)*257;c[e+12>>2]=(d[b+10>>0]|0)*257;b=0;break b}case 4:{h[e>>3]=+(d[j+7>>0]|0)/255.0;h[e+8>>3]=+(d[b+8>>0]|0)/255.0;h[e+16>>3]=+(d[b+9>>0]|0)/255.0;h[e+24>>3]=+(d[b+10>>0]|0)/255.0;b=0;break b}default:{b=0;break b}}}while(0);i=I;return b|0}function Lv(a){a=a|0;c[14908]=a;return}function Mv(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0;a:do if(!(b<=0.0)){a=!(a>=1.0)?a*6.0:0.0;j=~~a;a=a-+(j|0);i=(1.0-b)*c;g=(1.0-a*b)*c;a=(1.0-(1.0-a)*b)*c;switch(j|0){case 0:{h[d>>3]=c;h[e>>3]=a;h[f>>3]=i;break a}case 1:{h[d>>3]=g;h[e>>3]=c;h[f>>3]=i;break a}case 2:{h[d>>3]=i;h[e>>3]=c;h[f>>3]=a;break a}case 3:{h[d>>3]=i;h[e>>3]=g;h[f>>3]=c;break a}case 4:{h[d>>3]=a;h[e>>3]=i;h[f>>3]=c;break a}case 5:{h[d>>3]=c;h[e>>3]=i;h[f>>3]=g;break a}default:break a}}else{h[d>>3]=c;h[e>>3]=c;h[f>>3]=c}while(0);return}function Nv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=pA(a)|0;d=(pA(b)|0)+d|0;if((d+3|0)>>>0<(c[22383]|0)>>>0)d=c[22384]|0;else{d=d+13|0;c[22383]=d;d=cq(c[22384]|0,d)|0;c[22384]=d}c[e>>2]=a;c[e+4>>2]=b;Oz(d,160722,e)|0;i=f;return c[22384]|0}function Ov(a,b){a=a|0;b=b|0;return hA(c[a>>2]|0,c[b>>2]|0)|0}function Pv(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var g=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,P=0,T=0,U=0,V=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0,ka=0.0,la=0.0,ma=0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0;na=+h[a>>3];la=+h[a+8>>3];j=+W(+(+R(+e)/d),+(+Q(+e)/b));fa=+W(+(+R(+f)/d),+(+Q(+f)/b));fa=fa-+M(+((fa-j)/6.283185307179586))*6.283185307179586;ia=+Q(+j);ka=ia*b;ha=+R(+j);ga=ha*d;g=na+ka-ga*0.0;ka=ga+(la+ka*0.0);ga=d/b;ma=$p(8)|0;fa=(f-e>3.141592653589793&fa-j<3.141592653589793?fa+6.283185307179586:fa)-j;t=ga<.25?42616:42872;u=(ga*(ga*.001+4.98)+.207)/(ga+.0067)*b;v=t+8|0;w=t+16|0;x=t+24|0;y=t+32|0;z=t+40|0;A=t+48|0;B=t+56|0;C=t+64|0;D=t+72|0;E=t+80|0;F=t+88|0;G=t+96|0;H=t+104|0;I=t+112|0;J=t+120|0;K=t+128|0;L=t+136|0;N=t+144|0;P=t+152|0;T=t+160|0;U=t+168|0;V=t+176|0;Y=t+184|0;Z=t+192|0;_=t+200|0;$=t+208|0;aa=t+216|0;ba=t+224|0;ca=t+232|0;da=t+240|0;ea=t+248|0;o=fa;a=1;do{if(!(o<=1.5707963267948966))k=0;else{if((a|0)<=0){ja=4;break}r=(+h[w>>3]+ga*(ga*+h[t>>3]+ +h[v>>3]))/(ga+ +h[x>>3]);e=(+h[A>>3]+ga*(ga*+h[y>>3]+ +h[z>>3]))/(ga+ +h[B>>3]);f=(+h[E>>3]+ga*(ga*+h[C>>3]+ +h[D>>3]))/(ga+ +h[F>>3]);i=(+h[I>>3]+ga*(ga*+h[G>>3]+ +h[H>>3]))/(ga+ +h[J>>3]);l=(+h[N>>3]+ga*(ga*+h[K>>3]+ +h[L>>3]))/(ga+ +h[P>>3]);n=(+h[V>>3]+ga*(ga*+h[T>>3]+ +h[U>>3]))/(ga+ +h[Y>>3]);p=(+h[$>>3]+ga*(ga*+h[Z>>3]+ +h[_>>3]))/(ga+ +h[aa>>3]);q=(+h[da>>3]+ga*(ga*+h[ba>>3]+ +h[ca>>3]))/(ga+ +h[ea>>3]);s=j;m=0;do{ra=s;s=o+s;oa=(ra+s)*.5;qa=+Q(+(oa*2.0));pa=+Q(+(oa*4.0));oa=+Q(+(oa*6.0));k=u*+X(+(r+e*qa+f*pa+i*oa+(s-ra)*(l+n*qa+p*pa+q*oa)))<=1.0e-05;m=m+1|0}while((m|0)<(a|0)&k);k=k&1}a=a<<1;o=fa/+(a|0)}while((a|0)<1024&k<<24>>24==0);if((ja|0)==4){a=a<<1;o=fa/+(a|0)}l=ha*b;e=ia*d;c[22385]=100;ea=$p(1600)|0;c[ma>>2]=ea;h[ea>>3]=na;ja=ea+8|0;h[ja>>3]=la;m=ma+4|0;c[m>>2]=1;Qv(ma,+h[ea>>3],+h[ja>>3],g,ka,g,ka);n=+S(+(o*.5));n=+R(+o)*(+O(+(n*(n*3.0)+4.0))+-1.0)/3.0;if((a|0)>0){k=0;i=-l-e*0.0;f=ka;e=e-l*0.0;do{j=o+j;ia=+Q(+j);ka=+R(+j);pa=ia*b;ra=ka*d;ka=ka*b;ia=ia*d;oa=g;g=na+pa-ra*0.0;qa=f;f=ra+(la+pa*0.0);pa=i;i=-ka-ia*0.0;ra=e;e=ia-ka*0.0;Qv(ma,oa+n*pa,qa+n*ra,g-n*i,f-n*e,g,f);k=k+1|0}while((k|0)!=(a|0))}ea=c[ma>>2]|0;qa=+h[ea>>3];ra=+h[ea+8>>3];ja=(c[m>>2]|0)+-1|0;Qv(ma,+h[ea+(ja<<4)>>3],+h[ea+(ja<<4)+8>>3],qa,ra,qa,ra);c[ma>>2]=rB(c[ma>>2]|0,c[m>>2]<<4)|0;c[22385]=0;return ma|0}function Qv(a,b,d,e,f,g,i){a=a|0;b=+b;d=+d;e=+e;f=+f;g=+g;i=+i;var j=0,k=0,l=0,m=0;l=a+4|0;j=c[l>>2]|0;k=c[22385]|0;if((j+3|0)<(k|0))k=c[a>>2]|0;else{c[22385]=k<<1;k=rB(c[a>>2]|0,k<<5)|0;c[a>>2]=k;j=c[l>>2]|0}h[k+(j<<4)>>3]=b;m=j+1|0;h[k+(j<<4)+8>>3]=d;h[k+(m<<4)>>3]=e;a=j+2|0;h[k+(m<<4)+8>>3]=f;h[k+(a<<4)>>3]=g;c[l>>2]=j+3;h[k+(a<<4)+8>>3]=i;return}function Rv(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p;g=To(d)|0;j=c[g>>2]|0;n=c[j+4>>2]|0;c[g+4>>2]=n;c[g+12>>2]=c[j+12>>2];switch(n|0){case 2:{c[g+8>>2]=c[j+8>>2];break}case 0:{c[g+8>>2]=c[j+8>>2];break}case 1:{c[g+8>>2]=c[j+8>>2];break}case 3:{c[g+8>>2]=c[j+8>>2];break}default:{}}c[g+208>>2]=c[j+208>>2];c[g+228>>2]=c[j+228>>2];c[g+244>>2]=c[j+244>>2];n=g+260|0;b[n>>1]=b[n>>1]&-2|b[j+260>>1]&1;l=+h[f+56>>3];k=+h[f+64>>3];switch(a[f+80>>0]|0){case 116:{k=k+(+h[f+48>>3]-+aw(e))*.5+-1.0;break}case 98:{k=k-(+h[f+48>>3]-+aw(e))*.5+-1.0;break}default:{}}h[o>>3]=l;h[o+8>>3]=k;c[o+20>>2]=c[f+8>>2];c[o+16>>2]=c[f+4>>2];h[o+32>>3]=+h[f+16>>3];f=d+16|0;j=zj(c[(c[f>>2]|0)+8>>2]|0,160729)|0;g=o+56|0;c[g>>2]=j;m=o+60|0;c[m>>2]=c[(c[f>>2]|0)+212>>2];n=o+64|0;a[n>>0]=0;if(!((j|0)!=0?(a[j>>0]|0)!=0:0))c[g>>2]=160740;if((a[e+4>>0]|0)==1){g=c[e>>2]|0;Uu(d,c[(c[d>>2]|0)+336>>2]|0);j=c[g+24>>2]|0;if(!j)Ru(d,160746);else Ru(d,j);cw(d,g,o);if(a[n>>0]|0)pB(c[m>>2]|0)}else bw(d,c[e>>2]|0,o);o=c[f>>2]|0;c[o+208>>2]=0;c[o+228>>2]=0;c[o+244>>2]=0;c[o+212>>2]=0;Uo(d);i=p;return}function Sv(a){a=a|0;pB(c[a>>2]|0);pB(c[a+4>>2]|0);pB(c[a+8>>2]|0);pB(c[a+16>>2]|0);pB(c[a+12>>2]|0);pB(c[a+20>>2]|0);pB(c[a+24>>2]|0);return}function Tv(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(a){e=a+4|0;if((b[e>>1]|0)>0){h=0;k=c[a>>2]|0;while(1){g=k+4|0;if((b[g>>1]|0)>0){i=0;j=c[k>>2]|0;while(1){d=c[j>>2]|0;if(d)pB(d);d=c[j+8>>2]|0;if((d|0)!=0?(f=c[j+12>>2]|0,(f|0)!=0):0)zb[f&127](d);i=i+1|0;if((i|0)>=(b[g>>1]|0))break;else j=j+56|0}}h=h+1|0;if((h|0)>=(b[e>>1]|0))break;else k=k+24|0}}d=c[a>>2]|0;if(d)pB(d);pB(a)}return}function Uv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;switch(a[b+4>>0]|0){case 1:{g=c[b>>2]|0;h=g+84|0;if((c[g+100>>2]|0)==-1)Pi(c[h>>2]|0)|0;else{f=c[h>>2]|0;pB(c[g+92>>2]|0);pB(c[g+96>>2]|0);e=c[f>>2]|0;if(e)do{Uv(e+88|0,0);Sv(e);pB(e);f=f+4|0;e=c[f>>2]|0}while((e|0)!=0);pB(c[h>>2]|0)}Sv(g);pB(g);break}case 3:{h=c[b>>2]|0;pB(c[h+32>>2]|0);pB(h);break}default:Tv(c[b>>2]|0)}if(d)pB(b);return}function Vv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0;b=c[(c[(c[b+16>>2]|0)+104>>2]|0)+72>>2]|0;if((a[b+4>>0]|0)!=2?(g=dw(c[b>>2]|0,e)|0,(g|0)!=0):0){c[f>>2]=d[g+35>>0];b=g+48|0}else b=0;return b|0}function Wv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function Xv(d){d=d|0;var f=0,g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=d+92|0;c[s>>2]=$p((c[d+100>>2]<<2)+4|0)|0;r=$p((c[d+104>>2]<<2)+4|0)|0;c[d+96>>2]=r;g=c[d+84>>2]|0;f=c[g>>2]|0;if(f){q=d+32|0;do{l=b[f+82>>1]|0;j=l&65535;i=+h[f+72>>3];if(l<<16>>16==1)m=~~i;else{m=~~((i-+(_((a[q>>0]|0)+-1|0,j+-1|0)|0))/+(j|0));m=(m|0)>1?m:1}o=b[f+80>>1]|0;n=o&65535;i=+h[f+64>>3];if(o<<16>>16==1)p=~~i;else{p=~~((i-+(_((a[q>>0]|0)+-1|0,n+-1|0)|0))/+(n|0));p=(p|0)>1?p:1}d=e[f+86>>1]|0;k=j+d|0;if(l<<16>>16){j=c[s>>2]|0;do{l=j+(d<<2)|0;t=c[l>>2]|0;c[l>>2]=(t|0)>(m|0)?t:m;d=d+1|0}while((d|0)<(k|0))}d=e[f+84>>1]|0;f=n+d|0;if(o<<16>>16)do{t=r+(d<<2)|0;o=c[t>>2]|0;c[t>>2]=(o|0)>(p|0)?o:p;d=d+1|0}while((d|0)<(f|0));g=g+4|0;f=c[g>>2]|0}while((f|0)!=0)}return}function Yv(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=i;i=i+48|0;s=v+40|0;r=v+32|0;u=v+24|0;t=v+16|0;q=v+8|0;n=v;p=a+104|0;o=a+100|0;if((c[p>>2]|0)>=0){j=f+16|0;k=0;l=0;while(1){if(k>>>0<21)g=c[89544+(k<<2)>>2]|0;else{c[n>>2]=k;Oz(160752,160852,n)|0;g=160752}m=l;l=Xk(f,g,1)|0;xl(l,160855,304,1)|0;g=l+16|0;c[(c[g>>2]|0)+176>>2]=0;x=$p((c[o>>2]<<2)+4|0)|0;w=c[g>>2]|0;c[w+172>>2]=x;c[w+184>>2]=0;w=$p((c[o>>2]<<2)+4|0)|0;c[(c[g>>2]|0)+180>>2]=w;if(!m)c[(c[j>>2]|0)+192>>2]=l;else c[(c[m+16>>2]|0)+164>>2]=l;if((k|0)>=(c[p>>2]|0))break;else k=k+1|0}}if((c[o>>2]|0)>=0){j=d+16|0;k=0;l=0;while(1){if(k>>>0<21)g=c[89544+(k<<2)>>2]|0;else{c[q>>2]=k;Oz(160752,160852,q)|0;g=160752}m=l;l=Xk(d,g,1)|0;xl(l,160855,304,1)|0;x=l+16|0;c[(c[x>>2]|0)+176>>2]=0;n=$p((c[p>>2]<<2)+4|0)|0;w=c[x>>2]|0;c[w+172>>2]=n;c[w+184>>2]=0;w=$p((c[p>>2]<<2)+4|0)|0;c[(c[x>>2]|0)+180>>2]=w;if(!m)c[(c[j>>2]|0)+192>>2]=l;else c[(c[m+16>>2]|0)+164>>2]=l;if((k|0)>=(c[o>>2]|0))break;else k=k+1|0}}j=c[a+84>>2]|0;g=c[j>>2]|0;if(g)do{l=g+84|0;x=b[l>>1]|0;k=x&65535;if((x&65535)<21)k=c[89544+(k<<2)>>2]|0;else{c[t>>2]=k;Oz(160752,160852,t)|0;k=160752}m=Xk(f,k,0)|0;k=(e[g+80>>1]|0)+(e[l>>1]|0)|0;if(k>>>0<21)k=c[89544+(k<<2)>>2]|0;else{c[u>>2]=k;Oz(160752,160852,u)|0;k=160752}l=Xk(f,k,0)|0;ew(f,m,l,~~+h[g+64>>3]);l=g+86|0;x=b[l>>1]|0;k=x&65535;if((x&65535)<21)k=c[89544+(k<<2)>>2]|0;else{c[r>>2]=k;Oz(160752,160852,r)|0;k=160752}m=Xk(d,k,0)|0;k=(e[g+82>>1]|0)+(e[l>>1]|0)|0;if(k>>>0<21)k=c[89544+(k<<2)>>2]|0;else{c[s>>2]=k;Oz(160752,160852,s)|0;k=160752}x=Xk(d,k,0)|0;ew(d,m,x,~~+h[g+72>>3]);j=j+4|0;g=c[j>>2]|0}while((g|0)!=0);fw(f);fw(d);i=v;return}function Zv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;b=c[(c[(c[(c[b+16>>2]|0)+192>>2]|0)+16>>2]|0)+164>>2]|0;if(b){g=c[a+92>>2]|0;h=0;f=0;while(1){i=c[b+16>>2]|0;e=i+232|0;c[g+(h<<2)>>2]=(c[e>>2]|0)-f;b=c[i+164>>2]|0;if(!b)break;else{h=h+1|0;f=c[e>>2]|0}}}b=c[(c[(c[(c[d+16>>2]|0)+192>>2]|0)+16>>2]|0)+164>>2]|0;if(b){g=c[a+96>>2]|0;h=0;f=0;while(1){i=c[b+16>>2]|0;e=i+232|0;c[g+(h<<2)>>2]=(c[e>>2]|0)-f;b=c[i+164>>2]|0;if(!b)break;else{h=h+1|0;f=c[e>>2]|0}}}return}function _v(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;e=h;c[e>>2]=c[12648];b=c[a+100>>2]|0;if((b|0)!=1?(d=a+104|0,(c[d>>2]|0)!=1):0){c[a+92>>2]=$p((b<<2)+4|0)|0;c[a+96>>2]=$p((c[d>>2]<<2)+4|0)|0;c[f>>2]=c[e>>2];g=ak(160868,f,0)|0;c[f>>2]=c[e>>2];f=ak(160873,f,0)|0;xl(g,160878,280,1)|0;xl(f,160878,280,1)|0;Yv(a,g,f);eq(g,2,2147483647)|0;eq(f,2,2147483647)|0;Zv(a,g,f);b=c[(c[f+16>>2]|0)+192>>2]|0;if(b)do{e=b+16|0;b=c[e>>2]|0;d=c[b+172>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+180>>2]|0;if(d){pB(d);b=c[e>>2]|0}b=c[b+164>>2]|0}while((b|0)!=0);dk(g)|0;dk(f)|0}else Xv(a);i=h;return}function $v(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=i;i=i+256|0;j=p+104|0;o=p+248|0;g=p;k=p+32|0;n=p+232|0;c[k+48>>2]=b;switch(rl(b)|0){case 0:{e=c[b+60>>2]|0;l=k+52|0;c[l>>2]=e;break}case 1:{e=gl(b)|0;l=k+52|0;c[l>>2]=e;break}case 2:{e=gl(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;l=k+52|0;c[l>>2]=e;break}default:{l=k+52|0;e=0}}m=c[e+60>>2]|0;h[k+32>>3]=+h[d+16>>3];c[k+16>>2]=c[d+4>>2];c[k+20>>2]=c[d+8>>2];c[k+40>>2]=0;f=tx(c[d>>2]|0,o,k)|0;if(!f){gj(n,128,j);a[d+82>>0]=0;a:do switch(rl(b)|0){case 0:{jj(n,ok(b)|0)|0;break}case 1:{jj(n,ok(b)|0)|0;break}case 2:{jj(n,ok(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)|0;k=b+-48|0;jj(n,ok(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0)|0;if(!(hk(gl(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0)|0)){jj(n,160894)|0;break a}else{jj(n,160891)|0;break a}}default:{}}while(0);f=n+4|0;e=c[f>>2]|0;if(e>>>0>=(c[n+8>>2]|0)>>>0){hj(n,1)|0;e=c[f>>2]|0}a[e>>0]=0;e=c[n>>2]|0;c[f>>2]=e;e=oA(e)|0;c[d>>2]=e;if((c[d+12>>2]|0)==1)e=gt(e)|0;else e=ft(e,c[l>>2]|0)|0;pB(c[d>>2]|0);c[d>>2]=e;Pp(c[(c[m+16>>2]|0)+144>>2]|0,d);kj(n);e=c[o>>2]|0}else{e=f+4|0;if((a[e>>0]|0)==1){if((c[(c[f>>2]|0)+24>>2]|0)==0?(gw(b)|0)!=0:0){n=oA(gw(b)|0)|0;c[(c[f>>2]|0)+24>>2]=n}b=hw(m,c[f>>2]|0,0,k)|0;c[o>>2]=c[o>>2]|b;b=c[f>>2]|0;r=+h[b+64>>3]*.5;q=+h[b+72>>3]*.5;h[g>>3]=-r;n=g+8|0;h[n>>3]=-q;l=g+16|0;h[l>>3]=r;m=g+24|0;h[m>>3]=q;c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];c[j+24>>2]=c[g+24>>2];c[j+28>>2]=c[g+28>>2];iw(b,j,15);h[d+24>>3]=+h[l>>3]-+h[g>>3];h[d+32>>3]=+h[m>>3]-+h[n>>3]}else{jw(c[(c[m+16>>2]|0)+144>>2]|0,c[f>>2]|0,k);n=c[f>>2]|0;q=+h[n+24>>3]*.5;r=+h[n+32>>3]*.5;h[g>>3]=-q;h[g+8>>3]=-r;h[g+16>>3]=q;h[g+24>>3]=r;n=n+8|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];c[n+16>>2]=c[g+16>>2];c[n+20>>2]=c[g+20>>2];c[n+24>>2]=c[g+24>>2];c[n+28>>2]=c[g+28>>2];h[d+24>>3]=q+q;h[d+32>>3]=r+r}c[d+72>>2]=f;if((a[e>>0]|0)==1){pB(c[d>>2]|0);c[d>>2]=oA(160897)|0}e=c[o>>2]|0}i=p;return e|0}function aw(b){b=b|0;var d=0.0;switch(a[b+4>>0]|0){case 1:{b=c[b>>2]|0;d=+h[b+72>>3]-+h[b+56>>3];break}case 3:{b=c[b>>2]|0;d=+h[b+24>>3]-+h[b+8>>3];break}case 2:{b=c[b>>2]|0;d=+h[b+32>>3]-+h[b+16>>3];break}default:d=0.0}return +d}function bw(e,f,g){e=e|0;f=f|0;g=g|0;var j=0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0;T=i;i=i+128|0;P=T+104|0;R=T+48|0;Q=T+16|0;O=T;j=b[f+4>>1]|0;if(j<<16>>16>=1){l=+h[f+24>>3];N=+h[f+8>>3];r=(l-N)*.5;N=+h[g>>3]+(l+N)*.5;l=+h[f+32>>3];m=+h[f+16>>3];U=+h[g+8>>3]+(l+m)*.5;L=j<<16>>16;M=c[f>>2]|0;y=a[f+6>>0]|0;J=g+16|0;J=d[J>>0]|d[J+1>>0]<<8|d[J+2>>0]<<16|d[J+3>>0]<<24;K=g+20|0;K=d[K>>0]|d[K+1>>0]<<8|d[K+2>>0]<<16|d[K+3>>0]<<24;s=g+32|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];p=+h[k>>3];s=O;c[s>>2]=0;c[s+4>>2]=0;q=N-r;r=r+N;s=O+8|0;h[s>>3]=U+(l-m)*.5;Ou(e,1);t=Q+16|0;u=Q+4|0;v=Q+24|0;w=R+4|0;x=R+16|0;y=y<<24>>24==0;z=R+24|0;A=R+8|0;B=R+32|0;C=R+40|0;D=R+48|0;E=K;F=Q+8|0;I=0;do{switch(a[M+(I*24|0)+6>>0]|0){case 108:{l=q;break}case 114:{l=r-+h[M+(I*24|0)+8>>3];break}default:l=N-+h[M+(I*24|0)+8>>3]*.5}G=M+(I*24|0)+16|0;h[s>>3]=+h[s>>3]-+h[G>>3];H=M+(I*24|0)+4|0;if((b[H>>1]|0)>0){n=0;o=c[M+(I*24|0)>>2]|0;while(1){g=o+4|0;f=c[g>>2]|0;if(f){U=+h[f+16>>3];h[t>>3]=U>0.0?U:p;j=c[f>>2]|0;if(!j)c[Q>>2]=J;else c[Q>>2]=j;j=c[f+4>>2]|0;if(!j){c[u>>2]=K;j=E}else c[u>>2]=j;f=c[f+24>>2]&127;if(!f)S=18;else f=c[v>>2]&-128|f}else{h[t>>3]=p;c[Q>>2]=J;c[u>>2]=K;j=E;S=18}if((S|0)==18){S=0;f=c[v>>2]&-128}c[v>>2]=f;Ru(e,j);c[R>>2]=c[o>>2];c[w>>2]=Q;h[x>>3]=+h[o+16>>3];if(y)m=1.0;else m=+h[o+24>>3];h[z>>3]=m;c[F>>2]=c[(c[g>>2]|0)+8>>2];c[A>>2]=c[o+8>>2];j=o+32|0;h[B>>3]=+h[j>>3];h[C>>3]=+h[G>>3];a[D>>0]=108;h[O>>3]=l;c[P>>2]=c[O>>2];c[P+4>>2]=c[O+4>>2];c[P+8>>2]=c[O+8>>2];c[P+12>>2]=c[O+12>>2];Qu(e,P,R);n=n+1|0;if((n|0)>=(b[H>>1]|0))break;else{l=l+ +h[j>>3];o=o+56|0}}}I=I+1|0}while((I|0)!=(L|0));Pu(e)}i=T;return}function cw(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0;ea=i;i=i+352|0;ba=ea+232|0;da=ea+160|0;T=ea+128|0;R=ea+64|0;S=ea+336|0;aa=ea+200|0;ca=ea+296|0;s=ea;t=ea+344|0;X=g+48|0;c[aa>>2]=c[X>>2];c[aa+4>>2]=c[X+4>>2];c[aa+8>>2]=c[X+8>>2];c[aa+12>>2]=c[X+12>>2];c[aa+16>>2]=c[X+16>>2];c[aa+20>>2]=c[X+20>>2];c[aa+24>>2]=c[X+24>>2];c[aa+28>>2]=c[X+28>>2];l=+h[j>>3];X=j+8|0;m=+h[X>>3];U=g+84|0;u=c[U>>2]|0;if(!(c[g>>2]|0))$=(c[g+8>>2]|0)!=0;else $=1;W=g+108|0;k=c[W>>2]|0;if(k)kw(j,k,43160);h[aa>>3]=l+ +h[aa>>3];V=aa+16|0;h[V>>3]=l+ +h[V>>3];V=aa+8|0;h[V>>3]=m+ +h[V>>3];V=aa+24|0;h[V>>3]=m+ +h[V>>3];if($?(c[f+152>>2]&4|0)==0:0){c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];V=mw(f,j,g,ba,ca)|0}else V=0;o=g+42|0;k=e[o>>1]|0;if(!(k&32)){n=c[g+20>>2]|0;if(n){r=nw(f,n,c[g+28>>2]|0,k,t)|0;if(!(b[o>>1]&4)){c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];Xu(f,ba,r)}else{k=a[g+33>>0]|0;c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];c[s>>2]=c[aa>>2];c[s+4>>2]=c[aa+4>>2];c[s+8>>2]=c[aa+8>>2];c[s+12>>2]=c[aa+12>>2];n=s+32|0;Q=ba+16|0;c[n>>2]=c[Q>>2];c[n+4>>2]=c[Q+4>>2];c[n+8>>2]=c[Q+8>>2];c[n+12>>2]=c[Q+12>>2];if((k&255)>1){q=+(k&255|0)*.5;p=q+ +h[s>>3];h[s>>3]=p;Q=s+8|0;m=q+ +h[Q>>3];h[Q>>3]=m;l=+h[n>>3]-q;h[n>>3]=l;Q=s+40|0;q=+h[Q>>3]-q;h[Q>>3]=q}else{l=+h[n>>3];m=+h[s+8>>3];p=+h[s>>3];q=+h[s+40>>3]}h[s+16>>3]=l;h[s+24>>3]=m;h[s+48>>3]=p;h[s+56>>3]=q;jr(f,s,4,4,r)}pB(c[t>>2]|0)}k=c[u>>2]|0;a:do if(k){x=T+16|0;y=T+8|0;z=T+24|0;A=f+152|0;B=ba+8|0;C=ba+32|0;D=ba+40|0;E=ba+16|0;F=ba+24|0;G=ba+48|0;H=ba+56|0;I=j+56|0;J=R+32|0;K=ba+16|0;L=R+8|0;M=R+40|0;N=R+16|0;O=R+24|0;P=R+48|0;Q=R+56|0;b:while(1){t=k+48|0;c[T>>2]=c[t>>2];c[T+4>>2]=c[t+4>>2];c[T+8>>2]=c[t+8>>2];c[T+12>>2]=c[t+12>>2];c[T+16>>2]=c[t+16>>2];c[T+20>>2]=c[t+20>>2];c[T+24>>2]=c[t+24>>2];c[T+28>>2]=c[t+28>>2];l=+h[j>>3];m=+h[X>>3];if(!(c[k>>2]|0))t=(c[k+8>>2]|0)!=0;else t=1;h[T>>3]=l+ +h[T>>3];h[x>>3]=l+ +h[x>>3];h[y>>3]=m+ +h[y>>3];h[z>>3]=m+ +h[z>>3];if(t?(c[A>>2]&4|0)==0:0){c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];s=mw(f,j,k,ba,da)|0}else s=0;r=k+42|0;n=e[r>>1]|0;c:do if(!(n&32)){o=c[k+20>>2]|0;if(o){o=nw(f,o,c[k+28>>2]|0,n,S)|0;if(!(b[r>>1]&4)){c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];Xu(f,ba,o)}else{n=a[k+33>>0]|0;c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];c[J>>2]=c[K>>2];c[J+4>>2]=c[K+4>>2];c[J+8>>2]=c[K+8>>2];c[J+12>>2]=c[K+12>>2];if((n&255)>1){q=+(n&255|0)*.5;p=q+ +h[R>>3];h[R>>3]=p;m=q+ +h[L>>3];h[L>>3]=m;l=+h[J>>3]-q;h[J>>3]=l;q=+h[M>>3]-q;h[M>>3]=q}else{l=+h[J>>3];m=+h[L>>3];p=+h[R>>3];q=+h[M>>3]}h[N>>3]=l;h[O>>3]=m;h[P>>3]=p;h[Q>>3]=q;jr(f,R,4,4,o)}pB(c[S>>2]|0)}if(a[k+33>>0]|0){c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];ow(f,k,ba)}n=k+88|0;switch(a[k+92>>0]|0){case 1:{cw(f,c[n>>2]|0,j);break c}case 3:{o=c[n>>2]|0;v=+h[j>>3];p=+h[o>>3]+v;q=+h[X>>3];w=+h[o+8>>3]+q;v=+h[o+16>>3]+v;q=+h[o+24>>3]+q;h[ba>>3]=v;h[B>>3]=q;h[C>>3]=p;h[D>>3]=w;h[E>>3]=p;h[F>>3]=q;h[G>>3]=v;h[H>>3]=w;n=c[o+36>>2]|0;if(!n)n=c[I>>2]|0;o=c[o+32>>2]|0;if(!o){k=40;break b}if(!(a[o>>0]|0)){k=42;break b}$u(f,o,ba,4,1,n);break c}default:{bw(f,c[n>>2]|0,j);break c}}}while(0);if(s)pw(f,da);if((t?(c[A>>2]&4|0)!=0:0)?(c[ba>>2]=c[T>>2],c[ba+4>>2]=c[T+4>>2],c[ba+8>>2]=c[T+8>>2],c[ba+12>>2]=c[T+12>>2],c[ba+16>>2]=c[T+16>>2],c[ba+20>>2]=c[T+20>>2],c[ba+24>>2]=c[T+24>>2],c[ba+28>>2]=c[T+28>>2],(mw(f,j,k,ba,da)|0)!=0):0)pw(f,da);u=u+4|0;k=c[u>>2]|0;if(!k)break a}if((k|0)==40)Ia(161229,160915,623,161237);else if((k|0)==42)Ia(161251,160915,624,161237)}while(0);k=c[U>>2]|0;av(f,1.0);n=c[k>>2]|0;if(n){x=g+24|0;y=da+8|0;z=da+16|0;A=da+24|0;B=da+8|0;C=da+16|0;D=da+24|0;do{k=k+4|0;t=n+100|0;if(a[t>>0]|0){o=c[x>>2]|0;u=c[k>>2]|0;p=+h[j>>3];m=+h[X>>3];o=(o|0)==0?160746:o;Su(f,o);Ru(f,o);q=p+ +h[n+48>>3];v=p+ +h[n+64>>3];w=m+ +h[n+56>>3];m=m+ +h[n+72>>3];o=a[t>>0]|0;if((o&1)!=0?(Y=c[n+96>>2]|0,((e[n+80>>1]|0)+(e[n+84>>1]|0)|0)<(c[Y+104>>2]|0)):0){o=b[n+86>>1]|0;do if(o<<16>>16){r=a[Y+32>>0]|0;if(((e[n+82>>1]|0)+(o&65535)|0)==(c[Y+100>>2]|0)){U=(r<<24>>24|0)/2|0;o=U+(d[Y+33>>0]|0)|0;s=r;l=w-+(U|0)-+(o&255|0);break}else{s=r;l=w-+((r<<24>>24|0)/2|0|0);o=0;break}}else{s=a[Y+32>>0]|0;o=(s<<24>>24|0)/2|0;l=w-+(o|0);o=o+(d[Y+33>>0]|0)|0}while(0);fa=v+ +((s<<24>>24|0)/2|0|0);h[da>>3]=fa;h[B>>3]=l;h[C>>3]=fa+0.0;h[D>>3]=l+(+(s<<24>>24)+(m+ +(o&255|0)-w));c[ba>>2]=c[da>>2];c[ba+4>>2]=c[da+4>>2];c[ba+8>>2]=c[da+8>>2];c[ba+12>>2]=c[da+12>>2];c[ba+16>>2]=c[da+16>>2];c[ba+20>>2]=c[da+20>>2];c[ba+24>>2]=c[da+24>>2];c[ba+28>>2]=c[da+28>>2];Xu(f,ba,1);o=a[t>>0]|0}if((o&2)!=0?(Z=b[n+86>>1]|0,_=c[n+96>>2]|0,((e[n+82>>1]|0)+(Z&65535)|0)<(c[_+100>>2]|0)):0){o=b[n+84>>1]|0;do if(!(o<<16>>16)){o=a[_+32>>0]|0;U=(o<<24>>24|0)/2|0;s=U+(d[_+33>>0]|0)|0;r=s&255;s=s&255;m=+(U|0);l=q-+(s|0)-m;if((e[n+80>>1]|0)==(c[_+104>>2]|0)){n=s<<1&255;break}if((u|0)!=0?(b[u+86>>1]|0)!=Z<<16>>16:0)n=~~(+(r&255)+(p+ +h[_+64>>3]-(v+m)))&255;else n=r}else{if(((e[n+80>>1]|0)+(o&65535)|0)==(c[_+104>>2]|0)){o=a[_+32>>0]|0;n=(o<<24>>24|0)/2|0;l=q-+(n|0);n=n+(d[_+33>>0]|0)&255;break}n=a[_+32>>0]|0;m=+((n<<24>>24|0)/2|0|0);l=q-m;if((u|0)!=0?(b[u+86>>1]|0)!=Z<<16>>16:0){o=n;n=~~(p+ +h[_+64>>3]-(v+m)+0.0)&255}else{o=n;n=0}}while(0);fa=w-+((o<<24>>24|0)/2|0|0);h[da>>3]=l;h[y>>3]=fa;h[z>>3]=l+(+(o<<24>>24)+(v+ +(n&255|0)-q));h[A>>3]=fa+0.0;c[ba>>2]=c[da>>2];c[ba+4>>2]=c[da+4>>2];c[ba+8>>2]=c[da+8>>2];c[ba+12>>2]=c[da+12>>2];c[ba+16>>2]=c[da+16>>2];c[ba+20>>2]=c[da+20>>2];c[ba+24>>2]=c[da+24>>2];c[ba+28>>2]=c[da+28>>2];Xu(f,ba,1)}}n=c[k>>2]|0}while((n|0)!=0)}if(a[g+33>>0]|0){c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];ow(f,g,ba)}}if(V)pw(f,ca);if(($?(c[f+152>>2]&4|0)!=0:0)?(c[ba>>2]=c[aa>>2],c[ba+4>>2]=c[aa+4>>2],c[ba+8>>2]=c[aa+8>>2],c[ba+12>>2]=c[aa+12>>2],c[ba+16>>2]=c[aa+16>>2],c[ba+20>>2]=c[aa+20>>2],c[ba+24>>2]=c[aa+24>>2],c[ba+28>>2]=c[aa+28>>2],(mw(f,j,g,ba,ca)|0)!=0):0)pw(f,ca);if(c[W>>2]|0){k=c[10790]|0;if(k)c[j+16>>2]=k;k=c[10791]|0;if(k)c[j+20>>2]=k;l=+h[5397];if(l>=0.0)h[j+32>>3]=l}i=ea;return}function dw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=c[b+4>>2]|0;if((f|0)!=0?(hA(f,d)|0)==0:0)e=b;else h=3;a:do if((h|0)==3){b=c[b+84>>2]|0;f=c[b>>2]|0;if(!f)e=0;else{g=b;while(1){g=g+4|0;b=c[f+4>>2]|0;if((b|0)!=0?(hA(b,d)|0)==0:0){e=f;h=8}else h=6;if((h|0)==6?(h=0,(a[f+92>>0]|0)==1):0){e=dw(c[f+88>>2]|0,d)|0;h=8}if((h|0)==8?(0,(e|0)!=0):0)break a;f=c[g>>2]|0;if(!f){e=0;break}}}}while(0);return e|0}function ew(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0;h=Sj(a,d,f,0,0)|0;if(!h){i=Sj(a,d,f,0,1)|0;xl(i,161165,176,1)|0;b[(c[i+16>>2]|0)+170>>1]=g;g=d+16|0;a=c[g>>2]|0;h=c[a+180>>2]|0;a=c[a+184>>2]|0;if(!h)h=aq((a<<2)+8|0)|0;else h=cq(h,(a<<2)+8|0)|0;d=c[g>>2]|0;c[d+180>>2]=h;d=d+184|0;a=c[d>>2]|0;c[d>>2]=a+1;c[h+(a<<2)>>2]=i;g=c[g>>2]|0;c[(c[g+180>>2]|0)+(c[g+184>>2]<<2)>>2]=0;g=f+16|0;a=c[g>>2]|0;h=c[a+172>>2]|0;a=c[a+176>>2]|0;if(!h)h=aq((a<<2)+8|0)|0;else h=cq(h,(a<<2)+8|0)|0;d=c[g>>2]|0;c[d+172>>2]=h;d=d+176|0;f=c[d>>2]|0;c[d>>2]=f+1;c[h+(f<<2)>>2]=i;i=c[g>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0}else{i=(c[h+16>>2]|0)+170|0;f=e[i>>1]|0;b[i>>1]=(f|0)>(g|0)?f:g}return}function fw(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[(c[a+16>>2]|0)+192>>2]|0;d=e+16|0;f=c[(c[d>>2]|0)+164>>2]|0;if(f){h=f;while(1){if(!(Sj(a,e,h,0,0)|0)){g=Sj(a,e,h,0,1)|0;xl(g,161165,176,1)|0;b[(c[g+16>>2]|0)+170>>1]=0;f=c[d>>2]|0;e=c[f+180>>2]|0;f=c[f+184>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;i=c[d>>2]|0;c[i+180>>2]=e;i=i+184|0;f=c[i>>2]|0;c[i>>2]=f+1;c[e+(f<<2)>>2]=g;d=c[d>>2]|0;c[(c[d+180>>2]|0)+(c[d+184>>2]<<2)>>2]=0;d=h+16|0;f=c[d>>2]|0;e=c[f+172>>2]|0;f=c[f+176>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;f=c[d>>2]|0;c[f+172>>2]=e;f=f+176|0;i=c[f>>2]|0;c[f>>2]=i+1;c[e+(i<<2)>>2]=g;i=c[d>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0}else d=h+16|0;e=c[(c[d>>2]|0)+164>>2]|0;if(!e)break;else{i=h;h=e;e=i}}}return}function gw(b){b=b|0;var c=0,d=0;c=zj(b,161150)|0;if(!((c|0)!=0?(a[c>>0]|0)!=0:0))d=3;do if((d|0)==3){c=zj(b,161159)|0;if((c|0)!=0?(a[c>>0]|0)!=0:0)break;c=0}while(0);return c|0}function hw(f,g,j,k){f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+16|0;H=J+8|0;G=J;I=g+108|0;l=c[I>>2]|0;if(l)kw(k,l,43128);c[g+80>>2]=j;p=g+84|0;C=c[p>>2]|0;D=Dq()|0;E=qw()|0;j=Ti(C)|0;if(!j)l=0;else{l=0;o=0;do{n=Ti(c[j+8>>2]|0)|0;if(n)do{l=l+1|0;n=c[n>>2]|0}while((n|0)!=0);o=o+1|0;if(a[j+12>>0]|0)rw(E,o);j=c[j>>2]|0}while((j|0)!=0)}l=$p((l<<2)+4|0)|0;c[p>>2]=l;n=Ti(C)|0;if(!n){j=0;l=0;s=0}else{j=0;r=0;A=0;q=0;while(1){p=Ti(c[n+8>>2]|0)|0;if(!p){o=r;p=q}else{z=A&65535;o=0;s=l;y=r;while(1){x=c[p+8>>2]|0;l=s+4|0;c[s>>2]=x;q=lw(f,x,g,k)|0|q;w=x+80|0;v=b[w>>1]|0;s=(v&65535)+-1|0;if(v<<16>>16){a:while(1){r=s+o|0;while(1){if(Iq(D,r,A)|0){o=r;break}if((r|0)>(o|0))r=r+-1|0;else break a}o=o+1|0}r=b[w>>1]|0;if(!(r<<16>>16))B=16;else{v=x+82|0;t=b[v>>1]|0;s=t;u=o;do{if(!(t<<16>>16))t=0;else{s=A;do{Gq(D,u,s);s=s+1|0;r=b[v>>1]|0}while((s|0)<((r&65535)+A|0));s=r;t=r;r=b[w>>1]|0}u=u+1|0}while((u|0)<((r&65535)+o|0))}}else B=16;if((B|0)==16){B=0;r=0;s=b[x+82>>1]|0}b[x+86>>1]=z;b[x+84>>1]=o;o=(r&65535)+o|0;j=(o|0)>(j|0)?o:j;w=(s&65535)+A|0;r=(w|0)>(y|0)?w:y;if(sw(E,w)|0){y=x+100|0;a[y>>0]=d[y>>0]|2}p=c[p>>2]|0;if(!p){o=r;p=q;break}else{s=l;y=r}}}n=c[n>>2]|0;if(!n){l=o;s=p;break}else{r=o;A=A+1|0;q=p}}}o=g+100|0;c[o>>2]=l;n=g+104|0;c[n>>2]=j;Pi(C)|0;Pi(E)|0;Eq(D);r=g+36|0;l=b[r>>1]|0;if(!(l&128))a[g+32>>0]=2;j=g+33|0;if(!(l&32))a[j>>0]=1;_v(g);p=c[n>>2]|0;E=a[g+32>>0]|0;l=_(E,p+1|0)|0;j=d[j>>0]<<1;l=j+l|0;q=c[o>>2]|0;j=(_(q+1|0,E)|0)+j|0;if((p|0)>0){n=c[g+96>>2]|0;o=0;do{l=(c[n+(o<<2)>>2]|0)+l|0;o=o+1|0}while((o|0)<(p|0))}if((q|0)>0){o=c[g+92>>2]|0;n=0;do{j=(c[o+(n<<2)>>2]|0)+j|0;n=n+1|0}while((n|0)<(q|0))}o=g+38|0;do if(!(b[r>>1]&1))n=s;else{E=b[o>>1]|0;n=E&65535;if(E<<16>>16!=0?(F=b[g+40>>1]|0,F<<16>>16!=0):0){if(!((n|0)<(l|0)|(F&65535|0)<(j|0))){j=0;n=s;l=0;break}dj(0,160950,G)|0;j=0;n=1;l=0;break}dj(0,160984,H)|0;n=1}while(0);H=e[o>>1]|0;h[g+64>>3]=+(((l|0)>(H|0)?l:H)|0);H=e[g+40>>1]|0;h[g+72>>3]=+(((j|0)>(H|0)?j:H)|0);if(c[I>>2]|0){l=c[10782]|0;if(l)c[k+16>>2]=l;l=c[10783]|0;if(l)c[k+20>>2]=l;m=+h[5393];if(m>=0.0)h[k+32>>3]=m}i=J;return n|0}function iw(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;M=i;i=i+64|0;L=M+32|0;K=M;A=c[f+84>>2]|0;k=c[f+80>>2]|0;if(((k|0)!=0?(l=c[k+24>>2]|0,(l|0)!=0):0)?(m=f+24|0,(c[m>>2]|0)==0):0)c[m>>2]=oA(l)|0;I=f+48|0;l=g+16|0;p=+h[l>>3];n=+h[g>>3];k=~~(p-n-+(~~+h[f+64>>3]|0));if((k|0)<=-1)Ia(160905,160915,1761,160927);m=g+24|0;r=+h[m>>3];o=g+8|0;s=+h[o>>3];t=+(~~+h[f+72>>3]|0);u=~~(r-s-t);if((u|0)<=-1)Ia(160940,160915,1764,160927);q=e[f+36>>1]|0;a:do if(q&1){b:do if((k|0)>0)switch(q&6|0){case 4:{h[l>>3]=n+t;break b}case 2:{z=+(k|0);h[l>>3]=p+z;n=z+n;h[g>>3]=n;break b}default:{z=+((k|0)/2|0|0);n=n+z;h[g>>3]=n;h[l>>3]=p-z;break b}}while(0);if((u|0)>0)switch(q&24|0){case 16:{r=t+s;h[m>>3]=r;k=0;v=0;break a}case 8:{z=+(u|0);r=z+r;h[m>>3]=r;h[o>>3]=z+s;k=0;v=0;break a}default:{z=+((u|0)/2|0|0);h[o>>3]=s+z;r=r-z;h[m>>3]=r;k=0;v=0;break a}}else{k=0;v=0}}else v=u;while(0);w=f+33|0;G=f+32|0;H=f+104|0;F=c[H>>2]|0;u=(k|0)/(F|0)|0;l=k-(_(u,F)|0)|0;l=~~(+(l|0)+((l|0)>-1?.5:-.5));if((F|0)>=0){k=a[G>>0]|0;m=c[f+96>>2]|0;o=k<<24>>24;q=0;k=~~(+(k<<24>>24)+(n+ +(d[w>>0]|0)));while(1){E=m+(q<<2)|0;F=c[E>>2]|0;c[E>>2]=k;k=k+u+((q|0)<(l|0)&1)+F+o|0;if((q|0)>=(c[H>>2]|0))break;else q=q+1|0}}F=f+100|0;E=c[F>>2]|0;u=(v|0)/(E|0)|0;l=v-(_(u,E)|0)|0;l=~~(+(l|0)+((l|0)>-1?.5:-.5));if((E|0)>=0){k=a[G>>0]|0;m=c[f+92>>2]|0;o=k<<24>>24;q=0;k=~~(r-+(d[w>>0]|0)-+(k<<24>>24));while(1){D=m+(q<<2)|0;E=c[D>>2]|0;c[D>>2]=k;k=k-u+(((q|0)<(l|0))<<31>>31)-E-o|0;if((q|0)>=(c[F>>2]|0))break;else q=q+1|0}}k=c[A>>2]|0;c:do if(k){v=(j|0)==0;w=f+96|0;B=f+92|0;C=K+8|0;D=K+16|0;E=K+24|0;while(1){A=A+4|0;l=b[k+84>>1]|0;if(v){m=b[k+80>>1]|0;o=b[k+86>>1]|0;q=b[k+82>>1]|0;u=0}else{u=l<<16>>16==0?8:0;O=b[k+86>>1]|0;u=O<<16>>16==0?u|4:u;N=b[k+80>>1]|0;P=b[k+82>>1]|0;m=N;o=O;q=P;u=((P&65535)+(O&65535)|0)==(c[F>>2]|0)|(((N&65535)+(l&65535)|0)==(c[H>>2]|0)?u|2:u)}P=l&65535;O=c[w>>2]|0;r=+(c[O+(P<<2)>>2]|0);l=a[G>>0]|0;s=+((c[O+((m&65535)+P<<2)>>2]|0)-l|0);o=o&65535;P=c[B>>2]|0;z=+(c[P+(o<<2)>>2]|0);y=+((c[P+((q&65535)+o<<2)>>2]|0)+l|0);o=u&j;l=k+24|0;if((c[l>>2]|0)==0?(J=c[(c[k+96>>2]|0)+24>>2]|0,(J|0)!=0):0)c[l>>2]=oA(J)|0;q=k+36|0;u=e[q>>1]|0;m=k+64|0;d:do if(u&1){n=+h[m>>3];l=k+72|0;x=+h[l>>3];p=s-r-n;e:do if(p>0.0)switch(u&6|0){case 4:{s=r+n;n=r;break e}case 2:{s=s+p;n=r+p;break e}default:{n=p*.5;s=s-n;n=r+n;break e}}else n=r;while(0);p=z-y-x;if(p>0.0)switch(u&24|0){case 16:{r=n;t=y;n=y+x;break d}case 8:{r=n;t=y+p;n=z+p;break d}default:{x=p*.5;r=n;t=y+x;n=z-x;break d}}else{r=n;t=y;n=z}}else{l=k+72|0;t=y;n=z}while(0);h[k+48>>3]=r;h[k+56>>3]=t;h[m>>3]=s;h[l>>3]=n;a[k+35>>0]=o;y=+(d[k+33>>0]|0);z=+(d[k+34>>0]|0);x=r+y+z;h[K>>3]=x;t=t+y+z;h[C>>3]=t;r=s-y-z;h[D>>3]=r;s=n-y-z;h[E>>3]=s;l=k+88|0;switch(a[k+92>>0]|0){case 1:{P=c[l>>2]|0;c[L>>2]=c[K>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2];c[L+16>>2]=c[K+16>>2];c[L+20>>2]=c[K+20>>2];c[L+24>>2]=c[K+24>>2];c[L+28>>2]=c[K+28>>2];iw(P,L,o);break}case 3:{k=c[l>>2]|0;n=+h[k+24>>3];p=r-x-+h[k+16>>3];f:do if(p>0.0)switch(u&6|0){case 4:{h[D>>3]=r-p;break f}case 2:{h[K>>3]=x+p;break f}default:break f}while(0);n=s-t-n;g:do if(n>0.0)switch(u&24|0){case 16:{h[E>>3]=s-n;break g}case 8:{h[C>>3]=t+n;break g}default:break g}while(0);BB(k|0,K|0,32)|0;break}default:{k=c[l>>2]|0;n=+h[k+32>>3];p=r-x-+h[k+24>>3];h:do if(p>0.0)switch(u&6|0){case 6:break h;case 4:{h[D>>3]=r-p;break h}case 2:{h[K>>3]=x+p;break h}default:{z=p*.5;h[K>>3]=x+z;h[D>>3]=r-z;break h}}while(0);n=s-t-n;i:do if(n>0.0)switch(u&24|0){case 16:{h[E>>3]=s-n;break i}case 8:{h[C>>3]=t+n;break i}default:{z=n*.5;h[C>>3]=t+z;h[E>>3]=s-z;break i}}while(0);k=k+8|0;c[k>>2]=c[K>>2];c[k+4>>2]=c[K+4>>2];c[k+8>>2]=c[K+8>>2];c[k+12>>2]=c[K+12>>2];c[k+16>>2]=c[K+16>>2];c[k+20>>2]=c[K+20>>2];c[k+24>>2]=c[K+24>>2];c[k+28>>2]=c[K+28>>2];q=e[q>>1]&768;q=(q|0)==512?108:(q|0)==256?114:110;k=c[l>>2]|0;l=b[k+4>>1]|0;if(l<<16>>16>0){o=c[k>>2]|0;k=l<<16>>16;m=0;do{l=o+(m*24|0)+6|0;if(!(a[l>>0]|0))a[l>>0]=q;m=m+1|0}while((m|0)!=(k|0))}}}k=c[A>>2]|0;if(!k)break c}}while(0);a[f+35>>0]=j;c[I>>2]=c[g>>2];c[I+4>>2]=c[g+4>>2];c[I+8>>2]=c[g+8>>2];c[I+12>>2]=c[g+12>>2];c[I+16>>2]=c[g+16>>2];c[I+20>>2]=c[g+20>>2];c[I+24>>2]=c[g+24>>2];c[I+28>>2]=c[g+28>>2];i=M;return}function jw(d,e,f){d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0.0;Q=i;i=i+112|0;O=Q+48|0;P=Q+16|0;M=Q;c[P>>2]=0;c[P+4>>2]=0;c[P+8>>2]=0;c[P+12>>2]=0;c[P+16>>2]=0;c[P+20>>2]=0;c[P+24>>2]=0;c[P+28>>2]=0;N=e+4|0;l=b[N>>1]|0;u=l<<16>>16>0;if(u){p=f+32|0;q=P+16|0;r=f+16|0;o=c[e>>2]|0;s=l<<16>>16;t=0;n=0;j=-1.0;a:while(1){if((b[o+(t*24|0)+4>>1]|0)>1){m=0;break}m=c[(c[o+(t*24|0)>>2]|0)+4>>2]|0;do if(m){if(c[m+24>>2]&127){m=0;break a}g=+h[m+16>>3];if(!(g>0.0))g=+h[p>>3];h[q>>3]=g;m=c[m>>2]|0;if(!m){m=c[r>>2]|0;c[P>>2]=m;break}else{c[P>>2]=m;break}}else{g=+h[p>>3];h[q>>3]=g;m=c[r>>2]|0;c[P>>2]=m}while(0);if(!(j==-1.0))if(g!=j){m=0;break}else g=j;if(n)if(!(lA(m,n)|0))m=n;else{m=0;break}t=t+1|0;if((t|0)>=(s|0)){m=1;break}else{n=m;j=g}}a[e+6>>0]=m;if(u){r=(m|0)==0;s=f+48|0;t=f+16|0;u=f+32|0;A=P+16|0;B=f+20|0;C=P+4|0;D=f+40|0;E=P+24|0;F=d+144|0;G=O+4|0;H=M+8|0;I=O+16|0;J=O+24|0;K=O+8|0;L=O+12|0;p=f+16|0;l=c[e>>2]|0;z=0.0;q=0;j=0.0;g=0.0;while(1){if((b[l+(q*24|0)+4>>1]|0)>0){m=c[l+(q*24|0)>>2]|0;o=0;y=0.0;v=0.0;k=0.0;x=0.0;while(1){c[O>>2]=Up(c[m+(o*56|0)>>2]|0,c[s>>2]|0)|0;n=(c[e>>2]|0)+(q*24|0)|0;l=c[(c[n>>2]|0)+(o*56|0)+4>>2]|0;do if(l){l=c[l+24>>2]&127;do if(!l){l=c[D>>2]&127;m=c[E>>2]&-128;if(!l){c[E>>2]=m;break}else{c[E>>2]=m|l;break}}else c[E>>2]=c[E>>2]&-128|l;while(0);m=c[(c[n>>2]|0)+(o*56|0)+4>>2]|0;w=+h[m+16>>3];if(!(w>0.0))w=+h[u>>3];h[A>>3]=w;l=c[m>>2]|0;if(!l)c[P>>2]=c[p>>2];else c[P>>2]=l;l=c[m+4>>2]|0;if(!l){c[C>>2]=c[B>>2];break}else{c[C>>2]=l;break}}else{h[A>>3]=+h[u>>3];c[P>>2]=c[t>>2];c[C>>2]=c[B>>2];c[E>>2]=c[E>>2]&-128|c[D>>2]&127}while(0);l=c[F>>2]|0;c[G>>2]=ub[c[l>>2]&31](l,P,1)|0;us(M,d,O);R=+h[M>>3];w=+h[H>>3];pB(c[(c[(c[e>>2]|0)+(q*24|0)>>2]|0)+(o*56|0)>>2]|0);l=c[e>>2]|0;m=c[l+(q*24|0)>>2]|0;c[m+(o*56|0)>>2]=c[O>>2];h[m+(o*56|0)+32>>3]=R;h[m+(o*56|0)+16>>3]=+h[I>>3];h[m+(o*56|0)+24>>3]=+h[J>>3];c[m+(o*56|0)+4>>2]=c[G>>2];c[m+(o*56|0)+8>>2]=c[K>>2];c[m+(o*56|0)+12>>2]=c[L>>2];x=x+R;R=+h[A>>3];v=R>v?R:v;k=w>k?w:k;w=+h[J>>3];w=w>y?w:y;o=o+1|0;if((o|0)>=(b[l+(q*24|0)+4>>1]|0)){n=l;break}else y=w}}else{n=l;w=0.0;v=0.0;k=0.0;x=0.0}h[n+(q*24|0)+8>>3]=x;m=(q|0)==0;do if(r)if(m){w=v-w;h[n+16>>3]=w;break}else{w=g+v-z-w;h[n+(q*24|0)+16>>3]=w;break}else{l=n+(q*24|0)+16|0;if(m){h[l>>3]=v;w=v;v=k;break}else{h[l>>3]=k;w=k;v=k;break}}while(0);j=x>j?x:j;g=g+v;q=q+1|0;l=b[N>>1]|0;if((q|0)>=(l<<16>>16|0))break;else{l=n;z=z+w}}}else{k=0.0;j=0.0;g=0.0}}else{a[e+6>>0]=1;k=0.0;j=0.0;g=0.0}h[e+24>>3]=j;h[e+32>>3]=l<<16>>16==1?k:g;i=Q;return}function kw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0;e=a+16|0;f=c[e>>2]|0;do if(f)if(!(c[b>>2]|0)){c[d>>2]=0;break}else{c[d>>2]=f;c[e>>2]=c[b>>2];break}while(0);f=a+20|0;g=c[f>>2]|0;do if(g){j=b+4|0;e=d+4|0;if(!(c[j>>2]|0)){c[e>>2]=0;break}else{c[e>>2]=g;c[f>>2]=c[j>>2];break}}while(0);g=a+32|0;i=+h[g>>3];do if(i>=0.0){f=b+16|0;e=d+16|0;if(!(+h[f>>3]>=0.0)){h[e>>3]=-1.0;break}else{h[e>>3]=i;h[g>>3]=+h[f>>3];break}}while(0);return}function lw(f,g,j,k){f=f|0;g=g|0;j=j|0;k=k|0;var l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=i;i=i+32|0;w=x+16|0;v=x+8|0;r=x;o=x+24|0;c[g+96>>2]=j;t=g+36|0;n=b[t>>1]|0;do if(!(n&64))if(!(b[j+36>>1]&64)){a[g+34>>0]=2;break}else{a[g+34>>0]=a[j+34>>0]|0;break}while(0);do if(!(n&32)){n=a[j+88>>0]|0;if(n<<24>>24>-1){a[g+33>>0]=n;break}if(!(b[j+36>>1]&32)){a[g+33>>0]=1;break}else{a[g+33>>0]=a[j+33>>0]|0;break}}while(0);q=g+88|0;s=g+92|0;switch(a[s>>0]|0){case 1:{n=hw(f,c[q>>2]|0,g,k)|0;f=c[q>>2]|0;j=f+64|0;f=f+72|0;break}case 3:{p=c[q>>2]|0;n=k+52|0;j=p+32|0;zn(o,c[n>>2]|0,c[j>>2]|0);f=c[o>>2]|0;k=c[o+4>>2]|0;if((k&f|0)==-1){c[r>>2]=c[j>>2];dj(1,161035,r)|0;m=0.0;l=0.0;n=1}else{a[(c[(c[n>>2]|0)+16>>2]|0)+114>>0]=1;m=+(f|0);l=+(k|0);n=0}c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;h[p+16>>3]=m;h[p+24>>3]=l;f=c[q>>2]|0;j=f+16|0;f=f+24|0;break}default:{jw(c[(c[f+16>>2]|0)+144>>2]|0,c[q>>2]|0,k);f=c[q>>2]|0;j=f+24|0;f=f+32|0;n=0}}l=+((d[g+33>>0]|0)+(d[g+34>>0]|0)<<1|0);m=+h[j>>3]+l;l=+h[f>>3]+l;f=g+38|0;do if(b[t>>1]&1){t=b[f>>1]|0;j=t&65535;if(t<<16>>16!=0?(u=b[g+40>>1]|0,u<<16>>16!=0):0){if(!(+(j|0)<m|+(u&65535|0)<l)){m=0.0;l=0.0;break}if((a[s>>0]|0)==3){m=0.0;l=0.0;break}dj(0,161067,v)|0;n=1;m=0.0;l=0.0;break}dj(0,161100,w)|0;n=1}while(0);y=+(e[f>>1]|0);h[g+64>>3]=m>y?m:y;m=+(e[g+40>>1]|0);h[g+72>>3]=l>m?l:m;i=x;return n|0}function mw(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+224|0;s=u+8|0;l=u;t=u+40|0;k=u+56|0;j=u+88|0;m=c[d+16>>2]|0;p=m+208|0;c[h>>2]=c[p>>2];q=m+228|0;c[h+4>>2]=c[q>>2];r=m+244|0;c[h+8>>2]=c[r>>2];n=m+212|0;c[h+12>>2]=c[n>>2];o=m+260|0;a[h+16>>0]=(b[o>>1]<<15&65535)<<16>>16>>15;h=c[f+16>>2]|0;if((h|0)!=0?(a[h>>0]|0)!=0:0)j=0;else{gj(t,128,j);j=e+60|0;h=c[j>>2]|0;if(!h){h=oA(Wo(d,c[m+8>>2]|0,t)|0)|0;c[j>>2]=h;a[e+64>>0]=1}jj(t,h)|0;j=c[22407]|0;c[22407]=j+1;c[l>>2]=j;Oz(k,161288,l)|0;jj(t,k)|0;j=t+4|0;h=c[j>>2]|0;if(h>>>0>=(c[t+8>>2]|0)>>>0){hj(t,1)|0;h=c[j>>2]|0}a[h>>0]=0;h=c[t>>2]|0;c[j>>2]=h;j=1}h=Vo(d,0,c[f>>2]|0,c[f+12>>2]|0,c[f+8>>2]|0,h,c[m+8>>2]|0)|0;if(j)kj(t);do if(h){if((c[p>>2]|0)==0?(b[o>>1]&1)==0:0)break;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];c[s+16>>2]=c[g+16>>2];c[s+20>>2]=c[g+20>>2];c[s+24>>2]=c[g+24>>2];c[s+28>>2]=c[g+28>>2];Zo(d,s);Mu(d,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[n>>2]|0)}while(0);i=u;return h|0}function nw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0,k=0;k=i;i=i+16|0;j=k;if(!((cp(b,f,j)|0)<<24>>24)){Su(a,b);f=1}else{Su(a,c[f>>2]|0);f=c[f+4>>2]|0;h=+g[j>>2];if(!f)Tu(a,160746,d,h);else Tu(a,f,d,h);f=e>>>1&1|2}Ru(a,161276);i=k;return f|0}function ow(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0;t=i;i=i+160|0;r=t+112|0;s=t;l=t+144|0;q=c[g+24>>2]|0;Ru(f,(q|0)==0?160746:q);q=g+42|0;k=b[q>>1]|0;if(!(k&384))Uu(f,c[(c[f>>2]|0)+336>>2]|0);else{c[l+4>>2]=0;c[l>>2]=0;k=k&65535;if(!(k&256)){if(k&128)c[l>>2]=161269}else c[l>>2]=161262;Uu(f,l)}k=g+33|0;av(f,+(d[k>>0]|0));a:do if(!(b[q>>1]&4)){q=(e[g+36>>1]|0)&15360;if(!q){k=a[k>>0]|0;if((k&255)>1){p=+(k&255)*.5;h[j>>3]=p+ +h[j>>3];s=j+8|0;h[s>>3]=p+ +h[s>>3];s=j+16|0;h[s>>3]=+h[s>>3]-p;s=j+24|0;h[s>>3]=+h[s>>3]-p};c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];c[r+16>>2]=c[j+16>>2];c[r+20>>2]=c[j+20>>2];c[r+24>>2]=c[j+24>>2];c[r+28>>2]=c[j+28>>2];Xu(f,r,0);break}g=s+16|0;k=a[k>>0]|0;c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];c[r+16>>2]=c[j+16>>2];c[r+20>>2]=c[j+20>>2];c[r+24>>2]=c[j+24>>2];c[r+28>>2]=c[j+28>>2];c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];l=s+48|0;r=r+16|0;c[l>>2]=c[r>>2];c[l+4>>2]=c[r+4>>2];c[l+8>>2]=c[r+8>>2];c[l+12>>2]=c[r+12>>2];if((k&255)>1){p=+(k&255|0)*.5;o=p+ +h[g>>3];h[g>>3]=o;r=s+24|0;n=p+ +h[r>>3];h[r>>3]=n;m=+h[l>>3]-p;h[l>>3]=m;r=s+56|0;p=+h[r>>3]-p;h[r>>3]=p}else{m=+h[l>>3];n=+h[s+24>>3];o=+h[g>>3];p=+h[s+56>>3]}h[s+32>>3]=m;h[s+40>>3]=n;h[s+64>>3]=o;h[s+72>>3]=p;if((q|0)<8192)switch(q|0){case 4096:{Zu(f,s+32|0,2);break a}case 2048:{Zu(f,l,2);break a}case 1024:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,2);break a}case 6144:{Zu(f,s+32|0,3);break a}case 3072:{s=s+80|0;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];Zu(f,l,3);break a}case 7168:{r=s+80|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[r+12>>2]=c[g+12>>2];Zu(f,s+32|0,4);break a}case 5120:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,2);Zu(f,s+32|0,2);break a}default:break a}else switch(q|0){case 8192:{Zu(f,g,2);break a}case 12288:{Zu(f,g,3);break a}case 9216:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,3);break a}case 14336:{Zu(f,g,4);break a}case 11264:{r=s+80|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[r+12>>2]=c[g+12>>2];r=s+96|0;s=s+32|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];Zu(f,l,4);break a}case 13312:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,4);break a}case 10240:{Zu(f,g,2);Zu(f,l,2);break a}default:break a}}else{l=a[k>>0]|0;c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];c[r+16>>2]=c[j+16>>2];c[r+20>>2]=c[j+20>>2];c[r+24>>2]=c[j+24>>2];c[r+28>>2]=c[j+28>>2];c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];k=s+32|0;r=r+16|0;c[k>>2]=c[r>>2];c[k+4>>2]=c[r+4>>2];c[k+8>>2]=c[r+8>>2];c[k+12>>2]=c[r+12>>2];if((l&255)>1){p=+(l&255|0)*.5;o=p+ +h[s>>3];h[s>>3]=o;r=s+8|0;n=p+ +h[r>>3];h[r>>3]=n;m=+h[k>>3]-p;h[k>>3]=m;r=s+40|0;p=+h[r>>3]-p;h[r>>3]=p}else{m=+h[k>>3];n=+h[s+8>>3];o=+h[s>>3];p=+h[s+40>>3]}h[s+16>>3]=m;h[s+24>>3]=n;h[s+48>>3]=o;h[s+56>>3]=p;jr(f,s,4,4,0)}while(0);i=t;return}function pw(a,e){a=a|0;e=e|0;var f=0,g=0,h=0;h=c[a+16>>2]|0;f=h+208|0;if((c[f>>2]|0)==0?(b[h+260>>1]&1)==0:0)a=0;else{Nu(a);a=c[f>>2]|0}if((a|0)!=(c[e>>2]|0)){pB(a);c[f>>2]=c[e>>2]}a=h+228|0;f=c[a>>2]|0;g=e+4|0;if((f|0)!=(c[g>>2]|0)){pB(f);c[a>>2]=c[g>>2]}a=h+244|0;f=c[a>>2]|0;g=e+8|0;if((f|0)!=(c[g>>2]|0)){pB(f);c[a>>2]=c[g>>2]}a=h+212|0;f=c[a>>2]|0;g=e+12|0;if((f|0)!=(c[g>>2]|0)){pB(f);c[a>>2]=c[g>>2]}h=h+260|0;b[h>>1]=b[h>>1]&-2|(d[e+16>>0]|0)&1;return}function qw(){return Vi(89632,c[12573]|0)|0}function rw(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;ub[c[a>>2]&31](a,e,1)|0;i=d;return}function sw(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;b=(ub[c[a>>2]&31](a,e,512)|0)!=0&1;i=d;return b|0}function tw(a,b,d){a=a|0;b=b|0;d=d|0;d=$p(12)|0;c[d>>2]=c[b>>2];return d|0}function uw(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function vw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b>>2]|0;d=c[d>>2]|0;return ((b|0)>(d|0)?1:((b|0)<(d|0))<<31>>31)|0}function ww(a){a=a|0;var b=0;if(!(c[22417]|0)){b=$p((a<<2)+4|0)|0;c[22417]=b;c[b>>2]=89672;c[22428]=a}c[22429]=0;return}function xw(){pB(c[22417]|0);c[22417]=0;c[22429]=0;return}function yw(){c[22429]=0;return}function zw(){var a=0,b=0,d=0;a=c[22429]|0;a:do if((a|0)>=1){b=c[22417]|0;d=1;while(1){if((c[(c[b+(d<<2)>>2]|0)+4>>2]|0)!=(d|0))break;if((d|0)<(a|0))d=d+1|0;else break a}Ia(161945,161292,59,161298)}while(0);return}function Aw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=c[22417]|0;b=d+(a<<2)|0;g=c[b>>2]|0;f=c[g>>2]|0;e=(a|0)/2|0;d=c[d+(e<<2)>>2]|0;if((c[d>>2]|0)<(f|0))while(1){c[b>>2]=d;c[d+4>>2]=a;a=(e|0)/2|0;b=c[22417]|0;d=c[b+(a<<2)>>2]|0;b=b+(e<<2)|0;if((c[d>>2]|0)>=(f|0)){a=e;break}else{h=e;e=a;a=h}}c[b>>2]=g;c[g+4>>2]=a;return}function Bw(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=c[22429]|0;if((b|0)==(c[22428]|0)){dj(1,161306,d)|0;b=1}else{b=b+1|0;c[22429]=b;c[(c[22417]|0)+(b<<2)>>2]=a;Aw(b);zw();b=0}i=d;return b|0}function Cw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=c[22417]|0;i=c[b+(a<<2)>>2]|0;g=c[i>>2]|0;d=c[22429]|0;h=(d|0)/2|0;a:do if((h|0)>=(a|0))while(1){e=a<<1;f=c[b+(e<<2)>>2]|0;if((e|0)<(d|0)){k=e|1;d=c[b+(k<<2)>>2]|0;j=(c[f>>2]|0)<(c[d>>2]|0);e=j?k:e;d=j?d:f}else d=f;if((g|0)>=(c[d>>2]|0))break a;c[b+(a<<2)>>2]=d;c[d+4>>2]=a;b=c[22417]|0;if((e|0)>(h|0)){a=e;break a}a=e;d=c[22429]|0}while(0);c[b+(a<<2)>>2]=i;c[i+4>>2]=a;return}function Dw(){var a=0,b=0,d=0,e=0;b=c[22429]|0;if(!b)a=0;else{e=c[22417]|0;d=e+4|0;a=c[d>>2]|0;c[d>>2]=c[e+(b<<2)>>2];b=b+-1|0;c[22429]=b;if(b)Cw(1);zw()}return a|0}function Ew(a,b){a=a|0;b=b|0;c[a>>2]=b;Aw(c[a+4>>2]|0);zw();return}function Fw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=c[b+16>>2]|0;k=(a[j+((c[e+12>>2]|0)*40|0)+36>>0]|0)!=(a[j+((c[e+16>>2]|0)*40|0)+36>>0]|0);l=~~((+h[d+64>>3]-+h[d+48>>3]+-3.0)*.5);m=~~((+h[d+56>>3]-+h[d+40>>3]+-3.0)*.5);i=(l|0)<(m|0)?l:m;n=c[d+4>>2]|0;a:do if((n|0)>0){b=0;do{f=c[d+8+(b<<2)>>2]|0;if((a[j+((c[f+12>>2]|0)*40|0)+36>>0]|0)==(a[j+((c[f+16>>2]|0)*40|0)+36>>0]|0))break a;g=f+8|0;p=c[g>>2]|0;c[g>>2]=p+1;if((p|0)>=(i|0)){c[g>>2]=0;h[f>>3]=+h[f>>3]+16384.0}b=b+1|0}while((b|0)<(n|0))}else b=0;while(0);if((b|0)<(n|0))do{f=c[d+8+(b<<2)>>2]|0;if(k|(f|0)==(e|0)?(p=(a[j+((c[f+12>>2]|0)*40|0)+36>>0]|0)!=0?l:m,o=f+8|0,i=c[o>>2]|0,c[o>>2]=i+1,(i|0)>=(p|0)):0){c[o>>2]=0;h[f>>3]=+h[f>>3]+16384.0}b=b+1|0}while((b|0)<(n|0));return}function Gw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0;Q=i;i=i+256|0;z=Q+208|0;O=Q+200|0;N=Q+192|0;t=Q+160|0;s=Q+128|0;r=Q+96|0;q=Q+80|0;o=Q+32|0;A=Q+16|0;C=Q;u=Q+240|0;v=Q+48|0;P=$p(28)|0;d=ek(b)|0;B=P+4|0;c[B>>2]=d;d=$p(d*72|0)|0;D=P+12|0;c[D>>2]=d;w=v+8|0;h[w>>3]=1797693134862315708145274.0e284;h[v>>3]=1797693134862315708145274.0e284;y=v+24|0;h[y>>3]=-1797693134862315708145274.0e284;x=v+16|0;h[x>>3]=-1797693134862315708145274.0e284;e=Rk(b)|0;if(!e){g=1797693134862315708145274.0e284;j=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284}else{g=1797693134862315708145274.0e284;j=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284;while(1){E=e+16|0;n=c[E>>2]|0;R=(+h[n+88>>3]+ +h[n+96>>3])*.5;R=R<1.0?1.0:R;p=+h[n+80>>3]*.5;p=p<1.0?1.0:p;U=+h[n+16>>3];T=U-R;R=U+R;U=+h[n+24>>3];S=U-p;p=U+p;h[v>>3]=g<T?g:T;h[w>>3]=j<S?j:S;h[x>>3]=k>R?k:R;h[y>>3]=l>p?l:p;h[d+40>>3]=T;h[d+48>>3]=S;h[d+56>>3]=R;h[d+64>>3]=p;c[d>>2]=c[d>>2]|1;c[(c[E>>2]|0)+112>>2]=d;e=Sk(b,e)|0;if(!e)break;g=+h[v>>3];j=+h[w>>3];k=+h[x>>3];l=+h[y>>3];d=d+72|0}g=+h[v>>3];j=+h[w>>3];k=+h[x>>3];l=+h[y>>3]}h[v>>3]=g+-36.0;h[w>>3]=j+-36.0;h[x>>3]=k+36.0;h[y>>3]=l+36.0;E=c[D>>2]|0;n=c[B>>2]|0;c[z>>2]=c[v>>2];c[z+4>>2]=c[v+4>>2];c[z+8>>2]=c[v+8>>2];c[z+12>>2]=c[v+12>>2];c[z+16>>2]=c[v+16>>2];c[z+20>>2]=c[v+20>>2];c[z+24>>2]=c[v+24>>2];c[z+28>>2]=c[v+28>>2];n=Lw(E,n,u,z)|0;if(c[14794]&1){e=c[D>>2]|0;b=c[B>>2]|0;f=c[u>>2]|0;g=+h[v>>3];j=+h[w>>3];k=+h[x>>3];l=+h[y>>3];m=c[22667]|0;Dz(c[22430]|0,m)|0;c[o>>2]=10;c[o+4>>2]=10;c[o+8>>2]=~~(k+10.0-g);c[o+12>>2]=~~(l+10.0-j);Bz(m,161321,o)|0;h[q>>3]=10.0-g;h[q+8>>3]=10.0-j;Bz(m,161369,q)|0;Mz(161386,18,1,m)|0;if((b|0)>0){d=0;do{S=+h[e+(d*72|0)+48>>3];T=+h[e+(d*72|0)+56>>3];U=+h[e+(d*72|0)+64>>3];h[r>>3]=+h[e+(d*72|0)+40>>3];h[r+8>>3]=S;h[r+16>>3]=T;h[r+24>>3]=U;Bz(m,161405,r)|0;d=d+1|0}while((d|0)!=(b|0))}Mz(161423,18,1,m)|0;if((f|0)>0){d=0;do{S=+h[n+(d<<5)+8>>3];T=+h[n+(d<<5)+16>>3];U=+h[n+(d<<5)+24>>3];h[s>>3]=+h[n+(d<<5)>>3];h[s+8>>3]=S;h[s+16>>3]=T;h[s+24>>3]=U;Bz(m,161442,s)|0;d=d+1|0}while((d|0)!=(f|0))}Mz(161460,18,1,m)|0;h[t>>3]=g;h[t+8>>3]=j;h[t+16>>3]=k;h[t+24>>3]=l;Bz(m,161442,t)|0;Dz(c[22431]|0,m)|0}d=$p((c[u>>2]|0)*72|0)|0;E=P+8|0;c[E>>2]=d;c[P>>2]=c[u>>2];e=c[u>>2]|0;if((e|0)>0?(u=d+40|0,c[u>>2]=c[n>>2],c[u+4>>2]=c[n+4>>2],c[u+8>>2]=c[n+8>>2],c[u+12>>2]=c[n+12>>2],c[u+16>>2]=c[n+16>>2],c[u+20>>2]=c[n+20>>2],c[u+24>>2]=c[n+24>>2],c[u+28>>2]=c[n+28>>2],(e|0)>1):0){d=1;do{u=(c[E>>2]|0)+(d*72|0)+40|0;t=n+(d<<5)|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[u+20>>2]=c[t+20>>2];c[u+24>>2]=c[t+24>>2];c[u+28>>2]=c[t+28>>2];d=d+1|0}while((d|0)<(e|0))}pB(n);p=+h[v>>3];l=+h[w>>3];k=+h[x>>3];j=+h[y>>3];x=c[P>>2]|0;y=nu(x<<2|2)|0;v=Vi(89728,c[12573]|0)|0;w=Vi(89764,c[12573]|0)|0;x=$p(x<<7)|0;d=$p(c[P>>2]<<4)|0;if((c[P>>2]|0)>0){e=A+8|0;o=0;do{b=c[E>>2]|0;f=b+(o*72|0)|0;c[b+(o*72|0)+32>>2]=4;m=b+(o*72|0)+36|0;c[m>>2]=d+(o<<2<<2);n=b+(o*72|0)+40|0;g=+h[b+(o*72|0)+56>>3];if(g<k){h[A>>3]=g;h[e>>3]=+h[b+(o*72|0)+48>>3];c[z>>2]=c[A>>2];c[z+4>>2]=c[A+4>>2];c[z+8>>2]=c[A+8>>2];c[z+12>>2]=c[A+12>>2];u=Iw(y,v,z,x,1)|0;c[u+20>>2]=f;c[c[m>>2]>>2]=u}g=+h[b+(o*72|0)+64>>3];if(g<j){h[A>>3]=+h[n>>3];h[e>>3]=g;c[z>>2]=c[A>>2];c[z+4>>2]=c[A+4>>2];c[z+8>>2]=c[A+8>>2];c[z+12>>2]=c[A+12>>2];u=Iw(y,w,z,x,0)|0;c[u+20>>2]=f;c[(c[m>>2]|0)+4>>2]=u}if(+h[n>>3]>p){c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];c[z+8>>2]=c[n+8>>2];c[z+12>>2]=c[n+12>>2];u=Iw(y,v,z,x,1)|0;c[u+24>>2]=f;c[(c[m>>2]|0)+8>>2]=u}if(+h[b+(o*72|0)+48>>3]>l){c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];c[z+8>>2]=c[n+8>>2];c[z+12>>2]=c[n+12>>2];u=Iw(y,w,z,x,0)|0;c[u+24>>2]=f;c[(c[m>>2]|0)+12>>2]=u}o=o+1|0}while((o|0)<(c[P>>2]|0))}r=$p(c[y>>2]<<2)|0;if((c[B>>2]|0)>0){s=C+8|0;t=0;d=0;u=0;while(1){n=c[D>>2]|0;o=n+(t*72|0)|0;q=n+(t*72|0)+36|0;c[q>>2]=r+(u<<2);e=n+(t*72|0)+40|0;c[C>>2]=c[e>>2];c[C+4>>2]=c[e+4>>2];c[C+8>>2]=c[e+8>>2];c[C+12>>2]=c[e+12>>2];e=ub[c[w>>2]&31](w,C,512)|0;a:do if(e){b=n+(t*72|0)+56|0;f=n+(t*72|0)+32|0;do{if(!(+h[e+8>>3]<+h[b>>3]))break a;z=c[e>>2]|0;A=c[f>>2]|0;c[f>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+24>>2]=o;e=ub[c[w>>2]&31](w,e,8)|0}while((e|0)!=0)}while(0);e=ub[c[v>>2]&31](v,C,512)|0;m=n+(t*72|0)+64|0;b:do if(e){b=n+(t*72|0)+32|0;do{if(!(+h[e+16>>3]<+h[m>>3]))break b;z=c[e>>2]|0;A=c[b>>2]|0;c[b>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+24>>2]=o;e=ub[c[v>>2]&31](v,e,8)|0}while((e|0)!=0)}while(0);h[s>>3]=+h[m>>3];e=ub[c[w>>2]&31](w,C,512)|0;b=n+(t*72|0)+56|0;f=n+(t*72|0)+32|0;c:do if(e)do{if(!(+h[e+8>>3]<+h[b>>3]))break c;z=c[e>>2]|0;A=c[f>>2]|0;c[f>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+20>>2]=o;e=ub[c[w>>2]&31](w,e,8)|0}while((e|0)!=0);while(0);h[C>>3]=+h[b>>3];h[s>>3]=+h[n+(t*72|0)+48>>3];e=ub[c[v>>2]&31](v,C,512)|0;d:do if(e)do{if(!(+h[e+16>>3]<+h[m>>3]))break d;z=c[e>>2]|0;A=c[f>>2]|0;c[f>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+20>>2]=o;e=ub[c[v>>2]&31](v,e,8)|0}while((e|0)!=0);while(0);b=c[f>>2]|0;d=(b|0)>(d|0)?b:d;t=t+1|0;e=c[B>>2]|0;if((t|0)>=(e|0)){r=e;break}else u=b+u|0}if((r|0)>0){n=c[D>>2]|0;q=0;do{o=n+(q*72|0)|0;if((+h[n+(q*72|0)+64>>3]-+h[n+(q*72|0)+48>>3]+-3.0)*.5<2.0?(F=c[n+(q*72|0)+32>>2]|0,(F|0)>0):0){f=c[n+(q*72|0)+36>>2]|0;m=0;do{e=c[f+(m<<2)>>2]|0;e:do if(a[e+36>>0]|0){b=c[e+20>>2]|0;if((b|0)==(o|0)){e=c[e+24>>2]|0;c[e>>2]=c[e>>2]|8;e=c[c[e+36>>2]>>2]|0;if(!e)break;do{e=c[e+24>>2]|0;b=c[e>>2]|0;if(b&1)break e;c[e>>2]=b|8;e=c[c[e+36>>2]>>2]|0}while((e|0)!=0)}else{c[b>>2]=c[b>>2]|8;e=c[(c[b+36>>2]|0)+8>>2]|0;if(!e)break;do{e=c[e+20>>2]|0;b=c[e>>2]|0;if(b&1)break e;c[e>>2]=b|8;e=c[(c[e+36>>2]|0)+8>>2]|0}while((e|0)!=0)}}while(0);m=m+1|0}while((m|0)!=(F|0))}if((+h[n+(q*72|0)+56>>3]-+h[n+(q*72|0)+40>>3]+-3.0)*.5<2.0?(G=c[n+(q*72|0)+32>>2]|0,(G|0)>0):0){f=c[n+(q*72|0)+36>>2]|0;m=0;do{e=c[f+(m<<2)>>2]|0;f:do if(!(a[e+36>>0]|0)){b=c[e+20>>2]|0;if((b|0)==(o|0)){e=c[e+24>>2]|0;c[e>>2]=c[e>>2]|16;e=c[(c[e+36>>2]|0)+4>>2]|0;if(!e)break;do{e=c[e+24>>2]|0;b=c[e>>2]|0;if(b&1)break f;c[e>>2]=b|16;e=c[(c[e+36>>2]|0)+4>>2]|0}while((e|0)!=0)}else{c[b>>2]=c[b>>2]|16;e=c[(c[b+36>>2]|0)+12>>2]|0;if(!e)break;do{e=c[e+20>>2]|0;b=c[e>>2]|0;if(b&1)break f;c[e>>2]=b|16;e=c[(c[e+36>>2]|0)+12>>2]|0}while((e|0)!=0)}}while(0);m=m+1|0}while((m|0)!=(G|0))}q=q+1|0}while((q|0)!=(r|0))}}else d=0;G=c[y>>2]|0;n=y+16|0;F=c[n>>2]|0;c[F+(G*40|0)+32>>2]=G;G=G+1|0;c[F+(G*40|0)+32>>2]=G;mu(y,d);if((c[P>>2]|0)>0){m=0;do{f=c[E>>2]|0;d=f+(m*72|0)|0;j=+h[f+(m*72|0)+56>>3]-+h[f+(m*72|0)+40>>3];k=+h[f+(m*72|0)+64>>3]-+h[f+(m*72|0)+48>>3];g=(j+k)*.5+500.0;if((k+-3.0)*.5<2.0){G=(c[d>>2]&8|0)==0;l=G?16384.0:j;g=G?16384.0:g}else l=j;if((j+-3.0)*.5<2.0){G=(c[d>>2]&16|0)==0;k=G?16384.0:k;g=G?16384.0:g}b=f+(m*72|0)+36|0;d=c[b>>2]|0;e=c[d+8>>2]|0;if((e|0)!=0?(H=c[d+4>>2]|0,(H|0)!=0):0){G=pu(y,e,H,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(I=c[d>>2]|0,(I|0)!=0):0){G=pu(y,e,I,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+8>>2]|0;if((e|0)!=0?(J=c[d+12>>2]|0,(J|0)!=0):0){G=pu(y,e,J,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+12>>2]|0;if((e|0)!=0?(K=c[d>>2]|0,(K|0)!=0):0){G=pu(y,e,K,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(L=c[d+12>>2]|0,(L|0)!=0):0){G=pu(y,e,L,k)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+8>>2]|0;if((e|0)!=0?(M=c[d>>2]|0,(M|0)!=0):0){F=pu(y,e,M,l)|0;D=f+(m*72|0)+4|0;G=c[D>>2]|0;c[D>>2]=G+1;c[f+(m*72|0)+8+(G<<2)>>2]=F}m=m+1|0}while((m|0)<(c[P>>2]|0))}Pi(v)|0;Pi(w)|0;pB(x);g:do if((c[y>>2]|0)>0){b=c[22667]|0;f=0;while(1){d=c[n>>2]|0;e=d+(f*40|0)+20|0;if((c[e>>2]|0)==0?(c[N>>2]=f,Bz(b,161479,N)|0,(c[e>>2]|0)==0):0){d=98;break}d=d+(f*40|0)+24|0;if((c[d>>2]|0)==0?(c[O>>2]=f,Bz(b,161531,O)|0,(c[d>>2]|0)==0):0){d=101;break}f=f+1|0;if((f|0)>=(c[y>>2]|0))break g}if((d|0)==98)Ia(161501,161514,311,161521);else if((d|0)==101)Ia(161553,161514,313,161521)}while(0);ku(y);c[P+16>>2]=y;i=Q;return P|0}function Hw(a){a=a|0;var b=0,d=0;d=a+8|0;pB(c[(c[d>>2]|0)+36>>2]|0);b=a+12|0;pB(c[(c[b>>2]|0)+36>>2]|0);pB(c[d>>2]|0);pB(c[b>>2]|0);qu(c[a+16>>2]|0);Pi(c[a+20>>2]|0)|0;Pi(c[a+24>>2]|0)|0;pB(a);return}function Iw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=ub[c[d>>2]&31](d,e,512)|0;do if(!h){h=ou(b)|0;if(!f)Ia(161892,161514,291,161899);else{b=c[h+32>>2]|0;i=f+(b<<5)|0;f=f+(b<<5)+8|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[i>>2]=h;a[h+36>>0]=g;ub[c[d>>2]&31](d,i,1)|0;break}}else i=h;while(0);return c[i>>2]|0}function Jw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[c+8>>3];if(!(e>f))if(!(e<f)){f=+h[b>>3];e=+h[c>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function Kw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];if(!(e>f))if(!(e<f)){f=+h[b+8>>3];e=+h[c+8>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function Lw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;u=i;i=i+32|0;m=u;t=b<<2;k=t+4|0;t=t+5|0;s=aq(t*56|0)|0;t=$p(t<<2)|0;n=k*5|1;p=aq(n*72|0)|0;r=n<<5;q=$p(r)|0;r=$p(r)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];Mw(a,b,m,s,0);_y(173);Nw(k,t);Tw(k,s,t,n,p)|0;o=Ow(k,s,p,0,q)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];Mw(a,b,m,s,1);Nw(k,t);Tw(k,s,t,n,p)|0;k=Ow(k,s,p,1,r)|0;n=$p(_(o<<5,k)|0)|0;if((k|0)>0){l=(o|0)>0;e=0;m=0;do{if(l){b=r+(m<<5)|0;f=r+(m<<5)+16|0;g=r+(m<<5)+8|0;j=r+(m<<5)+24|0;a=0;do{z=+h[b>>3];y=+h[q+(a<<5)>>3];y=z>y?z:y;z=+h[f>>3];x=+h[q+(a<<5)+16>>3];x=z<x?z:x;h[n+(e<<5)+16>>3]=x;h[n+(e<<5)>>3]=y;z=+h[g>>3];w=+h[q+(a<<5)+8>>3];w=z>w?z:w;z=+h[j>>3];v=+h[q+(a<<5)+24>>3];v=z<v?z:v;h[n+(e<<5)+24>>3]=v;h[n+(e<<5)+8>>3]=w;e=((y>=x|w>=v)&1^1)+e|0;a=a+1|0}while((a|0)!=(o|0))}m=m+1|0}while((m|0)!=(k|0))}else e=0;o=cq(n,e<<5)|0;pB(s);pB(t);pB(p);pB(q);pB(r);c[d>>2]=e;i=u;return o|0}function Mw(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+64|0;v=w;j=+h[d>>3];l=+h[d+8>>3];m=+h[d+16>>3];g=+h[d+24>>3];h[v>>3]=j;s=v+8|0;h[s>>3]=l;t=v+32|0;h[t>>3]=m;u=v+40|0;h[u>>3]=g;o=v+16|0;h[o>>3]=m;p=v+24|0;h[p>>3]=l;q=v+48|0;h[q>>3]=j;r=v+56|0;h[r>>3]=g;n=(f|0)==0;if(!n){h[s>>3]=j;l=-l;h[v>>3]=l;h[p>>3]=m;h[o>>3]=l;h[u>>3]=m;m=-g;h[t>>3]=m;h[r>>3]=j;h[q>>3]=m}d=Sw(e,1,v)|0;if((c|0)>0){f=0;do{x=b+(f*72|0)+40|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];g=+h[k>>3];x=b+(f*72|0)+48|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];j=+h[k>>3];x=b+(f*72|0)+56|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];l=+h[k>>3];x=b+(f*72|0)+64|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];m=+h[k>>3];h[v>>3]=g;h[s>>3]=j;h[t>>3]=l;h[u>>3]=m;h[o>>3]=g;h[p>>3]=m;h[q>>3]=l;h[r>>3]=j;if(!n){h[s>>3]=g;j=-j;h[v>>3]=j;h[p>>3]=g;m=-m;h[o>>3]=m;h[u>>3]=l;h[t>>3]=m;h[r>>3]=l;h[q>>3]=j}d=Sw(e,d,v)|0;f=f+1|0}while((f|0)!=(c|0))}i=w;return}function Nw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if((a|0)>=0){d=0;while(1){c[b+(d<<2)>>2]=d;if((d|0)==(a|0))break;else d=d+1|0}if((a|0)>=1){a=a+1|0;e=1;do{d=~~(+(e|0)+ +(a-e|0)*+Yy());if((d|0)!=(e|0)){g=b+(e<<2)|0;f=c[g>>2]|0;d=b+(d<<2)|0;c[g>>2]=c[d>>2];c[d>>2]=f}e=e+1|0}while((e|0)!=(a|0))}}return}function Ow(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0;j=(a*5|0)+1|0;o=$p(j<<2)|0;c[22450]=$p(j<<4)|0;c[22451]=$p((a*56|0)+56|0)|0;n=$p(a<<2)|0;c[22452]=n;if((a|0)>-1){g=0;a:do{i=c[d+(g*72|0)+4>>2]|0;do if((c[d+(g*72|0)+68>>2]|0)!=2?!((i|0)<1?1:(c[d+(g*72|0)>>2]|0)<1):0){if(!((c[d+(g*72|0)+40>>2]|0)<1?(c[d+(g*72|0)+44>>2]|0)<1:0)){if((c[d+(g*72|0)+48>>2]|0)>=1)break;if((c[d+(g*72|0)+52>>2]|0)>=1)break}l=+h[b+(i*56|0)+24>>3];m=+h[b+(i*56|0)+8>>3];if(l>m+1.0e-07)break a;if(!(l<m+-1.0e-07)?+h[b+(i*56|0)+16>>3]>+h[b+(i*56|0)>>3]:0)break a}while(0);g=g+1|0}while((g|0)<(j|0));if((a|0)<1)i=g;else{i=c[22450]|0;j=c[22451]|0;k=1;while(1){c[i+(k<<4)+8>>2]=c[b+(k*56|0)+48>>2];p=b+(k*56|0)+44|0;c[i+(k<<4)+4>>2]=c[p>>2];c[i+(k<<4)>>2]=k;q=j+(k*56|0)|0;r=b+(k*56|0)|0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[j+(k*56|0)+16>>2]=c[p>>2];c[j+(k*56|0)+32>>2]=k;c[j+(k*56|0)+48>>2]=1;if((k|0)==(a|0)){i=g;break}else k=k+1|0}}}else i=0;c[22453]=a;c[22454]=0;c[n>>2]=1;g=c[d+(i*72|0)+40>>2]|0;if((g|0)<=0){g=c[d+(i*72|0)+48>>2]|0;if((g|0)>0)g=Pw(o,f,0,b,d,0,i,g,e,2)|0;else g=0}else g=Pw(o,f,0,b,d,0,i,g,e,1)|0;pB(o);pB(c[22450]|0);pB(c[22451]|0);pB(c[22452]|0);return g|0}function Pw(a,b,d,e,f,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0;a:do if((i|0)>=1){B=(k|0)==0;z=j;A=i;while(1){w=f+(A*72|0)|0;j=a+(A<<2)|0;if(c[j>>2]|0)break a;c[j>>2]=1;u=f+(A*72|0)+8|0;s=f+(A*72|0)+16|0;o=+h[s>>3];v=f+(A*72|0)+24|0;m=f+(A*72|0)+32|0;n=+h[m>>3];if((o>n?(y=c[w>>2]|0,C=+h[e+(y*56|0)>>3],C==+h[e+(y*56|0)+16>>3]):0)?(y=c[f+(A*72|0)+4>>2]|0,F=+h[e+(y*56|0)>>3],F==+h[e+(y*56|0)+16>>3]):0){j=b+(d<<5)|0;if(B){h[j>>3]=C;q=o;o=F}else{h[j>>3]=n;q=-C;n=-F}h[b+(d<<5)+8>>3]=n;h[b+(d<<5)+16>>3]=o;h[b+(d<<5)+24>>3]=q;d=d+1|0}j=f+(A*72|0)+40|0;x=c[j>>2]|0;do if((x|0)<1?(H=f+(A*72|0)+44|0,(c[H>>2]|0)<1):0){j=f+(A*72|0)+48|0;m=f+(A*72|0)+52|0;if((c[j>>2]|0)>0?(I=c[m>>2]|0,(I|0)>0):0){i=c[f+(I*72|0)>>2]|0;l=c[w>>2]|0;if((I|0)==(z|0)){i=Qw(g,l,i)|0;l=1;d=Pw(a,b,d,e,f,g,c[m>>2]|0,A,k,1)|0;break}else{i=Qw(g,i,l)|0;l=1;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,1)|0;j=m;break}}d=Pw(a,b,d,e,f,g,x,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[H>>2]|0,A,k,2)|0;l=1;i=g;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,1)|0;j=m}else O=19;while(0);do if((O|0)==19){O=0;y=f+(A*72|0)+48|0;p=c[y>>2]|0;if((p|0)<1?(J=f+(A*72|0)+52|0,(c[J>>2]|0)<1):0){m=f+(A*72|0)+44|0;if((x|0)>0?(K=c[m>>2]|0,(K|0)>0):0){i=c[f+(A*72|0)+4>>2]|0;l=c[f+(x*72|0)+4>>2]|0;if((K|0)==(z|0)){i=Qw(g,l,i)|0;l=2;d=Pw(a,b,d,e,f,g,c[m>>2]|0,A,k,2)|0;break}else{i=Qw(g,i,l)|0;l=2;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;j=m;break}}d=Pw(a,b,d,e,f,g,x,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[m>>2]|0,A,k,2)|0;l=1;i=g;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;j=J;break}t=f+(A*72|0)+44|0;r=c[t>>2]|0;i=(r|0)>0;if((x|0)>0){if(i){if((p|0)>0?(L=f+(A*72|0)+52|0,M=c[L>>2]|0,(M|0)>0):0){m=c[f+(M*72|0)>>2]|0;i=c[f+(x*72|0)+4>>2]|0;if(!((l|0)==2&(M|0)==(z|0))?!((l|0)==1&(r|0)==(z|0)):0){z=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[t>>2]|0,A,k,2)|0;j=L;break}z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[t>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[L>>2]|0,A,k,1)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=y;break}i=c[w>>2]|0;if(+N(+(+h[m>>3]-+h[e+(i*56|0)+24>>3]))<=1.0e-07?+N(+(+h[v>>3]-+h[e+(i*56|0)+16>>3]))<=1.0e-07:0){m=c[f+(x*72|0)+4>>2]|0;i=c[e+(i*56|0)+44>>2]|0;if((l|0)==1&(x|0)==(z|0)){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,z,c[y>>2]|0,A,k,1)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[t>>2]|0,A,k,2)|0;j=f+(A*72|0)+52|0;break}else{i=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[t>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;break}}m=c[f+(A*72|0)+4>>2]|0;i=c[f+(x*72|0)+4>>2]|0;if((l|0)==1&(r|0)==(z|0)){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[t>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;l=2;i=z;d=Pw(a,b,d,e,f,z,c[y>>2]|0,A,k,1)|0;break}else{i=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;j=t;break}}}else if(!i)break a;if((p|0)>0?(D=f+(A*72|0)+52|0,E=c[D>>2]|0,(E|0)>0):0){m=c[w>>2]|0;if(+N(+(+h[s>>3]-+h[e+(m*56|0)+8>>3]))<=1.0e-07?+N(+(+h[u>>3]-+h[e+(m*56|0)>>3]))<=1.0e-07:0){i=c[f+(E*72|0)>>2]|0;if((l|0)==2&(p|0)==(z|0)){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;j=D;break}else{i=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[D>>2]|0,A,k,1)|0;l=1;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;j=y;break}}i=c[f+(E*72|0)>>2]|0;m=c[e+((c[f+(A*72|0)+4>>2]|0)*56|0)+44>>2]|0;if((l|0)==2&(E|0)==(z|0)){z=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[D>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=y;break}else{i=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=1;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;j=D;break}}n=+h[s>>3];p=c[w>>2]|0;if(((+N(+(n-+h[e+(p*56|0)+8>>3]))<=1.0e-07?+N(+(+h[u>>3]-+h[e+(p*56|0)>>3]))<=1.0e-07:0)?(G=c[f+(A*72|0)+4>>2]|0,+N(+(+h[m>>3]-+h[e+(G*56|0)+8>>3]))<=1.0e-07):0)?+N(+(+h[v>>3]-+h[e+(G*56|0)>>3]))<=1.0e-07:0)if((l|0)==1){z=Qw(g,p,G)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;j=y;break}else{z=Qw(g,G,p)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=f+(A*72|0)+44|0;break}i=c[f+(A*72|0)+4>>2]|0;if(((+N(+(n-+h[e+(i*56|0)+24>>3]))<=1.0e-07?+N(+(+h[u>>3]-+h[e+(i*56|0)+16>>3]))<=1.0e-07:0)?+N(+(+h[m>>3]-+h[e+(p*56|0)+24>>3]))<=1.0e-07:0)?+N(+(+h[v>>3]-+h[e+(p*56|0)+16>>3]))<=1.0e-07:0){m=c[e+(i*56|0)+44>>2]|0;i=c[e+(p*56|0)+44>>2]|0;if((l|0)==1){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;j=y;break}else{z=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=f+(A*72|0)+44|0;break}}d=Pw(a,b,d,e,f,g,x,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=1;i=g;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;j=f+(A*72|0)+52|0}while(0);j=c[j>>2]|0;if((j|0)<1)break;else{z=A;g=i;A=j}}}while(0);return d|0}function Qw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=(c[22454]|0)+1|0;c[22454]=n;o=c[22451]|0;l=o+(b*56|0)|0;m=o+(d*56|0)|0;g=-4.0;i=0;f=0;while(1){e=c[o+(b*56|0)+16+(i<<2)>>2]|0;if((e|0)>=1?(h=+Rw(l,o+(e*56|0)|0,m),h>g):0){g=h;e=i}else e=f;i=i+1|0;if((i|0)==4){j=e;break}else f=e}g=-4.0;i=0;e=0;do{f=c[o+(d*56|0)+16+(i<<2)>>2]|0;if((f|0)>=1?(k=+Rw(m,o+(f*56|0)|0,l),k>g):0){g=k;e=i}i=i+1|0}while((i|0)!=4);l=c[o+(b*56|0)+32+(j<<2)>>2]|0;i=c[o+(d*56|0)+32+(e<<2)>>2]|0;p=c[22453]|0;m=p+1|0;p=p+2|0;c[22453]=p;s=c[22450]|0;c[s+(m<<4)>>2]=b;c[s+(p<<4)>>2]=d;q=s+(l<<4)+4|0;r=s+(m<<4)+4|0;c[r>>2]=c[q>>2];c[s+(c[q>>2]<<4)+8>>2]=m;c[s+(m<<4)+8>>2]=p;c[s+(p<<4)+4>>2]=m;f=s+(i<<4)+8|0;c[s+(p<<4)+8>>2]=c[f>>2];c[s+(c[f>>2]<<4)+4>>2]=p;c[q>>2]=i;c[f>>2]=l;f=o+(b*56|0)+48|0;q=c[f>>2]|0;i=o+(d*56|0)+48|0;e=c[i>>2]|0;c[o+(b*56|0)+16+(j<<2)>>2]=d;c[o+(b*56|0)+32+(q<<2)>>2]=m;c[o+(b*56|0)+16+(q<<2)>>2]=c[s+(c[r>>2]<<4)>>2];c[o+(d*56|0)+32+(e<<2)>>2]=p;c[o+(d*56|0)+16+(e<<2)>>2]=b;c[f>>2]=(c[f>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+1;d=c[22452]|0;c[d+(a<<2)>>2]=l;c[d+(n<<2)>>2]=m;return n|0}function Rw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;g=+h[a>>3];i=+h[b>>3]-g;d=+h[a+8>>3];f=+h[b+8>>3]-d;g=+h[c>>3]-g;d=+h[c+8>>3]-d;e=i*g+f*d;if(!(i*d-f*g>=0.0))d=-e/+O(+(i*i+f*f))/+O(+(g*g+d*d))+-2.0;else d=e/+O(+(i*i+f*f))/+O(+(g*g+d*d));return +d}function Sw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=b+3|0;f=b+1|0;g=b+2|0;h=a+(b*56|0)+44|0;i=a+(b*56|0)+48|0;j=a+(e*56|0)+44|0;k=a+(e*56|0)+48|0;l=b;m=0;while(1){do if((l|0)!=(b|0))if((l|0)==(e|0)){c[j>>2]=b;c[k>>2]=g;break}else{c[a+(l*56|0)+44>>2]=l+1;c[a+(l*56|0)+48>>2]=l+-1;break}else{c[h>>2]=f;c[i>>2]=e}while(0);c[a+(l*56|0)+32>>2]=0;o=a+((c[a+(l*56|0)+48>>2]|0)*56|0)+16|0;p=a+(l*56|0)|0;n=d+(m<<4)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];BB(o|0,n|0,16)|0;m=m+1|0;if((m|0)==4)break;else l=l+1|0}return b+4|0}function Tw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;c[22455]=e<<1;c[22456]=e;s=$p(e*80|0)|0;c[22457]=1;c[22458]=1;CB(f|0,0,e*72|0)|0;p=c[d+4>>2]|0;r=Uw()|0;c[s+(r*40|0)>>2]=2;q=s+(r*40|0)+8|0;o=b+(p*56|0)|0;n=b+(p*56|0)+16|0;g=b+(p*56|0)+8|0;i=+h[g>>3];j=b+(p*56|0)+24|0;k=+h[j>>3];do if(!(i>k+1.0e-07)){if(!(+N(+(i-k))<=1.0e-07)){c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];break}if(+h[o>>3]>+h[n>>3]+1.0e-07){c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];break}else{c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];break}}else{c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2]}while(0);l=Uw()|0;c[s+(r*40|0)+36>>2]=l;c[s+(l*40|0)>>2]=3;c[s+(l*40|0)+28>>2]=r;m=Uw()|0;c[s+(r*40|0)+32>>2]=m;c[s+(m*40|0)>>2]=2;e=s+(m*40|0)+8|0;k=+h[g>>3];i=+h[j>>3];do if(!(k<i+-1.0e-07)){if(!(+N(+(k-i))<=1.0e-07)){c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[e+8>>2]=c[n+8>>2];c[e+12>>2]=c[n+12>>2];break}if(+h[o>>3]<+h[n>>3]){c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2];break}else{c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[e+8>>2]=c[n+8>>2];c[e+12>>2]=c[n+12>>2];break}}else{c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2]}while(0);c[s+(m*40|0)+28>>2]=r;g=Uw()|0;c[s+(m*40|0)+32>>2]=g;c[s+(g*40|0)>>2]=3;c[s+(g*40|0)+28>>2]=m;j=Uw()|0;c[s+(m*40|0)+36>>2]=j;c[s+(j*40|0)>>2]=1;c[s+(j*40|0)+4>>2]=p;c[s+(j*40|0)+28>>2]=m;o=Uw()|0;c[s+(j*40|0)+32>>2]=o;c[s+(o*40|0)>>2]=3;c[s+(o*40|0)+28>>2]=j;n=Uw()|0;c[s+(j*40|0)+36>>2]=n;c[s+(n*40|0)>>2]=3;c[s+(n*40|0)+28>>2]=j;j=Vw(f)|0;m=Vw(f)|0;t=Vw(f)|0;u=Vw(f)|0;v=f+(j*72|0)+8|0;w=f+(m*72|0)+8|0;x=f+(u*72|0)+24|0;c[x>>2]=c[q>>2];c[x+4>>2]=c[q+4>>2];c[x+8>>2]=c[q+8>>2];c[x+12>>2]=c[q+12>>2];BB(w|0,q|0,16)|0;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];c[v+8>>2]=c[w+8>>2];c[v+12>>2]=c[w+12>>2];q=f+(j*72|0)+24|0;v=f+(m*72|0)+24|0;w=f+(t*72|0)+8|0;c[w>>2]=c[e>>2];c[w+4>>2]=c[e+4>>2];c[w+8>>2]=c[e+8>>2];c[w+12>>2]=c[e+12>>2];BB(v|0,e|0,16)|0;c[q>>2]=c[v>>2];c[q+4>>2]=c[v+4>>2];c[q+8>>2]=c[v+8>>2];c[q+12>>2]=c[v+12>>2];h[f+(u*72|0)+16>>3]=1073741824.0;h[f+(u*72|0)+8>>3]=1073741824.0;h[f+(t*72|0)+32>>3]=-1073741824.0;h[f+(t*72|0)+24>>3]=-1073741824.0;c[f+(m*72|0)>>2]=p;c[f+(j*72|0)+4>>2]=p;c[f+(m*72|0)+40>>2]=u;c[f+(j*72|0)+40>>2]=u;c[f+(m*72|0)+48>>2]=t;c[f+(j*72|0)+48>>2]=t;c[f+(t*72|0)+40>>2]=j;c[f+(u*72|0)+48>>2]=j;c[f+(t*72|0)+44>>2]=m;c[f+(u*72|0)+52>>2]=m;c[f+(j*72|0)+56>>2]=o;c[f+(m*72|0)+56>>2]=n;c[f+(t*72|0)+56>>2]=g;c[f+(u*72|0)+56>>2]=l;c[f+(m*72|0)+68>>2]=1;c[f+(j*72|0)+68>>2]=1;c[f+(u*72|0)+68>>2]=1;c[f+(t*72|0)+68>>2]=1;c[s+(l*40|0)+24>>2]=u;c[s+(g*40|0)+24>>2]=t;c[s+(o*40|0)+24>>2]=j;c[s+(n*40|0)+24>>2]=m;c[b+(p*56|0)+32>>2]=1;n=(a|0)<1;m=a+1|0;if(!n){e=1;do{c[b+(e*56|0)+40>>2]=r;c[b+(e*56|0)+36>>2]=r;e=e+1|0}while((e|0)!=(m|0))}k=+(a|0);l=1;e=2;while(1){if(n)g=-1;else{g=0;i=k;while(1){i=+My(i);if(!(i>=1.0))break;else g=g+1|0}}if((l|0)>(g|0))break;g=l+-1|0;if((l|0)>1){j=0;i=k;do{i=+My(i);j=j+1|0}while((j|0)!=(g|0))}else i=k;j=~~+Z(+(k/i));while(1){g=0;i=k;do{i=+My(i);g=g+1|0}while((g|0)!=(l|0));if((j|0)>=(~~+Z(+(k/i))|0))break;Ww(c[d+(e<<2)>>2]|0,b,f,s);j=j+1|0;e=e+1|0}if(!n){g=1;do{if(!(c[b+(g*56|0)+32>>2]|0)){w=b+(g*56|0)|0;v=b+(g*56|0)+16|0;x=b+(g*56|0)+36|0;c[x>>2]=c[f+((Xw(w,v,c[x>>2]|0,b,s)|0)*72|0)+56>>2];x=b+(g*56|0)+40|0;c[x>>2]=c[f+((Xw(v,w,c[x>>2]|0,b,s)|0)*72|0)+56>>2]}g=g+1|0}while((g|0)!=(m|0))}l=l+1|0}if(!n){g=0;i=k;while(1){i=+My(i);if(!(i>=1.0))break;else g=g+1|0}if((g|0)>0){j=0;i=k;do{i=+My(i);j=j+1|0}while((j|0)!=(g|0))}else i=k}else i=k;g=~~+Z(+(k/i));if((g|0)<(a|0)){g=e+a-g|0;do{Ww(c[d+(e<<2)>>2]|0,b,f,s);e=e+1|0}while((e|0)!=(g|0))}pB(s);return c[22457]|0}function Uw(){var a=0;a=c[22458]|0;if((a|0)<(c[22455]|0)){c[22458]=a+1;return a|0}else{Mz(162041,30,1,c[22667]|0)|0;Ia(161945,161947,72,162072)}return 0}function Vw(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e;b=c[22457]|0;if((b|0)<(c[22456]|0)){c[a+(b*72|0)>>2]=-1;c[a+((c[22457]|0)*72|0)+4>>2]=-1;c[a+((c[22457]|0)*72|0)+68>>2]=1;d=c[22457]|0;c[22457]=d+1;i=e;return d|0}else{e=c[22667]|0;c[d>>2]=b;Bz(e,161995,d)|0;Ia(161945,161947,88,162033)}return 0}function Ww(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0.0;S=i;i=i+80|0;P=S+16|0;f=S;v=P;s=b+(a*56|0)|0;u=v+56|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));D=P+16|0;G=P+24|0;n=+h[G>>3];O=P+8|0;o=+h[O>>3];do if(!(n>o+1.0e-07)){if(!(n<o+-1.0e-07)?+h[D>>3]>+h[P>>3]:0){R=4;break}f=c[P+36>>2]|0;if(!(c[b+((c[b+(a*56|0)+48>>2]|0)*56|0)+32>>2]|0)){l=0;R=7}else{f=Xw(P,D,f,b,e)|0;R=20}}else R=4;while(0);if((R|0)==4){c[f>>2]=c[P>>2];c[f+4>>2]=c[P+4>>2];c[f+8>>2]=c[P+8>>2];c[f+12>>2]=c[P+12>>2];c[P>>2]=c[D>>2];c[P+4>>2]=c[D+4>>2];c[P+8>>2]=c[D+8>>2];c[P+12>>2]=c[D+12>>2];c[D>>2]=c[f>>2];c[D+4>>2]=c[f+4>>2];c[D+8>>2]=c[f+8>>2];c[D+12>>2]=c[f+12>>2];C=P+36|0;Q=c[C>>2]|0;R=P+40|0;f=c[R>>2]|0;c[C>>2]=f;c[R>>2]=Q;if(!(c[b+((c[b+(a*56|0)+44>>2]|0)*56|0)+32>>2]|0)){l=1;R=7}else{f=Xw(P,D,f,b,e)|0;R=19}}if((R|0)==7){j=Xw(P,D,f,b,e)|0;k=Vw(d)|0;c[d+(k*72|0)+68>>2]=1;v=d+(k*72|0)|0;s=d+(j*72|0)|0;u=v+72|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));t=+h[O>>3];h[d+(k*72|0)+16>>3]=t;h[d+(j*72|0)+32>>3]=t;t=+h[P>>3];h[d+(k*72|0)+8>>3]=t;h[d+(j*72|0)+24>>3]=t;c[d+(j*72|0)+48>>2]=k;c[d+(j*72|0)+52>>2]=0;c[d+(k*72|0)+40>>2]=j;c[d+(k*72|0)+44>>2]=0;f=c[d+(k*72|0)+48>>2]|0;if((f|0)>0){g=d+(f*72|0)+40|0;if((c[g>>2]|0)==(j|0))c[g>>2]=k;f=d+(f*72|0)+44|0;if((c[f>>2]|0)==(j|0))c[f>>2]=k}f=c[d+(k*72|0)+52>>2]|0;if((f|0)>0){g=d+(f*72|0)+40|0;if((c[g>>2]|0)==(j|0))c[g>>2]=k;f=d+(f*72|0)+44|0;if((c[f>>2]|0)==(j|0))c[f>>2]=k}C=Uw()|0;R=Uw()|0;Q=d+(j*72|0)+56|0;B=c[Q>>2]|0;c[e+(B*40|0)>>2]=2;A=e+(B*40|0)+8|0;c[A>>2]=c[P>>2];c[A+4>>2]=c[P+4>>2];c[A+8>>2]=c[P+8>>2];c[A+12>>2]=c[P+12>>2];c[e+(B*40|0)+4>>2]=a;c[e+(B*40|0)+32>>2]=R;c[e+(B*40|0)+36>>2]=C;c[e+(C*40|0)>>2]=3;c[e+(C*40|0)+24>>2]=j;c[e+(C*40|0)+28>>2]=B;c[e+(R*40|0)>>2]=3;c[e+(R*40|0)+24>>2]=k;c[e+(R*40|0)+28>>2]=B;c[Q>>2]=C;c[d+(k*72|0)+56>>2]=R;if(l){f=k;R=19}else{f=k;R=20}}if((R|0)==19)if(!(c[b+((c[b+(a*56|0)+48>>2]|0)*56|0)+32>>2]|0)){g=1;R=21}else{g=1;R=32}else if((R|0)==20)if(!(c[b+((c[b+(a*56|0)+44>>2]|0)*56|0)+32>>2]|0)){g=0;R=21}else{g=0;R=32}if((R|0)==21){m=Xw(D,P,c[P+40>>2]|0,b,e)|0;l=Vw(d)|0;c[d+(l*72|0)+68>>2]=1;v=d+(l*72|0)|0;s=d+(m*72|0)|0;u=v+72|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));t=+h[G>>3];h[d+(l*72|0)+16>>3]=t;h[d+(m*72|0)+32>>3]=t;t=+h[D>>3];h[d+(l*72|0)+8>>3]=t;h[d+(m*72|0)+24>>3]=t;c[d+(m*72|0)+48>>2]=l;c[d+(m*72|0)+52>>2]=0;c[d+(l*72|0)+40>>2]=m;c[d+(l*72|0)+44>>2]=0;j=c[d+(l*72|0)+48>>2]|0;if((j|0)>0){k=d+(j*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=l;j=d+(j*72|0)+44|0;if((c[j>>2]|0)==(m|0))c[j>>2]=l}j=c[d+(l*72|0)+52>>2]|0;if((j|0)>0){k=d+(j*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=l;j=d+(j*72|0)+44|0;if((c[j>>2]|0)==(m|0))c[j>>2]=l}B=Uw()|0;Q=Uw()|0;C=d+(m*72|0)+56|0;A=c[C>>2]|0;c[e+(A*40|0)>>2]=2;z=e+(A*40|0)+8|0;c[z>>2]=c[D>>2];c[z+4>>2]=c[D+4>>2];c[z+8>>2]=c[D+8>>2];c[z+12>>2]=c[D+12>>2];c[e+(A*40|0)+4>>2]=a;c[e+(A*40|0)+32>>2]=Q;c[e+(A*40|0)+36>>2]=B;c[e+(B*40|0)>>2]=3;c[e+(B*40|0)+24>>2]=m;c[e+(B*40|0)+28>>2]=A;c[e+(Q*40|0)>>2]=3;c[e+(Q*40|0)+24>>2]=l;c[e+(Q*40|0)+28>>2]=A;c[C>>2]=B;c[d+(l*72|0)+56>>2]=Q;Q=f;C=m;f=0}else if((R|0)==32){Q=f;C=Xw(D,P,c[P+40>>2]|0,b,e)|0;f=1}a:do if((Q|0)>0){A=d+(C*72|0)+32|0;B=d+(C*72|0)+24|0;z=(f|0)!=0;y=g?b+(a*56|0)+48|0:b+(a*56|0)+44|0;j=Q;g=0;f=0;b:while(1){k=d+(j*72|0)|0;w=d+(j*72|0)+24|0;x=d+(j*72|0)+32|0;n=+h[x>>3];o=+h[A>>3];if(!(n>o+1.0e-07)){if(n<o+-1.0e-07)break a;if(!(+h[w>>3]>=+h[B>>3]))break a}l=d+(j*72|0)+56|0;v=c[l>>2]|0;q=Uw()|0;r=Uw()|0;c[e+(v*40|0)>>2]=1;c[e+(v*40|0)+4>>2]=a;c[e+(v*40|0)+32>>2]=q;c[e+(v*40|0)+36>>2]=r;c[e+(q*40|0)>>2]=3;c[e+(q*40|0)+24>>2]=j;c[e+(q*40|0)+28>>2]=v;c[e+(r*40|0)>>2]=3;p=Vw(d)|0;c[e+(r*40|0)+24>>2]=p;m=d+(p*72|0)|0;c[d+(p*72|0)+68>>2]=1;c[e+(r*40|0)+28>>2]=v;g=(j|0)==(Q|0)?p:g;if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0)f=p;v=m;s=k;u=v+72|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));c[l>>2]=q;c[d+(p*72|0)+56>>2]=r;k=d+(j*72|0)+48|0;l=d+(j*72|0)+52|0;q=(c[l>>2]|0)<1;do if((c[k>>2]|0)<1){if(q){R=43;break b}u=d+(j*72|0)+40|0;q=c[u>>2]|0;do if((q|0)>0?(I=d+(j*72|0)+44|0,J=c[I>>2]|0,(J|0)>0):0){q=d+(j*72|0)+60|0;r=c[q>>2]|0;if((r|0)<=0){c[d+(p*72|0)+40>>2]=J;c[d+(p*72|0)+44>>2]=-1;c[I>>2]=-1;c[d+(J*72|0)+48>>2]=p;break}if((c[d+(j*72|0)+64>>2]|0)==1){c[d+(p*72|0)+40>>2]=J;c[I>>2]=-1;c[d+(p*72|0)+44>>2]=r;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;c[d+(J*72|0)+48>>2]=p;c[d+(r*72|0)+48>>2]=p}else{c[d+(p*72|0)+44>>2]=-1;v=d+(p*72|0)+40|0;c[v>>2]=c[I>>2];s=c[u>>2]|0;c[I>>2]=s;c[u>>2]=r;c[d+(r*72|0)+48>>2]=j;c[d+(s*72|0)+48>>2]=j;c[d+((c[v>>2]|0)*72|0)+48>>2]=p}c[d+(p*72|0)+60>>2]=0;c[q>>2]=0}else R=80;while(0);do if((R|0)==80){R=0;r=d+(q*72|0)+48|0;s=c[r>>2]|0;q=d+(q*72|0)+52|0;if((s|0)>0?(c[q>>2]|0)>0:0){q=c[d+(s*72|0)+4>>2]|0;if((q|0)>0?(Yw(q,b,D)|0)==0:0){c[d+(p*72|0)+44>>2]=-1;c[d+(j*72|0)+44>>2]=-1;c[u>>2]=-1;c[d+((c[d+(p*72|0)+40>>2]|0)*72|0)+52>>2]=p;break}c[d+(j*72|0)+44>>2]=-1;c[d+(p*72|0)+44>>2]=-1;c[d+(p*72|0)+40>>2]=-1;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;break}c[r>>2]=j;c[q>>2]=p}while(0);if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?z&+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0){q=c[y>>2]|0;if((q|0)<=0){R=92;break b}if(!(Yw(q,b,P)|0)){R=92;break b}c[d+((c[l>>2]|0)*72|0)+40>>2]=j;c[d+(p*72|0)+52>>2]=-1;c[d+(p*72|0)+48>>2]=-1;k=c[l>>2]|0;break}k=c[l>>2]|0;l=d+(k*72|0)+40|0;q=c[l>>2]|0;r=d+(k*72|0)+44|0;do if((q|0)>0?(K=c[r>>2]|0,(K|0)>0):0){s=d+(k*72|0)+60|0;if((q|0)==(j|0)){c[s>>2]=K;c[d+(k*72|0)+64>>2]=1;break}else{c[s>>2]=q;c[d+(k*72|0)+64>>2]=2;break}}while(0);c[l>>2]=j;c[r>>2]=p}else{if(!q){t=+h[x>>3];n=+h[O>>3];o=t-n;if(!(+N(+o)<=1.0e-07)){T=+h[P>>3];n=T+o/(+h[G>>3]-n)*(+h[D>>3]-T);if(!(t<t+-1.0e-07))if(t>t+1.0e-07)u=0;else u=n<+h[w>>3]&1;else u=1}else u=+h[w>>3]>+h[P>>3]&1;s=d+(j*72|0)+40|0;l=c[s>>2]|0;do if((l|0)>0?(L=d+(j*72|0)+44|0,M=c[L>>2]|0,(M|0)>0):0){l=d+(j*72|0)+60|0;q=c[l>>2]|0;if((q|0)<=0){c[d+(p*72|0)+40>>2]=M;c[d+(p*72|0)+44>>2]=-1;c[L>>2]=-1;c[d+(M*72|0)+48>>2]=p;break}if((c[d+(j*72|0)+64>>2]|0)==1){c[d+(p*72|0)+40>>2]=M;c[L>>2]=-1;c[d+(p*72|0)+44>>2]=q;c[d+((c[s>>2]|0)*72|0)+48>>2]=j;c[d+(M*72|0)+48>>2]=p;c[d+(q*72|0)+48>>2]=p}else{c[d+(p*72|0)+44>>2]=-1;v=d+(p*72|0)+40|0;c[v>>2]=c[L>>2];r=c[s>>2]|0;c[L>>2]=r;c[s>>2]=q;c[d+(q*72|0)+48>>2]=j;c[d+(r*72|0)+48>>2]=j;c[d+((c[v>>2]|0)*72|0)+48>>2]=p}c[d+(p*72|0)+60>>2]=0;c[l>>2]=0}else R=112;while(0);do if((R|0)==112){R=0;q=d+(l*72|0)+48|0;r=c[q>>2]|0;l=d+(l*72|0)+52|0;if((r|0)>0?(c[l>>2]|0)>0:0){l=c[d+(r*72|0)+4>>2]|0;if((l|0)>0?(Yw(l,b,D)|0)==0:0){c[d+(p*72|0)+44>>2]=-1;c[d+(j*72|0)+44>>2]=-1;c[s>>2]=-1;c[d+((c[d+(p*72|0)+40>>2]|0)*72|0)+52>>2]=p;break}c[d+(j*72|0)+44>>2]=-1;c[d+(p*72|0)+44>>2]=-1;c[d+(p*72|0)+40>>2]=-1;c[d+((c[s>>2]|0)*72|0)+48>>2]=j;break}c[q>>2]=j;c[l>>2]=p}while(0);if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?z&+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0){l=p;R=121;break b}k=c[k>>2]|0;c[d+(k*72|0)+40>>2]=j;l=d+(k*72|0)+44|0;if(!u){c[l>>2]=-1;k=d+(j*72|0)+52|0;x=c[k>>2]|0;c[d+(x*72|0)+40>>2]=j;c[d+(x*72|0)+44>>2]=p;c[d+(p*72|0)+48>>2]=x;c[d+(p*72|0)+52>>2]=-1;k=c[k>>2]|0;break}else{c[l>>2]=p;x=d+(j*72|0)+52|0;w=c[x>>2]|0;c[d+(w*72|0)+40>>2]=p;c[d+(w*72|0)+44>>2]=-1;c[x>>2]=-1;break}}u=d+(j*72|0)+40|0;q=c[u>>2]|0;do if((q|0)>0?(E=d+(j*72|0)+44|0,F=c[E>>2]|0,(F|0)>0):0){q=d+(j*72|0)+60|0;r=c[q>>2]|0;if((r|0)<=0){c[d+(p*72|0)+40>>2]=F;c[d+(p*72|0)+44>>2]=-1;c[E>>2]=-1;c[d+(F*72|0)+48>>2]=p;break}if((c[d+(j*72|0)+64>>2]|0)==1){c[d+(p*72|0)+40>>2]=F;c[E>>2]=-1;c[d+(p*72|0)+44>>2]=r;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;c[d+(F*72|0)+48>>2]=p;c[d+(r*72|0)+48>>2]=p}else{c[d+(p*72|0)+44>>2]=-1;v=d+(p*72|0)+40|0;c[v>>2]=c[E>>2];s=c[u>>2]|0;c[E>>2]=s;c[u>>2]=r;c[d+(r*72|0)+48>>2]=j;c[d+(s*72|0)+48>>2]=j;c[d+((c[v>>2]|0)*72|0)+48>>2]=p}c[d+(p*72|0)+60>>2]=0;c[q>>2]=0}else R=53;while(0);do if((R|0)==53){R=0;r=d+(q*72|0)+48|0;s=c[r>>2]|0;q=d+(q*72|0)+52|0;if((s|0)>0?(c[q>>2]|0)>0:0){q=c[d+(s*72|0)+4>>2]|0;if((q|0)>0?(Yw(q,b,D)|0)==0:0){c[d+(p*72|0)+44>>2]=-1;c[d+(j*72|0)+44>>2]=-1;c[u>>2]=-1;c[d+((c[d+(p*72|0)+40>>2]|0)*72|0)+52>>2]=p;break}c[d+(j*72|0)+44>>2]=-1;c[d+(p*72|0)+44>>2]=-1;c[d+(p*72|0)+40>>2]=-1;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;break}c[r>>2]=j;c[q>>2]=p}while(0);if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?z&+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0){q=c[y>>2]|0;if((q|0)<=0){R=65;break b}if(!(Yw(q,b,P)|0)){R=65;break b}c[d+((c[k>>2]|0)*72|0)+40>>2]=j;c[d+(p*72|0)+52>>2]=-1;c[d+(p*72|0)+48>>2]=-1;k=c[k>>2]|0;break}k=c[k>>2]|0;l=d+(k*72|0)+40|0;q=c[l>>2]|0;r=d+(k*72|0)+44|0;do if((q|0)>0?(H=c[r>>2]|0,(H|0)>0):0){s=d+(k*72|0)+60|0;if((q|0)==(j|0)){c[s>>2]=H;c[d+(k*72|0)+64>>2]=1;break}else{c[s>>2]=q;c[d+(k*72|0)+64>>2]=2;break}}while(0);c[l>>2]=j;c[r>>2]=p}while(0);c[m>>2]=a;c[d+(j*72|0)+4>>2]=a;if((k|0)>0)j=k;else break a}if((R|0)==43){Mz(161975,19,1,c[22667]|0)|0;break}else if((R|0)==65){c[d+((c[d+(p*72|0)+48>>2]|0)*72|0)+44>>2]=p;c[l>>2]=-1;c[k>>2]=-1;k=m}else if((R|0)==92){c[d+((c[d+(p*72|0)+52>>2]|0)*72|0)+44>>2]=p;c[l>>2]=-1;c[k>>2]=-1;k=m}else if((R|0)==121){k=c[k>>2]|0;c[d+(k*72|0)+40>>2]=j;c[d+(k*72|0)+44>>2]=-1;k=d+(j*72|0)+52|0;R=c[k>>2]|0;c[d+(R*72|0)+40>>2]=l;c[d+(R*72|0)+44>>2]=-1;c[d+(l*72|0)+48>>2]=R;c[d+(l*72|0)+52>>2]=-1;c[k>>2]=-1;k=m}c[k>>2]=a;c[d+(j*72|0)+4>>2]=a}else{g=0;f=0}while(0);Zw(a,Q,C,1,d,e);Zw(a,g,f,2,d,e);c[b+(a*56|0)+32>>2]=1;i=S;return}function Xw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0;m=a+8|0;n=b+8|0;a:while(1){b:do switch(c[f+(d*40|0)>>2]|0){case 3:{r=3;break a}case 2:{g=+h[m>>3];i=f+(d*40|0)+8|0;j=+h[f+(d*40|0)+16>>3];k=j+1.0e-07;do if(!(g>k)){l=j+-1.0e-07;if(!(g<l)?+h[a>>3]>+h[i>>3]:0)break;if(+N(+(g-j))<=1.0e-07?(o=+h[i>>3],+N(+(+h[a>>3]-o))<=1.0e-07):0){g=+h[n>>3];do if(!(g>k)){if(!(g<l)?+h[b>>3]>o:0)break;d=f+(d*40|0)+32|0;break b}while(0);d=f+(d*40|0)+36|0;break b}d=f+(d*40|0)+32|0;break b}while(0);d=f+(d*40|0)+36|0;break}case 1:{g=+h[m>>3];i=c[f+(d*40|0)+4>>2]|0;if(+N(+(g-+h[e+(i*56|0)+8>>3]))<=1.0e-07?(p=+h[a>>3],+N(+(p-+h[e+(i*56|0)>>3]))<=1.0e-07):0)j=p;else r=19;do if((r|0)==19){r=0;if(+N(+(g-+h[e+(i*56|0)+24>>3]))<=1.0e-07?(q=+h[a>>3],+N(+(q-+h[e+(i*56|0)+16>>3]))<=1.0e-07):0){j=q;break}if(!(Yw(i,e,a)|0)){d=f+(d*40|0)+36|0;break b}else{d=f+(d*40|0)+32|0;break b}}while(0);if(!(+N(+(g-+h[n>>3]))<=1.0e-07))if(!(Yw(i,e,b)|0)){d=f+(d*40|0)+36|0;break b}else{d=f+(d*40|0)+32|0;break b}else if(+h[b>>3]<j){d=f+(d*40|0)+32|0;break b}else{d=f+(d*40|0)+36|0;break b}}default:{r=31;break a}}while(0);d=c[d>>2]|0}if((r|0)==3)return c[f+(d*40|0)+24>>2]|0;else if((r|0)==31){Mz(161909,35,1,c[22667]|0)|0;Ia(161945,161947,349,161959)}return 0}function Yw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0,i=0.0,j=0,k=0,l=0.0,m=0.0;k=b+(a*56|0)+16|0;l=+h[b+(a*56|0)+24>>3];g=b+(a*56|0)|0;i=+h[b+(a*56|0)+8>>3];do if(!(l>i+1.0e-07)){if(!(l<i+-1.0e-07)?+h[k>>3]>+h[g>>3]:0){j=4;break}f=+h[c+8>>3];if(+N(+(l-f))<=1.0e-07){d=+h[c>>3]<+h[k>>3]?1.0:-1.0;break}a=!(+N(+(i-f))<=1.0e-07);e=+h[g>>3];d=+h[c>>3];if(a){m=+h[k>>3];d=(f-l)*(e-m)-(i-l)*(d-m);break}else{d=d<e?1.0:-1.0;break}}else j=4;while(0);do if((j|0)==4){f=+h[c+8>>3];if(+N(+(l-f))<=1.0e-07){d=+h[c>>3]<+h[k>>3]?1.0:-1.0;break}j=!(+N(+(i-f))<=1.0e-07);e=+h[g>>3];d=+h[c>>3];if(j){d=(f-i)*(+h[k>>3]-e)-(l-i)*(d-e);break}else{d=d<e?1.0:-1.0;break}}while(0);return d>0.0|0}function Zw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;a:do if((b|0)>0){v=f+(d*72|0)+32|0;u=(e|0)==1;t=f+(d*72|0)+24|0;b:while(1){n=f+(b*72|0)+24|0;o=f+(b*72|0)+32|0;p=f+(b*72|0)+48|0;q=f+(b*72|0)+52|0;r=f+(b*72|0)|0;s=f+(b*72|0)+4|0;m=f+(b*72|0)+56|0;while(1){i=+h[o>>3];j=+h[v>>3];if(!(i>j+1.0e-07)){if(i<j+-1.0e-07)break a;if(!(+h[n>>3]>=+h[t>>3]))break a}e=c[p>>2]|0;d=(e|0)>0;do if(u){if(d?(c[f+(e*72|0)+4>>2]|0)==(a|0):0)break;e=c[q>>2]|0;if((e|0)<=0)break a;if((c[f+(e*72|0)+4>>2]|0)!=(a|0)){b=e;continue b}}else{if(d?(c[f+(e*72|0)>>2]|0)==(a|0):0)break;e=c[q>>2]|0;if((e|0)<=0)break a;if((c[f+(e*72|0)>>2]|0)!=(a|0)){b=e;continue b}}while(0);if((c[r>>2]|0)!=(c[f+(e*72|0)>>2]|0)){b=e;continue b}if((c[s>>2]|0)!=(c[f+(e*72|0)+4>>2]|0)){b=e;continue b}w=c[f+(e*72|0)+56>>2]|0;d=c[g+(w*40|0)+28>>2]|0;k=g+(d*40|0)+32|0;l=c[m>>2]|0;if((c[k>>2]|0)==(w|0))c[k>>2]=l;else c[g+(d*40|0)+36>>2]=l;d=c[f+(e*72|0)+48>>2]|0;c[p>>2]=d;do if((d|0)>0){k=f+(d*72|0)+40|0;if((c[k>>2]|0)==(e|0)){c[k>>2]=b;break}d=f+(d*72|0)+44|0;if((c[d>>2]|0)==(e|0))c[d>>2]=b}while(0);d=c[f+(e*72|0)+52>>2]|0;c[q>>2]=d;do if((d|0)>0){k=f+(d*72|0)+40|0;if((c[k>>2]|0)==(e|0)){c[k>>2]=b;break}d=f+(d*72|0)+44|0;if((c[d>>2]|0)==(e|0))c[d>>2]=b}while(0);w=f+(e*72|0)+24|0;c[n>>2]=c[w>>2];c[n+4>>2]=c[w+4>>2];c[n+8>>2]=c[w+8>>2];c[n+12>>2]=c[w+12>>2];c[f+(e*72|0)+68>>2]=2}}}while(0);return}function _w(a){a=a|0;var b=0;do{b=a;a=c[a>>2]|0;pB(b)}while((a|0)!=0);return}function $w(){var a=0,b=0,d=0;a=$p(1992)|0;if(a){b=fx(a)|0;c[b+4>>2]=0;d=a+1972|0;c[d>>2]=(c[d>>2]|0)+1;c[a>>2]=b}return a|0}function ax(a){a=a|0;dx(a,c[a>>2]|0);pB(c[a>>2]|0);pB(a);return 0}function bx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(!b)Ia(162430,162080,194,162088);e=c[b+4>>2]|0;if((e|0)<=-1)Ia(162100,162080,195,162088);if(!d)Ia(162372,162080,196,162088);i=a+1952|0;c[i>>2]=(c[i>>2]|0)+1;if((e|0)>0){i=0;h=0;while(1){e=b+8+(i*20|0)+16|0;if((c[e>>2]|0)!=0?(px(d,b+8+(i*20|0)|0)|0)!=0:0){e=bx(a,c[e>>2]|0,d)|0;if(h){f=h;while(1){g=c[f>>2]|0;if(!g)break;else f=g}c[f>>2]=e;e=h}}else e=h;i=i+1|0;if((i|0)==64)break;else h=e}}else{g=0;e=0;do{f=b+8+(g*20|0)|0;if((c[b+8+(g*20|0)+16>>2]|0)!=0?(px(d,f)|0)!=0:0){a=$p(8)|0;c[a+4>>2]=f;c[a>>2]=e;e=a}g=g+1|0}while((g|0)!=64)}return e|0}function cx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+64|0;o=q+52|0;n=q+32|0;h=q+16|0;j=q;c[o>>2]=0;if(!((b|0)!=0&(e|0)!=0))Ia(162286,162080,247,162114);if((f|0)>-1?(l=c[e>>2]|0,(c[l+4>>2]|0)>=(f|0)):0){if((c[b>>2]|0)<=(c[b+8>>2]|0)?(c[b+4>>2]|0)<=(c[b+12>>2]|0):0){k=a+1912|0;g=a+1908|0;m=(c[g>>2]|0)==0;do if(!(c[k>>2]|0)){if(m)p=13}else if(m){p=a+1916|0;c[p>>2]=(c[p>>2]|0)+1;p=13;break}else{m=a+1924|0;c[m>>2]=(c[m>>2]|0)+1;break}while(0);if((p|0)==13){p=a+1964|0;c[p>>2]=(c[p>>2]|0)+1}if(!(ex(a,b,d,l,o,f)|0))g=0;else{do if(c[k>>2]|0)if(!(c[g>>2]|0)){p=a+1944|0;c[p>>2]=(c[p>>2]|0)+1;break}else{p=a+1948|0;c[p>>2]=(c[p>>2]|0)+1;break}while(0);g=fx(a)|0;p=a+1976|0;c[p>>2]=(c[p>>2]|0)+1;p=c[e>>2]|0;c[g+4>>2]=(c[p+4>>2]|0)+1;hx(h,p);c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[n+8>>2]=c[h+8>>2];c[n+12>>2]=c[h+12>>2];p=n+16|0;c[p>>2]=c[e>>2];jx(a,n,g,0)|0;hx(j,c[o>>2]|0);c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];c[p>>2]=c[o>>2];jx(a,n,g,0)|0;c[e>>2]=g;g=a+1980|0;c[g>>2]=(c[g>>2]|0)+2;g=1}i=q;return g|0}Ia(162161,162080,250,162114)}Ia(162126,162080,248,162114);return 0}function dx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=a+1980|0;h=a+1912|0;i=a+1936|0;if((c[b+4>>2]|0)>0){f=0;do{d=b+8+(f*20|0)+16|0;e=c[d>>2]|0;if((e|0)!=0?(dx(a,e),pB(c[d>>2]|0),kx(b,f),c[g>>2]=(c[g>>2]|0)+-1,(c[h>>2]|0)!=0):0)c[i>>2]=(c[i>>2]|0)+1;f=f+1|0}while((f|0)!=64)}else{d=0;do{if((c[b+8+(d*20|0)+16>>2]|0)!=0?(kx(b,d),c[g>>2]=(c[g>>2]|0)+-1,(c[h>>2]|0)!=0):0)c[i>>2]=(c[i>>2]|0)+1;d=d+1|0}while((d|0)!=64)}return}function ex(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+80|0;n=p+52|0;o=p+48|0;k=p+32|0;l=p+16|0;m=p;c[o>>2]=0;if(!((b|0)!=0&(e|0)!=0&(f|0)!=0))Ia(162204,162080,311,162218);if((g|0)>-1?(j=c[e+4>>2]|0,(j|0)>=(g|0)):0){do if(c[a+1912>>2]|0)if(!(c[a+1908>>2]|0)){q=a+1944|0;c[q>>2]=(c[q>>2]|0)+1;break}else{q=a+1948|0;c[q>>2]=(c[q>>2]|0)+1;break}while(0);do if((j|0)>(g|0)){j=ix(b,e)|0;h=e+8+(j*20|0)+16|0;j=e+8+(j*20|0)|0;if(!(ex(a,b,d,c[h>>2]|0,o,g)|0)){ox(k,b,j);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];h=0;break}else{hx(l,c[h>>2]|0);c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];h=c[o>>2]|0;c[n+16>>2]=h;hx(m,h);c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];h=a+1980|0;c[h>>2]=(c[h>>2]|0)+1;h=jx(a,n,e,f)|0;break}}else if((j|0)==(g|0)){c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];c[n+16>>2]=d;h=a+1980|0;c[h>>2]=(c[h>>2]|0)+1;h=jx(a,n,e,f)|0;break}else Ia(162263,162080,341,162218);while(0);i=p;return h|0}Ia(162231,162080,312,162218);return 0}function fx(a){a=a|0;var b=0;a=a+1968|0;c[a>>2]=(c[a>>2]|0)+1;a=oB(1288)|0;c[a>>2]=0;c[a+4>>2]=-1;b=0;do{lx(a+8+(b*20|0)|0);c[a+8+(b*20|0)+16>>2]=0;b=b+1|0}while((b|0)!=64);return a|0}function gx(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=-1;b=0;do{lx(a+8+(b*20|0)|0);c[a+8+(b*20|0)+16>>2]=0;b=b+1|0}while((b|0)!=64);return}function hx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j+16|0;f=j;if(!b)Ia(162430,162269,99,162276);lx(h);d=1;g=0;do{do if(c[b+8+(g*20|0)+16>>2]|0){e=b+8+(g*20|0)|0;if(!d){ox(f,h,e);c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];d=0;break}else{c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];d=0;break}}while(0);g=g+1|0}while((g|0)!=64);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];i=j;return}function ix(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;m=n+16|0;k=n;if(!((a|0)!=0&(b|0)!=0))Ia(162286,162269,125,162293);d=0;h=0;j=0;g=1;l=0;while(1){if(c[b+8+(l*20|0)+16>>2]|0){f=b+8+(l*20|0)|0;e=nx(f)|0;ox(k,a,f);c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];f=(nx(m)|0)-e|0;if((g|0)!=0|(f|0)<(j|0)){d=l;g=0}else{g=(e|0)<(h|0)&(f|0)==(j|0);d=g?l:d;e=g?e:h;f=g?f:j;g=0}}else{e=h;f=j}l=l+1|0;if((l|0)==64)break;else{h=e;j=f}}i=n;return d|0}function jx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(!b)Ia(162452,162269,167,162304);if(!d)Ia(162430,162269,168,162304);do if((c[d>>2]|0)<64){e=0;while(1){if(!(c[d+8+(e*20|0)+16>>2]|0)){a=7;break}e=e+1|0;if((e|0)>=64){a=9;break}}if((a|0)==7){f=d+8+(e*20|0)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[d>>2]=(c[d>>2]|0)+1;f=0;break}else if((a|0)==9)Ia(162314,162269,178,162304)}else{do if(c[a+1912>>2]|0)if(!(c[a+1908>>2]|0)){f=a+1944|0;c[f>>2]=(c[f>>2]|0)+1;break}else{f=a+1948|0;c[f>>2]=(c[f>>2]|0)+1;break}while(0);if(!e)Ia(162327,162269,187,162304);qx(a,d,b,e);if(!(c[d+4>>2]|0)){f=a+1972|0;c[f>>2]=(c[f>>2]|0)+1;f=1;break}else{f=a+1976|0;c[f>>2]=(c[f>>2]|0)+1;f=1;break}}while(0);return f|0}function kx(a,b){a=a|0;b=b|0;var d=0;if(!((a|0)!=0&b>>>0<64))Ia(162331,162269,201,162359);d=a+8+(b*20|0)+16|0;if(!(c[d>>2]|0))Ia(162454,162269,202,162359);else{lx(a+8+(b*20|0)|0);c[d>>2]=0;c[a>>2]=(c[a>>2]|0)+-1;return}}function lx(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function mx(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=1;c[d+8>>2]=-1;c[d+12>>2]=0;c[d+4>>2]=0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];i=b;return}function nx(a){a=a|0;var b=0,d=0;if(!a)Ia(162372,162374,128,162386);b=c[a>>2]|0;d=c[a+8>>2]|0;if((d|0)<(b|0))b=0;else{b=_(c[a+12>>2]|0,d-b|0)|0;b=b-(c[a+4>>2]|0)|0}return b|0}function ox(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;if(!((b|0)!=0&(d|0)!=0))Ia(162395,162374,195,162403);e=c[b>>2]|0;f=c[b+8>>2]|0;do if((e|0)<=(f|0)){g=c[d>>2]|0;h=c[d+8>>2]|0;if((g|0)>(h|0)){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{c[j>>2]=(e|0)<(g|0)?e:g;c[j+8>>2]=(f|0)>(h|0)?f:h;g=c[b+4>>2]|0;h=c[d+4>>2]|0;c[j+4>>2]=(g|0)<(h|0)?g:h;b=c[b+12>>2]|0;d=c[d+12>>2]|0;c[j+12>>2]=(b|0)>(d|0)?b:d;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];break}}else{c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2]}while(0);i=k;return}function px(a,b){a=a|0;b=b|0;if(!((a|0)!=0&(b|0)!=0))Ia(162415,162374,216,162422);if(((c[a>>2]|0)<=(c[b+8>>2]|0)?(c[b>>2]|0)<=(c[a+8>>2]|0):0)?(c[a+4>>2]|0)<=(c[b+12>>2]|0):0)return (c[b+4>>2]|0)<=(c[a+12>>2]|0)|0;return 0}function qx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;F=i;i=i+352|0;p=F+80|0;q=F+64|0;o=F+48|0;w=F+32|0;t=F+16|0;u=F;if(!b)Ia(162430,162432,40,162442);if(!d)Ia(162452,162432,41,162442);A=a+1912|0;do if(c[A>>2]|0)if(!(c[a+1908>>2]|0)){C=a+1928|0;c[C>>2]=(c[C>>2]|0)+1;break}else{C=a+1932|0;c[C>>2]=(c[C>>2]|0)+1;break}while(0);B=b+4|0;C=c[B>>2]|0;f=0;do{if(!(c[b+8+(f*20|0)+16>>2]|0)){E=11;break}y=b+8+(f*20|0)|0;z=a+4+(f*20|0)|0;c[z>>2]=c[y>>2];c[z+4>>2]=c[y+4>>2];c[z+8>>2]=c[y+8>>2];c[z+12>>2]=c[y+12>>2];c[z+16>>2]=c[y+16>>2];f=f+1|0}while((f|0)<64);if((E|0)==11)Ia(162454,162432,111,162473);z=a+4|0;f=a+1284|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];f=a+1304|0;c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];d=1;do{ox(p,f,a+4+(d*20|0)|0);c[f>>2]=c[p>>2];c[f+4>>2]=c[p+4>>2];c[f+8>>2]=c[p+8>>2];c[f+12>>2]=c[p+12>>2];d=d+1|0}while((d|0)!=65);z=a+1320|0;c[z>>2]=nx(f)|0;gx(b);x=a+1848|0;c[x>>2]=0;v=a+1844|0;c[v>>2]=0;r=a+1852|0;y=a+1868|0;mx(p);c[y>>2]=c[p>>2];c[y+4>>2]=c[p+4>>2];c[y+8>>2]=c[p+8>>2];c[y+12>>2]=c[p+12>>2];c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];r=a+1888|0;c[r>>2]=0;s=a+1884|0;c[s>>2]=0;d=0;do{c[a+1584+(d<<2)>>2]=0;c[a+1324+(d<<2)>>2]=-1;d=d+1|0}while((d|0)!=65);d=0;do{c[p+(d<<2)>>2]=nx(a+4+(d*20|0)|0)|0;d=d+1|0}while((d|0)!=65);h=0;f=0;d=0;j=0;do{n=h;h=h+1|0;k=a+4+(n*20|0)|0;l=c[p+(n<<2)>>2]|0;m=h;do{ox(o,k,a+4+(m*20|0)|0);c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];H=(nx(q)|0)-l|0;H=H-(c[p+(m<<2)>>2]|0)|0;G=H>>>0>j>>>0;j=G?H:j;f=G?n:f;d=G?m:d;m=m+1|0}while((m|0)!=65)}while((h|0)!=64);rx(a,f,0);rx(a,d,1);f=c[v>>2]|0;d=c[x>>2]|0;a:do if((d+f|0)<65){m=a+1892|0;n=a+1852|0;h=0;j=0;do{H=65-(c[m>>2]|0)|0;if((f|0)<(H|0)&(d|0)<(H|0)){k=-1;l=0}else break a;while(1){if(!(c[a+1584+(l<<2)>>2]|0)){H=a+4+(l*20|0)|0;ox(t,H,n);c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];d=nx(w)|0;f=c[s>>2]|0;ox(u,H,y);c[w>>2]=c[u>>2];c[w+4>>2]=c[u+4>>2];c[w+8>>2]=c[u+8>>2];c[w+12>>2]=c[u+12>>2];H=nx(w)|0;d=H-(c[r>>2]|0)+(f-d)|0;f=(d|0)>-1?d:0-d|0;d=d>>>31;if((f|0)<=(k|0))if((f|0)==(k|0)){H=(c[a+1844+(d<<2)>>2]|0)<(c[a+1844+(h<<2)>>2]|0);h=H?d:h;d=k;j=H?l:j}else d=k;else{h=d;d=f;j=l}}else d=k;l=l+1|0;if((l|0)==65)break;else k=d}rx(a,j,h);f=c[v>>2]|0;d=c[x>>2]|0}while((d+f|0)<65)}while(0);if((f+d|0)<65){d=(f|0)>=(65-(c[a+1892>>2]|0)|0)&1;f=0;do{if(!(c[a+1584+(f<<2)>>2]|0))rx(a,f,d);f=f+1|0}while((f|0)!=65);f=c[v>>2]|0;d=c[x>>2]|0}if((f+d|0)!=65)Ia(162485,162432,210,162571);H=c[a+1892>>2]|0;if((f|0)<(H|0)|(d|0)<(H|0))Ia(162582,162432,212,162571);d=nx(a+1852|0)|0;d=(nx(y)|0)+d|0;if((c[A>>2]|0)!=0?(d|0)!=0&(c[a+1908>>2]|0)==0:0){H=a+1960|0;g[H>>2]=+((c[z>>2]|0)>>>0)/+(d|0)+ +g[H>>2]}f=fx(a)|0;c[e>>2]=f;c[B>>2]=C;c[f+4>>2]=C;if(!f)Ia(162685,162432,298,162687);else D=0;do{d=c[a+1324+(D<<2)>>2]|0;if(d>>>0>=2){E=47;break}switch(d|0){case 0:{jx(a,a+4+(D*20|0)|0,b,0)|0;break}case 1:{jx(a,a+4+(D*20|0)|0,f,0)|0;break}default:{}}D=D+1|0}while((D|0)<65);if((E|0)==47)Ia(162697,162432,303,162687);if(((c[c[e>>2]>>2]|0)+(c[b>>2]|0)|0)==65){i=F;return}else Ia(162786,162432,86,162442)}function rx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;e=a+1584+(b<<2)|0;if(c[e>>2]|0)Ia(162826,162432,257,162861);c[a+1324+(b<<2)>>2]=d;c[e>>2]=1;f=a+1844+(d<<2)|0;g=a+1852+(d<<4)|0;e=a+4+(b*20|0)|0;if(!(c[f>>2]|0)){c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2]}else{ox(h,e,g);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2]}c[a+1884+(d<<2)>>2]=nx(g)|0;c[f>>2]=(c[f>>2]|0)+1;i=j;return}function sx(){var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+1200|0;u=w+800|0;f=w;c[22459]=0;c[22460]=-2;q=0;l=u;e=u;h=200;m=0;k=f;a:while(1){b[e>>1]=m;if((l+(h+-1<<1)|0)>>>0<=e>>>0){j=e-l>>1;e=j+1|0;if(h>>>0>9999){f=l;v=103;break}g=h<<1;g=g>>>0>1e4?1e4:g;f=oB(g*6|3)|0;if(!f){f=l;v=103;break}AB(f|0,l|0,e<<1|0)|0;h=f+((g>>>1&1073741823)<<2)|0;AB(h|0,k|0,e<<2|0)|0;if((l|0)!=(u|0))pB(l);if((g+-1|0)>(j|0)){t=f;e=f+(j<<1)|0;r=g;s=h;f=h+(j<<2)|0}else{e=1;v=105;break}}else{t=l;r=h;s=k}if((m|0)==31){e=0;f=t;v=104;break}p=b[96898+(m<<1)>>1]|0;j=p<<16>>16;do if(p<<16>>16!=-82){g=c[22460]|0;if((g|0)==-2){g=Hx()|0;c[22460]=g}if((g|0)>=1)if(g>>>0<296)h=d[162870+g>>0]|0;else h=2;else{c[22460]=0;h=0}g=h+j|0;if(g>>>0<=271?(a[163166+g>>0]|0)==(h|0):0){p=a[163438+g>>0]|0;g=p<<24>>24;if(p<<24>>24<1){g=0-g|0;v=23;break}else{c[22460]=-2;f=f+4|0;c[f>>2]=c[22461];j=(q|0)==0?0:q+-1|0;break}}else v=22}else v=22;while(0);if((v|0)==22){v=0;p=a[163710+m>>0]|0;g=p&255;if(!(p<<24>>24)){g=c[22460]|0;b:do switch(q|0){case 0:{c[22459]=(c[22459]|0)+1;Ex(164107);break}case 3:if((g|0)<1)if(!g){e=1;f=t;v=104;break a}else break b;else{c[22460]=-2;break b}default:{}}while(0);if(m)do{if((e|0)==(t|0)){e=1;f=t;v=104;break a}f=f+-4|0;e=e+-2|0}while((b[e>>1]|0)!=0);f=f+4|0;c[f>>2]=c[22461];j=3;g=1}else v=23}do if((v|0)==23){v=0;n=d[163826+g>>0]|0;o=1-n|0;p=f+(o<<2)|0;m=c[p>>2]|0;do switch(g|0){case 4:{f=t;v=26;break a}case 2:{l=c[f+-4>>2]|0;h=$p(8)|0;a[h+4>>0]=2;c[h>>2]=l;c[22462]=h;h=m;break}case 3:{l=c[f+-4>>2]|0;h=$p(8)|0;a[h+4>>0]=1;c[h>>2]=l;c[22462]=h;h=m;break}case 5:{h=vx()|0;break}case 8:{j=c[22463]|0;k=$p(64)|0;l=j+4|0;h=c[l>>2]|0;if(h>>>0>=(c[j+8>>2]|0)>>>0){hj(j,1)|0;h=c[l>>2]|0}a[h>>0]=0;h=c[j>>2]|0;c[l>>2]=h;c[k+8>>2]=oA(h)|0;c[k+12>>2]=c[c[22464]>>2];h=c[22465]|0;ub[c[h>>2]&31](h,k,1)|0;h=m;break}case 9:{wx(c[f>>2]|0);h=m;break}case 18:{xx(c[f>>2]|0);h=m;break}case 19:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 20:{xx(c[f>>2]|0);h=m;break}case 21:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 22:{xx(c[f>>2]|0);h=m;break}case 23:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 24:{xx(c[f>>2]|0);h=m;break}case 25:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 26:{xx(c[f>>2]|0);h=m;break}case 27:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 28:{xx(c[f>>2]|0);h=m;break}case 29:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 30:{xx(c[f>>2]|0);h=m;break}case 31:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 32:{xx(c[f>>2]|0);h=m;break}case 33:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 34:{h=c[f+-4>>2]|0;break}case 35:{h=c[f>>2]|0;break}case 38:{h=c[22463]|0;j=c[h+4>>2]|0;if(j>>>0>=(c[h+8>>2]|0)>>>0){hj(h,1)|0;j=c[22463]|0;h=j;j=c[j+4>>2]|0}c[h+4>>2]=j+1;a[j>>0]=0;m=c[22463]|0;h=c[m>>2]|0;c[m+4>>2]=h;while(1){j=a[h>>0]|0;if(!(j<<24>>24))break;if(j<<24>>24==32)h=h+1|0;else{f=t;v=55;break a}}c[(c[f>>2]|0)+80>>2]=c[22466];h=Vi(89868,c[12572]|0)|0;c[(c[f>>2]|0)+84>>2]=h;c[22466]=c[f>>2];c[(c[f>>2]|0)+108>>2]=c[c[22464]>>2];h=c[f>>2]|0;break}case 39:{h=c[22463]|0;j=c[h+4>>2]|0;if(j>>>0>=(c[h+8>>2]|0)>>>0){hj(h,1)|0;j=c[22463]|0;h=j;j=c[j+4>>2]|0}c[h+4>>2]=j+1;a[j>>0]=0;m=c[22463]|0;h=c[m>>2]|0;c[m+4>>2]=h;while(1){j=a[h>>0]|0;if(!(j<<24>>24))break;if(j<<24>>24==32)h=h+1|0;else{f=t;v=62;break a}}h=c[22466]|0;c[22466]=c[h+80>>2];break}case 40:{h=c[f>>2]|0;break}case 41:{h=c[f+-4>>2]|0;break}case 42:{h=c[f+-4>>2]|0;break}case 43:{h=c[f+-4>>2]|0;break}case 44:{h=c[f+-4>>2]|0;break}case 45:{h=c[f+-4>>2]|0;break}case 48:{h=c[f>>2]|0;break}case 49:{h=c[f>>2]|0;break}case 50:{a[(c[f+-8>>2]|0)+12>>0]=1;h=c[f>>2]|0;break}case 51:{l=Vi(89904,c[12572]|0)|0;h=c[22466]|0;j=$p(16)|0;c[j+8>>2]=l;if(a[h+112>>0]&2)a[j+12>>0]=1;h=c[h+84>>2]|0;ub[c[h>>2]&31](h,j,1)|0;h=m;break}case 52:{h=c[(c[22466]|0)+84>>2]|0;h=ub[c[h>>2]&31](h,0,256)|0;break}case 53:{h=c[f>>2]|0;break}case 54:{h=c[f>>2]|0;break}case 55:{h=(c[f+-8>>2]|0)+100|0;a[h>>0]=d[h>>0]|1;h=c[f>>2]|0;break}case 56:{yx(c[f+-4>>2]|0,c[f>>2]|0,1);h=m;break}case 57:{h=c[f+-12>>2]|0;break}case 58:{yx(c[f+-4>>2]|0,c[f>>2]|0,2);h=m;break}case 59:{h=c[f+-12>>2]|0;break}case 60:{yx(c[f+-4>>2]|0,c[f>>2]|0,3);h=m;break}case 61:{h=c[f+-12>>2]|0;break}case 62:{h=c[f>>2]|0;yx(h,vx()|0,2);h=m;break}case 63:{h=c[f+-8>>2]|0;break}case 64:{h=c[f+-4>>2]|0;break}case 65:{h=c[f>>2]|0;break}default:h=m}while(0);e=e+(0-n<<1)|0;f=f+(o<<2)|0;c[p>>2]=h;g=(d[163998+g>>0]|0)+-41|0;p=b[e>>1]|0;h=p+(b[97130+(g<<1)>>1]|0)|0;if(h>>>0<272?(a[163166+h>>0]|0)==(p|0):0){j=q;g=a[163438+h>>0]|0;break}j=q;g=a[164068+g>>0]|0}while(0);q=j;l=t;e=e+2|0;h=r;m=g;k=s}if((v|0)==26){ux();e=1;v=104}else if((v|0)==55){Ex(163896);ux();e=1;v=104}else if((v|0)==62){Ex(163947);ux();e=1;v=104}else if((v|0)==103){Ex(164120);e=2;v=104}if((v|0)==104)if((f|0)!=(u|0))v=105;if((v|0)==105)pB(f);i=w;return e|0}function tx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+160|0;e=f+8|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[22464]=g;c[22466]=0;c[22462]=0;c[22485]=c[(c[(c[d+52>>2]|0)+16>>2]|0)+144>>2];c[22465]=Vi(89944,c[12572]|0)|0;c[22504]=Vi(89980,c[12572]|0)|0;gj(e,128,f+24|0);c[22463]=e;if(!(Fx(a,e,d)|0)){sx()|0;c[b>>2]=Gx()|0;d=c[22462]|0}else{c[b>>2]=2;d=0}Pi(c[22465]|0)|0;Pi(c[22504]|0)|0;c[22465]=0;c[22504]=0;c[22464]=0;kj(e);i=f;return d|0}function ux(){var a=0,b=0,d=0;a=c[22466]|0;b=c[22462]|0;if(b){Uv(b,1);c[22462]=0}c[22480]=63;if(a)do{b=a;a=c[a+80>>2]|0;Pi(c[b+84>>2]|0)|0;Sv(b);pB(b)}while((a|0)!=0);c[22480]=51;c[22490]=64;b=c[22465]|0;ub[c[b>>2]&31](b,0,64)|0;c[22490]=51;c[22499]=65;b=c[22504]|0;ub[c[b>>2]&31](b,0,64)|0;c[22499]=51;b=c[22464]|0;a=c[b+4>>2]|0;if(a)while(1){pB(b);b=c[a+4>>2]|0;if(!b)break;else{d=a;a=b;b=d}}return}function vx(){var a=0,d=0,e=0,f=0,g=0,h=0;e=c[22504]|0;f=$p(40)|0;if(Xi(c[22465]|0)|0)wx(0);d=Xi(e)|0;b[f+4>>1]=d;if((d|0)!=0?(c[f>>2]=$p(d*24|0)|0,a=ub[c[e>>2]&31](e,0,128)|0,(a|0)!=0):0){d=0;while(1){g=(c[f>>2]|0)+(d*24|0)|0;h=a+8|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];a=ub[c[e>>2]&31](e,a,8)|0;if(!a){a=e;break}else d=d+1|0}}else a=e;ub[c[a>>2]&31](e,0,64)|0;return f|0}function wx(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=$p(32)|0;j=c[22465]|0;e=Xi(j)|0;k=i+8|0;a[i+14>>0]=d;if(e){b[i+12>>1]=e;c[k>>2]=$p(e*56|0)|0;e=Ti(j)|0;if(e){d=0;while(1){f=(c[k>>2]|0)+(d*56|0)|0;g=e+8|0;h=f+56|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));e=c[e>>2]|0;if(!e)break;else d=d+1|0}}}else{c[k>>2]=$p(56)|0;b[i+12>>1]=1;h=oA(164137)|0;k=c[k>>2]|0;c[k>>2]=h;c[k+4>>2]=c[c[22464]>>2]}ub[c[j>>2]&31](j,0,64)|0;k=c[22504]|0;ub[c[k>>2]&31](k,i,1)|0;return}function xx(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,j=0,k=0;k=i;i=i+32|0;j=k;g=$p(8)|0;f=c[c[22464]>>2]|0;c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];c[j+20>>2]=c[a+20>>2];c[j+24>>2]=c[a+24>>2];c[j+28>>2]=c[a+28>>2];if(f){a=j+4|0;if((c[a>>2]|0)==0?(b=c[f+4>>2]|0,(b|0)!=0):0)c[a>>2]=b;a=j+16|0;if(+h[a>>3]<0.0?(d=+h[f+16>>3],d>=0.0):0)h[a>>3]=d;if((c[j>>2]|0)==0?(e=c[f>>2]|0,(e|0)!=0):0)c[j>>2]=e;a=c[f+24>>2]&127;if(a){f=j+24|0;e=c[f>>2]|0;c[f>>2]=e&127|a|e&-128}}f=c[(c[22485]|0)+144>>2]|0;c[g>>2]=ub[c[f>>2]&31](f,j,1)|0;c[g+4>>2]=c[22464];c[22464]=g;i=k;return}function yx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=$p(16)|0;g=c[22466]|0;h=c[g+84>>2]|0;h=c[(ub[c[h>>2]&31](h,0,256)|0)+8>>2]|0;c[f+8>>2]=b;ub[c[h>>2]&31](h,f,1)|0;f=b+88|0;a[b+92>>0]=e;if(a[g+112>>0]&1)a[b+100>>0]=1;switch(e|0){case 2:{c[f>>2]=d;break}case 3:{c[f>>2]=d;break}default:c[f>>2]=d}return}function zx(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function Ax(a,b,d){a=a|0;b=b|0;d=d|0;Pi(c[b+8>>2]|0)|0;pB(b);return}function Bx(b,d,e){b=b|0;d=d|0;e=e|0;b=c[d+8>>2]|0;e=b+88|0;switch(a[b+92>>0]|0){case 1:{e=c[e>>2]|0;Pi(c[e+84>>2]|0)|0;Sv(e);pB(e);break}case 2:{Tv(c[e>>2]|0);break}default:{}}Sv(b);pB(b);pB(d);return}function Cx(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+8>>2]|0;if(a)pB(a);pB(b);return}-function np(f,j){f=f|0;j=j|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0.0,D=0.0,E=0,F=0.0,G=0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,P=0,S=0,T=0.0,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0.0,fa=0.0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0;ua=i;i=i+1952|0;ta=ua+1808|0;qa=ua+1008|0;ca=ua+992|0;sa=ua+192|0;ra=ua+144|0;ja=ua+96|0;ka=ua+48|0;ga=ua+1936|0;la=ua;S=qa;N=f+256|0;P=S+32|0;do{a[S>>0]=a[N>>0]|0;S=S+1|0;N=N+1|0}while((S|0)<(P|0));ma=j+16|0;l=c[ma>>2]|0;m=c[l+8>>2]|0;if(((((m|0)!=0?(na=m+16|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],y=+h[k>>3],na=m+24|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],fa=+h[k>>3],na=m+32|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],x=+h[k>>3],fa>=+h[qa>>3]):0)?(na=m+8|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],+h[qa+16>>3]>=+h[k>>3]):0)?x>=+h[qa+8>>3]:0)?+h[qa+24>>3]>=y:0)na=13;else na=6;do if((na|0)==6){m=c[l+96>>2]|0;if(m){c[ta>>2]=c[qa>>2];c[ta+4>>2]=c[qa+4>>2];c[ta+8>>2]=c[qa+8>>2];c[ta+12>>2]=c[qa+12>>2];c[ta+16>>2]=c[qa+16>>2];c[ta+20>>2]=c[qa+20>>2];c[ta+24>>2]=c[qa+24>>2];c[ta+28>>2]=c[qa+28>>2];if((jt(m,ta)|0)<<24>>24){na=13;break}l=c[ma>>2]|0}l=c[l+108>>2]|0;if(((l|0)!=0?(a[l+81>>0]|0)!=0:0)?(c[ta>>2]=c[qa>>2],c[ta+4>>2]=c[qa+4>>2],c[ta+8>>2]=c[qa+8>>2],c[ta+12>>2]=c[qa+12>>2],c[ta+16>>2]=c[qa+16>>2],c[ta+20>>2]=c[qa+20>>2],c[ta+24>>2]=c[qa+24>>2],c[ta+28>>2]=c[qa+28>>2],(jt(l,ta)|0)<<24>>24!=0):0){na=13;break}}while(0);a:do if((na|0)==13){da=j+-48|0;gl(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0;o=f+156|0;b:do if((c[o>>2]|0)>=2?(n=Is(j,c[13436]|0,164137)|0,p=f+160|0,(op(c[f>>2]|0,c[p>>2]|0,c[o>>2]|0,n)|0)<<24>>24==0):0){if(a[n>>0]|0)break a;l=j+48|0;n=0;while(1){m=c[j>>2]&3;m=Is(c[((n|0)<1?((m|0)==3?j:l):(m|0)==2?j:da)+40>>2]|0,c[13406]|0,164137)|0;if(!(a[m>>0]|0))break b;n=n+1|0;if((op(c[f>>2]|0,c[p>>2]|0,c[o>>2]|0,m)|0)<<24>>24)break b;if((n|0)>=2)break a}}while(0);aa=j+48|0;l=pA(ok(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0)|0;l=oB(l+3+(pA(ok(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0)|0)|0;mA(l,ok(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0)|0;ia=(hk(gl(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0)==0;m=l+(pA(l)|0)|0;if(ia){a[m>>0]=a[160894]|0;a[m+1>>0]=a[160895]|0;a[m+2>>0]=a[160896]|0}else{a[m>>0]=a[160891]|0;a[m+1>>0]=a[160892]|0;a[m+2>>0]=a[160893]|0}iA(l,ok(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0;_u(f,l);pB(l);l=Is(j,c[13437]|0,164137)|0;if(a[l>>0]|0)_u(f,l);l=Is(j,c[13431]|0,164137)|0;if(a[l>>0]|0){dp(l)|0;l=c[13266]|0;if(!l)ia=53064;else{m=53068;while(1){if((a[l>>0]|0)==105?(lA(l,157791)|0)==0:0)break a;l=c[m>>2]|0;if(!l){ia=53064;break}else m=m+4|0}}}else ia=0;ba=f+152|0;Z=c[ba>>2]|0;_=To(f)|0;c[_+4>>2]=3;c[_+8>>2]=j;c[_+12>>2]=9;ha=c[(c[ma>>2]|0)+96>>2]|0;if(((ha|0)!=0?(a[ha+82>>0]|0)==0:0)?(Vs(zj(j,124490)|0,0)|0)<<24>>24!=0:0){ha=_+260|0;b[ha>>1]=b[ha>>1]|512}ha=(ia|0)==0;if(!ha?(c[(c[ma>>2]|0)+8>>2]|0)!=0:0)Uu(f,ia);l=c[13452]|0;if(((l|0)!=0?(q=Aj(j,l)|0,(q|0)!=0):0)?(a[q>>0]|0)!=0:0)av(f,+Hs(j,c[13452]|0,1.0,0.0));do if(Z&16777216)if((e[(c[(gl(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0)+16>>2]|0)+178>>1]|0)>2){fa=+h[(c[(c[(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[_+176>>3]=+(~~(fa+(fa>=0.0?.5:-.5))|0);fa=+h[(c[(c[(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[_+184>>3]=+(~~(fa+(fa>=0.0?.5:-.5))|0);break}else{Y=_+176|0;c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;break}while(0);if(Z&32768){o=c[ma>>2]|0;l=c[o+96>>2]|0;if(!l)l=c[_+192>>2]|0;else{l=c[l>>2]|0;c[_+192>>2]=l}m=_+196|0;c[m>>2]=l;p=_+204|0;c[p>>2]=l;n=_+200|0;c[n>>2]=l;l=c[o+108>>2]|0;if(l)c[m>>2]=c[l>>2];l=c[o+104>>2]|0;if(l)c[n>>2]=c[l>>2];l=c[o+100>>2]|0;if(l)c[p>>2]=c[l>>2]}if(!(Z&65536))n=0;else{gj(ra,128,ta);c[_+212>>2]=Up(Wo(f,j,ra)|0,j)|0;kj(ra);l=zj(j,134891)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=60;else{l=zj(j,134896)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=60;else m=0}if((na|0)==60)m=Up(l,j)|0;l=zj(j,124503)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=65;else na=63;do if((na|0)==63){l=zj(j,124512)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=65;break}if(m)c[_+208>>2]=oA(m)|0}while(0);if((na|0)==65)c[_+208>>2]=Up(l,j)|0;l=zj(j,124520)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=72;else na=70;do if((na|0)==70){l=zj(j,124530)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=72;break}if(m)c[_+216>>2]=oA(m)|0}while(0);if((na|0)==72)c[_+216>>2]=Up(l,j)|0;l=zj(j,124539)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=79;else na=77;do if((na|0)==77){l=zj(j,124548)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=79;break}if(m)c[_+220>>2]=oA(m)|0}while(0);if((na|0)==79){c[_+220>>2]=Up(l,j)|0;na=_+260|0;b[na>>1]=b[na>>1]|128}l=zj(j,124556)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=86;else na=84;do if((na|0)==84){l=zj(j,124565)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=86;break}if(!m)break;c[_+224>>2]=oA(m)|0}while(0);if((na|0)==86){c[_+224>>2]=Up(l,j)|0;Y=_+260|0;b[Y>>1]=b[Y>>1]|256}n=m}c:do if(Z&8388608){l=zj(j,124573)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)m=Up(l,j)|0;else m=0;l=zj(j,124580)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){Y=_+260|0;b[Y>>1]=b[Y>>1]|64;c[_+244>>2]=Up(l,j)|0}else na=97;if((na|0)==97?(m|0)!=0:0)c[_+244>>2]=oA(m)|0;l=zj(j,124591)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)c[_+248>>2]=Up(l,j)|0;else na=102;if((na|0)==102?(m|0)!=0:0)c[_+248>>2]=oA(m)|0;l=zj(j,124603)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){c[_+252>>2]=Up(l,j)|0;Y=_+260|0;b[Y>>1]=b[Y>>1]|16}else na=107;if((na|0)==107?(m|0)!=0:0)c[_+252>>2]=oA(m)|0;l=zj(j,124614)|0;do if(l){if(!(a[l>>0]|0))break;Y=_+260|0;b[Y>>1]=b[Y>>1]|32;c[_+256>>2]=Up(l,j)|0;break c}while(0);if(m)c[_+256>>2]=oA(m)|0;else m=0}else m=0;while(0);d:do if(Z&4194304){l=zj(j,134878)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=119;else na=117;do if((na|0)==117){l=zj(j,124625)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=119;break}l=c[_+192>>2]|0;if(l)c[_+228>>2]=oA(l)|0}while(0);if((na|0)==119){Y=tp(l,j)|0;c[_+228>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|1}l=zj(j,124637)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){Y=tp(l,j)|0;c[_+232>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|8}else na=125;if((na|0)==125?(r=c[_+192>>2]|0,(r|0)!=0):0)c[_+232>>2]=oA(r)|0;l=zj(j,124650)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){Y=tp(l,j)|0;c[_+236>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|2}else na=130;if((na|0)==130?(s=c[_+200>>2]|0,(s|0)!=0):0)c[_+236>>2]=oA(s)|0;l=zj(j,124662)|0;do if(l){if(!(a[l>>0]|0))break;Y=tp(l,j)|0;c[_+240>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|4;break d}while(0);l=c[_+204>>2]|0;if(l)c[_+240>>2]=oA(l)|0}while(0);pB(n);pB(m);do if((Z&4259840|0)!=0?($=c[(c[ma>>2]|0)+8>>2]|0,($|0)!=0):0){if(!(c[_+208>>2]|0)){if((Z&524288|0)==0|(c[_+228>>2]|0)==0)break}else if(!(Z&524288))break;F=+h[(c[f+16>>2]|0)+152>>3]*.5;F=F>2.0?F:2.0;S=c[$+4>>2]|0;if((S|0)>0){U=ta+16|0;V=ta+32|0;X=ta+48|0;o=0;p=0;q=0;Y=0;do{m=c[$>>2]|0;l=aq(24)|0;c[l+16>>2]=1;P=(c[m+(Y*48|0)+4>>2]|0)+-1|0;s=(P|0)/3|0;if((P|0)>2){m=m+(Y*48|0)|0;n=0;r=l;do{P=n*3|0;N=c[m>>2]|0;G=N+(P<<4)|0;c[ta>>2]=c[G>>2];c[ta+4>>2]=c[G+4>>2];c[ta+8>>2]=c[G+8>>2];c[ta+12>>2]=c[G+12>>2];G=N+(P+1<<4)|0;c[U>>2]=c[G>>2];c[U+4>>2]=c[G+4>>2];c[U+8>>2]=c[G+8>>2];c[U+12>>2]=c[G+12>>2];G=N+(P+2<<4)|0;c[V>>2]=c[G>>2];c[V+4>>2]=c[G+4>>2];c[V+8>>2]=c[G+8>>2];c[V+12>>2]=c[G+12>>2];P=N+(P+3<<4)|0;c[X>>2]=c[P>>2];c[X+4>>2]=c[P+4>>2];c[X+8>>2]=c[P+8>>2];c[X+12>>2]=c[P+12>>2];r=up(ta,r)|0;n=n+1|0}while((n|0)<(s|0))}if(l){B=0;P=l;m=0;while(1){N=c[P+16>>2]|0;E=qa+(B<<4)|0;G=sa+(B<<4)|0;C=+h[P>>3];D=+h[P+8>>3];do if(m){y=+h[m>>3];x=+h[m+8>>3];if(!N){z=D*2.0-x;A=C*2.0-y;break}else{z=+h[N+8>>3];A=+h[N>>3];break}}else{y=+h[N>>3];x=+h[N+8>>3];z=x;A=y;x=D*2.0-x;y=C*2.0-y}while(0);ea=+W(+(x-D),+(y-C));fa=+W(+(z-D),+(A-C))-ea;fa=ea+(fa>0.0?fa+-6.283185307179586:fa)*.5;ea=F*+Q(+fa);fa=F*+R(+fa);h[E>>3]=C+ea;h[qa+(B<<4)+8>>3]=D+fa;h[G>>3]=C-ea;h[sa+(B<<4)+8>>3]=D-fa;m=B+1|0;w=(N|0)==0;if((m|0)==50|w){u=m<<1;v=u+-1|0;if((o|0)>0){r=p;s=0;n=0;do{n=(c[r+(s<<2)>>2]|0)+n|0;s=s+1|0}while((s|0)!=(o|0));r=(o|0)>1?o:1;t=n}else{r=0;t=0}o=o+1|0;s=cq(p,o<<2)|0;p=s;c[s+(r<<2)>>2]=u;s=cq(q,t+u<<4)|0;q=s;do if((B|0)>-1){r=v+t|0;v=s+(t<<4)|0;c[v>>2]=c[qa>>2];c[v+4>>2]=c[qa+4>>2];c[v+8>>2]=c[qa+8>>2];c[v+12>>2]=c[qa+12>>2];v=s+(r<<4)|0;c[v>>2]=c[sa>>2];c[v+4>>2]=c[sa+4>>2];c[v+8>>2]=c[sa+8>>2];c[v+12>>2]=c[sa+12>>2];if(!B)break;else n=1;do{B=s+(n+t<<4)|0;v=qa+(n<<4)|0;c[B>>2]=c[v>>2];c[B+4>>2]=c[v+4>>2];c[B+8>>2]=c[v+8>>2];c[B+12>>2]=c[v+12>>2];B=s+(r-n<<4)|0;v=sa+(n<<4)|0;c[B>>2]=c[v>>2];c[B+4>>2]=c[v+4>>2];c[B+8>>2]=c[v+8>>2];c[B+12>>2]=c[v+12>>2];n=n+1|0}while((n|0)!=(m|0))}while(0);c[qa>>2]=c[E>>2];c[qa+4>>2]=c[E+4>>2];c[qa+8>>2]=c[E+8>>2];c[qa+12>>2]=c[E+12>>2];c[sa>>2]=c[G>>2];c[sa+4>>2]=c[G+4>>2];c[sa+8>>2]=c[G+8>>2];c[sa+12>>2]=c[G+12>>2];m=1}if(w)break;else{G=P;B=m;P=N;m=G}}do{P=l;l=c[l+16>>2]|0;pB(P)}while((l|0)!=0)}Y=Y+1|0}while((Y|0)!=(S|0))}else{q=0;p=0;o=0}c[_+276>>2]=o;c[_+280>>2]=p;if(!(Z&8192)){if((o|0)>0){m=p;n=0;l=0;do{l=(c[m+(n<<2)>>2]|0)+l|0;n=n+1|0}while((n|0)!=(o|0))}else l=0;$=q;vu(f,$,$,l)|0}c[_+284>>2]=q;c[_+264>>2]=2;c[_+272>>2]=q;c[_+268>>2]=c[p>>2]}while(0);Ku(f,j);l=c[_+208>>2]|0;if(!((l|0)==0?(b[_+260>>1]&1)==0:0))Mu(f,l,c[_+228>>2]|0,c[_+244>>2]|0,c[_+212>>2]|0);Z=f+16|0;ea=+h[(c[Z>>2]|0)+152>>3];Lv(zj(j,123456)|0);e:do if(c[(c[ma>>2]|0)+8>>2]|0){fa=+Hs(j,c[13434]|0,1.0,0.0);n=Is(j,c[13415]|0,164137)|0;U=(ia|0)!=0;f:do if(U){l=c[ia>>2]|0;if(!l){q=0;break}else m=ia;while(1){m=m+4|0;if((a[l>>0]|0)==116?(lA(l,134476)|0)==0:0){q=1;break f}l=c[m>>2]|0;if(!l){q=0;break}}}else q=0;while(0);m=0;l=0;o=n;g:while(1){switch(a[o>>0]|0){case 0:{r=m;break g}case 58:{m=m+1|0;break}case 59:{l=l+1|0;break}default:{}}o=o+1|0}o=(r|0)!=0;do if((l|0)!=0&o){l=hp(n,r+1|0,ga)|0;if((l|0)>1){$=gl(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0;_=ok(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0;$=(hk($)|0)!=0;aa=ok(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0;c[ca>>2]=_;c[ca+4>>2]=$?124674:124679;c[ca+8>>2]=aa;dj(3,124684,ca)|0;if((l|0)==2)na=213}else if((l|0)==1)na=213;if((na|0)==213){n=160746;break}m=c[(c[ma>>2]|0)+8>>2]|0;if((c[m+4>>2]|0)>0){t=sa+8|0;u=sa+12|0;v=sa+32|0;w=sa+4|0;B=sa+16|0;E=ja+4|0;G=ka+4|0;l=c[ga>>2]|0;s=l+8|0;n=m;m=0;r=0;do{S=sa;N=(c[n>>2]|0)+(r*48|0)|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));n=c[s>>2]|0;o=c[n>>2]|0;h:do if(o){p=1;y=1.0;i:while(1){q=n+4|0;T=+g[q>>2];do if(T<1.0e-05&T>-1.0e-05)x=y;else{Ru(f,o);x=+g[q>>2];y=y-x;m=c[n>>2]|0;if(p){vp(sa,x,ja,ka);la=c[ja>>2]|0;Yu(f,la,c[E>>2]|0,0,0,0);pB(la);if(y<1.0e-05&y>-1.0e-05){na=197;break i}else{p=0;x=y;break}}if(y<1.0e-05&y>-1.0e-05){na=199;break i}S=ra;N=ka;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));x=+g[q>>2];vp(ra,x/(y+x),ja,ka);pB(c[ra>>2]|0);p=c[ja>>2]|0;Yu(f,p,c[E>>2]|0,0,0,0);pB(p);p=0;x=y}while(0);n=n+12|0;o=c[n>>2]|0;if(!o)break h;else y=x}if((na|0)==197){na=0;pB(c[ka>>2]|0);break}else if((na|0)==199){na=0;la=c[ka>>2]|0;Yu(f,la,c[G>>2]|0,0,0,0);pB(la);break}}while(0);if(c[t>>2]|0){Ru(f,c[c[s>>2]>>2]|0);Su(f,c[c[s>>2]>>2]|0);j=c[sa>>2]|0;la=c[t>>2]|0;c[qa>>2]=c[B>>2];c[qa+4>>2]=c[B+4>>2];c[qa+8>>2]=c[B+8>>2];c[qa+12>>2]=c[B+12>>2];c[ta>>2]=c[j>>2];c[ta+4>>2]=c[j+4>>2];c[ta+8>>2]=c[j+8>>2];c[ta+12>>2]=c[j+12>>2];Go(f,2,qa,ta,fa,ea,la)}if(c[u>>2]|0){Ru(f,m);Su(f,m);j=(c[sa>>2]|0)+((c[w>>2]|0)+-1<<4)|0;la=c[u>>2]|0;c[qa>>2]=c[v>>2];c[qa+4>>2]=c[v+4>>2];c[qa+8>>2]=c[v+8>>2];c[qa+12>>2]=c[v+12>>2];c[ta>>2]=c[j>>2];c[ta+4>>2]=c[j+4>>2];c[ta+8>>2]=c[j+8>>2];c[ta+12>>2]=c[j+12>>2];Go(f,3,qa,ta,fa,ea,la)}n=c[(c[ma>>2]|0)+8>>2]|0;o=c[n+4>>2]|0;do if((o|0)>1){if(!(c[t>>2]|0)){if(!(U&(c[u>>2]|0)!=0))break}else if(ha)break;Uu(f,ia);o=c[(c[ma>>2]|0)+8>>2]|0;n=o;o=c[o+4>>2]|0}while(0);r=r+1|0}while((r|0)<(o|0))}else l=c[ga>>2]|0;pB(c[l+4>>2]|0);pB(c[l+8>>2]|0);pB(l);break e}while(0);l=d[(c[ma>>2]|0)+115>>0]|0;do if(!(l&1)){if(l&2){m=c[13419]|0;m=Js(j,m,wp(n,129696)|0)|0;l=Js(j,c[13420]|0,129704)|0;na=223;break}if(l&8){m=c[13423]|0;m=Js(j,m,wp(n,129712)|0)|0;l=Js(j,c[13424]|0,129720)|0;na=223;break}if(!(l&4)){p=Js(j,c[13416]|0,n)|0;m=n;break}else{m=c[13421]|0;m=Js(j,m,wp(n,129728)|0)|0;l=Js(j,c[13422]|0,129736)|0;na=223;break}}else{m=c[13417]|0;m=Js(j,m,wp(n,129680)|0)|0;l=Js(j,c[13418]|0,129688)|0;na=223}while(0);do if((na|0)==223){if((m|0)==(n|0)){p=l;m=n;break}Ru(f,m);p=l}while(0);if((p|0)!=(n|0))Su(f,p);if(q<<24>>24){o=(a[m>>0]|0)==0?160746:m;n=(a[p>>0]|0)==0?160746:p;Ru(f,161276);Su(f,o);S=la;N=c[c[(c[ma>>2]|0)+8>>2]>>2]|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));l=c[13430]|0;j:do if(!l)na=234;else{l=Aj(j,l)|0;switch(a[l>>0]|0){case 110:if(!(lA(l,159165)|0)){l=2;break j}else{na=234;break j}case 102:if(!(lA(l,124700)|0)){l=1;break j}else{na=234;break j}case 98:{if(!(lA(l,124708)|0)){l=3;break j}if(!(lA(l,134593)|0)){l=4;break j}else{na=234;break j}}default:{na=234;break j}}}while(0);if((na|0)==234){l=(hk(gl(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0)!=0;l=l?1:2}l=ps(la,l,ea,0,0)|0;m=l+8|0;Wu(f,c[m>>2]|0,c[l>>2]|0,1);if(l){pB(c[m>>2]|0);pB(l)}Ru(f,o);if((n|0)!=(o|0))Su(f,n);l=c[la+8>>2]|0;if(l){ka=la+16|0;ma=c[la>>2]|0;c[qa>>2]=c[ka>>2];c[qa+4>>2]=c[ka+4>>2];c[qa+8>>2]=c[ka+8>>2];c[qa+12>>2]=c[ka+12>>2];c[ta>>2]=c[ma>>2];c[ta+4>>2]=c[ma+4>>2];c[ta+8>>2]=c[ma+8>>2];c[ta+12>>2]=c[ma+12>>2];Go(f,2,qa,ta,fa,ea,l)}l=c[la+12>>2]|0;if(!l)break;ka=la+32|0;ma=(c[la>>2]|0)+((c[la+4>>2]|0)+-1<<4)|0;c[qa>>2]=c[ka>>2];c[qa+4>>2]=c[ka+4>>2];c[qa+8>>2]=c[ka+8>>2];c[qa+12>>2]=c[ka+12>>2];c[ta>>2]=c[ma>>2];c[ta+4>>2]=c[ma+4>>2];c[ta+8>>2]=c[ma+8>>2];c[ta+12>>2]=c[ma+12>>2];Go(f,3,qa,ta,fa,ea,l);break}l=c[ma>>2]|0;if(!o){do if(!(a[l+115>>0]&3)){if(a[m>>0]|0){Ru(f,m);Su(f,p);break}Ru(f,160746);if(!(a[p>>0]|0)){Su(f,160746);break}else{Su(f,p);break}}while(0);l=c[(c[ma>>2]|0)+8>>2]|0;if((c[l+4>>2]|0)<=0)break;o=la+4|0;p=la+8|0;q=la+12|0;r=la+32|0;s=la+16|0;n=0;while(1){S=la;N=(c[l>>2]|0)+(n*48|0)|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));l=c[la>>2]|0;m=c[o>>2]|0;do if(!(c[ba>>2]&16384)){Yu(f,l,m,0,0,0);l=c[p>>2]|0;if(l){ka=c[la>>2]|0;c[qa>>2]=c[s>>2];c[qa+4>>2]=c[s+4>>2];c[qa+8>>2]=c[s+8>>2];c[qa+12>>2]=c[s+12>>2];c[ta>>2]=c[ka>>2];c[ta+4>>2]=c[ka+4>>2];c[ta+8>>2]=c[ka+8>>2];c[ta+12>>2]=c[ka+12>>2];Go(f,2,qa,ta,fa,ea,l)}l=c[q>>2]|0;if(l){ka=(c[la>>2]|0)+((c[o>>2]|0)+-1<<4)|0;c[qa>>2]=c[r>>2];c[qa+4>>2]=c[r+4>>2];c[qa+8>>2]=c[r+8>>2];c[qa+12>>2]=c[r+12>>2];c[ta>>2]=c[ka>>2];c[ta+4>>2]=c[ka+4>>2];c[ta+8>>2]=c[ka+8>>2];c[ta+12>>2]=c[ka+12>>2];Go(f,3,qa,ta,fa,ea,l)}if((c[(c[(c[ma>>2]|0)+8>>2]|0)+4>>2]|0)<=1)break;if(!(c[p>>2]|0)){if(!(U&(c[q>>2]|0)!=0))break}else if(!U)break;Uu(f,ia)}else Yu(f,l,m,c[p>>2]|0,c[q>>2]|0,0);while(0);n=n+1|0;l=c[(c[ma>>2]|0)+8>>2]|0;if((n|0)>=(c[l+4>>2]|0))break e}}G=l+8|0;l=c[G>>2]|0;V=c[l+4>>2]|0;Y=V*48|0;X=oB(Y)|0;Y=oB(Y)|0;T=+(r+2|0)*.5;U=(V|0)>0;k:do if(U){E=la+4|0;A=0.0;z=0.0;n=0;while(1){S=la;N=(c[l>>2]|0)+(n*48|0)|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));l=c[E>>2]|0;c[X+(n*48|0)+4>>2]=l;c[Y+(n*48|0)+4>>2]=l;B=l<<4;w=oB(B)|0;c[X+(n*48|0)>>2]=w;B=oB(B)|0;c[Y+(n*48|0)>>2]=B;t=c[la>>2]|0;x=+h[t>>3];y=+h[t+8>>3];if((l|0)>1){u=l+-1|0;v=l+-2|0;v=v-((v>>>0)%3|0)|0;M=x;s=0;while(1){r=s+1|0;J=+h[t+(r<<4)>>3];K=+h[t+(r<<4)+8>>3];if(!s){x=M-J;L=y-K;I=2.0/+O(+(x*x+L*L+.0001));x=x*I;I=L*I}else{x=z-J;L=A-K;I=2.0/+O(+(x*x+L*L+.0001));x=x*I;I=L*I}H=-x;h[w+(s<<4)>>3]=I;h[w+(s<<4)+8>>3]=H;l=s+2|0;z=+h[t+(l<<4)>>3];A=+h[t+(l<<4)+8>>3];q=s;s=s+3|0;x=+h[t+(s<<4)>>3];L=+h[t+(s<<4)+8>>3];o=w+(r<<4)|0;p=w+(l<<4)|0;F=J-z;D=K-A;C=+O(+(F*F+D*D));if(C<.0001){F=M-x;D=y-L;C=+O(+(F*F+D*D+.0001))}C=2.0/C;D=D*C;F=-(F*C);h[p>>3]=D;h[w+(l<<4)+8>>3]=F;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];h[B+(q<<4)>>3]=M-T*I;h[B+(q<<4)+8>>3]=y-T*H;h[B+(r<<4)>>3]=J-T*+h[o>>3];h[B+(r<<4)+8>>3]=K-T*+h[w+(r<<4)+8>>3];h[B+(l<<4)>>3]=z-T*D;h[B+(l<<4)+8>>3]=A-T*F;if((s|0)>=(u|0)){y=L;break}else{M=x;y=L}}l=v+3|0}else l=0;K=z-x;L=A-y;M=2.0/+O(+(L*L+K*K+.0001));L=L*M;M=-(K*M);h[w+(l<<4)>>3]=L;h[w+(l<<4)+8>>3]=M;h[B+(l<<4)>>3]=x-T*L;h[B+(l<<4)+8>>3]=y-T*M;n=n+1|0;if((n|0)==(V|0))break k;l=c[G>>2]|0}}while(0);u=oA(m)|0;l=xA(u,133477)|0;if(!l){o=m;l=m}else{t=0;o=m;n=m;while(1){l=(a[l>>0]|0)==0?160746:l;do if((l|0)!=(n|0)){if(a[(c[ma>>2]|0)+115>>0]&3){n=l;break}Ru(f,l);Su(f,l);n=l}while(0);s=(t|0)==0?l:o;m=t>>>0<2?l:m;if(U){q=0;do{l=c[Y+(q*48|0)>>2]|0;o=c[X+(q*48|0)>>2]|0;p=c[Y+(q*48|0)+4>>2]|0;if((p|0)>0){r=0;do{ka=l+(r<<4)|0;h[ka>>3]=+h[o+(r<<4)>>3]+ +h[ka>>3];ka=l+(r<<4)+8|0;h[ka>>3]=+h[o+(r<<4)+8>>3]+ +h[ka>>3];r=r+1|0}while((r|0)!=(p|0))}Yu(f,l,p,0,0,0);q=q+1|0}while((q|0)!=(V|0))}l=xA(0,133477)|0;if(!l){o=s;l=m;break}else{t=t+1|0;o=s}}}m=la+8|0;n=c[m>>2]|0;if(!n)n=0;else{do if(!l)l=0;else{if(a[(c[ma>>2]|0)+115>>0]&3)break;Ru(f,l);Su(f,l);n=c[m>>2]|0}while(0);ja=la+16|0;ka=c[la>>2]|0;c[qa>>2]=c[ja>>2];c[qa+4>>2]=c[ja+4>>2];c[qa+8>>2]=c[ja+8>>2];c[qa+12>>2]=c[ja+12>>2];c[ta>>2]=c[ka>>2];c[ta+4>>2]=c[ka+4>>2];c[ta+8>>2]=c[ka+8>>2];c[ta+12>>2]=c[ka+12>>2];Go(f,2,qa,ta,fa,ea,n);n=l}m=la+12|0;l=c[m>>2]|0;if(l){do if((n|0)!=(o|0)){if(a[(c[ma>>2]|0)+115>>0]&3)break;Ru(f,o);Su(f,o);l=c[m>>2]|0}while(0);ka=la+32|0;ma=(c[la>>2]|0)+((c[la+4>>2]|0)+-1<<4)|0;c[qa>>2]=c[ka>>2];c[qa+4>>2]=c[ka+4>>2];c[qa+8>>2]=c[ka+8>>2];c[qa+12>>2]=c[ka+12>>2];c[ta>>2]=c[ma>>2];c[ta+4>>2]=c[ma+4>>2];c[ta+8>>2]=c[ma+8>>2];c[ta+12>>2]=c[ma+12>>2];Go(f,3,qa,ta,fa,ea,l)}pB(u);if(U){l=0;do{pB(c[X+(l*48|0)>>2]|0);pB(c[Y+(l*48|0)>>2]|0);l=l+1|0}while((l|0)!=(V|0))}pB(X);pB(Y)}while(0);G=c[Z>>2]|0;E=c[G+8>>2]|0;v=G+208|0;if(!((c[v>>2]|0)==0?(b[G+260>>1]&1)==0:0))na=301;do if((na|0)==301?(Nu(f),pa=G+276|0,oa=c[pa>>2]|0,(oa|0)!=0):0){u=G+280|0;if((oa|0)<=1)break;t=c[u>>2]|0;l=G+268|0;m=G+284|0;n=G+272|0;o=G+228|0;p=G+244|0;q=G+212|0;r=t;s=1;t=c[t>>2]|0;do{c[l>>2]=c[r+(s<<2)>>2];c[n>>2]=(c[m>>2]|0)+(t<<4);Mu(f,c[v>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0);Nu(f);r=c[u>>2]|0;t=(c[r+(s<<2)>>2]|0)+t|0;s=s+1|0}while((s|0)<(c[pa>>2]|0))}while(0);c[G+268>>2]=0;c[G+272>>2]=0;B=E+16|0;l=c[B>>2]|0;m=c[l+8>>2]|0;if(!m)w=G+260|0;else{oa=c[m>>2]|0;l=c[oa>>2]|0;pa=c[oa+8>>2]|0;na=oa+16|0;c[sa>>2]=c[na>>2];c[sa+4>>2]=c[na+4>>2];c[sa+8>>2]=c[na+8>>2];c[sa+12>>2]=c[na+12>>2];oa=oa+32|0;c[ra>>2]=c[oa>>2];c[ra+4>>2]=c[oa+4>>2];c[ra+8>>2]=c[oa+8>>2];c[ra+12>>2]=c[oa+12>>2];if(!pa){c[qa>>2]=c[l>>2];c[qa+4>>2]=c[l+4>>2];c[qa+8>>2]=c[l+8>>2];c[qa+12>>2]=c[l+12>>2]}else{c[qa>>2]=c[sa>>2];c[qa+4>>2]=c[sa+4>>2];c[qa+8>>2]=c[sa+8>>2];c[qa+12>>2]=c[sa+12>>2]}l=G+260|0;na=b[l>>1]|0;oa=c[G+220>>2]|0;c[ta>>2]=c[qa>>2];c[ta+4>>2]=c[qa+4>>2];c[ta+8>>2]=c[qa+8>>2];c[ta+12>>2]=c[qa+12>>2];Bp(f,ta,(na<<8&65535)<<16>>16>>15&255,oa,(na<<14&65535)<<16>>16>>15&255);na=c[(c[B>>2]|0)+8>>2]|0;oa=(c[na+4>>2]|0)+-1|0;na=c[na>>2]|0;m=c[na+(oa*48|0)>>2]|0;n=c[na+(oa*48|0)+4>>2]|0;pa=c[na+(oa*48|0)+12>>2]|0;ma=na+(oa*48|0)+16|0;c[sa>>2]=c[ma>>2];c[sa+4>>2]=c[ma+4>>2];c[sa+8>>2]=c[ma+8>>2];c[sa+12>>2]=c[ma+12>>2];sa=na+(oa*48|0)+32|0;c[ra>>2]=c[sa>>2];c[ra+4>>2]=c[sa+4>>2];c[ra+8>>2]=c[sa+8>>2];c[ra+12>>2]=c[sa+12>>2];if(!pa){sa=m+(n+-1<<4)|0;c[qa>>2]=c[sa>>2];c[qa+4>>2]=c[sa+4>>2];c[qa+8>>2]=c[sa+8>>2];c[qa+12>>2]=c[sa+12>>2]}else{c[qa>>2]=c[ra>>2];c[qa+4>>2]=c[ra+4>>2];c[qa+8>>2]=c[ra+8>>2];c[qa+12>>2]=c[ra+12>>2]}w=b[l>>1]|0;sa=c[G+224>>2]|0;c[ta>>2]=c[qa>>2];c[ta+4>>2]=c[qa+4>>2];c[ta+8>>2]=c[qa+8>>2];c[ta+12>>2]=c[qa+12>>2];Bp(f,ta,(w<<7&65535)<<16>>16>>15&255,sa,(w<<13&65535)<<16>>16>>15&255);w=l;l=c[B>>2]|0}l=c[l+96>>2]|0;m=(b[w>>1]<<12&65535)<<16>>16>>15<<16>>16;s=G+216|0;n=c[s>>2]|0;t=G+232|0;o=c[t>>2]|0;u=G+248|0;p=c[u>>2]|0;v=G+212|0;q=c[v>>2]|0;if(!((Ls(Is(E,c[13432]|0,160740)|0)|0)<<24>>24))r=0;else r=c[(c[B>>2]|0)+8>>2]|0;Cp(f,l,11,m,n,o,p,q,r);q=c[(c[B>>2]|0)+108>>2]|0;r=(b[w>>1]<<12&65535)<<16>>16>>15<<16>>16;p=c[s>>2]|0;o=c[t>>2]|0;m=c[u>>2]|0;n=c[v>>2]|0;if(!((Ls(Is(E,c[13432]|0,160740)|0)|0)<<24>>24))l=0;else l=c[(c[B>>2]|0)+8>>2]|0;Cp(f,q,11,r,p,o,m,n,l);Cp(f,c[(c[B>>2]|0)+100>>2]|0,7,(b[w>>1]<<13&65535)<<16>>16>>15<<16>>16,c[G+224>>2]|0,c[G+240>>2]|0,c[G+256>>2]|0,c[v>>2]|0,0);Cp(f,c[(c[B>>2]|0)+104>>2]|0,6,(b[w>>1]<<14&65535)<<16>>16>>15<<16>>16,c[G+220>>2]|0,c[G+236>>2]|0,c[G+252>>2]|0,c[v>>2]|0,0);Lu(f);Uo(f)}while(0);i=ua;return}function op(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+160|0;n=q+20|0;m=q+16|0;p=q;c[n>>2]=0;c[m>>2]=0;gj(p,128,q+24|0);jj(p,f)|0;h=p+4|0;f=c[h>>2]|0;if(f>>>0>=(c[p+8>>2]|0)>>>0){hj(p,1)|0;f=c[h>>2]|0}a[f>>0]=0;f=c[p>>2]|0;c[h>>2]=f;k=b+300|0;l=b+296|0;f=yA(f,c[k>>2]|0,n)|0;a:do if(!f)g=0;else{while(1){f=yA(f,c[l>>2]|0,m)|0;h=(f|0)!=0;if(h)j=yA(0,c[l>>2]|0,m)|0;else j=0;switch(((j|0)!=0&1)+(h&1)|0){case 2:{h=rp(b,f,0)|0;f=rp(b,j,e)|0;if((f&h|0)>-1){g=(h|0)>(f|0);g=((g?h:f)|0)>=(d|0)&((g?f:h)|0)<=(d|0);o=11}break}case 1:{g=(rp(b,f,d)|0)==(d|0);o=11;break}default:{}}if((o|0)==11?(o=0,g):0)break;f=yA(0,c[k>>2]|0,n)|0;if(!f){g=0;break a}}g=g&1}while(0);kj(p);i=q;return g|0}function pp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+156|0;a:do if((c[h>>2]|0)>=2?(f=Is(e,c[13406]|0,164137)|0,i=b+160|0,(op(c[b>>2]|0,c[i>>2]|0,c[h>>2]|0,f)|0)<<24>>24==0):0)if(!(a[f>>0]|0))if(Qj(d,e)|0){f=Qj(d,e)|0;if(!f)f=0;else while(1){g=Is(f,c[13436]|0,164137)|0;if(!(a[g>>0]|0)){f=1;break a}if((op(c[b>>2]|0,c[i>>2]|0,c[h>>2]|0,g)|0)<<24>>24){f=1;break a}f=Rj(d,f,e)|0;if(!f){f=0;break}}}else f=1;else f=0;else f=1;while(0);return f|0}function qp(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0.0,m=0,n=0;k=c[b+4>>2]|0;if((k|0)<=0)Ia(124447,123382,3968,124459);if(((k|0)%3|0|0)!=1)Ia(124469,123382,3969,124459);j=c[b>>2]|0;d=+h[j>>3];i=+h[j+8>>3];if((k|0)>1){f=d;g=i;e=d;d=i;b=1;do{n=b+1|0;m=b+2|0;l=(+h[j+(b<<4)>>3]+ +h[j+(n<<4)>>3])*.5;i=(+h[j+(b<<4)+8>>3]+ +h[j+(n<<4)+8>>3])*.5;f=f<l?f:l;g=g<i?g:i;l=e>l?e:l;i=d>i?d:i;e=+h[j+(m<<4)>>3];d=+h[j+(m<<4)+8>>3];f=f<e?f:e;g=g<d?g:d;e=l>e?l:e;d=i>d?i:d;b=b+3|0}while((b|0)<(k|0))}else{f=d;g=i;e=d;d=i}h[a>>3]=f;h[a+8>>3]=g;h[a+16>>3]=e;h[a+24>>3]=d;return}function rp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=a[d>>0]|0;if(h<<24>>24==97){if(lA(d,124486)|0){e=97;f=3}}else{e=h;f=3}a:do if((f|0)==3){b:do if(e<<24>>24){f=d;while(1){f=f+1|0;if(((e&255)+-48|0)>>>0>=10)break;e=a[f>>0]|0;if(!(e<<24>>24))break b}g=c[b+308>>2]|0;if(!g){e=-1;break a}f=c[b+312>>2]|0;if((f|0)<1){e=-1;break a}else e=1;while(1){b=c[g+(e<<2)>>2]|0;if(h<<24>>24==(a[b>>0]|0)?(lA(d,b)|0)==0:0)break a;if((e|0)<(f|0))e=e+1|0;else{e=-1;break a}}}while(0);e=Yz(d)|0}while(0);return e|0}function sp(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function tp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=hl(d)|0;if((a[(c[d+16>>2]|0)+115>>0]|0)==1)h=gt(b)|0;else h=ft(b,d)|0;b=h;d=h;a:while(1){g=0;while(1){f=b+1|0;e=a[b>>0]|0;if(!(e<<24>>24))break a;if(g<<24>>24){b=f;f=8;break}if(e<<24>>24==92){b=f;g=1}else{b=f;f=14;break}}b:do if((f|0)==8)switch(e<<24>>24|0){case 108:case 110:{a[d>>0]=10;break b}case 114:{a[d>>0]=13;break b}default:{a[d>>0]=e;break b}}else if((f|0)==14)a[d>>0]=e;while(0);d=d+1|0}a[d>>0]=0;return h|0}function up(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0;k=i;i=i+192|0;j=k+176|0;l=k+160|0;m=k+144|0;g=k+64|0;h=k;f=k+128|0;e=b+48|0;o=b+16|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];c[l+8>>2]=c[e+8>>2];c[l+12>>2]=c[e+12>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];n=+Jp(m,l,j);o=b+32|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];c[l+8>>2]=c[e+8>>2];c[l+12>>2]=c[e+12>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];if(n<4.0&+Jp(m,l,j)<4.0){h=d+16|0;if((c[h>>2]|0)==1){c[h>>2]=0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2]}g=j;f=g+16|0;do{a[g>>0]=a[e>>0]|0;g=g+1|0;e=e+1|0}while((g|0)<(f|0));e=aq(24)|0;c[e+16>>2]=0;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];c[h>>2]=e}else{Rs(f,b,3,.5,g,h);e=up(h,up(g,d)|0)|0}i=k;return e|0}function vp(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var f=0,g=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;q=i;i=i+32|0;o=q;p=c[a+4>>2]|0;f=p+-1|0;m=(f|0)/3|0;if((p+-4|0)>>>0<3){c[d+4>>2]=4;c[d>>2]=$p(64)|0;c[e+4>>2]=4;p=$p(64)|0;c[e>>2]=p;Rs(q+16|0,c[a>>2]|0,3,b,c[d>>2]|0,p)}else{p=$p(m<<3)|0;k=(f|0)>2;a:do if(k){f=0;j=c[a>>2]|0;g=0.0;while(1){u=+h[j+16>>3];s=+h[j>>3]-u;t=+h[j+24>>3];v=+h[j+8>>3]-t;v=+O(+(s*s+v*v));s=+h[j+32>>3];u=u-s;r=+h[j+40>>3];t=t-r;t=v+ +O(+(u*u+t*t));s=s-+h[j+48>>3];r=r-+h[j+56>>3];r=t+ +O(+(s*s+r*r));h[p+(f<<3)>>3]=r;g=g+r;f=f+1|0;if((f|0)>=(m|0))break;else j=j+48|0}b=b*g;if(k){f=0;g=0.0;do{g=g+ +h[p+(f<<3)>>3];if(g>=b)break a;f=f+1|0}while((m|0)>(f|0))}else{f=0;g=0.0}}else{b=b*0.0;f=0;g=0.0}while(0);n=f*3|0;k=n+4|0;l=d+4|0;c[l>>2]=k;c[d>>2]=$p(k<<4)|0;k=((m-f|0)*3|0)+1|0;m=e+4|0;c[m>>2]=k;c[e>>2]=$p(k<<4)|0;if((c[l>>2]|0)>0){j=0;while(1){k=(c[d>>2]|0)+(j<<4)|0;w=(c[a>>2]|0)+(j<<4)|0;c[k>>2]=c[w>>2];c[k+4>>2]=c[w+4>>2];c[k+8>>2]=c[w+8>>2];c[k+12>>2]=c[w+12>>2];k=j+1|0;if((k|0)<(c[l>>2]|0))j=k;else break}j=j+-3|0}else j=-4;if((c[m>>2]|0)>0){k=0;while(1){w=(c[e>>2]|0)+(k<<4)|0;l=(c[a>>2]|0)+(j<<4)|0;c[w>>2]=c[l>>2];c[w+4>>2]=c[l+4>>2];c[w+8>>2]=c[l+8>>2];c[w+12>>2]=c[l+12>>2];k=k+1|0;if((k|0)>=(c[m>>2]|0))break;else j=j+1|0}}v=+h[p+(f<<3)>>3];Rs(o,(c[a>>2]|0)+(n<<4)|0,3,(b-(g-v))/v,(c[d>>2]|0)+(n<<4)|0,c[e>>2]|0);pB(p)}i=q;return}function wp(b,d){b=b|0;d=d|0;var e=0;e=1;a:while(1){switch(a[b>>0]|0){case 0:{b=e;break a}case 58:{e=e+1|0;break}default:{}}b=b+1|0}e=_((pA(d)|0)+1|0,b)|0;if((c[13350]|0)<(e|0)){e=e+10|0;c[13350]=e;e=rB(c[13351]|0,e)|0;c[13351]=e}else e=c[13351]|0;mA(e,d)|0;b=b+-1|0;e=c[13351]|0;if(b)do{e=e+(pA(e)|0)|0;a[e>>0]=58;a[e+1>>0]=0;iA(c[13351]|0,d)|0;b=b+-1|0;e=c[13351]|0}while((b|0)!=0);return e|0}function xp(a,b,c){a=+a;b=+b;c=+c;return +((1.0-a/b)*c*.5)}function yp(a,b,c){a=+a;b=+b;c=+c;return +(c*.5)}function zp(a,b,c){a=+a;b=+b;c=+c;return +(a/b*c*.5)}function Ap(a,b,c){a=+a;b=+b;c=+c;b=a/b;return +((!(b<=.5)?1.0-b:b)*c)}function Bp(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,l=0.0,m=0;j=c[a+16>>2]|0;if(!(e<<24>>24))f=c[j+208>>2]|0;if(!(g<<24>>24==0?((f|0)==0?(b[j+260>>1]&1)==0:0):0))i=5;if((i|0)==5?(k=+h[d>>3],l=+h[d+8>>3],m=c[a+152>>2]|0,(m&4259840|0)!=0):0){e=m&131072;i=e>>>16^2;c[j+264>>2]=i;f=j+268|0;c[f>>2]=i+2;j=j+272|0;pB(c[j>>2]|0);f=$p(c[f>>2]<<4)|0;c[j>>2]=f;h[f>>3]=k+-3.0;h[f+8>>3]=l+-3.0;h[f+16>>3]=k+3.0;h[f+24>>3]=l+3.0;if(!(m&8192))vu(a,f,f,2)|0;if(!e)Fp(f)}return}function Cp(b,d,e,f,g,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0;x=i;i=i+96|0;u=x+72|0;p=x+64|0;w=x+16|0;v=x;q=c[b+152>>2]|0;if((d|0)!=0?(a[d+81>>0]|0)!=0:0){if(!l)t=0;else{n=$p((pA(l)|0)+11|0)|0;switch(e|0){case 11:{o=124829;break}case 7:{o=125411;break}case 6:{o=125421;break}default:Ia(161945,123382,2730,124713)}c[p>>2]=l;c[p+4>>2]=o;Oz(n,124729,p)|0;t=n}r=b+16|0;p=(c[r>>2]|0)+12|0;s=c[p>>2]|0;c[p>>2]=e;p=(f|0)!=0|(g|0)!=0;o=(q&4|0)==0;if(p&o){Dp(b,d);Mu(b,g,j,k,t)}Tp(b,e,d);if(m){n=c[d>>2]|0;l=a[n>>0]|0;a:do if(l<<24>>24){while(1){if(!(Zx(l&255)|0))break;n=n+1|0;l=a[n>>0]|0;if(!(l<<24>>24))break a}if(a[n>>0]|0){z=+h[d+24>>3];q=d+56|0;A=z*.5+ +h[q>>3];y=+h[d+64>>3]-+h[d+32>>3]*.5;h[w>>3]=A;h[w+8>>3]=y;h[w+16>>3]=A-z;h[w+24>>3]=y;e=w+32|0;c[u>>2]=c[q>>2];c[u+4>>2]=c[q+4>>2];c[u+8>>2]=c[q+8>>2];c[u+12>>2]=c[q+12>>2];Ws(v,m,u);c[e>>2]=c[v>>2];c[e+4>>2]=c[v+4>>2];c[e+8>>2]=c[v+8>>2];c[e+12>>2]=c[v+12>>2];Uu(b,c[(c[b>>2]|0)+336>>2]|0);Ru(b,c[d+8>>2]|0);Zu(b,w,3)}}while(0)}if(p){if(!o){Dp(b,d);Mu(b,g,j,k,t)}Nu(b)}if(t)pB(t);c[(c[r>>2]|0)+12>>2]=s}i=x;return}function Dp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840){f=e&131072;c[d+264>>2]=f>>>16^2;i=d+268|0;c[i>>2]=(f>>>16^2)+2;j=d+272|0;pB(c[j>>2]|0);d=$p(c[i>>2]<<4)|0;c[j>>2]=d;j=b+56|0;i=b+24|0;h[d>>3]=+h[j>>3]-+h[i>>3]*.5;g=b+64|0;b=b+32|0;h[d+8>>3]=+h[g>>3]-+h[b>>3]*.5;h[d+16>>3]=+h[j>>3]+ +h[i>>3]*.5;h[d+24>>3]=+h[g>>3]+ +h[b>>3]*.5;if(!(e&8192))vu(a,d,d,2)|0;if(!f)Fp(d)}return}function Ep(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;q=+h[a>>3];r=+h[c>>3];j=!(q>=r);if((!j?q<=+h[c+16>>3]:0)?(e=+h[a+8>>3],e>=+h[c+8>>3]):0)i=e<=+h[c+24>>3];else i=0;e=+h[b>>3];if((e>=r?e<=+h[c+16>>3]:0)?(f=+h[b+8>>3],f>=+h[c+8>>3]):0){d=f<=+h[c+24>>3];if(!(i^d))if(i&d)d=1;else l=11;else d=0}else if(i)d=0;else l=11;a:do if((l|0)==11){p=+h[a+8>>3];do if(q==e){r=+h[c+8>>3];if(!(j|p>=r^+h[b+8>>3]>=r^1)?q<=+h[c+16>>3]:0){d=0;break a}}else{k=+h[b+8>>3];if(p==k){if(!(q>=r^e>=r))break;if(!(p>=+h[c+8>>3]))break;if(!(p<=+h[c+24>>3]))break;else{d=0;break a}}o=(k-p)/(e-q);l=q<e;g=l?q:e;e=l?e:q;f=p+o*(r-q);m=+h[c+8>>3];if(!(!(r>=g)|!(r<=e)|!(f>=m))?f<=+h[c+24>>3]:0){d=0;break a}n=+h[c+16>>3];f=f+o*(n-r);if(f>=m?!(!(n<=e)|(n>=g?!(f<=+h[c+24>>3]):1)):0){d=0;break a}l=p<k;g=l?p:k;f=l?k:p;e=q+(m-p)/o;if(!(!(m<=f)|(!(m>=g)|(!(e>=r)|!(e<=n))))){d=0;break a}p=+h[c+24>>3];q=e+(p-m)/o;if(!(!(p<=f)|(!(p>=g)|(!(q>=r)|!(q<=n))))){d=0;break a}}while(0);d=-1}while(0);return d|0}function Fp(a){a=a|0;var b=0,c=0.0;b=a+16|0;c=+h[b>>3];h[a+32>>3]=c;h[a+48>>3]=c;h[a+40>>3]=+h[a+24>>3];h[a+56>>3]=+h[a+8>>3];h[b>>3]=+h[a>>3];return}function Gp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;e=+h[b>>3];f=b+8|0;g=+h[f>>3];a:do switch(d|0){case 0:{k=10;break}case 90:{h[b>>3]=g;h[f>>3]=-e;k=10;break}case 180:{h[b>>3]=e;h[f>>3]=-g;k=10;break}case 270:{h[b>>3]=g;h[f>>3]=e;k=10;break}default:{if((d|0)<0){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Hp(a,j,0-d|0);break a}if((d|0)>360){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Gp(a,j,(d|0)%360|0);break a}else{c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Kp(a,j,d);break a}}}while(0);if((k|0)==10){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}i=l;return}function Hp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;e=+h[b>>3];f=b+8|0;g=+h[f>>3];a:do switch(d|0){case 0:{k=10;break}case 90:{h[b>>3]=-g;h[f>>3]=e;k=10;break}case 180:{h[b>>3]=e;h[f>>3]=-g;k=10;break}case 270:{h[b>>3]=g;h[f>>3]=e;k=10;break}default:{if((d|0)<0){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Gp(a,j,0-d|0);break a}if((d|0)>360){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Hp(a,j,(d|0)%360|0);break a}else{c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Kp(a,j,360-d|0);break a}}}while(0);if((k|0)==10){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}i=l;return}function Ip(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;g=+h[c>>3];d=+h[c+8>>3];f=+h[b>>3]+d;e=+h[b+24>>3]+g;d=+h[b+16>>3]+d;h[a>>3]=+h[b+8>>3]+g;h[a+8>>3]=f;h[a+16>>3]=e;h[a+24>>3]=d;return}function Jp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;d=+h[a>>3];f=+h[b>>3]-d;g=+h[a+8>>3];e=+h[b+8>>3]-g;d=f*(+h[c+8>>3]-g)-e*(+h[c>>3]-d);d=d*d;if(d<1.0e-10)d=0.0;else d=d/(f*f+e*e);return +d}function Kp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;if((c[13353]|0)!=(d|0)){Py(+(d|0)/6.283185307179586,33648,33656);c[13353]=d}f=+h[b>>3];i=+h[4207];g=+h[b+8>>3];e=+h[4206];h[a>>3]=f*i-g*e;h[a+8>>3]=i*g+f*e;return}function Lp(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;k=p+16|0;g=p+8|0;l=p;e=$p(96)|0;o=b+16|0;c[(c[o>>2]|0)+8>>2]=e;e=zj(b,124839)|0;if(!e){e=Za(124848)|0;if(e)j=3}else j=3;if((j|0)==3)Ha(124860,e|0,1)|0;e=Js(b,rj(b,0,124871,0)|0,124879)|0;if(((((((hA(e,124885)|0)!=0?(hA(e,124893)|0)!=0:0)?(hA(e,124900)|0)!=0:0)?(hA(e,124903)|0)!=0:0)?(hA(e,124914)|0)!=0:0)?(hA(e,124925)|0)!=0:0)?(hA(e,124935)|0)!=0:0)if((hA(e,124946)|0)!=0?(hA(e,124952)|0)!=0:0)if((hA(e,124879)|0)!=0?(hA(e,124957)|0)!=0:0){c[g>>2]=e;dj(0,124962,g)|0;e=0}else e=0;else e=2;else e=1;a[(c[o>>2]|0)+115>>0]=e;if((c[13357]|0)==0?(j=zj(b,125005)|0,c[13356]=j,(j|0)==0):0)c[13356]=c[13355];f=+Hs(b,rj(b,0,125015,0)|0,0.0,0.0);h[c[(c[o>>2]|0)+8>>2]>>3]=f;e=zj(b,125023)|0;a:do if(!e)g=0;else{switch(a[e>>0]|0){case 76:{if(!(lA(e,125031)|0)){g=1;break a}break}case 66:{if(!(lA(e,125034)|0)){g=2;break a}break}case 82:{g=(lA(e,125037)|0)==0;g=g?3:0;break a}default:{g=0;break a}}g=0}while(0);e=g<<2;if(!(d<<24>>24))c[(c[o>>2]|0)+116>>2]=e;else c[(c[o>>2]|0)+116>>2]=e|g;f=+Hs(b,rj(b,0,125040,0)|0,.25,.02);h[l>>3]=f;f=f*72.0;c[(c[o>>2]|0)+248>>2]=~~(f+(f>=0.0?.5:-.5));e=Is(b,rj(b,0,125048,0)|0,0)|0;if(e){c[k>>2]=l;if(Pz(e,124835,k)|0){f=+h[l>>3];if(f<.02){h[l>>3]=.02;f=.02}}else{h[l>>3]=.5;f=.5}if(wA(e,125056)|0)a[(c[o>>2]|0)+276>>0]=1}else{h[l>>3]=.5;f=.5}f=f*72.0;c[(c[o>>2]|0)+252>>2]=~~(f+(f>=0.0?.5:-.5));e=(Gs(b,rj(b,0,125064,0)|0,0,0)|0)&255;a[(c[o>>2]|0)+243>>0]=e;e=Us(Is(b,rj(b,0,125074,0)|0,0)|0,53812,53828)|0;c[(c[o>>2]|0)+244>>2]=e;e=zj(b,125084)|0;b:do if((e|0)!=0?(m=a[e>>0]|0,m<<24>>24!=0):0)switch(m<<24>>24|0){case 97:{if(m<<24>>24!=97)break b;if(lA(e,125090)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=4;break b}case 99:{if(m<<24>>24!=99)break b;if(lA(e,125095)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=3;break b}case 101:{if(m<<24>>24!=101)break b;if(lA(e,125104)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=5;break b}case 102:{if(m<<24>>24!=102)break b;if(lA(e,125111)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=2;break b}default:{f=+Xz(e);if(!(f>0.0))break b;m=c[(c[o>>2]|0)+8>>2]|0;c[m+84>>2]=1;h[m+16>>3]=f;break b}}while(0);m=Op(b,125116,(c[(c[o>>2]|0)+8>>2]|0)+64|0)|0;e=c[(c[o>>2]|0)+8>>2]|0;a[e+80>>0]=m;Op(b,125121,e+48|0)|0;e=Ls(zj(b,125126)|0)|0;a[(c[(c[o>>2]|0)+8>>2]|0)+82>>0]=e;e=zj(b,125133)|0;do if(!e){e=zj(b,125140)|0;if(e){m=a[e>>0]|0;a[(c[(c[o>>2]|0)+8>>2]|0)+81>>0]=m<<24>>24==108?1:m<<24>>24==76&1;break}e=zj(b,125152)|0;if(e){m=Ls(e)|0;a[(c[(c[o>>2]|0)+8>>2]|0)+81>>0]=m}}else{m=(Yz(e)|0)==90&1;a[(c[(c[o>>2]|0)+8>>2]|0)+81>>0]=m}while(0);c[13360]=Us(zj(b,125162)|0,53844,53860)|0;a[124828]=Ls(zj(b,125174)|0)|0;c[13362]=0;c[13363]=0;h[(c[(c[o>>2]|0)+8>>2]|0)+24>>3]=0.0;e=zj(b,125186)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0)j=63;else j=61;if(((j|0)==61?(n=zj(b,125190)|0,(n|0)!=0):0)?(a[n>>0]|0)!=0:0){e=n;j=63}if((j|0)==63){f=+Xz(e);h[(c[(c[o>>2]|0)+8>>2]|0)+24>>3]=f}Mp(b);h[4208]=1.e+37;c[13371]=rj(b,0,125201,0)|0;c[13374]=rj(b,0,125210,0)|0;c[13375]=rj(b,0,129972,0)|0;c[13376]=rj(b,1,134586,0)|0;c[13377]=rj(b,1,134580,0)|0;c[13378]=rj(b,1,130096,0)|0;c[13379]=rj(b,1,161159,0)|0;c[13380]=rj(b,1,125224,0)|0;c[13396]=rj(b,1,125234,0)|0;c[13389]=rj(b,1,125240,0)|0;c[13390]=rj(b,1,125249,0)|0;c[13391]=rj(b,1,125258,0)|0;n=rj(b,1,124829,0)|0;c[13393]=n;if(!n)c[13393]=rj(b,1,124829,129969)|0;c[13394]=rj(b,1,125268,0)|0;c[13397]=rj(b,1,125064,0)|0;c[13411]=rj(b,1,125275,0)|0;c[13400]=rj(b,1,125201,0)|0;c[13392]=rj(b,1,129972,0)|0;c[13398]=rj(b,1,125284,0)|0;c[13399]=rj(b,1,125290,0)|0;c[13402]=rj(b,1,125302,0)|0;c[13401]=rj(b,1,125140,0)|0;c[13403]=rj(b,1,125307,0)|0;c[13404]=rj(b,1,125318,0)|0;c[13405]=rj(b,1,160729,0)|0;c[13395]=rj(b,1,125328,0)|0;c[13406]=rj(b,1,125338,0)|0;c[13407]=rj(b,1,125344,0)|0;c[13408]=rj(b,1,125350,0)|0;c[13409]=rj(b,1,125358,0)|0;c[13410]=rj(b,1,125367,0)|0;c[13412]=rj(b,1,125210,0)|0;c[13413]=rj(b,2,125369,0)|0;c[13415]=rj(b,2,161159,0)|0;c[13416]=rj(b,2,125224,0)|0;c[13425]=rj(b,2,125240,0)|0;c[13426]=rj(b,2,125249,0)|0;c[13427]=rj(b,2,125258,0)|0;c[13428]=rj(b,2,124829,0)|0;c[13429]=rj(b,2,125268,0)|0;c[13438]=rj(b,2,125376,0)|0;c[13430]=rj(b,2,125387,0)|0;c[13441]=rj(b,2,125391,0)|0;c[13442]=rj(b,2,125401,0)|0;c[13443]=rj(b,2,125411,0)|0;c[13444]=rj(b,2,125421,0)|0;c[13445]=rj(b,2,125431,0)|0;c[13446]=rj(b,2,125445,0)|0;c[13447]=rj(b,2,125459,0)|0;c[13448]=rj(b,2,125474,0)|0;c[13449]=rj(b,2,125488,0)|0;c[13414]=rj(b,2,125499,0)|0;c[13433]=rj(b,2,125064,0)|0;c[13431]=rj(b,2,125234,0)|0;c[13432]=rj(b,2,125506,0)|0;c[13434]=rj(b,2,125515,0)|0;c[13435]=rj(b,2,125525,0)|0;c[13436]=rj(b,2,125338,0)|0;c[13437]=rj(b,2,125350,0)|0;c[13450]=rj(b,2,125536,0)|0;c[13451]=rj(b,2,125545,0)|0;c[13452]=rj(b,2,125275,0)|0;e=So(b)|0;c[(c[(c[o>>2]|0)+8>>2]|0)+88>>2]=e;e=zj(b,125554)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){b=Up(e,b)|0;c[(c[(c[o>>2]|0)+8>>2]|0)+92>>2]=b}i=p;return}function Mp(b){b=b|0;var e=0,f=0,g=0.0,i=0.0,j=0;e=zj(b,124829)|0;do if((e|0)!=0?(a[e>>0]|0)!=0:0){f=(c[(c[b+60>>2]|0)+16>>2]|0)+113|0;a[f>>0]=d[f>>0]|8;f=(Ll(e)|0)!=0;i=+Hs(b,rj(b,0,125240,0)|0,14.0,1.0);j=Js(b,rj(b,0,125249,0)|0,131608)|0;e=Qp(b,e,f?2:0,i,j,Js(b,rj(b,0,125258,0)|0,160746)|0)|0;j=b+16|0;c[(c[j>>2]|0)+12>>2]=e;e=zj(b,130087)|0;f=(e|0)!=0;do if((hl(b)|0)==(b|0)){if(f?(a[e>>0]|0)==116:0){e=1;break}e=0}else{if(f?(a[e>>0]|0)==98:0){e=0;break}e=1}while(0);f=zj(b,125557)|0;a:do if(f)switch(a[f>>0]|0){case 108:{e=(e&255|2)&255;break a}case 114:{e=(e&255|4)&255;break a}default:break a}while(0);a[(c[j>>2]|0)+275>>0]=e;if((hl(b)|0)!=(b|0)){e=c[(c[j>>2]|0)+12>>2]|0;g=+h[e+24>>3]+16.0;i=+h[e+32>>3]+8.0;b=(c[(c[(hl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;e=c[j>>2]|0;f=(a[e+275>>0]&1)<<1;if(b){h[e+48+(f<<4)>>3]=g;h[e+48+(f<<4)+8>>3]=i;break}else{b=f^3;h[e+48+(b<<4)>>3]=i;h[e+48+(b<<4)+8>>3]=g;break}}}while(0);return}function Np(a){a=a|0;var b=0,d=0,e=0,f=0;f=a+16|0;b=c[f>>2]|0;d=c[b+8>>2]|0;do if(d){e=c[d+88>>2]|0;if(e){uo(e);b=c[f>>2]|0;d=c[b+8>>2]|0;if(!d)break}d=c[d+92>>2]|0;if(d){pB(d);b=c[f>>2]|0}}while(0);pB(c[b+8>>2]|0);f=c[f>>2]|0;c[f+8>>2]=0;Sp(c[f+12>>2]|0);Al(a,0,160878);return}function Op(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;l=o+32|0;j=o+16|0;m=o+8|0;k=o;n=o+40|0;a[n>>0]=0;b=zj(b,d)|0;do if(b){c[j>>2]=m;c[j+4>>2]=k;c[j+8>>2]=n;j=(Pz(b,125580,j)|0)>1;g=+h[m>>3];f=+h[k>>3];if(j&g>0.0&f>0.0){g=g*72.0;h[e>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);g=f*72.0;h[e+8>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);b=(a[n>>0]|0)==33&1;break}a[n>>0]=0;c[l>>2]=m;c[l+4>>2]=n;l=(Pz(b,125590,l)|0)>0;f=+h[m>>3];if(l&f>0.0){g=f*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0);h[e>>3]=g;h[e+8>>3]=g;i=o;return (a[n>>0]|0)==33|0}else b=0}else b=0;while(0);i=o;return b|0}function Pp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[d>>2]|0;l=d+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;if(a[e>>0]|0){h=aq((pA(e)|0)+1|0)|0;a[h>>0]=0;f=a[e>>0]|0;if(f<<24>>24){k=d+12|0;g=e;j=h;e=h;a:while(1){i=e;b:while(1){h=g+1|0;if(!(f<<24>>24==-1|((f&255)<161|(c[k>>2]|0)!=2))){a[i>>0]=f;h=a[h>>0]|0;e=i+2|0;a[i+1>>0]=h;if(!(h<<24>>24)){f=j;break a}else g=g+2|0}else{switch(f<<24>>24){case 92:{f=8;break b}case 10:{g=h;e=i;f=12;break b}default:{}}a[i>>0]=f;e=i+1|0;g=h}f=a[g>>0]|0;if(!(f<<24>>24)){f=j;break a}else i=e}if((f|0)==8){e=a[h>>0]|0;switch(e<<24>>24|0){case 114:case 108:case 110:{e=i+1|0;a[i>>0]=0;Yp(b,d,j,a[h>>0]|0);f=e;break}default:{a[i>>0]=e;f=j;e=i+1|0}}i=f;g=(a[h>>0]|0)==0?h:g+2|0}else if((f|0)==12){h=e+1|0;a[e>>0]=0;Yp(b,d,j,110);i=h;e=h}f=a[g>>0]|0;if(!(f<<24>>24)){f=i;break}else j=i}if((f|0)!=(e|0)){a[e>>0]=0;Yp(b,d,f,110)}}d=d+40|0;c[d>>2]=c[l>>2];c[d+4>>2]=c[l+4>>2];c[d+8>>2]=c[l+8>>2];c[d+12>>2]=c[l+12>>2]}return}function Qp(b,e,f,g,j,k){b=b|0;e=e|0;f=f|0;g=+g;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+32|0;r=u+16|0;q=u+8|0;p=u;t=$p(88)|0;switch(rl(b)|0){case 0:{m=0;s=c[b+60>>2]|0;n=0;o=b;break}case 1:{m=0;s=hl(gl(b)|0)|0;n=b;o=0;break}case 2:{m=b;s=hl(gl(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)|0;n=0;o=0;break}default:{m=0;s=0;n=0;o=0}}c[t+4>>2]=j;c[t+8>>2]=k;h[t+16>>3]=g;l=s+16|0;j=t+12|0;c[j>>2]=d[(c[l>>2]|0)+115>>0];a:do if(f&4){c[t>>2]=oA(e)|0;if(f&2)a[t+82>>0]=1}else switch(f|0){case 2:{c[t>>2]=oA(e)|0;a[t+82>>0]=1;if(!($v(b,t)|0))break a;switch(rl(b)|0){case 0:{c[p>>2]=ok(o)|0;dj(3,125606,p)|0;break a}case 1:{c[q>>2]=ok(n)|0;dj(3,125628,q)|0;break a}case 2:{p=ok(c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0)|0;q=(hk(s)|0)!=0;s=ok(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)|0;c[r>>2]=p;c[r+4>>2]=q?160891:160894;c[r+8>>2]=s;dj(3,125649,r)|0;break a}default:break a}}case 0:{k=Zp(e,b,0)|0;c[t>>2]=k;if((c[j>>2]|0)==1)k=gt(k)|0;else k=ft(k,s)|0;pB(c[t>>2]|0);c[t>>2]=k;Pp(c[(c[l>>2]|0)+144>>2]|0,t);break a}default:Ia(125676,125692,166,125701)}while(0);i=u;return t|0}function Rp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if(a){if((b|0)>0){g=0;h=a;while(1){if((g|0)==0?(d=c[h>>2]|0,(d|0)!=0):0)pB(d);e=c[h+8>>2]|0;if((e|0)!=0?(f=c[h+12>>2]|0,(f|0)!=0):0)zb[f&127](e);g=g+1|0;if((g|0)==(b|0))break;else h=h+56|0}}pB(a)}return}function Sp(d){d=d|0;var e=0;if(d){pB(c[d>>2]|0);e=d+72|0;if(a[d+82>>0]|0){e=c[e>>2]|0;if(e)Uv(e,1)}else Rp(c[e>>2]|0,b[d+76>>1]|0);pB(d)}return}function Tp(d,e,f){d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+32|0;s=t+16|0;r=t;k=c[d+16>>2]|0;p=k+12|0;q=c[p>>2]|0;c[p>>2]=e;if(!(a[f+82>>0]|0)){o=f+76|0;if((b[o>>1]|0)>=1){Ou(d,0);Ru(d,c[f+8>>2]|0);switch(a[f+80>>0]|0){case 116:{j=+h[f+64>>3];g=j+ +h[f+48>>3]*.5-+h[f+16>>3];h[r+8>>3]=g;break}case 98:{j=+h[f+64>>3];g=+h[f+32>>3]+(j-+h[f+48>>3]*.5)-+h[f+16>>3];h[r+8>>3]=g;break}default:{j=+h[f+64>>3];g=j+ +h[f+32>>3]*.5-+h[f+16>>3];h[r+8>>3]=g}}if(b[k+260>>1]&512)h[r+8>>3]=g-j;a:do if((b[o>>1]|0)>0){l=f+72|0;m=f+56|0;n=r+8|0;e=f+40|0;k=c[l>>2]|0;f=0;while(1){switch(a[k+(f*56|0)+48>>0]|0){case 108:{h[r>>3]=+h[m>>3]-+h[e>>3]*.5;break}case 114:{h[r>>3]=+h[m>>3]+ +h[e>>3]*.5;break}default:h[r>>3]=+h[m>>3]}c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Qu(d,s,k+(f*56|0)|0);k=c[l>>2]|0;h[n>>3]=+h[n>>3]-+h[k+(f*56|0)+40>>3];f=f+1|0;if((f|0)>=(b[o>>1]|0))break a}}while(0);Pu(d);c[p>>2]=q}}else{Rv(d,c[f+72>>2]|0,f);c[p>>2]=q}i=t;return}function Up(a,b){a=a|0;b=b|0;return Zp(a,b,1)|0}function Vp(a){a=a|0;return Wp(a,0)|0}function Wp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=c[13469]|0;if(!e){c[13470]=64;e=aq(64)|0;c[13469]=e}a:do if((b|0)!=0?(j=d<<24>>24==0,f=a[b>>0]|0,f<<24>>24!=0):0){i=0;g=0;while(1){d=c[13470]|0;if((i|0)>(d+-8|0)){e=d<<1;c[13470]=e;e=cq(c[13469]|0,e)|0;c[13469]=e;d=a[b>>0]|0;e=e+i|0}else d=f;b:do switch(d<<24>>24){case 38:{if(j?(_p(b)|0)!=0:0)k=17;else{f=5;d=125738}break}case 60:{f=4;d=125761;break}case 62:{f=4;d=125756;break}case 45:{f=5;d=125750;break}default:{if((g|0)!=0&d<<24>>24==32?(a[g>>0]|0)==32:0){f=6;d=125731;break b}switch(d<<24>>24){case 34:{f=6;d=125724;break b}case 39:{f=5;d=125744;break b}case 10:if(j){k=17;break b}else{f=5;d=125718;break b}default:{k=17;break b}}}}while(0);if((k|0)==17){k=0;d=j|d<<24>>24!=13;f=d?1:5;d=d?b:125712}i=f+i|0;g=f;h=e;while(1){g=g+-1|0;a[h>>0]=a[d>>0]|0;if(!g)break;else{h=h+1|0;d=d+1|0}}e=e+f|0;d=b+1|0;f=a[d>>0]|0;if(!(f<<24>>24))break a;else{g=b;b=d}}}while(0);a[e>>0]=0;return c[13469]|0}function Xp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[13471]|0;if(!d){c[13472]=64;d=aq(64)|0;c[13471]=d}a:do if((b|0)!=0?(e=a[b>>0]|0,e<<24>>24!=0):0){i=0;while(1){f=c[13472]|0;if((i|0)>(f+-8|0)){d=f<<1;c[13472]=d;d=cq(c[13471]|0,d)|0;c[13471]=d;e=a[b>>0]|0;d=d+i|0}switch(e<<24>>24){case 38:{if(!(_p(b)|0)){f=5;e=125738}else j=12;break}case 60:{f=4;e=125761;break}case 62:{f=4;e=125756;break}case 34:{f=6;e=125724;break}case 39:{f=5;e=125744;break}default:j=12}if((j|0)==12){j=0;f=1;e=b}i=f+i|0;g=f;h=d;while(1){g=g+-1|0;a[h>>0]=a[e>>0]|0;if(!g)break;else{h=h+1|0;e=e+1|0}}d=d+f|0;b=b+1|0;e=a[b>>0]|0;if(!(e<<24>>24))break a}}while(0);a[d>>0]=0;return c[13471]|0}function Yp(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=i;i=i+16|0;p=r;q=e+76|0;k=b[q>>1]|0;n=e+72|0;m=c[n>>2]|0;if(!m)o=$p((k*56|0)+112|0)|0;else o=bq(m,k+2|0,56,k+1|0)|0;c[n>>2]=o;k=b[q>>1]|0;m=k<<16>>16;n=o+(m*56|0)|0;c[n>>2]=f;a[o+(m*56|0)+48>>0]=g;if((f|0)!=0?(a[f>>0]|0)!=0:0){c[8418]=c[e+4>>2];h[4211]=+h[e+16>>3];k=c[d+144>>2]|0;c[o+(m*56|0)+4>>2]=ub[c[k>>2]&31](k,33672,1)|0;us(p,d,n);k=b[q>>1]|0;l=+h[p>>3];j=+h[p+8>>3]}else{j=+(~~(+h[e+16>>3]*1.2)|0);h[o+(m*56|0)+40>>3]=j;l=0.0}b[q>>1]=k+1<<16>>16;q=e+24|0;s=+h[q>>3];h[q>>3]=s>l?s:l;e=e+32|0;h[e>>3]=j+ +h[e>>3];i=r;return}function Zp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;switch(rl(d)|0){case 0:{h=ok(d)|0;g=pA(h)|0;f=c[(c[d+16>>2]|0)+12>>2]|0;if(f){f=c[f>>2]|0;if(!b){v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=f;i=2;j=129969;d=2;q=125778;o=0;r=164137}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=pA(f)|0;w=f;i=2;j=129969;d=2;q=125778;o=0;r=164137}}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=125766;i=2;j=129969;d=2;q=125778;o=0;r=164137}break}case 1:{h=ok(gl(d)|0)|0;g=pA(h)|0;j=ok(d)|0;i=pA(j)|0;f=c[(c[d+16>>2]|0)+104>>2]|0;if(f){f=c[f>>2]|0;if(!b){v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=f;d=2;q=125778;o=0;r=164137}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=pA(f)|0;w=f;d=2;q=125778;o=0;r=164137}}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=125766;d=2;q=125778;o=0;r=164137}break}case 2:{i=d+48|0;h=ok(hl(gl(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0)|0;g=pA(h)|0;q=ok(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0;p=pA(q)|0;f=d+16|0;r=c[(c[f>>2]|0)+52>>2]|0;if(!r)o=0;else o=pA(r)|0;k=ok(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;f=c[f>>2]|0;m=c[f+92>>2]|0;if(!m)l=0;else l=pA(m)|0;j=pA(k)|0;f=c[f+96>>2]|0;if(f){f=c[f>>2]|0;if(!b)n=2;else n=pA(f)|0}else{n=2;f=125766}y=(hk(hl(gl(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0)|0)==0;v=p+2+((o|0)!=0?o+1|0:0)+j+((l|0)!=0?l+1|0:0)|0;y=y?160894:160891;t=j;x=k;u=l;s=1;w=f;i=2;j=129969;d=p;break}default:{v=2;y=125772;g=2;h=125769;t=2;x=125775;u=0;m=164137;s=0;n=2;w=125766;i=2;j=129969;d=2;q=125778;o=0;r=164137}}p=(e|0)==0;f=0;k=b;a:while(1){l=k+1|0;switch(a[k>>0]|0){case 0:break a;case 92:break;default:{f=f+1|0;k=l;continue a}}k=k+2|0;switch(a[l>>0]|0){case 71:{f=f+g|0;continue a}case 78:{f=f+i|0;continue a}case 69:{f=f+v|0;continue a}case 72:{f=f+t|0;continue a}case 84:{f=f+d|0;continue a}case 76:{f=f+n|0;continue a}case 92:{if(!p){f=f+1|0;continue a}break}default:{}}f=f+2|0}d=aq(f+1|0)|0;n=(s|0)==0;l=(o|0)==0;k=(u|0)==0;f=d;b:while(1){i=b+1|0;g=a[b>>0]|0;switch(g<<24>>24){case 0:break b;case 92:break;default:{a[f>>0]=g;f=f+1|0;b=i;continue b}}b=b+2|0;g=a[i>>0]|0;switch(g<<24>>24|0){case 71:{e=a[h>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=h;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 78:{e=a[j>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=j;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 69:{if(n){e=f;f=e;continue b}e=a[q>>0]|0;a[f>>0]=e;if(e<<24>>24){g=q;do{g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e}while(e<<24>>24!=0)}if(!l){a[f>>0]=58;g=r;while(1){f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))break;else g=g+1|0}}e=a[y>>0]|0;a[f>>0]=e;if(e<<24>>24){g=y;do{g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e}while(e<<24>>24!=0)}e=a[x>>0]|0;a[f>>0]=e;if(e<<24>>24){g=x;do{g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e}while(e<<24>>24!=0)}if(k)continue b;a[f>>0]=58;g=m;while(1){f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b;else g=g+1|0}}case 84:{e=a[q>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=q;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 72:{e=a[x>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=x;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 76:{e=a[w>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=w;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 92:{if(!p){a[f>>0]=92;f=f+1|0;continue b}break}default:{}}a[f>>0]=92;a[f+1>>0]=g;f=f+2|0}a[f>>0]=0;return d|0}function _p(b){b=b|0;var c=0;c=a[b+1>>0]|0;a:do if(c<<24>>24!=35){if(((c&-33)+-65&255)<26){b=b+2|0;while(1){c=a[b>>0]|0;if(((c&-33)+-65&255)<26)b=b+1|0;else break}}}else{c=a[b+2>>0]|0;switch(c<<24>>24){case 88:case 120:break;default:{if((c+-48&255)>=10)break a;b=b+3|0;while(1){c=a[b>>0]|0;if((c+-48&255)<10)b=b+1|0;else break a}}}b=b+3|0;while(1){c=a[b>>0]|0;if((c+-48&255)>=10)switch(c<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break a}b=b+1|0}}while(0);return c<<24>>24==59|0}function $p(a){a=a|0;var b=0;if(!a)a=0;else{b=aq(a)|0;CB(b|0,0,a|0)|0;a=b}return a|0}function aq(a){a=a|0;if(a){a=oB(a)|0;if(!a){Mz(134974,14,1,c[22667]|0)|0;a=0}}else a=0;return a|0}function bq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=rB(a,_(d,b)|0)|0;if(!((b|0)!=0&(a|0)==0)){if(b>>>0>e>>>0)CB(a+(_(e,d)|0)|0,0,_(b-e|0,d)|0)|0}else Mz(134974,14,1,c[22667]|0)|0;return a|0}function cq(a,b){a=a|0;b=b|0;a=rB(a,b)|0;if((b|0)!=0&(a|0)==0)Mz(134974,14,1,c[22667]|0)|0;return a|0}function dq(b,d,f,g){b=b|0;d=d|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;F=i;i=i+96|0;z=F+64|0;y=F+56|0;B=F+48|0;A=F+40|0;v=F+32|0;u=F+24|0;r=F;D=4;E=oB(40)|0;c[E>>2]=0;s=b+16|0;if(a[124827]|0){j=c[(c[s>>2]|0)+192>>2]|0;if(!j){k=0;j=0}else{k=0;l=0;do{l=l+1|0;q=c[j+16>>2]|0;j=c[q+180>>2]|0;if(c[j>>2]|0){m=0;do{k=k+1|0;m=m+1|0}while((c[j+(m<<2)>>2]|0)!=0)}j=c[q+164>>2]|0}while((j|0)!=0);j=l}x=c[22667]|0;n=0;c[r>>2]=125825;c[r+4>>2]=j;c[r+8>>2]=k;c[r+12>>2]=f;c[r+16>>2]=d;da(13,x|0,125781,r|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)!=1){n=0;qa(1);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)!=1)x=9;else{j=C;x=68}}else{j=C;x=68}}else x=9;a:do if((x|0)==9){c[13473]=b;c[13474]=0;c[13475]=0;c[13476]=0;j=c[(c[s>>2]|0)+192>>2]|0;if(!j)j=0;else{q=0;k=0;do{m=c[j+16>>2]|0;a[m+157>>0]=0;q=q+1|0;c[13476]=q;l=c[m+180>>2]|0;if(c[l>>2]|0){j=0;do{k=k+1|0;j=j+1|0}while((c[l+(j<<2)>>2]|0)!=0);c[13475]=k}j=c[m+164>>2]|0}while((j|0)!=0);j=q<<2}k=c[13477]|0;if(!k){n=0;j=na(18,j|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}else{n=0;j=ua(27,k|0,j|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}c[13477]=j;c[13478]=0;j=c[13479]|0;if(!j){n=0;j=na(18,c[13476]<<2|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}else{n=0;j=ua(27,j|0,c[13476]<<2|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}c[13479]=j;c[13480]=0;j=c[(c[s>>2]|0)+192>>2]|0;if(j){l=1;while(1){b=j+16|0;r=c[b>>2]|0;q=r+292|0;c[q>>2]=0;r=c[r+172>>2]|0;j=c[r>>2]|0;if(!j){m=l;j=0}else{m=j;j=0;while(1){j=j+1|0;c[q>>2]=j;k=c[m+16>>2]|0;c[k+160>>2]=0;c[k+164>>2]=-1;if(!l)k=0;else{w=c[m>>2]&3;k=((c[(c[(c[((w|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((w|0)==3?m:m+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)<(e[k+170>>1]|0)?0:l}m=c[r+(j<<2)>>2]|0;if(!m){m=k;break}else l=k}}n=0;j=na(19,(j<<2)+4|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}k=c[b>>2]|0;c[k+264>>2]=j;c[k+268>>2]=0;j=c[k+180>>2]|0;k=0;do{w=k;k=k+1|0}while((c[j+(w<<2)>>2]|0)!=0);n=0;j=na(19,k<<2|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}w=c[b>>2]|0;c[w+272>>2]=j;c[w+276>>2]=0;j=c[w+164>>2]|0;if(!j)break;else l=m}if(!m){n=0;t=na(20,c[13476]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(j){k=j;do{l=k+16|0;j=c[l>>2]|0;if(!(c[j+292>>2]|0)){n=0;ka(24,t|0,k|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break a}j=c[l>>2]|0}k=c[j+164>>2]|0}while((k|0)!=0)}n=0;j=na(21,t|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}if(!j)j=0;else{m=j;j=0;do{s=m+16|0;l=c[s>>2]|0;b=l+232|0;c[b>>2]=0;j=j+1|0;r=c[l+172>>2]|0;k=c[r>>2]|0;if(k){m=0;q=0;do{w=(e[(c[k+16>>2]|0)+170>>1]|0)+(c[(c[(c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;m=(m|0)>(w|0)?m:w;c[b>>2]=m;q=q+1|0;k=c[r+(q<<2)>>2]|0}while((k|0)!=0)}k=c[c[l+180>>2]>>2]|0;if(k){q=0;do{m=k+-48|0;b=(c[(c[((c[k>>2]&3|0)==2?k:m)+40>>2]|0)+16>>2]|0)+292|0;w=c[b>>2]|0;c[b>>2]=w+-1;if((w|0)<2){n=0;ka(24,t|0,c[((c[k>>2]&3|0)==2?k:m)+40>>2]|0);k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}l=c[s>>2]|0}q=q+1|0;k=c[(c[l+180>>2]|0)+(q<<2)>>2]|0}while((k|0)!=0)}n=0;m=na(21,t|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}}while((m|0)!=0)}if((j|0)!=(c[13476]|0)){n=0;da(11,1,125843,u|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(j){k=j;do{m=k+16|0;j=c[m>>2]|0;if(c[j+292>>2]|0){n=0;j=na(22,k|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}w=c[(c[m>>2]|0)+292>>2]|0;n=0;c[v>>2]=j;c[v+4>>2]=w;da(11,3,125865,v|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break a}j=c[m>>2]|0}k=c[j+164>>2]|0}while((k|0)!=0)}}n=0;ia(87,t|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}}}if((f|0)<1){n=0;qa(2);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=0;break}else{c[13481]=(g|0)>-1?g:30;E=xB(53928,1,E|0,D|0)|0;D=C;n=0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=0;x=68;break}}while(0);b:do if((x|0)==68){c:while(1){x=0;if(j){j=2;break b}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(j)do{w=c[j+16>>2]|0;c[w+280>>2]=0;j=c[w+164>>2]|0}while((j|0)!=0);n=0;w=na(19,c[13476]<<2|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(!j)k=0;else{k=0;while(1){r=j+16|0;l=c[r>>2]|0;if(!(c[l+280>>2]|0)){n=0;q=na(19,16)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue c}c[q>>2]=j;n=0;j=ua(28,j|0,q|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue c}c[q+4>>2]=j;c[q+12>>2]=q;c[w+(k<<2)>>2]=q;j=c[r>>2]|0;k=k+1|0}else j=l;j=c[j+164>>2]|0;if(!j)break}}n=0;v=na(19,8)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue}c[v>>2]=w;u=v+4|0;c[u>>2]=k;g=(k|0)>0;if(g){j=0;do{c[(c[w+(j<<2)>>2]|0)+8>>2]=j;j=j+1|0}while((j|0)!=(k|0))}d:do if((k|0)>-2){m=(k|0)/2|0;while(1){n=0;ka(25,v|0,m|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if((m|0)>0)m=m+-1|0;else break}j=c[u>>2]|0;if((j|0)>1){while(1){t=c[v>>2]|0;m=c[t>>2]|0;c[m+8>>2]=-1;j=j+-1|0;c[t>>2]=c[t+(j<<2)>>2];t=c[v>>2]|0;c[(c[t>>2]|0)+8>>2]=0;c[t+(j<<2)>>2]=m;c[u>>2]=j;n=0;ka(25,v|0,0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}n=0;s=da(14,c[m>>2]|0,0,0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}r=s+16|0;if((c[(c[r>>2]|0)+164>>2]|0)>-1){x=90;break}b=s+48|0;n=0;t=na(23,c[((c[s>>2]&3|0)==3?s:b)+40>>2]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}j=s+-48|0;n=0;q=na(23,c[((c[s>>2]&3|0)==2?s:j)+40>>2]|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue c}m=c[s>>2]&3;j=(c[(c[(c[((m|0)==2?s:j)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?s:b)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[r>>2]|0)+170>>1]|0)|0;if((c[t+8>>2]|0)==-1){n=0;pa(57,c[t>>2]|0,0,j|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}}else{n=0;pa(57,c[q>>2]|0,0,0-j|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}}n=0;ia(88,s|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}b=t;while(1){r=b+12|0;j=c[r>>2]|0;if((j|0)==0|(j|0)==(b|0))break;else b=j}while(1){m=q+12|0;j=c[m>>2]|0;if((j|0)==0|(j|0)==(q|0))break;else q=j}j=c[b+8>>2]|0;if((b|0)!=(q|0)){l=c[q+8>>2]|0;if((j|0)>-1)if((l|0)==-1)j=b;else x=109;else{if((l|0)<=-1){x=106;break}if((j|0)==-1)j=q;else x=109}if((x|0)==109){x=0;j=(c[q+4>>2]|0)<(c[b+4>>2]|0)?b:q}c[m>>2]=j;c[r>>2]=j;c[j+4>>2]=(c[q+4>>2]|0)+(c[b+4>>2]|0);j=c[j+8>>2]|0;if((j|0)<=-1){x=111;break}}n=0;ka(25,v|0,j|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}j=c[u>>2]|0;if((j|0)<=1)break d}if((x|0)==90){n=0;ta(25,125873,125887,463,125892);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue c}else if((x|0)==106){n=0;ta(25,125904,125887,327,125951);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue c}else if((x|0)==111){n=0;ta(25,125962,125887,335,125951);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue c}}}while(0);n=0;ia(89,v|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue}if(g){m=0;while(1){n=0;ia(89,c[w+(m<<2)>>2]|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}m=m+1|0;if((m|0)==(k|0))break}}n=0;ia(89,w|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}if((c[13480]|0)!=((c[13476]|0)+-1|0)){n=0;ta(25,125981,125887,523,126011);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue}n=0;da(15,c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0,0,1)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}n=0;ka(26,c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0,0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}w=c[22667]|0;g=0;while(1){s=c[13474]|0;r=c[13480]|0;e:do if((s|0)<(r|0)){b=c[13479]|0;q=s;j=0;k=0;while(1){l=c[b+(q<<2)>>2]|0;m=c[(c[l+16>>2]|0)+160>>2]|0;if((m|0)<0){if(!k)k=l;else k=(c[(c[k+16>>2]|0)+160>>2]|0)>(m|0)?l:k;j=j+1|0;if((j|0)>=(c[13481]|0)){u=k;break e}}q=q+1|0;c[13474]=q;if((q|0)>=(r|0)){x=131;break}}}else{j=0;k=0;x=131}while(0);f:do if((x|0)==131){x=0;if((s|0)>0){c[13474]=0;r=c[13479]|0;q=0;while(1){l=c[r+(q<<2)>>2]|0;m=c[(c[l+16>>2]|0)+160>>2]|0;if((m|0)<0){if(!k)k=l;else k=(c[(c[k+16>>2]|0)+160>>2]|0)>(m|0)?l:k;j=j+1|0;if((j|0)>=(c[13481]|0)){u=k;break f}}q=q+1|0;c[13474]=q;if((q|0)>=(s|0)){u=k;break}}}else u=k}while(0);if(!u)break;n=0;v=na(24,u|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}l=c[v>>2]&3;s=v+-48|0;t=v+48|0;b=v+16|0;l=(c[(c[(c[((l|0)==2?v:s)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((l|0)==3?v:t)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[b>>2]|0)+170>>1]|0)|0;do if((l|0)>0){j=c[u>>2]&3;m=c[((j|0)==3?u:u+48|0)+40>>2]|0;q=c[m+16>>2]|0;if(((c[q+276>>2]|0)+(c[q+268>>2]|0)|0)==1){n=0;ka(27,m|0,l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}j=c[((j|0)==2?u:u+-48|0)+40>>2]|0;k=c[j+16>>2]|0;if(((c[k+276>>2]|0)+(c[k+268>>2]|0)|0)==1){n=0;ka(27,j|0,0-l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}if((c[q+288>>2]|0)<(c[k+288>>2]|0)){n=0;ka(27,m|0,l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}else{n=0;ka(27,j|0,0-l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}}while(0);m=u+16|0;q=c[(c[m>>2]|0)+160>>2]|0;r=c[v>>2]&3;n=0;r=sa(20,c[((r|0)==3?v:t)+40>>2]|0,c[((r|0)==2?v:s)+40>>2]|0,q|0,1)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}j=c[v>>2]&3;n=0;j=sa(20,c[((j|0)==2?v:s)+40>>2]|0,c[((j|0)==3?v:t)+40>>2]|0,q|0,0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if((j|0)!=(r|0)){x=155;break}k=c[b>>2]|0;c[k+160>>2]=0-q;l=c[m>>2]|0;c[l+160>>2]=0;l=l+164|0;c[k+164>>2]=c[l>>2];c[(c[13479]|0)+(c[l>>2]<<2)>>2]=v;c[(c[m>>2]|0)+164>>2]=-1;m=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;l=c[m>>2]|0;k=l+276|0;b=c[k>>2]|0;q=b+-1|0;c[k>>2]=q;l=c[l+272>>2]|0;g:do if((b|0)<1)j=0;else{k=0;while(1){if((c[l+(k<<2)>>2]|0)==(u|0)){j=k;break g}j=k+1|0;if((k|0)<(q|0))k=j;else break}}while(0);c[l+(j<<2)>>2]=c[l+(q<<2)>>2];c[(c[(c[m>>2]|0)+272>>2]|0)+(q<<2)>>2]=0;m=(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)+16|0;l=c[m>>2]|0;k=l+268|0;b=c[k>>2]|0;q=b+-1|0;c[k>>2]=q;l=c[l+264>>2]|0;h:do if((b|0)<1)j=0;else{k=0;while(1){if((c[l+(k<<2)>>2]|0)==(u|0)){j=k;break h}j=k+1|0;if((k|0)<(q|0))k=j;else break}}while(0);c[l+(j<<2)>>2]=c[l+(q<<2)>>2];c[(c[(c[m>>2]|0)+264>>2]|0)+(q<<2)>>2]=0;j=(c[((c[v>>2]&3|0)==3?v:t)+40>>2]|0)+16|0;u=c[j>>2]|0;b=u+276|0;t=c[b>>2]|0;c[b>>2]=t+1;c[(c[u+272>>2]|0)+(t<<2)>>2]=v;j=c[j>>2]|0;c[(c[j+272>>2]|0)+(c[j+276>>2]<<2)>>2]=0;j=(c[((c[v>>2]&3|0)==2?v:s)+40>>2]|0)+16|0;t=c[j>>2]|0;s=t+268|0;u=c[s>>2]|0;c[s>>2]=u+1;c[(c[t+264>>2]|0)+(u<<2)>>2]=v;j=c[j>>2]|0;c[(c[j+264>>2]|0)+(c[j+268>>2]<<2)>>2]=0;j=c[r+16>>2]|0;n=0;da(15,r|0,c[j+280>>2]|0,c[j+284>>2]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}m=g+1|0;do if((a[124827]|0)!=0&((m|0)%100|0|0)==0){j=(m|0)%1e3|0;if((j|0)==100){n=0;sa(21,125825,17,1,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}n=0;c[B>>2]=m;da(13,w|0,126064,B|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}n=0;c[y>>2]=m;da(13,w|0,126064,y|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if(j)break;n=0;ua(29,10,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}}while(0);if((m|0)<(f|0))g=m;else{g=m;break}}if((x|0)==155){n=0;da(11,1,126025,A|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}n=0;ka(28,53928,1);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue}switch(d|0){case 1:{n=0;qa(3);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}n=0;u=na(19,(c[13521]<<2)+4|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}if((c[13521]|0)>=0){j=0;while(1){c[u+(j<<2)>>2]=0;if((j|0)<(c[13521]|0))j=j+1|0;else break}}k=(c[(c[13473]|0)+16>>2]|0)+192|0;j=c[k>>2]|0;do if(j){do{j=c[j+16>>2]|0;if(!(a[j+156>>0]|0)){x=u+(c[j+232>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+1}j=c[j+164>>2]|0}while((j|0)!=0);j=c[k>>2]|0;if(!j)break;while(1){t=j+16|0;j=c[t>>2]|0;if(!(a[j+156>>0]|0)){m=c[13521]|0;b=c[j+172>>2]|0;k=c[b>>2]|0;if(!k){s=0;q=0}else{r=0;l=0;q=0;do{x=c[k+16>>2]|0;l=(c[x+156>>2]|0)+l|0;x=(e[x+170>>1]|0)+(c[(c[(c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;q=(q|0)>(x|0)?q:x;r=r+1|0;k=c[b+(r<<2)>>2]|0}while((k|0)!=0);s=l}b=c[j+180>>2]|0;k=c[b>>2]|0;if(!k){r=m;l=0}else{r=0;l=0;do{x=c[k+16>>2]|0;l=(c[x+156>>2]|0)+l|0;x=(c[(c[(c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[x+170>>1]|0)|0;m=(m|0)<(x|0)?m:x;r=r+1|0;k=c[b+(r<<2)>>2]|0}while((k|0)!=0);r=m}k=(q|0)<0?0:q;if((s|0)==(l|0)){if((k|0)<(r|0)){l=k;m=k;while(1){m=m+1|0;k=(c[u+(m<<2)>>2]|0)<(c[u+(l<<2)>>2]|0)?m:l;if((m|0)==(r|0))break;else l=k}}x=j+232|0;v=u+(c[x>>2]<<2)|0;c[v>>2]=(c[v>>2]|0)+-1;v=u+(k<<2)|0;c[v>>2]=(c[v>>2]|0)+1;c[x>>2]=k}k=c[j+264>>2]|0;if(k){n=0;ia(89,k|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}j=c[t>>2]|0}k=c[j+272>>2]|0;if(k){n=0;ia(89,k|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}j=c[t>>2]|0}a[j+157>>0]=0}j=c[j+164>>2]|0;if(!j)break}}while(0);n=0;ia(89,u|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}case 2:{if((c[13480]|0)>0){q=0;while(1){m=c[(c[13479]|0)+(q<<2)>>2]|0;do if(!(c[(c[m+16>>2]|0)+160>>2]|0)){n=0;j=na(24,m|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if(!j)break;k=c[j>>2]&3;k=(c[(c[(c[((k|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((k|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[j+16>>2]|0)+170>>1]|0)|0;if((k|0)<2)break;j=c[m>>2]&3;l=c[((j|0)==3?m:m+48|0)+40>>2]|0;j=c[((j|0)==2?m:m+-48|0)+40>>2]|0;if((c[(c[l+16>>2]|0)+288>>2]|0)<(c[(c[j+16>>2]|0)+288>>2]|0)){n=0;ka(27,l|0,(k|0)/2|0|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}else{n=0;ka(27,j|0,(k|0)/-2|0|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}}while(0);q=q+1|0;if((q|0)>=(c[13480]|0))break}}n=0;qa(2);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}default:{n=0;qa(3);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}n=0;qa(2);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}}}if(!(a[124827]|0)){j=0;break b}if((g|0)>99){n=0;ua(29,10,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}}j=c[13476]|0;k=c[13475]|0;n=0;p=+fa(1);l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue}n=0;c[z>>2]=125825;c[z+4>>2]=j;c[z+8>>2]=k;c[z+12>>2]=g;h[z+16>>3]=p;da(13,w|0,126068,z|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68}else break}j=0}while(0);pB(E|0);i=F;return j|0}function eq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=zj(a,126106)|0;if(!d)d=30;else d=Yz(d)|0;return dq(a,b,c,d)|0}function fq(){var b=0,d=0,e=0;b=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(b)do{e=b+16|0;b=c[e>>2]|0;d=c[b+264>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+272>>2]|0;if(d){pB(d);b=c[e>>2]|0}a[b+157>>0]=0;b=c[b+164>>2]|0}while((b|0)!=0);return}function gq(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=a+16|0;f=c[l>>2]|0;c[f+280>>2]=b;a=c[c[f+172>>2]>>2]|0;if(!a)a=1;else{g=a;h=0;a=1;do{d=c[g+16>>2]|0;if(((c[d+164>>2]|0)<=-1?(i=c[g>>2]&3,j=g+48|0,k=c[(c[((i|0)==3?g:j)+40>>2]|0)+16>>2]|0,(c[k+280>>2]|0)==0):0)?((c[(c[(c[((i|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[k+232>>2]|0)|0)==(e[d+170>>1]|0|0):0){lq(g);a=(gq(c[((c[g>>2]&3|0)==3?g:j)+40>>2]|0,b)|0)+a|0;f=c[l>>2]|0}h=h+1|0;g=c[(c[f+172>>2]|0)+(h<<2)>>2]|0}while((g|0)!=0)}d=c[c[f+180>>2]>>2]|0;if(d){h=0;do{g=c[d+16>>2]|0;if(((c[g+164>>2]|0)<=-1?(m=c[d>>2]&3,n=d+-48|0,o=c[(c[((m|0)==2?d:n)+40>>2]|0)+16>>2]|0,(c[o+280>>2]|0)==0):0)?((c[o+232>>2]|0)-(c[(c[(c[((m|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)==(e[g+170>>1]|0|0):0){lq(d);a=(gq(c[((c[d>>2]&3|0)==2?d:n)+40>>2]|0,b)|0)+a|0;f=c[l>>2]|0}h=h+1|0;d=c[(c[f+180>>2]|0)+(h<<2)>>2]|0}while((d|0)!=0)}return a|0}function hq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a>>2]|0;g=c[a+4>>2]|0;while(1){a=b<<1;f=a+2|0;a=a|1;if(!((a|0)<(g|0)?(c[(c[h+(a<<2)>>2]|0)+4>>2]|0)<(c[(c[h+(b<<2)>>2]|0)+4>>2]|0):0))a=b;if((f|0)>=(g|0))break;d=h+(f<<2)|0;e=c[d>>2]|0;if((f|0)==(b|0)?1:(c[e+4>>2]|0)>=(c[(c[h+(a<<2)>>2]|0)+4>>2]|0))break;i=h+(b<<2)|0;a=c[i>>2]|0;c[i>>2]=e;c[d>>2]=a;c[(c[i>>2]|0)+8>>2]=b;c[a+8>>2]=f;b=f}return}function iq(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=jq(a)|0;if(d){k=c[d>>2]&3;if(((c[(c[(c[((k|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((k|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)!=(e[(c[d+16>>2]|0)+170>>1]|0|0))f=3}else{d=0;f=3}if((f|0)==3){k=a+16|0;f=c[k>>2]|0;g=c[c[f+180>>2]>>2]|0;if(g){j=0;do{f=g+16|0;h=g+-48|0;i=c[((c[g>>2]&3|0)==2?g:h)+40>>2]|0;do if((c[(c[f>>2]|0)+164>>2]|0)>-1){if((i|0)!=(b|0))d=iq(i,a,d)|0}else if((jq(i)|0)!=(l|0)){if((d|0)!=0?(m=c[g>>2]&3,i=c[d>>2]&3,((c[(c[(c[((m|0)==2?g:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[f>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((i|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((i|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=g}while(0);j=j+1|0;f=c[k>>2]|0;g=c[(c[f+180>>2]|0)+(j<<2)>>2]|0}while((g|0)!=0)}f=c[c[f+172>>2]>>2]|0;if(f){j=0;do{g=f+16|0;h=f+48|0;i=c[((c[f>>2]&3|0)==3?f:h)+40>>2]|0;do if((c[(c[g>>2]|0)+164>>2]|0)>-1){if((i|0)!=(b|0))d=iq(i,a,d)|0}else if((jq(i)|0)!=(l|0)){if((d|0)!=0?(i=c[f>>2]&3,m=c[d>>2]&3,((c[(c[(c[((i|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((i|0)==3?f:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[g>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((m|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=f}while(0);j=j+1|0;f=c[(c[(c[k>>2]|0)+172>>2]|0)+(j<<2)>>2]|0}while((f|0)!=0)}}return d|0}function jq(a){a=a|0;var b=0,d=0;d=c[(c[a+16>>2]|0)+280>>2]|0;b=d+12|0;a=c[b>>2]|0;a:do if((a|0)!=(d|0)&(a|0)!=0)while(1){d=c[a+12>>2]|0;if(!d)break a;c[b>>2]=d;a=c[d+12>>2]|0;if(!((a|0)!=(d|0)&(a|0)!=0)){a=d;break}else b=d+12|0}else a=d;while(0);return a|0}function kq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=a+16|0;f=c[h>>2]|0;e=f+232|0;c[e>>2]=(c[e>>2]|0)+d;e=c[c[f+264>>2]>>2]|0;if(e){g=0;do{e=c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0;if((e|0)!=(b|0)){kq(e,a,d);f=c[h>>2]|0}g=g+1|0;e=c[(c[f+264>>2]|0)+(g<<2)>>2]|0}while((e|0)!=0)}e=c[c[f+272>>2]>>2]|0;if(e){g=0;do{e=c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;if((e|0)!=(b|0)){kq(e,a,d);f=c[h>>2]|0}g=g+1|0;e=c[(c[f+272>>2]|0)+(g<<2)>>2]|0}while((e|0)!=0)}return}function lq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;d=(c[b+16>>2]|0)+164|0;if((c[d>>2]|0)>-1){dj(1,126117,h)|0;Ka(53928,1)}e=c[13480]|0;c[d>>2]=e;c[13480]=e+1;c[(c[13479]|0)+(e<<2)>>2]=b;e=c[b>>2]|0;g=b+48|0;d=c[((e&3|0)==3?b:g)+40>>2]|0;if(!(a[(c[d+16>>2]|0)+157>>0]|0)){f=c[13478]|0;c[13478]=f+1;c[(c[13477]|0)+(f<<2)>>2]=d;d=c[b>>2]|0}else d=e;f=b+-48|0;e=c[((d&3|0)==2?b:f)+40>>2]|0;if(!(a[(c[e+16>>2]|0)+157>>0]|0)){d=c[13478]|0;c[13478]=d+1;c[(c[13477]|0)+(d<<2)>>2]=e;d=c[b>>2]|0}g=(c[((d&3|0)==3?b:g)+40>>2]|0)+16|0;d=c[g>>2]|0;a[d+157>>0]=1;j=d+276|0;e=c[j>>2]|0;c[j>>2]=e+1;c[(c[d+272>>2]|0)+(e<<2)>>2]=b;e=c[g>>2]|0;c[(c[e+272>>2]|0)+(c[e+276>>2]<<2)>>2]=0;g=c[g>>2]|0;if(!(c[(c[g+180>>2]|0)+((c[g+276>>2]|0)+-1<<2)>>2]|0)){dj(1,126151,h+8|0)|0;Ka(53928,1)}j=(c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0)+16|0;f=c[j>>2]|0;a[f+157>>0]=1;e=f+268|0;g=c[e>>2]|0;c[e>>2]=g+1;c[(c[f+264>>2]|0)+(g<<2)>>2]=b;b=c[j>>2]|0;c[(c[b+264>>2]|0)+(c[b+268>>2]<<2)>>2]=0;j=c[j>>2]|0;if(!(c[(c[j+172>>2]|0)+((c[j+268>>2]|0)+-1<<2)>>2]|0)){dj(1,126186,h+16|0)|0;Ka(53928,1)}else{i=h;return}}function mq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=a+16|0;a=c[g>>2]|0;c[a+280>>2]=b;c[a+284>>2]=d;e=c[c[a+272>>2]>>2]|0;if(e){f=0;do{if((e|0)!=(b|0)){d=mq(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0;e=c[(c[a+272>>2]|0)+(f<<2)>>2]|0}while((e|0)!=0)}e=c[c[a+264>>2]>>2]|0;if(e){f=0;do{if((e|0)!=(b|0)){d=mq(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0;e=c[(c[a+264>>2]|0)+(f<<2)>>2]|0}while((e|0)!=0)}c[a+288>>2]=d;return d+1|0}function nq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+16|0;d=c[f>>2]|0;a=c[c[d+272>>2]>>2]|0;if(a){e=0;do{if((a|0)!=(b|0)){nq(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0,a);d=c[f>>2]|0}e=e+1|0;a=c[(c[d+272>>2]|0)+(e<<2)>>2]|0}while((a|0)!=0)}a=c[c[d+264>>2]>>2]|0;if(a){e=0;do{if((a|0)!=(b|0)){nq(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0,a);d=c[f>>2]|0}e=e+1|0;a=c[(c[d+264>>2]|0)+(e<<2)>>2]|0}while((a|0)!=0)}if(b){a=c[b>>2]&3;e=c[((a|0)==3?b:b+48|0)+40>>2]|0;d=c[e+16>>2]|0;if((c[d+280>>2]|0)==(b|0))i=1;else{e=c[((a|0)==2?b:b+-48|0)+40>>2]|0;d=c[e+16>>2]|0;i=-1}h=c[d+180>>2]|0;a=c[h>>2]|0;if(!a)a=0;else{f=a;g=0;a=0;do{a=(uq(f,e,i)|0)+a|0;g=g+1|0;f=c[h+(g<<2)>>2]|0}while((f|0)!=0)}g=c[d+172>>2]|0;d=c[g>>2]|0;if(d){f=0;do{a=(uq(d,e,i)|0)+a|0;f=f+1|0;d=c[g+(f<<2)>>2]|0}while((d|0)!=0)}c[(c[b+16>>2]|0)+160>>2]=a}return}function oq(a){a=a|0;var b=0,d=0;b=c[a>>2]&3;d=c[((b|0)==3?a:a+48|0)+40>>2]|0;a=c[((b|0)==2?a:a+-48|0)+40>>2]|0;b=(c[(c[d+16>>2]|0)+288>>2]|0)<(c[(c[a+16>>2]|0)+288>>2]|0);a=b?d:a;c[13523]=0;c[13524]=2147483647;d=c[a+16>>2]|0;c[13525]=c[d+284>>2];c[13526]=c[d+288>>2];if(b)tq(a);else sq(a);return c[13523]|0}function pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+16|0;a=c[f>>2]|0;d=a+232|0;c[d>>2]=(c[d>>2]|0)-b;d=c[c[a+272>>2]>>2]|0;if(d){e=0;do{if((d|0)!=(c[a+280>>2]|0)){pq(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0;d=c[(c[a+272>>2]|0)+(e<<2)>>2]|0}while((d|0)!=0)}d=c[c[a+264>>2]>>2]|0;if(d){e=0;do{if((d|0)!=(c[a+280>>2]|0)){pq(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0;d=c[(c[a+264>>2]|0)+(e<<2)>>2]|0}while((d|0)!=0)}return}function qq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=(e|0)==0&1;h=0-d|0;f=c[(c[b+16>>2]|0)+288>>2]|0;while(1){b=c[a+16>>2]|0;if((c[b+284>>2]|0)<=(f|0)?(f|0)<=(c[b+288>>2]|0):0)break;b=c[b+280>>2]|0;i=b+48|0;j=(c[b+16>>2]|0)+160|0;c[j>>2]=((((a|0)==(c[((c[b>>2]&3|0)==3?b:i)+40>>2]|0)?e:g)|0)==0?h:d)+(c[j>>2]|0);j=c[b>>2]&3;i=c[((j|0)==3?b:i)+40>>2]|0;b=c[((j|0)==2?b:b+-48|0)+40>>2]|0;a=(c[(c[i+16>>2]|0)+288>>2]|0)>(c[(c[b+16>>2]|0)+288>>2]|0)?i:b}return a|0}function rq(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0;c[13522]=2147483647;c[13521]=-2147483647;f=(c[(c[13473]|0)+16>>2]|0)+192|0;e=c[f>>2]|0;if(e){b=2147483647;d=-2147483647;do{e=c[e+16>>2]|0;if(!(a[e+156>>0]|0)){h=e+232|0;i=c[h>>2]|0;b=(b|0)<(i|0)?b:i;c[13522]=b;h=c[h>>2]|0;d=(d|0)>(h|0)?d:h;c[13521]=d}e=c[e+164>>2]|0}while((e|0)!=0);if(b){e=c[f>>2]|0;if(!e)g=9;else{d=e;do{i=c[d+16>>2]|0;h=i+232|0;c[h>>2]=(c[h>>2]|0)-b;d=c[i+164>>2]|0;b=c[13522]|0}while((d|0)!=0);d=c[13521]|0;g=9}}}else{b=2147483647;d=-2147483647;g=9}if((g|0)==9){c[13521]=d-b;c[13522]=0}return}function sq(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0;i=a+16|0;b=c[i>>2]|0;a=c[c[b+180>>2]>>2]|0;if(a){g=0;do{f=c[a+16>>2]|0;if((c[f+164>>2]|0)<0){b=c[a>>2]&3;d=c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;j=c[d+288>>2]|0;if((c[13525]|0)>(j|0)|(j|0)>(c[13526]|0)?(h=(c[d+232>>2]|0)-(c[(c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[f+170>>1]|0)|0,(h|0)<(c[13524]|0)|(c[13523]|0)==0):0){c[13523]=a;c[13524]=h}}else{a=c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0;if((c[(c[a+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0))sq(a)}g=g+1|0;b=c[i>>2]|0;a=c[(c[b+180>>2]|0)+(g<<2)>>2]|0}while((a|0)!=0)}d=c[c[b+264>>2]>>2]|0;a=c[13524]|0;if((d|0)!=0&(a|0)>0){f=0;do{d=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((c[(c[d+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0)){sq(d);a=c[13524]|0;b=c[i>>2]|0}f=f+1|0;d=c[(c[b+264>>2]|0)+(f<<2)>>2]|0}while((d|0)!=0&(a|0)>0)}return}function tq(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0;i=a+16|0;b=c[i>>2]|0;a=c[c[b+172>>2]>>2]|0;if(a){g=0;do{f=c[a+16>>2]|0;if((c[f+164>>2]|0)<0){b=c[a>>2]&3;d=c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;j=c[d+288>>2]|0;if((c[13525]|0)>(j|0)|(j|0)>(c[13526]|0)?(h=(c[(c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[d+232>>2]|0)-(e[f+170>>1]|0)|0,(h|0)<(c[13524]|0)|(c[13523]|0)==0):0){c[13523]=a;c[13524]=h}}else{a=c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0;if((c[(c[a+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0))tq(a)}g=g+1|0;b=c[i>>2]|0;a=c[(c[b+172>>2]|0)+(g<<2)>>2]|0}while((a|0)!=0)}d=c[c[b+272>>2]>>2]|0;a=c[13524]|0;if((d|0)!=0&(a|0)>0){f=0;do{d=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;if((c[(c[d+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0)){tq(d);a=c[13524]|0;b=c[i>>2]|0}f=f+1|0;d=c[(c[b+272>>2]|0)+(f<<2)>>2]|0}while((d|0)!=0&(a|0)>0)}return}function uq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;i=(h|0)==3?a:a+48|0;e=c[i+40>>2]|0;if((e|0)==(b|0))e=c[((h|0)==2?a:a+-48|0)+40>>2]|0;g=c[b+16>>2]|0;f=c[(c[e+16>>2]|0)+288>>2]|0;if((c[g+284>>2]|0)<=(f|0)?(f|0)<=(c[g+288>>2]|0):0){e=c[a+16>>2]|0;if((c[e+164>>2]|0)>-1)f=c[e+160>>2]|0;else f=0;g=1;e=f-(c[e+156>>2]|0)|0}else{g=0;e=c[(c[a+16>>2]|0)+156>>2]|0}b=(c[((d|0)>0?((h|0)==2?a:a+-48|0):i)+40>>2]|0)==(b|0)?1:-1;return (((g?b:0-b|0)|0)<0?0-e|0:e)|0}function vq(a){a=+a;return +((c[13364]|0)==0?a:+h[4213]-a)}function wq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0;t=i;i=i+1088|0;q=t+40|0;s=t+32|0;m=t+24|0;n=t+16|0;l=t+8|0;k=t;r=t+56|0;j=c[(c[(c[d+64>>2]|0)+8>>2]|0)+4>>2]|0;c[13527]=j;g=c[d+16>>2]|0;if(c[13364]|0){u=+h[g+40>>3]+ +h[g+24>>3];h[4213]=u;h[4214]=u/72.0}v=+h[g+32>>3];u=+h[g+40>>3];w=+h[b+352>>3];Lb[j&63](e,126220)|0;h[k>>3]=w;Oz(r,126227,k)|0;Lb[c[54108>>2]&63](e,r)|0;Lb[c[54108>>2]&63](e,126232)|0;h[l>>3]=v/72.0;Oz(r,126227,l)|0;Lb[c[54108>>2]&63](e,r)|0;Lb[c[54108>>2]&63](e,126232)|0;h[q>>3]=u/72.0;Oz(r,126227,q)|0;Lb[c[54108>>2]&63](e,r)|0;a[126234]=10;Lb[c[54108>>2]&63](e,126234)|0;g=Rk(d)|0;if(g)do{j=g+16|0;if(!(a[(c[j>>2]|0)+118>>0]|0)){p=nm(ok(g)|0)|0;Lb[c[54108>>2]&63](e,126236)|0;Lb[c[54108>>2]&63](e,p)|0;p=(c[j>>2]|0)+16|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];zq(e,q);if(!(a[(c[(c[j>>2]|0)+104>>2]|0)+82>>0]|0)){o=gl(g)|0;p=Il(o,c[c[(c[j>>2]|0)+104>>2]>>2]|0)|0;b=nm(p)|0;Kl(o,p)|0}else b=nm(Aj(g,c[13393]|0)|0)|0;w=+h[(c[j>>2]|0)+32>>3];Lb[c[54108>>2]&63](e,126232)|0;h[n>>3]=w;Oz(r,126227,n)|0;Lb[c[54108>>2]&63](e,r)|0;w=+h[(c[j>>2]|0)+40>>3];Lb[c[54108>>2]&63](e,126232)|0;h[m>>3]=w;Oz(r,126227,m)|0;Lb[c[54108>>2]&63](e,r)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,b)|0;p=Js(g,c[13396]|0,134426)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,p)|0;j=c[c[(c[j>>2]|0)+8>>2]>>2]|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,j)|0;j=Js(g,c[13379]|0,160746)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,j)|0;j=Js(g,c[13380]|0,164137)|0;if(!(a[j>>0]|0))j=Js(g,c[13379]|0,158256)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,j)|0;a[126234]=10;Lb[c[54108>>2]&63](e,126234)|0}g=Sk(d,g)|0}while((g|0)!=0);g=Rk(d)|0;if(g){p=f<<24>>24==0;do{j=Lj(d,g)|0;if(j)do{if(p){n=164137;f=164137}else{f=zj(j,134905)|0;n=zj(j,134914)|0;n=(n|0)!=0?n:164137;f=(f|0)!=0?f:164137}o=j+16|0;b=c[o>>2]|0;k=c[b+8>>2]|0;if(k){m=c[k+4>>2]|0;if((m|0)>0){k=c[k>>2]|0;l=0;b=0;do{b=(c[k+(l*48|0)+4>>2]|0)+b|0;l=l+1|0}while((l|0)<(m|0))}else b=0;Lb[c[54108>>2]&63](e,134900)|0;Aq(e,c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0,f);Aq(e,c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0,n);Lb[c[54108>>2]&63](e,126232)|0;c[s>>2]=b;Oz(r,160852,s)|0;Lb[c[54108>>2]&63](e,r)|0;b=c[o>>2]|0;k=c[b+8>>2]|0;if((c[k+4>>2]|0)>0){m=0;do{l=c[k>>2]|0;k=c[l+(m*48|0)>>2]|0;l=c[l+(m*48|0)+4>>2]|0;if((l|0)>0){b=0;do{f=k+(b<<4)|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];zq(e,q);b=b+1|0}while((b|0)!=(l|0));b=c[o>>2]|0}m=m+1|0;k=c[b+8>>2]|0}while((m|0)<(c[k+4>>2]|0))}}if(c[b+96>>2]|0){m=gl(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)|0;n=Il(m,c[c[(c[o>>2]|0)+96>>2]>>2]|0)|0;f=nm(n)|0;Kl(m,n)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,f)|0;o=(c[(c[o>>2]|0)+96>>2]|0)+56|0;c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];zq(e,q)}o=Js(j,c[13431]|0,134426)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,o)|0;o=Js(j,c[13415]|0,160746)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,o)|0;a[126234]=10;Lb[c[54108>>2]&63](e,126234)|0;j=Nj(d,j)|0}while((j|0)!=0);g=Sk(d,g)|0}while((g|0)!=0)}Lb[c[54108>>2]&63](e,126242)|0;i=t;return}function xq(d,f,g){d=d|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;_=i;i=i+2288|0;W=_+208|0;V=_+192|0;U=_+176|0;T=_+160|0;S=_+144|0;P=_+128|0;N=_+112|0;M=_+96|0;L=_+80|0;K=_+64|0;J=_+56|0;I=_+48|0;X=_+32|0;O=_+24|0;H=_;G=_+1264|0;Z=_+224|0;Y=d+16|0;F=(e[(c[Y>>2]|0)+178>>1]|0)>2;ep(1);if(c[13364]|0){C=c[Y>>2]|0;r=+h[C+40>>3]+ +h[C+24>>3];h[4213]=r;h[4214]=r/72.0}gj(Z,1024,_+240|0);et(d,1,126248,164137)|0;et(d,1,126252,164137)|0;c[13377]=et(d,1,134580,164137)|0;c[13376]=et(d,1,134586,164137)|0;et(d,2,126248,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0;if(j&16){et(d,1,126258,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&1){et(d,2,126262,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&32){et(d,2,126258,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&2){et(d,2,126265,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&4){et(d,2,126273,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(!(j&8)){A=0;B=0;C=0}else{B=et(d,0,126262,164137)|0;C=et(d,0,126281,164137)|0;A=et(d,0,126288,164137)|0}z=et(d,0,126296,164137)|0;j=Rk(d)|0;if(!j){k=0;j=0}else{x=Z+4|0;y=Z+8|0;k=0;w=j;j=0;do{v=w+16|0;l=c[v>>2]|0;n=+h[l+16>>3];o=+h[l+24>>3];o=(c[13364]|0)!=0?+h[4213]-o:o;if(F){r=+h[(c[l+132>>2]|0)+16>>3]*72.0;h[H>>3]=n;h[H+8>>3]=o;h[H+16>>3]=r;Oz(G,126299,H)|0;jj(Z,G)|0;if((e[(c[Y>>2]|0)+178>>1]|0)>3){l=3;do{h[O>>3]=+h[(c[(c[v>>2]|0)+132>>2]|0)+(l<<3)>>3]*72.0;Oz(G,126314,O)|0;jj(Z,G)|0;l=l+1|0}while((l|0)<(e[(c[Y>>2]|0)+178>>1]|0))}l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;u=c[Z>>2]|0;c[x>>2]=u;Bj(w,126248,u)|0;u=w}else{h[X>>3]=n;h[X+8>>3]=o;Oz(G,126320,X)|0;Bj(w,126248,G)|0;u=w}h[I>>3]=+h[(c[v>>2]|0)+80>>3]/72.0;Oz(G,126227,I)|0;Cj(u,c[13376]|0,G)|0;l=c[v>>2]|0;h[J>>3]=(+h[l+88>>3]+ +h[l+96>>3])/72.0;Oz(G,126227,J)|0;Cj(u,c[13377]|0,G)|0;l=c[v>>2]|0;m=c[l+108>>2]|0;if((m|0)!=0?(a[m+81>>0]|0)!=0:0){r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[K>>3]=+h[m+56>>3];h[K+8>>3]=r;Oz(G,126320,K)|0;Bj(u,126258,G)|0;l=c[v>>2]|0}if(lA(c[c[l+8>>2]>>2]|0,129660)|0){if((c[13409]|0)!=0?(lr(w)|0)<<24>>24!=0:0){m=c[(c[v>>2]|0)+12>>2]|0;t=m+8|0;l=c[t>>2]|0;if((l|0)<3){l=zj(u,126330)|0;if(!l)l=8;else{l=Yz(l)|0;l=(l|0)<3?8:l}}p=m+44|0;r=+(l|0);s=0;do{if((s|0)>0){m=c[x>>2]|0;if(m>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;m=c[x>>2]|0}c[x>>2]=m+1;a[m>>0]=32}if((c[t>>2]|0)>2){m=c[p>>2]|0;n=+h[m+(s<<4)+8>>3];if(!(c[13364]|0))n=n/72.0;else n=+h[4214]-n/72.0;h[L>>3]=+h[m+(s<<4)>>3]/72.0;h[L+8>>3]=n;Oz(G,126343,L)|0}else{m=c[v>>2]|0;n=+(s|0)/r*3.141592653589793*2.0;q=+h[m+32>>3]*.5*+Q(+n);o=+h[m+40>>3];if(!(c[13364]|0))n=o*.5*+R(+n);else n=+h[4214]-o*.5*+R(+n);h[M>>3]=q;h[M+8>>3]=n;Oz(G,126343,M)|0}jj(Z,G)|0;s=s+1|0}while((s|0)!=(l|0));m=c[13409]|0;l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;v=c[Z>>2]|0;c[x>>2]=v;Cj(u,m,v)|0}}else{Bq(w,c[l+12>>2]|0,Z);lj(Z)|0;l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;v=c[Z>>2]|0;c[x>>2]=v;Bj(u,126252,v)|0}if((c[13362]|0)>0?(D=Lj(d,w)|0,(D|0)!=0):0){u=D;do{t=u+16|0;l=c[t>>2]|0;do if((a[l+112>>0]|0)!=6?(E=c[l+8>>2]|0,(E|0)!=0):0){if((c[E+4>>2]|0)>0){s=0;do{if((s|0)>0){l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}c[x>>2]=l+1;a[l>>0]=59;l=c[t>>2]|0}p=c[l+8>>2]|0;m=c[p>>2]|0;if(c[m+(s*48|0)+8>>2]|0){r=+h[m+(s*48|0)+24>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[N>>3]=+h[m+(s*48|0)+16>>3];h[N+8>>3]=r;Oz(G,126353,N)|0;jj(Z,G)|0;l=c[t>>2]|0;p=c[l+8>>2]|0;m=c[p>>2]|0;j=1}if(c[m+(s*48|0)+12>>2]|0){r=+h[m+(s*48|0)+40>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[P>>3]=+h[m+(s*48|0)+32>>3];h[P+8>>3]=r;Oz(G,126366,P)|0;jj(Z,G)|0;l=c[t>>2]|0;p=c[l+8>>2]|0;m=c[p>>2]|0;k=1}if((c[m+(s*48|0)+4>>2]|0)>0){p=0;do{if((p|0)>0){l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}c[x>>2]=l+1;a[l>>0]=32;l=c[t>>2]|0}l=c[(c[c[l+8>>2]>>2]|0)+(s*48|0)>>2]|0;r=+h[l+(p<<4)+8>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[S>>3]=+h[l+(p<<4)>>3];h[S+8>>3]=r;Oz(G,126320,S)|0;jj(Z,G)|0;p=p+1|0;l=c[t>>2]|0;m=c[l+8>>2]|0}while((p|0)<(c[(c[m>>2]|0)+(s*48|0)+4>>2]|0))}else m=p;s=s+1|0}while((s|0)<(c[m+4>>2]|0))}l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;l=c[Z>>2]|0;c[x>>2]=l;Bj(u,126248,l)|0;l=c[t>>2]|0;m=c[l+96>>2]|0;if(m){r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[T>>3]=+h[m+56>>3];h[T+8>>3]=r;Oz(G,126320,T)|0;Bj(u,126262,G)|0;l=c[t>>2]|0}m=c[l+108>>2]|0;do if(m){if(!(a[m+81>>0]|0))break;r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[U>>3]=+h[m+56>>3];h[U+8>>3]=r;Oz(G,126320,U)|0;Bj(u,126258,G)|0;l=c[t>>2]|0}while(0);m=c[l+100>>2]|0;if(m){r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[V>>3]=+h[m+56>>3];h[V+8>>3]=r;Oz(G,126320,V)|0;Bj(u,126265,G)|0;l=c[t>>2]|0}l=c[l+104>>2]|0;if(!l)break;r=+h[l+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[W>>3]=+h[l+56>>3];h[W+8>>3]=r;Oz(G,126320,W)|0;Bj(u,126273,G)|0}while(0);u=Nj(d,u)|0}while((u|0)!=0)}w=Sk(d,w)|0}while((w|0)!=0)}Cq(d,z,B,C,A);kj(Z);if(b[(c[Y>>2]|0)+136>>1]&1)ct(d);c[f>>2]=j;c[g>>2]=k;ep(0);i=_;return}function yq(a){a=a|0;var b=0;b=i;i=i+16|0;xq(a,b,b+4|0);i=b;return}function zq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,j=0;d=i;i=i+1040|0;f=d+8|0;j=d;e=d+16|0;g=+h[b>>3]/72.0;Lb[c[54108>>2]&63](a,126232)|0;h[j>>3]=g;Oz(e,126227,j)|0;Lb[c[54108>>2]&63](a,e)|0;g=+h[b+8>>3];g=((c[13364]|0)==0?g:+h[4213]-g)/72.0;Lb[c[54108>>2]&63](a,126232)|0;h[f>>3]=g;Oz(e,126227,f)|0;Lb[c[54108>>2]&63](a,e)|0;i=d;return}function Aq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(!(a[(c[d+16>>2]|0)+118>>0]|0))d=nm(ok(d)|0)|0;else{g=gl(d)|0;f=Il(g,(jA(ok(d)|0,58)|0)+1|0)|0;d=nm(f)|0;Kl(g,f)|0}Lb[c[54108>>2]&63](b,126232)|0;Lb[c[54108>>2]&63](b,d)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){g=nm(e)|0;Lb[c[54108>>2]&63](b,133477)|0;Lb[c[54108>>2]&63](b,g)|0}return}function Bq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0;o=i;i=i+1056|0;m=o;f=o+32|0;n=b+48|0;e=c[n>>2]|0;if(!e){e=c[a+16>>2]|0;l=+h[e+16>>3];g=+h[b+24>>3];j=+h[e+24>>3];if(!(c[13364]|0)){k=g+j;g=+h[b+40>>3]+j}else{p=+h[4213];k=p-(g+j);g=p-(+h[b+40>>3]+j)}p=+h[b+32>>3]+l;h[m>>3]=+h[b+16>>3]+l;h[m+8>>3]=k;h[m+16>>3]=p;h[m+24>>3]=g;Oz(f,126404,m)|0;jj(d,f)|0;e=c[n>>2]|0}if((e|0)>0){e=b+56|0;f=0;do{Bq(a,c[(c[e>>2]|0)+(f<<2)>>2]|0,d);f=f+1|0}while((f|0)<(c[n>>2]|0))}i=o;return}function Cq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+1088|0;o=s+56|0;q=s+48|0;p=s+32|0;k=s;n=s+64|0;r=b+16|0;j=c[r>>2]|0;l=+h[j+24>>3];if(!(c[13364]|0))m=+h[j+40>>3];else{m=+h[4213];l=m-l;m=m-+h[j+40>>3]}t=+h[j+32>>3];h[k>>3]=+h[j+16>>3];h[k+8>>3]=l;h[k+16>>3]=t;h[k+24>>3]=m;Oz(n,126379,k)|0;Cj(b,d,n)|0;j=c[r>>2]|0;k=c[j+12>>2]|0;if((k|0)!=0?(a[c[k>>2]>>0]|0)!=0:0){t=+h[k+64>>3];t=(c[13364]|0)==0?t:+h[4213]-t;h[p>>3]=+h[k+56>>3];h[p+8>>3]=t;Oz(n,126320,p)|0;Cj(b,e,n)|0;j=c[(c[r>>2]|0)+12>>2]|0;t=+h[j+32>>3];h[q>>3]=+h[j+24>>3]/72.0;Oz(n,126399,q)|0;Cj(b,f,n)|0;h[o>>3]=t/72.0;Oz(n,126399,o)|0;Cj(b,g,n)|0;j=c[r>>2]|0}if((c[j+180>>2]|0)>=1){k=1;while(1){Cq(c[(c[j+184>>2]|0)+(k<<2)>>2]|0,d,e,f,g);j=c[r>>2]|0;if((k|0)>=(c[j+180>>2]|0))break;else k=k+1|0}}i=s;return}function Dq(){return Vi(54112,c[12573]|0)|0}function Eq(a){a=a|0;Pi(a)|0;return}function Fq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b;f=c[e>>2]|0;e=c[e+4>>2]|0;b=$p(16)|0;d=b+8|0;c[d>>2]=f;c[d+4>>2]=e;if((ub[c[a>>2]&31](a,b,1)|0)!=(b|0))pB(b);return}function Gq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=$p(16)|0;f=e+8|0;c[f>>2]=b;c[f+4>>2]=d;if((ub[c[a>>2]&31](a,e,1)|0)!=(e|0))pB(e);return}function Hq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d;g=b;f=c[g+4>>2]|0;b=e+8|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;b=(ub[c[a>>2]&31](a,e,4)|0)!=0&1;i=d;return b|0}function Iq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f+8>>2]=b;c[f+12>>2]=d;d=(ub[c[a>>2]&31](a,f,4)|0)!=0&1;i=e;return d|0}function Jq(a){a=a|0;return Xi(a)|0}function Kq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=$p((Xi(a)|0)<<3)|0;a=Ti(a)|0;if(a){b=d;while(1){g=a+8|0;f=c[g+4>>2]|0;e=b;c[e>>2]=c[g>>2];c[e+4>>2]=f;a=c[a>>2]|0;if(!a)break;else b=b+8|0}}return d|0}function Lq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;e=c[d>>2]|0;if((a|0)<=(e|0))if((a|0)>=(e|0)){e=c[b+4>>2]|0;a=c[d+4>>2]|0;if((e|0)>(a|0))a=1;else a=((e|0)<(a|0))<<31>>31}else a=-1;else a=1;return a|0}function Mq(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function Nq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+128|0;n=s+112|0;o=s+48|0;p=s;g=s+80|0;e=s+64|0;f=s+32|0;q=s+16|0;r=b+16|0;b=c[r>>2]|0;m=+h[b+16>>3];j=+h[b+24>>3];k=+h[b+32>>3];l=+h[b+40>>3];if((d+-1|0)>>>0<2){h[p>>3]=m;f=p+8|0;h[f>>3]=l;b=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,b);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[f>>3]=+h[f>>3]-+h[4216];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];f=g+16|0;h[p>>3]=k;b=p+8|0;h[b>>3]=j;t=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,t);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[b>>3]=+h[b>>3]-+h[4216];c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];c[e+8>>2]=c[p+8>>2];c[e+12>>2]=c[p+12>>2];c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2]}else{h[p>>3]=m;t=p+8|0;h[t>>3]=j;e=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,e);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[t>>3]=+h[t>>3]-+h[4216];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];t=g+16|0;h[p>>3]=k;e=p+8|0;h[e>>3]=l;b=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,b);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[e>>3]=+h[e>>3]-+h[4216];c[f>>2]=c[p>>2];c[f+4>>2]=c[p+4>>2];c[f+8>>2]=c[p+8>>2];c[f+12>>2]=c[p+12>>2];c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];c[t+8>>2]=c[f+8>>2];c[t+12>>2]=c[f+12>>2]}b=(c[r>>2]|0)+16|0;c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];b=c[r>>2]|0;e=c[b+12>>2]|0;if(e){b=e+56|0;e=p;f=b;g=e+16|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));t=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,t);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];t=p+8|0;h[t>>3]=+h[t>>3]-+h[4216];c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];b=c[r>>2]|0}if((c[b+180>>2]|0)>=1){e=1;while(1){Nq(c[(c[b+184>>2]|0)+(e<<2)>>2]|0,d);b=c[r>>2]|0;if((e|0)>=(c[b+180>>2]|0))break;else e=e+1|0}}i=s;return}function Oq(b,f){b=b|0;f=f|0;var g=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0.0,ha=0.0;ea=i;i=i+1568|0;aa=ea+536|0;da=ea+488|0;ca=ea+456|0;$=ea+448|0;O=ea+440|0;N=ea+432|0;M=ea+376|0;K=ea+328|0;F=ea+280|0;B=ea+272|0;A=ea+264|0;z=ea+256|0;y=ea+248|0;P=ea+208|0;Q=ea+192|0;S=ea+176|0;T=ea+160|0;U=ea+144|0;V=ea+104|0;W=ea+64|0;Y=ea+48|0;Z=ea+32|0;_=ea+16|0;R=ea;ba=b+16|0;I=(c[ba>>2]|0)+116|0;c[13537]=c[I>>2]&3;I=c[I>>2]&1;a[126425]=I;if(!(I<<24>>24))Pq(b);else Rq(b);I=c[ba>>2]|0;v=e[I+136>>1]&14;I=d[I+113>>0]|0;if(!((I&54|0)==0?(I&1|0)==0|(c[13363]|0)!=0:0)){k=Rk(b)|0;if(!k){m=0;k=0;l=0}else{u=(v|0)==0;n=0;r=0;l=0;while(1){m=c[(c[k+16>>2]|0)+108>>2]|0;do if(m)if(!(a[m+81>>0]|0)){t=r+1|0;break}else{t=r;l=l+1|0;break}else t=r;while(0);m=Lj(b,k)|0;if(!m)m=n;else{do{s=c[m+16>>2]|0;r=c[s+108>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);r=c[s+100>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);r=c[s+104>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);r=c[s+96>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);m=Nj(b,m)|0}while((m|0)!=0);m=n}k=Sk(b,k)|0;if(!k){k=t;break}else{n=m;r=t}}}if(!(a[(c[ba>>2]|0)+113>>0]&8))w=0;else w=Sq(b)|0;E=k+m|0;if(E){x=m+l+w+(ek(b)|0)|0;C=$p(x*40|0)|0;D=$p(E*40|0)|0;k=Rk(b)|0;if(!k){p=2147483647.0;g=-2147483647.0;o=-2147483647.0;j=2147483647.0;k=C}else{v=(v|0)==0;p=2147483647.0;j=2147483647.0;o=-2147483647.0;g=-2147483647.0;u=k;k=C;n=D;while(1){m=(a[126425]|0)==0;l=u+16|0;I=c[l>>2]|0;H=I+32|0;I=I+40|0;ga=+h[(m?I:H)>>3]*72.0;ha=+h[(m?H:I)>>3]*72.0;h[k+16>>3]=ha;h[k+24>>3]=ga;I=(c[l>>2]|0)+16|0;c[k>>2]=c[I>>2];c[k+4>>2]=c[I+4>>2];c[k+8>>2]=c[I+8>>2];c[k+12>>2]=c[I+12>>2];fa=+h[k>>3]-ha*.5;h[k>>3]=fa;I=k+8|0;q=+h[I>>3]-ga*.5;h[I>>3]=q;p=p<fa?p:fa;j=j<q?j:q;fa=ha+fa;q=ga+q;o=o>fa?o:fa;g=g>q?g:q;l=c[(c[l>>2]|0)+108>>2]|0;do if(l){if(a[l+81>>0]|0){I=k+40|0;fa=+h[l+24>>3];q=+h[l+32>>3];ga=m?fa:q;fa=m?q:fa;h[k+56>>3]=ga;h[k+64>>3]=fa;H=l+56|0;c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2];q=+h[I>>3]-ga*.5;h[I>>3]=q;k=k+48|0;ha=+h[k>>3]-fa*.5;h[k>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;k=I;break}if(m){I=l+24|0;c[n>>2]=c[I>>2];c[n+4>>2]=c[I+4>>2];c[n+8>>2]=c[I+8>>2];c[n+12>>2]=c[I+12>>2]}else{h[n>>3]=+h[l+32>>3];h[n+8>>3]=+h[l+24>>3]}c[n+32>>2]=l;a[n+36>>0]=0;c[k+32>>2]=n;n=n+40|0}while(0);k=k+40|0;l=Lj(b,u)|0;if(!l)l=n;else{t=l;while(1){s=t+16|0;m=c[s>>2]|0;l=c[m+96>>2]|0;a:do if(!l){r=n;J=59}else{do if(!(a[l+81>>0]|0)){if(!v?(c[m+8>>2]|0)!=0:0){is(Q,b,t);c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];J=k+16|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){J=l+24|0;c[n>>2]=c[J>>2];c[n+4>>2]=c[J+4>>2];c[n+8>>2]=c[J+8>>2];c[n+12>>2]=c[J+12>>2]}else{h[n>>3]=+h[l+32>>3];h[n+8>>3]=+h[l+24>>3]}c[n+32>>2]=l;a[n+36>>0]=0;c[k+32>>2]=n;l=n+40|0;break}c[y>>2]=c[l>>2];dj(0,126426,y)|0;l=n;break a}else{J=(a[126425]|0)==0;fa=+h[l+24>>3];q=+h[l+32>>3];ga=J?fa:q;fa=J?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=l+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=n}while(0);m=c[s>>2]|0;k=k+40|0;r=l;J=59}while(0);b:do if((J|0)==59){J=0;n=c[m+104>>2]|0;if(n){c:do if(!(a[n+81>>0]|0)){do if(!v){if(!(c[m+8>>2]|0))break;l=ks(t)|0;do if(l){l=c[l>>2]|0;if(!(c[l+8>>2]|0)){I=c[l>>2]|0;c[S>>2]=c[I>>2];c[S+4>>2]=c[I+4>>2];c[S+8>>2]=c[I+8>>2];c[S+12>>2]=c[I+12>>2];break}else{I=l+16|0;c[S>>2]=c[I>>2];c[S+4>>2]=c[I+4>>2];c[S+8>>2]=c[I+8>>2];c[S+12>>2]=c[I+12>>2];break}}else{c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;c[S+12>>2]=0}while(0);c[aa>>2]=c[S>>2];c[aa+4>>2]=c[S+4>>2];c[aa+8>>2]=c[S+8>>2];c[aa+12>>2]=c[S+12>>2];I=k+16|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){I=n+24|0;c[r>>2]=c[I>>2];c[r+4>>2]=c[I+4>>2];c[r+8>>2]=c[I+8>>2];c[r+12>>2]=c[I+12>>2]}else{h[r>>3]=+h[n+32>>3];h[r+8>>3]=+h[n+24>>3]}c[r+32>>2]=n;a[r+36>>0]=0;c[k+32>>2]=r;l=r+40|0;break c}while(0);c[z>>2]=c[n>>2];dj(0,126461,z)|0;l=r;break b}else{l=(a[126425]|0)==0;fa=+h[n+24>>3];q=+h[n+32>>3];ga=l?fa:q;fa=l?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=n+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=r}while(0);m=c[s>>2]|0;k=k+40|0;r=l}n=c[m+100>>2]|0;if(!n)n=r;else{d:do if(!(a[n+81>>0]|0)){do if(!v){if(!(c[m+8>>2]|0))break;l=ks(t)|0;do if(l){m=(c[l+4>>2]|0)+-1|0;l=c[l>>2]|0;if(!(c[l+(m*48|0)+12>>2]|0)){I=(c[l+(m*48|0)>>2]|0)+((c[l+(m*48|0)+4>>2]|0)+-1<<4)|0;c[T>>2]=c[I>>2];c[T+4>>2]=c[I+4>>2];c[T+8>>2]=c[I+8>>2];c[T+12>>2]=c[I+12>>2];break}else{I=l+(m*48|0)+32|0;c[T>>2]=c[I>>2];c[T+4>>2]=c[I+4>>2];c[T+8>>2]=c[I+8>>2];c[T+12>>2]=c[I+12>>2];break}}else{c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;c[T+12>>2]=0}while(0);c[aa>>2]=c[T>>2];c[aa+4>>2]=c[T+4>>2];c[aa+8>>2]=c[T+8>>2];c[aa+12>>2]=c[T+12>>2];I=k+16|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){I=n+24|0;c[r>>2]=c[I>>2];c[r+4>>2]=c[I+4>>2];c[r+8>>2]=c[I+8>>2];c[r+12>>2]=c[I+12>>2]}else{h[r>>3]=+h[n+32>>3];h[r+8>>3]=+h[n+24>>3]}c[r+32>>2]=n;a[r+36>>0]=0;c[k+32>>2]=r;l=r+40|0;break d}while(0);c[A>>2]=c[n>>2];dj(0,126501,A)|0;l=r;break b}else{l=(a[126425]|0)==0;fa=+h[n+24>>3];q=+h[n+32>>3];ga=l?fa:q;fa=l?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=n+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=r}while(0);m=c[s>>2]|0;k=k+40|0;n=l}l=c[m+108>>2]|0;if(!l)l=n;else{e:do if(!(a[l+81>>0]|0)){do if(!v){if(!(c[m+8>>2]|0))break;is(U,b,t);c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];c[aa+8>>2]=c[U+8>>2];c[aa+12>>2]=c[U+12>>2];I=k+16|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){I=l+24|0;c[n>>2]=c[I>>2];c[n+4>>2]=c[I+4>>2];c[n+8>>2]=c[I+8>>2];c[n+12>>2]=c[I+12>>2]}else{h[n>>3]=+h[l+32>>3];h[n+8>>3]=+h[l+24>>3]}c[n+32>>2]=l;a[n+36>>0]=0;c[k+32>>2]=n;l=n+40|0;break e}while(0);c[B>>2]=c[l>>2];dj(0,126541,B)|0;l=n;break b}else{I=(a[126425]|0)==0;fa=+h[l+24>>3];q=+h[l+32>>3];ga=I?fa:q;fa=I?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=l+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=n}while(0);k=k+40|0}}while(0);t=Nj(b,t)|0;if(!t)break;else n=l}}u=Sk(b,u)|0;if(!u)break;else n=l}}if(w){h[V>>3]=p;l=V+8|0;h[l>>3]=j;m=V+16|0;h[m>>3]=o;n=V+24|0;h[n>>3]=g;c[V+32>>2]=k;G=aa;H=V;I=G+40|0;do{c[G>>2]=c[H>>2];G=G+4|0;H=H+4|0}while((G|0)<(I|0));Tq(W,b,aa);G=V;H=W;I=G+40|0;do{c[G>>2]=c[H>>2];G=G+4|0;H=H+4|0}while((G|0)<(I|0));p=+h[V>>3];j=+h[l>>3];o=+h[m>>3];g=+h[n>>3]}n=P+32|0;a[n>>0]=Ks(b,rj(b,0,126577,0)|0,1)|0;h[P>>3]=p;m=P+8|0;h[m>>3]=j;l=P+16|0;h[l>>3]=o;k=P+24|0;h[k>>3]=g;Ev(C,x,D,E,P)|0;if((a[124827]|0)!=0?(L=c[22667]|0,I=d[n>>0]|0,q=+h[P>>3],fa=+h[m>>3],ga=+h[l>>3],ha=+h[k>>3],c[F>>2]=x,c[F+4>>2]=E,c[F+8>>2]=I,h[F+16>>3]=q,h[F+24>>3]=fa,h[F+32>>3]=ga,h[F+40>>3]=ha,Bz(L,126589,F)|0,(d[124827]|0)>=2):0){Mz(126649,8,1,L)|0;if((x|0)>0){k=C;n=0;while(1){l=c[k+32>>2]|0;g=+h[k>>3];j=+h[k+8>>3];o=+h[k+16>>3];p=+h[k+24>>3];if(!l)m=164137;else m=c[c[l+32>>2]>>2]|0;c[K>>2]=n;h[K+8>>3]=g;h[K+16>>3]=j;h[K+24>>3]=o;h[K+32>>3]=p;c[K+40>>2]=l;c[K+44>>2]=m;Bz(L,126658,K)|0;n=n+1|0;if((n|0)==(x|0))break;else k=k+40|0}}Mz(126701,8,1,L)|0;if((E|0)>0){k=D;l=0;while(1){J=d[k+36>>0]|0;q=+h[k+16>>3];fa=+h[k+24>>3];ga=+h[k>>3];ha=+h[k+8>>3];K=c[c[k+32>>2]>>2]|0;c[M>>2]=l;c[M+4>>2]=k;c[M+8>>2]=J;h[M+16>>3]=q;h[M+24>>3]=fa;h[M+32>>3]=ga;h[M+40>>3]=ha;c[M+48>>2]=K;Bz(L,126710,M)|0;l=l+1|0;if((l|0)==(E|0)){J=114;break}else k=k+40|0}}else k=0}else J=114;if((J|0)==114)if((E|0)>0){k=0;l=0;m=D;while(1){if(a[m+36>>0]|0){M=c[m+32>>2]|0;a[M+81>>0]=1;ha=+h[m+24>>3]+ +h[m+8>>3]*.5;h[M+56>>3]=+h[m+16>>3]+ +h[m>>3]*.5;h[M+64>>3]=ha;_s(b,M);k=k+1|0}l=l+1|0;if((l|0)==(E|0))break;else m=m+40|0}}else k=0;if(!(a[124827]|0)){if((k|0)!=(E|0)){c[O>>2]=k;c[O+4>>2]=E;dj(0,126791,O)|0}}else{O=c[22667]|0;c[N>>2]=k;c[N+4>>2]=E;Bz(O,126758,N)|0}pB(C);pB(D)}}l=c[ba>>2]|0;n=c[l+12>>2]|0;do if((n|0)!=0?(a[n+81>>0]|0)==0:0){p=+h[n+24>>3]+16.0;q=+h[n+32>>3]+8.0;k=(a[l+275>>0]&1)!=0;if(a[126425]|0){if(k){O=l+32|0;h[O>>3]=q+ +h[O>>3]}else{O=l+16|0;h[O>>3]=+h[O>>3]-q}k=l+40|0;g=+h[k>>3];m=l+24|0;j=+h[m>>3];o=g-j;if(!(p>o))break;ha=(p-o)*.5;h[m>>3]=j-ha;h[k>>3]=ha+g;break}m=(c[13537]|0)==0;do if(k)if(m){O=l+40|0;h[O>>3]=q+ +h[O>>3];break}else{O=l+24|0;h[O>>3]=+h[O>>3]-q;break}else if(m){O=l+24|0;h[O>>3]=+h[O>>3]-q;break}else{O=l+40|0;h[O>>3]=q+ +h[O>>3];break}while(0);k=l+32|0;g=+h[k>>3];m=l+16|0;j=+h[m>>3];o=g-j;if(p>o){ha=(p-o)*.5;h[m>>3]=j-ha;h[k>>3]=ha+g}}else{p=0.0;q=0.0}while(0);if(f){k=c[13537]|0;switch(k|0){case 0:{f=l+16|0;c[8430]=c[f>>2];c[8431]=c[f+4>>2];c[8432]=c[f+8>>2];c[8433]=c[f+12>>2];break}case 1:{ha=+h[l+16>>3];h[4215]=-+h[l+40>>3];h[4216]=ha;break}case 2:{ha=-+h[l+40>>3];h[4215]=+h[l+16>>3];h[4216]=ha;break}case 3:{ha=+h[l+16>>3];h[4215]=+h[l+24>>3];h[4216]=ha;break}default:{}}if(+h[4215]!=0.0|+h[4216]!=0.0|(k|0)!=0){k=Rk(b)|0;if(k){x=Q+8|0;y=Q+8|0;z=Q+8|0;A=Q+8|0;B=Q+8|0;C=Q+8|0;D=Q+8|0;E=Q+8|0;F=Q+8|0;do{if(!(c[13537]|0))n=0;else{qt(k,0);n=c[13537]|0}l=k+16|0;m=(c[l>>2]|0)+16|0;G=Q;H=m;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,n*90|0);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[x>>3]=+h[x>>3]-+h[4216];c[_>>2]=c[Q>>2];c[_+4>>2]=c[Q+4>>2];c[_+8>>2]=c[Q+8>>2];c[_+12>>2]=c[Q+12>>2];c[m>>2]=c[_>>2];c[m+4>>2]=c[_+4>>2];c[m+8>>2]=c[_+8>>2];c[m+12>>2]=c[_+12>>2];l=c[(c[l>>2]|0)+108>>2]|0;if(l){l=l+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[F>>3]=+h[F>>3]-+h[4216];c[R>>2]=c[Q>>2];c[R+4>>2]=c[Q+4>>2];c[R+8>>2]=c[Q+8>>2];c[R+12>>2]=c[Q+12>>2];c[l>>2]=c[R>>2];c[l+4>>2]=c[R+4>>2];c[l+8>>2]=c[R+8>>2];c[l+12>>2]=c[R+12>>2]}if((c[13362]|0)==1?(X=Lj(b,k)|0,(X|0)!=0):0){w=X;do{v=w+16|0;l=c[v>>2]|0;m=c[l+8>>2]|0;do if(!m){if((a[124828]|0)==0?(a[l+112>>0]|0)!=6:0){O=ok(c[((c[w>>2]&3|0)==3?w:w+48|0)+40>>2]|0)|0;f=ok(c[((c[w>>2]&3|0)==2?w:w+-48|0)+40>>2]|0)|0;c[$>>2]=O;c[$+4>>2]=f;dj(1,126833,$)|0}}else{if((c[m+4>>2]|0)>0){u=0;do{t=c[m>>2]|0;l=c[t+(u*48|0)>>2]|0;m=c[t+(u*48|0)+4>>2]|0;n=c[t+(u*48|0)+8>>2]|0;t=c[t+(u*48|0)+12>>2]|0;if((m|0)>0){s=0;do{r=l+(s<<4)|0;G=Q;H=r;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[A>>3]=+h[A>>3]-+h[4216];c[S>>2]=c[Q>>2];c[S+4>>2]=c[Q+4>>2];c[S+8>>2]=c[Q+8>>2];c[S+12>>2]=c[Q+12>>2];c[r>>2]=c[S>>2];c[r+4>>2]=c[S+4>>2];c[r+8>>2]=c[S+8>>2];c[r+12>>2]=c[S+12>>2];s=s+1|0}while((s|0)!=(m|0))}if(n){l=(c[c[(c[v>>2]|0)+8>>2]>>2]|0)+(u*48|0)+16|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[z>>3]=+h[z>>3]-+h[4216];c[T>>2]=c[Q>>2];c[T+4>>2]=c[Q+4>>2];c[T+8>>2]=c[Q+8>>2];c[T+12>>2]=c[Q+12>>2];c[l>>2]=c[T>>2];c[l+4>>2]=c[T+4>>2];c[l+8>>2]=c[T+8>>2];c[l+12>>2]=c[T+12>>2]}if(t){l=(c[c[(c[v>>2]|0)+8>>2]>>2]|0)+(u*48|0)+32|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[y>>3]=+h[y>>3]-+h[4216];c[U>>2]=c[Q>>2];c[U+4>>2]=c[Q+4>>2];c[U+8>>2]=c[Q+8>>2];c[U+12>>2]=c[Q+12>>2];c[l>>2]=c[U>>2];c[l+4>>2]=c[U+4>>2];c[l+8>>2]=c[U+8>>2];c[l+12>>2]=c[U+12>>2]}u=u+1|0;l=c[v>>2]|0;m=c[l+8>>2]|0}while((u|0)<(c[m+4>>2]|0))}m=c[l+96>>2]|0;if(m){l=m+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[E>>3]=+h[E>>3]-+h[4216];c[V>>2]=c[Q>>2];c[V+4>>2]=c[Q+4>>2];c[V+8>>2]=c[Q+8>>2];c[V+12>>2]=c[Q+12>>2];c[l>>2]=c[V>>2];c[l+4>>2]=c[V+4>>2];c[l+8>>2]=c[V+8>>2];c[l+12>>2]=c[V+12>>2];l=c[v>>2]|0}m=c[l+108>>2]|0;if(m){l=m+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[D>>3]=+h[D>>3]-+h[4216];c[W>>2]=c[Q>>2];c[W+4>>2]=c[Q+4>>2];c[W+8>>2]=c[Q+8>>2];c[W+12>>2]=c[Q+12>>2];c[l>>2]=c[W>>2];c[l+4>>2]=c[W+4>>2];c[l+8>>2]=c[W+8>>2];c[l+12>>2]=c[W+12>>2];l=c[v>>2]|0}m=c[l+100>>2]|0;if(m){l=m+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[C>>3]=+h[C>>3]-+h[4216];c[Y>>2]=c[Q>>2];c[Y+4>>2]=c[Q+4>>2];c[Y+8>>2]=c[Q+8>>2];c[Y+12>>2]=c[Q+12>>2];c[l>>2]=c[Y>>2];c[l+4>>2]=c[Y+4>>2];c[l+8>>2]=c[Y+8>>2];c[l+12>>2]=c[Y+12>>2];l=c[v>>2]|0}l=c[l+104>>2]|0;if(!l)break;l=l+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[B>>3]=+h[B>>3]-+h[4216];c[Z>>2]=c[Q>>2];c[Z+4>>2]=c[Q+4>>2];c[Z+8>>2]=c[Q+8>>2];c[Z+12>>2]=c[Q+12>>2];c[l>>2]=c[Z>>2];c[l+4>>2]=c[Z+4>>2];c[l+8>>2]=c[Z+8>>2];c[l+12>>2]=c[Z+12>>2]}while(0);w=Nj(b,w)|0}while((w|0)!=0)}k=Sk(b,k)|0}while((k|0)!=0)}Nq(b,c[(c[ba>>2]|0)+116>>2]&3)}l=c[ba>>2]|0;n=c[l+12>>2]|0}if((n|0)!=0?(a[n+81>>0]|0)==0:0){m=a[l+275>>0]|0;k=m<<24>>24;do if(!(k&4)){g=+h[l+16>>3];if(!(k&2)){j=(g+ +h[l+32>>3])*.5;break}else{j=p*.5+g;break}}else j=+h[l+32>>3]-p*.5;while(0);if(!(m&1))g=q*.5+ +h[l+24>>3];else g=+h[l+40>>3]-q*.5;h[n+56>>3]=j;h[n+64>>3]=g;a[(c[(c[ba>>2]|0)+12>>2]|0)+81>>0]=1}if(c[13359]|0){if(!(a[126425]|0)){ha=+h[4216];ga=+h[4215];h[da>>3]=ha;h[da+8>>3]=ga;h[da+16>>3]=ha;h[da+24>>3]=ga;h[da+32>>3]=-ga;h[da+40>>3]=-ha;Oz(aa,127065,da)|0}else{ga=+h[4215];ha=+h[4216];h[ca>>3]=ga;h[ca+8>>3]=ha;h[ca+16>>3]=ga;h[ca+24>>3]=ha;Oz(aa,126850,ca)|0}da=oA(aa)|0;c[c[13359]>>2]=da}i=ea;return}function Pq(b){b=b|0;var d=0,e=0.0,f=0,g=0.0,i=0.0,j=0,k=0;f=(hl(b)|0)==(b|0);k=b+16|0;b=c[k>>2]|0;if((!f?(j=c[b+12>>2]|0,(j|0)!=0):0)?(a[j+81>>0]|0)==0:0){f=a[b+275>>0]|0;if(!(f&1)){d=b+48|0;i=+h[b+24>>3]+ +h[b+56>>3]*.5}else{d=b+80|0;i=+h[b+40>>3]-+h[b+88>>3]*.5}g=+h[d>>3];d=f<<24>>24;do if(!(d&4)){e=+h[b+16>>3];if(!(d&2)){e=(e+ +h[b+32>>3])*.5;break}else{e=g*.5+e;break}}else e=+h[b+32>>3]-g*.5;while(0);h[j+56>>3]=e;h[j+64>>3]=i;b=c[k>>2]|0;a[(c[b+12>>2]|0)+81>>0]=1}if((c[b+180>>2]|0)>=1){d=1;while(1){Pq(c[(c[b+184>>2]|0)+(d<<2)>>2]|0);b=c[k>>2]|0;if((d|0)>=(c[b+180>>2]|0))break;else d=d+1|0}}return}function Qq(a){a=a|0;Oq(a,1);return}function Rq(b){b=b|0;var d=0,e=0.0,f=0,g=0.0,i=0.0,j=0,k=0;f=(hl(b)|0)==(b|0);k=b+16|0;b=c[k>>2]|0;if((!f?(j=c[b+12>>2]|0,(j|0)!=0):0)?(a[j+81>>0]|0)==0:0){f=a[b+275>>0]|0;if(!(f&1)){d=b+104|0;i=+h[b+16>>3]+ +h[b+96>>3]*.5}else{d=b+72|0;i=+h[b+32>>3]-+h[b+64>>3]*.5}g=+h[d>>3];d=f<<24>>24;do if(!(d&4)){e=+h[b+40>>3];if(!(d&2)){e=(+h[b+24>>3]+e)*.5;break}else{e=e-g*.5;break}}else e=g*.5+ +h[b+24>>3];while(0);h[j+56>>3]=i;h[j+64>>3]=e;b=c[k>>2]|0;a[(c[b+12>>2]|0)+81>>0]=1}if((c[b+180>>2]|0)>=1){d=1;while(1){Rq(c[(c[b+184>>2]|0)+(d<<2)>>2]|0);b=c[k>>2]|0;if((d|0)>=(c[b+180>>2]|0))break;else d=d+1|0}}return}function Sq(b){b=b|0;var d=0,e=0,f=0,g=0;g=(hl(b)|0)==(b|0);f=b+16|0;d=c[f>>2]|0;if(!g?(e=c[d+12>>2]|0,(e|0)!=0):0)b=(a[e+81>>0]|0)!=0&1;else b=0;if((c[d+180>>2]|0)>=1){e=1;while(1){b=(Sq(c[(c[d+184>>2]|0)+(e<<2)>>2]|0)|0)+b|0;d=c[f>>2]|0;if((e|0)>=(c[d+180>>2]|0))break;else e=e+1|0}}return b|0}function Tq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;q=i;i=i+80|0;p=q+40|0;m=q;n=d+16|0;f=c[n>>2]|0;if((c[f+180>>2]|0)>=1){l=1;while(1){f=c[(c[f+184>>2]|0)+(l<<2)>>2]|0;g=p;j=e;k=g+40|0;do{c[g>>2]=c[j>>2];g=g+4|0;j=j+4|0}while((g|0)<(k|0));Tq(m,f,p);g=e;j=m;k=g+40|0;do{c[g>>2]=c[j>>2];g=g+4|0;j=j+4|0}while((g|0)<(k|0));f=c[n>>2]|0;if((l|0)>=(c[f+180>>2]|0))break;else l=l+1|0}}if(((hl(d)|0)!=(d|0)?(o=c[(c[n>>2]|0)+12>>2]|0,(o|0)!=0):0)?(a[o+81>>0]|0)!=0:0){p=e+32|0;d=c[p>>2]|0;y=+h[e>>3];l=e+8|0;w=+h[l>>3];m=e+16|0;u=+h[m>>3];n=e+24|0;s=+h[n>>3];k=(a[126425]|0)==0;r=+h[o+24>>3];x=+h[o+32>>3];t=k?r:x;r=k?x:r;h[d+16>>3]=t;h[d+24>>3]=r;o=o+56|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];x=+h[d>>3]-t*.5;h[d>>3]=x;o=d+8|0;v=+h[o>>3]-r*.5;h[o>>3]=v;t=t+x;r=r+v;h[e>>3]=y<x?y:x;h[l>>3]=w<v?w:v;h[m>>3]=u>t?u:t;h[n>>3]=s>r?s:r;c[p>>2]=d+40}g=b;j=e;k=g+40|0;do{c[g>>2]=c[j>>2];g=g+4|0;j=j+4|0}while((g|0)<(k|0));i=q;return}function Uq(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+1152|0;d=r+32|0;q=r+24|0;j=r+8|0;e=r;g=r+128|0;n=r+52|0;l=r+48|0;m=r+44|0;o=r+40|0;p=r+36|0;k=Ts(zj(b,129098)|0)|0;if(k){d=c[13538]|0;if(!d){d=Vi(54156,c[12573]|0)|0;c[13538]=d}d=ub[c[d>>2]&31](d,k,512)|0;do if(!d){f=Az(k,162372)|0;if(!f){c[e>>2]=k;dj(0,127860,e)|0;d=0;break}else{e=0;d=0}do{if(!(yz(g,1024,f)|0))break;c[j>>2]=l;c[j+4>>2]=m;c[j+8>>2]=o;c[j+12>>2]=p;s=(Pz(g,127888,j)|0)==4;d=s?1:d;if((a[g>>0]|0)!=37){s=(wA(g,127917)|0)==0;e=s?e:1}}while(!((d|0)!=0&(e|0)!=0));if(!d){c[q>>2]=k;dj(0,127922,q)|0;d=0}else{d=aq(64)|0;c[d+32>>2]=c[l>>2];s=d+36|0;c[s>>2]=c[m>>2];c[d+40>>2]=(c[o>>2]|0)-(c[l>>2]|0);c[s>>2]=(c[p>>2]|0)-(c[m>>2]|0);c[d+8>>2]=k;s=c[13548]|0;c[13548]=s+1;c[d+12>>2]=s;fz(zz(f)|0,n)|0;s=c[n+36>>2]|0;q=aq(s+1|0)|0;c[d+52>>2]=q;Hz(f,0,0)|0;Ez(q,s,1,f)|0;a[q+s>>0]=0;s=c[13538]|0;ub[c[s>>2]&31](s,d,1)|0;a[d+16>>0]=e}uz(f)|0}while(0);if(d){p=c[d+40>>2]|0;q=c[d+44>>2]|0;b=b+16|0;s=c[b>>2]|0;h[s+32>>3]=+(p|0)/72.0;h[s+40>>3]=+(q|0)/72.0;s=$p(12)|0;c[(c[b>>2]|0)+12>>2]=s;c[s>>2]=c[d+12>>2];c[s+4>>2]=((p|0)/-2|0)-(c[d+32>>2]|0);c[s+8>>2]=((q|0)/-2|0)-(c[d+36>>2]|0)}}else{c[d>>2]=ok(b)|0;dj(0,127961,d)|0}i=r;return}function Vq(a){a=a|0;a=c[(c[a+16>>2]|0)+12>>2]|0;if(a)pB(a);return}function Wq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;o=p+8|0;n=p;m=(d|0)!=0;a:do if(m){j=0;k=1;while(1){h=c[d+(j<<2)>>2]|0;if(!h){l=2;break a}k=(a[h>>0]|0)==0?0:k;if(!(k<<24>>24))break;else j=j+1|0}}else l=2;while(0);if((l|0)==2?(g=c[e>>2]|0,(g|0)!=0):0)do{_m(b,g)|0;_m(b,175632)|0;e=e+4|0;g=c[e>>2]|0}while((g|0)!=0);if(m?(f=c[d>>2]|0,(f|0)!=0):0){h=0;do{do if(a[f>>0]|0){e=Ts(f)|0;if(!e){c[n>>2]=f;dj(0,128010,n)|0;break}g=Az(e,162372)|0;if(!g){c[o>>2]=e;dj(0,128038,o)|0;break}f=Ss(g)|0;if(f)do{_m(b,f)|0;f=Ss(g)|0}while((f|0)!=0);_m(b,175632)|0;uz(g)|0}while(0);h=h+1|0;f=c[d+(h<<2)>>2]|0}while((f|0)!=0)}i=p;return}-function Li(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=d+16|0;f=c[o>>2]|0;e=c[f+192>>2]|0;if(e){do{i=e+16|0;e=c[i>>2]|0;f=c[e+188>>2]|0;if((f|0)!=0?(j=c[f>>2]|0,(j|0)!=0):0){f=j;g=0;do{Mi(f);g=g+1|0;e=c[i>>2]|0;f=c[(c[e+188>>2]|0)+(g<<2)>>2]|0}while((f|0)!=0)}if((c[e+208>>2]|0)>0){g=0;do{f=c[(c[e+204>>2]|0)+(g<<2)>>2]|0;k=c[f>>2]&3;if((c[(c[(c[((k|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)==(c[(c[(c[((k|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)){Mi(f);e=c[i>>2]|0}g=g+1|0}while((g|0)<(c[e+208>>2]|0))}e=c[e+164>>2]|0}while((e|0)!=0);f=c[o>>2]|0}k=c[f+196>>2]|0;if(!((c[k+56>>2]|0)==0?(c[f+180>>2]|0)<=0:0))m=13;a:do if((m|0)==13?(n=c[k+4>>2]|0,l=c[n>>2]|0,(l|0)!=0):0){e=l;j=0;b:while(1){i=c[(c[e+16>>2]|0)+196>>2]|0;e=c[i>>2]|0;if(e){g=0;do{m=c[e+16>>2]|0;if((c[m+96>>2]|0)!=0?(a[m+113>>0]|0)==0:0)break b;g=g+1|0;e=c[i+(g<<2)>>2]|0}while((e|0)!=0)}j=j+1|0;e=c[n+(j<<2)>>2]|0;if(!e)break a}if(b[f+236>>1]|0)Ia(119603,119622,190,119629);e=(b[f+238>>1]|0)+3|0;if(!k)e=aq(e<<6)|0;else e=cq(k,e<<6)|0;e=e+64|0;n=c[o>>2]|0;c[n+196>>2]=e;n=b[n+238>>1]|0;f=n<<16>>16;if(n<<16>>16>-1){do{j=f;f=f+-1|0;i=e+(j<<6)|0;e=e+(f<<6)|0;g=i+64|0;do{c[i>>2]=c[e>>2];i=i+4|0;e=e+4|0}while((i|0)<(g|0));e=c[(c[o>>2]|0)+196>>2]|0}while((j|0)>0);f=-1}c[e+(f<<6)+8>>2]=0;c[e+(f<<6)>>2]=0;l=$p(8)|0;n=c[o>>2]|0;m=c[n+196>>2]|0;c[m+(f<<6)+12>>2]=l;c[m+(f<<6)+4>>2]=l;c[m+(f<<6)+56>>2]=0;h[m+(f<<6)+24>>3]=1.0;h[m+(f<<6)+16>>3]=1.0;h[m+(f<<6)+40>>3]=1.0;h[m+(f<<6)+32>>3]=1.0;n=n+236|0;b[n>>1]=(b[n>>1]|0)+-1<<16>>16}while(0);ug(d);e=c[(c[o>>2]|0)+192>>2]|0;if(e){f=e;e=0;do{m=f+16|0;g=c[m>>2]|0;f=c[g+188>>2]|0;if(f){f=c[f>>2]|0;if(!f)f=g;else{k=0;do{i=c[f+16>>2]|0;j=c[i+96>>2]|0;do if(j){if(!(a[i+113>>0]|0)){Ni(f);g=c[m>>2]|0;e=1;break}if(!(c[(c[o>>2]|0)+116>>2]&1)){h[i+136>>3]=+h[j+24>>3];break}else{h[i+136>>3]=+h[j+32>>3];break}}while(0);k=k+1|0;f=c[(c[g+188>>2]|0)+(k<<2)>>2]|0}while((f|0)!=0);f=g}if((c[f+208>>2]|0)>0){l=0;do{k=c[(c[f+204>>2]|0)+(l<<2)>>2]|0;n=c[k>>2]&3;j=c[((n|0)==3?k:k+48|0)+40>>2]|0;n=c[((n|0)==2?k:k+-48|0)+40>>2]|0;do if(!((j|0)==(n|0)?1:(c[(c[j+16>>2]|0)+232>>2]|0)!=(c[(c[n+16>>2]|0)+232>>2]|0))){i=k;do{g=c[i+16>>2]|0;i=c[g+172>>2]|0}while((i|0)!=0);i=a[g+113>>0]|0;j=c[k+16>>2]|0;a[j+113>>0]=i;j=c[j+96>>2]|0;if(j)if(!(i<<24>>24)){Ni(k);f=c[m>>2]|0;e=1;break}else{q=+h[((c[(c[o>>2]|0)+116>>2]&1|0)==0?j+24|0:j+32|0)>>3];n=g+136|0;p=+h[n>>3];h[n>>3]=q>p?q:p;break}}while(0);l=l+1|0}while((l|0)<(c[f+208>>2]|0))}}else f=g;f=c[f+164>>2]|0}while((f|0)!=0);if(e){rg(d);vg(d)}else e=0}else e=0;return e|0}function Mi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[b>>2]&3;i=c[((d|0)==3?b:b+48|0)+40>>2]|0;e=c[i+16>>2]|0;f=c[e+236>>2]|0;d=c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;h=(f|0)<(d|0);g=h?d:f;e=c[e+232>>2]|0;e=(c[(c[(wf(i)|0)+16>>2]|0)+196>>2]|0)+(e<<6)+4|0;d=(h?f:d)+1|0;a:do if((d|0)<(g|0)){f=c[e>>2]|0;while(1){e=c[(c[f+(d<<2)>>2]|0)+16>>2]|0;switch(a[e+156>>0]|0){case 0:break a;case 1:{if(c[e+104>>2]|0)break a;break}default:{}}d=d+1|0;if((d|0)>=(g|0))break a}}while(0);if((d|0)==(g|0))do{i=c[b+16>>2]|0;a[i+113>>0]=1;b=c[i+172>>2]|0}while((b|0)!=0);return}function Ni(b){b=b|0;var d=0,e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;y=i;i=i+16|0;m=y;s=b+16|0;if(c[(c[s>>2]|0)+96>>2]|0){u=b+48|0;t=wf(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)|0;d=c[b>>2]&3;j=c[(c[((d|0)==3?b:u)+40>>2]|0)+16>>2]|0;r=c[j+232>>2]|0;x=r+-1|0;v=t+16|0;o=c[(c[v>>2]|0)+196>>2]|0;k=c[o+(x<<6)+4>>2]|0;o=c[o+(x<<6)>>2]|0;p=m+8|0;c[p>>2]=-1;c[m>>2]=-1;q=m+12|0;c[q>>2]=o;l=m+4|0;c[l>>2]=o;w=b+-48|0;j=c[j+236>>2]|0;d=c[(c[(c[((d|0)==2?b:w)+40>>2]|0)+16>>2]|0)+236>>2]|0;e=(j|0)>(d|0);g=e?j:d;j=e?d:j;d=o;e=-1;n=0;while(1){o=o+-1|0;if((n|0)>(o|0))break;Oi(c[k+(n<<2)>>2]|0,m,j,g);if((n|0)!=(o|0))Oi(c[k+(o<<2)>>2]|0,m,j,g);d=c[l>>2]|0;e=c[m>>2]|0;if((d-e|0)<2)break;else n=n+1|0}if((e|0)>(d|0))d=(c[q>>2]|0)+(c[p>>2]|0)|0;else d=e+d|0;l=(d+1|0)/2|0;d=c[v>>2]|0;g=c[d+196>>2]|0;k=c[g+(x<<6)+4>>2]|0;e=c[k>>2]|0;if(!e)f=+h[(c[(c[c[g+(r<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[g+(r<<6)+24>>3]+ +(c[d+252>>2]|0);else f=+h[(c[e+16>>2]|0)+24>>3]-+h[g+(x<<6)+16>>3];j=~~f;d=c[g+(x<<6)>>2]|0;if(!k)e=aq((d<<2)+8|0)|0;else e=cq(k,(d<<2)+8|0)|0;d=c[(c[v>>2]|0)+196>>2]|0;c[d+(x<<6)+4>>2]=e;d=c[d+(x<<6)>>2]|0;if((d|0)>(l|0))do{q=d;d=d+-1|0;r=c[e+(d<<2)>>2]|0;c[e+(q<<2)>>2]=r;r=(c[r+16>>2]|0)+236|0;c[r>>2]=(c[r>>2]|0)+1}while((d|0)>(l|0));g=lg(t)|0;d=e+(l<<2)|0;c[d>>2]=g;g=c[g+16>>2]|0;c[g+236>>2]=l;c[g+232>>2]=x;g=(c[(c[v>>2]|0)+196>>2]|0)+(x<<6)|0;r=(c[g>>2]|0)+1|0;c[g>>2]=r;c[e+(r<<2)>>2]=0;d=c[d>>2]|0;s=c[(c[s>>2]|0)+96>>2]|0;z=+h[s+24>>3];f=+h[s+32>>3];r=(c[(c[v>>2]|0)+116>>2]&1|0)==0;A=r?f:z;g=d+16|0;e=c[g>>2]|0;h[e+80>>3]=A;t=~~(A*.5);f=(r?z:f)*.5;h[e+96>>3]=f;h[e+88>>3]=f;c[e+104>>2]=s;h[e+24>>3]=+(t+j|0);e=hg(d,c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0,b)|0;e=c[e+16>>2]|0;h[e+16>>3]=-+h[(c[g>>2]|0)+88>>3];h[e+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)+16>>2]|0)+96>>3];a[e+112>>0]=4;d=hg(d,c[((c[b>>2]&3|0)==2?b:w)+40>>2]|0,b)|0;g=c[g>>2]|0;d=c[d+16>>2]|0;h[d+16>>3]=+h[g+96>>3];h[d+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==2?b:w)+40>>2]|0)+16>>2]|0)+88>>3];a[d+112>>0]=4;d=c[(c[v>>2]|0)+196>>2]|0;e=d+(x<<6)+16|0;f=+(t|0);if(+h[e>>3]<f)h[e>>3]=f;d=d+(x<<6)+24|0;if(+h[d>>3]<f)h[d>>3]=f;c[g+112>>2]=b}i=y;return}function Oi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=c[b+16>>2]|0;do if((a[b+156>>0]|0)==1){k=c[b+236>>2]|0;if(c[b+176>>2]|0){j=c[b+180>>2]|0;b=c[j>>2]|0;if(!b)break;else{h=b;i=0;g=0;b=0}do{l=c[(c[(c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;m=(l|0)>(e|0);g=m?g:1;b=m?((l|0)<(f|0)?b:1):b;i=i+1|0;h=c[j+(i<<2)>>2]|0}while((h|0)!=0);if(g<<24>>24!=0&b<<24>>24==0)c[d>>2]=k+1;if(!(g<<24>>24==0&b<<24>>24!=0))break;c[d+4>>2]=k+-1;break}if((c[b+184>>2]|0)!=2)Ia(119641,119622,63,119661);m=c[b+180>>2]|0;g=c[m>>2]|0;m=c[m+4>>2]|0;g=c[(c[(c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;m=c[(c[(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;l=(g|0)>(m|0);b=l?g:m;g=l?m:g;if((b|0)<=(e|0)){c[d>>2]=k;c[d+8>>2]=k;break}if((g|0)>=(f|0)){c[d+4>>2]=k;c[d+12>>2]=k;break}h=(g|0)<(e|0);i=(b|0)>(f|0);if(!(h&i)){if(!(!h?!((g|0)==(e|0)&(b|0)<(f|0)):0))c[d+8>>2]=k;if(!i?!((b|0)==(f|0)&(g|0)>(e|0)):0)break;c[d+12>>2]=k}}while(0);return}function Pi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;do if((a|0)!=0?(c[a+24>>2]|0)<=0:0){h=c[a+4>>2]|0;g=h+32|0;b=c[g>>2]|0;if(b){b=Jb[b&31](a,2,0,h)|0;if((b|0)<0){b=-1;break}}else b=0;if(c[a+28>>2]|0)$i(a,0)|0;f=(b|0)==0;if(f){ub[c[c[a+16>>2]>>2]&31](a,0,64)|0;if((Xi(a)|0)>0){b=-1;break}d=a+8|0;b=c[d>>2]|0;if((c[b+12>>2]|0)>0){e=a+12|0;Jb[c[e>>2]&31](a,c[b+8>>2]|0,0,h)|0;b=c[d>>2]|0}else e=a+12|0;Jb[c[e>>2]&31](a,b,0,h)|0}b=c[a+20>>2]|0;if(b){if(f&(b|0)==1)Jb[c[a+12>>2]&31](a,a,0,h)|0}else pB(a);b=c[g>>2]|0;if(!b)b=0;else{Jb[b&31](a,6,0,h)|0;b=0}}else b=-1;while(0);return b|0}function Qi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=a+4|0;e=c[f>>2]|0;a:do if(e){if(b){n=c[c[a+16>>2]>>2]|0;h=a+8|0;if(c[c[h>>2]>>2]&4096)Wi(a,0)|0;g=c[e+32>>2]|0;if((g|0)!=0?(Jb[g&31](a,3,b,e)|0)<0:0){e=0;break}c[f>>2]=b;f=c[b+28>>2]|0;c[a+12>>2]=(f|0)==0?19:f;f=c[c[h>>2]>>2]|0;if(!(f&112)){do if(!(f&2))if(!(f&3))if(!(d&1))break;else break a;else if((d&3|0)==3)break a;else break;else if(d&2)break a;while(0);g=Ti(a)|0;f=c[h>>2]|0;m=c[f>>2]|0;c[f>>2]=m&-4097;c[f+4>>2]=0;c[f+16>>2]=0;if((m&3|0)!=0?(i=c[f+8>>2]|0,m=c[f+12>>2]|0,j=i+(m<<2)|0,(m|0)>0):0){m=i+4|0;CB(i|0,0,(j>>>0>m>>>0?j:m)+~i+4&-4|0)|0}if(g){d=(d&2|0)==0;k=b+8|0;l=b+4|0;m=b+24|0;i=g;do{j=i;i=c[i>>2]|0;if(d){f=c[k>>2]|0;if((f|0)<0)f=c[j+8>>2]|0;else f=j+(0-f)|0;h=c[l>>2]|0;f=f+(c[b>>2]|0)|0;if((h|0)<0)f=c[f>>2]|0;g=c[m>>2]|0;if(!g)f=Zi(0,f,h)|0;else f=ub[g&31](a,f,b)|0;c[j+4>>2]=f}ub[n&31](a,j,32)|0}while((i|0)!=0)}}}}else{c[f>>2]=b;e=c[b+28>>2]|0;c[a+12>>2]=(e|0)==0?19:e;e=b}while(0);return e|0}function Ri(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=(c|0)==0;do if(!b)if(d)d=0;else d=oB(c)|0;else if(d){pB(b);d=0;break}else{d=rB(b,c)|0;break}while(0);return d|0}function Si(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+8|0;b=c[e>>2]|0;d=c[b>>2]|0;do if(!(d&12)){if(!(d&3)){a=b+8|0;b=c[a>>2]|0;c[a>>2]=0;break}b=Ti(a)|0;f=c[e>>2]|0;d=c[f+8>>2]|0;f=c[f+12>>2]|0;a=d+(f<<2)|0;if((f|0)>0){f=d+4|0;CB(d|0,0,(a>>>0>f>>>0?a:f)+~d+4&-4|0)|0}}else b=c[b+4>>2]|0;while(0);f=c[e>>2]|0;c[f>>2]=c[f>>2]&-4097;c[f+16>>2]=0;c[f+4>>2]=0;return b|0}function Ti(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+8|0;b=c[g>>2]|0;a=c[b>>2]|0;if(!(a&4096)){do if(!(a&3)){if(a&112){a=c[b+8>>2]|0;break}a=c[b+4>>2]|0;if(!a)a=0;else{b=c[a+4>>2]|0;if(!b){d=c[a>>2]|0;if(!d)break;else{b=a;a=d}}else while(1){c[a+4>>2]=c[b>>2];c[b>>2]=a;d=c[b+4>>2]|0;if(!d)break;else{a=b;b=d}}d=b;do{e=c[a+4>>2]|0;if(!e)d=a;else{while(1){c[a+4>>2]=c[e>>2];c[e>>2]=a;a=c[e+4>>2]|0;if(!a){a=e;break}else{f=e;e=a;a=f}}c[d>>2]=a;d=a}a=c[d>>2]|0}while((a|0)!=0);a=b}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;f=d+(e<<2)|0;if((e|0)>0){b=0;a=0;do{e=c[d>>2]|0;if(e){if(!b){b=e;a=e}else c[b>>2]=e;while(1){e=c[b>>2]|0;if(!e)break;else b=e}c[d>>2]=b}d=d+4|0}while(d>>>0<f>>>0)}else a=0}while(0);g=c[g>>2]|0;c[g+4>>2]=a;c[g>>2]=c[g>>2]|4096}else a=c[b+4>>2]|0;return a|0}function Ui(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=a+8|0;if(c[c[r>>2]>>2]&4096)Wi(a,0)|0;q=c[a+4>>2]|0;m=c[q>>2]|0;n=c[q+4>>2]|0;p=q+8|0;t=c[p>>2]|0;l=c[q+20>>2]|0;o=a+20|0;h=c[o>>2]&-32769;c[o>>2]=h;a:do if(!b){if(d&384){b=c[r>>2]|0;e=c[b+8>>2]|0;if(!e){e=0;break}if(d&256){e=c[e+4>>2]|0;c[b+4>>2]=e;if(!e){e=0;break}}else c[b+4>>2]=e;if((t|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-t)|0;break}}if(d&4098){e=c[r>>2]|0;if(c[e>>2]&144){e=0;break}e=c[e+8>>2]|0;if(!e){e=0;break}else{g=e;s=88;break}}if(!(d&64))e=0;else{i=q+16|0;e=c[i>>2]|0;b:do if((e|0)!=0|(t|0)<0?(g=c[(c[r>>2]|0)+8>>2]|0,(g|0)!=0):0){j=a+12|0;k=(t|0)<0;h=0-t|0;while(1){b=c[g>>2]|0;if(e){if(k)f=c[g+8>>2]|0;else f=g+h|0;Gb[e&127](a,f,q)}if((c[p>>2]|0)<0)Jb[c[j>>2]&31](a,g,0,q)|0;if(!b)break b;e=c[i>>2]|0;g=b}}while(0);e=c[r>>2]|0;c[e+4>>2]=0;c[e+8>>2]=0;c[(c[r>>2]|0)+16>>2]=0;e=0}}else{if(d&2049){f=q+12|0;e=c[f>>2]|0;g=(d&1|0)==0;if(!(g|(e|0)==0)){e=ub[e&31](a,b,q)|0;if(!e){e=0;break}else b=e}do if((t|0)>-1)g=b+t|0;else{e=Jb[c[a+12>>2]&31](a,0,12,q)|0;if(e){c[e+8>>2]=b;g=e;break}if(!(c[f>>2]|0)){e=0;break a}e=c[q+16>>2]|0;if(g|(e|0)==0){e=0;break a}Gb[e&127](a,b,q);e=0;break a}while(0);f=c[r>>2]|0;e=c[f>>2]|0;do if(!(e&128)){if(!(e&16))if(!(e&32)){s=54;break}else{s=50;break}b=c[f+4>>2]|0;e=(b|0)!=0;if(!(d&8192)){if(!e){s=50;break}if((b|0)==(c[f+8>>2]|0)){s=50;break}a=b+4|0;q=c[a>>2]|0;c[g+4>>2]=q;c[q>>2]=g;c[g>>2]=b;c[a>>2]=g;break}else{if(!e){s=54;break}e=c[b>>2]|0;if(!e){s=54;break}c[g>>2]=e;c[e+4>>2]=g;c[g+4>>2]=b;c[b>>2]=g;break}}else if(!(d&8192))s=50;else s=54;while(0);if((s|0)==50){e=c[f+8>>2]|0;c[g>>2]=e;if(!e)c[g+4>>2]=g;else{a=e+4|0;c[g+4>>2]=c[a>>2];c[a>>2]=g}c[(c[r>>2]|0)+8>>2]=g}else if((s|0)==54){e=f+8|0;b=c[e>>2]|0;if(!b){c[e>>2]=g;c[g+4>>2]=g}else{a=b+4|0;c[c[a>>2]>>2]=g;c[g+4>>2]=c[a>>2];c[a>>2]=g}c[g>>2]=0}e=c[r>>2]|0;b=e+16|0;f=c[b>>2]|0;if((f|0)>-1)c[b>>2]=f+1;c[e+4>>2]=g;if((t|0)<0){e=c[g+8>>2]|0;break}else{e=g+(0-t)|0;break}}g=c[r>>2]|0;do if(!(d&512)){e=c[g+4>>2]|0;if(e){if((t|0)<0)f=c[e+8>>2]|0;else f=e+(0-t)|0;if((f|0)==(b|0)){b=h;break}}b=b+m|0;if((n|0)<0){b=c[b>>2]|0;s=71}else s=71}else s=71;while(0);if((s|0)==71){e=c[g+8>>2]|0;if(!e){e=0;break}g=(t|0)<0;h=(n|0)<0;i=(l|0)==0;j=(n|0)<1;k=0-t|0;while(1){if(g)f=c[e+8>>2]|0;else f=e+k|0;f=f+m|0;if(h)f=c[f>>2]|0;do if(i)if(j){f=lA(b,f)|0;break}else{f=dA(b,f,n)|0;break}else f=Jb[l&31](a,b,f,q)|0;while(0);if(!f)break;e=c[e>>2]|0;if(!e){e=0;break a}}if(!e){e=0;break}b=c[o>>2]|0}c[o>>2]=b|32768;if(!(d&4098)){do if(!(d&8)){b=c[r>>2]|0;if(!(d&16)){c[b+4>>2]=e;break}if((e|0)==(c[b+8>>2]|0)){c[b+4>>2]=0;e=0;break a}else{e=e+4|0;s=112;break}}else{b=c[r>>2]|0;s=112}while(0);if((s|0)==112){e=c[e>>2]|0;c[b+4>>2]=e;if(!e){e=0;break}}if((t|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-t)|0;break}}else{g=e;s=88}}while(0);if((s|0)==88){e=c[g>>2]|0;if(e){c[e+4>>2]=c[g+4>>2];e=c[g>>2]|0}b=(c[r>>2]|0)+8|0;f=c[b>>2]|0;if((g|0)==(f|0)){c[b>>2]=e;e=c[(c[r>>2]|0)+8>>2]|0;if(e)c[e+4>>2]=c[g+4>>2]}else{b=g+4|0;c[c[b>>2]>>2]=e;e=f+4|0;if((g|0)==(c[e>>2]|0))c[e>>2]=c[b>>2]}e=c[r>>2]|0;b=e+4|0;if((g|0)==(c[b>>2]|0))f=c[g>>2]|0;else f=0;c[b>>2]=f;s=e+16|0;c[s>>2]=(c[s>>2]|0)+-1;if((t|0)<0)e=c[g+8>>2]|0;else e=g+(0-t)|0;b=c[q+16>>2]|0;if(!((d&2|0)==0|(b|0)==0))Gb[b&127](a,e,q);if((c[p>>2]|0)<0)Jb[c[a+12>>2]&31](a,g,0,q)|0}return e|0}function Vi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j;a:do if((a|0)!=0&(b|0)!=0?(d=oB(40)|0,(d|0)!=0):0){c[d>>2]=0;c[d+16>>2]=0;c[d+4>>2]=0;Qi(d,a,0)|0;e=d+20|0;h=a+32|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;e=c[h>>2]|0;do if(e){c[f>>2]=0;e=Jb[e&31](d,1,f,a)|0;if((e|0)>=0)if((e|0)>0){e=c[f>>2]|0;if(e)if(!(c[b+4>>2]&c[e>>2])){g=12;break}else break;e=a+28|0;if(!(c[e>>2]|0))g=12;else{pB(d);d=Jb[c[e>>2]&31](0,0,40,a)|0;if(!d){d=0;break a}c[d>>2]=0;c[d+16>>2]=0;c[d+4>>2]=0;Qi(d,a,0)|0;c[d+20>>2]=1;c[d+24>>2]=0;c[d+32>>2]=0;c[d+28>>2]=0;g=11}}else g=11;else g=12}else g=11;while(0);if((g|0)==11){e=Jb[c[d+12>>2]&31](d,0,28,a)|0;c[f>>2]=e;if(!e)g=12;else{c[e>>2]=c[b+4>>2];c[e+4>>2]=0;c[(c[f>>2]|0)+8>>2]=0;e=c[f>>2]|0;f=e+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0}}if((g|0)==12){pB(d);d=0;break}c[d+8>>2]=e;c[d>>2]=c[b>>2];c[d+16>>2]=b;e=c[h>>2]|0;if(e)Jb[e&31](d,5,d,a)|0}else d=0;while(0);i=j;return d|0}function Wi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=c[c[a+16>>2]>>2]|0;g=a+8|0;j=c[g>>2]|0;h=c[j>>2]|0;d=h&4096;if(!b)if(!d)b=-1;else{b=c[j+4>>2]|0;e=d;i=5}else if(!(c[j+16>>2]|0)){e=0;i=5}else b=-1;a:do if((i|0)==5){c[j>>2]=h&-4097;if(!(h&3)){d=j+4|0;if(!(h&12)){c[d>>2]=0;c[j+8>>2]=b}else c[d>>2]=b;if(e){b=0;break}c[(c[g>>2]|0)+16>>2]=-1;b=0;break}c[j+4>>2]=0;if(!e){c[j+16>>2]=0;if(!b){b=0;break}while(1){j=b;b=c[b>>2]|0;ub[f&31](a,j,32)|0;if(!b){b=0;break a}}}d=c[j+8>>2]|0;j=c[j+12>>2]|0;f=d+(j<<2)|0;if((j|0)>0){e=d;do{d=c[e>>2]|0;if(d){c[e>>2]=b;b=c[d>>2]|0;c[d>>2]=0}e=e+4|0}while(e>>>0<f>>>0);b=0}else b=0}while(0);return b|0}function Xi(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;d=c[b>>2]|0;if(c[d>>2]&4096){Wi(a,0)|0;d=c[b>>2]|0}e=d+16|0;b=c[e>>2]|0;do if((b|0)<0){a=c[d>>2]|0;if(a&12){b=Yi(c[d+4>>2]|0)|0;c[e>>2]=b;break}if(a&112){d=c[d+8>>2]|0;if(!d)b=0;else{b=0;do{b=b+1|0;d=c[d>>2]|0}while((d|0)!=0)}c[e>>2]=b}}while(0);return b|0}function Yi(a){a=a|0;var b=0;if(!a)return 0;else{b=Yi(c[a+4>>2]|0)|0;return b+1+(Yi(c[a>>2]|0)|0)|0}return 0}function Zi(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;f=c;if((e|0)>=1){g=e+-1|0;h=c+g|0;if((g|0)>0){g=c+2|0;g=(h>>>0>g>>>0?h:g)+~f+2&-2;f=c;do{b=_(((d[f>>0]|0)<<8)+b+(d[f+1>>0]|0)|0,17109811)|0;f=f+2|0}while(f>>>0<h>>>0);c=c+g|0}if(c>>>0<=h>>>0)b=_(((d[c>>0]|0)<<8)+b|0,17109811)|0}else{e=a[c>>0]|0;if(e<<24>>24)do{h=a[c+1>>0]|0;b=_(((e&255)<<8)+b+(h&255)|0,17109811)|0;c=c+(h<<24>>24!=0?2:1)|0;e=a[c>>0]|0}while(e<<24>>24!=0);e=c-f|0}return _(b+e|0,17109811)|0}function _i(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+128|0;z=G;r=G+8|0;F=a+8|0;e=c[F>>2]|0;if(c[e>>2]&4096){Wi(a,0)|0;e=c[F>>2]|0}D=c[a+4>>2]|0;B=c[D>>2]|0;C=c[D+4>>2]|0;v=D+8|0;E=c[v>>2]|0;A=c[D+20>>2]|0;t=a+20|0;c[t>>2]=c[t>>2]&-32769;f=c[e+4>>2]|0;a:do if(!b)if((d&448|0)==0|(f|0)==0)e=0;else{if(!(d&64)){if(!(d&256)){e=c[f+4>>2]|0;if(!e)e=f;else while(1){c[f+4>>2]=c[e>>2];c[e>>2]=f;f=c[e+4>>2]|0;if(!f)break;else{a=e;e=f;f=a}}}else{e=c[f>>2]|0;if(!e)e=f;else while(1){a=e+4|0;c[f>>2]=c[a>>2];c[a>>2]=f;f=c[e>>2]|0;if(!f)break;else{a=e;e=f;f=a}}}c[(c[F>>2]|0)+4>>2]=e;if((E|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-E)|0;break}}b=D+16|0;if((c[b>>2]|0)!=0|(E|0)<0){k=a+12|0;l=(E|0)<0;j=0-E|0;while(1){e=f+4|0;g=c[e>>2]|0;if(g){c[e>>2]=c[g>>2];c[g>>2]=f;f=g;continue}h=f;f=c[f>>2]|0;e=c[b>>2]|0;if(e){if(l)g=c[h+8>>2]|0;else g=h+j|0;Gb[e&127](a,g,D)}if((c[v>>2]|0)<0)Jb[c[k>>2]&31](a,h,0,D)|0;if(!f)break}e=c[F>>2]|0}c[e+16>>2]=0;c[e+4>>2]=0;e=0}else{y=a+16|0;u=(d&4098|0)==0;b:do if(!(u|(c[(c[y>>2]|0)+4>>2]|0)!=8)){l=(C|0)<0;e=b+B|0;if(l)e=c[e>>2]|0;g=ub[c[a>>2]&31](a,b,4)|0;if(g){j=(A|0)==0;k=(C|0)<1;while(1){h=g+B|0;if(l)h=c[h>>2]|0;do if(j)if(k){h=lA(e,h)|0;break}else{h=dA(e,h,C)|0;break}else h=Jb[A&31](a,e,h,D)|0;while(0);if(h){w=44;break b}if((g|0)==(b|0))break;g=ub[c[a>>2]&31](a,g,8)|0;if(!g){w=44;break b}}h=c[(c[F>>2]|0)+4>>2]|0;c[z>>2]=c[h+4>>2];c[z+4>>2]=c[h>>2];f=z;w=182}else w=44}else w=44;while(0);c:do if((w|0)==44){do if(!(d&2565)){if(d&32){if((E|0)<0)g=c[b+8>>2]|0;else g=b+(0-E)|0;e=g+B|0;if((C|0)<0)e=c[e>>2]|0;if(!f){j=z;e=b;f=z;w=200;break}else{s=e;e=b;w=63;break}}if(f){if((E|0)<0)e=c[f+8>>2]|0;else e=f+(0-E)|0;if((e|0)!=(b|0)){e=b+B|0;if((C|0)<0){g=b;s=c[e>>2]|0;e=0;w=63}else{g=b;s=e;e=0;w=63}}else{g=b;j=z;e=0;k=z;h=f;w=141}}else{g=b;j=z;e=0;f=z;w=200}}else{if(!(d&512)){e=b+B|0;if((C|0)<0)e=c[e>>2]|0}else e=b;if(!f){g=b;j=z;e=0;f=z;w=200}else{g=b;s=e;e=0;w=63}}while(0);d:do if((w|0)==63){if(((c[(c[y>>2]|0)+4>>2]|0)==4?(q=c[(c[F>>2]|0)+24>>2]|0,!((d&516|0)==0|(q|0)==0)):0)?(p=(q|0)>0,p):0){n=(E|0)<0;j=(C|0)<0;k=(A|0)==0;l=(C|0)<1;o=0-E|0;b=0;m=f;do{if(n)h=c[m+8>>2]|0;else h=m+o|0;h=h+B|0;if(j)h=c[h>>2]|0;do if(k)if(l){h=lA(s,h)|0;break}else{h=dA(s,h,C)|0;break}else h=Jb[A&31](a,s,h,D)|0;while(0);if(!h){e=m;w=81;break}c[r+(b<<2)>>2]=h;m=c[((h|0)<0?m+4|0:m)>>2]|0;b=b+1|0;if(!m){e=0;break a}}while((b|0)<(q|0));if((w|0)==81)if(n){e=c[e+8>>2]|0;break a}else{e=e+o|0;break a}if(p){j=z;b=0;l=z;while(1){do if((c[r+(b<<2)>>2]|0)<0){h=f+4|0;k=c[h>>2]|0;if((c[r+((b|1)<<2)>>2]|0)<0){c[h>>2]=c[k>>2];c[k>>2]=f;c[l+4>>2]=k;f=k;h=k+4|0;break}else{c[j>>2]=k;c[l+4>>2]=f;j=k;h=k;break}}else{h=c[f>>2]|0;if((c[r+((b|1)<<2)>>2]|0)>0){p=h+4|0;c[f>>2]=c[p>>2];c[p>>2]=f;c[j>>2]=h;j=h;f=l;break}else{c[l+4>>2]=h;c[j>>2]=f;j=f;f=h;h=h+4|0;break}}while(0);k=c[h>>2]|0;b=b+2|0;if((b|0)>=(q|0)){h=f;f=k;break}else{l=f;f=k}}}else{j=z;h=z}}else{j=z;h=z}n=(E|0)<0;o=(C|0)<0;p=(A|0)!=0;q=(C|0)<1;r=0-E|0;e:while(1){while(1){if(n)k=c[f+8>>2]|0;else k=f+r|0;k=k+B|0;if(o)k=c[k>>2]|0;do if(!p)if(q){k=lA(s,k)|0;break}else{k=dA(s,k,C)|0;break}else k=Jb[A&31](a,s,k,D)|0;while(0);if(!k)break e;if((k|0)>=0){k=f;break}b=f+4|0;m=c[b>>2]|0;if(!m){w=121;break e}if(n)k=c[m+8>>2]|0;else k=m+r|0;k=k+B|0;if(o)k=c[k>>2]|0;do if(!p)if(q){l=lA(s,k)|0;break}else{l=dA(s,k,C)|0;break}else l=Jb[A&31](a,s,k,D)|0;while(0);if((l|0)>=0){b=m;k=h;h=f;w=118;break}c[b>>2]=c[m>>2];c[m>>2]=f;c[h+4>>2]=m;f=c[m+4>>2]|0;if(!f){f=m;w=200;break d}else h=m}if((w|0)==118){w=0;if(!l){f=b;w=119;break}c[j>>2]=b;c[k+4>>2]=h;f=c[b>>2]|0;if(!f){j=b;f=h;w=200;break d}else{j=b;continue}}l=c[k>>2]|0;if(!l){f=h;h=k;w=139;break}if(n)f=c[l+8>>2]|0;else f=l+r|0;f=f+B|0;if(o)f=c[f>>2]|0;do if(!p)if(q){f=lA(s,f)|0;break}else{f=dA(s,f,C)|0;break}else f=Jb[A&31](a,s,f,D)|0;while(0);if((f|0)>0){f=l+4|0;c[k>>2]=c[f>>2];c[f>>2]=k;c[j>>2]=l;f=c[l>>2]|0;if(!f){j=l;f=h;w=200;break d}else{j=l;continue}}if(!f){f=l;w=137;break}c[h+4>>2]=l;c[j>>2]=k;f=c[l+4>>2]|0;if(!f){j=k;f=l;w=200;break d}else{j=k;h=l}}if((w|0)==119)c[k+4>>2]=h;else if((w|0)==121){c[h+4>>2]=f;w=200;break}else if((w|0)==137){c[j>>2]=k;j=k}else if((w|0)==139){c[j>>2]=h;j=h;w=200;break}if(!f){f=h;w=200}else{k=h;h=f;w=141}}while(0);do if((w|0)==141){c[t>>2]=c[t>>2]|32768;f=h+4|0;c[j>>2]=c[f>>2];c[k+4>>2]=c[h>>2];if(!(d&516)){if(d&8){c[f>>2]=c[z>>2];c[h>>2]=0;c[z>>2]=h;f=k;w=169;break}if(d&16){w=z+4|0;c[h>>2]=c[w>>2];c[f>>2]=0;c[w>>2]=h;f=k;w=177;break}if(!u){f=k;w=182;break c}if(d&2049){if(c[(c[y>>2]|0)+4>>2]&4){e=h;break}c[f>>2]=0;f=z+4|0;c[h>>2]=c[f>>2];c[f>>2]=h;f=k;e=h;w=207;break}if(!(d&32)){e=0;break a}if(!(c[(c[y>>2]|0)+4>>2]&4)){c[e+4>>2]=0;x=z+4|0;c[e>>2]=c[x>>2];c[x>>2]=e;e=(c[F>>2]|0)+16|0;c[e>>2]=(c[e>>2]|0)+1;e=h;break}f=c[D+16>>2]|0;if(f)Gb[f&127](a,g,D);if((c[v>>2]|0)<0){Jb[c[a+12>>2]&31](a,e,0,D)|0;e=h}else e=h}else e=h}else if((w|0)==200){c[f+4>>2]=0;c[j>>2]=0;if(!(d&8))if(!(d&16)){if(d&516)break c;if(!(d&2049)){if(!(d&32)){g=0;break c}x=(c[F>>2]|0)+16|0;c[x>>2]=(c[x>>2]|0)+1}else{e=0;w=207}}else w=177;else w=169}while(0);if((w|0)==169){j=z+4|0;h=c[j>>2]|0;if(!h)break;e=c[h+4>>2]|0;if(!e){f=c[h>>2]|0;e=h}else{f=h;while(1){c[f+4>>2]=c[e>>2];c[e>>2]=f;g=c[e+4>>2]|0;if(!g)break;else{f=e;e=g}}}c[j>>2]=f}else if((w|0)==177){e=c[z>>2]|0;if(!e)break;f=c[e>>2]|0;if(f)while(1){x=f+4|0;c[e>>2]=c[x>>2];c[x>>2]=e;e=c[f>>2]|0;if(!e){e=f;break}else{x=f;f=e;e=x}}c[z>>2]=c[e+4>>2]}else if((w|0)==207){j=D+12|0;h=c[j>>2]|0;k=(d&1|0)==0;if(!(k|(h|0)==0))g=ub[h&31](a,g,D)|0;do if(g){if((E|0)>-1){e=g+E|0;w=217;break}e=Jb[c[a+12>>2]&31](a,0,12,D)|0;if(e){c[e+8>>2]=g;break}if((c[j>>2]|0)!=0?(x=c[D+16>>2]|0,!(k|(x|0)==0)):0){Gb[x&127](a,g,D);w=217}else w=217}else w=217;while(0);if((w|0)==217)if(!e)break;f=(c[F>>2]|0)+16|0;g=c[f>>2]|0;if((g|0)>-1)c[f>>2]=g+1}g=c[z>>2]|0;c[e+4>>2]=g;c[e>>2]=c[z+4>>2];h=g;f:do if(!((d&516|0)==0?1:(c[(c[y>>2]|0)+4>>2]&8|0)==0)){o=(E|0)<0;if(o)f=c[e+8>>2]|0;else f=e+(0-E)|0;p=(C|0)<0;f=f+B|0;if(p)f=c[f>>2]|0;if(g){b=(A|0)==0;m=(C|0)<1;n=0-E|0;l=e+4|0;while(1){g=c[h>>2]|0;if(!g){k=h;j=h}else while(1){d=g+4|0;c[h>>2]=c[d>>2];c[d>>2]=h;h=c[g>>2]|0;if(!h){k=g;j=g;break}else{d=g;g=h;h=d}}c[l>>2]=j;if(o)g=c[j+8>>2]|0;else g=j+n|0;g=g+B|0;if(p)g=c[g>>2]|0;do if(b)if(m){g=lA(f,g)|0;break}else{g=dA(f,g,C)|0;break}else g=Jb[A&31](a,f,g,D)|0;while(0);if(g)break f;c[e+4>>2]=c[j>>2];c[k>>2]=e;l=j+4|0;h=c[l>>2]|0;if(!h){e=j;break}else e=j}}}while(0);c[(c[F>>2]|0)+4>>2]=e;if((E|0)<0){e=c[e+8>>2]|0;break a}else{e=e+(0-E)|0;break a}}while(0);if((w|0)==182){if((E|0)<0)g=c[h+8>>2]|0;else g=h+(0-E)|0;e=c[D+16>>2]|0;if(!((d&2|0)==0|(e|0)==0))Gb[e&127](a,g,D);if((c[v>>2]|0)<0)Jb[c[a+12>>2]&31](a,h,0,D)|0;a=(c[F>>2]|0)+16|0;E=c[a>>2]|0;c[a>>2]=(E|0)<1?-1:E+-1|0}do{e=f+4|0;f=c[e>>2]|0}while((f|0)!=0);c[e>>2]=c[z>>2];c[(c[F>>2]|0)+4>>2]=c[z+4>>2];e=(d&2|0)!=0?g:0}while(0);i=G;return e|0}function $i(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(c[c[a+8>>2]>>2]&4096)Wi(a,0)|0;f=(b|0)!=0;a:do if(f){if(c[c[b+8>>2]>>2]&4096)Wi(b,0)|0;if((c[b+16>>2]|0)==(c[a+16>>2]|0)){d=b;while(1){if((d|0)==(a|0)){d=0;break a}d=c[d+28>>2]|0;if(!d){e=9;break}}}else d=0}else e=9;while(0);do if((e|0)==9){e=a+28|0;d=c[e>>2]|0;if(d){g=d+24|0;c[g>>2]=(c[g>>2]|0)+-1}c[a+32>>2]=0;c[e>>2]=0;if(f){c[e>>2]=b;c[a>>2]=12;d=b+24|0;c[d>>2]=(c[d>>2]|0)+1;d=b;break}else{c[a>>2]=c[c[a+16>>2]>>2];break}}while(0);return d|0}function aj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:do if(!(d&99)){if(!(d&516)){h=c[a+16>>2]|0;e=c[h+4>>2]|0;if((d&384|0)!=0&(e&12|0)==0){f=a;i=6}else{if(e&12){if(!(d&408)){e=0;break}n=(d&136|0)!=0;o=(d&272|0)!=0;g=a;l=0;m=0;f=0;while(1){e=ub[c[h>>2]&31](g,b,d)|0;do if(!e){e=l;i=m}else{h=c[g+4>>2]|0;j=c[h+4>>2]|0;k=c[h+20>>2]|0;i=e+(c[h>>2]|0)|0;if((j|0)<0)i=c[i>>2]|0;if(l){do if(!k)if((j|0)<1){h=lA(i,m)|0;break}else{h=dA(i,m,j)|0;break}else h=Jb[k&31](g,i,m,h)|0;while(0);if(!(n&(h|0)<0|o&(h|0)>0)){e=l;i=m;break}}f=g}while(0);g=c[g+28>>2]|0;if(!g)break;h=c[g+16>>2]|0;l=e;m=i}c[a+32>>2]=f;break}if(!(d&24)){e=0;break}k=a+32|0;f=c[k>>2]|0;if(f){e=c[(c[f+4>>2]|0)+8>>2]|0;g=c[(c[f+8>>2]|0)+4>>2]|0;if((e|0)<0)e=c[g+8>>2]|0;else e=g+(0-e)|0;if((e|0)==(b|0))e=b;else i=32}else i=32;if((i|0)==32){e=ub[c[h>>2]&31](a,b,4)|0;b:do if(!e){e=a;while(1){f=c[e+28>>2]|0;if(!f)break;e=ub[c[c[f+16>>2]>>2]&31](f,b,4)|0;if(!e)e=f;else break b}c[k>>2]=0;e=0;break a}else f=a;while(0);c[k>>2]=f}j=(d&8|0)==0;e=ub[c[c[f+16>>2]>>2]&31](f,e,d)|0;while(1){if(e){h=(f|0)==(a|0);i=f+16|0;do{if(h)break a;else g=a;while(1){if(ub[c[c[g+16>>2]>>2]&31](g,e,4)|0)break;g=c[g+28>>2]|0;if((g|0)==(f|0))break a}e=ub[c[c[i>>2]>>2]&31](f,e,d)|0}while((e|0)!=0)}f=c[f+28>>2]|0;c[k>>2]=f;if(!f){e=0;break a}e=c[c[f+16>>2]>>2]|0;if(j){e=ub[e&31](f,0,256)|0;continue}else{e=ub[e&31](f,0,128)|0;continue}}}}else if(!a){f=0;e=0}else{f=a;i=6}c:do if((i|0)==6)while(1){e=ub[c[c[f+16>>2]>>2]&31](f,b,d)|0;if(e)break c;f=c[f+28>>2]|0;if(!f){f=0;e=0;break}else i=6}while(0);c[a+32>>2]=f}else e=ub[c[c[a+16>>2]>>2]&31](a,b,d)|0;while(0);return e|0}function bj(a){a=a|0;var b=0;b=c[12582]|0;c[12582]=a;return b|0}function cj(a){a=a|0;var b=0;b=c[12583]|0;c[12583]=a;return b|0}function dj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=fj(a,b,f)|0;i=e;return d|0}function ej(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;fj(1,a,e)|0;i=d;return}function fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h;g=(a|0)==3;e=g?c[12587]|0:(a|0)==2?1:a;c[12587]=e;j=c[12586]|0;c[12586]=j>>>0>e>>>0?j:e;do if(e>>>0>=(c[12583]|0)>>>0){e=c[12582]|0;if(!e){e=c[22667]|0;if(!g){c[f>>2]=(a|0)==1?119707:119713;Bz(e,119721,f)|0}Sz(e,b,d)|0;e=0;break}if((c[12588]|0)==0?(j=oB(c[12589]|0)|0,c[12588]=j,(j|0)==0):0){Mz(119671,35,1,c[22667]|0)|0;e=0;break}if(!g){Eb[e&31]((a|0)==1?119707:119713)|0;Eb[c[50328>>2]&31](120396)|0}while(1){e=Uz(c[12588]|0,c[12589]|0,b,d)|0;a=c[12589]|0;if((e|0)>-1&(e|0)<(a|0)){a=9;break}g=a<<1;j=e+1|0;j=(g|0)>(j|0)?g:j;c[12589]=j;if(!(rB(c[12588]|0,j)|0)){a=11;break}}if((a|0)==9){Eb[c[50328>>2]&31](c[12588]|0)|0;e=0;break}else if((a|0)==11){Mz(119671,35,1,c[22667]|0)|0;e=0;break}}else{e=c[12584]|0;if(!e){e=Qz()|0;c[12584]=e;if(!e){e=1;break}}if(!g){c[12585]=Kz(e)|0;e=c[12584]|0}Sz(e,b,d)|0;e=0}while(0);i=h;return e|0}function gj(b,d,e){b=b|0;d=d|0;e=e|0;if(!e){e=(d|0)==0?1024:d;c[b+12>>2]=1;d=e;e=oB(e)|0}else c[b+12>>2]=0;c[b>>2]=e;c[b+8>>2]=e+d;c[b+4>>2]=e;a[e>>0]=0;return}function hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;f=c[a>>2]|0;e=f;g=(c[h>>2]|0)-e|0;d=g<<1;g=g+b|0;d=g>>>0>d>>>0?g:d;g=a+4|0;e=(c[g>>2]|0)-e|0;b=a+12|0;if(!(c[b>>2]|0)){i=oB(d)|0;AB(i|0,f|0,e|0)|0;c[b>>2]=1;b=i}else b=rB(f,d)|0;c[a>>2]=b;c[g>>2]=b+e;c[h>>2]=b+d;return 0}function ij(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=a+4|0;e=c[f>>2]|0;if((e+d|0)>>>0>(c[a+8>>2]|0)>>>0){hj(a,d)|0;e=c[f>>2]|0}AB(e|0,b|0,d|0)|0;c[f>>2]=(c[f>>2]|0)+d;return d|0}function jj(a,b){a=a|0;b=b|0;return ij(a,b,pA(b)|0)|0}function kj(a){a=a|0;if(c[a+12>>2]|0)pB(c[a>>2]|0);return}function lj(a){a=a|0;var b=0,e=0;b=a+4|0;e=c[b>>2]|0;if(e>>>0>(c[a>>2]|0)>>>0){c[b>>2]=e+-1;b=d[e>>0]|0}else b=-1;return b|0}function mj(a,b){a=a|0;b=b|0;var c=0,d=0;c=wl(a,119726,0)|0;if((b|0)!=0&(c|0)==0){d=hl(a)|0;Fm(d,d,86,0,1)|0;c=Rk(d)|0;if(c)do{vj(a,c);b=Lj(d,c)|0;if(b)do{xj(a,b);b=Nj(d,b)|0}while((b|0)!=0);c=Sk(d,c)|0}while((c|0)!=0);c=wl(a,119726,0)|0}return c|0}function nj(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;a=wl(a,119726,0)|0;a:do if(!a)a=0;else switch(b|0){case 0:{a=c[a+16>>2]|0;break a}case 1:{a=c[a+8>>2]|0;break a}case 2:case 3:{a=c[a+12>>2]|0;break a}default:{c[d>>2]=b;dj(1,119739,d)|0;a=0;break a}}while(0);i=e;return a|0}function oj(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=Lk(b,24)|0;a[h+20>>0]=g;c[h+8>>2]=Il(b,d)|0;c[h+12>>2]=Il(b,e)|0;c[h+16>>2]=f;return h|0}function pj(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+32|0;d=e;a=wl(a,c[12599]|0,0)|0;if(!a)a=0;else{a=c[a+8>>2]|0;c[d+8>>2]=b;a=ub[c[a>>2]&31](a,d,4)|0}i=e;return a|0}function qj(a){a=a|0;return wl(a,c[12599]|0,0)|0}function rj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;g=l;if(!a){a=c[12600]|0;if(!a){c[g>>2]=c[12601];k=ak(0,g,0)|0;c[12600]=k}else k=a}else k=a;if(!e){a=nj(k,b)|0;if(!a)a=0;else{c[g+8>>2]=d;a=ub[c[a>>2]&31](a,g,4)|0}}else{h=hl(k)|0;mj(k,1)|0;f=nj(k,b)|0;m=$i(f,0)|0;c[g+8>>2]=d;a=ub[c[f>>2]&31](f,g,4)|0;$i(f,m)|0;a:do if(!a){c[g+8>>2]=d;a=ub[c[f>>2]&31](f,g,4)|0;if(a){a=oj(k,d,e,c[a+16>>2]|0,b)|0;ub[c[f>>2]&31](f,a,1)|0;j=17;break}m=nj(h,b)|0;a=oj(k,d,e,Xi(m)|0,b)|0;ub[c[m>>2]&31](m,a,1)|0;switch(b|0){case 0:{Fm(h,h,52,a,1)|0;j=17;break a}case 1:{f=Rk(h)|0;if(!f)break a;do{Fj(k,f,a);f=Sk(h,f)|0}while((f|0)!=0);j=17;break}case 2:case 3:{f=Rk(h)|0;if(!f)break a;do{g=Lj(h,f)|0;if(g)do{Fj(k,g,a);g=Nj(h,g)|0}while((g|0)!=0);f=Sk(h,f)|0}while((f|0)!=0);j=17;break}default:break a}}else{j=a+12|0;Kl(k,c[j>>2]|0)|0;c[j>>2]=Il(k,e)|0;j=17}while(0);if((j|0)==17)if((b|0)==0&(a|0)!=0)Cj(k,a,e)|0;kl(k,k,a)}i=l;return a|0}function sj(a,b,d){a=a|0;b=b|0;d=d|0;a=nj(a,b)|0;do if(a){b=c[a>>2]|0;if(!d){a=ub[b&31](a,0,128)|0;break}else{a=ub[b&31](a,d,8)|0;break}}else a=0;while(0);return a|0}function tj(b){b=b|0;var d=0,e=0,f=0,g=0;e=b+24|0;a[e>>0]=a[e>>0]|64;e=xl(b,119726,20,0)|0;f=e+8|0;c[f>>2]=im(b,50360,c[12577]|0)|0;g=e+12|0;c[g>>2]=im(b,50360,c[12577]|0)|0;e=e+16|0;c[e>>2]=im(b,50360,c[12577]|0)|0;d=dm(b)|0;if(!d){d=c[12600]|0;if(!((d|0)==0|(d|0)==(b|0))){d=wl(d,119726,0)|0;Gj(c[d+8>>2]|0,c[f>>2]|0,b,1);Gj(c[d+12>>2]|0,c[g>>2]|0,b,2);Gj(c[d+16>>2]|0,c[e>>2]|0,b,0)}}else{d=wl(d,119726,0)|0;$i(c[f>>2]|0,c[d+8>>2]|0)|0;$i(c[g>>2]|0,c[d+12>>2]|0)|0;$i(c[e>>2]|0,c[d+16>>2]|0)|0}g=dm(b)|0;Hj((g|0)==0?b:g,b);return}function uj(a){a=a|0;var b=0;c[12654]=a;b=wl(a,c[12599]|0,0)|0;if(b){Ij(a,b);yl(a,c[b>>2]|0)|0}b=wl(a,119726,0)|0;if(b)if(((km(a,c[b+8>>2]|0)|0)==0?(km(a,c[b+12>>2]|0)|0)==0:0)?(km(a,c[b+16>>2]|0)|0)==0:0){yl(a,c[b>>2]|0)|0;b=0}else b=1;else b=0;return b|0}function vj(a,b){a=a|0;b=b|0;var d=0;d=wl(b,c[12599]|0,0)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))Hj(a,b);return}function wj(a){a=a|0;var b=0;b=wl(a,c[12599]|0,0)|0;if(b){Ij(a,b);yl(a,c[12599]|0)|0}return}function xj(a,b){a=a|0;b=b|0;var d=0;d=wl(b,c[12599]|0,0)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))Hj(a,b);return}function yj(a){a=a|0;var b=0;b=wl(a,c[12599]|0,0)|0;if(b){Ij(a,b);yl(a,c[12599]|0)|0}return}function zj(a,b){a=a|0;b=b|0;b=pj(a,b)|0;if(!b)b=0;else{a=wl(a,c[12599]|0,0)|0;b=c[(c[a+12>>2]|0)+(c[b+16>>2]<<2)>>2]|0}return b|0}function Aj(a,b){a=a|0;b=b|0;a=wl(a,c[12599]|0,0)|0;return c[(c[a+12>>2]|0)+(c[b+16>>2]<<2)>>2]|0}function Bj(a,b,c){a=a|0;b=b|0;c=c|0;b=pj(a,b)|0;if(!b)b=-1;else{Cj(a,b,c)|0;b=0}return b|0}function Cj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;e=k;f=gl(a)|0;h=wl(a,c[12599]|0,0)|0;j=b+16|0;h=h+12|0;Kl(f,c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]|0)|0;g=Il(f,d)|0;c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]=g;do if(!(c[a>>2]&3)){g=c[(wl(f,119726,0)|0)+16>>2]|0;h=b+8|0;m=c[h>>2]|0;l=$i(g,0)|0;c[e+8>>2]=m;e=ub[c[g>>2]&31](g,e,4)|0;$i(g,l)|0;if(!e){m=oj(f,c[h>>2]|0,d,c[j>>2]|0,c[a>>2]&3)|0;ub[c[g>>2]&31](g,m,1)|0;break}else{m=e+12|0;Kl(f,c[m>>2]|0)|0;c[m>>2]=Il(f,d)|0;break}}while(0);kl(f,a,b);i=k;return 0}function Dj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=gl(a)|0;f=rj(f,c[a>>2]&3,b,0)|0;if(!f){f=gl(a)|0;f=rj(f,c[a>>2]&3,b,e)|0}Cj(a,f,d)|0;return 0}function Ej(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=gl(a)|0;d=c[a>>2]|0;a:do if(((c[b>>2]^d)&3|0)==0?(e=sj(f,d&3,0)|0,(e|0)!=0):0){d=e;while(1){e=pj(b,c[d+8>>2]|0)|0;if(!e){d=1;break a}g=wl(a,c[12599]|0,0)|0;g=c[(c[g+12>>2]|0)+(c[d+16>>2]<<2)>>2]|0;Cj(b,e,g)|0;if(Ll(g)|0){g=wl(b,c[12599]|0,0)|0;Ml(c[(c[g+12>>2]|0)+(c[e+16>>2]<<2)>>2]|0)}d=sj(f,c[a>>2]&3,d)|0;if(!d){d=0;break}}}else d=1;while(0);return d|0}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;b=wl(b,c[12599]|0,0)|0;f=d+16|0;e=c[f>>2]|0;if((e|0)>3){g=c[a+64>>2]|0;b=b+12|0;e=e<<2;c[b>>2]=Jb[c[(c[g>>2]|0)+8>>2]&31](c[g+12>>2]|0,c[b>>2]|0,e,e+4|0)|0}else b=b+12|0;g=Il(a,c[d+12>>2]|0)|0;c[(c[b>>2]|0)+(c[f>>2]<<2)>>2]=g;return}function Gj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=ub[c[b>>2]&31](b,0,128)|0;if(g)do{h=oj(e,c[g+8>>2]|0,c[g+12>>2]|0,c[g+16>>2]|0,f)|0;a[h+22>>0]=a[g+22>>0]|0;a[h+21>>0]=a[g+21>>0]|0;ub[c[d>>2]&31](d,h,1)|0;g=ub[c[b>>2]&31](b,g,8)|0}while((g|0)!=0);return}function Hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=xl(b,c[12599]|0,16,0)|0;h=nj(a,c[b>>2]&3)|0;f=e+8|0;if((c[f>>2]|0)==0?(d=hl(a)|0,c[f>>2]=nj(d,c[b>>2]&3)|0,d=Kj(b)|0,a=gl(b)|0,g=e+12|0,c[g>>2]=Lk(a,(d|0)<4?16:d<<2)|0,d=ub[c[h>>2]&31](h,0,128)|0,(d|0)!=0):0)do{a=gl(b)|0;a=Il(a,c[d+12>>2]|0)|0;c[(c[g>>2]|0)+(c[d+16>>2]<<2)>>2]=a;d=ub[c[h>>2]&31](h,d,8)|0}while((d|0)!=0);return}function Ij(a,b){a=a|0;b=b|0;var d=0,e=0;e=gl(a)|0;d=Kj(a)|0;a=b+12|0;if((d|0)>0){b=0;do{Kl(e,c[(c[a>>2]|0)+(b<<2)>>2]|0)|0;b=b+1|0}while((b|0)!=(d|0))}Mk(e,c[a>>2]|0);return}function Jj(a,b,d){a=a|0;b=b|0;d=d|0;Kl(c[12654]|0,c[b+8>>2]|0)|0;Kl(c[12654]|0,c[b+12>>2]|0)|0;Mk(c[12654]|0,b);return}function Kj(a){a=a|0;var b=0;b=hl(gl(a)|0)|0;a=nj(b,c[a>>2]&3)|0;if(!a)a=0;else a=Xi(a)|0;return a|0}function Lj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+48|0;d=f;if((c[b+24>>2]|0)!=(a|0)){c[d+16>>2]=b;b=c[a+40>>2]|0;b=ub[c[b>>2]&31](b,d,4)|0;if(!b)b=0;else e=4}else{b=b+28|0;e=4}if((e|0)==4){a=a+44|0;e=b+32|0;Wi(c[a>>2]|0,c[e>>2]|0)|0;b=c[a>>2]|0;b=ub[c[b>>2]&31](b,0,128)|0;c[e>>2]=Si(c[a>>2]|0)|0}i=f;return b|0}function Mj(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+48|0;d=e;if((c[b+24>>2]|0)==(a|0))a=b+28|0;else{c[d+16>>2]=b;a=c[a+40>>2]|0;a=ub[c[a>>2]&31](a,d,4)|0}i=e;return a|0}function Nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+48|0;e=g;d=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;if((c[d+24>>2]|0)!=(a|0)){c[e+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,e,4)|0;if(!d)d=0;else f=4}else{d=d+28|0;f=4}if((f|0)==4){a=a+44|0;f=d+32|0;Wi(c[a>>2]|0,c[f>>2]|0)|0;d=c[a>>2]|0;d=ub[c[d>>2]&31](d,b,8)|0;c[f>>2]=Si(c[a>>2]|0)|0}i=g;return d|0}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+48|0;d=f;if((c[b+24>>2]|0)!=(a|0)){c[d+16>>2]=b;b=c[a+40>>2]|0;b=ub[c[b>>2]&31](b,d,4)|0;if(!b)b=0;else e=4}else{b=b+28|0;e=4}if((e|0)==4){a=a+44|0;e=b+28|0;Wi(c[a>>2]|0,c[e>>2]|0)|0;b=c[a>>2]|0;b=ub[c[b>>2]&31](b,0,128)|0;c[e>>2]=Si(c[a>>2]|0)|0}i=f;return b|0}function Pj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+48|0;e=g;d=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;if((c[d+24>>2]|0)!=(a|0)){c[e+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,e,4)|0;if(!d)d=0;else f=4}else{d=d+28|0;f=4}if((f|0)==4){a=a+44|0;f=d+28|0;Wi(c[a>>2]|0,c[f>>2]|0)|0;d=c[a>>2]|0;d=ub[c[d>>2]&31](d,b,8)|0;c[f>>2]=Si(c[a>>2]|0)|0}i=g;return d|0}function Qj(a,b){a=a|0;b=b|0;var c=0;c=Lj(a,b)|0;if(!c)c=Oj(a,b)|0;return c|0}function Rj(a,b,d){a=a|0;b=b|0;d=d|0;a:do if((c[b>>2]&3|0)==2){b=Nj(a,b)|0;if(!b){b=0;do{if(!b)b=Oj(a,d)|0;else b=Pj(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0))}}else do{b=Pj(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0));while(0);return b|0}function Sj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+48|0;k=n+24|0;l=n+16|0;j=n;do if(!(lk(a,2,e,l,0)|0)){g=(f|0)==0;if(e)if(g){g=0;break}else{m=16;break}if(!g?(jk(a)|0)==0:0){m=16;break};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;m=7}else{o=j;c[o>>2]=0;c[o+4>>2]=0;o=l;g=c[o+4>>2]|0;m=j+8|0;c[m>>2]=c[o>>2];c[m+4>>2]=g;c[j>>2]=2;m=7}while(0);do if((m|0)==7){c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];g=Yj(a,b,d,k)|0;if(!g){if((ik(a)|0)!=0?(c[k>>2]=c[j>>2],c[k+4>>2]=c[j+4>>2],c[k+8>>2]=c[j+8>>2],c[k+12>>2]=c[j+12>>2],h=Yj(a,d,b,k)|0,(h|0)!=0):0){g=h;break}if(!f)g=0;else{g=hl(a)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];g=Yj(g,b,d,k)|0;if(!g){if(!(ik(a)|0)){m=16;break}g=hl(a)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];g=Yj(g,d,b,k)|0;if(!g){m=16;break}}_j(a,g)}}}while(0);if((m|0)==16)if((Zj(a,b,d)|0)!=0?(lk(a,2,e,l,1)|0)!=0:0){g=l;g=$j(a,b,d,c[g>>2]|0,c[g+4>>2]|0)|0;pk(a,2,g)}else g=0;i=n;return g|0}function Tj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+48|0;j=k;g=(c[b>>2]&3|0)==3;h=g?b+-48|0:b;g=g?b:b+48|0;d=c[g+40>>2]|0;f=c[h+40>>2]|0;if((c[d+24>>2]|0)==(a|0))d=d+28|0;else{c[j+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,j,4)|0}b=a+44|0;l=c[b>>2]|0;e=d+32|0;Wi(l,c[e>>2]|0)|0;ub[c[l>>2]&31](l,h,2)|0;c[e>>2]=Si(l)|0;e=a+48|0;l=c[e>>2]|0;d=d+24|0;Wi(l,c[d>>2]|0)|0;ub[c[l>>2]&31](l,h,2)|0;c[d>>2]=Si(l)|0;if((c[f+24>>2]|0)==(a|0))d=f+28|0;else{c[j+16>>2]=f;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,j,4)|0}l=c[b>>2]|0;a=d+28|0;Wi(l,c[a>>2]|0)|0;ub[c[l>>2]&31](l,g,2)|0;c[a>>2]=Si(l)|0;a=c[e>>2]|0;l=d+20|0;Wi(a,c[l>>2]|0)|0;ub[c[a>>2]&31](a,g,2)|0;c[l>>2]=Si(a)|0;i=k;return}function Uj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e;d=(c[d>>2]&3|0)==2?d:d+-48|0;g=c[d>>2]&3;h=c[((g|0)==3?d:d+48|0)+40>>2]|0;g=c[((g|0)==2?d:d+-48|0)+40>>2]|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];if(Yj(b,h,g,f)|0){if((hl(b)|0)==(b|0)){if(a[b+24>>0]&64)yj(d);ml(b,d);Bl(d);h=d+8|0;nk(b,2,c[h>>2]|0,c[h+4>>2]|0)}if(!(Fm(b,d,53,0,0)|0))if((hl(b)|0)==(b|0)){Mk(b,d);d=0}else d=0;else d=-1}else d=-1;i=e;return d|0}function Vj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h;g=Wk(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0,d)|0;f=Wk(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,d)|0;do if((g|0)!=0&(f|0)!=0){c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];e=Yj(a,g,f,e)|0;f=(e|0)==0;if(!((d|0)!=0&f)){if(f){e=0;break}}else{_j(a,b);e=b}f=c[e>>2]&3;if((f|0)!=(c[b>>2]&3|0))e=(f|0)==3?e+-48|0:e+48|0}else e=0;while(0);i=h;return e|0}function Wj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=(c[b+40>>2]|0)+8|0;f=c[g>>2]|0;g=c[g+4>>2]|0;e=(c[d+40>>2]|0)+8|0;a=c[e>>2]|0;e=c[e+4>>2]|0;do if(!(g>>>0<e>>>0|(g|0)==(e|0)&f>>>0<a>>>0))if(g>>>0>e>>>0|(g|0)==(e|0)&f>>>0>a>>>0)a=1;else{e=b+8|0;a=c[e>>2]|0;e=c[e+4>>2]|0;if(!((a|0)==0&(e|0)==0)?(i=d+8|0,h=c[i>>2]|0,i=c[i+4>>2]|0,!((h|0)==0&(i|0)==0)):0){if(e>>>0<i>>>0|(e|0)==(i|0)&a>>>0<h>>>0){a=-1;break}if(e>>>0>i>>>0|(e|0)==(i|0)&a>>>0>h>>>0){a=1;break}}a=0}else a=-1;while(0);return a|0}function Xj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a=c[b+40>>2]|0;f=c[d+40>>2]|0;if((a|0)==(f|0)){e=(c[b>>2]|0)>>>4;a=(c[d>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}else{e=(c[a>>2]|0)>>>4;a=(c[f>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}if((g|0)==6)a=0;return a|0}function Yj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+96|0;f=h+48|0;g=h;do if((b|0)==0|(d|0)==0)d=0;else{c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+40>>2]=b;if((c[d+24>>2]|0)!=(a|0)){c[f+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,f,4)|0;if(!d){d=0;break}}else d=d+28|0;f=a+48|0;a=d+20|0;Wi(c[f>>2]|0,c[a>>2]|0)|0;d=c[f>>2]|0;d=ub[c[d>>2]&31](d,g,4)|0;c[a>>2]=Si(c[f>>2]|0)|0}while(0);i=h;return d|0}function Zj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+32|0;g=h+16|0;f=h;if((jk(b)|0)!=0?(c[f>>2]=0,c[f+4>>2]=0,c[f+8>>2]=0,c[f+12>>2]=0,c[g>>2]=c[f>>2],c[g+4>>2]=c[f+4>>2],c[g+8>>2]=c[f+8>>2],c[g+12>>2]=c[f+12>>2],(Yj(b,d,e,g)|0)!=0):0){i=h;return 0}i=h;return (d|0)==(e|0)&(a[b+24>>0]&4)!=0&1^1|0}function _j(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;g=s;q=c[b>>2]&3;p=(q|0)==2?b:b+-48|0;q=(q|0)==3?b:b+48|0;r=c[q+40>>2]|0;h=c[p+40>>2]|0;a:do if(a){j=r+24|0;k=r+28|0;l=h+24|0;m=h+28|0;n=g+16|0;o=g+16|0;do{c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];if(Yj(a,r,h,g)|0)break a;if((c[j>>2]|0)==(a|0))d=k;else{c[o>>2]=r;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,g,4)|0}e=a+44|0;t=c[e>>2]|0;f=d+32|0;Wi(t,c[f>>2]|0)|0;ub[c[t>>2]&31](t,p,1)|0;c[f>>2]=Si(t)|0;f=a+48|0;t=c[f>>2]|0;d=d+24|0;Wi(t,c[d>>2]|0)|0;ub[c[t>>2]&31](t,p,1)|0;c[d>>2]=Si(t)|0;if((c[l>>2]|0)==(a|0))d=m;else{c[n>>2]=h;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,g,4)|0}e=c[e>>2]|0;t=d+28|0;Wi(e,c[t>>2]|0)|0;ub[c[e>>2]&31](e,q,1)|0;c[t>>2]=Si(e)|0;f=c[f>>2]|0;t=d+20|0;Wi(f,c[t>>2]|0)|0;ub[c[f>>2]&31](f,q,1)|0;c[t>>2]=Si(f)|0;a=dm(a)|0}while((a|0)!=0)}while(0);i=s;return}function $j(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;Wk(b,d,1)|0;Wk(b,e,1)|0;h=Lk(b,96)|0;i=h+48|0;l=ck(b,2)|0;j=c[i>>2]|0;k=c[h>>2]|0;m=h+8|0;c[m>>2]=f;c[m+4>>2]=g;m=h+56|0;c[m>>2]=f;c[m+4>>2]=g;g=l<<4;c[h>>2]=k&12|g|2;c[i>>2]=j&12|g|3;c[h+88>>2]=d;c[h+40>>2]=e;_j(b,h);if(a[b+24>>0]&64){xl(h,c[12599]|0,16,0)|0;xj(b,h)}il(b,h);return h|0}function ak(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;f=(e|0)!=0;if(f){g=c[e>>2]|0;g=(g|0)==0?50744:g}else g=50744;h=Eb[c[g>>2]&31](e)|0;j=g+4|0;k=Lb[c[j>>2]&63](h,80)|0;c[k>>2]=g;c[k+12>>2]=h;if(f){f=c[e+4>>2]|0;c[k+4>>2]=(f|0)==0?50620:f;f=c[e+8>>2]|0;f=(f|0)==0?50720:f}else{c[k+4>>2]=50620;f=50720}c[k+8>>2]=f;a[k+52>>0]=1;f=Lb[c[j>>2]&63](h,72)|0;c[f>>2]=c[f>>2]&-4;j=f+64|0;c[j>>2]=k;h=f+24|0;d=c[d>>2]|0;c[h>>2]=d;a[h>>0]=d&255|8;c[f+60>>2]=f;d=Lb[c[c[k+4>>2]>>2]&63](f,e)|0;c[(c[j>>2]|0)+16>>2]=d;if(lk(f,0,b,l,1)|0){d=l;l=c[d+4>>2]|0;b=f+8|0;c[b>>2]=c[d>>2];c[b+4>>2]=l}b=bk(f)|0;pk(b,0,b);i=m;return b|0}function bk(b){b=b|0;var d=0,e=0,f=0;c[b+36>>2]=im(b,50800,c[12577]|0)|0;c[b+40>>2]=im(b,50764,c[12577]|0)|0;d=(hl(b)|0)==(b|0);c[b+44>>2]=im(b,d?50408:50444,c[12577]|0)|0;d=(hl(b)|0)==(b|0);c[b+48>>2]=im(b,d?50480:50516,c[12577]|0)|0;c[b+52>>2]=im(b,50552,c[12577]|0)|0;d=dm(b)|0;if(!((d|0)!=0?(f=(c[d+64>>2]|0)+24|0,e=f,e=wB(c[e>>2]|0,c[e+4>>2]|0,1,0)|0,f,c[f>>2]=e,c[f+4>>2]=C,c[b>>2]=e<<4|c[b>>2]&15,e=c[d+52>>2]|0,ub[c[e>>2]&31](e,b,1)|0,(a[d+24>>0]&64)==0):0))tj(b);il(b,b);return b|0}function ck(a,b){a=a|0;b=b|0;var d=0;d=(c[a+64>>2]|0)+24+(b<<3)|0;b=d;b=wB(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;a=C;c[d>>2]=b;c[d+4>>2]=a;C=a;return b|0}function dk(b){b=b|0;var d=0,e=0,f=0,g=0;f=dm(b)|0;g=(f|0)==0;if(g?(d=b+64|0,(c[(c[c[d>>2]>>2]|0)+16>>2]|0)!=0):0){ml(b,b);g=b+8|0;nk(b,0,c[g>>2]|0,c[g+4>>2]|0);d=c[d>>2]|0;zb[c[(c[d>>2]|0)+16>>2]&127](c[d+12>>2]|0);d=0}else e=4;do if((e|0)==4){d=bm(b)|0;if(d)do{e=d;d=cm(d)|0;dk(e)|0}while((d|0)!=0);d=Rk(b)|0;if(d)do{e=d;d=Sk(b,d)|0;Zk(b,e)|0}while((d|0)!=0);Ck(b);ml(b,b);if(((((km(b,c[b+40>>2]|0)|0)==0?(km(b,c[b+36>>2]|0)|0)==0:0)?(km(b,c[b+48>>2]|0)|0)==0:0)?(km(b,c[b+44>>2]|0)|0)==0:0)?(km(b,c[b+52>>2]|0)|0)==0:0){if((a[b+24>>0]&64)!=0?(uj(b)|0)!=0:0){d=-1;break}Bl(b);e=b+8|0;nk(b,0,c[e>>2]|0,c[e+4>>2]|0);if(!g){em(f,b)|0;Mk(f,b);d=0;break}f=b+64|0;d=c[f>>2]|0;e=c[d+48>>2]|0;if(e)do{pl(b,c[e>>2]|0)|0;d=c[f>>2]|0;e=c[d+48>>2]|0}while((e|0)!=0);zb[c[(c[d+4>>2]|0)+20>>2]&127](c[d+16>>2]|0);if(!(Gl(b)|0)){d=c[f>>2]|0;g=c[d+12>>2]|0;f=(c[d>>2]|0)+12|0;Bb[c[f>>2]&31](g,b);Bb[c[f>>2]&31](g,d);d=0}else d=-1}else d=-1}while(0);return d|0}function ek(a){a=a|0;return Xi(c[a+40>>2]|0)|0}function fk(a){a=a|0;var b=0,c=0;b=Rk(a)|0;if(!b)b=0;else{c=b;b=0;do{b=(gk(a,c,0,1)|0)+b|0;c=Sk(a,c)|0}while((c|0)!=0)}return b|0}function gk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Mj(a,b)|0;if(f){if(!e)b=0;else{g=c[a+44>>2]|0;e=f+32|0;Wi(g,c[e>>2]|0)|0;b=Xi(g)|0;c[e>>2]=Si(g)|0}if(d){a=c[a+44>>2]|0;d=f+28|0;Wi(a,c[d>>2]|0)|0;g=Xi(a)|0;c[d>>2]=Si(a)|0;b=g+b|0}}else b=0;return b|0}function hk(b){b=b|0;return a[b+24>>0]&1|0}function ik(b){b=b|0;return (a[b+24>>0]&1^1)&255|0}function jk(a){a=a|0;return (d[a+24>>0]|0)>>>1&1|0}function kk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=b+8|0;e=d+8|0;e=vB(c[a>>2]|0,c[a+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;return ((e|0)==0?0:e>>31|1)|0}function lk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;i=(e|0)!=0;do if(i){if((a[e>>0]|0)!=37?(h=c[b+64>>2]|0,h=Nb[c[(c[h+4>>2]|0)+4>>2]&3](c[h+16>>2]|0,d,e,f,g)|0,(h|0)!=0):0)break;h=xk(b,d,e,f)|0;if(!h)j=5}else j=5;while(0);if((j|0)==5)if(g){h=c[b+64>>2]|0;h=Nb[c[(c[h+4>>2]|0)+4>>2]&3](c[h+16>>2]|0,d,0,f,g)|0;if(i&(h|0)!=0){j=f;yk(b,d,e,c[j>>2]|0,c[j+4>>2]|0)}}else h=0;return h|0}function mk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[a+64>>2]|0;return Jb[c[(c[a+4>>2]|0)+8>>2]&31](c[a+16>>2]|0,b,d,e)|0}function nk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Ak(a,b,d,e)|0;a=c[a+64>>2]|0;Kb[c[(c[a+4>>2]|0)+12>>2]&31](c[a+16>>2]|0,b,d,e);return}function ok(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;d=gl(a)|0;f=a+8|0;b=f;b=zk(d,c[a>>2]&3,c[b>>2]|0,c[b+4>>2]|0)|0;do if(!b){b=c[d+64>>2]|0;d=c[(c[b+4>>2]|0)+16>>2]|0;if((d|0)!=0?(e=f,e=Jb[d&31](c[b+16>>2]|0,c[a>>2]&3,c[e>>2]|0,c[e+4>>2]|0)|0,(e|0)!=0):0){b=e;break}if((c[a>>2]&3|0)==2)b=0;else{a=f;f=c[a>>2]|0;a=c[a+4>>2]|0;c[g>>2]=37;b=g+8|0;c[b>>2]=f;c[b+4>>2]=a;Oz(119778,119810,g)|0;b=119778}}while(0);i=h;return b|0}function pk(a,b,d){a=a|0;b=b|0;d=d|0;a=c[a+64>>2]|0;Gb[c[(c[a+4>>2]|0)+24>>2]&127](c[a+16>>2]|0,b,d);return}function qk(a,b){a=a|0;b=b|0;return a|0}function rk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;if(!d){b=33344;a=c[b+4>>2]|0;d=e;c[d>>2]=c[b>>2];c[d+4>>2]=a;d=33344;d=wB(c[d>>2]|0,c[d+4>>2]|0,2,0)|0;e=33344;c[e>>2]=d;c[e+4>>2]=C}else{if(!f)f=Hl(a,d)|0;else f=Il(a,d)|0;c[e>>2]=f;c[e+4>>2]=0}return 1}function sk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function tk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((c&1|0)==0&0==0)Kl(a,c)|0;return}function uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ((c&1|0)==0&0==0?c:0)|0}function vk(a){a=a|0;return}function wk(a,b,c){a=a|0;b=b|0;c=c|0;return}function xk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;b=c[(c[a+64>>2]|0)+56+(((b|0)==3?2:b)<<2)>>2]|0;if(((b|0)!=0?(g=Hl(a,d)|0,(g|0)!=0):0)?(c[h+24>>2]=g,f=ub[c[b>>2]&31](b,h,4)|0,(f|0)!=0):0){d=f+16|0;h=c[d+4>>2]|0;b=e;c[b>>2]=c[d>>2];c[b+4>>2]=h;b=1}else b=0;i=j;return b|0}function yk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=Lk(a,32)|0;h=g+16|0;c[h>>2]=e;c[h+4>>2]=f;c[g+24>>2]=Il(a,d)|0;b=(b|0)==3?2:b;d=a+64|0;e=c[d>>2]|0;f=c[e+56+(b<<2)>>2]|0;if(!f){f=im(a,50648,c[12577]|0)|0;c[(c[d>>2]|0)+56+(b<<2)>>2]=f;e=c[d>>2]|0}e=c[e+68+(b<<2)>>2]|0;if(!e){e=im(a,50684,c[12577]|0)|0;c[(c[d>>2]|0)+68+(b<<2)>>2]=e}ub[c[f>>2]&31](f,g,1)|0;ub[c[e>>2]&31](e,g,1)|0;return}function zk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+32|0;g=h;a=c[(c[a+64>>2]|0)+68+(((b|0)==3?2:b)<<2)>>2]|0;if((a|0)!=0?(f=g+16|0,c[f>>2]=d,c[f+4>>2]=e,f=ub[c[a>>2]&31](a,g,4)|0,(f|0)!=0):0)a=c[f+24>>2]|0;else a=0;i=h;return a|0}function Ak(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;b=(b|0)==3?2:b;f=a+64|0;g=c[(c[f>>2]|0)+68+(b<<2)>>2]|0;if((g|0)!=0?(h=j+16|0,c[h>>2]=d,c[h+4>>2]=e,h=ub[c[g>>2]&31](g,j,4)|0,(h|0)!=0):0){j=c[(c[f>>2]|0)+56+(b<<2)>>2]|0;ub[c[j>>2]&31](j,h,2)|0;b=c[(c[f>>2]|0)+68+(b<<2)>>2]|0;ub[c[b>>2]&31](b,h,2)|0;Kl(a,c[h+24>>2]|0)|0;Mk(a,h);b=1}else b=0;i=k;return b|0}function Bk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;c[12654]=b;f=c[b+64>>2]|0;i=0;do{g=f+56+(i<<2)|0;d=c[g>>2]|0;if((d|0)!=0?(h=ub[c[d>>2]&31](d,0,128)|0,(h|0)!=0):0){d=h;do{j=c[g>>2]|0;e=d;d=ub[c[j>>2]&31](j,d,8)|0;if((a[c[e+24>>2]>>0]|0)==37){j=e+16|0;Ak(b,i,c[j>>2]|0,c[j+4>>2]|0)|0}}while((d|0)!=0)}i=i+1|0}while((i|0)!=3);return}function Ck(a){a=a|0;c[12654]=a;a=a+64|0;Dk((c[a>>2]|0)+56|0);Dk((c[a>>2]|0)+68|0);return}function Dk(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b){Pi(b)|0;c[a>>2]=0}b=a+4|0;d=c[b>>2]|0;if(d){Pi(d)|0;c[b>>2]=0}b=a+8|0;d=c[b>>2]|0;if(d){Pi(d)|0;c[b>>2]=0}return}function Ek(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=b+16|0;a=c[b>>2]|0;b=c[b+4>>2]|0;d=d+16|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (b>>>0>d>>>0|(b|0)==(d|0)&a>>>0>e>>>0?1:(b>>>0<d>>>0|(b|0)==(d|0)&a>>>0<e>>>0)<<31>>31)|0}function Fk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b+24>>2]|0;e=c[d+24>>2]|0;return (a>>>0>e>>>0?1:(a>>>0<e>>>0)<<31>>31)|0}function Gk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+32|0;e=b+12|0;d=b;c[12684]=c[12681];c[12685]=c[12682];c[e>>2]=a;c[e+4>>2]=pA(a)|0;c[e+8>>2]=0;c[d>>2]=50744;c[d+4>>2]=50620;c[d+8>>2]=50732;a=Mm(e,d)|0;Ol(0);i=b;return a|0}function Hk(a,b,c){a=a|0;b=b|0;c=c|0;if(!(yz(b,c,a)|0))b=0;else b=pA(b)|0;return b|0}function Ik(a,b){a=a|0;b=b|0;return Dz(b,a)|0}function Jk(a){a=a|0;return wz(a)|0}function Kk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((e|0)!=0?(h=b+8|0,f=c[h>>2]|0,(f|0)<(c[b+4>>2]|0)):0){i=c[b>>2]|0;g=a[i+f>>0]|0;b=0;f=i+(f+1)|0;while(1){a[d>>0]=g;b=b+1|0;if(!(g<<24>>24!=10&(b|0)<(e|0)))break;g=a[f>>0]|0;if(!(g<<24>>24))break;else{d=d+1|0;f=f+1|0}}c[h>>2]=(c[h>>2]|0)+b}else b=0;return b|0}function Lk(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;a=c[a+64>>2]|0;a=Lb[c[(c[a>>2]|0)+4>>2]&63](c[a+12>>2]|0,b)|0;if(!a)dj(1,119816,d)|0;i=d;return a|0}function Mk(a,b){a=a|0;b=b|0;if(b){a=c[a+64>>2]|0;Bb[c[(c[a>>2]|0)+12>>2]&31](c[a+12>>2]|0,b)}return}function Nk(a){a=a|0;return 0}function Ok(a,b){a=a|0;b=b|0;a=oB(b)|0;CB(a|0,0,b|0)|0;return a|0}function Pk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=rB(b,d)|0;if(d>>>0>c>>>0)CB(a+c|0,0,d-c|0)|0;return a|0}function Qk(a,b){a=a|0;b=b|0;pB(b);return}function Rk(a){a=a|0;a=c[a+36>>2]|0;a=ub[c[a>>2]&31](a,0,128)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function Sk(a,b){a=a|0;b=b|0;var d=0;b=Mj(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=ub[c[d>>2]&31](d,b,8)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function Tk(a){a=a|0;a=c[a+36>>2]|0;a=ub[c[a>>2]&31](a,0,256)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function Uk(a,b){a=a|0;b=b|0;var d=0;b=Mj(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=ub[c[d>>2]&31](d,b,16)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function Vk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=33360;c[f>>2]=b;c[f+4>>2]=d;c[12713]=33352;f=c[a+40>>2]|0;f=ub[c[f>>2]&31](f,50836,4)|0;if(!f)f=0;else f=c[f+16>>2]|0;do if((e|0)!=0&(f|0)==0){f=hl(a)|0;if(((f|0)!=(a|0)?(g=33360,c[g>>2]=b,c[g+4>>2]=d,c[12713]=33352,g=c[f+40>>2]|0,g=ub[c[g>>2]&31](g,50836,4)|0,(g|0)!=0):0)?(h=c[g+16>>2]|0,(h|0)!=0):0){Wk(a,h,1)|0;f=h;break}if(!(mk(a,1,b,d)|0))f=0;else{f=ck(a,1)|0;f=al(a,b,d,f,C)|0;bl(a,f);cl(a,f)}}while(0);return f|0}function Wk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=hl(a)|0;if((e|0)==(c[b+24>>2]|0)){g=b+8|0;f=c[g+4>>2]|0;e=33360;c[e>>2]=c[g>>2];c[e+4>>2]=f;c[12713]=33352;e=c[a+40>>2]|0;e=ub[c[e>>2]&31](e,50836,4)|0;if(!e)e=0;else e=c[e+16>>2]|0;if((d|0)!=0&(e|0)==0){e=dm(a)|0;if(!e)e=0;else{g=Wk(e,b,d)|0;dl(a,g);return g|0}}}else e=0;return e|0}function Xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+16|0;k=m;f=hl(a)|0;do if(lk(a,1,b,k,0)|0){o=k;n=c[o+4>>2]|0;g=33360;c[g>>2]=c[o>>2];c[g+4>>2]=n;c[12713]=33352;g=c[a+40>>2]|0;g=ub[c[g>>2]&31](g,50836,4)|0;if((g|0)!=0?(e=c[g+16>>2]|0,(e|0)!=0):0)break;if((!((d|0)==0|(f|0)==(a|0))?(n=k,o=c[n+4>>2]|0,h=33360,c[h>>2]=c[n>>2],c[h+4>>2]=o,c[12713]=33352,h=c[f+40>>2]|0,h=ub[c[h>>2]&31](h,50836,4)|0,(h|0)!=0):0)?(j=c[h+16>>2]|0,(j|0)!=0):0)e=Wk(a,j,1)|0;else l=8}else l=8;while(0);if((l|0)==8)if((d|0)!=0?(lk(a,1,b,k,1)|0)!=0:0){o=k;n=c[o>>2]|0;o=c[o+4>>2]|0;e=ck(a,1)|0;e=al(a,n,o,e,C)|0;bl(a,e);cl(a,e);pk(a,1,e)}else e=0;i=m;return e|0}function Yk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[12722]=b;d=Qj(a,b)|0;if(d)do{e=d;d=Rj(a,d,b)|0;Tj(a,e,0)}while((d|0)!=0);e=c[a+40>>2]|0;ub[c[e>>2]&31](e,50872,2)|0;e=c[a+36>>2]|0;ub[c[e>>2]&31](e,50872,2)|0;return}function Zk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=d+8|0;h=f;g=c[h+4>>2]|0;e=33360;c[e>>2]=c[h>>2];c[e+4>>2]=g;c[12713]=33352;e=c[b+40>>2]|0;e=ub[c[e>>2]&31](e,50836,4)|0;if((e|0)!=0?(c[e+16>>2]|0)!=0:0){if((hl(b)|0)==(b|0)){e=Qj(b,d)|0;if(e)do{h=e;e=Rj(b,e,d)|0;Uj(b,h)|0}while((e|0)!=0);if(a[b+24>>0]&64)wj(d);ml(b,d);Bl(d);h=f;nk(b,1,c[h>>2]|0,c[h+4>>2]|0)}if(!(Fm(b,d,54,0,0)|0))if((hl(b)|0)==(b|0)){Mk(b,d);e=0}else e=0;else e=-1}else e=-1;return e|0}function _k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=(c[b+16>>2]|0)+8|0;a=c[b>>2]|0;b=c[b+4>>2]|0;d=(c[d+16>>2]|0)+8|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (b>>>0<d>>>0|(b|0)==(d|0)&a>>>0<e>>>0?-1:(b>>>0>d>>>0|(b|0)==(d|0)&a>>>0>e>>>0)&1)|0}function $k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=(c[c[b+16>>2]>>2]|0)>>>4;e=(c[c[d+16>>2]>>2]|0)>>>4;return (a>>>0<e>>>0?-1:a>>>0>e>>>0&1)|0}function al(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;g=Lk(b,64)|0;h=c[g>>2]|0;i=g+8|0;c[i>>2]=d;c[i+4>>2]=e;c[g>>2]=h&12|f<<4|1;c[g+24>>2]=hl(b)|0;if(a[(hl(b)|0)+24>>0]&64)xl(g,c[12599]|0,16,0)|0;return g|0}function bl(a,b){a=a|0;b=b|0;do{dl(a,b);a=dm(a)|0}while((a|0)!=0);return}function cl(b,c){b=b|0;c=c|0;if(a[(hl(b)|0)+24>>0]&64)vj(b,c);il(b,c);return}function dl(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+40|0;Xi(c[d>>2]|0)|0;if((hl(a)|0)==(a|0))e=b+28|0;else e=Lk(a,36)|0;c[e+16>>2]=b;b=c[d>>2]|0;ub[c[b>>2]&31](b,e,1)|0;b=c[a+36>>2]|0;ub[c[b>>2]&31](b,e,1)|0;return}function el(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+16>>2]|0;if((a+28|0)!=(b|0))Mk(c[a+24>>2]|0,b);return}function fl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+8|0;e=h;d=c[b>>2]|0;do if(!(d&3))if((dm(b)|0)==(a|0)){d=c[b>>2]|0;g=5;break}else{dj(1,119842,e)|0;d=-1;break}else g=5;while(0);a:do if((g|0)==5)switch(d&3|0){case 1:{d=Zk(a,b)|0;break a}case 2:case 3:{d=Uj(a,b)|0;break a}case 0:{d=dk(b)|0;break a}default:{dj(1,119866,f)|0;d=0;break a}}while(0);i=h;return d|0}function gl(a){a=a|0;var b=0;b=i;i=i+16|0;switch(c[a>>2]&3|0){case 2:case 3:{a=c[(c[a+40>>2]|0)+24>>2]|0;break}case 1:{a=c[a+24>>2]|0;break}case 0:break;default:{dj(1,119889,b)|0;a=0}}i=b;return a|0}function hl(a){a=a|0;var b=0;b=i;i=i+16|0;switch(c[a>>2]&3|0){case 2:case 3:{a=c[(c[a+40>>2]|0)+24>>2]|0;break}case 1:{a=c[a+24>>2]|0;break}case 0:{a=c[a+60>>2]|0;break}default:{dj(1,119911,b)|0;a=0}}i=b;return a|0}function il(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))sl(b,d,100,0);else jl(b,d,c[e+48>>2]|0);return}function jl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d){jl(a,b,c[d+8>>2]|0);switch(c[b>>2]&3|0){case 0:{e=c[d>>2]|0;break}case 1:{e=(c[d>>2]|0)+12|0;break}case 2:{e=(c[d>>2]|0)+24|0;break}default:break a}e=c[e>>2]|0;if(e)Gb[e&127](a,b,c[d+4>>2]|0)}while(0);return}function kl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=c[b+64>>2]|0;if(!(a[f+52>>0]|0))sl(b,d,101,e);else ll(b,d,e,c[f+48>>2]|0);return}function ll(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a:do if(e){ll(a,b,d,c[e+8>>2]|0);switch(c[b>>2]&3|0){case 0:{f=(c[e>>2]|0)+4|0;break}case 1:{f=(c[e>>2]|0)+16|0;break}case 2:{f=(c[e>>2]|0)+28|0;break}default:break a}f=c[f>>2]|0;if(f)Kb[f&31](a,b,c[e+4>>2]|0,d)}while(0);return}function ml(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))sl(b,d,102,0);else nl(b,d,c[e+48>>2]|0);return}function nl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d){nl(a,b,c[d+8>>2]|0);switch(c[b>>2]&3|0){case 0:{e=(c[d>>2]|0)+8|0;break}case 1:{e=(c[d>>2]|0)+20|0;break}case 2:{e=(c[d>>2]|0)+32|0;break}default:break a}e=c[e>>2]|0;if(e)Gb[e&127](a,b,c[d+4>>2]|0)}while(0);return}function ol(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Lk(a,12)|0;c[e>>2]=b;c[e+4>>2]=d;d=(c[a+64>>2]|0)+48|0;c[e+8>>2]=c[d>>2];c[d>>2]=e;return}function pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(c[a+64>>2]|0)+48|0;d=c[e>>2]|0;a:do if(!d)d=-1;else{if((c[d>>2]|0)!=(b|0)){while(1){if(!d){d=-1;break a}f=d+8|0;e=c[f>>2]|0;if((c[e>>2]|0)==(b|0))break;else d=e}if(e)c[f>>2]=c[e+8>>2]}else c[e>>2]=c[d+8>>2];Mk(a,d);d=0}while(0);return d|0}function ql(a,b){a=a|0;b=b|0;var d=0;d=hl(a)|0;a:do if((d|0)==(hl(b)|0))switch(c[b>>2]&3|0){case 0:{while(1){if((b|0)==(a|0)){b=1;break a}b=dm(b)|0;if(!b){b=0;break}}break}case 1:{b=b+8|0;b=(Vk(a,c[b>>2]|0,c[b+4>>2]|0,0)|0)!=0&1;break a}default:{b=(Vj(a,b,0)|0)!=0&1;break a}}else b=0;while(0);return b|0}function rl(a){a=a|0;return c[a>>2]&3|0}function sl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+48|0;f=k+32|0;j=k;h=xl(a,119934,44,0)|0;a:do switch(d|0){case 100:{d=tl(h,b,100)|0;f=b+8|0;g=c[f+4>>2]|0;h=j+8|0;c[h>>2]=c[f>>2];c[h+4>>2]=g;if(!(ub[c[d>>2]&31](d,j,4)|0))ul(d,a,b,e)|0;break}case 101:{g=tl(h,b,100)|0;d=b+8|0;m=d;l=c[m+4>>2]|0;f=j+8|0;c[f>>2]=c[m>>2];c[f+4>>2]=l;if((ub[c[g>>2]&31](g,j,4)|0)==0?(m=tl(h,b,102)|0,f=d,g=c[f+4>>2]|0,l=j+8|0,c[l>>2]=c[f>>2],c[l+4>>2]=g,(ub[c[m>>2]&31](m,j,4)|0)==0):0){f=tl(h,b,101)|0;l=d;m=c[l+4>>2]|0;d=j+8|0;c[d>>2]=c[l>>2];c[d+4>>2]=m;d=ub[c[f>>2]&31](f,j,4)|0;if(!d)d=ul(f,a,b,e)|0;d=c[d+24>>2]|0;if(d)do{if((c[d>>2]|0)==(e|0))break a;d=c[d+4>>2]|0}while((d|0)!=0)}break}case 102:{d=tl(h,b,100)|0;g=b+8|0;l=g;m=c[l+4>>2]|0;f=j+8|0;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=ub[c[d>>2]&31](d,j,4)|0;if(f)ub[c[d>>2]&31](d,f,2)|0;f=tl(h,b,101)|0;l=g;m=c[l+4>>2]|0;d=j+8|0;c[d>>2]=c[l>>2];c[d+4>>2]=m;d=ub[c[f>>2]&31](f,j,4)|0;if(d)ub[c[f>>2]&31](f,d,2)|0;d=tl(h,b,102)|0;h=g;l=c[h+4>>2]|0;m=j+8|0;c[m>>2]=c[h>>2];c[m+4>>2]=l;if(!(ub[c[d>>2]&31](d,j,4)|0))ul(d,a,b,e)|0;break}default:dj(1,119946,f)|0}while(0);i=k;return}function tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g;a:do switch(c[b>>2]&3|0){case 0:switch(d|0){case 100:{d=a+8|0;break a}case 101:{d=a+20|0;break a}case 102:{d=a+32|0;break a}default:{f=14;break a}}case 1:switch(d|0){case 100:{d=a+12|0;break a}case 101:{d=a+24|0;break a}case 102:{d=a+36|0;break a}default:{f=14;break a}}case 2:switch(d|0){case 100:{d=a+16|0;break a}case 101:{d=a+28|0;break a}case 102:{d=a+40|0;break a}default:{f=14;break a}}default:f=14}while(0);if((f|0)==14){dj(1,119980,e)|0;d=0}a=c[d>>2]|0;if(!a){a=gl(b)|0;a=im(a,50908,c[12577]|0)|0;c[d>>2]=a}i=g;return a|0}function ul(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Lk(gl(d)|0,32)|0;c[f+20>>2]=d;h=d+8|0;g=c[h+4>>2]|0;d=f+8|0;c[d>>2]=c[h>>2];c[d+4>>2]=g;c[f+16>>2]=b;if(e){h=Lk(b,8)|0;c[f+24>>2]=h;c[h>>2]=e}ub[c[a>>2]&31](a,f,1)|0;return f|0}function vl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+24>>2]|0;d=b+16|0;if(a)do{e=a;a=c[a+4>>2]|0;Mk(c[d>>2]|0,e)}while((a|0)!=0);Mk(c[d>>2]|0,b);return}function wl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;f=c[b+16>>2]|0;g=f;while(1){if(!g){f=0;break}h=c[g>>2]|0;if((h|0)==(d|0)){k=7;break}if((a[d>>0]|0)==(a[h>>0]|0)?(lA(d,h)|0)==0:0){k=7;break}g=c[g+4>>2]|0;if((g|0)==(f|0)){f=0;break}}do if((k|0)==7){if(!(c[b>>2]&4)){if((g|0)==(f|0)&(e|0)==0)break;Cl(b,g,e);f=g;break}if(e){if((f|0)!=(g|0)){dj(1,120005,j)|0;f=g}}else f=g}while(0);i=l;return f|0}function xl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=gl(a)|0;f=wl(a,b,0)|0;a:do if((d|0)!=0&(f|0)==0){f=Lk(g,d)|0;c[f>>2]=Il(g,b)|0;switch(c[a>>2]&3|0){case 0:{Dl(a,f);break a}case 1:{Dl(a,f);break a}case 2:case 3:{Dl(a,f);break a}default:break a}}while(0);if(e)wl(a,b,1)|0;return f|0}function yl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=gl(a)|0;e=wl(a,b,0)|0;if(!e)b=-1;else{f=a+16|0;g=c[f>>2]|0;d=g;do{b=d+4|0;d=c[b>>2]|0}while((d|0)!=(e|0));d=e+4|0;c[b>>2]=c[d>>2];b=c[a>>2]|0;switch(b&3|0){case 0:{if((g|0)==(e|0)?(h=c[d>>2]|0,h=(h|0)==(e|0)?0:h,c[f>>2]=h,c[a>>2]=b&-5,(b&2|0)!=0):0){g=a+48|0;c[a+64>>2]=h;c[g>>2]=c[g>>2]&-5}break}case 2:case 3:case 1:{Fm(hl(i)|0,a,55,e,0)|0;break}default:{}}Kl(i,c[e>>2]|0)|0;Mk(i,e);b=0}return b|0}function zl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=(d|0)>-1;h=g?d:0-d|0;switch(b|0){case 0:{xl(a,c,h,e)|0;if(!g?(f=bm(a)|0,(f|0)!=0):0)do{zl(f,0,c,d,e);f=cm(f)|0}while((f|0)!=0);break}case 3:case 2:case 1:{f=Rk(a)|0;if(f){d=(b|0)==1;do{if(!d){g=Lj(a,f)|0;if(g)do{xl(g,c,h,e)|0;g=Nj(a,g)|0}while((g|0)!=0)}else xl(f,c,h,e)|0;f=Sk(a,f)|0}while((f|0)!=0)}break}default:{}}return}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;switch(b|0){case 0:{Fm(a,a,56,c,1)|0;break}case 3:case 2:case 1:{d=Rk(a)|0;if(d){e=(b|0)==1;do{if(!e){b=Lj(a,d)|0;if(b)do{yl(b,c)|0;b=Nj(a,b)|0}while((b|0)!=0)}else yl(d,c)|0;d=Sk(a,d)|0}while((d|0)!=0)}break}default:{}}return}function Bl(a){a=a|0;var b=0,d=0,e=0;d=gl(a)|0;b=a+16|0;a=c[b>>2]|0;if(a)do{e=a;a=c[a+4>>2]|0;Kl(d,c[e>>2]|0)|0;Mk(d,e)}while((a|0)!=(c[b>>2]|0));c[b>>2]=0;return}function Cl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a+16>>2]=b;e=c[a>>2]|0;d=d<<2&4;c[a>>2]=e&-5|d;if(e&2){a=(e&3|0)==3?a+-48|0:a+48|0;c[a+16>>2]=b;c[a>>2]=c[a>>2]&-5|d}return}function Dl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+16|0;d=c[g>>2]|0;do if(d){e=d+4|0;f=c[e>>2]|0;if((f|0)==(d|0)){c[e>>2]=b;c[b+4>>2]=d;break}else{c[b+4>>2]=f;c[e>>2]=b;break}}else c[b+4>>2]=b;while(0);d=c[a>>2]|0;if((d&4|0)==0?(c[g>>2]=b,c[a>>2]=d&-5,(d&2|0)!=0):0){a=(d&3|0)==3?a+-48|0:a+48|0;c[a+16>>2]=b;c[a>>2]=c[a>>2]&-5}return}function El(a,b,d){a=a|0;b=b|0;d=d|0;if((c[b+16>>2]|0)==(d|0)){a=c[d+4>>2]|0;Cl(b,(a|0)==(d|0)?0:a,0)}return}function Fl(a,b,c){a=a|0;b=b|0;c=c|0;yl(b,c)|0;return}function Gl(a){a=a|0;return km(a,Nl(a)|0)|0}function Hl(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+32|0;e=d;a=Nl(a)|0;c[e+16>>2]=b;a=ub[c[a>>2]&31](a,e,4)|0;if(!a)a=0;else a=c[a+16>>2]|0;i=d;return a|0}function Il(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+32|0;d=f;if(!b)d=0;else{e=Nl(a)|0;c[d+16>>2]=b;d=ub[c[e>>2]&31](e,d,4)|0;if(!d){d=(pA(b)|0)+24|0;if(!a)d=oB(d)|0;else d=Lk(a,d)|0;a=d+8|0;c[a>>2]=1;c[a+4>>2]=0;a=d+20|0;mA(a,b)|0;c[d+16>>2]=a;ub[c[e>>2]&31](e,d,1)|0}else{b=d+8|0;e=b;e=wB(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;c[b>>2]=e;c[b+4>>2]=C}d=c[d+16>>2]|0}i=f;return d|0}function Jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=i;i=i+32|0;d=f;if(!b)d=0;else{e=Nl(a)|0;c[d+16>>2]=b;d=ub[c[e>>2]&31](e,d,4)|0;if(!d){d=(pA(b)|0)+24|0;if(!a)d=oB(d)|0;else d=Lk(a,d)|0;h=33416;g=c[h+4>>2]|0;a=d+8|0;c[a>>2]=c[h>>2]|1;c[a+4>>2]=g;a=d+20|0;mA(a,b)|0;c[d+16>>2]=a;ub[c[e>>2]&31](e,d,1)|0}else{h=d+8|0;g=h;g=wB(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;c[h>>2]=g;c[h+4>>2]=C}d=c[d+16>>2]|0}i=f;return d|0}function Kl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g;if((b|0)!=0?(d=Nl(a)|0,c[f+16>>2]=b,e=ub[c[d>>2]&31](d,f,4)|0,(e|0)!=0):0)if((c[e+16>>2]|0)==(b|0)?(b=e+8|0,h=b,h=wB(c[h>>2]|0,c[h+4>>2]|0,-1,-1)|0,f=C,b,c[b>>2]=h,c[b+4>>2]=f,b=33424,!(((h|0)!=0|(f|0)!=0)&((c[b>>2]|0)!=0|(c[b+4>>2]|0)!=0))):0){jm(a,d,e)|0;d=0}else d=0;else d=-1;i=g;return d|0}function Ll(a){a=a|0;var b=0;if(!a)a=0;else{a=a+-12|0;b=33416;a=c[b>>2]&c[a>>2]}return a|0}function Ml(a){a=a|0;var b=0,d=0,e=0;if(a){d=33416;a=a+-12|0;e=a;b=c[e+4>>2]|c[d+4>>2];c[a>>2]=c[e>>2]|c[d>>2];c[a+4>>2]=b}return}function Nl(a){a=a|0;var b=0,d=0;if(!a)d=50944;else d=(c[a+64>>2]|0)+20|0;b=c[d>>2]|0;if(!b){b=im(a,50948,c[12577]|0)|0;c[d>>2]=b;a=33416;c[a>>2]=-2147483648;c[a+4>>2]=0;a=33424;c[a>>2]=2147483647;c[a+4>>2]=-1}return b|0}function Ol(a){a=a|0;c[12751]=a;c[12750]=1;return}function Pl(a,b){a=a|0;b=b|0;c[12752]=a;c[12753]=b;c[12754]=0;return}function Ql(){var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+2096|0;x=A+24|0;v=A+16|0;s=A;w=A+1072|0;u=A+48|0;y=A+32|0;if(!(c[12755]|0)){c[12755]=1;if(!(c[12756]|0))c[12756]=1;if(!(c[12746]|0))c[12746]=c[22668];if(!(c[12747]|0))c[12747]=c[22669];e=c[12757]|0;if(!((e|0)!=0?(g=c[12758]|0,f=c[e+(g<<2)>>2]|0,(f|0)!=0):0)){Xl();r=Rl(c[12746]|0,16384)|0;f=c[12758]|0;c[(c[12757]|0)+(f<<2)>>2]=r;r=c[12757]|0;e=r;g=f;f=c[r+(f<<2)>>2]|0}c[12759]=c[f+16>>2];r=c[f+8>>2]|0;c[12760]=r;c[12748]=r;c[12746]=c[c[e+(g<<2)>>2]>>2];a[120038]=a[r>>0]|0}a:while(1){e=c[12760]|0;a[e>>0]=a[120038]|0;f=e;g=(c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]|0)+(c[12756]|0)|0;b:while(1){j=e;while(1){e=c[51044+(d[j>>0]<<2)>>2]|0;if(b[95220+(g<<1)>>1]|0){c[13017]=g;c[13018]=j}c:while(1){h=e&255;while(1){e=(b[95406+(g<<1)>>1]|0)+h|0;if((b[95616+(e<<1)>>1]|0)==(g|0))break c;r=b[96152+(g<<1)>>1]|0;e=r<<16>>16;if(r<<16>>16>92){g=e;break}else g=e}e=c[52076+(h<<2)>>2]|0}g=b[96362+(e<<1)>>1]|0;e=j+1|0;if((b[95406+(g<<1)>>1]|0)==219){r=f;break}else j=e}d:while(1){q=r;e:while(1){f=b[95220+(g<<1)>>1]|0;if(!(f<<16>>16)){f=b[95220+(c[13017]<<1)>>1]|0;o=c[13018]|0}else{f=f<<16>>16;o=e}c[12748]=r;p=o;c[12749]=p-q;a[120038]=a[o>>0]|0;a[o>>0]=0;c[12760]=o;e=f;f:while(1){switch(e|0){case 1:{z=28;break a}case 12:{z=68;break a}case 13:{z=70;break a}case 14:{z=72;break a}case 15:{z=76;break a}case 16:{z=80;break a}case 17:{z=82;break a}case 18:{z=84;break a}case 19:{z=87;break a}case 20:{z=90;break a}case 21:{j=r;h=o;z=94;break a}case 23:{z=112;break a}case 33:{z=150;break a}case 39:case 38:case 37:case 36:{e=0;z=199;break a}case 2:{z=30;break b}case 3:{z=33;break b}case 4:{z=36;break b}case 5:{z=38;break b}case 6:{z=40;break b}case 7:{z=43;break b}case 8:{z=45;break b}case 9:{z=62;break b}case 10:{z=64;break b}case 11:{z=66;break b}case 22:{z=107;break b}case 24:{z=115;break b}case 25:{z=118;break b}case 26:{z=121;break b}case 27:{z=124;break b}case 28:{z=128;break b}case 29:{z=133;break b}case 30:{z=138;break b}case 31:{z=142;break b}case 32:{z=146;break b}case 34:{z=154;break b}case 0:break f;case 35:break;default:{z=198;break a}}g=c[12748]|0;a[o>>0]=a[120038]|0;e=c[12758]|0;f=c[12757]|0;h=c[f+(e<<2)>>2]|0;if(!(c[h+44>>2]|0)){c[12759]=c[h+16>>2];c[h>>2]=c[12746];f=c[12757]|0;c[(c[f+(e<<2)>>2]|0)+44>>2]=1;e=c[12758]|0;h=c[f+(e<<2)>>2]|0}j=c[12760]|0;k=c[12759]|0;l=c[h+4>>2]|0;n=c[12748]|0;m=n;if(j>>>0<=(l+k|0)>>>0){f=n;e=p;break e}if(j>>>0>(l+(k+1)|0)>>>0){z=168;break a}j=j-m|0;if(!(c[h+40>>2]|0)){k=(j|0)==1?1:2;h=m;j=n}else{m=j+-1|0;if((j|0)>1){f=l;h=0;e=n;while(1){a[f>>0]=a[e>>0]|0;h=h+1|0;if((h|0)>=(m|0))break;else{f=f+1|0;e=e+1|0}}f=c[12757]|0;h=c[f+(c[12758]<<2)>>2]|0}if((c[h+44>>2]|0)==2){c[12759]=0;c[h+16>>2]=0}else{f=c[h+12>>2]|0;e=f-m+-1|0;if(!e){k=c[12760]|0;do{e=h+4|0;j=c[e>>2]|0;if(!(c[h+20>>2]|0)){z=179;break a}n=f<<1;f=(n|0)==0?(f>>>3)+f|0:n;c[h+12>>2]=f;f=rB(j,f+2|0)|0;c[e>>2]=f;if(!f){z=181;break a}k=f+(k-j)|0;c[12760]=k;h=c[(c[12757]|0)+(c[12758]<<2)>>2]|0;f=c[h+12>>2]|0;e=f-m+-1|0}while((e|0)==0)}n=ub[c[c[(c[51008>>2]|0)+8>>2]>>2]&31](c[12753]|0,(c[h+4>>2]|0)+m|0,e>>>0>8192?8192:e)|0;c[12759]=n;f=c[12757]|0;c[(c[f+(c[12758]<<2)>>2]|0)+16>>2]=n}do if(!(c[12759]|0))if(!m){Sl(c[12746]|0);f=c[12757]|0;k=1;break}else{c[(c[f+(c[12758]<<2)>>2]|0)+44>>2]=2;k=2;break}else k=0;while(0);e=c[12759]|0;h=e+m|0;f=c[f+(c[12758]<<2)>>2]|0;if(h>>>0>(c[f+12>>2]|0)>>>0){n=rB(c[f+4>>2]|0,h+(e>>>1)|0)|0;e=c[12758]|0;c[(c[(c[12757]|0)+(e<<2)>>2]|0)+4>>2]=n;e=c[(c[(c[12757]|0)+(e<<2)>>2]|0)+4>>2]|0;if(!e){z=192;break a}h=c[12759]|0}else{h=e;e=c[f+4>>2]|0}f=h+m|0;c[12759]=f;a[e+f>>0]=0;a[(c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+4>>2]|0)+((c[12759]|0)+1)>>0]=0;e=c[12758]|0;f=c[12757]|0;j=c[(c[f+(e<<2)>>2]|0)+4>>2]|0;c[12748]=j;h=j}switch(k|0){case 0:{f=j;e=p;z=196;break d}case 2:{z=197;break e}case 1:break;default:continue a}c[12760]=h;e=(((c[12756]|0)+-1|0)/2|0)+36|0}a[o>>0]=a[120038]|0;e=c[13018]|0;g=c[13017]|0}if((z|0)==197){z=0;c[12760]=(c[(c[f+(e<<2)>>2]|0)+4>>2]|0)+(c[12759]|0);g=Zl()|0;r=c[12748]|0;e=c[12760]|0;continue}c[12760]=f+(e-g+-1);g=Zl()|0;if(b[95220+(g<<1)>>1]|0){r=c[12760]|0;c[13017]=g;c[13018]=r}e=(b[95406+(g<<1)>>1]|0)+1|0;if((b[95616+(e<<1)>>1]|0)!=(g|0)){f=g;do{r=b[96152+(f<<1)>>1]|0;f=r<<16>>16;e=(b[95406+(f<<1)>>1]|0)+1|0}while((b[95616+(e<<1)>>1]|0)!=r<<16>>16)}h=b[96362+(e<<1)>>1]|0;f=c[12748]|0;j=c[12760]|0;if(!(h<<16>>16==92|(e|0)==0)){e=j;z=166;break}else{r=f;e=j}}if((z|0)==166){z=0;e=e+1|0;c[12760]=e;g=h<<16>>16;continue}else if((z|0)==196){z=0;c[12760]=f+(e-g+-1);g=Zl()|0;f=c[12748]|0;e=c[12760]|0;continue}}switch(z|0){case 30:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12750]=(c[12750]|0)+1;continue a}case 33:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=3;continue a}case 36:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 38:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 40:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=1;continue a}case 43:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 45:{z=0;e=c[12749]|0;if(!e)f=c[12748]|0;else{f=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1}g=f+1|0;r=(rA(g,120039,4)|0)==0;e=r?5:1;c[s>>2]=u;c[s+4>>2]=y;c[s+8>>2]=w;g=Pz(r?f+5|0:g,120044,s)|0;if((g|0)>0?(c[12750]=(c[u>>2]|0)+-1,(g|0)>1):0){g=f+((c[w>>2]|0)+e)|0;f=g;g:while(1){e=a[f>>0]|0;switch(e<<24>>24){case 0:case 34:break g;default:{}}f=f+1|0}if((f|0)!=(g|0)&e<<24>>24==34){a[f>>0]=0;f=f-g|0;e=c[13068]|0;if((e|0)<(f|0)){if(!e)e=oB(f+1|0)|0;else e=rB(c[13069]|0,f+1|0)|0;c[13069]=e;c[13068]=f}else e=c[13069]|0;mA(e,g)|0;c[12751]=c[13069]}}continue a}case 62:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 64:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 66:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 107:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=5;e=c[13070]|0;if(!e){e=oB(1024)|0;c[13070]=e;c[13071]=e+1024}c[13072]=e;a[e>>0]=0;continue a}case 115:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;Yl(122268);continue a}case 118:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;Yl(120150);continue a}case 121:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12750]=(c[12750]|0)+1;continue a}case 124:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}Yl(e);continue a}case 128:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=7;c[13073]=1;e=c[13070]|0;if(!e){e=oB(1024)|0;c[13070]=e;c[13071]=e+1024}c[13072]=e;a[e>>0]=0;continue a}case 133:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;r=(c[13073]|0)+-1|0;c[13073]=r;if(!r){z=137;break a}Yl(c[12748]|0);continue a}case 138:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}c[13073]=(c[13073]|0)+1;Yl(e);continue a}case 142:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}Yl(e);c[12750]=(c[12750]|0)+1;continue a}case 146:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}Yl(e);continue a}case 154:{z=0;e=c[12749]|0;if(!e){e=c[12748]|0;f=0}else{f=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;e=f;f=c[12749]|0}Mz(e,f,1,c[12747]|0)|0;continue a}}}switch(z|0){case 28:{e=c[12749]|0;if(!e){e=-1;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=-1;z=199}break}case 68:{e=c[12749]|0;if(!e){e=259;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=259;z=199}break}case 70:{e=c[12749]|0;if(!e){e=260;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=260;z=199}break}case 72:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;if(!(c[12754]|0)){c[12754]=258;e=258;z=199}else{e=258;z=199}break}case 76:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;if(!(c[12754]|0)){c[12754]=261;e=261;z=199}else{e=261;z=199}break}case 80:{e=c[12749]|0;if(!e){e=263;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=263;z=199}break}case 82:{e=c[12749]|0;if(!e){e=262;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=262;z=199}break}case 84:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=(c[12754]|0)==261?264:45;z=199;break}case 87:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=(c[12754]|0)==258?264:45;z=199;break}case 90:{e=c[12749]|0;if(!e)e=c[12748]|0;else{z=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[z+(e+-1)>>0]|0)==10&1;e=z}c[13084]=Il(c[12654]|0,e)|0;e=267;z=199;break}case 94:{e=c[12749]|0;if(!e){f=0;e=c[12748]|0}else{s=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[s+(e+-1)>>0]|0)==10&1;f=c[12749]|0;e=s}s=a[e+(f+-1)>>0]|0;g=s<<24>>24==46;h:do if(g|((s&255)+-48|0)>>>0<10){if(g?(t=f+-2|0,(t|0)>-1):0){f=t;while(1){if((a[e+f>>0]|0)==46){z=102;break h}if((f|0)>0)f=f+-1|0;else break}}}else z=102;while(0);if((z|0)==102){f=c[12751]|0;gj(y,1024,w);jj(y,120061)|0;jj(y,c[12748]|0)|0;c[v>>2]=c[12750];Oz(u,120105,v)|0;jj(y,u)|0;jj(y,(f|0)==0?120055:f)|0;jj(y,120122)|0;f=y+4|0;e=c[f>>2]|0;if(e>>>0>=(c[y+8>>2]|0)>>>0){hj(y,1)|0;e=c[f>>2]|0}a[e>>0]=0;z=c[y>>2]|0;c[f>>2]=z;c[x>>2]=z;dj(0,120147,x)|0;kj(y);z=(c[12749]|0)+-1|0;a[h>>0]=a[120038]|0;e=j+z|0;c[12760]=e;c[12748]=j;c[12749]=z;a[120038]=a[e>>0]|0;a[e>>0]=0;c[12760]=e;e=c[12748]|0}c[13084]=Il(c[12654]|0,e)|0;e=267;z=199;break}case 112:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=1;c[13084]=Il(c[12654]|0,c[13070]|0)|0;a[c[13070]>>0]=0;e=268;z=199;break}case 137:{c[12756]=1;c[13084]=Jl(c[12654]|0,c[13070]|0)|0;a[c[13070]>>0]=0;e=268;z=199;break}case 150:{e=c[12749]|0;if(!e)e=c[12748]|0;else{z=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[z+(e+-1)>>0]|0)==10&1;e=z}e=a[e>>0]|0;z=199;break}case 168:{_l(120153);break}case 179:{c[e>>2]=0;z=181;break}case 192:{_l(120253);break}case 198:{_l(120300);break}}if((z|0)==181)_l(120209);else if((z|0)==199){i=A;return e|0}return 0}function Rl(a,b){a=a|0;b=b|0;var d=0;d=oB(48)|0;if(!d)_l(120351);c[d+12>>2]=b;b=oB(b+2|0)|0;c[d+4>>2]=b;if(!b)_l(120351);else{c[d+20>>2]=1;$l(d,a);return d|0}return 0}function Sl(b){b=b|0;var d=0,e=0,f=0;d=c[12757]|0;if((d|0)!=0?(e=c[12758]|0,(c[d+(e<<2)>>2]|0)!=0):0)f=4;else{Xl();d=Rl(c[12746]|0,16384)|0;e=c[12758]|0;c[(c[12757]|0)+(e<<2)>>2]=d;d=c[12757]|0;if(!d)d=0;else f=4}if((f|0)==4)d=c[d+(e<<2)>>2]|0;$l(d,b);b=(c[12757]|0)+(c[12758]<<2)|0;f=c[b>>2]|0;c[12759]=c[f+16>>2];f=c[f+8>>2]|0;c[12760]=f;c[12748]=f;c[12746]=c[c[b>>2]>>2];a[120038]=a[f>>0]|0;return}function Tl(b){b=b|0;var d=0,e=0;if(b){c[b+16>>2]=0;d=b+4|0;a[c[d>>2]>>0]=0;a[(c[d>>2]|0)+1>>0]=0;c[b+8>>2]=c[d>>2];c[b+28>>2]=1;c[b+44>>2]=0;d=c[12757]|0;if(!d)e=0;else e=c[d+(c[12758]<<2)>>2]|0;if((e|0)==(b|0)){e=d+(c[12758]<<2)|0;b=c[e>>2]|0;c[12759]=c[b+16>>2];b=c[b+8>>2]|0;c[12760]=b;c[12748]=b;c[12746]=c[c[e>>2]>>2];a[120038]=a[b>>0]|0}}return}function Ul(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+2112|0;k=m+32|0;j=m+24|0;h=m+16|0;g=m+8|0;f=m;e=m+56|0;l=m+40|0;gj(l,1024,m+1080|0);d=c[12751]|0;if(d){jj(l,d)|0;jj(l,120396)|0}jj(l,b)|0;c[f>>2]=c[12750];Oz(e,120399,f)|0;jj(l,e)|0;a:do if(!(a[c[12748]>>0]|0))switch(((c[12756]|0)+-1|0)/2|0|0){case 2:{c[g>>2]=16384;Oz(e,120419,g)|0;jj(l,e)|0;d=c[13070]|0;if(!(a[d>>0]|0))break a;j=pA(d)|0;jj(l,120481)|0;if((j|0)>80)a[(c[13070]|0)+80>>0]=0;jj(l,c[13070]|0)|0;break a}case 3:{c[h>>2]=16384;Oz(e,120500,h)|0;jj(l,e)|0;d=c[13070]|0;if(!(a[d>>0]|0))break a;j=pA(d)|0;jj(l,120568)|0;if((j|0)>80)a[(c[13070]|0)+80>>0]=0;jj(l,c[13070]|0)|0;break a}case 1:{c[j>>2]=16384;Oz(e,120587,j)|0;jj(l,e)|0;break a}default:break a}else{jj(l,120411)|0;jj(l,c[12748]|0)|0;e=l+4|0;d=c[e>>2]|0;if(d>>>0>=(c[l+8>>2]|0)>>>0){hj(l,1)|0;d=c[e>>2]|0}c[e>>2]=d+1;a[d>>0]=39}while(0);b=l+4|0;d=c[b>>2]|0;e=l+8|0;if(d>>>0>=(c[e>>2]|0)>>>0){hj(l,1)|0;d=c[b>>2]|0}c[b>>2]=d+1;a[d>>0]=10;d=c[b>>2]|0;if(d>>>0>=(c[e>>2]|0)>>>0){hj(l,1)|0;d=c[b>>2]|0}a[d>>0]=0;j=c[l>>2]|0;c[b>>2]=j;c[k>>2]=j;dj(1,120147,k)|0;kj(l);i=m;return}function Vl(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=c[12748]|0;h=c[12760]|0;a[h>>0]=a[120038]|0;g=c[12757]|0;e=c[g+(c[12758]<<2)>>2]|0;b=c[e+4>>2]|0;if(h>>>0<(b+2|0)>>>0){l=(c[12759]|0)+2|0;f=c[e+12>>2]|0;d=b+(f+2)|0;b=b+l|0;if((l|0)>0){do{b=b+-1|0;d=d+-1|0;a[d>>0]=a[b>>0]|0;f=c[12757]|0;e=c[f+(c[12758]<<2)>>2]|0}while(b>>>0>(c[e+4>>2]|0)>>>0);g=f;f=c[e+12>>2]|0}d=d-b|0;b=h+d|0;c[12759]=f;c[e+16>>2]=f;if(b>>>0<((c[(c[g+(c[12758]<<2)>>2]|0)+4>>2]|0)+2|0)>>>0)_l(120646);else{i=j+d|0;k=b}}else{i=j;k=h}l=k+-1|0;a[l>>0]=64;c[12748]=i;a[120038]=a[l>>0]|0;c[12760]=l;return}function Wl(){var a=0;a=c[12757]|0;if(!a)a=0;else a=c[a+(c[12758]<<2)>>2]|0;Tl(a);return}function Xl(){var a=0,b=0,d=0;b=c[12757]|0;do if(!b){a=oB(4)|0;c[12757]=a;if(!a)_l(120682);else{c[a>>2]=0;c[13074]=1;c[12758]=0;break}}else{a=c[13074]|0;if((c[12758]|0)>>>0>=(a+-1|0)>>>0){d=a+8|0;a=rB(b,d<<2)|0;c[12757]=a;if(!a)_l(120682);else{b=a+(c[13074]<<2)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[13074]=d;break}}}while(0);return}function Yl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[13072]|0;if(d>>>0>(c[13070]|0)>>>0){d=d+-1|0;c[13072]=d}e=a[b>>0]|0;c[13072]=d+1;a[d>>0]=e;if(e<<24>>24){e=b;do{e=e+1|0;d=c[13072]|0;b=c[13071]|0;if(d>>>0>=b>>>0){h=c[13070]|0;f=h;g=b-f<<1;b=rB(h,g)|0;c[13070]=b;c[13071]=b+g;d=b+(d-f)|0;c[13072]=d}h=a[e>>0]|0;c[13072]=d+1;a[d>>0]=h}while(h<<24>>24!=0)}return}function Zl(){var d=0,e=0,f=0,g=0,h=0;d=(c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]|0)+(c[12756]|0)|0;e=c[12748]|0;h=c[12760]|0;if(e>>>0<h>>>0)do{f=a[e>>0]|0;if(!(f<<24>>24))f=1;else f=c[51044+((f&255)<<2)>>2]|0;if(b[95220+(d<<1)>>1]|0){c[13017]=d;c[13018]=e}a:while(1){g=f&255;do{f=(b[95406+(d<<1)>>1]|0)+g|0;if((b[95616+(f<<1)>>1]|0)==(d|0)){d=f;break a}f=b[96152+(d<<1)>>1]|0;d=f<<16>>16}while(f<<16>>16<=92);f=c[52076+(g<<2)>>2]|0}d=b[96362+(d<<1)>>1]|0;e=e+1|0}while(e>>>0<h>>>0);return d|0}function _l(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=c[22667]|0;c[b>>2]=a;Bz(d,120678,b)|0;qb(2)}function $l(a,b){a=a|0;b=b|0;var d=0,e=0;d=qy()|0;e=c[d>>2]|0;Tl(a);c[a>>2]=b;c[a+40>>2]=1;b=c[12757]|0;if(!b)b=0;else b=c[b+(c[12758]<<2)>>2]|0;if((b|0)!=(a|0)){c[a+32>>2]=1;c[a+36>>2]=0}c[a+24>>2]=0;c[d>>2]=e;return}function am(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+80|0;g=h+8|0;f=h;if(!(((b|0)!=0?(lk(a,0,b,f,0)|0)!=0:0)?(k=f,l=c[k>>2]|0,k=c[k+4>>2]|0,e=a+52|0,lm(a,c[e>>2]|0,50552),j=g+8|0,c[j>>2]=l,c[j+4>>2]=k,e=c[e>>2]|0,e=ub[c[e>>2]&31](e,g,4)|0,(e|0)!=0):0))if((d|0)!=0?(lk(a,0,b,f,1)|0)!=0:0){e=f;e=fm(a,c[e>>2]|0,c[e+4>>2]|0)|0;pk(a,0,e)}else e=0;i=h;return e|0}function bm(a){a=a|0;a=c[a+52>>2]|0;return ub[c[a>>2]&31](a,0,128)|0}function cm(a){a=a|0;var b=0;b=c[a+56>>2]|0;if(!b)b=0;else{b=c[b+52>>2]|0;b=ub[c[b>>2]&31](b,a,8)|0}return b|0}function dm(a){a=a|0;return c[a+56>>2]|0}function em(a,b){a=a|0;b=b|0;a=c[a+52>>2]|0;return ub[c[a>>2]&31](a,b,2)|0}function fm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;g=i;i=i+80|0;f=g;h=b+52|0;lm(b,c[h>>2]|0,50552);j=f+8|0;c[j>>2]=d;c[j+4>>2]=e;h=c[h>>2]|0;f=ub[c[h>>2]&31](h,f,4)|0;if(!f){f=Lk(b,72)|0;c[f+64>>2]=c[b+64>>2];j=f+24|0;h=c[b+24>>2]|0;c[j>>2]=h;a[j>>0]=h&255&-9;c[f+56>>2]=b;c[f+60>>2]=c[b+60>>2];j=f+8|0;c[j>>2]=d;c[j+4>>2]=e;f=bk(f)|0}i=g;return f|0}function gm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[13075]|0;e=(b|0)!=0;do if(!a)if(e){pB(b);a=0;break}else{a=oB(d)|0;break}else if(e){Mk(a,b);a=0;break}else{a=Lk(a,d)|0;break}while(0);return a|0}function hm(a,b,d){a=a|0;b=b|0;d=d|0;a=c[13075]|0;if(!a)pB(b);else Mk(a,b);return}function im(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b+28|0;f=c[e>>2]|0;c[e>>2]=2;c[13075]=a;d=Vi(b,d)|0;c[e>>2]=f;c[13075]=0;return d|0}function jm(a,b,d){a=a|0;b=b|0;d=d|0;c[13075]=a;return ub[c[b>>2]&31](b,d,2)|0}function km(a,b){a=a|0;b=b|0;var d=0,e=0;d=(Qi(b,0,0)|0)+28|0;e=c[d>>2]|0;c[d>>2]=2;c[13075]=a;if(!(Pi(b)|0)){c[d>>2]=e;c[13075]=0;d=0}else d=1;return d|0}function lm(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=0?(Qi(b,0,0)|0)!=(c|0):0)Qi(b,c,0)|0;return}function mm(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;if(!(Ll(b)|0))c=qm(b,c)|0;else{a[c>>0]=60;d=c+1|0;e=a[b>>0]|0;if(!(e<<24>>24))e=c;else{f=d;while(1){b=b+1|0;a[f>>0]=e;d=f+1|0;e=a[b>>0]|0;if(!(e<<24>>24)){e=f;break}else f=d}}a[d>>0]=62;a[e+2>>0]=0}return c|0}function nm(a){a=a|0;return mm(a,rm(a)|0)|0}function om(a,b){a=a|0;b=b|0;a=bm(a)|0;a:do if(!a)a=0;else while(1){if((sm(a)|0)==0?(Wk(a,b,0)|0)!=0:0){a=1;break a}a=cm(a)|0;if(!a){a=0;break}}while(0);return a|0}function pm(b,d){b=b|0;d=d|0;var e=0,f=0;c[13076]=0;e=zj(b,120732)|0;if(((e|0)!=0?((a[e>>0]|0)+-48|0)>>>0<10:0)?(f=bA(e,0,10)|0,(f|0)==0|(f|0)>59):0)c[13077]=f;tm(b,1);if(((um(b,d,1)|0)!=-1?(vm(b,d)|0)!=-1:0)?(wm(b,d)|0)!=-1:0){c[13077]=128;e=Eb[c[(c[(c[b+64>>2]|0)+8>>2]|0)+8>>2]&31](d)|0}else e=-1;return e|0}function qm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;do if((b|0)!=0?(a[b>>0]|0)!=0:0){e=d+1|0;a[d>>0]=34;h=a[b>>0]|0;if(h<<24>>24){r=b;o=0;g=0;i=0;j=((h+-45&255)<2|((h&255)+-48|0)>>>0<10)&1;f=0;n=h;while(1){r=r+1|0;h=n&255;a:do if(n<<24>>24==34){a[e>>0]=92;l=i;m=j;f=1;k=e+1|0}else{if(!j){k=n<<24>>24>-1&(n<<24>>24!=95&(Wx(h)|0)==0);l=i;m=0;f=k?1:f;k=e;break}switch(n<<24>>24){case 45:{k=(g|0)==0;l=i;m=k?j:0;f=k?f:1;k=e;break a}case 46:{k=(i|0)==0;l=i+1|0;m=k?j:0;f=k?f:1;k=e;break a}default:{k=(h+-48|0)>>>0<10;l=i;m=k?j:0;f=k?f:1;k=e;break a}}}while(0);e=k+1|0;a[k>>0]=n;j=n;n=a[r>>0]|0;g=g+1|0;b:do if(c[13077]|0){h=n&255;i=n<<24>>24!=0;c:do if(((o|0)!=0&i?(Wx(j<<24>>24)|0)==0:0)?(p=a[k>>0]|0,p<<24>>24>=0):0){switch(p<<24>>24){case 45:case 46:case 92:break c;default:{}}if(!(n<<24>>24>-1&((n+-45&255)>1&(Wx(h)|0)==0))){a[e>>0]=92;a[k+2>>0]=10;h=0;g=0;f=1;e=k+3|0;break b}}while(0);if(!((g|0)<(c[13077]|0)|i^1))if((Wx(a[k>>0]|0)|0)==0?(q=a[k>>0]|0,q<<24>>24>=0):0){switch(q<<24>>24){case 45:case 46:case 92:{h=1;break b}default:{}}if(!(n<<24>>24>-1&((n+-45&255)>1&(Wx(h)|0)==0))){a[e>>0]=92;a[k+2>>0]=10;h=o;g=0;f=1;e=k+3|0}else h=1}else h=1;else h=o}else h=o;while(0);if(!(n<<24>>24))break;else{o=h;i=l;j=m}}a[e>>0]=34;a[e+1>>0]=0;if(f)break;if((g|0)==1?((a[b>>0]|0)+-45&255)<2:0)break}else{a[e>>0]=34;a[d+2>>0]=0}if(((((hA(134886,b)|0)!=0?(hA(134900,b)|0)!=0:0)?(hA(120797,b)|0)!=0:0)?(hA(134935,b)|0)!=0:0)?(hA(134927,b)|0)!=0:0){r=(hA(134941,b)|0)==0;return (r?d:b)|0}}else d=120794;while(0);return d|0}function rm(a){a=a|0;var b=0;b=((pA(a)|0)<<1)+2|0;b=b>>>0>1024?b:1024;a=c[13081]|0;if(b>>>0>(c[13080]|0)>>>0){if(!a)a=oB(b)|0;else a=rB(a,b)|0;c[13081]=a;c[13080]=b}return a|0}function sm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=ok(b)|0;if((g|0)!=0?(a[g>>0]|0)!=37:0)d=0;else e=3;a:do if((e|0)==3){d=qj(b)|0;if(((d|0)!=0?(f=qj(dm(b)|0)|0,(f|0)!=0):0)?(h=Xi(c[(qj(hl(b)|0)|0)+8>>2]|0)|0,(h|0)>0):0){g=c[d+12>>2]|0;d=f+12|0;f=0;do{e=c[g+(f<<2)>>2]|0;if(((e|0)!=0?(i=c[(c[d>>2]|0)+(f<<2)>>2]|0,(i|0)!=0):0)?(lA(e,i)|0)!=0:0){d=0;break a}f=f+1|0}while((f|0)<(h|0))}d=mj(b,0)|0;if(d)if((Xi(c[d+8>>2]|0)|0)>0)d=0;else return (Xi(c[d+12>>2]|0)|0)<1|0;else d=1}while(0);return d|0}function tm(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=c[a>>2]&-9;d=bm(a)|0;if(d)do{tm(d,0);d=cm(d)|0}while((d|0)!=0);if((b|0)!=0?(e=Rk(a)|0,(e|0)!=0):0)do{c[e>>2]=c[e>>2]&-9;d=Lj(a,e)|0;if(d)do{c[d>>2]=c[d>>2]&-9;d=Nj(a,d)|0}while((d|0)!=0);e=Sk(a,e)|0}while((e|0)!=0);return}function um(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((e|0)==0?(dm(b)|0)!=0:0){l=133218;m=0;j=164137}else{l=(a[b+24>>0]&1)==0?164137:120776;j=(jk(b)|0)==0;c[13078]=rj(b,2,134905,0)|0;c[13079]=rj(b,2,134914,0)|0;m=1;j=j?164137:120779}f=ok(b)|0;if((f|0)!=0?(a[f>>0]|0)!=37:0){k=1;i=126232}else{k=0;f=164137;i=164137}g=c[13076]|0;h=b+64|0;a:do if((g|0)>0)while(1){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){f=-1;break a}if((g|0)>1)g=g+-1|0;else{n=10;break}}else n=10;while(0);do if((n|0)==10)if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,j)|0)!=-1){g=(k|0)==0;if(k|m){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,l)|0)==-1){f=-1;break}if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,126220)|0)==-1){f=-1;break}}if(!g?(n=mm(f,rm(f)|0)|0,(Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,n)|0)==-1):0){f=-1;break}if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,i)|0)!=-1?(Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,120787)|0)!=-1:0){c[13076]=(c[13076]|0)+1;f=mj(b,0)|0;if(f){if((Em(b,d,134935,c[f+16>>2]|0,e)|0)==-1){f=-1;break}if((Em(b,d,134886,c[f+8>>2]|0,e)|0)==-1){f=-1;break}if((Em(b,d,134900,c[f+12>>2]|0,e)|0)==-1){f=-1;break}}c[b>>2]=c[b>>2]|8;f=0}else f=-1}else f=-1;while(0);return f|0}function vm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:do if((xm(a,b)|0)!=-1){d=mj(hl(a)|0,0)|0;e=Rk(a)|0;if(!e)d=0;else{m=(d|0)==0;n=d+12|0;l=d+8|0;while(1){if(ym(a,e,(c[e>>2]|0)>>>4,0)|0){if(m)d=0;else d=c[l>>2]|0;if((zm(e,b,d)|0)==-1){d=-1;break a}}d=Lj(a,e)|0;if(d){g=e;do{h=d+-48|0;f=c[((c[d>>2]&3|0)==2?d:h)+40>>2]|0;if((g|0)!=(f|0)?(ym(a,f,(c[e>>2]|0)>>>4,0)|0)!=0:0){if(m)f=0;else f=c[l>>2]|0;if((zm(c[((c[d>>2]&3|0)==2?d:h)+40>>2]|0,b,f)|0)==-1){d=-1;break a}g=c[((c[d>>2]&3|0)==2?d:h)+40>>2]|0}f=bm(a)|0;b:do if(!f)o=19;else while(1){if((sm(f)|0)==0?(Vj(f,d,0)|0)!=0:0)break b;f=cm(f)|0;if(!f){o=19;break}}while(0);if((o|0)==19){o=0;if(m)j=0;else j=c[n>>2]|0;i=c[d>>2]&3;k=c[((i|0)==3?d:d+48|0)+40>>2]|0;h=c[((i|0)==2?d:h)+40>>2]|0;i=gl(k)|0;f=c[13076]|0;i=i+64|0;if((f|0)>0)while(1){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){d=-1;break a}if((f|0)>1)f=f+-1|0;else break}if((Am(k,b)|0)==-1){d=-1;break a}if((Bm(d,b,c[13078]|0)|0)==-1){d=-1;break a}k=(hk(gl(k)|0)|0)!=0;if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,k?124674:124679)|0)==-1){d=-1;break a}if((Am(h,b)|0)==-1){d=-1;break a}if((Bm(d,b,c[13079]|0)|0)==-1){d=-1;break a}if(!(c[d>>2]&8)){if((Cm(d,b,j)|0)==-1){d=-1;break a}}else if((Dm(d,b,1)|0)==-1){d=-1;break a}if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120743)|0)==-1){d=-1;break a}}d=Nj(a,d)|0}while((d|0)!=0)}e=Sk(a,e)|0;if(!e){d=0;break}}}}else d=-1;while(0);return d|0}function wm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=c[13076]|0;d=g+-1|0;c[13076]=d;e=a+64|0;a:do if((g|0)>1){a=d;while(1){if((Lb[c[(c[(c[e>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){a=-1;break a}if((a|0)>1)a=a+-1|0;else{f=4;break}}}else f=4;while(0);if((f|0)==4)a=((Lb[c[(c[(c[e>>2]|0)+8>>2]|0)+4>>2]&63](b,134423)|0)==-1)<<31>>31;return a|0}function xm(a,b){a=a|0;b=b|0;a=bm(a)|0;a:do if(!a)a=0;else while(1){if(!(sm(a)|0)){if((um(a,b,0)|0)==-1){a=-1;break a}if((vm(a,b)|0)==-1){a=-1;break a}if((wm(a,b)|0)==-1){a=-1;break a}}else xm(a,b)|0;a=cm(a)|0;if(!a){a=0;break}}while(0);return a|0}function ym(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if((om(a,b)|0)==0?!(0<e>>>0|(0==(e|0)?(c[b>>2]|0)>>>4>>>0<d>>>0:0)):0){f=Oj(a,b)|0;if(f)do{if(0<e>>>0|(0==(e|0)?(c[c[f+40>>2]>>2]|0)>>>4>>>0<d>>>0:0)){f=0;break a}f=Pj(a,f)|0}while((f|0)!=0);if((Oj(a,b)|0)==0?(Lj(a,b)|0)==0:0){f=1;break}f=qj(b)|0;if((f|0)!=0?(h=f+8|0,g=c[h>>2]|0,g=ub[c[g>>2]&31](g,0,128)|0,(g|0)!=0):0){d=f+12|0;f=g;while(1){if((c[(c[d>>2]|0)+(c[f+16>>2]<<2)>>2]|0)!=(c[f+12>>2]|0)){f=1;break a}g=c[h>>2]|0;f=ub[c[g>>2]&31](g,f,8)|0;if(!f){f=0;break}}}else f=0}else f=0;while(0);return f|0}function zm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=gl(a)|0;e=c[13076]|0;f=f+64|0;a:do if((e|0)>0)while(1){if((Lb[c[(c[(c[f>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){e=-1;break a}if((e|0)>1)e=e+-1|0;else{g=4;break}}else g=4;while(0);do if((g|0)==4)if((Am(a,b)|0)==-1)e=-1;else{if((c[a>>2]&8|0)==0?(Cm(a,b,d)|0)==-1:0){e=-1;break}e=Lb[c[(c[(c[f>>2]|0)+8>>2]|0)+4>>2]&63](b,120743)|0}while(0);return e|0}function Am(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;g=j;f=j+8|0;d=ok(a)|0;e=gl(a)|0;if(!d){k=a+8|0;d=c[k+4>>2]|0;a=g;c[a>>2]=c[k>>2];c[a+4>>2]=d;Oz(f,120763,g)|0;if((Lb[c[(c[(c[e+64>>2]|0)+8>>2]|0)+4>>2]&63](b,f)|0)==-1)d=-1;else h=4}else{k=mm(d,rm(d)|0)|0;if((Lb[c[(c[(c[e+64>>2]|0)+8>>2]|0)+4>>2]&63](b,k)|0)==-1)d=-1;else h=4}if((h|0)==4)d=0;i=j;return d|0}function Bm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;a:do if((e|0)!=0?(f=gl(b)|0,g=Aj(b,e)|0,(a[g>>0]|0)!=0):0){b=f+64|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,133477)|0)==-1)f=-1;else{do if(Ll(g)|0){g=mm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}}else{f=jA(g,58)|0;if(!f){g=qm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}else break}a[f>>0]=0;g=qm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,133477)|0)==-1){f=-1;break a}g=f+1|0;g=qm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}a[f>>0]=58}while(0);f=0}}else f=0;while(0);return f|0}function Cm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:do if(!(c[a>>2]&2)){e=0;l=4}else{switch(Dm(a,b,0)|0){case -1:{e=-1;break a}case 0:{e=0;l=4;break a}default:{}}e=1;l=4}while(0);b:do if((l|0)==4){f=qj(a)|0;k=gl(a)|0;if((f|0)!=0?(g=ub[c[d>>2]&31](d,0,128)|0,(g|0)!=0):0){j=f+12|0;i=k+64|0;do{do if(c[a>>2]&2){h=c[13078]|0;if((h|0)!=0?(c[g+16>>2]|0)==(c[h+16>>2]|0):0)break;h=c[13079]|0;if(!((h|0)!=0?(c[g+16>>2]|0)==(c[h+16>>2]|0):0))l=12}else l=12;while(0);if((l|0)==12){l=0;f=g+16|0;if((c[(c[j>>2]|0)+(c[f>>2]<<2)>>2]|0)!=(c[g+12>>2]|0)){h=e+1|0;if(e){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120758)|0)==-1){e=-1;break b}e=c[13076]|0;if((e|0)>0)while(1){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){e=-1;break b}if((e|0)>1)e=e+-1|0;else break}}else{e=c[13076]|0;if((e|0)>0)while(1){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){e=-1;break b}if((e|0)>1)e=e+-1|0;else break}if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120755)|0)==-1){e=-1;break b}c[13076]=(c[13076]|0)+1}e=c[g+8>>2]|0;e=mm(e,rm(e)|0)|0;if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,e)|0)==-1){e=-1;break b}if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120761)|0)==-1){e=-1;break b}f=c[(c[j>>2]|0)+(c[f>>2]<<2)>>2]|0;f=mm(f,rm(f)|0)|0;if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,f)|0)==-1){e=-1;break b}else e=h}}g=ub[c[d>>2]&31](d,g,8)|0}while((g|0)!=0)}if((e|0)>0){if((Lb[c[(c[(c[k+64>>2]|0)+8>>2]|0)+4>>2]&63](b,120753)|0)==-1){e=-1;break}c[13076]=(c[13076]|0)+-1}c[a>>2]=c[a>>2]|8;e=0}while(0);return e|0}function Dm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=ok(b)|0;b=gl(b)|0;if((f|0)!=0?(a[f>>0]|0)!=0:0){b=b+64|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,120746)|0)!=-1?(f=mm(f,rm(f)|0)|0,(Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,f)|0)!=-1):0)if((e|0)!=0?(Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,120753)|0)==-1:0)b=-1;else{b=1;g=7}else b=-1}else{b=0;g=7}return b|0}function Em(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=(g|0)!=0;if(m)n=0;else n=$i(f,0)|0;g=ub[c[f>>2]&31](f,0,128)|0;a:do if(g){k=(n|0)==0;l=b+64|0;h=0;j=g;while(1){i=j+12|0;o=c[i>>2]|0;if((o|0)!=0?(a[o>>0]|0)!=0:0)o=12;else o=7;do if((o|0)==7){o=0;if(!(a[j+22>>0]|0))if(!k){g=ub[c[n>>2]&31](n,j,4)|0;p=c[g+12>>2]|0;if((p|0)!=0?(a[p>>0]|0)!=0:0){o=12;break}if(!(a[g+22>>0]|0))o=12;else g=h}else g=h;else o=12}while(0);if((o|0)==12){o=0;g=h+1|0;if(h){if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,120758)|0)==-1){g=-1;break a}h=c[13076]|0;if((h|0)>0)while(1){if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){g=-1;break a}if((h|0)>1)h=h+-1|0;else break}}else{h=c[13076]|0;if((h|0)>0)while(1){if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){g=-1;break a}if((h|0)>1)h=h+-1|0;else break}if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,e)|0)==-1){g=-1;break a}if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,120755)|0)==-1){g=-1;break a}c[13076]=(c[13076]|0)+1}p=c[j+8>>2]|0;p=mm(p,rm(p)|0)|0;if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,p)|0)==-1){g=-1;break a}if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,120761)|0)==-1){g=-1;break a}p=c[i>>2]|0;p=mm(p,rm(p)|0)|0;if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,p)|0)==-1){g=-1;break a}}j=ub[c[f>>2]&31](f,j,8)|0;if(!j)break;else h=g}if((g|0)>0){c[13076]=(c[13076]|0)+-1;h=b+64|0;if((g|0)>1){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,175632)|0)==-1){g=-1;break}g=c[13076]|0;if((g|0)>0)while(1){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){g=-1;break a}if((g|0)>1)g=g+-1|0;else break}}g=(Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,120790)|0)==-1;if(m|g)g=g<<31>>31;else o=35}else o=34}else o=34;while(0);if((o|0)==34)if(m)g=0;else o=35;if((o|0)==35){$i(f,n)|0;g=0}return g|0}function Fm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;h=k;g=c[b>>2]&3;switch(g|0){case 0:{h=19;j=5;break}case 1:{h=20;j=5;break}case 3:case 2:{h=21;j=5;break}default:{c[h>>2]=g;dj(1,120804,h)|0;g=-1}}if((j|0)==5){g=Lb[h&63](a,b)|0;if(!g)g=-1;else{Jm(a,g,d,e,h,f);g=0}}i=k;return g|0}function Gm(a,b){a=a|0;b=b|0;if((gl(b)|0)!=(a|0))b=Vj(a,b,0)|0;return b|0}function Hm(a,b){a=a|0;b=b|0;if((gl(b)|0)!=(a|0))b=Wk(a,b,0)|0;return b|0}function Im(a,b){a=a|0;b=b|0;return a|0}function Jm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=(f|0)!=0;if(i)Gb[c&127](a,b,d);g=bm(a)|0;if(g)do{h=Lb[e&63](g,b)|0;if(h)Jm(g,h,c,d,e,f);g=cm(g)|0}while((g|0)!=0);if(!i)Gb[c&127](a,b,d);return}function Km(){var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+2224|0;w=A+800|0;y=A+1824|0;f=A;c[13082]=0;c[13083]=-2;r=0;l=y;e=y;h=200;m=0;k=f;a:while(1){b[e>>1]=m;if((l+(h+-1<<1)|0)>>>0<=e>>>0){j=e-l>>1;e=j+1|0;if(h>>>0>9999){f=l;z=100;break}g=h<<1;g=g>>>0>1e4?1e4:g;f=oB(g*6|3)|0;if(!f){f=l;z=100;break}AB(f|0,l|0,e<<1|0)|0;h=f+((g>>>1&1073741823)<<2)|0;AB(h|0,k|0,e<<2|0)|0;if((l|0)!=(y|0))pB(l);if((g+-1|0)>(j|0)){u=f;e=f+(j<<1)|0;s=g;t=h;f=h+(j<<2)|0}else{e=1;z=102;break}}else{u=l;s=h;t=k}if((m|0)==6){e=0;f=u;z=101;break}q=a[120837+m>>0]|0;j=q<<24>>24;do if(q<<24>>24!=-18){g=c[13083]|0;if((g|0)==-2){g=Ql()|0;c[13083]=g}if((g|0)>=1)if(g>>>0<269)h=d[120917+g>>0]|0;else h=2;else{c[13083]=0;h=0}g=h+j|0;if(g>>>0<=59?(d[121186+g>>0]|0)==(h|0):0){q=a[121246+g>>0]|0;g=q<<24>>24;if(q<<24>>24<1){g=0-g|0;z=23;break}else{c[13083]=-2;f=f+4|0;c[f>>2]=c[13084];j=(r|0)==0?0:r+-1|0;break}}else z=22}else z=22;while(0);if((z|0)==22){z=0;q=a[121306+m>>0]|0;g=q&255;if(!(q<<24>>24)){g=c[13083]|0;b:do switch(r|0){case 0:{c[13082]=(c[13082]|0)+1;Ul(164107);break}case 3:if((g|0)<1)if(!g){e=1;f=u;z=101;break a}else break b;else{c[13083]=-2;break b}default:{}}while(0);if(m)do{if((e|0)==(u|0)){e=1;f=u;z=101;break a}f=f+-4|0;e=e+-2|0}while((b[e>>1]|0)!=0);f=f+4|0;c[f>>2]=c[13084];j=3;g=1}else z=23}do if((z|0)==23){z=0;o=d[121386+g>>0]|0;p=1-o|0;q=f+(p<<2)|0;n=c[q>>2]|0;c:do switch(g|0){case 2:{Nm();Vl();Bk(c[13085]|0);h=n;break}case 3:{if(!(c[13085]|0))h=n;else{Nm();Vl();Bk(c[13085]|0);dk(c[13085]|0)|0;c[12654]=0;c[13085]=0;h=n}break}case 6:{j=c[f>>2]|0;h=c[13085]|0;if(!h){a[52344]=(c[f+-8>>2]&255)<<1&2|c[f+-4>>2]&1|a[52344]&-12|8;h=c[13087]|0;c[w>>2]=c[13086];h=ak(j,w,h)|0;c[13085]=h}c[12654]=h;l=c[13088]|0;m=Lk(h,36)|0;c[m+32>>2]=l;c[m>>2]=h;c[13088]=m;Kl(0,j)|0;h=n;break}case 7:{h=c[f>>2]|0;break}case 8:{h=0;break}case 9:{h=1;break}case 10:{h=0;break}case 11:{h=0;break}case 12:{h=1;break}case 21:{if(!(c[f+-4>>2]|0)){Om(1);j=c[13088]|0;h=c[j+8>>2]|0;if(!h)h=0;else{do{Rm(c[h+4>>2]|0);h=c[h+12>>2]|0}while((h|0)!=0);h=c[13088]|0;j=h;h=c[h+8>>2]|0}Qm(h);c[j+12>>2]=0;c[j+8>>2]=0;h=c[13088]|0;m=h+24|0;Qm(c[m>>2]|0);c[h+28>>2]=0;c[m>>2]=0;m=c[13088]|0;h=m+16|0;Qm(c[h>>2]|0);c[m+20>>2]=0;c[h>>2]=0;c[(c[13088]|0)+4>>2]=0;h=n;break c}Om(2);h=c[13088]|0;j=c[h+24>>2]|0;if(!j)k=0;else{l=a[121449]|0;k=0;do{if(((c[j>>2]|0)==267?(v=c[j+4>>2]|0,(a[v>>0]|0)==l<<24>>24):0)?(lA(v,121449)|0)==0:0)k=c[j+8>>2]|0;j=c[j+12>>2]|0}while((j|0)!=0)}l=c[h+16>>2]|0;j=l+12|0;m=c[j>>2]|0;if(m){do{h=l+4|0;if((c[l>>2]|0)==262){l=c[h>>2]|0;h=Rk(l)|0;if(h)do{m=Wk(c[c[13088]>>2]|0,h,0)|0;Pm(m,0,c[j>>2]|0,k);h=Sk(l,h)|0}while((h|0)!=0)}else{h=c[h>>2]|0;if((h|0)!=0?(Pm(c[h+4>>2]|0,c[h+8>>2]|0,m,k),x=c[h+12>>2]|0,(x|0)!=0):0){h=x;do{Pm(c[h+4>>2]|0,c[h+8>>2]|0,c[j>>2]|0,k);h=c[h+12>>2]|0}while((h|0)!=0)}}l=c[j>>2]|0;j=l+12|0;m=c[j>>2]|0}while((m|0)!=0);h=c[13088]|0}m=h+8|0;Qm(c[m>>2]|0);c[h+12>>2]=0;c[m>>2]=0;h=c[13088]|0;m=h+16|0;Qm(c[m>>2]|0);c[h+20>>2]=0;c[m>>2]=0;m=c[13088]|0;h=m+24|0;Qm(c[h>>2]|0);c[m+28>>2]=0;c[h>>2]=0;c[(c[13088]|0)+4>>2]=0;h=n;break}case 24:{Sm();h=n;break}case 25:{Sm();h=n;break}case 26:{h=1;break}case 27:{h=0;break}case 30:{Tm(c[f>>2]|0,0,0);h=n;break}case 31:{Tm(c[f+-8>>2]|0,c[f>>2]|0,0);h=n;break}case 32:{Tm(c[f+-16>>2]|0,c[f+-8>>2]|0,c[f>>2]|0);h=n;break}case 33:{Um(c[f+-8>>2]|0,c[f+-4>>2]|0);h=n;break}case 34:{Um(258,0);h=n;break}case 35:{h=258;break}case 36:{h=259;break}case 37:{h=260;break}case 38:{h=c[f+-4>>2]|0;break}case 39:{h=0;break}case 48:{Vm(c[f+-8>>2]|0,c[f>>2]|0);h=n;break}case 49:{Vm(c[f>>2]|0,0);h=n;break}case 51:{h=c[f>>2]|0;k=c[13088]|0;l=am(c[k>>2]|0,h,1)|0;m=Lk(c[13085]|0,36)|0;c[m+32>>2]=k;c[m>>2]=l;c[13088]=m;Kl(c[13085]|0,h)|0;h=n;break}case 52:{l=c[13088]|0;m=c[l>>2]|0;h=c[l+32>>2]|0;Mk(c[13085]|0,l);c[13088]=h;c[h+4>>2]=m;h=n;break}case 53:{h=c[f>>2]|0;break}case 54:{h=0;break}case 55:{h=0;break}case 59:{h=c[f>>2]|0;break}case 60:{h=c[f>>2]|0;break}case 61:{h=c[f>>2]|0;break}case 62:{k=c[f+-8>>2]|0;l=c[f>>2]|0;h=pA(k)|0;h=h+1+(pA(l)|0)|0;if(h>>>0<1025)j=w;else j=oB(h)|0;mA(j,k)|0;iA(j,l)|0;h=Il(c[13085]|0,j)|0;Kl(c[13085]|0,k)|0;Kl(c[13085]|0,l)|0;if((j|0)!=(w|0))pB(j);break}default:h=n}while(0);e=e+(0-o<<1)|0;f=f+(p<<2)|0;c[q>>2]=h;g=(d[121453+g>>0]|0)+-24|0;q=b[e>>1]|0;h=q+(a[121516+g>>0]|0)|0;if(h>>>0<60?(d[121186+h>>0]|0)==(q|0):0){j=r;g=a[121246+h>>0]|0;break}j=r;g=a[121551+g>>0]|0}while(0);r=j;l=u;e=e+2|0;h=s;m=g;k=t}if((z|0)==100){Ul(164120);e=2;z=101}if((z|0)==101)if((f|0)!=(y|0))z=102;if((z|0)==102)pB(f);i=A;return e|0}function Lm(a,b,d){a=a|0;b=b|0;d=d|0;c[12746]=b;c[13085]=a;c[12654]=0;a=(d|0)!=0?d:50604;c[13087]=a;Pl(a,b);Km()|0;b=c[12654]|0;if(!b){Wl();b=c[12654]|0}return b|0}function Mm(a,b){a=a|0;b=b|0;return Lm(0,a,b)|0}function Nm(){var a=0,b=0,d=0;a=c[13088]|0;if(a)do{b=a+8|0;Qm(c[b>>2]|0);c[a+12>>2]=0;c[b>>2]=0;b=c[13088]|0;d=b+24|0;Qm(c[d>>2]|0);c[b+28>>2]=0;c[d>>2]=0;d=c[13088]|0;b=d+16|0;Qm(c[b>>2]|0);c[d+20>>2]=0;c[b>>2]=0;b=c[13088]|0;a=c[b+32>>2]|0;Mk(c[13085]|0,b);c[13088]=a}while((a|0)!=0);return}function Om(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[(c[13088]|0)+24>>2]|0;if(d){g=(b|0)==2;do{e=d+4|0;f=c[e>>2]|0;if(!((g?(a[f>>0]|0)==(a[121449]|0):0)?(lA(f,121449)|0)==0:0)){h=rj(c[c[13088]>>2]|0,b,f,0)|0;c[e>>2]=h;if(!h)c[e>>2]=rj(c[c[13088]>>2]|0,b,f,164137)|0;c[d>>2]=266;Kl(c[13085]|0,f)|0}d=c[d+12>>2]|0}while((d|0)!=0)}return}function Pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=d+4|0;if((c[d>>2]|0)==262){d=c[f>>2]|0;f=Rk(d)|0;if(f)do{Wm(a,b,Wk(c[c[13088]>>2]|0,f,0)|0,0,e);f=Sk(d,f)|0}while((f|0)!=0)}else{f=c[f>>2]|0;if(f)do{d=Wk(c[c[13088]>>2]|0,c[f+4>>2]|0,0)|0;Wm(a,b,d,c[f+8>>2]|0,e);f=c[f+12>>2]|0}while((f|0)!=0)}return}function Qm(a){a=a|0;var b=0;a:do if(a)while(1){b=a;a=c[a+12>>2]|0;switch(c[b>>2]|0){case 265:{Qm(c[b+4>>2]|0);break}case 266:case 267:{Kl(c[13085]|0,c[b+8>>2]|0)|0;break}default:{}}Mk(c[13085]|0,b);if(!a)break a}while(0);return}function Rm(a){a=a|0;var b=0,d=0;b=c[(c[13088]|0)+24>>2]|0;if(b)do{if((c[b>>2]|0)==266?(d=c[b+4>>2]|0,(d|0)!=0):0)Cj(a,d,c[b+8>>2]|0)|0;b=c[b+12>>2]|0}while((b|0)!=0);return}function Sm(){var a=0,b=0,d=0,e=0;b=c[13088]|0;a=c[b+8>>2]|0;if(!a){a=c[b+4>>2]|0;if(!a){a=b;b=0}else{b=Lk(c[13085]|0,16)|0;c[b>>2]=262;c[b+4>>2]=a;c[b+8>>2]=0;a=c[13088]|0}c[a+4>>2]=0}else{b=Lk(c[13085]|0,16)|0;c[b>>2]=265;c[b+4>>2]=a;c[b+8>>2]=0;c[(c[13088]|0)+12>>2]=0;c[(c[13088]|0)+8>>2]=0}if(b){a=c[13088]|0;d=a+20|0;e=c[d>>2]|0;if(e)c[e+12>>2]=b;c[d>>2]=b;a=a+16|0;if(!(c[a>>2]|0))c[a>>2]=b}return}function Tm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+1040|0;g=j;h=j+8|0;if(!d)e=b;else{e=pA(b)|0;e=e+2+(pA(d)|0)|0;if(e>>>0<1025)f=h;else f=oB(e)|0;c[g>>2]=b;c[g+4>>2]=d;Oz(f,121619,g)|0;e=Il(c[13085]|0,f)|0;Kl(c[13085]|0,b)|0;Kl(c[13085]|0,d)|0;if((f|0)!=(h|0))pB(f)}f=Xk(c[c[13088]>>2]|0,a,1)|0;h=Lk(c[13085]|0,16)|0;c[h>>2]=259;c[h+4>>2]=f;c[h+8>>2]=e;e=c[13088]|0;f=e+12|0;g=c[f>>2]|0;if(g)c[g+12>>2]=h;c[f>>2]=h;e=e+8|0;if(!(c[e>>2]|0))c[e>>2]=h;Kl(c[13085]|0,a)|0;i=j;return}function Um(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;if(d)dj(0,121586,h)|0;d=c[(c[13088]|0)+24>>2]|0;if(d)do{if(!(c[d+8>>2]|0))dj(0,121586,e)|0;d=c[d+12>>2]|0}while((d|0)!=0);g=(b|0)==260?2:(b|0)==259&1;Om(g);d=c[13088]|0;b=c[d+24>>2]|0;if(!b){b=d;d=0}else{do{do if((c[b>>2]|0)!=267){e=c[b+4>>2]|0;f=c[d>>2]|0;if(!((a[e+21>>0]|0)!=0&(f|0)==(c[13085]|0))){e=rj(f,g,c[e+8>>2]|0,c[b+8>>2]|0)|0;d=c[13088]|0;if((c[d>>2]|0)!=(c[13085]|0))break}a[e+22>>0]=1}while(0);b=c[b+12>>2]|0}while((b|0)!=0);b=d;d=c[d+24>>2]|0}Qm(d);c[b+28>>2]=0;c[b+24>>2]=0;i=h;return}function Vm(a,b){a=a|0;b=b|0;var d=0,e=0;e=Lk(c[13085]|0,16)|0;c[e>>2]=267;c[e+4>>2]=a;c[e+8>>2]=b;a=c[13088]|0;b=a+28|0;d=c[b>>2]|0;if(d)c[d+12>>2]=e;c[b>>2]=e;a=a+24|0;if(!(c[a>>2]|0))c[a>>2]=e;return}function Wm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;d=Sj(c[c[13088]>>2]|0,a,d,f,1)|0;if(d){g=c[d>>2]&3;f=c[((g|0)==2?d:d+-48|0)+40>>2]|0;a=(f|0)==(a|0)?(c[((g|0)==3?d:d+48|0)+40>>2]|0)!=(f|0):0;Xm(d,134905,a?e:b);Xm(d,134914,a?b:e);Rm(d)}return}function Xm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d){e=rj(c[c[13088]>>2]|0,2,b,0)|0;if(!e)e=rj(c[c[13088]>>2]|0,2,b,164137)|0;Cj(a,e,d)|0}return}function Ym(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;m=n+16|0;l=n+8|0;g=n;h=n+20|0;d=c[b+76>>2]|0;f=c[b>>2]|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){zb[e&127](b);j=21}else j=4;do if((j|0)==4)if((c[b+40>>2]|0)==0?(k=b+36|0,(c[k>>2]|0)==0):0){if(!(a[f+13>>0]|0)){e=b+32|0;d=e;e=c[e>>2]|0}else{d=c[b+24>>2]|0;if(!d)a[h>>0]=0;else{c[g>>2]=d+1;Oz(h,121625,g)|0}e=c[b+20>>2]|0;e=(e|0)!=0?e:121629;g=pA(e)|0;d=pA(h)|0;f=b+52|0;d=g+1+d+(pA(c[f>>2]|0)|0)|0;if((c[13089]|0)>>>0<(d+1|0)>>>0){d=d+11|0;c[13089]=d;d=rB(c[13090]|0,d)|0;c[13090]=d}else d=c[13090]|0;mA(d,e)|0;iA(c[13090]|0,h)|0;e=c[13090]|0;e=e+(pA(e)|0)|0;a[e>>0]=46;a[e+1>>0]=0;f=oA(c[f>>2]|0)|0;e=uA(f,58)|0;d=c[13090]|0;if(e)do{iA(d,e+1|0)|0;d=c[13090]|0;d=d+(pA(d)|0)|0;a[d>>0]=46;a[d+1>>0]=0;a[e>>0]=0;e=uA(f,58)|0;d=c[13090]|0}while((e|0)!=0);iA(d,f)|0;pB(f);e=c[13090]|0;d=b+32|0;c[d>>2]=e}if(!e){c[k>>2]=c[22669];j=21;break}h=Az(e,129155)|0;c[k>>2]=h;if(!h){m=c[(c[b+12>>2]|0)+16>>2]|0;b=c[d>>2]|0;d=ry(c[(qy()|0)>>2]|0)|0;c[l>>2]=b;c[l+4>>2]=d;Bb[m&31](121639,l);d=1}else j=21}else j=21;while(0);if((j|0)==21)if(!(c[b+152>>2]&1024))d=0;else{Bb[c[(c[b+12>>2]|0)+16>>2]&31](121677,m);d=1}i=n;return d|0}function Zm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+16|0;n=o+8|0;f=o;a:do if((d|0)!=0&(e|0)!=0){if(c[b+152>>2]&1024){Bb[c[(c[b+12>>2]|0)+16>>2]&31](121677,f);qb(1)}f=c[(c[b>>2]|0)+104>>2]|0;do if(!f){k=b+40|0;j=c[k>>2]|0;if(!j){f=Mz(d,1,e,c[b+36>>2]|0)|0;break}f=b+44|0;h=b+48|0;g=c[h>>2]|0;do if(((c[f>>2]|0)+-1-g|0)>>>0<e>>>0){g=e+4096+g&-4096;c[f>>2]=g;f=rB(j,g)|0;c[k>>2]=f;if(!f){Bb[c[(c[b+12>>2]|0)+16>>2]&31](121695,n);qb(1)}else{l=f;m=c[h>>2]|0;break}}else{l=j;m=g}while(0);AB(l+m|0,d|0,e|0)|0;g=(c[h>>2]|0)+e|0;c[h>>2]=g;a[(c[k>>2]|0)+g>>0]=0;g=e;break a}else f=ub[f&31](b,d,e)|0;while(0);if((f|0)==(e|0))g=e;else{b=c[(c[b+12>>2]|0)+16>>2]|0;c[h>>2]=e;Bb[b&31](121722,h);qb(1)}}else g=0;while(0);i=o;return g|0}function _m(a,b){a=a|0;b=b|0;var c=0;c=pA(b)|0;b=(Zm(a,b,c)|0)==(c|0);return (b?1:-1)|0}function $m(b,c){b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;a[e>>0]=c;b=(Zm(b,e,1)|0)==1;i=d;return (b?c:-1)|0}function an(b){b=b|0;var d=0;d=c[b+36>>2]|0;if(((d|0)!=0?(a[b+144>>0]|0)==0:0)?(c[(c[b>>2]|0)+104>>2]|0)==0:0)d=wz(d)|0;else d=0;return d|0}function bn(a){a=a|0;var b=0,d=0;b=c[a+76>>2]|0;if((b|0)!=0?(d=c[b+4>>2]|0,(d|0)!=0):0)zb[d&127](a);an(a)|0;return}function cn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;d=c[b+76>>2]|0;if(c[b+152>>2]&1024){Bb[c[(c[b+12>>2]|0)+16>>2]&31](121747,k);qb(1)}if((d|0)!=0?(e=c[d+8>>2]|0,(e|0)!=0):0)zb[e&127](b);else j=6;if((((j|0)==6?(an(b)|0,f=b+32|0,(c[f>>2]|0)!=0):0)?(g=b+36|0,h=c[g>>2]|0,(h|0)!=(c[22669]|0)):0)?(a[b+144>>0]|0)==0:0){if(h){uz(h)|0;c[g>>2]=0}c[f>>2]=0}i=k;return}function dn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+1056|0;f=j;h=j+24|0;g=j+8|0;c[g>>2]=d;e=Uz(h,1024,b,g)|0;if((e|0)>=0){if((e|0)>1023){e=aq(e+1|0)|0;c[g>>2]=d;f=e;e=Vz(e,b,g)|0}else f=h;Zm(a,f,e)|0;if((f|0)!=(h|0))pB(f)}else{c[f>>2]=ry(c[(qy()|0)>>2]|0)|0;dj(1,121764,f)|0}i=j;return}function en(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;f=hn(e,b)|0;Zm(a,f,c[e>>2]|0)|0;i=d;return}function fn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;f=hn(e,+h[b>>3])|0;Zm(a,f,c[e>>2]|0)|0;Zm(a,126232,1)|0;b=hn(e,+h[b+8>>3])|0;Zm(a,b,c[e>>2]|0)|0;i=d;return}function gn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];fn(a,e);if((d|0)>1){f=1;do{Zm(a,126232,1)|0;h=b+(f<<4)|0;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[e+8>>2]=c[h+8>>2];c[e+12>>2]=c[h+12>>2];fn(a,e);f=f+1|0}while((f|0)!=(d|0))}i=g;return}function hn(b,d){b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;do if(d<-1.0e15){c[b>>2]=19;e=121798}else{if(d>1.0e15){c[b>>2]=18;e=121799;break}d=d*1.0e4;e=~~(d+(d<0.0?-.5:.5));if(!e){c[b>>2]=1;e=161945;break}k=(e|0)<0;h=k?0-e|0:e;j=4;e=121798;g=0;while(1){f=(h|0)%10|0;i=h;h=(h|0)/10|0;if(g<<24>>24==0&(f|0)==0)g=0;else{e=e+-1|0;a[e>>0]=f|48;g=1}if((j|0)==1)if(!(g<<24>>24))g=1;else{e=e+-1|0;a[e>>0]=46;g=1}if(!((i+9|0)>>>0>18|(j|0)>1))break;else j=j+-1|0}if(k){e=e+-1|0;a[e>>0]=45}c[b>>2]=121798-e}while(0);return e|0}function jn(a,b){a=a|0;b=b|0;var d=0;d=$p(392)|0;if(d){c[d>>2]=52364;c[d+16>>2]=22;c[d+32>>2]=a;c[d+36>>2]=b}return d|0}function kn(a){a=a|0;var b=0,d=0,e=0,f=0;b=$p(392)|0;d=b;e=a;f=d+40|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));f=b+60|0;e=a+60|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];f=b+80|0;e=a+80|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];return b|0}function ln(a){a=a|0;rn(a);pB(a);return}function mn(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+160|0;e=c[d>>2]|0;do if(!e){e=$p(632)|0;c[d>>2]=e;c[a+164>>2]=e;c[13094]=e;d=e}else{d=c[13094]|0;if(!d){c[13094]=e;d=e;break}if(!(c[d+4>>2]|0)){d=$p(632)|0;c[(c[13094]|0)+4>>2]=d;d=c[13094]|0}d=c[d+4>>2]|0;c[13094]=d}while(0);c[d+32>>2]=b;c[c[13094]>>2]=a;return}function nn(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+160|0;e=c[d>>2]|0;do if(!e){e=$p(632)|0;c[d>>2]=e;c[a+164>>2]=e;c[13095]=e;d=e}else{d=c[13095]|0;if(!d){c[13095]=e;d=e;break}if(!(c[d+4>>2]|0)){d=$p(632)|0;c[(c[13095]|0)+4>>2]=d;d=c[13095]|0}d=c[d+4>>2]|0;c[13095]=d}while(0);c[d+52>>2]=b;c[c[13095]>>2]=a;return (tn(a,3,b)|0)!=0|0}function on(a){a=a|0;var b=0;b=c[a+160>>2]|0;c[a+164>>2]=b;return b|0}function pn(a){a=a|0;var b=0,d=0,e=0;a=a+164|0;b=c[a>>2]|0;d=c[b+4>>2]|0;if((d|0)!=0?(e=d+52|0,(c[e>>2]|0)==0):0)c[e>>2]=c[b+52>>2];c[a>>2]=d;return d|0}function qn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+8|0;if((c[e>>2]|0)>(b|0))e=c[a>>2]|0;else{f=b+10|0;c[e>>2]=f;e=cq(c[a>>2]|0,f<<2)|0;c[a>>2]=e}c[e+(b<<2)>>2]=d;return}function rn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+160|0;b=c[g>>2]|0;if(b)do{f=b;b=c[b+4>>2]|0;d=f+604|0;e=c[d>>2]|0;if(e)pB(e);c[d>>2]=0;c[f+612>>2]=0;c[f+608>>2]=0;d=f+592|0;e=c[d>>2]|0;if(e)pB(e);c[d>>2]=0;c[f+600>>2]=0;c[f+596>>2]=0;d=c[f+584>>2]|0;if(d)pB(d);d=c[f+588>>2]|0;if(d)pB(d);pB(f)}while((b|0)!=0);c[13095]=0;c[13094]=0;c[a+192>>2]=0;c[a+164>>2]=0;c[g>>2]=0;c[a+28>>2]=0;return}function sn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;m=i;i=i+128|0;k=m+64|0;l=m;sA(k,e,63)|0;j=jA(k,58)|0;if(j)a[j>>0]=0;j=b+60+(d<<2)|0;d=c[j>>2]|0;a:do if(d){b=j;while(1){sA(l,c[d+4>>2]|0,63)|0;j=jA(l,58)|0;if(j)a[j>>0]=0;d=(lA(k,l)|0)<1;j=c[b>>2]|0;if(d){d=b;break}d=c[j>>2]|0;if(!d)break a;else b=j}if(!j)j=d;else{b=d;while(1){sA(l,c[j+4>>2]|0,63)|0;j=jA(l,58)|0;if(j)a[j>>0]=0;if(lA(k,l)|0){j=b;break a}d=c[b>>2]|0;if((c[d+8>>2]|0)<=(f|0)){j=b;break a}j=c[d>>2]|0;if(!j){j=d;break}else b=d}}}while(0);l=aq(20)|0;c[l>>2]=c[j>>2];c[j>>2]=l;c[l+4>>2]=e;c[l+8>>2]=f;c[l+12>>2]=g;c[l+16>>2]=h;i=m;return 1}function tn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+160|0;r=s+8|0;q=s;o=s+88|0;p=s+24|0;n=(d+-3|0)>>>0<2?0:d;sA(o,e,63)|0;e=jA(o,58)|0;if(e){f=e+1|0;a[e>>0]=0;e=jA(f,58)|0;if(!e)m=0;else{a[e>>0]=0;m=e+1|0}}else{f=0;m=0}e=b+60+(d<<2)|0;g=c[e>>2]|0;a:do if(g){j=(f|0)!=0;k=(m|0)==0;l=(n|0)==(d|0);b:while(1){sA(p,c[g+4>>2]|0,63)|0;g=jA(p,58)|0;if(!g)h=0;else{a[g>>0]=0;h=g+1|0}do if(!(lA(p,o)|0)){g=(h|0)!=0;if(j&g?(lA(h,f)|0)!=0:0)break;if(!k?(lA(m,c[(c[(c[e>>2]|0)+12>>2]|0)+8>>2]|0)|0)!=0:0)break;if(l|g^1)break b;if(tn(b,n,h)|0)break b}while(0);e=c[e>>2]|0;g=c[e>>2]|0;if(!g){e=0;break a}}e=c[e>>2]|0;if(e){f=e+16|0;if((c[f>>2]|0)==0?(dj(1,121872,q)|0,(c[f>>2]|0)==0):0){e=0;break}if((c[b+8>>2]|0)>0){q=c[22667]|0;o=c[e+4>>2]|0;p=c[(c[e+12>>2]|0)+8>>2]|0;c[r>>2]=c[52384+(d<<2)>>2];c[r+4>>2]=o;c[r+8>>2]=p;Bz(q,121903,r)|0}}else e=0}else e=0;while(0);c[b+80+(d<<2)>>2]=e;i=s;return e|0}function un(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;do if(!e)e=0;else{if(c[13101]|0){gj(52408,0,0);c[13101]=0}h=oA(e)|0;e=jA(h,58)|0;do if(e){a[e>>0]=0;b=b+60+(d<<2)|0;e=c[b>>2]|0;if(!e){pB(h);e=1;i=19;break}else{d=e;e=1;g=b}do{f=oA(c[d+4>>2]|0)|0;d=jA(f,58)|0;if(d)a[d>>0]=0;if(!((a[h>>0]|0)!=0?(hA(h,f)|0)!=0:0)){e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}c[13103]=e+1;a[e>>0]=32;jj(52408,c[(c[g>>2]|0)+4>>2]|0)|0;e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}c[13103]=e+1;a[e>>0]=58;jj(52408,c[(c[(c[g>>2]|0)+12>>2]|0)+8>>2]|0)|0;e=0}pB(f);g=c[g>>2]|0;d=c[g>>2]|0}while((d|0)!=0);pB(h);if(e<<24>>24)i=19}else{pB(h);e=1;b=b+60+(d<<2)|0;i=19}while(0);if((i|0)==19){d=c[b>>2]|0;if(!d){e=164137;break}else g=0;do{f=g;g=oA(c[d+4>>2]|0)|0;d=jA(g,58)|0;if(d)a[d>>0]=0;if(!((f|0)!=0?(hA(f,g)|0)==0:0)){e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}c[13103]=e+1;a[e>>0]=32;jj(52408,g)|0;e=0}b=c[b>>2]|0;d=c[b>>2]|0}while((d|0)!=0);if(e<<24>>24){e=164137;break}}e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}a[e>>0]=0;e=c[13102]|0;c[13103]=e}while(0);return e|0}function vn(b){b=b|0;var d=0;if(!b)Ia(134567,121920,573,121934);if(!(a[b>>0]|0))Ia(134572,121920,574,121934);d=c[13106]|0;if(!d)d=0;else d=ub[c[d>>2]&31](d,b,512)|0;return d|0}function wn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+8|0;j=l;if(!b)Ia(134740,121920,589,121951);g=b+8|0;e=c[g>>2]|0;if(!e)Ia(134743,121920,590,121951);if(!(a[e>>0]|0))Ia(134752,121920,591,121951);h=b+20|0;f=c[h>>2]|0;do if(!f){d=Ts(e)|0;if(!d){c[j>>2]=c[g>>2];dj(0,121975,j)|0;d=0;break}j=Az(d,162372)|0;c[h>>2]=j;if(!j){c[k>>2]=ry(c[(qy()|0)>>2]|0)|0;c[k+4>>2]=d;dj(0,122e3,k)|0;d=0;break}d=c[13107]|0;if((d|0)>49){a[b+17>>0]=1;d=1;break}else{c[13107]=d+1;d=1;break}}else{Hz(f,0,0)|0;if(!(c[h>>2]|0))Ia(122021,121920,614,121951);else d=1}while(0);i=l;return d|0}function xn(b){b=b|0;var d=0,e=0;if((a[b+17>>0]|0)!=0?(d=b+20|0,e=c[d>>2]|0,(e|0)!=0):0){uz(e)|0;c[d>>2]=0}return}function yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0;if(!b){d=-1;e=-1}else{e=c[b+48>>2]|0;if(!e){f=+h[d>>3];g=+h[d+8>>3]}else{g=+(e|0);h[d+8>>3]=g;h[d>>3]=g;f=g}d=~~(+((c[b+40>>2]|0)*72|0)/f);e=~~(+((c[b+44>>2]|0)*72|0)/g)}c[a>>2]=d;c[a+4>>2]=e;return}-function Xq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[d+52>>2]|0;a:while(1){d=a[e>>0]|0;b:do switch(d<<24>>24){case 0:break a;case 37:{if((a[e+1>>0]|0)==37){d=e+2|0;if((((qA(d,128066,3)|0)!=0?(qA(d,128070,5)|0)!=0:0)?(qA(d,128076,3)|0)!=0:0)?(qA(d,128080,7)|0)!=0:0){d=37;break b}else d=37;c:while(1){switch(d<<24>>24){case 13:{f=e;g=10;break c}case 10:case 0:{f=e;g=12;break c}default:{}}g=e+1|0;d=a[g>>0]|0;e=g}if((g|0)==10){e=f+1|0;if((a[e>>0]|0)==10){e=f+2|0;continue a}}else if((g|0)==12)e=f+1|0;e=d<<24>>24==0?f:e;continue a}else d=37;break}default:{}}while(0);d:while(1){switch(d<<24>>24){case 13:{f=e;g=16;break d}case 10:case 0:{f=e;g=18;break d}default:{}}$m(b,d<<24>>24)|0;g=e+1|0;d=a[g>>0]|0;e=g}if((g|0)==16){g=0;e=f+1|0;if((a[e>>0]|0)==10)d=f+2|0;else g=19}else if((g|0)==18){e=f+1|0;g=19}if((g|0)==19)d=d<<24>>24==0?f:e;$m(b,10)|0;e=d}return}function Yq(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;e=c[13538]|0;if((e|0)!=0?(d=ub[c[e>>2]&31](e,0,128)|0,(d|0)!=0):0)do{if(!(a[d+16>>0]|0)){c[f>>2]=c[d+12>>2];dn(b,128088,f);_m(b,128106)|0;Xq(b,d);_m(b,128124)|0;_m(b,128139)|0}e=c[13538]|0;d=ub[c[e>>2]&31](e,d,8)|0}while((d|0)!=0);i=g;return}function Zq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;a:do switch(d|0){case 0:{f=b;break}case 1:{f=ht(b)|0;break}default:{e=b;d=0;b:while(1){while(1){f=a[e>>0]|0;if(!(f<<24>>24)){e=7;break b}if((f&255)<127)e=e+1|0;else{d=f;break}}if((d&-4)<<24>>24==-64){e=e+2|0;d=1}else{e=9;break}}if((e|0)==7){if((d|0)!=1){f=b;break a}f=ht(b)|0;break a}else if((e|0)==9){if(c[13549]|0){f=b;break a}dj(0,128151,g)|0;c[13549]=1;f=b;break a}}}while(0);if(!(c[13550]|0))gj(54200,0,0);d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}c[13551]=d+1;a[d>>0]=40;e=f;c:while(1){switch(a[e>>0]|0){case 0:break c;case 92:case 41:case 40:{d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}c[13551]=d+1;a[d>>0]=92;break}default:{}}d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}g=a[e>>0]|0;c[13551]=d+1;a[d>>0]=g;e=e+1|0}d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}c[13551]=d+1;a[d>>0]=41;if((f|0)!=(b|0))pB(f);d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}a[d>>0]=0;b=c[13550]|0;c[13551]=b;i=h;return b|0}function _q(a,b,d){a=a|0;b=b|0;d=d|0;pB(c[b+52>>2]|0);return}function $q(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+96|0;l=n+80|0;k=n+72|0;m=n+64|0;g=n+32|0;j=n;h[g>>3]=+h[a>>3];h[g+8>>3]=+h[a+8>>3];h[g+16>>3]=+h[b>>3];h[g+24>>3]=+h[b+8>>3];do if((Lx(d,g,k)|0)>=0){if(!f){a=d+4|0;b=c[a>>2]|0;if((b|0)>(c[13554]|0)){f=c[13555]|0;if(!f)b=aq(b<<5)|0;else b=cq(f,b<<5)|0;c[13555]=b;b=c[a>>2]|0;c[13554]=b}g=c[13555]|0;if((b|0)>0){f=c[d>>2]|0;a=0;do{d=g+(a<<5)|0;o=f+(a<<4)|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];d=g+(a<<5)+16|0;a=a+1|0;o=f+(((a|0)%(b|0)|0)<<4)|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2]}while((a|0)<(b|0))};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];if((Ix(g,b,l,j,m)|0)<0){b=0;break}}else{c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Vx(l,m)}b=m+4|0;if(!(fr(c[b>>2]|0)|0)){g=c[b>>2]|0;b=c[13556]|0;if((g|0)>0){f=c[m>>2]|0;a=0;do{o=b+(a<<4)|0;m=f+(a<<4)|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];a=a+1|0}while((a|0)<(g|0))}c[e>>2]=g}else b=0}else b=0;while(0);i=n;return b|0}function ar(){var b=0,d=0,e=0;d=i;i=i+16|0;b=d;e=c[13557]|0;c[13557]=e+1;do if((e|0)<=0){e=aq(4800)|0;c[13556]=e;if(!e){dj(1,128241,b)|0;b=1;break}c[13558]=300;c[13559]=0;c[13560]=0;if(a[124827]|0){As();b=0}else b=0}else b=0;while(0);i=d;return b|0}function br(){var b=0,d=0,e=0,f=0.0,g=0,j=0;d=i;i=i+16|0;b=d;e=c[13557]|0;c[13557]=e+-1;if((e|0)<=1?(pB(c[13556]|0),(a[124827]|0)!=0):0){e=c[22667]|0;j=c[13559]|0;g=c[13560]|0;f=+Bs();c[b>>2]=j;c[b+4>>2]=g;h[b+8>>3]=f;Bz(e,128279,b)|0}i=d;return}function cr(a,b){a=a|0;b=b|0;return gr(a,b,0)|0}function dr(a,b){a=a|0;b=b|0;return gr(a,b,1)|0}function er(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0.0;$=i;i=i+256|0;Y=$+224|0;W=$+160|0;S=$+80|0;T=$;V=$+144|0;X=$+64|0;Z=$+248|0;U=$+240|0;v=c[d>>2]|0;Q=c[v>>2]&3;q=v+-48|0;N=c[((Q|0)==2?v:q)+40>>2]|0;P=S+16|0;Q=c[(c[((Q|0)==3?v:v+48|0)+40>>2]|0)+16>>2]|0;L=v+16|0;R=c[L>>2]|0;M=R+16|0;a[k>>0]=a[M>>0];a[k+1>>0]=a[M+1>>0];a[k+2>>0]=a[M+2>>0];a[k+3>>0]=a[M+3>>0];a[k+4>>0]=a[M+4>>0];a[k+5>>0]=a[M+5>>0];a[k+6>>0]=a[M+6>>0];a[k+7>>0]=a[M+7>>0];aa=+h[k>>3];R=R+24|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];s=+h[k>>3];R=Q+16|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];r=+h[k>>3];Q=Q+24|0;a[k>>0]=a[Q>>0];a[k+1>>0]=a[Q+1>>0];a[k+2>>0]=a[Q+2>>0];a[k+3>>0]=a[Q+3>>0];a[k+4>>0]=a[Q+4>>0];a[k+5>>0]=a[Q+5>>0];a[k+6>>0]=a[Q+6>>0];a[k+7>>0]=a[Q+7>>0];r=aa+r;s=s+ +h[k>>3];h[S>>3]=r;h[S+8>>3]=s;c[P>>2]=c[S>>2];c[P+4>>2]=c[S+4>>2];c[P+8>>2]=c[S+8>>2];c[P+12>>2]=c[S+12>>2];c[V>>2]=c[S>>2];c[V+4>>2]=c[S+4>>2];c[V+8>>2]=c[S+8>>2];c[V+12>>2]=c[S+12>>2];Q=S+32|0;R=S+48|0;M=c[N+16>>2]|0;L=c[L>>2]|0;K=L+56|0;a[k>>0]=a[K>>0];a[k+1>>0]=a[K+1>>0];a[k+2>>0]=a[K+2>>0];a[k+3>>0]=a[K+3>>0];a[k+4>>0]=a[K+4>>0];a[k+5>>0]=a[K+5>>0];a[k+6>>0]=a[K+6>>0];a[k+7>>0]=a[K+7>>0];aa=+h[k>>3];L=L+64|0;a[k>>0]=a[L>>0];a[k+1>>0]=a[L+1>>0];a[k+2>>0]=a[L+2>>0];a[k+3>>0]=a[L+3>>0];a[k+4>>0]=a[L+4>>0];a[k+5>>0]=a[L+5>>0];a[k+6>>0]=a[L+6>>0];a[k+7>>0]=a[L+7>>0];u=+h[k>>3];L=M+16|0;a[k>>0]=a[L>>0];a[k+1>>0]=a[L+1>>0];a[k+2>>0]=a[L+2>>0];a[k+3>>0]=a[L+3>>0];a[k+4>>0]=a[L+4>>0];a[k+5>>0]=a[L+5>>0];a[k+6>>0]=a[L+6>>0];a[k+7>>0]=a[L+7>>0];t=+h[k>>3];M=M+24|0;a[k>>0]=a[M>>0];a[k+1>>0]=a[M+1>>0];a[k+2>>0]=a[M+2>>0];a[k+3>>0]=a[M+3>>0];a[k+4>>0]=a[M+4>>0];a[k+5>>0]=a[M+5>>0];a[k+6>>0]=a[M+6>>0];a[k+7>>0]=a[M+7>>0];t=aa+t;u=u+ +h[k>>3];h[S+48>>3]=t;h[S+56>>3]=u;c[Q>>2]=c[R>>2];c[Q+4>>2]=c[R+4>>2];c[Q+8>>2]=c[R+8>>2];c[Q+12>>2]=c[R+12>>2];c[X>>2]=c[R>>2];c[X+4>>2]=c[R+4>>2];c[X+8>>2]=c[R+8>>2];c[X+12>>2]=c[R+12>>2];a:do if((e|0)!=1&(a[124828]|0)==0){aa=r-t;j=s-u;l=j*j;if(aa*aa+l<1.0e-06){c[P>>2]=c[S>>2];c[P+4>>2]=c[S+4>>2];c[P+8>>2]=c[S+8>>2];c[P+12>>2]=c[S+12>>2];c[Q>>2]=c[R>>2];c[Q+4>>2]=c[R+4>>2];c[Q+8>>2]=c[R+8>>2];c[Q+12>>2]=c[R+12>>2];j=0.0;l=0.0}else{p=t-r;l=+O(+(p*p+l));M=c[(c[(c[b+60>>2]|0)+16>>2]|0)+248>>2]|0;aa=+((_(M,e+-1|0)|0)/2|0|0);o=j*aa/l;h[P>>3]=r+o;aa=p*aa/l;h[S+24>>3]=s+aa;h[Q>>3]=o+t;h[S+40>>3]=aa+u;aa=+(0-M|0);j=j*aa/l;l=p*aa/l}if((e|0)>0){w=(f|0)==6;x=U+4|0;y=Z+4|0;z=S+24|0;A=S+40|0;B=T+16|0;C=T+32|0;D=T+48|0;E=W+16|0;F=T+16|0;G=W+32|0;H=T+32|0;I=W+48|0;J=T+48|0;K=T+48|0;L=T+32|0;M=T+16|0;q=0;while(1){f=v+-48|0;if((c[((c[v>>2]&3|0)==2?v:f)+40>>2]|0)==(N|0)){c[V>>2]=c[S>>2];c[V+4>>2]=c[S+4>>2];c[V+8>>2]=c[S+8>>2];c[V+12>>2]=c[S+12>>2];c[X>>2]=c[R>>2];c[X+4>>2]=c[R+4>>2];c[X+8>>2]=c[R+8>>2];c[X+12>>2]=c[R+12>>2];c[T>>2]=c[S>>2];c[T+4>>2]=c[S+4>>2];c[T+8>>2]=c[S+8>>2];c[T+12>>2]=c[S+12>>2];c[B>>2]=c[P>>2];c[B+4>>2]=c[P+4>>2];c[B+8>>2]=c[P+8>>2];c[B+12>>2]=c[P+12>>2];c[C>>2]=c[Q>>2];c[C+4>>2]=c[Q+4>>2];c[C+8>>2]=c[Q+8>>2];c[C+12>>2]=c[Q+12>>2];c[D>>2]=c[R>>2];c[D+4>>2]=c[R+4>>2];c[D+8>>2]=c[R+8>>2];c[D+12>>2]=c[R+12>>2]}else{c[V>>2]=c[R>>2];c[V+4>>2]=c[R+4>>2];c[V+8>>2]=c[R+8>>2];c[V+12>>2]=c[R+12>>2];c[X>>2]=c[S>>2];c[X+4>>2]=c[S+4>>2];c[X+8>>2]=c[S+8>>2];c[X+12>>2]=c[S+12>>2];c[K>>2]=c[S>>2];c[K+4>>2]=c[S+4>>2];c[K+8>>2]=c[S+8>>2];c[K+12>>2]=c[S+12>>2];c[L>>2]=c[P>>2];c[L+4>>2]=c[P+4>>2];c[L+8>>2]=c[P+8>>2];c[L+12>>2]=c[P+12>>2];c[M>>2]=c[Q>>2];c[M+4>>2]=c[Q+4>>2];c[M+8>>2]=c[Q+8>>2];c[M+12>>2]=c[Q+12>>2];c[T>>2]=c[R>>2];c[T+4>>2]=c[R+4>>2];c[T+8>>2]=c[R+8>>2];c[T+12>>2]=c[R+12>>2]}if(w){c[x>>2]=4;c[U>>2]=W;c[W>>2]=c[T>>2];c[W+4>>2]=c[T+4>>2];c[W+8>>2]=c[T+8>>2];c[W+12>>2]=c[T+12>>2];c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];c[G+8>>2]=c[H+8>>2];c[G+12>>2]=c[H+12>>2];c[I>>2]=c[J>>2];c[I+4>>2]=c[J+4>>2];c[I+8>>2]=c[J+8>>2];c[I+12>>2]=c[J+12>>2];c[Y>>2]=c[U>>2];c[Y+4>>2]=c[U+4>>2];Vx(Y,Z);as(v,c[((c[v>>2]&3|0)==2?v:f)+40>>2]|0,c[Z>>2]|0,c[y>>2]|0,g)}else as(v,c[((c[v>>2]&3|0)==2?v:f)+40>>2]|0,T,4,g);c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];js(b,v,W,Y);h[P>>3]=j+ +h[P>>3];h[z>>3]=l+ +h[z>>3];h[Q>>3]=j+ +h[Q>>3];h[A>>3]=l+ +h[A>>3];q=q+1|0;if((q|0)==(e|0))break a;v=c[d+(q<<2)>>2]|0}}}else{if((f|0)==4?(Z=c[b+16>>2]|0,n=(+h[Z+16>>3]+ +h[Z+32>>3])*.5,h[4217]=n,o=(+h[Z+24>>3]+ +h[Z+40>>3])*.5,h[4218]=o,j=(r+t)*.5,l=(s+u)*.5,p=t-r,m=u-s,m=+O(+(p*p+m*m))/5.0,n=n-j,o=o-l,p=+O(+(n*n+o*o)),!(p==0.0)):0){u=j-m*(n/p);aa=l-m*(o/p);h[S+32>>3]=u;h[S+16>>3]=u;h[S+40>>3]=aa;h[S+24>>3]=aa}as(v,c[((c[v>>2]&3|0)==2?v:q)+40>>2]|0,S,4,g);c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];js(b,v,W,Y)}while(0);i=$;return}function fr(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e;b=c[13558]|0;do if((b|0)<(a|0)){b=a+300+b-((a|0)%300|0)|0;a=cq(c[13556]|0,b<<4)|0;c[13556]=a;if(!a){dj(1,129041,d)|0;b=1;break}else{c[13558]=b;b=0;break}}else b=0;while(0);i=e;return b|0}function gr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0,P=0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;ka=i;i=i+208|0;ha=ka+192|0;ja=ka+152|0;aa=ka+144|0;_=ka+136|0;V=ka+128|0;X=ka+112|0;W=ka+96|0;L=ka+88|0;M=ka+80|0;n=ka+72|0;l=ka+64|0;Z=ka+184|0;ga=ka+176|0;ba=ka+168|0;Y=ka+32|0;$=ka;ia=ka+160|0;c[13559]=(c[13559]|0)+1;m=b+80|0;c[13560]=(c[13560]|0)+(c[m>>2]|0);f=c[b+88>>2]|0;a:do if(!f)A=4;else{while(1){g=c[f+16>>2]|0;if(!(a[g+112>>0]|0)){fa=f;break}f=c[g+116>>2]|0;if(!f){A=4;break a}}ea=c[b+84>>2]|0;da=c[m>>2]|0;ca=(da|0)>0;if(ca){l=0;f=0;do{g=ea+(l<<5)|0;w=+h[ea+(l<<5)+8>>3]-+h[ea+(l<<5)+24>>3];if(!((w>=0.0?w:-w)<.01)?(w=+h[g>>3]-+h[ea+(l<<5)+16>>3],!((w>=0.0?w:-w)<.01)):0){if((f|0)!=(l|0)){P=ea+(f<<5)|0;c[P>>2]=c[g>>2];c[P+4>>2]=c[g+4>>2];c[P+8>>2]=c[g+8>>2];c[P+12>>2]=c[g+12>>2];c[P+16>>2]=c[g+16>>2];c[P+20>>2]=c[g+20>>2];c[P+24>>2]=c[g+24>>2];c[P+28>>2]=c[g+28>>2]}f=f+1|0}l=l+1|0}while((l|0)!=(da|0))}else f=0;j=+h[ea>>3];K=ea+16|0;k=+h[K>>3];if(!(j>k)?(U=ea+8|0,s=+h[U>>3],O=ea+24|0,q=+h[O>>3],!(s>q)):0){P=f+-1|0;do if((f|0)>1){J=c[22667]|0;f=0;while(1){A=f;f=f+1|0;E=ea+(f<<5)|0;t=+h[E>>3];F=ea+(f<<5)+16|0;u=+h[F>>3];if(t>u){A=19;break}G=ea+(f<<5)+8|0;v=+h[G>>3];H=ea+(f<<5)+24|0;w=+h[H>>3];if(v>w){A=19;break}I=ea+(A<<5)+16|0;z=k<t;l=z&1;D=ea+(A<<5)|0;x=j>u;m=x&1;C=ea+(A<<5)+24|0;r=q<v;g=r&1;B=ea+(A<<5)+8|0;o=s>w;n=o&1;y=m+l+g+n|0;p=(y|0)>0;if(!((a[124827]|0)==0|p^1)){c[L>>2]=A;c[L+4>>2]=f;Bz(J,128455,L)|0;hr(b)}if(p){do if(!z){if(x){m=~~+h[D>>3];h[D>>3]=+h[F>>3];h[F>>3]=+(m|0);m=0;break}if(r){g=~~+h[C>>3];h[C>>3]=+h[G>>3];h[G>>3]=+(g|0);g=0;break}if(o){n=~~+h[B>>3];h[B>>3]=+h[H>>3];h[H>>3]=+(n|0);n=0}}else{l=~~+h[I>>3];h[I>>3]=+h[E>>3];h[E>>3]=+(l|0);l=0}while(0);p=y+-1|0;if((y|0)>1){o=0;do{do if((l|0)==1){w=+(~~((+h[I>>3]+ +h[E>>3])*.5+.5)|0);h[E>>3]=w;h[I>>3]=w;l=0}else{if((m|0)==1){w=+(~~((+h[D>>3]+ +h[F>>3])*.5+.5)|0);h[F>>3]=w;h[D>>3]=w;m=0;break}if((g|0)==1){w=+(~~((+h[C>>3]+ +h[G>>3])*.5+.5)|0);h[G>>3]=w;h[C>>3]=w;g=0;break}if((n|0)!=1)break;w=+(~~((+h[B>>3]+ +h[H>>3])*.5+.5)|0);h[H>>3]=w;h[B>>3]=w;n=0}while(0);o=o+1|0}while((o|0)<(p|0))}}k=+h[D>>3];g=~~k;j=+h[I>>3];l=~~j;v=+h[E>>3];m=~~v;w=+h[F>>3];n=~~w;do if((l|0)>(m|0)&(n|0)>(g|0)){if(!((m|0)>(g|0)|(n|0)<(g|0))){o=n-g|0;break}if((l|0)<(m|0)|(l|0)>(n|0)){A=l-g|0;o=n-m|0;o=(A|0)<(o|0)?A:o;break}else{o=l-m|0;break}}else o=0;while(0);q=+h[B>>3];g=~~q;s=+h[C>>3];l=~~s;t=+h[G>>3];m=~~t;u=+h[H>>3];n=~~u;do if((l|0)>(m|0)&(n|0)>(g|0)){do if((m|0)>(g|0)|(n|0)<(g|0))if((l|0)<(m|0)|(l|0)>(n|0)){A=l-g|0;g=n-m|0;g=(A|0)<(g|0)?A:g;break}else{g=l-m|0;break}else g=n-g|0;while(0);if((o|0)!=0&(g|0)!=0)if((o|0)<(g|0)){g=j<w;if(j-k>w-v)if(g){h[I>>3]=v;s=t;q=u;j=v;k=w;break}else{h[D>>3]=w;s=t;q=u;j=v;k=w;break}else if(g){h[E>>3]=j;s=t;q=u;k=w;break}else{h[F>>3]=k;s=t;q=u;j=v;break}}else{g=s<u;if(s-q>u-t)if(g){h[C>>3]=t;s=t;q=u;j=v;k=w;break}else{h[B>>3]=u;s=t;q=u;j=v;k=w;break}else if(g){h[G>>3]=s;q=u;j=v;k=w;break}else{h[H>>3]=q;s=t;j=v;k=w;break}}else{s=t;q=u;j=v;k=w}}else{s=t;q=u;j=v;k=w}while(0);if((f|0)>=(P|0)){A=70;break}}if((A|0)==19){c[M>>2]=f;dj(1,128409,M)|0;hr(b);f=0;break a}else if((A|0)==70){j=+h[ea>>3];break}}while(0);k=+h[b>>3];if(!(((!(k<j)?!(k>+h[K>>3]):0)?(N=+h[b+8>>3],!(N<+h[U>>3])):0)?!(N>+h[O>>3]):0)){if(a[124827]|0){Mz(128498,42,1,c[22667]|0)|0;hr(b);k=+h[b>>3];j=+h[ea>>3]}if(k<j){h[b>>3]=j;k=j}j=+h[K>>3];if(k>j)h[b>>3]=j;f=b+8|0;j=+h[f>>3];k=+h[U>>3];if(j<k)h[f>>3]=k;else k=j;j=+h[O>>3];if(k>j)h[f>>3]=j}x=b+40|0;k=+h[x>>3];f=ea+(P<<5)|0;j=+h[f>>3];if(!(((!(k<j)?!(k>+h[ea+(P<<5)+16>>3]):0)?(S=+h[b+48>>3],!(S<+h[ea+(P<<5)+8>>3])):0)?!(S>+h[ea+(P<<5)+24>>3]):0)){if(a[124827]|0){Mz(128541,39,1,c[22667]|0)|0;hr(b);k=+h[x>>3];j=+h[f>>3]}if(k<j)h[x>>3]=j;else j=k;k=+h[ea+(P<<5)+16>>3];if(j>k)h[x>>3]=k;f=b+48|0;j=+h[f>>3];k=+h[ea+(P<<5)+8>>3];if(j<k)h[f>>3]=k;else k=j;j=+h[ea+(P<<5)+24>>3];if(k>j)h[f>>3]=j}g=da<<3;if((g|0)>(c[13561]|0)){f=c[13562]|0;if(!f)f=aq(da<<7)|0;else f=cq(f,da<<7)|0;c[13562]=f;c[13561]=g}if((da|0)>1?(T=+h[U>>3],T>+h[ea+40>>3]):0){U=ea+24|0;S=+h[U>>3];h[U>>3]=-T;h[ea+8>>3]=-S;if((da|0)==1)r=1;else{f=1;do{U=ea+(f<<5)+24|0;T=+h[U>>3];h[U>>3]=-+h[ea+(f<<5)+8>>3];h[ea+(f<<5)+8>>3]=-T;f=f+1|0}while((f|0)!=(da|0));r=1}}else r=0;U=c[fa>>2]&3;y=fa+48|0;f=c[((U|0)==3?fa:y)+40>>2]|0;z=fa+-48|0;if((f|0)==(c[((U|0)==2?fa:z)+40>>2]|0)){c[V>>2]=ok(f)|0;dj(1,128646,V)|0;f=0;break}b:do if(ca){p=da+-1|0;m=c[13562]|0;n=0;l=0;c:while(1){if((n|0)>0)f=+h[ea+(n<<5)+8>>3]>+h[ea+(n+-1<<5)+8>>3]?-1:1;else f=0;if((n|0)<(p|0))g=+h[ea+(n+1<<5)+8>>3]>+h[ea+(n<<5)+8>>3]?1:-1;else g=0;d:do if((f|0)!=(g|0))if((f|0)==1|(g|0)==-1){V=ea+(n<<5)|0;h[m+(l<<4)>>3]=+h[V>>3];f=l+1|0;h[m+(l<<4)+8>>3]=+h[ea+(n<<5)+24>>3];h[m+(f<<4)>>3]=+h[V>>3];h[m+(f<<4)+8>>3]=+h[ea+(n<<5)+8>>3];f=l+2|0;break}else{V=ea+(n<<5)+16|0;h[m+(l<<4)>>3]=+h[V>>3];f=l+1|0;h[m+(l<<4)+8>>3]=+h[ea+(n<<5)+8>>3];h[m+(f<<4)>>3]=+h[V>>3];h[m+(f<<4)+8>>3]=+h[ea+(n<<5)+24>>3];f=l+2|0;break}else{switch(f|0){case -1:{f=l;break d}case 0:break;default:{A=121;break c}}V=ea+(n<<5)|0;h[m+(l<<4)>>3]=+h[V>>3];f=l+1|0;h[m+(l<<4)+8>>3]=+h[ea+(n<<5)+24>>3];h[m+(f<<4)>>3]=+h[V>>3];h[m+(f<<4)+8>>3]=+h[ea+(n<<5)+8>>3];f=l+2|0}while(0);n=n+1|0;if((n|0)>=(da|0))break;else l=f}if((A|0)==121){c[W>>2]=f;c[W+4>>2]=f;c[W+8>>2]=480;dj(1,128581,W)|0;f=0;break a}if(ca){n=c[13562]|0;o=p;m=f;e:while(1){if((o|0)<(p|0))f=+h[ea+(o<<5)+8>>3]>+h[ea+(o+1<<5)+8>>3]?-1:1;else f=0;l=(o|0)>0;if(l)g=+h[ea+(o+-1<<5)+8>>3]>+h[ea+(o<<5)+8>>3]?1:-1;else g=0;f:do if((f|0)!=(g|0))if((f|0)==1|(g|0)==-1){V=ea+(o<<5)|0;h[n+(m<<4)>>3]=+h[V>>3];W=m+1|0;h[n+(m<<4)+8>>3]=+h[ea+(o<<5)+24>>3];h[n+(W<<4)>>3]=+h[V>>3];h[n+(W<<4)+8>>3]=+h[ea+(o<<5)+8>>3];m=m+2|0;break}else{V=ea+(o<<5)+16|0;h[n+(m<<4)>>3]=+h[V>>3];W=m+1|0;h[n+(m<<4)+8>>3]=+h[ea+(o<<5)+8>>3];h[n+(W<<4)>>3]=+h[V>>3];h[n+(W<<4)+8>>3]=+h[ea+(o<<5)+24>>3];m=m+2|0;break}else switch(f|0){case 0:{V=ea+(o<<5)+16|0;h[n+(m<<4)>>3]=+h[V>>3];W=m+1|0;h[n+(m<<4)+8>>3]=+h[ea+(o<<5)+8>>3];h[n+(W<<4)>>3]=+h[V>>3];h[n+(W<<4)+8>>3]=+h[ea+(o<<5)+24>>3];m=m+2|0;break f}case -1:{O=ea+(o<<5)+16|0;h[n+(m<<4)>>3]=+h[O>>3];V=ea+(o<<5)+8|0;U=m+1|0;h[n+(m<<4)+8>>3]=+h[V>>3];h[n+(U<<4)>>3]=+h[O>>3];O=ea+(o<<5)+24|0;P=m+2|0;h[n+(U<<4)+8>>3]=+h[O>>3];U=ea+(o<<5)|0;h[n+(P<<4)>>3]=+h[U>>3];W=m+3|0;h[n+(P<<4)+8>>3]=+h[O>>3];h[n+(W<<4)>>3]=+h[U>>3];h[n+(W<<4)+8>>3]=+h[V>>3];m=m+4|0;break f}default:break e}while(0);if(l)o=o+-1|0;else break b}c[X>>2]=f;c[X+4>>2]=f;c[X+8>>2]=513;dj(1,128581,X)|0;f=0;break a}else m=f}else m=0;while(0);if(r){if(ca){f=0;do{W=ea+(f<<5)+24|0;T=+h[W>>3];X=ea+(f<<5)+8|0;h[W>>3]=-+h[X>>3];h[X>>3]=-T;f=f+1|0}while((f|0)!=(da|0))}if((m|0)>0){f=c[13562]|0;g=0;do{X=f+(g<<4)+8|0;h[X>>3]=-+h[X>>3];g=g+1|0}while((g|0)!=(m|0))}}if(ca){f=0;do{h[ea+(f<<5)>>3]=2147483647.0;h[ea+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}while((f|0)!=(da|0))}c[Z>>2]=c[13562];l=Z+4|0;c[l>>2]=m;h[Y>>3]=+h[b>>3];h[Y+8>>3]=+h[b+8>>3];h[Y+16>>3]=+h[x>>3];h[Y+24>>3]=+h[b+48>>3];if((Lx(Z,Y,ga)|0)<0){dj(1,128685,_)|0;f=0;break}do if(!e){f=c[l>>2]|0;if((f|0)>(c[13554]|0)){g=c[13555]|0;if(!g)f=aq(f<<5)|0;else f=cq(g,f<<5)|0;c[13555]=f;f=c[l>>2]|0;c[13554]=f}if((f|0)>0){g=c[13555]|0;l=c[13562]|0;m=0;do{_=g+(m<<5)|0;e=l+(m<<4)|0;c[_>>2]=c[e>>2];c[_+4>>2]=c[e+4>>2];c[_+8>>2]=c[e+8>>2];c[_+12>>2]=c[e+12>>2];_=g+(m<<5)+16|0;m=m+1|0;e=l+(((m|0)%(f|0)|0)<<4)|0;c[_>>2]=c[e>>2];c[_+4>>2]=c[e+4>>2];c[_+8>>2]=c[e+8>>2];c[_+12>>2]=c[e+12>>2]}while((m|0)<(f|0))}if(!(a[b+29>>0]|0)){j=0.0;k=0.0}else{k=+h[b+16>>3];j=+Q(+k);k=+R(+k)}h[$+8>>3]=k;h[$>>3]=j;if(!(a[b+69>>0]|0)){j=0.0;k=0.0}else{k=+h[b+56>>3];j=-+Q(+k);k=-+R(+k)}h[$+24>>3]=k;h[$+16>>3]=j;b=c[13555]|0;c[ha>>2]=c[ga>>2];c[ha+4>>2]=c[ga+4>>2];if((Ix(b,f,ha,$,ba)|0)>=0)break;dj(1,128724,aa)|0;f=0;break a}else{c[ha>>2]=c[ga>>2];c[ha+4>>2]=c[ga+4>>2];Vx(ha,ba)}while(0);o=ba+4|0;if(fr(c[o>>2]|0)|0){f=0;break}if(ca){f=0;do{h[ea+(f<<5)>>3]=2147483647.0;h[ea+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}while((f|0)!=(da|0))}l=c[o>>2]|0;if((l|0)>0){m=c[13556]|0;f=c[ba>>2]|0;g=0;do{ba=m+(g<<4)|0;aa=f+(g<<4)|0;c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];g=g+1|0}while((g|0)<(l|0));m=10;n=0;f=1}else{m=10;n=0;f=1}while(1){ir(ea,da,c[13556]|0,l,m);g:do if(ca){g=0;while(1){if(+h[ea+(g<<5)>>3]==2147483647.0)break;if(+h[ea+(g<<5)+16>>3]==-2147483648.0)break;g=g+1|0;if((g|0)>=(da|0)){l=n;break g}}l=m<<1;m=l;l=(l|0)>(2147483647/(da|0)|0|0)?15:n}else{g=0;l=n}while(0);f=(g|0)==(da|0)?0:f;g=l+1|0;if(!((g|0)<15&f<<24>>24!=0))break;l=c[o>>2]|0;n=g}if(f<<24>>24){ca=ok(c[((c[fa>>2]&3|0)==3?fa:y)+40>>2]|0)|0;fa=ok(c[((c[fa>>2]&3|0)==2?fa:z)+40>>2]|0)|0;c[ja>>2]=ca;c[ja+4>>2]=fa;dj(0,128762,ja)|0;c[ha>>2]=c[ga>>2];c[ha+4>>2]=c[ga+4>>2];Vx(ha,ia);ir(ea,da,c[ia>>2]|0,c[ia+4>>2]|0,10);pB(c[ia>>2]|0)}c[d>>2]=c[o>>2];f=c[13556]|0;break}dj(1,128364,n)|0;hr(b);f=0}while(0);if((A|0)==4){dj(1,128322,l)|0;f=0}i=ka;return f|0}function hr(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0;m=i;i=i+112|0;k=m+80|0;l=m+48|0;j=m+8|0;g=m;d=c[22667]|0;e=b+80|0;c[g>>2]=c[e>>2];Bz(d,128871,g)|0;if((c[e>>2]|0)>0){f=b+84|0;g=0;do{r=c[f>>2]|0;q=+h[r+(g<<5)>>3];p=+h[r+(g<<5)+8>>3];o=+h[r+(g<<5)+16>>3];n=+h[r+(g<<5)+24>>3];c[j>>2]=g;h[j+8>>3]=q;h[j+16>>3]=p;h[j+24>>3]=o;h[j+32>>3]=n;Bz(d,128882,j)|0;g=g+1|0}while((g|0)<(c[e>>2]|0))}q=+h[b+8>>3];p=+h[b+16>>3];r=(a[b+29>>0]|0)!=0?128913:128925;h[l>>3]=+h[b>>3];h[l+8>>3]=q;h[l+16>>3]=p;c[l+24>>2]=r;Bz(d,128941,l)|0;p=+h[b+48>>3];q=+h[b+56>>3];r=(a[b+69>>0]|0)!=0?128913:128925;h[k>>3]=+h[b+40>>3];h[k+8>>3]=p;h[k+16>>3]=q;c[k+24>>2]=r;Bz(d,128992,k)|0;i=m;return}function ir(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;s=_(e,b)|0;if((d|0)>3){t=(s|0)<0;u=+(s|0);v=(b|0)>0;w=3;e=0;while(1){if(!t){q=c+(e<<4)|0;r=c+(e<<4)+8|0;p=e+1|0;o=c+(p<<4)|0;p=c+(p<<4)+8|0;g=e+2|0;f=c+(g<<4)|0;g=c+(g<<4)+8|0;i=c+(w<<4)|0;j=c+(w<<4)+8|0;n=0;while(1){z=+(n|0)/u;k=+h[q>>3];l=+h[r>>3];A=+h[o>>3];x=+h[p>>3];B=+h[f>>3];y=+h[g>>3];k=k+z*(A-k);l=l+z*(x-l);A=A+z*(B-A);x=x+z*(y-x);k=k+z*(A-k);l=l+z*(x-l);k=k+z*(A+z*(B+z*(+h[i>>3]-B)-A)-k);l=l+z*(x+z*(y+z*(+h[j>>3]-y)-x)-l);if(v){m=0;do{if(l<=+h[a+(m<<5)+24>>3]+.0001?l>=+h[a+(m<<5)+8>>3]+-.0001:0){e=a+(m<<5)|0;if(+h[e>>3]>k)h[e>>3]=k;e=a+(m<<5)+16|0;if(+h[e>>3]<k)h[e>>3]=k}m=m+1|0}while((m|0)!=(b|0))}if((n|0)==(s|0))break;else n=n+1|0}}e=w+3|0;if((e|0)<(d|0)){r=w;w=e;e=r}else break}}return}function jr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;C=i;i=i+192|0;g=C+80|0;A=C;l=e&2130706432;y=(e&8|0)==0?((l|0)==0?4:l):8;if((y|0)==436207616){w=+h[b+8>>3];w=w+w;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[g+16>>3]=+h[b+16>>3];h[g+24>>3]=w-+h[b+24>>3];h[g+32>>3]=+h[b+32>>3];h[g+40>>3]=w-+h[b+40>>3];h[g+48>>3]=+h[b+48>>3];h[g+56>>3]=w-+h[b+56>>3];h[g+64>>3]=+h[b+64>>3];h[g+72>>3]=w-+h[b+72>>3];h[g+80>>3]=+h[b+80>>3];h[g+88>>3]=w-+h[b+88>>3];B=g+96|0;A=b+96|0;c[B>>2]=c[A>>2];c[B+4>>2]=c[A+4>>2];c[B+8>>2]=c[A+8>>2];c[B+12>>2]=c[A+12>>2];Yu(a,b,d,0,0,f&255);Yu(a,g,7,0,0,0)}else{B=$p((d<<6)+64|0)|0;z=(d|0)>0;if(z){g=d+-1|0;j=b+8|0;o=12.0;k=0;do{p=(k|0)<(g|0);x=k;k=k+1|0;v=+h[(p?b+(k<<4)|0:b)>>3]-+h[b+(x<<4)>>3];w=+h[(p?b+(k<<4)+8|0:j)>>3]-+h[b+(x<<4)+8>>3];w=+O(+(v*v+w*w))/3.0;o=o<w?o:w}while((k|0)!=(d|0));if(z){x=d+-1|0;n=(e&2113929216|0)==67108864;p=(y|0)==4;e=(l|0)==16777216;l=b+8|0;k=0;m=0;while(1){v=+h[b+(m<<4)>>3];w=+h[b+(m<<4)+8>>3];if((m|0)<(x|0)){g=m+1|0;j=b+(g<<4)+8|0;g=b+(g<<4)|0}else{j=l;g=b}u=+h[g>>3]-v;s=+h[j>>3]-w;t=o/+O(+(u*u+s*s));t=n?t/3.0:e?t*.5:t;g=k+1|0;if(p){r=t*.5;q=w+s*r;r=v+u*r}else{q=w;r=v}h[B+(k<<4)>>3]=r;h[B+(k<<4)+8>>3]=q;j=k+2|0;h[B+(g<<4)>>3]=v+u*t;h[B+(g<<4)+8>>3]=w+s*t;g=k+3|0;r=1.0-t;h[B+(j<<4)>>3]=v+u*r;h[B+(j<<4)+8>>3]=w+s*r;if(p){t=1.0-t*.5;h[B+(g<<4)>>3]=v+u*t;h[B+(g<<4)+8>>3]=w+s*t;g=k+4|0}m=m+1|0;if((m|0)==(d|0))break;else k=g}}else g=0}else g=0;x=B+(g<<4)|0;c[x>>2]=c[B>>2];c[x+4>>2]=c[B+4>>2];c[x+8>>2]=c[B+8>>2];c[x+12>>2]=c[B+12>>2];x=B+(g+1<<4)|0;e=B+16|0;c[x>>2]=c[e>>2];c[x+4>>2]=c[e+4>>2];c[x+8>>2]=c[e+8>>2];c[x+12>>2]=c[e+12>>2];x=B+(g+2<<4)|0;l=B+32|0;c[x>>2]=c[l>>2];c[x+4>>2]=c[l+4>>2];c[x+8>>2]=c[l+8>>2];c[x+12>>2]=c[l+12>>2];a:do if((y|0)<201326592){if((y|0)>=83886080){if((y|0)<134217728){if((y|0)<100663296){switch(y|0){case 83886080:break;default:break a}if((d|0)==4){d=$p(192)|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];G=d+16|0;n=b+16|0;c[G>>2]=c[n>>2];c[G+4>>2]=c[n+4>>2];c[G+8>>2]=c[n+8>>2];c[G+12>>2]=c[n+12>>2];G=B+48|0;r=+h[G>>3];n=B+64|0;r=r+(+h[n>>3]-r);k=d+32|0;h[k>>3]=r;E=B+56|0;v=+h[E>>3];g=B+72|0;v=v+(+h[g>>3]-v);p=d+40|0;h[p>>3]=v;w=r+(+h[G>>3]-+h[l>>3]);F=d+48|0;h[F>>3]=w;s=v+(+h[E>>3]-+h[B+40>>3]);D=d+56|0;h[D>>3]=s;u=w+(+h[n>>3]-+h[G>>3]);G=d+64|0;h[G>>3]=u;t=s+(+h[g>>3]-+h[E>>3]);E=d+72|0;h[E>>3]=t;g=d+80|0;h[g>>3]=u+(r-w);h[d+88>>3]=t+(v-s);n=B+96|0;s=+h[n>>3];e=B+80|0;s=s+(+h[e>>3]-s);z=d+144|0;h[z>>3]=s;y=B+104|0;v=+h[y>>3];j=B+88|0;v=v+(+h[j>>3]-v);h[d+152>>3]=v;t=s+(+h[n>>3]-+h[B+112>>3]);m=d+128|0;h[m>>3]=t;w=v+(+h[y>>3]-+h[B+120>>3]);x=d+136|0;h[x>>3]=w;r=t+(+h[e>>3]-+h[n>>3]);n=d+112|0;h[n>>3]=r;u=w+(+h[j>>3]-+h[y>>3]);y=d+120|0;h[y>>3]=u;j=d+96|0;h[j>>3]=r+(s-t);e=d+104|0;h[e>>3]=u+(v-w);l=d+160|0;H=b+32|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=d+176|0;b=b+48|0;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];c[l+12>>2]=c[b+12>>2];Wu(a,d,12,f);c[A>>2]=c[k>>2];c[A+4>>2]=c[k+4>>2];c[A+8>>2]=c[k+8>>2];c[A+12>>2]=c[k+12>>2];w=+h[k>>3];w=w-(+h[F>>3]-w);k=A+16|0;h[k>>3]=w;v=+h[p>>3];v=v-(+h[D>>3]-v);l=A+24|0;h[l>>3]=v;p=A+32|0;h[p>>3]=w+(+h[G>>3]-+h[F>>3]);b=A+40|0;h[b>>3]=v+(+h[E>>3]-+h[D>>3]);f=A+48|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];Zu(a,A,4);c[A>>2]=c[j>>2];c[A+4>>2]=c[j+4>>2];c[A+8>>2]=c[j+8>>2];c[A+12>>2]=c[j+12>>2];v=+h[j>>3];v=v-(+h[n>>3]-v);h[k>>3]=v;w=+h[e>>3];w=w-(+h[y>>3]-w);h[l>>3]=w;h[p>>3]=v+(+h[m>>3]-+h[n>>3]);h[b>>3]=w+(+h[x>>3]-+h[y>>3]);c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];Zu(a,A,4);pB(d);break}else Ia(129064,129075,737,129084)}if((y|0)<117440512){switch(y|0){case 100663296:break;default:break a}D=d+5|0;H=$p(D<<4)|0;E=b+16|0;w=+h[E>>3];u=+h[b>>3]-w;u=u*.125+(w+u*.5);h[H>>3]=u;F=b+40|0;w=+h[F>>3];G=b+24|0;y=B+48|0;z=B+56|0;d=B+72|0;w=w+(+h[G>>3]-w)*.5+(+h[z>>3]-+h[d>>3])*3.0*.5;h[H+8>>3]=w;t=+h[E>>3];v=+h[b>>3]-t;v=t+v*.5-v*.25;h[H+16>>3]=v;h[H+24>>3]=w;h[H+32>>3]=v;t=+h[F>>3];h[H+40>>3]=t+(+h[G>>3]-t)*.5;v=v+(+h[l>>3]-+h[y>>3])*.5;h[H+48>>3]=v;t=+h[F>>3];h[H+56>>3]=t+(+h[G>>3]-t)*.5;h[H+64>>3]=v;v=+h[F>>3];v=v+(+h[G>>3]-v)*.5+(+h[z>>3]-+h[d>>3]);h[H+72>>3]=v;h[H+80>>3]=u;h[H+88>>3]=v;h[H+96>>3]=u;v=v-(+h[z>>3]-+h[d>>3])*.25;h[H+104>>3]=v;h[H+112>>3]=u+(+h[l>>3]-+h[y>>3]);h[H+120>>3]=v+(+h[z>>3]-+h[d>>3])*.5;h[H+128>>3]=+h[H>>3];h[H+136>>3]=w+(+h[z>>3]-+h[d>>3])*.25;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 117440512:break;default:break a}G=d+1|0;H=$p(G<<4)|0;h[H>>3]=+h[e>>3];E=B+56|0;F=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[E>>3]-+h[F>>3])*.5;h[H+16>>3]=+h[B+48>>3];w=+h[E>>3];h[H+24>>3]=w-(w-+h[F>>3])*.5;h[H+32>>3]=+h[b+32>>3];D=b+40|0;h[H+40>>3]=+h[D>>3]+(+h[E>>3]-+h[F>>3])*.5;h[H+48>>3]=+h[e>>3];h[H+56>>3]=+h[D>>3]+(+h[E>>3]-+h[F>>3])*.5;w=+h[b+8>>3];h[H+72>>3]=w-(w-+h[b+56>>3])*.5;h[H+64>>3]=+h[b>>3];Wu(a,H,G,f);pB(H);break}}if((y|0)<167772160)if((y|0)<150994944){switch(y|0){case 134217728:break;default:break a}D=d+4|0;H=$p(D<<4)|0;E=b+16|0;t=+h[E>>3];d=B+48|0;t=t+(+h[b>>3]-t)*.5+(+h[l>>3]-+h[d>>3])*.25;h[H>>3]=t;F=b+40|0;w=+h[F>>3];G=b+24|0;w=w+(+h[G>>3]-w)*.5;h[H+8>>3]=w;h[H+16>>3]=t;y=B+56|0;z=B+72|0;u=w+(+h[y>>3]-+h[z>>3])*.5;h[H+24>>3]=u;t=t+(+h[l>>3]-+h[d>>3])*.5;h[H+32>>3]=t;h[H+40>>3]=u;h[H+48>>3]=t;t=u+(+h[y>>3]-+h[z>>3])*.5;h[H+56>>3]=t;v=+h[E>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[d>>3])*3.0*.25;h[H+64>>3]=v;h[H+72>>3]=t;h[H+80>>3]=v;h[H+88>>3]=u;v=+h[E>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[d>>3])*.25;h[H+96>>3]=v;h[H+104>>3]=u;h[H+112>>3]=v;h[H+120>>3]=w;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 150994944:break;default:break a}D=d+2|0;H=$p(D<<4)|0;E=b+16|0;u=+h[E>>3];d=B+48|0;u=u+(+h[b>>3]-u)*.5+(+h[l>>3]-+h[d>>3])*3.0*.25;h[H>>3]=u;F=b+40|0;w=+h[F>>3];G=b+24|0;w=w+(+h[G>>3]-w)*.5;h[H+8>>3]=w;h[H+16>>3]=u;y=B+56|0;z=B+72|0;u=w+(+h[y>>3]-+h[z>>3])*.25;h[H+24>>3]=u;v=+h[E>>3];h[H+32>>3]=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[d>>3])*.25;v=u+(+h[y>>3]-+h[z>>3])*.5;h[H+40>>3]=v;t=+h[E>>3];h[H+48>>3]=t+(+h[b>>3]-t)*.5-(+h[l>>3]-+h[d>>3])*.25;h[H+56>>3]=v;v=+h[E>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[d>>3])*3.0*.25;h[H+64>>3]=v;h[H+72>>3]=u;h[H+80>>3]=v;h[H+88>>3]=w;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else if((y|0)<184549376){switch(y|0){case 167772160:break;default:break a}D=d+1|0;H=$p(D<<4)|0;E=b+16|0;u=+h[E>>3];y=B+48|0;u=u+(+h[b>>3]-u)*.5+(+h[l>>3]-+h[y>>3]);h[H>>3]=u;F=b+40|0;w=+h[F>>3];G=b+24|0;z=B+56|0;d=B+72|0;w=w+(+h[G>>3]-w)*.5+(+h[z>>3]-+h[d>>3])*.25;h[H+8>>3]=w;u=u-(+h[l>>3]-+h[y>>3]);h[H+16>>3]=u;h[H+24>>3]=w+(+h[z>>3]-+h[d>>3]);h[H+32>>3]=u;u=w+(+h[z>>3]-+h[d>>3])*.5;h[H+40>>3]=u;t=+h[E>>3];v=+h[b>>3]-t;v=t+v*.5-v*.25;h[H+48>>3]=v;h[H+56>>3]=u;h[H+64>>3]=v;h[H+72>>3]=w;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 184549376:break;default:break a}F=d+4|0;H=$p(F<<4)|0;D=b+16|0;u=+h[D>>3];v=+h[b>>3]-u;x=B+48|0;v=v*.125+(u+v*.5)+(+h[l>>3]-+h[x>>3])*.5;h[H>>3]=v;z=b+40|0;u=+h[z>>3];d=b+24|0;G=B+56|0;y=B+72|0;u=u+(+h[d>>3]-u)*.5+(+h[G>>3]-+h[y>>3])*.25;h[H+8>>3]=u;t=+h[D>>3];w=+h[b>>3]-t;w=t+w*.5-w*.125;h[H+16>>3]=w;h[H+24>>3]=u;h[H+32>>3]=w;u=u+(+h[G>>3]-+h[y>>3])*.5;h[H+40>>3]=u;w=w-(+h[l>>3]-+h[x>>3])*.5;h[H+48>>3]=w;h[H+56>>3]=u;E=H+64|0;h[E>>3]=w;w=+h[z>>3];w=w+(+h[d>>3]-w)*.5-(+h[G>>3]-+h[y>>3])*.25;h[H+72>>3]=w;u=v-(+h[l>>3]-+h[x>>3])*.5;h[H+80>>3]=u;h[H+88>>3]=w;h[H+96>>3]=u;w=w-(+h[G>>3]-+h[y>>3])*.5;h[H+104>>3]=w;y=H+112|0;h[y>>3]=v;h[H+120>>3]=w;Wu(a,H,F,f);h[A>>3]=+h[D>>3];w=+h[z>>3];f=A+8|0;h[f>>3]=w+(+h[d>>3]-w)*.5;D=A+16|0;h[D>>3]=+h[E>>3];E=b+8|0;F=b+56|0;G=A+24|0;h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);h[A>>3]=+h[y>>3];w=+h[z>>3];h[f>>3]=w+(+h[d>>3]-w)*.5;h[D>>3]=+h[b>>3];h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);pB(H);break}}if((y|0)>=33554432){if((y|0)<50331648){switch(y|0){case 33554432:break;default:break a}g=d+2|0;j=$p(g<<4)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];k=j+16|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];k=B+48|0;F=B+64|0;h[j+32>>3]=+h[l>>3]+(+h[k>>3]-+h[F>>3])/3.0;G=B+56|0;H=B+72|0;h[j+40>>3]=+h[B+40>>3]+(+h[G>>3]-+h[H>>3])/3.0;w=+h[k>>3];h[j+48>>3]=w+(w-+h[F>>3])/3.0;w=+h[G>>3];h[j+56>>3]=w+(w-+h[H>>3])/3.0;if((g|0)>4){e=4;do{H=j+(e<<4)|0;G=b+(e+-2<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];e=e+1|0}while((e|0)!=(g|0))}Wu(a,j,g,f);pB(j);c[A>>2]=c[k>>2];c[A+4>>2]=c[k+4>>2];c[A+8>>2]=c[k+8>>2];c[A+12>>2]=c[k+12>>2];H=A+16|0;c[H>>2]=c[l>>2];c[H+4>>2]=c[l+4>>2];c[H+8>>2]=c[l+8>>2];c[H+12>>2]=c[l+12>>2];Zu(a,A,2);break}if((y|0)>=67108864){switch(y|0){case 67108864:break;default:break a}if((d|0)==4){H=$p(96)|0;c[H>>2]=c[b>>2];c[H+4>>2]=c[b+4>>2];c[H+8>>2]=c[b+8>>2];c[H+12>>2]=c[b+12>>2];E=H+16|0;c[E>>2]=c[l>>2];c[E+4>>2]=c[l+4>>2];c[E+8>>2]=c[l+8>>2];c[E+12>>2]=c[l+12>>2];E=H+32|0;F=B+64|0;c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];E=H+48|0;G=b+32|0;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];c[E+8>>2]=c[G+8>>2];c[E+12>>2]=c[G+12>>2];E=H+64|0;G=B+128|0;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];c[E+8>>2]=c[G+8>>2];c[E+12>>2]=c[G+12>>2];E=H+80|0;D=B+160|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];Wu(a,H,6,f);pB(H);h[A>>3]=+h[e>>3]+(+h[B+176>>3]-+h[B>>3]);h[A+8>>3]=+h[B+24>>3]+(+h[B+184>>3]-+h[B+8>>3]);H=A+16|0;c[H>>2]=c[F>>2];c[H+4>>2]=c[F+4>>2];c[H+8>>2]=c[F+8>>2];c[H+12>>2]=c[F+12>>2];Zu(a,A,2);c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];Zu(a,A,2);c[H>>2]=c[B>>2];c[H+4>>2]=c[B+4>>2];c[H+8>>2]=c[B+8>>2];c[H+12>>2]=c[B+12>>2];Zu(a,A,2);break}else Ia(129064,129075,714,129084)}else{switch(y|0){case 50331648:break;default:break a}j=d+3|0;k=$p(j<<4)|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];w=+h[b>>3];h[k+16>>3]=w-(w-+h[e>>3])*.25;H=B+56|0;w=+h[b+8>>3]+(+h[H>>3]-+h[B+72>>3])/3.0;h[k+24>>3]=w;v=+h[b>>3];h[k+32>>3]=v-(v-+h[e>>3])*2.0;h[k+40>>3]=w;w=+h[b>>3];h[k+48>>3]=w-(w-+h[e>>3])*2.25;h[k+56>>3]=+h[H>>3];h[k+64>>3]=+h[B+48>>3];h[k+72>>3]=+h[H>>3];if((j|0)>4){g=4;do{H=k+(g<<4)|0;G=b+(g+-3<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];g=g+1|0}while((g|0)!=(j|0))}Wu(a,k,j,f);pB(k);break}}if((y|0)<8){switch(y|0){case 4:break;default:break a}g=d*96|0;p=aq(g+32|0)|0;if(z){g=p+g|0;j=d*6|0;k=p;e=1;m=0;n=0;while(1){G=n<<2;l=B+(G<<4)|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=p+(e<<4)|0;H=B+((G|1)<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=p+(m+2<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=p+(m+3<<4)|0;H=B+((G|2)<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=p+(m+4<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=m+6|0;H=p+(m+5<<4)|0;G=B+((G|3)<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];n=n+1|0;if((n|0)==(d|0))break;else{k=p+(l<<4)|0;e=l|1;m=l}}j=j|1}else{j=1;g=p};c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];G=p+(j<<4)|0;H=p+16|0;c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];c[G+8>>2]=c[H+8>>2];c[G+12>>2]=c[H+12>>2];Yu(a,H,j,0,0,f&255);pB(p);break}if((y|0)<16777216){switch(y|0){case 8:break;default:break a}Wu(a,b,d,f);if(!z)break;g=A+16|0;j=0;do{H=j*3|0;G=B+(H+2<<4)|0;c[A>>2]=c[G>>2];c[A+4>>2]=c[G+4>>2];c[A+8>>2]=c[G+8>>2];c[A+12>>2]=c[G+12>>2];H=B+(H+4<<4)|0;c[g>>2]=c[H>>2];c[g+4>>2]=c[H+4>>2];c[g+8>>2]=c[H+8>>2];c[g+12>>2]=c[H+12>>2];Zu(a,A,2);j=j+1|0}while((j|0)!=(d|0))}else{switch(y|0){case 16777216:break;default:break a}g=d+1|0;j=$p(g<<4)|0;if((d|0)>1){k=1;do{H=j+(k<<4)|0;G=b+(k<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];k=k+1|0}while((k|0)!=(d|0))}F=d*3|0;G=B+(F+1<<4)|0;c[j>>2]=c[G>>2];c[j+4>>2]=c[G+4>>2];c[j+8>>2]=c[G+8>>2];c[j+12>>2]=c[G+12>>2];E=j+(d<<4)|0;H=B+(F+-1<<4)|0;c[E>>2]=c[H>>2];c[E+4>>2]=c[H+4>>2];c[E+8>>2]=c[H+8>>2];c[E+12>>2]=c[H+12>>2];Wu(a,j,g,f);pB(j);c[A>>2]=c[H>>2];c[A+4>>2]=c[H+4>>2];c[A+8>>2]=c[H+8>>2];c[A+12>>2]=c[H+12>>2];H=A+16|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];G=A+32|0;h[G>>3]=+h[H>>3]+(+h[A>>3]-+h[B+(F<<4)>>3]);h[A+40>>3]=+h[A+24>>3]+(+h[A+8>>3]-+h[B+(F<<4)+8>>3]);Zu(a,H,2);c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];Zu(a,A,2);break}}else if((y|0)<318767104){if((y|0)<251658240){if((y|0)<218103808){switch(y|0){case 201326592:break;default:break a}H=d<<4;x=$p(H)|0;y=b+16|0;w=+h[y>>3];h[x>>3]=w;F=b+40|0;v=+h[F>>3];G=b+24|0;E=B+48|0;z=B+56|0;D=B+72|0;v=v+(+h[G>>3]-v)*.5+(+h[z>>3]-+h[D>>3])*.125;h[x+8>>3]=v;u=w+(+h[l>>3]-+h[E>>3])*2.0;h[x+16>>3]=u;h[x+24>>3]=v;h[x+32>>3]=u;v=v+(+h[z>>3]-+h[D>>3])*.5;h[x+40>>3]=v;h[x+48>>3]=w;h[x+56>>3]=v;Wu(a,x,d,f);pB(x);H=$p(H)|0;v=+h[y>>3]+(+h[l>>3]-+h[E>>3]);h[H>>3]=v;w=+h[F>>3];w=w+(+h[G>>3]-w)*.5-(+h[z>>3]-+h[D>>3])*5.0*.125;h[H+8>>3]=w;u=v+(+h[l>>3]-+h[E>>3]);E=H+16|0;h[E>>3]=u;h[H+24>>3]=w;h[H+32>>3]=u;w=w+(+h[z>>3]-+h[D>>3])*.5;h[H+40>>3]=w;h[H+48>>3]=v;h[H+56>>3]=w;Wu(a,H,d,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}if((y|0)<234881024){switch(y|0){case 218103808:break;default:break a}H=d<<4;z=$p(H)|0;w=+h[b>>3];h[z>>3]=w;E=b+40|0;v=+h[E>>3];F=b+24|0;D=B+56|0;G=B+72|0;v=v+(+h[F>>3]-v)*.5+(+h[D>>3]-+h[G>>3])*.125;h[z+8>>3]=v;h[z+16>>3]=w;u=v+(+h[D>>3]-+h[G>>3])*.5;h[z+24>>3]=u;w=w-(+h[D>>3]-+h[G>>3])*2.0;h[z+32>>3]=w;h[z+40>>3]=u;h[z+48>>3]=w;h[z+56>>3]=v;Wu(a,z,d,f);pB(z);H=$p(H)|0;v=+h[b>>3]-(+h[l>>3]-+h[B+48>>3]);h[H>>3]=v;w=+h[E>>3];w=w+(+h[F>>3]-w)*.5-(+h[D>>3]-+h[G>>3])*5.0*.125;h[H+8>>3]=w;h[H+16>>3]=v;u=w+(+h[D>>3]-+h[G>>3])*.5;h[H+24>>3]=u;v=v-(+h[D>>3]-+h[G>>3]);h[H+32>>3]=v;h[H+40>>3]=u;G=H+48|0;h[G>>3]=v;h[H+56>>3]=w;Wu(a,H,d,f);h[A>>3]=+h[b+16>>3];w=+h[E>>3];h[A+8>>3]=w+(+h[F>>3]-w)*.5;h[A+16>>3]=+h[G>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 234881024:break;default:break a}H=d<<4;D=$p(H)|0;p=b+16|0;v=+h[p>>3];x=B+48|0;v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[x>>3])*9.0*.125;h[D>>3]=v;y=b+40|0;w=+h[y>>3];z=b+24|0;F=B+56|0;E=B+72|0;w=w+(+h[z>>3]-w)*.5+(+h[F>>3]-+h[E>>3])*.125;h[D+8>>3]=w;u=v+(+h[l>>3]-+h[x>>3]);h[D+16>>3]=u;h[D+24>>3]=w;h[D+32>>3]=u;w=w+(+h[F>>3]-+h[E>>3])*.5;h[D+40>>3]=w;h[D+48>>3]=v;h[D+56>>3]=w;Wu(a,D,d,f);pB(D);D=$p(H)|0;w=+h[p>>3];w=w+(+h[b>>3]-w)*.5-(+h[l>>3]-+h[x>>3])*9.0*.125;h[D>>3]=w;v=+h[y>>3];v=v+(+h[z>>3]-v)*.5-(+h[F>>3]-+h[E>>3])*5.0*.125;h[D+8>>3]=v;u=w+(+h[l>>3]-+h[x>>3]);h[D+16>>3]=u;h[D+24>>3]=v;h[D+32>>3]=u;v=v+(+h[F>>3]-+h[E>>3])*.5;h[D+40>>3]=v;h[D+48>>3]=w;h[D+56>>3]=v;Wu(a,D,d,f);pB(D);D=$p(H)|0;v=+h[p>>3];v=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[x>>3])*.125;h[D>>3]=v;w=+h[y>>3];w=w+(+h[z>>3]-w)*.5-(+h[F>>3]-+h[E>>3])*5.0*.125;h[D+8>>3]=w;u=v+(+h[l>>3]-+h[x>>3]);h[D+16>>3]=u;h[D+24>>3]=w;h[D+32>>3]=u;w=w+(+h[F>>3]-+h[E>>3])*.5;h[D+40>>3]=w;h[D+48>>3]=v;h[D+56>>3]=w;Wu(a,D,d,f);pB(D);H=$p(H)|0;w=+h[p>>3];w=w+(+h[b>>3]-w)*.5+(+h[l>>3]-+h[x>>3])*.125;h[H>>3]=w;v=+h[y>>3];v=v+(+h[z>>3]-v)*.5+(+h[F>>3]-+h[E>>3])*.125;h[H+8>>3]=v;u=w+(+h[l>>3]-+h[x>>3]);D=H+16|0;h[D>>3]=u;h[H+24>>3]=v;h[H+32>>3]=u;v=v+(+h[F>>3]-+h[E>>3])*.5;h[H+40>>3]=v;h[H+48>>3]=w;h[H+56>>3]=v;Wu(a,H,d,f);h[A>>3]=+h[D>>3];v=+h[y>>3];f=A+8|0;h[f>>3]=v+(+h[z>>3]-v)*.5;D=A+16|0;h[D>>3]=+h[b>>3];E=b+8|0;F=b+56|0;G=A+24|0;h[G>>3]=v+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);v=+h[p>>3];h[A>>3]=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[x>>3])*9.0*.125;w=+h[y>>3];h[f>>3]=w+(+h[z>>3]-w)*.5;h[D>>3]=v;h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);pB(H);break}}if((y|0)<285212672)if((y|0)<268435456){switch(y|0){case 251658240:break;default:break a}H=d<<4;G=$p(H)|0;x=b+16|0;w=+h[x>>3];D=B+48|0;w=w+(+h[b>>3]-w)*.5-(+h[l>>3]-+h[D>>3]);h[G>>3]=w;y=b+40|0;v=+h[y>>3];z=b+24|0;F=B+56|0;E=B+72|0;v=v+(+h[z>>3]-v)*.5+(+h[F>>3]-+h[E>>3])*.125;h[G+8>>3]=v;u=w+(+h[l>>3]-+h[D>>3])*2.0;h[G+16>>3]=u;h[G+24>>3]=v;h[G+32>>3]=u;v=v+(+h[F>>3]-+h[E>>3])*.5;h[G+40>>3]=v;h[G+48>>3]=w;h[G+56>>3]=v;Wu(a,G,d,f);pB(G);H=$p(H)|0;v=+h[x>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[D>>3]);h[H>>3]=v;w=+h[y>>3];w=w+(+h[z>>3]-w)*.5-(+h[F>>3]-+h[E>>3])*5.0*.125;h[H+8>>3]=w;u=v+(+h[l>>3]-+h[D>>3])*2.0;D=H+16|0;h[D>>3]=u;h[H+24>>3]=w;h[H+32>>3]=u;w=w+(+h[F>>3]-+h[E>>3])*.5;h[H+40>>3]=w;h[H+48>>3]=v;h[H+56>>3]=w;Wu(a,H,d,f);h[A>>3]=+h[D>>3];w=+h[y>>3];f=A+8|0;h[f>>3]=w+(+h[z>>3]-w)*.5;D=A+16|0;h[D>>3]=+h[b>>3];E=b+8|0;F=b+56|0;G=A+24|0;h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);h[A>>3]=+h[x>>3];w=+h[y>>3];h[f>>3]=w+(+h[z>>3]-w)*.5;h[D>>3]=+h[H>>3];h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 268435456:break;default:break a}H=$p(d<<4)|0;h[H>>3]=+h[b>>3];E=B+48|0;y=B+56|0;z=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[y>>3]-+h[z>>3])*.5;h[H+16>>3]=+h[E>>3];w=+h[y>>3];h[H+24>>3]=w-(w-+h[z>>3])*.5;h[H+32>>3]=+h[b+32>>3];x=b+40|0;h[H+40>>3]=+h[x>>3]+(+h[y>>3]-+h[z>>3])*.5;h[H+48>>3]=+h[b>>3];h[H+56>>3]=+h[x>>3]+(+h[y>>3]-+h[z>>3])*.5;Wu(a,H,d,f);f=b+16|0;w=+h[f>>3]+(+h[l>>3]-+h[E>>3])*.25;h[A>>3]=w;v=+h[x>>3];d=b+24|0;v=v+(+h[d>>3]-v)*.5+(+h[y>>3]-+h[z>>3])*.125;D=A+8|0;h[D>>3]=v;F=A+16|0;h[F>>3]=w+(+h[l>>3]-+h[E>>3])*.25;G=A+24|0;h[G>>3]=v-(+h[y>>3]-+h[z>>3])*.25;Zu(a,A,2);v=+h[f>>3]+(+h[l>>3]-+h[E>>3])*.25;h[A>>3]=v;w=+h[x>>3];w=w+(+h[d>>3]-w)*.5-(+h[y>>3]-+h[z>>3])*.125;h[D>>3]=w;h[F>>3]=v+(+h[l>>3]-+h[E>>3])*.25;h[G>>3]=w+(+h[y>>3]-+h[z>>3])*.25;Zu(a,A,2);h[A>>3]=+h[f>>3]+(+h[l>>3]-+h[E>>3])*.25;w=+h[x>>3]+(+h[y>>3]-+h[z>>3])*3.0*.25;h[D>>3]=w;h[F>>3]=+h[b>>3]-(+h[l>>3]-+h[E>>3])*.25;h[G>>3]=w;Zu(a,A,2);pB(H);break}else if((y|0)<301989888){switch(y|0){case 285212672:break;default:break a}E=$p(d<<4)|0;x=b+16|0;u=+h[x>>3];D=B+48|0;u=u+(+h[b>>3]-u)*.5+(+h[l>>3]-+h[D>>3])*.5;h[E>>3]=u;y=b+40|0;t=+h[y>>3];z=b+24|0;t=t+(+h[z>>3]-t)*.5+(+h[l>>3]-+h[D>>3])*.5;h[E+8>>3]=t;h[E+16>>3]=u;u=+h[y>>3];w=(+h[l>>3]-+h[D>>3])*.5;u=u+(+h[z>>3]-u)*.5-w;h[E+24>>3]=u;v=+h[x>>3];w=v+(+h[b>>3]-v)*.5-w;h[E+32>>3]=w;h[E+40>>3]=u;h[E+48>>3]=w;h[E+56>>3]=t;Wu(a,E,d,f);pB(E);t=+h[x>>3];t=t+(+h[b>>3]-t)*.5;w=t+(+h[l>>3]-+h[D>>3])*3.0*.25;h[A>>3]=w;u=+h[y>>3];u=u+(+h[z>>3]-u)*.5;v=u+(+h[l>>3]-+h[D>>3])*3.0*.25;f=A+8|0;h[f>>3]=v;E=A+16|0;h[E>>3]=w;w=(+h[l>>3]-+h[D>>3])*3.0*.25;u=u-w;H=A+24|0;h[H>>3]=u;w=t-w;h[A+32>>3]=w;h[A+40>>3]=u;h[A+48>>3]=w;h[A+56>>3]=v;F=A+64|0;c[F>>2]=c[A>>2];c[F+4>>2]=c[A+4>>2];c[F+8>>2]=c[A+8>>2];c[F+12>>2]=c[A+12>>2];Zu(a,A,5);v=+h[x>>3];w=+h[b>>3];h[A>>3]=v+(w-v)*.5+(+h[l>>3]-+h[D>>3])*3.0*.25;v=+h[y>>3];h[f>>3]=v+(+h[z>>3]-v)*.5;h[E>>3]=w;F=b+8|0;G=b+56|0;h[H>>3]=v+(+h[F>>3]-+h[G>>3])*.5;Zu(a,A,2);v=+h[x>>3];h[A>>3]=v;w=+h[y>>3];h[f>>3]=w+(+h[z>>3]-w)*.5;h[E>>3]=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[D>>3])*3.0*.25;h[H>>3]=w+(+h[F>>3]-+h[G>>3])*.5;Zu(a,A,2);break}else{switch(y|0){case 301989888:break;default:break a}E=d+12|0;H=$p(E<<4)|0;z=b+16|0;r=+h[z>>3];n=B+48|0;r=r+(+h[b>>3]-r)*.5+(+h[l>>3]-+h[n>>3])*.25;h[H>>3]=r;d=b+40|0;t=+h[d>>3];D=b+24|0;x=B+56|0;y=B+72|0;t=t+(+h[D>>3]-t)*.5+(+h[x>>3]-+h[y>>3])*.5;p=H+8|0;h[p>>3]=t;h[H+16>>3]=r;t=t+(+h[x>>3]-+h[y>>3])*.125;G=H+24|0;h[G>>3]=t;v=r-(+h[l>>3]-+h[n>>3])*.125;F=H+32|0;h[F>>3]=v;s=t+(+h[x>>3]-+h[y>>3])*.125;h[H+40>>3]=s;h[H+48>>3]=r;u=s+(+h[x>>3]-+h[y>>3])*.125;h[H+56>>3]=u;h[H+64>>3]=r;r=u+(+h[x>>3]-+h[y>>3])*.125;h[H+72>>3]=r;h[H+80>>3]=v;h[H+88>>3]=r;v=+h[z>>3];v=v+(+h[b>>3]-v)*.5;h[H+96>>3]=v;h[H+104>>3]=u;w=v-(+h[l>>3]-+h[n>>3])*.125;h[H+112>>3]=w;h[H+120>>3]=r;w=w-(+h[l>>3]-+h[n>>3])*.125;h[H+128>>3]=w;h[H+136>>3]=r;h[H+144>>3]=w;h[H+152>>3]=u;u=w+(+h[l>>3]-+h[n>>3])*.125;h[H+160>>3]=u;h[H+168>>3]=s;h[H+176>>3]=w;h[H+184>>3]=t;h[H+192>>3]=w;w=+h[p>>3];h[H+200>>3]=w;h[H+208>>3]=u;h[H+216>>3]=w;p=H+224|0;h[p>>3]=v;h[H+232>>3]=+h[G>>3];h[H+240>>3]=+h[F>>3];h[H+248>>3]=w;Wu(a,H,E,f);w=+h[p>>3];h[A>>3]=w;v=+h[d>>3];v=v+(+h[D>>3]-v)*.5;E=A+8|0;h[E>>3]=v;F=A+16|0;h[F>>3]=w;G=A+24|0;h[G>>3]=v+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);v=+h[p>>3];h[A>>3]=v;w=+h[d>>3];w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.25;h[E>>3]=w;h[F>>3]=v;h[G>>3]=w+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);h[A>>3]=+h[z>>3];w=+h[d>>3];h[E>>3]=w+(+h[D>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}}else{if((y|0)<369098752){if((y|0)<335544320){switch(y|0){case 318767104:break;default:break a}E=d+4|0;H=$p(E<<4)|0;z=b+16|0;v=+h[z>>3];F=B+48|0;v=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[F>>3])*.125;h[H>>3]=v;d=b+40|0;w=+h[d>>3];D=b+24|0;x=B+56|0;y=B+72|0;w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.5;h[H+8>>3]=w;s=v+(+h[l>>3]-+h[F>>3])*.125;h[H+16>>3]=s;u=w+(+h[x>>3]-+h[y>>3])*.125;h[H+24>>3]=u;h[H+32>>3]=s;s=u+(+h[x>>3]-+h[y>>3])*.25;h[H+40>>3]=s;h[H+48>>3]=v;t=s+(+h[x>>3]-+h[y>>3])*.125;h[H+56>>3]=t;v=v-(+h[l>>3]-+h[F>>3])*.25;h[H+64>>3]=v;h[H+72>>3]=t;t=v-(+h[l>>3]-+h[F>>3])*.125;h[H+80>>3]=t;h[H+88>>3]=s;h[H+96>>3]=t;h[H+104>>3]=u;h[H+112>>3]=v;h[H+120>>3]=w;Wu(a,H,E,f);w=+h[z>>3];w=w+(+h[b>>3]-w)*.5;h[A>>3]=w;v=+h[d>>3];v=v+(+h[D>>3]-v)*.5;E=A+8|0;h[E>>3]=v;F=A+16|0;h[F>>3]=w;G=A+24|0;h[G>>3]=v+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);v=+h[z>>3];v=v+(+h[b>>3]-v)*.5;h[A>>3]=v;w=+h[d>>3];w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.25;h[E>>3]=w;h[F>>3]=v;h[G>>3]=w+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);h[A>>3]=+h[z>>3];w=+h[d>>3];h[E>>3]=w+(+h[D>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}if((y|0)<352321536){switch(y|0){case 335544320:break;default:break a}G=d+12|0;H=$p(G<<4)|0;d=b+16|0;r=+h[d>>3];x=B+48|0;r=r+(+h[b>>3]-r)*.5+(+h[l>>3]-+h[x>>3])*.25;h[H>>3]=r;D=b+40|0;t=+h[D>>3];E=b+24|0;n=B+56|0;p=B+72|0;t=t+(+h[E>>3]-t)*.5+(+h[n>>3]-+h[p>>3])*.5;F=H+8|0;h[F>>3]=t;h[H+16>>3]=r;t=t+(+h[n>>3]-+h[p>>3])*.125;y=H+24|0;h[y>>3]=t;v=r-(+h[l>>3]-+h[x>>3])*.125;z=H+32|0;h[z>>3]=v;s=t+(+h[n>>3]-+h[p>>3])*.125;h[H+40>>3]=s;h[H+48>>3]=r;u=s+(+h[n>>3]-+h[p>>3])*.125;h[H+56>>3]=u;h[H+64>>3]=r;r=u+(+h[n>>3]-+h[p>>3])*.125;h[H+72>>3]=r;h[H+80>>3]=v;h[H+88>>3]=r;v=+h[d>>3];v=v+(+h[b>>3]-v)*.5;h[H+96>>3]=v;h[H+104>>3]=u;w=v-(+h[l>>3]-+h[x>>3])*.125;h[H+112>>3]=w;h[H+120>>3]=r;w=w-(+h[l>>3]-+h[x>>3])*.125;h[H+128>>3]=w;h[H+136>>3]=r;h[H+144>>3]=w;h[H+152>>3]=u;u=w+(+h[l>>3]-+h[x>>3])*.125;h[H+160>>3]=u;h[H+168>>3]=s;h[H+176>>3]=w;h[H+184>>3]=t;h[H+192>>3]=w;w=+h[F>>3];h[H+200>>3]=w;h[H+208>>3]=u;h[H+216>>3]=w;F=H+224|0;h[F>>3]=v;h[H+232>>3]=+h[y>>3];h[H+240>>3]=+h[z>>3];h[H+248>>3]=w;Wu(a,H,G,f);c[A>>2]=c[F>>2];c[A+4>>2]=c[F+4>>2];c[A+8>>2]=c[F+8>>2];c[A+12>>2]=c[F+12>>2];F=A+16|0;h[F>>3]=+h[A>>3];w=+h[D>>3];G=A+24|0;h[G>>3]=w+(+h[E>>3]-w)*.5;Zu(a,A,2);h[A>>3]=+h[d>>3];w=+h[D>>3];h[A+8>>3]=w+(+h[E>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 352321536:break;default:break a}E=d+4|0;H=$p(E<<4)|0;z=b+16|0;v=+h[z>>3];G=B+48|0;v=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[G>>3])*.125;h[H>>3]=v;d=b+40|0;w=+h[d>>3];D=b+24|0;x=B+56|0;y=B+72|0;w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.5;F=H+8|0;h[F>>3]=w;s=v+(+h[l>>3]-+h[G>>3])*.125;h[H+16>>3]=s;u=w+(+h[x>>3]-+h[y>>3])*.125;h[H+24>>3]=u;h[H+32>>3]=s;s=u+(+h[x>>3]-+h[y>>3])*.25;h[H+40>>3]=s;h[H+48>>3]=v;t=s+(+h[x>>3]-+h[y>>3])*.125;h[H+56>>3]=t;v=v-(+h[l>>3]-+h[G>>3])*.25;h[H+64>>3]=v;h[H+72>>3]=t;t=v-(+h[l>>3]-+h[G>>3])*.125;h[H+80>>3]=t;h[H+88>>3]=s;h[H+96>>3]=t;h[H+104>>3]=u;h[H+112>>3]=v;h[H+120>>3]=w;Wu(a,H,E,f);w=+h[z>>3];w=w+(+h[b>>3]-w)*.5;h[A>>3]=w;E=A+8|0;h[E>>3]=+h[F>>3];F=A+16|0;h[F>>3]=w;w=+h[d>>3];G=A+24|0;h[G>>3]=w+(+h[D>>3]-w)*.5;Zu(a,A,2);h[A>>3]=+h[z>>3];w=+h[d>>3];h[E>>3]=w+(+h[D>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}}if((y|0)<402653184)if((y|0)<385875968){switch(y|0){case 369098752:break;default:break a}G=d+5|0;H=$p(G<<4)|0;F=B+48|0;h[H>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;E=B+56|0;D=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[E>>3]-+h[D>>3])*.5;h[H+16>>3]=+h[F>>3];w=+h[E>>3];h[H+24>>3]=w-(w-+h[D>>3])*.5;h[H+32>>3]=+h[b+32>>3];d=b+40|0;h[H+40>>3]=+h[d>>3];w=+h[l>>3];h[H+48>>3]=w+(w-+h[F>>3])*.5;h[H+56>>3]=+h[d>>3];w=+h[l>>3];h[H+64>>3]=w+(w-+h[F>>3])*.5;h[H+72>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+80>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;h[H+88>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+96>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;D=b+56|0;h[H+104>>3]=+h[D>>3];E=b+8|0;w=+h[E>>3];h[H+120>>3]=w-(w-+h[D>>3])*.5;h[H+112>>3]=+h[b>>3];h[H+136>>3]=+h[E>>3];h[H+128>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;Wu(a,H,G,f);pB(H);break}else{switch(y|0){case 385875968:break;default:break a}G=d+3|0;H=$p(G<<4)|0;F=B+48|0;h[H>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;E=B+56|0;D=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[E>>3]-+h[D>>3])*.5;h[H+16>>3]=+h[F>>3];w=+h[E>>3];h[H+24>>3]=w-(w-+h[D>>3])*.5;h[H+32>>3]=+h[b+32>>3];d=b+40|0;h[H+40>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+48>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;h[H+56>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+64>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;D=b+56|0;h[H+72>>3]=+h[D>>3];E=b+8|0;w=+h[E>>3];h[H+88>>3]=w-(w-+h[D>>3])*.5;h[H+80>>3]=+h[b>>3];h[H+104>>3]=+h[E>>3];h[H+96>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;Wu(a,H,G,f);pB(H);break}else if((y|0)<419430400){switch(y|0){case 402653184:break;default:break a}G=d+3|0;H=$p(G<<4)|0;h[H>>3]=+h[b>>3];d=b+8|0;D=B+48|0;E=B+56|0;F=B+72|0;h[H+8>>3]=+h[d>>3]-(+h[E>>3]-+h[F>>3])*.5;w=+h[l>>3];h[H+16>>3]=w+(w-+h[D>>3])*.5;h[H+24>>3]=+h[d>>3]-(+h[E>>3]-+h[F>>3])*.5;w=+h[l>>3];h[H+32>>3]=w+(w-+h[D>>3])*.5;h[H+40>>3]=+h[B+40>>3];h[H+48>>3]=+h[b+16>>3];w=+h[b+24>>3];d=b+40|0;h[H+56>>3]=w-(w-+h[d>>3])*.5;w=+h[l>>3];h[H+64>>3]=w+(w-+h[D>>3])*.5;h[H+72>>3]=+h[d>>3];h[H+88>>3]=+h[d>>3]+(+h[E>>3]-+h[F>>3])*.5;w=+h[l>>3];h[H+80>>3]=w+(w-+h[D>>3])*.5;h[H+104>>3]=+h[b+56>>3]+(+h[E>>3]-+h[F>>3])*.5;h[H+96>>3]=+h[b>>3];Wu(a,H,G,f);pB(H);break}else{switch(y|0){case 419430400:break;default:break a}G=d+5|0;H=$p(G<<4)|0;h[H>>3]=+h[b>>3];F=b+8|0;E=B+48|0;d=B+56|0;D=B+72|0;h[H+8>>3]=+h[F>>3]-(+h[d>>3]-+h[D>>3])*.5;w=+h[l>>3];h[H+16>>3]=w+(w-+h[E>>3])*.5;h[H+24>>3]=+h[F>>3]-(+h[d>>3]-+h[D>>3])*.5;w=+h[l>>3];h[H+32>>3]=w+(w-+h[E>>3])*.5;h[H+40>>3]=+h[B+40>>3];h[H+48>>3]=+h[b+16>>3];w=+h[b+24>>3];F=b+40|0;h[H+56>>3]=w-(w-+h[F>>3])*.5;w=+h[l>>3];h[H+64>>3]=w+(w-+h[E>>3])*.5;h[H+72>>3]=+h[F>>3];h[H+88>>3]=+h[F>>3]+(+h[d>>3]-+h[D>>3])*.5;w=+h[l>>3];h[H+80>>3]=w+(w-+h[E>>3])*.5;F=b+56|0;h[H+104>>3]=+h[F>>3]+(+h[d>>3]-+h[D>>3])*.5;h[H+96>>3]=+h[e>>3]-(+h[l>>3]-+h[E>>3])*.5;h[H+112>>3]=+h[e>>3]-(+h[l>>3]-+h[E>>3])*.5;h[H+120>>3]=+h[F>>3];h[H+128>>3]=+h[b+48>>3];h[H+136>>3]=+h[F>>3];Wu(a,H,G,f);pB(H);break}}while(0);pB(B)}i=C;return}function kr(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(a){a=c[c[a+4>>2]>>2]|0;if((a|0)!=75)if((a|0)!=78)if((a|0)==77)a=3;else a=(a|0)==80?4:0;else a=2;else a=1}else a=0;return a|0}function lr(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(!a)a=0;else a=(c[c[a+4>>2]>>2]|0)==75&1;return a|0}function mr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[13563]|0;a:do if((e|0)!=0?(f=c[13564]|0,(f|0)>0):0){g=a[b>>0]|0;i=0;while(1){d=c[e+(i<<2)>>2]|0;h=c[d>>2]|0;if((a[h>>0]|0)==g<<24>>24?(lA(h,b)|0)==0:0)break a;i=i+1|0;if((i|0)>=(f|0)){d=0;break}}}else d=0;while(0);return d|0}function nr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;do if(!(Ts(zj(d,129098)|0)|0))g=b;else{if((a[b>>0]|0)==101?(lA(b,129108)|0)==0:0){g=b;break}g=129113}while(0);e=a[g>>0]|0;if(e<<24>>24==99?(lA(g,129113)|0)==0:0)f=11;else f=7;a:do if((f|0)==7){b=c[13565]|0;if(!b)f=11;else{d=b;b=54260;while(1){if((a[d>>0]|0)==e<<24>>24?(lA(d,g)|0)==0:0)break a;b=b+16|0;d=c[b>>2]|0;if(!d){f=11;break}}}}while(0);b:do if((f|0)==11){b=mr(g)|0;if(!b){e=c[13564]|0;b=e+1|0;c[13564]=b;d=c[13563]|0;if(!d)b=aq(b<<2)|0;else b=cq(d,b<<2)|0;c[13563]=b;b=$p(16)|0;c[(c[13563]|0)+(e<<2)>>2]=b;c[b>>2]=c[13565];c[b+4>>2]=c[13566];c[b+8>>2]=c[13567];c[b+12>>2]=c[13568];d=oA(g)|0;c[b>>2]=d;do if(!(c[13354]|0)){if((a[g>>0]|0)==99?(lA(g,129113)|0)==0:0)break;c[h>>2]=c[13565];c[h+4>>2]=d;dj(0,129120,h)|0;a[b+12>>0]=0;break b}while(0);a[b+12>>0]=1}}while(0);i=j;return b|0}function or(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0;F=i;i=i+48|0;g=F;j=c[(c[(c[(gl(d)|0)+60>>2]|0)+16>>2]|0)+116>>2]&3;p=d+16|0;E=c[p>>2]|0;D=E+16|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];l=+h[k>>3];E=E+24|0;a[k>>0]=a[E>>0];a[k+1>>0]=a[E+1>>0];a[k+2>>0]=a[E+2>>0];a[k+3>>0]=a[E+3>>0];a[k+4>>0]=a[E+4>>0];a[k+5>>0]=a[E+5>>0];a[k+6>>0]=a[E+6>>0];a[k+7>>0]=a[E+7>>0];m=+h[k>>3];switch(j|0){case 0:{n=l;l=m;break}case 2:{n=l;l=-m;break}case 1:{n=-m;break}case 3:{n=m;break}default:{n=0.0;l=0.0}}E=~~(n+(n>=0.0?.5:-.5));D=~~(l+(l>=0.0?.5:-.5));C=c[e+16>>2]|0;B=C+16|0;a[k>>0]=a[B>>0];a[k+1>>0]=a[B+1>>0];a[k+2>>0]=a[B+2>>0];a[k+3>>0]=a[B+3>>0];a[k+4>>0]=a[B+4>>0];a[k+5>>0]=a[B+5>>0];a[k+6>>0]=a[B+6>>0];a[k+7>>0]=a[B+7>>0];l=+h[k>>3];C=C+24|0;a[k>>0]=a[C>>0];a[k+1>>0]=a[C+1>>0];a[k+2>>0]=a[C+2>>0];a[k+3>>0]=a[C+3>>0];a[k+4>>0]=a[C+4>>0];a[k+5>>0]=a[C+5>>0];a[k+6>>0]=a[C+6>>0];a[k+7>>0]=a[C+7>>0];m=+h[k>>3];switch(j|0){case 0:{n=l;l=m;break}case 2:{n=l;l=-m;break}case 1:{n=-m;break}case 3:{n=m;break}default:{n=0.0;l=0.0}}B=~~(n+(n>=0.0?.5:-.5));z=~~(l+(l>=0.0?.5:-.5));C=f+33|0;e=a[C>>0]|0;A=e&255;switch(e<<24>>24){case 0:case 15:{j=0;break}default:{e=c[f+24>>2]|0;if(!e){y=(c[(c[(gl(d)|0)+16>>2]|0)+116>>2]&1|0)==0;x=c[p>>2]|0;H=+h[x+80>>3]*.5;G=-H;n=+h[x+88>>3];m=-n;o=y?m:G;l=y?n:H;n=y?H:n;m=y?G:m}else{o=+h[e>>3];l=+h[e+16>>3];n=+h[e+24>>3];m=+h[e+8>>3]}x=~~m;y=~~((o+l)*.5);w=~~l;v=~~((m+n)*.5);u=~~n;s=~~o;t=0;r=0;q=0;p=0;e=0;while(1){if(1<<t&A){switch(t|0){case 0:{j=y;p=x;break}case 1:{j=w;p=v;break}case 2:{j=y;p=u;break}case 3:{j=s;p=v;break}default:j=q}q=j+E|0;p=p+D|0;I=q-B|0;j=p-z|0;j=(_(I,I)|0)+(_(j,j)|0)|0;if((e|0)==0|(j|0)<(r|0))e=c[55268+(t<<2)>>2]|0;else j=r}else j=r;t=t+1|0;if((t|0)==4)break;else r=j}j=e;e=a[C>>0]|0}}c[g+36>>2]=c[f+36>>2];tr(d,c[f+24>>2]|0,g,j,e&255,0)|0;e=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(e|0));i=F;return}function pr(){c[13821]=0;c[13822]=0;c[13823]=0;return}function qr(b){b=b|0;var d=0,e=0.0,f=0.0,g=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,P=0,S=0,T=0.0,U=0.0,V=0.0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0.0;ba=i;i=i+128|0;F=ba+96|0;G=ba+88|0;C=ba+80|0;D=ba+72|0;k=ba+64|0;Z=ba+48|0;S=ba+40|0;P=ba+32|0;n=ba+24|0;p=ba+16|0;B=ba+120|0;q=ba+112|0;E=ba;aa=$p(48)|0;$=b+16|0;X=c[(c[(c[$>>2]|0)+8>>2]|0)+8>>2]|0;j=(X|0)==34088;Y=c[X>>2]|0;d=c[X+4>>2]|0;g=c[X+8>>2]|0;l=+h[X+16>>3];o=+h[X+32>>3];m=+h[X+24>>3];Y=(Ls(zj(b,129987)|0)|0)&255|Y;do if(!j){if(!Y){X=c[$>>2]|0;s=+h[X+32>>3]*72.0;e=+h[X+40>>3]*72.0;e=+(~~(e+(e>=0.0?.5:-.5))|0);s=+(~~(s+(s>=0.0?.5:-.5))|0);break}V=+Hs(b,c[13377]|0,0.0,.01);f=+Hs(b,c[13376]|0,0.0,.02);f=(V>f?V:f)*72.0;X=~~(f+(f>=0.0?.5:-.5));f=+(X|0);if((X|0)>0){e=f;s=f}else{X=c[$>>2]|0;e=+h[X+32>>3];s=+h[X+40>>3];s=(e<s?e:s)*72.0;s=+(~~(s+(s>=0.0?.5:-.5))|0);e=s}}else{e=0.0;s=0.0}while(0);X=Gs(b,c[13399]|0,d,0)|0;V=l+ +Hs(b,c[13401]|0,0.0,-360.0);if(!g){T=+Hs(b,c[13402]|0,0.0,-100.0);g=Gs(b,c[13398]|0,4,0)|0;U=+Hs(b,c[13403]|0,0.0,-100.0)}else{U=m;T=o}d=c[(c[$>>2]|0)+104>>2]|0;r=+h[d+24>>3];l=+h[d+32>>3];if(r>0.0)if(j)m=r;else H=11;else if(j|!(l>0.0))m=r;else H=11;do if((H|0)==11){d=zj(b,129972)|0;if(!d){m=r+16.0;l=l+8.0;break}h[p>>3]=0.0;h[n>>3]=0.0;c[k>>2]=n;c[k+4>>2]=p;d=Pz(d,129979,k)|0;f=+h[n>>3];if(f<0.0){h[n>>3]=0.0;f=0.0}m=+h[p>>3];if(m<0.0){h[p>>3]=0.0;m=0.0}if((d|0)<=0){m=r+16.0;l=l+8.0;break}o=f*72.0;o=+(~~(o+(o>=0.0?.5:-.5))<<1|0);f=r+o;if((d|0)>1){M=m*72.0;m=f;l=l+ +(~~(M+(M>=0.0?.5:-.5))<<1|0);break}else{m=f;l=l+o;break}}while(0);r=m-+h[(c[(c[$>>2]|0)+104>>2]|0)+24>>3];f=+h[c[(c[(gl(b)|0)+16>>2]|0)+8>>2]>>3];if(f>0.0){L=f*72.0;L=+(~~(L+(L>=0.0?.5:-.5))|0);n=~~(m/L);p=~~(l/L);M=L*+((L*+(n|0)+1.0e-05<m&1)+n|0);L=L*+((L*+(p|0)+1.0e-05<l&1)+p|0)}else{M=m;L=l}d=c[(c[$>>2]|0)+8>>2]|0;do if(!(a[d+12>>0]|0)){d=zj(b,132729)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){zn(q,gl(b)|0,d);j=c[q>>2]|0;k=c[q+4>>2]|0;if((k&j|0)==-1){j=ok(b)|0;c[C>>2]=d;c[C+4>>2]=j;dj(0,130046,C)|0;j=0;d=0;break}else{a[(c[(gl(b)|0)+16>>2]|0)+114>>0]=1;j=j+2|0;d=k+2|0;break}}else{j=0;d=0}}else{d=c[d>>2]|0;if((a[d>>0]|0)==99?(lA(d,129113)|0)==0:0){d=zj(b,129098)|0;zn(B,gl(b)|0,d);j=c[B>>2]|0;k=c[B+4>>2]|0;if((k&j|0)==-1){j=ok(b)|0;c[D>>2]=(d|0)!=0?d:129995;c[D+4>>2]=j;dj(0,130001,D)|0;j=0;d=0;break}else{a[(c[(gl(b)|0)+16>>2]|0)+114>>0]=1;j=j+2|0;d=k+2|0;break}}else{j=0;d=0}}while(0);o=+(j|0);h[Z>>3]=M>o?M:o;o=+(d|0);C=Z+8|0;h[C>>3]=L>o?L:o;if((g|0)<3)g=U!=0.0|T!=0.0?120:g;d=zj(b,130087)|0;a:do if(!d)H=40;else{d=a[d>>0]|0;switch(d<<24>>24){case 98:case 116:break;default:{H=40;break a}}j=c[$>>2]|0;a[(c[j+104>>2]|0)+80>>0]=d}while(0);if((H|0)==40){j=c[$>>2]|0;a[(c[j+104>>2]|0)+80>>0]=99;d=99}if((g|0)==4?T==0.0&(U==0.0?((~~(V+(V>=0.0?.5:-.5))|0)%90|0|0)==0:0):0)k=1;else H=43;do if((H|0)==43){j=c[(c[(c[j+8>>2]|0)+8>>2]|0)+44>>2]|0;if(j){k=c[j>>2]|0;c[F>>2]=c[Z>>2];c[F+4>>2]=c[Z+4>>2];c[F+8>>2]=c[Z+8>>2];c[F+12>>2]=c[Z+12>>2];Bb[k&31](E,F);c[Z>>2]=c[E>>2];c[Z+4>>2]=c[E+4>>2];c[Z+8>>2]=c[E+8>>2];c[Z+12>>2]=c[E+12>>2];k=0;break}f=+h[C>>3];l=f*1.4142135623730951;if(e>l&d<<24>>24==99){m=f/e;m=+O(+(1.0/(1.0-m*m)));m=m*+h[Z>>3];h[Z>>3]=m}else{m=+h[Z>>3]*1.4142135623730951;h[Z>>3]=m;h[C>>3]=l;f=l}if((g|0)>2){A=+Q(+(3.141592653589793/+(g|0)));h[Z>>3]=m/A;h[C>>3]=f/A;k=0}else k=0}while(0);l=+h[C>>3];d=Is(b,c[13404]|0,160740)|0;if((a[d>>0]|0)==115?(lA(d,130096)|0)==0:0){h[Z>>3]=s;h[C>>3]=e;G=aa+40|0;c[G>>2]=c[G>>2]|2048;f=s}else H=53;do if((H|0)==53){if(!((Ls(d)|0)<<24>>24)){f=+h[Z>>3];f=s>f?s:f;h[Z>>3]=f;A=+h[C>>3];e=e>A?e:A;h[C>>3]=e;break}H=c[(c[$>>2]|0)+104>>2]|0;if(!(!(s<+h[H+24>>3])?!(e<+h[H+32>>3]):0)){F=ok(b)|0;H=ok(gl(b)|0)|0;c[G>>2]=F;c[G+4>>2]=H;dj(0,130102,G)|0}h[Z>>3]=s;h[C>>3]=e;f=s}while(0);if(!Y){A=e;z=f}else{z=+h[C>>3];z=f>z?f:z;h[C>>3]=z;h[Z>>3]=z;A=z}do if(!((Ls(Is(b,c[13395]|0,160740)|0)|0)<<24>>24)){if(k){y=+h[Z>>3];d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=(M>y?M:y)-r;break}e=+h[C>>3];if(L<e){y=+h[Z>>3]*+O(+(1.0-L*L/(e*e)));d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=(M>y?M:y)-r;break}else{d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=M-r;break}}else{d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=M-r}while(0);B=aa+40|0;if(!(c[B>>2]&2048)){y=+h[C>>3]-l;h[d+48>>3]=L+(L<o?o-L+y:y)}d=(X|0)<1?1:X;if((g|0)<3){d=$p(d<<5)|0;f=+h[Z>>3]*.5;e=+h[C>>3]*.5;h[d>>3]=-f;h[d+8>>3]=-e;h[d+16>>3]=f;h[d+24>>3]=e;if((X|0)>1){g=2;j=1;while(1){f=f+4.0;e=e+4.0;h[d+(g<<4)>>3]=-f;h[d+(g<<4)+8>>3]=-e;S=g|1;h[d+(S<<4)>>3]=f;h[d+(S<<4)+8>>3]=e;j=j+1|0;if((j|0)==(X|0))break;else g=g+2|0}h[Z>>3]=f*2.0;h[C>>3]=e*2.0;g=2}else g=2}else{d=$p(_(d<<4,g)|0)|0;j=c[(c[(c[(c[$>>2]|0)+8>>2]|0)+8>>2]|0)+44>>2]|0;b:do if(!j){o=6.283185307179586/+(g|0);t=o*.5;r=+R(+t);s=+Ky(+N(+U)+ +N(+T),1.0);t=U*1.4142135623730951/+Q(+t);u=T*.5;y=(o+-3.141592653589793)*.5;Py(y,S,P);v=V/180.0*3.141592653589793;w=+h[P>>3]*.5;x=+h[S>>3]*.5;y=y+(3.141592653589793-o)*.5;j=0;f=0.0;e=0.0;while(1){y=o+y;Py(y,S,P);w=w+r*+h[P>>3];x=x+r*+h[S>>3];l=u*x+w*(s+t*x);Py(v+ +W(+x,+l),S,P);l=+Ky(l,x);m=l*+h[P>>3]*+h[Z>>3];l=l*+h[S>>3]*+h[C>>3];ca=+N(+m);f=ca>f?ca:f;ca=+N(+l);e=ca>e?ca:e;h[d+(j<<4)>>3]=m;h[d+(j<<4)+8>>3]=l;j=j+1|0;if(k)break;if((j|0)>=(g|0))break b}ca=-m;h[d+16>>3]=ca;h[d+24>>3]=l;h[d+32>>3]=ca;ca=-l;h[d+40>>3]=ca;h[d+48>>3]=m;h[d+56>>3]=ca}else{Bb[c[j+4>>2]&31](d,Z);f=+h[Z>>3]*.5;e=+h[C>>3]*.5}while(0);y=f*2.0;f=e*2.0;e=z>y?z:y;h[Z>>3]=e;ca=A>f?A:f;h[C>>3]=ca;e=e/y;f=ca/f;q=(g|0)>0;if(q){j=0;do{H=d+(j<<4)|0;b=d+(j<<4)+8|0;ca=f*+h[b>>3];h[H>>3]=e*+h[H>>3];h[b>>3]=ca;j=j+1|0}while((j|0)!=(g|0))}if((X|0)>1?(I=g+-1|0,J=+h[d>>3],K=+h[d+8>>3],q):0){p=(X|0)==2;m=J;o=K;l=+W(+(K-+h[d+(I<<4)+8>>3]),+(J-+h[d+(I<<4)>>3]));k=0;do{n=k;k=k+1|0;I=(k|0)==(g|0)?0:k;K=m;m=+h[d+(I<<4)>>3];ca=o;o=+h[d+(I<<4)+8>>3];J=l;l=+W(+(o-ca),+(m-K));f=(J+3.141592653589793-l)*.5;e=4.0/+R(+f);Py(J-f,S,P);f=e*+h[S>>3];h[S>>3]=f;e=e*+h[P>>3];h[P>>3]=e;e=K+e;f=ca+f;I=g+n|0;h[d+(I<<4)>>3]=e;h[d+(I<<4)+8>>3]=f;if(!p){j=2;do{e=e+ +h[P>>3];f=f+ +h[S>>3];I=(_(j,g)|0)+n|0;h[d+(I<<4)>>3]=e;h[d+(I<<4)+8>>3]=f;j=j+1|0}while((j|0)!=(X|0))}}while((k|0)!=(g|0));if(q){j=_(g,X+-1|0)|0;e=+h[Z>>3];f=+h[C>>3];k=0;do{S=k+j|0;ca=+h[d+(S<<4)+8>>3];K=+N(+(+h[d+(S<<4)>>3]))*2.0;e=K>e?K:e;h[Z>>3]=e;ca=+N(+ca)*2.0;f=ca>f?ca:f;h[C>>3]=f;k=k+1|0}while((k|0)!=(g|0))}}}c[aa>>2]=Y;c[aa+4>>2]=X;c[aa+8>>2]=g;h[aa+16>>3]=V;h[aa+32>>3]=T;h[aa+24>>3]=U;c[aa+44>>2]=d;e=+h[Z>>3];if(!(c[B>>2]&2048)){d=c[$>>2]|0;h[d+32>>3]=e/72.0;h[d+40>>3]=+h[C>>3]/72.0}else{d=c[$>>2]|0;h[d+32>>3]=(M>e?M:e)/72.0;ca=+h[C>>3];h[d+40>>3]=(L>ca?L:ca)/72.0}c[d+12>>2]=aa;i=ba;return}function rr(a){a=a|0;var b=0,d=0,e=0.0,f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0;o=i;i=i+80|0;n=o+56|0;f=o+32|0;m=o+40|0;l=o+16|0;d=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]|0)>>>2&1^1;k=a+16|0;g=c[c[(c[k>>2]|0)+104>>2]>>2]|0;c[13880]=g;g=pA(g)|0;g=$p((g|0)>1?g+1|0:2)|0;b=Vr(a,d,1,g)|0;if(!b){c[f>>2]=c[c[(c[k>>2]|0)+104>>2]>>2];dj(1,129948,f)|0;c[13880]=129969;b=Vr(a,d,1,g)|0}pB(g);Wr(o,a,b);d=c[k>>2]|0;j=+h[d+32>>3]*72.0;j=+(~~(j+(j>=0.0?.5:-.5))|0);h[l>>3]=j;e=+h[d+40>>3]*72.0;e=+(~~(e+(e>=0.0?.5:-.5))|0);d=l+8|0;h[d>>3]=e;if(!((Ls(Is(a,c[13404]|0,160740)|0)|0)<<24>>24)){p=+h[b>>3];j=p>j?p:j;h[l>>3]=j;g=b+8|0;p=+h[g>>3];e=p>e?p:e;h[d>>3]=e;d=g}else d=b+8|0;a=(Ls(Is(a,c[13395]|0,160740)|0)|0)&255;c[n>>2]=c[l>>2];c[n+4>>2]=c[l+4>>2];c[n+8>>2]=c[l+8>>2];c[n+12>>2]=c[l+12>>2];Xr(b,n,a);h[m>>3]=j*-.5;h[m+8>>3]=e*.5;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];Yr(b,n,15);n=c[k>>2]|0;h[n+32>>3]=+h[b>>3]/72.0;h[n+40>>3]=(+h[d>>3]+1.0)/72.0;c[n+12>>2]=b;i=o;return}function sr(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0,i=0,j=0,k=0.0,l=0;i=$p(48)|0;j=a+16|0;d=c[(c[(c[(c[j>>2]|0)+8>>2]|0)+8>>2]|0)+4>>2]|0;b=+Hs(a,c[13377]|0,1797693134862315708145274.0e284,0.0);e=+Hs(a,c[13376]|0,1797693134862315708145274.0e284,0.0);b=b<e?b:e;if(e==1797693134862315708145274.0e284&b==1797693134862315708145274.0e284){g=c[j>>2]|0;h[g+40>>3]=.05;h[g+32>>3]=.05;b=3.6}else{b=b>0.0?(b>.0003?b:.0003):b;g=c[j>>2]|0;h[g+40>>3]=b;h[g+32>>3]=b;b=b*72.0}f=Gs(a,c[13399]|0,d,0)|0;g=$p((f|0)<1?32:f<<5)|0;e=b*.5;k=-e;h[g>>3]=k;h[g+8>>3]=k;h[g+16>>3]=e;h[g+24>>3]=e;if((f|0)>1){b=e;d=2;a=1;while(1){b=b+4.0;e=e+4.0;h[g+(d<<4)>>3]=-b;h[g+(d<<4)+8>>3]=-e;l=d|1;h[g+(l<<4)>>3]=b;h[g+(l<<4)+8>>3]=e;a=a+1|0;if((a|0)==(f|0))break;else d=d+2|0}b=b*2.0}c[i>>2]=1;c[i+4>>2]=f;c[i+8>>2]=2;l=i+16|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[i+44>>2]=g;k=b/72.0;l=c[j>>2]|0;h[l+32>>3]=k;h[l+40>>3]=k;c[l+12>>2]=i;return}function tr(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+176|0;C=F+160|0;D=F+144|0;n=F+128|0;o=F+112|0;p=F+96|0;q=F+80|0;s=F+64|0;u=F+48|0;v=F+32|0;w=F+16|0;B=F;if(!d){m=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;E=c[b+16>>2]|0;k=+h[E+80>>3]*.5;A=+h[E+88>>3];y=m?A:k;A=m?k:A;k=0.0;l=0.0;x=-y;z=A;A=-A;m=0}else{x=+h[d>>3];A=+h[d+8>>3];y=+h[d+16>>3];z=+h[d+24>>3];k=(x+y)*.5;l=(A+z)*.5;m=1}E=D+8|0;h[E>>3]=l;h[D>>3]=k;r=(y>z?y:z)*4.0;a:do if((f|0)!=0?(t=a[f>>0]|0,t<<24>>24!=0):0){f=f+1|0;switch(t<<24>>24|0){case 99:{o=1;p=0;f=0;n=0;g=0;k=0.0;break a}case 101:{if(a[f>>0]|0){o=1;p=0;f=0;n=1;g=0;k=0.0;break a}if(!j)h[D>>3]=y;else{ur(n,j,l,r);c[D>>2]=c[n>>2];c[D+4>>2]=c[n+4>>2];c[D+8>>2]=c[n+8>>2];c[D+12>>2]=c[n+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&2;k=0.0;break a}case 115:{h[E>>3]=A;switch(a[f>>0]|0){case 0:{if(!j)h[D>>3]=k;else{ur(o,j,-r,k);c[D>>2]=c[o>>2];c[D+4>>2]=c[o+4>>2];c[D+8>>2]=c[o+8>>2];c[D+12>>2]=c[o+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&1;k=-1.5707963267948966;break a}case 101:{if(!j)h[D>>3]=y;else{ur(p,j,-r,r);c[D>>2]=c[p>>2];c[D+4>>2]=c[p+4>>2];c[D+8>>2]=c[p+8>>2];c[D+12>>2]=c[p+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&3;k=-.7853981633974483;break a}case 119:{if(!j)h[D>>3]=x;else{A=-r;ur(q,j,A,A);c[D>>2]=c[q>>2];c[D+4>>2]=c[q+4>>2];c[D+8>>2]=c[q+8>>2];c[D+12>>2]=c[q+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&9;k=-2.356194490192345;break a}default:{h[E>>3]=l;o=1;p=0;f=0;n=1;g=0;k=0.0;break a}}}case 119:{if(a[f>>0]|0){o=1;p=0;f=0;n=1;g=0;k=0.0;break a}if(!j)h[D>>3]=x;else{ur(s,j,l,-r);c[D>>2]=c[s>>2];c[D+4>>2]=c[s+4>>2];c[D+8>>2]=c[s+8>>2];c[D+12>>2]=c[s+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&8;k=3.141592653589793;break a}case 110:{h[E>>3]=z;switch(a[f>>0]|0){case 0:{if(!j)h[D>>3]=k;else{ur(u,j,r,k);c[D>>2]=c[u>>2];c[D+4>>2]=c[u+4>>2];c[D+8>>2]=c[u+8>>2];c[D+12>>2]=c[u+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&4;k=1.5707963267948966;break a}case 101:{if(!j)h[D>>3]=y;else{ur(v,j,r,r);c[D>>2]=c[v>>2];c[D+4>>2]=c[v+4>>2];c[D+8>>2]=c[v+8>>2];c[D+12>>2]=c[v+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&6;k=.7853981633974483;break a}case 119:{if(!j)h[D>>3]=x;else{ur(w,j,r,-r);c[D>>2]=c[w>>2];c[D+4>>2]=c[w+4>>2];c[D+8>>2]=c[w+8>>2];c[D+12>>2]=c[w+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&12;k=2.356194490192345;break a}default:{h[E>>3]=l;o=1;p=0;f=0;n=1;g=0;k=0.0;break a}}}case 95:{o=1;p=0;f=1;n=0;k=0.0;break a}default:{o=1;p=0;f=0;n=1;g=0;k=0.0;break a}}}else{o=1;p=0;f=0;n=0;g=0;k=0.0}while(0);j=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&3)*90|0;c[C>>2]=c[D>>2];c[C+4>>2]=c[D+4>>2];c[C+8>>2]=c[D+8>>2];c[C+12>>2]=c[D+12>>2];Gp(B,C,j);c[D>>2]=c[B>>2];c[D+4>>2]=c[B+4>>2];c[D+8>>2]=c[B+8>>2];c[D+12>>2]=c[B+12>>2];if(!(f<<24>>24)){b:do switch(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&3|0){case 3:switch(g|0){case 4:{g=2;break b}case 1:{g=8;break b}case 8:{g=1;break b}case 2:{g=4;break b}default:break b}case 2:switch(g|0){case 4:{g=1;break b}case 1:{g=4;break b}default:break b}case 1:switch(g|0){case 4:{g=2;break b}case 1:{g=8;break b}case 8:{g=4;break b}case 2:{g=1;break b}default:break b}default:{}}while(0);a[e+33>>0]=g}else a[e+33>>0]=g;c[e+24>>2]=d;A=+h[D>>3];h[e>>3]=+(~~(A+(A>=0.0?.5:-.5))|0);A=+h[E>>3];h[e+8>>3]=+(~~(A+(A>=0.0?.5:-.5))|0);switch(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&3|0){case 3:{if(!(k==3.141592653589793))if(!(k==2.356194490192345))if(!(k==1.5707963267948966))if(!(k==0.0))if(!(k==-.7853981633974483)){if(k==-1.5707963267948966)k=3.141592653589793}else k=2.356194490192345;else k=1.5707963267948966;else k=0.0;else k=-.7853981633974483;else k=-1.5707963267948966;break}case 2:{k=-k;break}case 1:{k=k+-1.5707963267948966;break}default:{}}h[e+16>>3]=k;l=+h[D>>3];k=+h[E>>3];if(l==0.0&k==0.0)g=-128;else{A=+W(+k,+l)+4.71238898038469;g=~~((!(A>=6.283185307179586)?A:A+-6.283185307179586)*256.0/6.283185307179586)&255}a[e+32>>0]=g;a[e+29>>0]=p;a[e+28>>0]=m;a[e+30>>0]=o;a[e+31>>0]=f;i=F;return n|0}function ur(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+128|0;k=p+112|0;o=p+32|0;f=p+96|0;j=p+16|0;l=p;m=c[b>>2]|0;n=c[(c[(gl(m)|0)+16>>2]|0)+116>>2]&3;h[f>>3]=e;h[f+8>>3]=d;g=(n|0)!=0;if(g){c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];Gp(j,k,n*90|0);c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2]}j=o+16|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];j=o+48|0;q=o+32|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];Zr(b,c[(c[(c[(c[m+16>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0,o,1);if(g){c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];Hp(l,k,n*90|0);c[o>>2]=c[l>>2];c[o+4>>2]=c[l+4>>2];c[o+8>>2]=c[l+8>>2];c[o+12>>2]=c[l+12>>2]};c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];i=p;return}function vr(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[b>>3]/1.902113032590307;c=+h[b+8>>3]/1.1180339887498947;c=(d>c?d:c)*.9510565162951535*.8090169943749475/.29389262614623657;h[a>>3]=c*2.0*.9510565162951535;h[a+8>>3]=c*1.8090169943749475;return}function wr(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,i=0,j=0.0,k=0,l=0;d=+h[b>>3];k=b+8|0;e=+h[k>>3];c=e/d;if(!(c>.9510565162951536))if(c<.9510565162951536){j=d;e=d*.9510565162951536}else j=d;else j=e/.9510565162951536;g=j/1.902113032590307;d=g*.9510565162951535*.30901699437494745/.7694208842938134;f=g*.19098300562505266*.5;i=0;c=.3141592653589793;while(1){h[a+(i<<4)>>3]=g*+Q(+c);h[a+(i<<4)+8>>3]=g*+R(+c)-f;c=c+.6283185307179586;l=i|1;h[a+(l<<4)>>3]=d*+Q(+c);h[a+(l<<4)+8>>3]=d*+R(+c)-f;i=i+2|0;if((i|0)>=10)break;else c=c+.6283185307179586}h[b>>3]=j;h[k>>3]=e;return}function xr(a){a=a|0;a=c[(c[a+16>>2]|0)+12>>2]|0;if(a){pB(c[a+44>>2]|0);pB(a)}return}function yr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p+56|0;l=p+40|0;g=p;n=p+72|0;h=p+64|0;if(!(a[e>>0]|0)){g=36360;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}else{j=(f|0)==0?129796:f;c[n>>2]=15;k=d+16|0;f=c[k>>2]|0;do if(a[(c[f+104>>2]|0)+82>>0]|0){f=Vv(d,e,n)|0;if(!f){f=c[k>>2]|0;m=8;break}if(tr(d,f,g,j,c[n>>2]|0,0)|0){c[l>>2]=ok(d)|0;c[l+4>>2]=e;c[l+8>>2]=j;dj(0,129798,l)|0}}else m=8;while(0);if((m|0)==8){if((c[(c[f+8>>2]|0)+8>>2]|0)==33752)h=0;else{c[h>>2]=d;c[h+4>>2]=0}if(tr(d,0,g,e,c[n>>2]|0,h)|0){c[o>>2]=ok(d)|0;c[o+4>>2]=e;dj(0,129859,o)|0}}c[g+36>>2]=0;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}i=p;return}function zr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0;m=i;i=i+32|0;d=m+16|0;e=m;a:do if(a){f=c[a+4>>2]|0;a=c[a>>2]|0;n=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];Hp(e,d,n);l=+h[e>>3];k=+h[e+8>>3];if(f){if(!(+h[f>>3]<=l)){a=0;break}if(+h[f+8>>3]<=k?!(l<=+h[f+16>>3]):1){a=0;break}a=k<=+h[f+24>>3]&1;break}if((a|0)==(c[13823]|0))a=c[13864]|0;else{f=c[(c[a+16>>2]|0)+12>>2]|0;c[13865]=f;c[13866]=c[f+44>>2];n=c[f+8>>2]|0;c[13864]=n;f=_((c[f+4>>2]|0)+-1|0,n)|0;c[13867]=(f|0)<0?0:f;c[13823]=a;a=n}if((a|0)>0){b=c[13867]|0;d=c[13866]|0;g=+h[4543];j=+h[4544];e=0;f=0;while(1){n=b+e|0;o=+h[d+(n<<4)>>3];r=+h[d+(n<<4)+8>>3];n=((e+4|0)%(a|0)|0)+b|0;q=-(+h[d+(n<<4)+8>>3]-r);p=+h[d+(n<<4)>>3]-o;o=r*p+o*q;f=((k*p+l*q-o>=0.0^g*q+p*j-o>=0.0)&1)+f|0;e=e+2|0;if((f|0)==2){a=0;break a}if((e|0)>=(a|0)){a=1;break}}}else a=1}else{c[13823]=0;a=0}while(0);i=m;return a|0}function Ar(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;e=c[b+16>>2]|0;if((a[(c[e+104>>2]|0)+82>>0]|0)!=0?(a[e+145>>0]|0)!=0:0)g=Wv(b,d,0,f,g)|0;else g=0;return g|0}function Br(e,f){e=e|0;f=f|0;var j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;R=i;i=i+48|0;K=R+24|0;J=R+16|0;E=R+8|0;D=R;Q=R+32|0;n=R+28|0;O=c[e+16>>2]|0;P=O+208|0;j=c[P>>2]|0;if((j|0)==0?(b[O+260>>1]&1)==0:0)N=0;else if(!(c[e+152>>2]&4)){Mu(e,j,c[O+228>>2]|0,c[O+244>>2]|0,c[O+212>>2]|0);N=1}else N=1;L=f+16|0;j=c[L>>2]|0;r=c[j+12>>2]|0;I=c[r+44>>2]|0;M=c[r+8>>2]|0;r=c[r+4>>2]|0;if((c[13862]|0)<(M|0)){j=M+5|0;c[13862]=j;k=c[13863]|0;if(!k)j=aq(j<<4)|0;else j=cq(k,j<<4)|0;c[13863]=j;j=c[L>>2]|0}H=(c[j+104>>2]|0)+56|0;j=j+16|0;c[H>>2]=c[j>>2];c[H+4>>2]=c[j+4>>2];c[H+8>>2]=c[j+8>>2];c[H+12>>2]=c[j+12>>2];H=c[L>>2]|0;F=+h[H+32>>3]*72.0;F=(+h[H+88>>3]+ +h[H+96>>3])/+(~~(F+(F>=0.0?.5:-.5))|0);G=+h[H+40>>3]*72.0;G=+h[H+80>>3]/+(~~(G+(G>=0.0?.5:-.5))|0);H=Cr(e,f)|0;c[Q>>2]=0;j=d[(c[L>>2]|0)+117>>0]|0;do if(!(j&1)){if(j&2){B=Js(f,c[13383]|0,129696)|0;Ru(e,B);Su(e,Js(f,c[13384]|0,129704)|0);k=0;j=1;break}if(j&8){B=Js(f,c[13387]|0,129712)|0;Ru(e,B);Su(e,Js(f,c[13388]|0,129720)|0);k=0;j=1;break}if(j&4){B=Js(f,c[13385]|0,129728)|0;Ru(e,B);Su(e,Js(f,c[13386]|0,129736)|0);k=0;j=1;break}do if(!(H&1))if(!(H&576)){k=0;j=0}else{k=Dr(f,158256)|0;j=1}else{k=Dr(f,158256)|0;if(!((cp(k,Q,n)|0)<<24>>24)){Su(e,k);j=1;break}Su(e,c[Q>>2]|0);j=c[Q+4>>2]|0;l=Gs(f,c[13412]|0,0,0)|0;m=+g[n>>2];if(!j)Tu(e,160746,l,m);else Tu(e,j,l,m);j=(H&2)>>>1|2}while(0);B=Js(f,c[13379]|0,164137)|0;B=(a[B>>0]|0)!=0?B:160746;Ru(e,B)}else{B=Js(f,c[13381]|0,129680)|0;Ru(e,B);Su(e,Js(f,c[13382]|0,129688)|0);k=0;j=1}while(0);l=c[(c[L>>2]|0)+8>>2]|0;if(a[l+12>>0]|0){l=c[l>>2]|0;if((a[l>>0]|0)==99){l=(lA(l,129113)|0)==0;C=31}else{l=1;C=33}}else{l=1;C=31}if((C|0)==31){l=l^1;if((r|0)!=0|j<<24>>24==0|l)C=33;else{Ru(e,161276);l=0;r=1;C=34}}if((C|0)==33)if((r|0)>0)C=34;else{s=l;r=0}if((C|0)==34){u=(M|0)>0;v=(M|0)<3;w=(H&512|0)!=0;x=(H&8|0)==0;y=(H&64|0)==0;z=(H&1024|0)==0;A=(H&2130706444|0)==0;t=0;while(1){if(u){o=_(t,M)|0;q=c[L>>2]|0;n=c[13863]|0;p=q+16|0;q=q+24|0;s=0;do{S=s+o|0;m=+h[I+(S<<4)+8>>3];h[n+(s<<4)>>3]=F*+h[I+(S<<4)>>3]+ +h[p>>3];h[n+(s<<4)+8>>3]=G*m+ +h[q>>3];s=s+1|0}while((s|0)!=(M|0))}do if(v){if(w&(t|0)==0?(jA(k,58)|0)!=0:0)if((Xo(e,c[13863]|0,k)|0)>1){c[D>>2]=ok(f)|0;dj(3,129744,D)|0;j=0}else j=0;Vu(e,c[13863]|0,M,j&255);if(!x)Er(e,f)}else{if(!y){if((t|0)==0?(Yo(e,c[13863]|0,k,1)|0)>1:0){c[E>>2]=ok(f)|0;dj(3,129744,E)|0}Wu(e,c[13863]|0,M,0);break}if(!z){Ru(e,161276);Wu(e,c[13863]|0,M,j&255);Ru(e,B);Zu(e,(c[13863]|0)+32|0,2);break}n=c[13863]|0;j=j&255;if(A){Wu(e,n,M,j);break}else{jr(e,n,M,H,j);break}}while(0);t=t+1|0;if((t|0)==(r|0)){s=l;j=0;break}else j=0}}l=c[(c[L>>2]|0)+8>>2]|0;if(!(a[l+12>>0]|0)){l=zj(f,132729)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){q=l;C=63}}else{l=c[l>>2]|0;if((a[l>>0]|0)==99?(lA(l,129113)|0)==0:0){l=zj(f,129098)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){q=l;C=63}}else{q=l;C=63}}if((C|0)==63){if((M|0)>0){o=c[L>>2]|0;l=c[13863]|0;n=o+16|0;o=o+24|0;p=0;do{m=+h[I+(p<<4)+8>>3];h[l+(p<<4)>>3]=F*+h[I+(p<<4)>>3]+ +h[n>>3];h[l+(p<<4)+8>>3]=G*m+ +h[o>>3];p=p+1|0}while((p|0)!=(M|0))}l=j&255;do if(!(s|j<<24>>24==0)){if((M|0)<3){if((H&512|0)!=0&(r|0)==0?(jA(k,58)|0)!=0:0)if((Xo(e,c[13863]|0,k)|0)>1){c[J>>2]=ok(f)|0;dj(3,129744,J)|0;j=0}else j=0;Vu(e,c[13863]|0,M,j&255);if(!(H&8))break;Er(e,f);break}if(!(H&64)){k=c[13863]|0;if(!(H&12)){Wu(e,k,M,l);break}else{jr(e,k,M,H,l);break}}else{if((Yo(e,c[13863]|0,k,1)|0)>1){c[K>>2]=ok(f)|0;dj(3,129744,K)|0}Wu(e,c[13863]|0,M,0);break}}while(0);S=c[13863]|0;$u(e,q,S,M,j,Is(f,c[13405]|0,160740)|0)}pB(c[Q>>2]|0);Tp(e,10,c[(c[L>>2]|0)+104>>2]|0);if(N){if(c[e+152>>2]&4)Mu(e,c[P>>2]|0,c[O+228>>2]|0,c[O+244>>2]|0,c[O+212>>2]|0);Nu(e)}i=R;return}function Cr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;e=Fr(d,g)|0;if(e)Uu(b,e);e=c[13411]|0;if(((e|0)!=0?(f=Aj(d,e)|0,(f|0)!=0):0)?(a[f>>0]|0)!=0:0)av(b,+Hs(d,c[13411]|0,1.0,0.0));i=h;return c[g>>2]|0}function Dr(b,d){b=b|0;d=d|0;var e=0;e=Js(b,c[13380]|0,164137)|0;if(!(a[e>>0]|0)){b=Js(b,c[13379]|0,164137)|0;return ((a[b>>0]|0)==0?d:b)|0}else return e|0;return 0}function Er(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0,l=0.0,m=0.0,n=0.0;e=i;i=i+32|0;f=e;j=c[d+16>>2]|0;g=+h[j+80>>3]*.75*.5;l=+h[j+96>>3]*.6614;d=j+16|0;a[k>>0]=a[d>>0];a[k+1>>0]=a[d+1>>0];a[k+2>>0]=a[d+2>>0];a[k+3>>0]=a[d+3>>0];a[k+4>>0]=a[d+4>>0];a[k+5>>0]=a[d+5>>0];a[k+6>>0]=a[d+6>>0];a[k+7>>0]=a[d+7>>0];m=+h[k>>3];j=j+24|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];m=l+m;n=g+ +h[k>>3];h[f>>3]=m;j=f+8|0;h[j>>3]=n;d=f+24|0;h[d>>3]=n;h[f+16>>3]=m-l*2.0;Zu(b,f,2);g=+h[j>>3]-g*2.0;h[j>>3]=g;h[d>>3]=g;Zu(b,f,2);i=e;return}function Fr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;e=Js(b,c[13396]|0,164137)|0;a:do if(a[e>>0]|0){g=dp(e)|0;e=c[g>>2]|0;if(!e)e=0;else{k=b+16|0;i=e;e=0;j=g;while(1){b:do switch(a[i>>0]|0){case 102:{if(!(lA(i,134460)|0)){e=e|1;f=j+4|0}else n=32;break}case 114:{if(!(lA(i,129756)|0)){f=j;do{o=f;f=f+4|0;i=c[f>>2]|0;c[o>>2]=i}while((i|0)!=0);e=e|4;f=j;break b}if(!(lA(i,129774)|0)){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|3;f=j}else n=32;break}case 100:{if(!(lA(i,129764)|0)){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|8;f=j}else n=32;break}case 105:{if(!(lA(i,157791)|0)){e=e|32;f=j+4|0}else n=32;break}case 115:{if((((((lA(i,129781)|0)==0?(l=c[(c[(c[k>>2]|0)+8>>2]|0)+8>>2]|0,(l|0)!=0):0)?(c[l+8>>2]|0)==4:0)?(p=+h[l+16>>3],((~~(p+(p>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[l+24>>3]==0.0:0)?+h[l+32>>3]==0.0:0){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|64;f=j}else n=32;break}case 119:{if(((lA(i,129789)|0)==0?(m=c[(c[(c[k>>2]|0)+8>>2]|0)+8>>2]|0,(m|0)!=0):0)?(c[m+8>>2]|0)<3:0){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|512;f=j}else n=32;break}default:n=32}while(0);if((n|0)==32){n=0;f=j+4|0}i=c[f>>2]|0;if(!i)break a;else j=f}}}else{e=0;g=0}while(0);f=c[(c[(c[b+16>>2]|0)+8>>2]|0)+8>>2]|0;if(f)e=c[f+40>>2]|e;c[d>>2]=e;return g|0}function Gr(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0.0,j=0,k=0,l=0;e=i;i=i+32|0;l=e+16|0;j=e;a=c[a>>2]|0;k=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];c[l+12>>2]=c[b+12>>2];Hp(j,l,k);d=+h[j>>3];g=+h[j+8>>3];a=c[a+16>>2]|0;f=+h[a+80>>3]*.5;if(!(!(g>=-f)|!(g<=f))?d>=-+h[a+88>>3]:0)a=d<=+h[a+96>>3]&1;else a=0;i=e;return a|0}function Hr(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;n=i;i=i+32|0;m=n;j=c[a+16>>2]|0;k=j+208|0;f=c[k>>2]|0;if(!f)l=(b[j+260>>1]&1)!=0;else l=1;g=d+16|0;d=c[g>>2]|0;e=c[d+12>>2]|0;if(e){if(l?(c[a+152>>2]&4|0)==0:0){Mu(a,f,c[j+228>>2]|0,c[j+244>>2]|0,c[j+212>>2]|0);d=c[g>>2]|0}f=c[a+36>>2]|0;p=+h[d+24>>3]+ +(c[e+8>>2]|0);o=c[e>>2]|0;h[m>>3]=+h[d+16>>3]+ +(c[e+4>>2]|0);h[m+8>>3]=p;c[m+16>>2]=o;Bz(f,129890,m)|0;f=c[g>>2]|0;m=(c[f+104>>2]|0)+56|0;f=f+16|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];Tp(a,10,c[(c[g>>2]|0)+104>>2]|0);if(l){if(c[a+152>>2]&4)Mu(a,c[k>>2]|0,c[j+228>>2]|0,c[j+244>>2]|0,c[j+212>>2]|0);Nu(a)}}i=n;return}function Ir(a){a=a|0;Pr(c[(c[a+16>>2]|0)+12>>2]|0);return}function Jr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+64|0;m=n+56|0;l=n+40|0;h=n;if(!(a[f>>0]|0)){h=36360;g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}else{g=(g|0)==0?129796:g;j=c[(c[e+16>>2]|0)+12>>2]|0;k=Or(j,f)|0;if(!k){if(tr(e,j+16|0,h,f,15,0)|0){c[m>>2]=ok(e)|0;c[m+4>>2]=f;dj(0,129859,m)|0}}else if(tr(e,k+16|0,h,g,d[k+65>>0]|0,0)|0){c[l>>2]=ok(e)|0;c[l+4>>2]=f;c[l+8>>2]=g;dj(0,129798,l)|0}g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}i=n;return}function Kr(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0.0;l=i;i=i+32|0;m=l+16|0;j=l;f=c[a+4>>2]|0;a=c[a>>2]|0;g=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];Hp(j,m,g);c[b>>2]=c[j>>2];c[b+4>>2]=c[j+4>>2];c[b+8>>2]=c[j+8>>2];c[b+12>>2]=c[j+12>>2];if(!f){f=c[(c[a+16>>2]|0)+12>>2]|0;g=f+16|0;a=f+24|0;j=f+32|0;f=f+40|0}else{g=f;a=f+8|0;j=f+16|0;f=f+24|0}e=+h[a>>3];d=+h[f>>3];n=+h[b>>3];if((+h[g>>3]<=n?n<=+h[j>>3]:0)?(k=+h[b+8>>3],e<=k):0)a=k<=d&1;else a=0;i=l;return a|0}function Lr(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=i;i=i+80|0;s=u+64|0;r=u+32|0;t=u;a:do if(a[d+28>>0]|0){n=+h[d>>3];q=b+16|0;d=c[(c[q>>2]|0)+12>>2]|0;o=d+48|0;if((c[o>>2]|0)>0){p=d+56|0;d=0;while(1){l=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;m=c[(c[p>>2]|0)+(d<<2)>>2]|0;k=+(~~+h[(l?m+16|0:m+24|0)>>3]|0);if(k<=n?(j=+(~~+h[(l?m+32|0:m+40|0)>>3]|0),n<=j):0)break;d=d+1|0;if((d|0)>=(c[o>>2]|0))break a}if(!(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1)){b=c[q>>2]|0;v=+h[b+16>>3];h[f>>3]=k+v;k=+h[b+24>>3];n=+h[b+80>>3];h[f+8>>3]=k-n*.5;h[f+16>>3]=j+v;j=n}else{p=(c[(c[p>>2]|0)+(d<<2)>>2]|0)+16|0;b=(c[q>>2]|0)+16|0;c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];c[r+16>>2]=c[p+16>>2];c[r+20>>2]=c[p+20>>2];c[r+24>>2]=c[p+24>>2];c[r+28>>2]=c[p+28>>2];c[s>>2]=c[b>>2];c[s+4>>2]=c[b+4>>2];c[s+8>>2]=c[b+8>>2];c[s+12>>2]=c[b+12>>2];Ip(t,r,s);c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[f+16>>2]=c[t+16>>2];c[f+20>>2]=c[t+20>>2];c[f+24>>2]=c[t+24>>2];c[f+28>>2]=c[t+28>>2];b=c[q>>2]|0;j=+h[b+80>>3];k=+h[b+24>>3]}h[f+24>>3]=k+j*.5;c[g>>2]=1}}else e=0;while(0);i=u;return e|0}function Mr(d,e){d=d|0;e=e|0;var f=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=i;i=i+144|0;s=x+96|0;r=x;q=x+32|0;t=x+136|0;m=x+128|0;u=c[d+16>>2]|0;v=u+208|0;if(!(c[v>>2]|0))w=(b[u+260>>1]&1)!=0;else w=1;n=e+16|0;p=c[n>>2]|0;o=c[p+12>>2]|0;l=o+16|0;c[r>>2]=c[l>>2];c[r+4>>2]=c[l+4>>2];c[r+8>>2]=c[l+8>>2];c[r+12>>2]=c[l+12>>2];c[r+16>>2]=c[l+16>>2];c[r+20>>2]=c[l+20>>2];c[r+24>>2]=c[l+24>>2];c[r+28>>2]=c[l+28>>2];y=+h[p+16>>3];h[r>>3]=y+ +h[r>>3];k=+h[p+24>>3];p=r+8|0;h[p>>3]=k+ +h[p>>3];p=r+16|0;h[p>>3]=y+ +h[p>>3];l=r+24|0;h[l>>3]=k+ +h[l>>3];if(w?(c[d+152>>2]&4|0)==0:0)Mu(d,c[v>>2]|0,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);f=Cr(d,e)|0;l=Js(e,c[13379]|0,164137)|0;Ru(d,(a[l>>0]|0)!=0?l:160746);c[t>>2]=0;do if(!(f&1))l=0;else{j=Dr(e,158256)|0;if(!((cp(j,t,m)|0)<<24>>24)){Su(d,j);l=1;break}Su(d,c[t>>2]|0);j=c[t+4>>2]|0;l=Gs(e,c[13412]|0,0,0)|0;k=+g[m>>2];if(!j)Tu(d,160746,l,k);else Tu(d,j,l,k);l=f>>>1&1|2}while(0);j=c[c[(c[n>>2]|0)+8>>2]>>2]|0;if((a[j>>0]|0)==77){n=(lA(j,129667)|0)==0;f=n?f|4:f}if(!(f&2130706444)){c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];c[s+16>>2]=c[r+16>>2];c[s+20>>2]=c[r+20>>2];c[s+24>>2]=c[r+24>>2];c[s+28>>2]=c[r+28>>2];Xu(d,s,l)}else{c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];s=q+32|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2];h[q+16>>3]=+h[s>>3];h[q+24>>3]=+h[q+8>>3];h[q+48>>3]=+h[q>>3];h[q+56>>3]=+h[q+40>>3];jr(d,q,4,f,l)}Nr(d,e,o);f=c[t>>2]|0;if(f)pB(f);if(w){if(c[d+152>>2]&4)Mu(d,c[v>>2]|0,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);Nu(d)}i=x;return}function Nr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+32|0;x=y;f=e+52|0;g=c[f>>2]|0;if(!g)f=d+16|0;else{w=e+32|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];m=+h[k>>3];w=e+40|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];t=+h[k>>3];w=e+16|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];n=+h[k>>3];w=e+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];t=(t+ +h[k>>3])*.5;w=d+16|0;v=c[w>>2]|0;u=v+16|0;a[k>>0]=a[u>>0];a[k+1>>0]=a[u+1>>0];a[k+2>>0]=a[u+2>>0];a[k+3>>0]=a[u+3>>0];a[k+4>>0]=a[u+4>>0];a[k+5>>0]=a[u+5>>0];a[k+6>>0]=a[u+6>>0];a[k+7>>0]=a[u+7>>0];s=+h[k>>3];v=v+24|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];t=t+ +h[k>>3];h[g+56>>3]=(m+n)*.5+s;h[g+64>>3]=t;Tp(b,10,c[f>>2]|0);f=Js(d,c[13379]|0,164137)|0;Ru(b,(a[f>>0]|0)!=0?f:160746);f=w}u=c[f>>2]|0;s=+h[u+16>>3];t=+h[u+24>>3];u=e+48|0;if((c[u>>2]|0)>0){v=e+64|0;w=x+16|0;e=e+56|0;o=x+24|0;p=x+8|0;q=x+16|0;r=0;do{if((r|0)>0){f=(c[e>>2]|0)+(r<<2)|0;g=c[f>>2]|0;if(!(a[v>>0]|0)){g=g+32|0;c[w>>2]=c[g>>2];c[w+4>>2]=c[g+4>>2];c[w+8>>2]=c[g+8>>2];c[w+12>>2]=c[g+12>>2];j=+h[(c[f>>2]|0)+16>>3];h[x>>3]=j;n=+h[o>>3];h[p>>3]=n;l=n;m=+h[q>>3]}else{g=g+16|0;c[x>>2]=c[g>>2];c[x+4>>2]=c[g+4>>2];c[x+8>>2]=c[g+8>>2];c[x+12>>2]=c[g+12>>2];m=+h[x>>3];h[q>>3]=m;n=+h[(c[f>>2]|0)+40>>3];h[o>>3]=n;j=m;l=+h[p>>3]}h[x>>3]=s+j;h[p>>3]=t+l;h[q>>3]=s+m;h[o>>3]=t+n;Zu(b,x,2)}Nr(b,d,c[(c[e>>2]|0)+(r<<2)>>2]|0);r=r+1|0}while((r|0)<(c[u>>2]|0))}i=y;return}function Or(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[b+60>>2]|0;if(!(((e|0)!=0?(a[e>>0]|0)==(a[d>>0]|0):0)?(lA(e,d)|0)==0:0))f=4;a:do if((f|0)==4){g=c[b+48>>2]|0;if((g|0)>0){e=c[b+56>>2]|0;f=0;while(1){b=Or(c[e+(f<<2)>>2]|0,d)|0;f=f+1|0;if(b)break a;if((f|0)>=(g|0)){b=0;break}}}else b=0}while(0);return b|0}function Pr(a){a=a|0;var b=0,d=0,e=0;b=a+48|0;d=a+56|0;if((c[b>>2]|0)>0){e=0;do{Pr(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)<(c[b>>2]|0))}pB(c[a+60>>2]|0);Sp(c[a+52>>2]|0);pB(c[d>>2]|0);pB(a);return}function Qr(a,b){a=a|0;b=b|0;var d=0;d=b+8|0;h[d>>3]=+h[d>>3]*1.375;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function Rr(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;f=+h[b>>3]*.5;m=+h[b+8>>3];i=m*.5;m=m/11.0;h[a>>3]=f;e=i-m;h[a+8>>3]=e;h[a+16>>3]=f;g=i-m*.44821599999999995;h[a+24>>3]=g;j=f*.551784;h[a+32>>3]=j;h[a+40>>3]=i;h[a+48>>3]=0.0;h[a+56>>3]=i;k=f*-.551784;h[a+64>>3]=k;h[a+72>>3]=i;l=-f;h[a+80>>3]=l;h[a+88>>3]=g;d=a+96|0;h[d>>3]=l;h[a+104>>3]=e;b=a+112|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+128|0;h[b>>3]=l;h[a+136>>3]=m-i;d=a+144|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];h[a+160>>3]=l;g=-g;h[a+168>>3]=g;h[a+176>>3]=k;i=-i;h[a+184>>3]=i;h[a+192>>3]=0.0;h[a+200>>3]=i;h[a+208>>3]=j;h[a+216>>3]=i;h[a+224>>3]=f;h[a+232>>3]=g;d=a+240|0;h[d>>3]=f;h[a+248>>3]=-e;b=a+256|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+288|0;d=a+272|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];return}function Sr(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0,x=0.0,y=0.0,z=0,A=0;w=i;i=i+64|0;j=w+48|0;l=w+32|0;p=w;do if(b){m=c[b+4>>2]|0;r=c[b>>2]|0;t=(c[(c[(gl(r)|0)+16>>2]|0)+116>>2]&3)*90|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];Hp(l,j,t);q=+h[l>>3];s=+h[l+8>>3];if(m){if(!(+h[m>>3]<=q)){b=0;break}if(+h[m+8>>3]<=s?!(q<=+h[m+16>>3]):1){b=0;break}b=s<=+h[m+24>>3]&1;break}if((r|0)==(c[13821]|0)){e=+h[4550];f=+h[4551];g=+h[4552]}else{b=r+16|0;d=c[(c[b>>2]|0)+12>>2]|0;c[13870]=d;c[13871]=c[d+44>>2];c[13872]=c[d+8>>2];do if(c[d+40>>2]&2048){Zs(p,d);n=+h[p+16>>3]-+h[p>>3];g=+h[p+24>>3]-+h[p+8>>3];if(!(c[(c[(gl(r)|0)+16>>2]|0)+116>>2]&1)){h[4554]=n;h[4553]=g;f=n;e=g;o=g;g=n;break}else{h[4553]=n;h[4554]=g;f=g;e=n;o=g;g=n;break}}else{t=(c[(c[(gl(r)|0)+16>>2]|0)+116>>2]&1|0)==0;b=c[b>>2]|0;e=+h[b+88>>3]+ +h[b+96>>3];if(t){h[4554]=e;u=+h[b+80>>3];h[4553]=u;f=e;e=u}else{h[4553]=e;f=+h[b+80>>3];h[4554]=f}g=+h[b+32>>3]*72.0;o=+h[b+40>>3]*72.0;o=+(~~(o+(o>=0.0?.5:-.5))|0);g=+(~~(g+(g>=0.0?.5:-.5))|0)}while(0);if(f==0.0){h[4554]=1.0;f=1.0}if(e==0.0){h[4553]=1.0;e=1.0}u=g/f;h[4550]=u;f=o/e;h[4551]=f;g=g*.5;h[4552]=g;h[4555]=o*.5;t=_((c[(c[13870]|0)+4>>2]|0)+-1|0,c[13872]|0)|0;c[13873]=(t|0)<0?0:t;c[13821]=r;e=u}u=q*e;s=s*f;if(!(+N(+u)>g)?(q=+N(+s),v=+h[4555],!(q>v)):0){t=c[13872]|0;if((t|0)<3){b=+Ky(u/g,s/v)<1.0&1;break}b=(c[13874]|0)%(t|0)|0;d=(b+1|0)%(t|0)|0;m=c[13873]|0;r=m+b|0;p=c[13871]|0;e=+h[p+(r<<4)>>3];f=+h[p+(r<<4)+8>>3];r=m+d|0;g=+h[p+(r<<4)>>3];n=+h[p+(r<<4)+8>>3];y=-(n-f);x=g-e;v=f*x+e*y;o=+h[4556];q=+h[4557];if(!(s*x+u*y-v>=0.0^o*y+x*q-v>=0.0)){x=-(q-n);v=o-g;y=n*v+g*x;r=s*v+u*x-y>=0.0^f*v+e*x-y>=0.0;if(!r?(x=-(f-q),v=e-o,y=q*v+o*x,!(s*v+u*x-y>=0.0^n*v+g*x-y>=0.0)):0){b=1;break}else{l=b;j=1}while(1){if(r){b=(l+-1+t|0)%(t|0)|0;d=l}else{b=d;d=(d+1|0)%(t|0)|0}l=m+b|0;z=m+d|0;A=p+(z<<4)|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];x=+h[k>>3];z=p+(z<<4)+8|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=p+(l<<4)|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];y=+h[k>>3];l=p+(l<<4)+8|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];n=+h[k>>3];v=-(v-n);x=x-y;y=n*x+y*v;j=j+1|0;if(s*x+u*v-y>=0.0^o*v+x*q-y>=0.0){d=34;break}if((j|0)>=(t|0)){d=35;break}else l=b}if((d|0)==34){c[13874]=b;b=0;break}else if((d|0)==35){c[13874]=b;b=1;break}}else b=0}else b=0}else{c[13821]=0;b=0}while(0);i=w;return b|0}function Tr(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;g=k+16|0;j=k;if(a){a=c[a>>2]|0;l=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];Hp(j,g,l);f=+h[j>>3];e=+h[j+8>>3];if((a|0)==(c[13822]|0))d=+h[4558];else{j=c[(c[a+16>>2]|0)+12>>2]|0;l=(c[j+4>>2]<<1)+-2|0;d=+h[(c[j+44>>2]|0)+(((l|0)<0?1:l|1)<<4)>>3];h[4558]=d;c[13822]=a}if(!(+N(+f)>d)?!(+N(+e)>d):0)a=+Ky(f,e)<=d&1;else a=0}else{c[13822]=0;a=0}i=k;return a|0}function Ur(e,f){e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;w=i;i=i+16|0;k=w;u=c[e+16>>2]|0;v=u+208|0;g=c[v>>2]|0;if((g|0)==0?(b[u+260>>1]&1)==0:0)q=0;else if(!(c[e+152>>2]&4)){Mu(e,g,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);q=1}else q=1;r=f+16|0;l=c[(c[r>>2]|0)+12>>2]|0;s=c[l+44>>2]|0;t=c[l+8>>2]|0;l=c[l+4>>2]|0;if((c[13875]|0)<(t|0)){g=t+2|0;c[13875]=g;j=c[13876]|0;if(!j)g=aq(g<<4)|0;else g=cq(j,g<<4)|0;c[13876]=g}Fr(f,k)|0;if(!(c[k>>2]&32))Uu(e,55512);else Uu(e,55508);g=c[13411]|0;if(g)av(e,+Hs(f,g,1.0,0.0));g=d[(c[r>>2]|0)+117>>0]|0;do if(!(g&1)){if(g&2){Ru(e,Js(f,c[13383]|0,129696)|0);g=Js(f,c[13384]|0,129704)|0;Su(e,g);break}if(g&8){Ru(e,Js(f,c[13387]|0,129712)|0);g=Js(f,c[13388]|0,129720)|0;Su(e,g);break}if(!(g&4)){g=Dr(f,160746)|0;Su(e,g);p=Js(f,c[13379]|0,164137)|0;Ru(e,(a[p>>0]|0)!=0?p:160746);break}else{Ru(e,Js(f,c[13385]|0,129728)|0);g=Js(f,c[13386]|0,129736)|0;Su(e,g);break}}else{Ru(e,Js(f,c[13381]|0,129680)|0);g=Js(f,c[13382]|0,129688)|0;Su(e,g)}while(0);if(!l)if(!(a[g>>0]|0)){p=1;m=28}else{Ru(e,g);p=1;m=28}else if((l|0)>0){p=l;m=28}if((m|0)==28){m=(t|0)>0;n=1;o=0;while(1){if(m){j=_(o,t)|0;l=c[r>>2]|0;g=c[13876]|0;k=l+16|0;l=l+24|0;f=0;do{y=f+j|0;x=+h[s+(y<<4)+8>>3];h[g+(f<<4)>>3]=+h[s+(y<<4)>>3]+ +h[k>>3];h[g+(f<<4)+8>>3]=x+ +h[l>>3];f=f+1|0}while((f|0)!=(t|0))}else g=c[13876]|0;Vu(e,g,t,n);o=o+1|0;if((o|0)==(p|0))break;else n=0}}if(q){if(c[e+152>>2]&4)Mu(e,c[v>>2]|0,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);Nu(e)}i=w;return}function Vr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;g=$p(72)|0;n=c[(c[b+16>>2]|0)+104>>2]|0;m=0;i=1;k=c[13880]|0;a:while(1){j=a[k>>0]|0;switch(j<<24>>24){case 0:break a;case 92:{k=k+1|0;j=a[k>>0]|0;switch(j<<24>>24){case 124:case 125:case 123:case 92:{l=m;break}default:C=4}break}default:C=4}if((C|0)==4){C=0;switch(j<<24>>24){case 123:{l=m+1|0;break}case 125:{l=m+-1|0;break}default:{l=m;i=((m|0)==0&j<<24>>24==124&1)+i|0}}if((l|0)<0)break}m=l;k=k+1|0}z=g+56|0;c[z>>2]=$p(i<<2)|0;a[g+64>>0]=d;w=(d|0)==0&1;x=n+82|0;y=f+1|0;t=(e|0)!=0;u=n+16|0;v=n+4|0;r=n+8|0;i=0;k=0;d=0;e=f;n=0;l=0;m=0;j=f;s=0;b:while(1){o=k;p=d;k=0;c:while(1){d=p;d:while(1){p=d;e:while(1){q=k;f:while(1){d=l;g:while(1){if(s){C=82;break b}k=c[13880]|0;l=a[k>>0]|0;if((l+-1&255)<31)do{k=k+1|0;c[13880]=k;l=a[k>>0]|0}while((l+-1&255)<31);switch(l<<24>>24|0){case 92:{C=57;break d}case 0:case 124:case 125:{k=q;break e}case 60:break f;case 62:break g;case 123:break;default:break d}k=k+1|0;c[13880]=k;if(d){i=q;C=35;break b}if(!(a[k>>0]|0)){i=q;C=35;break b}d=Vr(b,w,0,f)|0;c[(c[z>>2]|0)+(i<<2)>>2]=d;if(!d){i=q;C=38;break b}else{i=i+1|0;d=4}}if(a[x>>0]|0)break d;if(!(d&16)){i=q;C=27;break b}if(m>>>0>y>>>0?(A=m+-1|0,(A|0)!=(p|0)):0)k=(a[A>>0]|0)==32?A:m;else k=m;a[k>>0]=0;q=oA(f)|0;c[13880]=(c[13880]|0)+1;l=d&-17;m=k}if(d&6){i=q;C=21;break b}if(a[x>>0]|0)break d;c[13880]=k+1;p=f;l=d|18;m=f;k=q}if(!((d&16|0)==0&(t|l<<24>>24!=0))){i=k;C=41;break b}if(!(d&4)){o=$p(72)|0;c[(c[z>>2]|0)+(i<<2)>>2]=o;i=i+1|0}if(k)c[o+60>>2]=k;if(!(d&5)){a[j>>0]=32;l=d|1;j=j+1|0}else l=d;if(!(l&1))q=j;else{if(j>>>0>y>>>0?(B=j+-1|0,(B|0)!=(e|0)):0)j=(a[B>>0]|0)==32?B:j;a[j>>0]=0;e=oA(f)|0;c[o+52>>2]=Qp(b,e,(a[x>>0]|0)!=0?2:0,+h[u>>3],c[v>>2]|0,c[r>>2]|0)|0;a[o+64>>0]=1;e=f;q=f}j=c[13880]|0;switch(a[j>>0]|0){case 0:{k=o;d=p;j=q;s=1;continue b}case 125:{C=55;break b}default:{}}c[13880]=j+1;d=p;l=0;k=0;j=q}h:do if((C|0)==57){C=0;l=k+1|0;switch(a[l>>0]|0){case 0:break h;case 62:case 60:case 124:case 125:case 123:{c[13880]=l;k=l;break h}case 32:{C=59;break}default:{}}if((C|0)==59?(C=0,(a[x>>0]|0)==0):0){c[13880]=l;k=l;n=1;break}a[j>>0]=92;k=(c[13880]|0)+1|0;c[13880]=k;d=d|9;j=j+1|0}while(0);if((d&4|0)!=0?(a[k>>0]|0)!=32:0){i=q;C=64;break b}if(!(d&24))d=(a[k>>0]|0)==32?d:d|9;if(!(d&8)){if(d&16){k=a[k>>0]|0;l=(n|0)!=0;if(!(l|k<<24>>24!=32))if((m|0)!=(f|0))if((a[m+-1>>0]|0)==32)k=m;else C=78;else k=f;else C=78;if((C|0)==78){C=0;a[m>>0]=k;k=m+1|0}p=l?k+-1|0:p;m=k}}else{k=a[k>>0]|0;l=(n|0)!=0;if(!((!(l|k<<24>>24!=32)?(a[j+-1>>0]|0)==32:0)?(a[x>>0]|0)==0:0)){a[j>>0]=k;j=j+1|0}e=l?j+-1|0:e}k=(c[13880]|0)+1|0;c[13880]=k;if((a[k>>0]|0)<0)l=j;else{l=d;k=q;continue}while(1){c[13880]=k+1;j=l+1|0;a[l>>0]=a[k>>0]|0;k=c[13880]|0;if((a[k>>0]|0)<0)l=j;else{l=d;k=q;continue c}}}}if((C|0)==21){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==27){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==35){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==38){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==41){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==55){c[13880]=j+1;c[g+48>>2]=i}else if((C|0)==64){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==82)c[g+48>>2]=i;return g|0}function Wr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;l=r+32|0;m=r+24|0;o=r+16|0;q=r;j=c[e+52>>2]|0;do if(!j){j=e+48|0;if((c[j>>2]|0)>0){l=e+56|0;m=q+8|0;o=e+64|0;g=0.0;f=0.0;p=0;do{Wr(q,d,c[(c[l>>2]|0)+(p<<2)>>2]|0);k=+h[q>>3];n=+h[m>>3];if(!(a[o>>0]|0)){g=g>k?g:k;f=f+n}else{g=g+k;f=f>n?f:n}p=p+1|0}while((p|0)<(c[j>>2]|0))}else{g=0.0;f=0.0}}else{g=+h[j+24>>3];f=+h[j+32>>3];if(g>0.0|f>0.0){j=zj(d,129972)|0;if(!j){g=g+16.0;f=f+8.0;break}c[l>>2]=m;c[l+4>>2]=o;j=Pz(j,129979,l)|0;if((j|0)<=0){g=g+16.0;f=f+8.0;break}k=+h[m>>3]*72.0;k=+(~~(k+(k>=0.0?.5:-.5))<<1|0);g=g+k;if((j|0)>1){n=+h[o>>3]*72.0;f=f+ +(~~(n+(n>=0.0?.5:-.5))<<1|0);break}else{f=f+k;break}}}while(0);h[e>>3]=g;h[e+8>>3]=f;h[b>>3]=g;h[b+8>>3]=f;i=r;return}function Xr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0;u=i;i=i+32|0;t=u+16|0;s=u;o=+h[d>>3];f=o-+h[b>>3];r=+h[d+8>>3];j=r-+h[b+8>>3];c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];d=c[b+52>>2]|0;if(!((e|0)!=0|(d|0)==0)){n=d+40|0;h[n>>3]=f+ +h[n>>3];n=d+48|0;h[n>>3]=j+ +h[n>>3]}n=b+48|0;d=c[n>>2]|0;a:do if((d|0)!=0?(p=b+64|0,g=a[p>>0]|0,q=(g<<24>>24==0?j:f)/+(d|0),(d|0)>0):0){l=b+56|0;m=s+8|0;d=0;while(1){b=c[(c[l>>2]|0)+(d<<2)>>2]|0;k=d+1|0;d=~~(q*+(k|0))-~~(q*+(d|0))|0;if(!(g<<24>>24)){j=+(d|0)+ +h[b+8>>3];f=o}else{j=r;f=+(d|0)+ +h[b>>3]}h[s>>3]=f;h[m>>3]=j;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];Xr(b,t,e);if((k|0)>=(c[n>>2]|0))break a;g=a[p>>0]|0;d=k}}while(0);i=u;return}function Yr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0;q=i;i=i+16|0;p=q;a[b+65>>0]=e;s=+h[d>>3];o=d+8|0;r=+h[o>>3];t=r-+h[b+8>>3];h[b+16>>3]=s;h[b+24>>3]=t;h[b+32>>3]=s+ +h[b>>3];h[b+40>>3]=r;k=c[b+48>>2]|0;l=k+-1|0;if((k|0)>=1){m=(e|0)==0;n=b+56|0;g=b+64|0;j=0;do{do if(!m){b=(j|0)==0;f=(j|0)==(l|0);if(!(a[g>>0]|0))if(b){b=f?15:14;break}else{b=f?11:10;break}else if(b){b=f?15:13;break}else{b=f?7:5;break}}else b=0;while(0);f=c[(c[n>>2]|0)+(j<<2)>>2]|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];Yr(f,p,b&e);if(!(a[g>>0]|0))h[o>>3]=+h[o>>3]-+h[(c[(c[n>>2]|0)+(j<<2)>>2]|0)+8>>3];else h[d>>3]=+h[d>>3]+ +h[c[(c[n>>2]|0)+(j<<2)>>2]>>3];j=j+1|0}while((j|0)!=(k|0))}i=q;return}function Zr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+192|0;C=F+176|0;E=F+112|0;D=F+48|0;B=F+32|0;A=F+24|0;z=F+16|0;y=F;if(!(e<<24>>24)){k=d+48|0;c[B>>2]=c[k>>2];c[B+4>>2]=c[k+4>>2];c[B+8>>2]=c[k+8>>2];c[B+12>>2]=c[k+12>>2];k=B;u=z;v=E;w=A;x=0}else{c[B>>2]=c[d>>2];c[B+4>>2]=c[d+4>>2];c[B+8>>2]=c[d+8>>2];c[B+12>>2]=c[d+12>>2];k=B;u=A;v=0;w=z;x=E}h[A>>3]=0.0;h[z>>3]=1.0;n=B+8|0;o=D+16|0;p=E+16|0;q=D+32|0;r=E+32|0;s=D+48|0;t=E+48|0;g=1.0;j=0.0;m=+h[B>>3];e=0;while(1){l=+h[n>>3];f=(g+j)*.5;Rs(y,d,3,f,v,x);c[k>>2]=c[y>>2];c[k+4>>2]=c[y+4>>2];c[k+8>>2]=c[y+8>>2];c[k+12>>2]=c[y+12>>2];c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];if(!((Lb[b&63](a,C)|0)<<24>>24)){c[D>>2]=c[E>>2];c[D+4>>2]=c[E+4>>2];c[D+8>>2]=c[E+8>>2];c[D+12>>2]=c[E+12>>2];c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];h[w>>3]=f;e=1}else h[u>>3]=f;f=+h[B>>3];m=m-f;if(!((m>=0.0?m:-m)>.5)?(m=l-+h[n>>3],!((m>=0.0?m:-m)>.5)):0)break;g=+h[z>>3];j=+h[A>>3];m=f}if(!(e<<24>>24)){c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2];D=d+16|0;C=E+16|0;c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];c[D+12>>2]=c[C+12>>2];D=d+32|0;C=E+32|0;c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];c[D+12>>2]=c[C+12>>2];d=d+48|0;E=E+48|0;c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2]}else{c[d>>2]=c[D>>2];c[d+4>>2]=c[D+4>>2];c[d+8>>2]=c[D+8>>2];c[d+12>>2]=c[D+12>>2];E=d+16|0;C=D+16|0;c[E>>2]=c[C>>2];c[E+4>>2]=c[C+4>>2];c[E+8>>2]=c[C+8>>2];c[E+12>>2]=c[C+12>>2];E=d+32|0;C=D+32|0;c[E>>2]=c[C>>2];c[E+4>>2]=c[C+4>>2];c[E+8>>2]=c[C+8>>2];c[E+12>>2]=c[C+12>>2];d=d+48|0;E=D+48|0;c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2]}i=F;return}function _r(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+48|0;k=m+16|0;j=m;l=m+32|0;d=a+16|0;e=c[d>>2]|0;f=c[e+8>>2]|0;if((f|0)!=0?(g=c[(c[f+4>>2]|0)+12>>2]|0,(g|0)!=0):0){c[l>>2]=a;c[l+4>>2]=0;n=+h[e+96>>3];h[j>>3]=+h[b>>3]-+h[e+16>>3];h[j+8>>3]=+h[b+8>>3]-+h[e+24>>3];c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];k=Lb[g&63](l,k)|0;h[(c[d>>2]|0)+96>>3]=n;ls(l,a,b,k)}i=m;return}function $r(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+16|0;b=c[e>>2]|0;if(a[b+112>>0]|0)do{e=(c[b+116>>2]|0)+16|0;b=c[e>>2]|0}while((a[b+112>>0]|0)!=0);b=c[b+8>>2]|0;if(!b){b=$p(40)|0;c[(c[e>>2]|0)+8>>2]=b}f=c[b>>2]|0;b=c[b+4>>2]|0;if(!f)b=aq((b*48|0)+48|0)|0;else b=cq(f,(b*48|0)+48|0)|0;f=c[(c[e>>2]|0)+8>>2]|0;c[f>>2]=b;f=f+4|0;e=c[f>>2]|0;c[f>>2]=e+1;f=b+(e*48|0)|0;c[f>>2]=$p(d<<4)|0;c[b+(e*48|0)+4>>2]=d;b=b+(e*48|0)+8|0;e=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));return f|0}function as(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0;F=i;i=i+96|0;E=F+16|0;B=F+80|0;w=F;x=F+88|0;A=b+48|0;n=c[((c[b>>2]&3|0)==3?b:A)+40>>2]|0;C=gl(n)|0;D=$r(b,f)|0;j=c[b+16>>2]|0;if(!(a[j+112>>0]|0))k=b;else do{k=c[j+116>>2]|0;j=c[k+16>>2]|0}while((a[j+112>>0]|0)!=0);z=g+8|0;if((a[z>>0]|0)==0?(l=c[n+16>>2]|0,m=c[d+16>>2]|0,(c[l+232>>2]|0)==(c[m+232>>2]|0)):0){o=(c[l+236>>2]|0)>(c[m+236>>2]|0);y=o?n:d;n=o?d:n}else y=d;l=a[j+46>>0]|0;m=a[j+86>>0]|0;if((n|0)==(c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)){o=m&255;l=l&255;k=j+80|0;j=j+40|0}else{o=l&255;l=m&255;k=j+40|0;j=j+80|0}d=c[k>>2]|0;j=c[j>>2]|0;if(((l|0)!=0?(q=n+16|0,p=c[(c[q>>2]|0)+8>>2]|0,(p|0)!=0):0)?(c[(c[p+4>>2]|0)+12>>2]|0)!=0:0){c[x>>2]=n;c[x+4>>2]=j;j=f+-4|0;l=w+8|0;k=0;while(1){if((k|0)>=(j|0))break;m=k+3|0;p=c[q>>2]|0;h[w>>3]=+h[e+(m<<4)>>3]-+h[p+16>>3];h[l>>3]=+h[e+(m<<4)+8>>3]-+h[p+24>>3];p=c[(c[(c[p+8>>2]|0)+4>>2]|0)+12>>2]|0;c[E>>2]=c[w>>2];c[E+4>>2]=c[w+4>>2];c[E+8>>2]=c[w+8>>2];c[E+12>>2]=c[w+12>>2];if(!((Lb[p&63](x,E)|0)<<24>>24))break;else k=m}ls(x,n,e+(k<<4)|0,1)}else k=0;if(((o|0)!=0?(v=y+16|0,t=c[v>>2]|0,r=c[t+8>>2]|0,(r|0)!=0):0)?(s=c[(c[r+4>>2]|0)+12>>2]|0,(s|0)!=0):0){c[x>>2]=y;c[x+4>>2]=d;m=f+-4|0;a:do if((f|0)>4?(u=w+8|0,h[w>>3]=+h[e+(m<<4)>>3]-+h[t+16>>3],h[u>>3]=+h[e+(m<<4)+8>>3]-+h[t+24>>3],c[E>>2]=c[w>>2],c[E+4>>2]=c[w+4>>2],c[E+8>>2]=c[w+8>>2],c[E+12>>2]=c[w+12>>2],(Lb[s&63](x,E)|0)<<24>>24!=0):0){l=m;while(1){j=l+-3|0;if((l|0)<=3)break a;t=c[v>>2]|0;f=c[(c[(c[t+8>>2]|0)+4>>2]|0)+12>>2]|0;h[w>>3]=+h[e+(j<<4)>>3]-+h[t+16>>3];h[u>>3]=+h[e+(j<<4)+8>>3]-+h[t+24>>3];c[E>>2]=c[w>>2];c[E+4>>2]=c[w+4>>2];c[E+8>>2]=c[w+8>>2];c[E+12>>2]=c[w+12>>2];if(!((Lb[f&63](x,E)|0)<<24>>24))break;else l=j}}else j=m;while(0);ls(x,y,e+(j<<4)|0,0)}else{m=f+-4|0;j=m}while(1){if((k|0)>=(m|0)){m=k;break}l=k+3|0;H=+h[e+(k<<4)>>3]-+h[e+(l<<4)>>3];G=+h[e+(k<<4)+8>>3]-+h[e+(l<<4)+8>>3];if(H*H+G*G<1.0e-06)k=l;else{m=k;break}}b:do if((j|0)>0)while(1){x=j+3|0;G=+h[e+(j<<4)>>3]-+h[e+(x<<4)>>3];H=+h[e+(j<<4)+8>>3]-+h[e+(x<<4)+8>>3];if(!(G*G+H*H<1.0e-06)){r=j;break b}k=j+-3|0;if((j|0)>3)j=k;else{r=k;break}}else r=j;while(0);k=b;while(1){j=c[(c[k+16>>2]|0)+116>>2]|0;if(!j){l=k;break}else k=j}if(!(a[z>>0]|0))k=(Eb[c[g>>2]&31](l)|0)&255;else k=0;Ao(l,E,B);j=g+4|0;if((Eb[c[j>>2]&31](y)|0)<<24>>24)c[B>>2]=0;if((Eb[c[j>>2]&31](c[((c[b>>2]&3|0)==3?b:A)+40>>2]|0)|0)<<24>>24)c[E>>2]=0;if(k){b=c[E>>2]|0;c[E>>2]=c[B>>2];c[B>>2]=b}if(!(a[g+9>>0]|0)){j=c[E>>2]|0;if(!j)k=m;else k=Do(l,e,m,r,D,j)|0;j=c[B>>2]|0;if(j)r=Co(l,e,k,r,D,j)|0}else{j=c[B>>2]|0;k=c[E>>2]|0;if(!(k|j))k=m;else{Eo(l,e,m,r,D,k,j);k=m}}n=r+4|0;c:do if((k|0)<(n|0)){d=r+3|0;o=E+16|0;p=E+32|0;q=E+48|0;j=C+16|0;m=k;while(1){C=(c[D>>2]|0)+(m-k<<4)|0;l=e+(m<<4)|0;c[C>>2]=c[l>>2];c[C+4>>2]=c[l+4>>2];c[C+8>>2]=c[l+8>>2];c[C+12>>2]=c[l+12>>2];c[E>>2]=c[l>>2];c[E+4>>2]=c[l+4>>2];c[E+8>>2]=c[l+8>>2];c[E+12>>2]=c[l+12>>2];l=m+1|0;if((m|0)>=(d|0))break;B=(c[D>>2]|0)+(l-k<<4)|0;C=e+(l<<4)|0;c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];c[B+8>>2]=c[C+8>>2];c[B+12>>2]=c[C+12>>2];c[o>>2]=c[C>>2];c[o+4>>2]=c[C+4>>2];c[o+8>>2]=c[C+8>>2];c[o+12>>2]=c[C+12>>2];C=m+2|0;B=(c[D>>2]|0)+(C-k<<4)|0;C=e+(C<<4)|0;c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];c[B+8>>2]=c[C+8>>2];c[B+12>>2]=c[C+12>>2];c[p>>2]=c[C>>2];c[p+4>>2]=c[C+4>>2];c[p+8>>2]=c[C+8>>2];c[p+12>>2]=c[C+12>>2];m=m+3|0;C=e+(m<<4)|0;c[q>>2]=c[C>>2];c[q+4>>2]=c[C+4>>2];c[q+8>>2]=c[C+8>>2];c[q+12>>2]=c[C+12>>2];_o((c[j>>2]|0)+16|0,E);if((m|0)>=(n|0))break c}}while(0);c[D+4>>2]=4-k+r;i=F;return}function bs(a,b){a=a|0;b=b|0;var d=0,e=0;if(+h[b>>3]<+h[b+16>>3]?+h[b+8>>3]<+h[b+24>>3]:0){e=a+80|0;d=c[e>>2]|0;c[e>>2]=d+1;a=(c[a+84>>2]|0)+(d<<5)|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2]}return}function cs(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+48|0;r=A;m=c[d>>2]&3;t=d+48|0;z=c[((m|0)==3?d:t)+40>>2]|0;x=d+16|0;w=c[x>>2]|0;l=w+16|0;if(a[w+47>>0]|0){or(r,z,c[((m|0)==2?d:d+-48|0)+40>>2]|0,l);m=r;r=l+40|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(r|0))}u=z+16|0;m=c[u>>2]|0;l=c[m+8>>2]|0;if(!l)r=0;else r=c[(c[l+4>>2]|0)+16>>2]|0;w=c[x>>2]|0;l=w+16|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];p=+h[k>>3];w=w+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=+h[k>>3];w=m+16|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];q=+h[k>>3];w=m+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=s+ +h[k>>3];h[b>>3]=p+q;w=b+8|0;h[w>>3]=s;do if(!(g<<24>>24)){l=c[x>>2]|0;if(!(a[l+45>>0]|0)){a[b+29>>0]=0;break}else{h[b+16>>3]=+h[l+32>>3];a[b+29>>0]=1;break}}else{h[b+16>>3]=+ms(c[((c[d>>2]&3|0)==3?d:t)+40>>2]|0);a[b+29>>0]=1}while(0);c[b+80>>2]=0;c[b+88>>2]=d;g=f+32|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];a:do switch(e|0){case 1:{m=c[u>>2]|0;if((a[m+156>>0]|0)==0?(g=a[(c[x>>2]|0)+49>>0]|0,v=g&255,g<<24>>24!=0):0){o=+h[f>>3];j=+h[f+8>>3];p=+h[f+16>>3];n=+h[f+24>>3];do if(!(v&4)){if(v&1){c[f+48>>2]=1;s=+h[w>>3];h[f+56>>3]=o;h[f+64>>3]=j;h[f+72>>3]=p;h[f+80>>3]=n>s?n:s;c[f+52>>2]=1;break}l=f+48|0;if(!(v&8)){c[l>>2]=2;q=+h[m+24>>3]-+h[m+80>>3]*.5;s=+h[w>>3];h[f+56>>3]=+h[b>>3];h[f+64>>3]=q;h[f+72>>3]=p;h[f+80>>3]=s;c[f+52>>2]=1;break}else{c[l>>2]=8;q=+h[b>>3];p=+h[m+24>>3]-+h[m+80>>3]*.5;s=+h[w>>3];h[f+56>>3]=o;h[f+64>>3]=p;h[f+72>>3]=q;h[f+80>>3]=s;c[f+52>>2]=1;break}}else{c[f+48>>2]=4;if(+h[b>>3]<+h[m+16>>3]){s=o+-1.0;j=+h[w>>3];q=+h[m+24>>3]+ +h[m+80>>3]*.5;q=q+ +((c[(c[(gl(z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[u>>2]|0;n=+h[w+16>>3]-+h[w+88>>3];o=+h[w+24>>3]-+h[w+80>>3]*.5;h[f+56>>3]=s;h[f+64>>3]=j;h[f+72>>3]=p;p=s}else{j=+h[w>>3];n=p+1.0;q=+h[m+24>>3]+ +h[m+80>>3]*.5;q=q+ +((c[(c[(gl(z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[u>>2]|0;p=+h[w+16>>3]+ +h[w+96>>3]+0.0;s=+h[w+24>>3]-+h[w+80>>3]*.5;h[f+56>>3]=o;h[f+64>>3]=j;h[f+72>>3]=n;o=s}h[f+80>>3]=q;h[f+88>>3]=p;h[f+96>>3]=o;h[f+104>>3]=n;h[f+112>>3]=j;c[f+52>>2]=2}while(0);l=c[x>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((z|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)){a[l+46>>0]=0;break a}else{a[l+86>>0]=0;break a}}else{m=1;y=51}break}case 2:{v=a[(c[x>>2]|0)+49>>0]|0;m=v&255;if(!(v<<24>>24))y=50;else{p=+h[f>>3];j=+h[f+8>>3];q=+h[f+16>>3];n=+h[f+24>>3];do if(!(m&4)){if(m&1)if((c[f+48>>2]|0)==4){w=c[u>>2]|0;p=+h[w+24>>3]-+h[w+80>>3]*.5;q=q+1.0;j=+h[b>>3];n=p-+((c[(c[(gl(z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[u>>2]|0;o=+h[w+16>>3]+ +h[w+96>>3]+0.0;s=+h[w+24>>3]+ +h[w+80>>3]*.5;h[f+56>>3]=j;h[f+64>>3]=n;h[f+72>>3]=q;h[f+80>>3]=p;h[f+88>>3]=o;h[f+96>>3]=p;h[f+104>>3]=q;h[f+112>>3]=s;c[f+52>>2]=2;break}else{s=+h[w>>3];h[f+56>>3]=p;h[f+64>>3]=j;h[f+72>>3]=q;h[f+80>>3]=n>s?n:s;c[f+52>>2]=1;break}s=+h[b>>3];if(!(m&8)){b=c[u>>2]|0;j=+h[b+24>>3];n=+h[b+80>>3]*.5;if((c[f+48>>2]|0)==4){o=j+n;j=+h[w>>3]}else{o=+h[w>>3]+1.0;j=j-n}h[f+56>>3]=s;h[f+64>>3]=j;h[f+72>>3]=q;h[f+80>>3]=o;c[f+52>>2]=1;break}else{b=c[u>>2]|0;j=+h[b+24>>3];n=+h[b+80>>3]*.5;if((c[f+48>>2]|0)==4){o=j+n;j=+h[w>>3]+-1.0}else{o=+h[w>>3]+1.0;j=j-n}h[f+56>>3]=p;h[f+64>>3]=j;h[f+72>>3]=s+1.0;h[f+80>>3]=o;c[f+52>>2]=1;break}}else{s=+h[w>>3];h[f+56>>3]=p;h[f+64>>3]=j<s?j:s;h[f+72>>3]=q;h[f+80>>3]=n;c[f+52>>2]=1}while(0);l=c[x>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((z|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0))a[l+46>>0]=0;else a[l+86>>0]=0;c[f+48>>2]=m}break}default:y=50}while(0);if((y|0)==50){m=c[f+48>>2]|0;y=51}b:do if((y|0)==51){if(r){l=f+56|0;d=f+52|0;m=Nb[r&3](z,(c[x>>2]|0)+16|0,m,l,d)|0;if(m){c[f+48>>2]=m;break}}else{d=f+52|0;l=f+56|0};c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];c[l+8>>2]=c[f+8>>2];c[l+12>>2]=c[f+12>>2];c[l+16>>2]=c[f+16>>2];c[l+20>>2]=c[f+20>>2];c[l+24>>2]=c[f+24>>2];c[l+28>>2]=c[f+28>>2];c[d>>2]=1;switch(e|0){case 8:{Ia(161945,130150,569,130160);break}case 2:{j=+h[w>>3];if((c[f+48>>2]|0)==4){h[f+64>>3]=j;break b}else{h[f+80>>3]=j;break b}}case 1:{h[f+80>>3]=+h[w>>3];c[f+48>>2]=1;break b}default:break b}}while(0);i=A;return}function ds(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+48|0;q=B;m=c[d>>2]&3;t=d+-48|0;A=c[((m|0)==2?d:t)+40>>2]|0;y=d+16|0;w=c[y>>2]|0;l=w+56|0;if(a[w+87>>0]|0){or(q,A,c[((m|0)==3?d:d+48|0)+40>>2]|0,l);m=q;q=l+40|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(q|0))}v=A+16|0;m=c[v>>2]|0;l=c[m+8>>2]|0;if(!l)q=0;else q=c[(c[l+4>>2]|0)+16>>2]|0;u=b+40|0;w=c[y>>2]|0;l=w+56|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];p=+h[k>>3];w=w+64|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=+h[k>>3];w=m+16|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];r=+h[k>>3];w=m+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=s+ +h[k>>3];h[b+40>>3]=p+r;w=b+48|0;h[w>>3]=s;do if(!(g<<24>>24)){l=c[y>>2]|0;if(!(a[l+85>>0]|0)){a[b+69>>0]=0;break}else{h[b+56>>3]=+h[l+72>>3];a[b+69>>0]=1;break}}else{s=+ms(c[((c[d>>2]&3|0)==2?d:t)+40>>2]|0)+3.141592653589793;h[b+56>>3]=s;if(s<6.283185307179586){a[b+69>>0]=1;break}else Ia(130170,130150,606,130194)}while(0);g=f+32|0;c[g>>2]=c[u>>2];c[g+4>>2]=c[u+4>>2];c[g+8>>2]=c[u+8>>2];c[g+12>>2]=c[u+12>>2];switch(e|0){case 1:{m=c[v>>2]|0;if((a[m+156>>0]|0)==0?(b=a[(c[y>>2]|0)+89>>0]|0,x=b&255,b<<24>>24!=0):0){n=+h[f>>3];j=+h[f+8>>3];o=+h[f+16>>3];do if(!(x&4)){if(!(x&1)){l=f+48|0;j=+h[u>>3];if(!(x&8)){c[l>>2]=2;s=+h[m+24>>3]+ +h[m+80>>3]*.5;r=+h[w>>3];h[f+56>>3]=j;h[f+64>>3]=r;h[f+72>>3]=o;h[f+80>>3]=s;c[f+52>>2]=1;break}else{c[l>>2]=8;s=+h[m+24>>3]+ +h[m+80>>3]*.5;r=+h[w>>3];h[f+56>>3]=n;h[f+64>>3]=r;h[f+72>>3]=j;h[f+80>>3]=s;c[f+52>>2]=1;break}}c[f+48>>2]=1;if(+h[u>>3]<+h[m+16>>3]){s=n+-1.0;p=+h[w>>3];r=+h[m+24>>3]-+h[m+80>>3]*.5;r=r-+((c[(c[(gl(A)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[v>>2]|0;n=+h[w+16>>3]-+h[w+88>>3];j=+h[w+24>>3]+ +h[w+80>>3]*.5;h[f+56>>3]=s;h[f+64>>3]=r;h[f+72>>3]=o;o=s}else{p=+h[w>>3];s=o+1.0;r=+h[m+24>>3]-+h[m+80>>3]*.5;r=r-+((c[(c[(gl(A)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[v>>2]|0;o=+h[w+16>>3]+ +h[w+96>>3]+0.0;j=+h[w+24>>3]+ +h[w+80>>3]*.5;h[f+56>>3]=n;h[f+64>>3]=r;h[f+72>>3]=s;n=s}h[f+80>>3]=p;h[f+88>>3]=o;h[f+96>>3]=p;h[f+104>>3]=n;h[f+112>>3]=j;c[f+52>>2]=2}else{s=+h[f+24>>3];c[f+48>>2]=4;r=+h[w>>3];h[f+56>>3]=n;h[f+64>>3]=j<r?j:r;h[f+72>>3]=o;h[f+80>>3]=s;c[f+52>>2]=1}while(0);l=c[y>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((A|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0))a[l+86>>0]=0;else a[l+46>>0]=0;c[f+48>>2]=x}else{m=4;z=54}break}case 2:{x=a[(c[y>>2]|0)+89>>0]|0;m=x&255;if(!(x<<24>>24))z=53;else{p=+h[f>>3];j=+h[f+8>>3];r=+h[f+16>>3];n=+h[f+24>>3];do if(!(m&4)){if(m&1)if((c[f+48>>2]|0)==4){o=p+-1.0;x=c[v>>2]|0;p=+h[x+24>>3]-+h[x+80>>3]*.5;n=+h[u>>3];j=p-+((c[(c[(gl(A)|0)+16>>2]|0)+252>>2]|0)/2|0|0);x=c[v>>2]|0;r=+h[x+16>>3]-+h[x+88>>3]+-2.0;s=+h[x+24>>3]+ +h[x+80>>3]*.5;h[f+56>>3]=o;h[f+64>>3]=j;h[f+72>>3]=n;h[f+80>>3]=p;h[f+88>>3]=o;h[f+96>>3]=p;h[f+104>>3]=r;h[f+112>>3]=s;c[f+52>>2]=2;break}else{s=+h[b+8>>3];h[f+56>>3]=p;h[f+64>>3]=j;h[f+72>>3]=r;h[f+80>>3]=n>s?n:s;c[f+52>>2]=1;break}s=+h[u>>3];if(!(m&8)){x=c[v>>2]|0;j=+h[x+24>>3];n=+h[x+80>>3]*.5;if((c[f+48>>2]|0)==4){o=+h[w>>3]+-1.0;j=j+n}else{o=j-n;j=+h[w>>3]}h[f+56>>3]=s+-1.0;h[f+64>>3]=o;h[f+72>>3]=r;h[f+80>>3]=j;c[f+52>>2]=1;break}else{x=c[v>>2]|0;j=+h[x+24>>3];n=+h[x+80>>3]*.5;if((c[f+48>>2]|0)==4){o=+h[w>>3]+-1.0;j=j+n}else{o=j-n;j=+h[w>>3]+1.0}h[f+56>>3]=p;h[f+64>>3]=o;h[f+72>>3]=s+1.0;h[f+80>>3]=j;c[f+52>>2]=1;break}}else{s=+h[w>>3];h[f+56>>3]=p;h[f+64>>3]=j<s?j:s;h[f+72>>3]=r;h[f+80>>3]=n;c[f+52>>2]=1}while(0);l=c[y>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((A|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0))a[l+86>>0]=0;else a[l+46>>0]=0;c[f+48>>2]=m}break}default:z=53}if((z|0)==53){m=c[f+48>>2]|0;z=54}a:do if((z|0)==54){if(q){l=f+56|0;d=f+52|0;m=Nb[q&3](A,(c[y>>2]|0)+56|0,m,l,d)|0;if(m){c[f+48>>2]=m;break}}else{d=f+52|0;l=f+56|0};c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];c[l+8>>2]=c[f+8>>2];c[l+12>>2]=c[f+12>>2];c[l+16>>2]=c[f+16>>2];c[l+20>>2]=c[f+20>>2];c[l+24>>2]=c[f+24>>2];c[l+28>>2]=c[f+28>>2];c[d>>2]=1;switch(e|0){case 8:{Ia(161945,130150,765,130194);break}case 2:{j=+h[w>>3];if((c[f+48>>2]|0)==4){h[f+64>>3]=j;break a}else{h[f+80>>3]=j;break a}}case 1:{h[f+64>>3]=+h[w>>3];c[f+48>>2]=4;break a}default:break a}}while(0);i=B;return}function es(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=c[b+16>>2]|0;i=c[d+96>>2]|0;if((a[d+44>>0]|0)==0?(a[d+84>>0]|0)==0:0)j=6;else{e=a[d+49>>0]|0;f=e&255;if(((f&8|0)==0?(g=a[d+89>>0]|0,(g&8)==0):0)?((f&5|0)==0?1:e<<24>>24!=g<<24>>24):0)j=6;else d=0}if((j|0)==6)if(!i)d=18;else{d=(c[(c[(gl(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0;d=~~(+h[(d?i+24|0:i+32|0)>>3]+18.0)}return d|0}-function fs(b,e,f,g,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;j=+j;k=+k;l=l|0;var m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0,U=0,V=0,W=0;V=i;i=i+16e3|0;U=V;u=c[e+(f<<2)>>2]|0;n=c[u+16>>2]|0;if((a[n+44>>0]|0)==0?(a[n+84>>0]|0)==0:0)T=6;else T=3;do if((T|0)==3){b=a[n+49>>0]|0;m=b&255;if(!(m&8)){K=a[n+89>>0]|0;if((K&8)==0?((m&5|0)==0?1:b<<24>>24!=K<<24>>24):0){T=6;break}if(!(a[n+89>>0]&8)){if(m&4){os(e,f,g,j,k,l);break}if(!(m&1))Ia(161945,130150,1231,130202);o=j*.5/+(g|0);K=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;J=c[K>>2]|0;O=+h[J+16>>3];L=+h[J+24>>3];m=c[u+16>>2]|0;M=O+ +h[m+16>>3];N=L+ +h[m+24>>3];O=O+ +h[m+56>>3];P=L+ +h[m+64>>3];b=!(M>=O)?-1:1;s=+h[J+80>>3]*.5;t=(N+s-L)*3.0;r=(P+s-L)*3.0;a:do if((g|0)>0){w=(ns(d[m+49>>0]|0,d[m+89>>0]|0)|0)==67;v=(o>2.0?o:2.0)*+((w?0-b|0:b)|0);w=U+8|0;x=U+16|0;y=U+24|0;z=U+32|0;A=U+40|0;B=(M+O)*.5;C=U+48|0;D=U+56|0;E=U+64|0;F=U+72|0;G=U+80|0;H=U+88|0;I=U+96|0;J=U+104|0;q=0.0;p=s;r=s<r?s:r;n=0;o=s<t?s:t;while(1){m=f+1|0;p=p+k;o=o+k;r=r+k;q=v+q;h[U>>3]=M;h[w>>3]=N;j=M+q;h[x>>3]=j;h[y>>3]=N-o/3.0;S=L-p;h[z>>3]=j;h[A>>3]=S;h[C>>3]=B;h[D>>3]=S;j=O-q;h[E>>3]=j;h[F>>3]=S;h[G>>3]=j;h[H>>3]=P-r/3.0;h[I>>3]=O;h[J>>3]=P;b=u+16|0;if((c[(c[b>>2]|0)+96>>2]|0)!=0?(W=(c[(c[(gl(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,f=c[(c[b>>2]|0)+96>>2]|0,Q=+h[(W?f+32|0:f+24|0)>>3],b=c[K>>2]|0,h[f+64>>3]=+h[b+24>>3]-p-Q*.5,h[f+56>>3]=+h[b+16>>3],a[f+81>>0]=1,Q>k):0)p=p+(Q-k);as(u,c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0,U,7,l);b=n+1|0;if((b|0)==(g|0))break a;f=m;u=c[e+(m<<2)>>2]|0;n=b}}while(0);break}}if((b&2)==0?(a[n+89>>0]&2)==0:0){o=k*.5/+(g|0);o=o>2.0?o:2.0;K=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;J=c[K>>2]|0;L=+h[J+16>>3];P=+h[J+24>>3];W=c[u+16>>2]|0;M=L+ +h[W+16>>3];N=P+ +h[W+24>>3];O=L+ +h[W+56>>3];P=P+ +h[W+64>>3];b=!(N>=P)?-1:1;t=+h[J+88>>3];switch(ns(d[W+49>>0]|0,d[W+89>>0]|0)|0){case 67:case 12:{if(N==P)b=0-b|0;break}default:{}}r=(M+t-L)*3.0;p=(O+t-L)*3.0;b:do if((g|0)>0){v=o*+(b|0);w=U+8|0;x=U+16|0;y=U+24|0;z=U+32|0;A=U+40|0;B=(N+P)*.5;C=U+48|0;D=U+56|0;E=U+64|0;F=U+72|0;G=U+80|0;H=U+88|0;I=U+96|0;J=U+104|0;o=t;q=0.0;s=t<p?t:p;n=0;p=t<r?t:r;while(1){m=f+1|0;o=o+j;p=p+j;r=s+j;q=v+q;h[U>>3]=M;h[w>>3]=N;R=N+q;h[x>>3]=M-p/3.0;h[y>>3]=R;k=L-o;h[z>>3]=k;h[A>>3]=R;h[C>>3]=k;h[D>>3]=B;R=P-q;h[E>>3]=k;h[F>>3]=R;h[G>>3]=O-r/3.0;h[H>>3]=R;h[I>>3]=O;h[J>>3]=P;b=u+16|0;if((c[(c[b>>2]|0)+96>>2]|0)!=0?(f=(c[(c[(gl(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,W=c[(c[b>>2]|0)+96>>2]|0,S=+h[(f?W+24|0:W+32|0)>>3],f=c[K>>2]|0,h[W+56>>3]=+h[f+16>>3]-o-S*.5,h[W+64>>3]=+h[f+24>>3],a[W+81>>0]=1,S>j):0)o=o+(S-j);as(u,c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0,U,7,l);b=n+1|0;if((b|0)==(g|0))break b;f=m;u=c[e+(m<<2)>>2]|0;s=r;n=b}}while(0);break}os(e,f,g,j,k,l)}while(0);if((T|0)==6){o=k*.5/+(g|0);o=o>2.0?o:2.0;K=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;T=c[K>>2]|0;L=+h[T+16>>3];P=+h[T+24>>3];W=c[u+16>>2]|0;M=L+ +h[W+16>>3];N=P+ +h[W+24>>3];O=L+ +h[W+56>>3];P=P+ +h[W+64>>3];b=!(N>=P)?-1:1;t=+h[T+96>>3];switch(ns(d[W+49>>0]|0,d[W+89>>0]|0)|0){case 65:case 32:{if(N==P)b=0-b|0;break}default:{}}p=L+t;r=(p-M)*3.0;p=(p-O)*3.0;c:do if((g|0)>0){v=o*+(b|0);w=U+8|0;x=U+16|0;y=U+24|0;z=U+32|0;A=U+40|0;B=(N+P)*.5;C=U+48|0;D=U+56|0;E=U+64|0;F=U+72|0;G=U+80|0;H=U+88|0;I=U+96|0;J=U+104|0;o=t;q=0.0;s=t<p?t:p;n=0;p=t<r?t:r;while(1){m=f+1|0;o=o+j;p=p+j;r=s+j;q=v+q;h[U>>3]=M;h[w>>3]=N;S=N+q;h[x>>3]=M+p/3.0;h[y>>3]=S;k=L+o;h[z>>3]=k;h[A>>3]=S;h[C>>3]=k;h[D>>3]=B;S=P-q;h[E>>3]=k;h[F>>3]=S;h[G>>3]=O+r/3.0;h[H>>3]=S;h[I>>3]=O;h[J>>3]=P;b=u+16|0;if((c[(c[b>>2]|0)+96>>2]|0)!=0?(T=(c[(c[(gl(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,W=c[(c[b>>2]|0)+96>>2]|0,R=+h[(T?W+24|0:W+32|0)>>3],T=c[K>>2]|0,h[W+56>>3]=R*.5+(o+ +h[T+16>>3]),h[W+64>>3]=+h[T+24>>3],a[W+81>>0]=1,R>j):0)o=o+(R-j);as(u,c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0,U,7,l);b=n+1|0;if((b|0)==(g|0))break c;f=m;u=c[e+(m<<2)>>2]|0;s=r;n=b}}while(0)}i=V;return}function gs(b){b=b|0;var d=0,e=0;if((c[13449]|0)!=0|(c[13448]|0)!=0){d=b+16|0;e=c[(c[d>>2]|0)+100>>2]|0;if(((e|0)!=0?(a[e+81>>0]|0)==0:0)?(hs(b,1)|0)!=0:0){e=gl(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;_s(e,c[(c[d>>2]|0)+100>>2]|0)}e=c[(c[d>>2]|0)+104>>2]|0;if(((e|0)!=0?(a[e+81>>0]|0)==0:0)?(hs(b,0)|0)!=0:0){e=gl(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;_s(e,c[(c[d>>2]|0)+104>>2]|0)}}return}function hs(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+96|0;o=q+32|0;m=q+16|0;p=q;k=b+16|0;do if((a[(c[k>>2]|0)+112>>0]|0)!=6){e=c[13449]|0;if(!((e|0)!=0?(a[(Aj(b,e)|0)>>0]|0)!=0:0)){e=c[13448]|0;if(!e){e=0;break}if(!(a[(Aj(b,e)|0)>>0]|0)){e=0;break}}e=d<<24>>24==0;n=c[k>>2]|0;n=c[(e?n+104|0:n+100|0)>>2]|0;d=ks(b)|0;if(d){do if(e){e=c[d>>2]|0;if(!(c[e+8>>2]|0)){p=c[e>>2]|0;l=+h[p>>3];g=+h[p+8>>3];c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];p=o+16|0;k=(c[e>>2]|0)+16|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];p=o+32|0;k=(c[e>>2]|0)+32|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];p=o+48|0;k=(c[e>>2]|0)+48|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];Rs(m,o,3,.1,0,0);j=+h[m>>3];f=+h[m+8>>3];break}else{p=c[e>>2]|0;l=+h[e+16>>3];g=+h[e+24>>3];j=+h[p>>3];f=+h[p+8>>3];break}}else{k=(c[d+4>>2]|0)+-1|0;d=c[d>>2]|0;e=d+(k*48|0)|0;if(!(c[d+(k*48|0)+12>>2]|0)){k=d+(k*48|0)+4|0;m=c[k>>2]|0;r=m+-1|0;d=c[e>>2]|0;l=+h[d+(r<<4)>>3];g=+h[d+(r<<4)+8>>3];m=d+(m+-4<<4)|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];m=o+16|0;d=(c[e>>2]|0)+((c[k>>2]|0)+-3<<4)|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];m=o+32|0;d=(c[e>>2]|0)+((c[k>>2]|0)+-2<<4)|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];m=o+48|0;k=(c[e>>2]|0)+((c[k>>2]|0)+-1<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];Rs(p,o,3,.9,0,0);j=+h[p>>3];f=+h[p+8>>3];break}else{r=(c[d+(k*48|0)+4>>2]|0)+-1|0;p=c[e>>2]|0;l=+h[d+(k*48|0)+32>>3];g=+h[d+(k*48|0)+40>>3];j=+h[p+(r<<4)>>3];f=+h[p+(r<<4)+8>>3];break}}while(0);j=+W(+(f-g),+(j-l));j=j+ +Hs(b,c[13449]|0,-25.0,-180.0)/180.0*3.141592653589793;f=+Hs(b,c[13448]|0,1.0,0.0)*10.0;h[n+56>>3]=l+f*+Q(+j);h[n+64>>3]=g+f*+R(+j);a[n+81>>0]=1;e=1}else e=0}else e=0;while(0);i=q;return e|0}function is(a,b,d){a=a|0;b=b|0;d=d|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0.0;w=i;i=i+48|0;r=w+32|0;q=w+16|0;p=w;o=c[(c[d+16>>2]|0)+8>>2]|0;s=c[o>>2]|0;t=c[s>>2]|0;d=(c[s+8>>2]|0)==0;j=+h[(d?t:s+16|0)>>3];k=+h[(d?t+8|0:s+24|0)>>3];t=c[o+4>>2]|0;d=t+-1|0;if(!(c[s+(d*48|0)+12>>2]|0)){x=c[s+(d*48|0)>>2]|0;d=(c[s+(d*48|0)+4>>2]|0)+-1|0;n=x+(d<<4)+8|0;d=x+(d<<4)|0}else{n=s+(d*48|0)+40|0;d=s+(d*48|0)+32|0}g=+h[d>>3];f=+h[n>>3];l=j-g;m=k-f;a:do if(l*l+m*m<1.0e-06){v=j;u=k}else{switch((e[(c[b+16>>2]|0)+136>>1]|0)&14|0){case 4:case 10:{h[q>>3]=(j+g)*.5;h[q+8>>3]=(k+f)*.5;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];c[r+8>>2]=c[q+8>>2];c[r+12>>2]=c[q+12>>2];Ws(p,o,r);v=+h[p>>3];u=+h[p+8>>3];break a}default:{}}b:do if((t|0)>0){f=0.0;q=0;do{o=c[s+(q*48|0)>>2]|0;p=c[s+(q*48|0)+4>>2]|0;if((p|0)>3){d=0;n=3;while(1){l=+h[o+(d<<4)>>3]-+h[o+(n<<4)>>3];m=+h[o+(d<<4)+8>>3]-+h[o+(n<<4)+8>>3];f=f+ +O(+(l*l+m*m));n=n+3|0;if((n|0)>=(p|0))break;else d=d+3|0}}q=q+1|0}while((q|0)!=(t|0));f=f*.5;q=0;c:while(1){o=c[s+(q*48|0)>>2]|0;p=c[s+(q*48|0)+4>>2]|0;if((p|0)>3){d=0;n=3;while(1){l=+h[o+(d<<4)>>3];m=+h[o+(d<<4)+8>>3];j=+h[o+(n<<4)>>3];k=+h[o+(n<<4)+8>>3];y=l-j;g=m-k;g=+O(+(y*y+g*g));if(g>=f)break c;f=f-g;n=n+3|0;if((n|0)>=(p|0))break;else d=d+3|0}}q=q+1|0;if((q|0)>=(t|0))break b}u=g-f;v=(f*j+l*u)/g;u=(f*k+m*u)/g;break a}while(0);Ia(162263,130150,1316,130215)}while(0);h[a>>3]=v;h[a+8>>3]=u;i=w;return}function js(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;gs(b);return}function ks(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;e=c[b+16>>2]|0;d=c[e+8>>2]|0;a:do if(!d){while(1){if(!(a[e+112>>0]|0))break;e=c[(c[e+116>>2]|0)+16>>2]|0;d=c[e+8>>2]|0;if(d)break a}e=ok(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;d=ok(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[f>>2]=e;c[f+4>>2]=d;dj(1,130232,f)|0;d=0}while(0);i=g;return d|0}function ls(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0,n=0;n=i;i=i+64|0;m=n;b=b+16|0;f=c[b>>2]|0;l=+h[f+96>>3];g=f+16|0;j=f+24|0;k=0;do{h[m+(k<<4)>>3]=+h[d+(k<<4)>>3]-+h[g>>3];h[m+(k<<4)+8>>3]=+h[d+(k<<4)+8>>3]-+h[j>>3];k=k+1|0}while((k|0)!=4);Zr(a,c[(c[(c[f+8>>2]|0)+4>>2]|0)+12>>2]|0,m,e);b=c[b>>2]|0;f=b+16|0;g=b+24|0;j=0;do{h[d+(j<<4)>>3]=+h[m+(j<<4)>>3]+ +h[f>>3];h[d+(j<<4)+8>>3]=+h[m+(j<<4)+8>>3]+ +h[g>>3];j=j+1|0}while((j|0)!=4);h[b+96>>3]=l;i=n;return}function ms(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,g=0.0,i=0,j=0.0,k=0,l=0,m=0.0,n=0.0;k=c[a+16>>2]|0;f=c[k+172>>2]|0;l=c[f>>2]|0;if(!l){j=0.0;b=0.0}else{e=l;a=0;b=0.0;do{b=b+ +h[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+16>>3];a=a+1|0;e=c[f+(a<<2)>>2]|0}while((e|0)!=0);j=+(a|0)}f=c[k+180>>2]|0;i=c[f>>2]|0;if(!i){g=0.0;d=0.0}else{e=i;a=0;d=0.0;do{d=d+ +h[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+16>>3];a=a+1|0;e=c[f+(a<<2)>>2]|0}while((e|0)!=0);g=+(a|0)}m=+h[k+16>>3];n=+h[k+24>>3];j=+W(+(n-+h[(c[(c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0)+24>>3]),+(m-b/j));return +((j+ +W(+(+h[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+24>>3]-n),+(d/g-m)))*.5)}function ns(a,b){a=a|0;b=b|0;var d=0;if((b|0)!=12)if((b|0)!=4)if((b|0)!=6)if((b|0)!=2)if((b|0)!=3)if((b|0)!=1)if((b|0)==9)d=6;else d=(b|0)==8?7:-1;else d=5;else d=4;else d=3;else d=2;else d=1;else d=0;if((a|0)!=12)if((a|0)!=4)if((a|0)!=6)if((a|0)!=2)if((a|0)!=3)if((a|0)!=1)if((a|0)==9)b=6;else b=(a|0)==8?7:-1;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;if((b|d|0)<0)b=0;else b=c[55524+(b<<5)+(d<<2)>>2]|0;return b|0}function os(b,e,f,g,j,k){b=b|0;e=e|0;f=f|0;g=+g;j=+j;k=k|0;var l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0,S=0;R=i;i=i+16e3|0;Q=R;o=c[b+(e<<2)>>2]|0;n=g*.5/+(f|0);n=n>2.0?n:2.0;J=(c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2]|0)+16|0;l=c[J>>2]|0;g=+h[l+16>>3];K=+h[l+24>>3];I=c[o+16>>2]|0;L=g+ +h[I+16>>3];M=K+ +h[I+24>>3];N=g+ +h[I+56>>3];O=K+ +h[I+64>>3];m=!(L>=N)?-1.0:1.0;s=+h[l+80>>3]*.5;switch(ns(d[I+49>>0]|0,d[I+89>>0]|0)|0){case 15:{g=m*(n+(+h[l+96>>3]-(N-g)));break}case 38:{g=m*(n+(+h[l+88>>3]-(g-N)));break}case 41:{g=m*(n+(+h[l+96>>3]-(L-g)));break}case 48:{g=m*(n+(+h[l+96>>3]-(L-g)));break}case 58:case 57:case 51:case 47:case 37:case 14:{g=m*((+h[l+88>>3]-(g-L)+(+h[l+96>>3]-(N-g)))/3.0);break}case 73:{g=m*(n+(+h[l+88>>3]-(g-L)));break}case 83:{g=m*(+h[l+88>>3]-(g-L));break}case 84:{g=m*(n+(+h[l+88>>3]-(g-L)+(+h[l+96>>3]-(N-g)))*.5);break}case 85:case 75:case 74:{g=m*(n*2.0+(+h[l+88>>3]-(g-L)+(+h[l+96>>3]-(N-g)))*.5);break}default:g=0.0}p=K+s;q=(p-M)*3.0;p=(p-O)*3.0;a:do if((f|0)>0){u=n*m;v=Q+8|0;w=Q+16|0;x=Q+24|0;y=Q+32|0;z=Q+40|0;A=(L+N)*.5;B=Q+48|0;C=Q+56|0;D=Q+64|0;E=Q+72|0;F=Q+80|0;G=Q+88|0;H=Q+96|0;I=Q+104|0;n=g;m=s;p=s<p?s:p;t=0;g=s<q?s:q;while(1){r=e+1|0;m=m+j;g=g+j;p=p+j;n=u+n;h[Q>>3]=L;h[v>>3]=M;s=L+n;h[w>>3]=s;h[x>>3]=M+g/3.0;q=K+m;h[y>>3]=s;h[z>>3]=q;h[B>>3]=A;h[C>>3]=q;s=N-n;h[D>>3]=s;h[E>>3]=q;h[F>>3]=s;h[G>>3]=O+p/3.0;h[H>>3]=N;h[I>>3]=O;l=o+16|0;if((c[(c[l>>2]|0)+96>>2]|0)!=0?(S=(c[(c[(gl(c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,e=c[(c[l>>2]|0)+96>>2]|0,P=+h[(S?e+32|0:e+24|0)>>3],l=c[J>>2]|0,h[e+64>>3]=P*.5+(m+ +h[l+24>>3]),h[e+56>>3]=+h[l+16>>3],a[e+81>>0]=1,P>j):0)m=m+(P-j);as(o,c[((c[o>>2]&3|0)==2?o:o+-48|0)+40>>2]|0,Q,7,k);l=t+1|0;if((l|0)==(f|0))break a;e=r;o=c[b+(r<<2)>>2]|0;t=l}}while(0);i=R;return}function ps(b,d,e,f,g){b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,N=0;L=i;i=i+112|0;z=L+96|0;y=L+80|0;x=L+16|0;v=L;K=$p(12)|0;A=K+4|0;c[A>>2]=0;B=K+8|0;c[B>>2]=2e3;c[K>>2]=$p(128e3)|0;w=c[b+4>>2]|0;t=c[b>>2]|0;c[z>>2]=c[t>>2];c[z+4>>2]=c[t+4>>2];c[z+8>>2]=c[t+8>>2];c[z+12>>2]=c[t+12>>2];qs(K,z,0.0);u=x+48|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];if((w|0)>3){o=x+8|0;p=y+8|0;q=x+16|0;r=x+32|0;s=3;b=0;j=0.0;while(1){c[x>>2]=c[u>>2];c[x+4>>2]=c[u+4>>2];c[x+8>>2]=c[u+8>>2];c[x+12>>2]=c[u+12>>2];J=t+(b+1<<4)|0;c[q>>2]=c[J>>2];c[q+4>>2]=c[J+4>>2];c[q+8>>2]=c[J+8>>2];c[q+12>>2]=c[J+12>>2];J=t+(b+2<<4)|0;c[r>>2]=c[J>>2];c[r+4>>2]=c[J+4>>2];c[r+8>>2]=c[J+8>>2];c[r+12>>2]=c[J+12>>2];b=t+(b+3<<4)|0;c[u>>2]=c[b>>2];c[u+4>>2]=c[b+4>>2];c[u+8>>2]=c[b+8>>2];c[u+12>>2]=c[b+12>>2];k=+h[x>>3];l=+h[o>>3];b=1;do{Rs(v,x,3,+(b|0)/20.0,0,0);c[y>>2]=c[v>>2];c[y+4>>2]=c[v+4>>2];c[y+8>>2]=c[v+8>>2];c[y+12>>2]=c[v+12>>2];G=k;k=+h[y>>3];G=G-k;H=l;l=+h[p>>3];H=H-l;j=j+ +O(+(G*G+H*H));c[z>>2]=c[y>>2];c[z+4>>2]=c[y+4>>2];c[z+8>>2]=c[y+8>>2];c[z+12>>2]=c[y+12>>2];qs(K,z,j);b=b+1|0}while((b|0)!=21);b=s+3|0;if((b|0)<(w|0)){J=s;s=b;b=J}else break}}b=c[A>>2]|0;if((c[B>>2]|0)>(b|0))c[K>>2]=cq(c[K>>2]|0,b<<6)|0;I=c[A>>2]|0;J=c[K>>2]|0;x=I+-1|0;G=+h[J+(x<<6)+16>>3];B=(I|0)>0;if(B){H=+(I|0);y=(g|0)==2;z=(f|0)!=0;A=0;do{j=+(A+-1|0);if(!((A|0)>0&!(j>=H)))j=j-H*+M(+(j/H));b=~~j;o=A;A=A+1|0;j=+(A|0);if(j>=H)j=j-H*+M(+(j/H));N=~~j;p=J+(o<<6)|0;k=+h[p>>3];q=J+(o<<6)+8|0;j=+h[q>>3];r=J+(o<<6)+16|0;F=+h[r>>3];s=J+(o<<6)+24|0;t=J+(o<<6)+32|0;u=J+(o<<6)+40|0;v=J+(o<<6)+48|0;w=J+(o<<6)+56|0;l=+h[J+(N<<6)+8>>3]-j;m=+h[J+(N<<6)>>3]-k;if(!(m==0.0&l==0.0)){l=+W(+l,+m);if(!(l>=0.0))C=l+6.283185307179586;else C=l}else C=0.0;m=+h[J+(b<<6)+8>>3]-j;l=+h[J+(b<<6)>>3]-k;if(!(l==0.0&m==0.0)){l=+W(+m,+l);if(!(l>=0.0))l=l+6.283185307179586}else l=0.0;E=+Fb[d&7](F,G,e);do if(!o){l=C+1.5707963267948966;if(y){b=0;n=l;D=l;m=E;k=k-E*+Q(+C);j=j-E*+R(+C)}else{b=0;n=l;D=l;m=E}}else{if((o|0)==(x|0)){m=l+-1.5707963267948966;if(!y){b=0;n=m;D=m;m=E;break}b=0;n=m;D=m;m=E;k=k-E*+Q(+l);j=j-E*+R(+l);break}n=C-l;n=1.5707963267948966-(n<0.0?n+6.283185307179586:n)*.5;m=+Q(+n);m=m==0.0?0.0:E/m;D=C+1.5707963267948966;C=D+n;if(z|m>E*10.0){n=l+-1.5707963267948966;if(!(!(n<0.0)&!(n>=6.283185307179586)))n=n-+M(+(n/6.283185307179586))*6.283185307179586;if(!(D<0.0)&!(D>=6.283185307179586)){b=1;m=E}else{b=1;D=D-+M(+(D/6.283185307179586))*6.283185307179586;m=E}}else{b=0;n=C;D=C}}while(0);h[p>>3]=k;h[q>>3]=j;h[r>>3]=F;a[s>>0]=108;h[t>>3]=n;h[u>>3]=m;c[v>>2]=b;h[w>>3]=D}while((A|0)!=(I|0));o=$p(12)|0;if(B){b=0;do{k=+h[J+(b<<6)>>3];j=+h[J+(b<<6)+8>>3];n=+h[J+(b<<6)+32>>3];m=+h[J+(b<<6)+40>>3];N=c[J+(b<<6)+48>>2]|0;l=+h[J+(b<<6)+56>>3];rs(o,k+m*+Q(+n),j+m*+R(+n));if(N)ss(k,j,m,1,n,l,f,o);b=b+1|0}while((b|0)!=(I|0))}}else{o=$p(12)|0;n=0.0;m=0.0;k=0.0;j=0.0}p=(g|0)==1;l=n+3.141592653589793;if(p){ts(o,k,j,m,n,l);l=n}else rs(o,k+m*+Q(+l),j+m*+R(+l));b=I+-2|0;if((b|0)>-1)while(1){k=+h[J+(b<<6)>>3];j=+h[J+(b<<6)+8>>3];n=+h[J+(b<<6)+40>>3];N=c[J+(b<<6)+48>>2]|0;l=+h[J+(b<<6)+32>>3]+3.141592653589793;m=+h[J+(b<<6)+56>>3]+3.141592653589793;rs(o,k+n*+Q(+m),j+n*+R(+m));if(N)ss(k,j,n,0,l,m,f,o);if((b|0)>0)b=b+-1|0;else{m=n;break}}if(p)ts(o,k,j,m,l,l+3.141592653589793);pB(c[K>>2]|0);pB(K);i=L;return o|0}function qs(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0;i=a+4|0;e=c[i>>2]|0;f=a+8|0;g=c[f>>2]|0;if((e|0)<(g|0))f=c[a>>2]|0;else{c[f>>2]=g<<1;f=cq(c[a>>2]|0,g<<7)|0;c[a>>2]=f;e=c[i>>2]|0}h[f+(e<<6)>>3]=+h[b>>3];h[f+(e<<6)+8>>3]=+h[b+8>>3];c[i>>2]=e+1;h[f+(e<<6)+16>>3]=d;return}function rs(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,g=0;f=c[a>>2]|0;e=a+4|0;if((f|0)<(c[e>>2]|0)){g=c[a+8>>2]|0;e=f}else{c[e>>2]=2e3;e=a+8|0;g=cq(c[e>>2]|0,32e3)|0;c[e>>2]=g;e=c[a>>2]|0}c[a>>2]=e+1;h[g+(e<<4)>>3]=b;h[g+(e<<4)+8>>3]=d;return}function ss(a,b,c,d,e,f,g,h){a=+a;b=+b;c=+c;d=d|0;e=+e;f=+f;g=g|0;h=h|0;var i=0.0;d=(d|0)==0;i=d?e:f;do if((g|0)==1){e=(d?f:e)-i;e=!(e<=1.7453292519943296e-03)?e:e+6.283185307179586;if(e<3.141592653589793){ts(h,a,b,c,i+e,i);break}else{rs(h,+Q(+i)*c+a,+R(+i)*c+a);break}}else rs(h,+Q(+i)*c+a,+R(+i)*c+a);while(0);return}function ts(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0,h=0.0;rs(a,+Q(+e)*d+b,+R(+e)*d+c);if(!(d==0.0)){if(f>e)do f=f+-6.283185307179586;while(f>e);f=e-f;if(f>6.283185307179586)do f=f+-6.283185307179586;while(f>6.283185307179586);f=f/19.0;g=1;do{h=e-f*+(g|0);rs(a,+Q(+h)*d+b,+R(+h)*d+c);g=g+1|0}while((g|0)!=20)}return}function us(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;r=s+8|0;q=s;o=s+12|0;c[o>>2]=0;l=e+4|0;p=c[l>>2]|0;if(!p)Ia(130294,130305,203,130316);f=c[p>>2]|0;if(!f)Ia(130330,130305,206,130316);j=p+8|0;if(!(c[j>>2]|0)){g=c[13945]|0;if((g|0)!=0?(hA(g,f)|0)==0:0)f=c[13954]|0;else{pB(g);c[13945]=oA(f)|0;f=Zz(55780,55820,35,36,30)|0;c[13954]=f}c[j>>2]=f}if(!(a[124827]|0))n=0;else{n=(ap(c[p>>2]|0)|0)==0;n=n?0:o}if(!((Cv(d,e,n)|0)<<24>>24)){l=c[l>>2]|0;f=c[l>>2]|0;m=+h[l+16>>3];l=e+32|0;h[l>>3]=0.0;h[e+40>>3]=m*1.2;h[e+16>>3]=0.0;h[e+24>>3]=m*.1;c[e+8>>2]=0;c[e+12>>2]=0;if(qA(f,130341,4)|0)if((qA(f,130346,5)|0)!=0?(qA(f,130352,9)|0)!=0:0){j=36472;f=130362}else{j=40568;f=130398}else{j=38520;f=130379}if(n)c[n>>2]=f;g=c[e>>2]|0;if(g){f=a[g>>0]|0;if(!(f<<24>>24))k=0.0;else{k=0.0;do{g=g+1|0;k=k+ +h[j+((f&255)<<3)>>3];h[l>>3]=k;f=a[g>>0]|0}while(f<<24>>24!=0)}h[l>>3]=m*k}}do if(n){g=c[o>>2]|0;j=c[22667]|0;f=c[p>>2]|0;if(!g){c[r>>2]=f;Bz(j,130447,r)|0;break}else{c[q>>2]=f;c[q+4>>2]=g;Bz(j,130415,q)|0;break}}while(0);r=e+32|0;c[b>>2]=c[r>>2];c[b+4>>2]=c[r+4>>2];c[b+8>>2]=c[r+8>>2];c[b+12>>2]=c[r+12>>2];i=s;return}function vs(a){a=a|0;var b=0;b=a+108|0;c[b>>2]=0;c[a+112>>2]=32;c[a+116>>2]=-1;c[a+120>>2]=16;c[a+124>>2]=58;c[a+128>>2]=22;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=0;b=Vi(b,c[12573]|0)|0;c[a+144>>2]=b;return b|0}function ws(a,b){a=a|0;b=b|0;return hA(c[a>>2]|0,c[b>>2]|0)|0}function xs(a,b,d){a=a|0;b=b|0;d=d|0;a=qB(1,32)|0;d=c[b>>2]|0;if(d)c[a>>2]=oA(d)|0;d=c[b+4>>2]|0;if(d)c[a+4>>2]=oA(d)|0;c[a+24>>2]=c[b+24>>2]&127;h[a+16>>3]=+h[b+16>>3];c[a+8>>2]=c[b+8>>2];return a|0}function ys(a,b,d){a=a|0;b=b|0;d=d|0;d=c[b>>2]|0;if(d)pB(d);d=c[b+4>>2]|0;if(d)pB(d);pB(b);return}function zs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0;e=c[b>>2]|0;a=c[d>>2]|0;i=(a|0)==0;if(!e)if(i)j=5;else e=-1;else if(!i){e=lA(e,a)|0;if(!e)j=5}else e=1;do if((j|0)==5){i=c[b+4>>2]|0;e=c[d+4>>2]|0;a=(e|0)==0;if(!i){if(!a){e=-1;break}}else{if(a){e=1;break}e=lA(i,e)|0;if(e)break}e=c[b+24>>2]&127;a=c[d+24>>2]&127;if((e|0)!=(a|0)){e=e-a|0;break}g=+h[b+16>>3];f=+h[d+16>>3];if(g<f)e=-1;else e=g>f&1}while(0);return e|0}function As(){Ma(57080)|0;return}function Bs(){var a=0,b=0;b=i;i=i+16|0;a=b;Ma(a|0)|0;i=b;return +(+((c[a+4>>2]|0)+(c[a>>2]|0)-(c[14270]|0)-(c[14271]|0)|0)/60.0)}function Cs(a){a=a|0;var b=0,d=0;b=$p(16)|0;a=(a|0)<2?2:a;d=$p(a<<2)|0;c[b>>2]=d;c[b+12>>2]=d;c[b+8>>2]=d;c[b+4>>2]=d+(a<<2);return b|0}function Ds(a){a=a|0;pB(c[a>>2]|0);pB(a);return}function Es(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+12|0;e=c[d>>2]|0;c[d>>2]=e+4;c[e>>2]=b;if((c[d>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2];return}function Fs(a){a=a|0;var b=0,d=0,e=0;d=a+8|0;b=c[d>>2]|0;if((b|0)!=(c[a+12>>2]|0)){e=b+4|0;c[d>>2]=e;b=c[b>>2]|0;if(e>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2]}else b=0;return b|0}function Gs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;if((((d|0)!=0?(g=Aj(b,d)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0)?(h=bA(g,j,10)|0,(g|0)!=(c[j>>2]|0)):0)e=(h|0)<(f|0)?f:h;i=k;return e|0}function Hs(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0.0,j=0,k=0;k=i;i=i+16|0;j=k;if((((b|0)!=0&(d|0)!=0?(g=Aj(b,d)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0)?(h=+$z(g,j),(g|0)!=(c[j>>2]|0)):0)e=h<f?f:h;i=k;return +e}function Is(a,b,c){a=a|0;b=b|0;c=c|0;if((a|0)!=0&(b|0)!=0)c=Aj(a,b)|0;return c|0}function Js(b,c,d){b=b|0;c=c|0;d=d|0;if((b|0)!=0&(c|0)!=0)c=Aj(b,c)|0;else c=d;if(!((c|0)!=0?(a[c>>0]|0)!=0:0))c=d;return c|0}function Ks(a,b,c){a=a|0;b=b|0;c=c|0;if(!b)b=c&255;else b=Vs(Aj(a,b)|0,0)|0;return b|0}function Ls(a){a=a|0;return Vs(a,0)|0}function Ms(a){a=a|0;var b=0,d=0,e=0;b=c[a+16>>2]|0;e=b+220|0;d=c[e>>2]|0;if((d|0)!=(a|0)&(d|0)!=0)do{a=c[(c[(c[e>>2]|0)+16>>2]|0)+220>>2]|0;if(!a)a=d;else{c[e>>2]=a;a=c[b+220>>2]|0}b=c[a+16>>2]|0;e=b+220|0;d=c[e>>2]|0}while((d|0)!=(a|0)&(d|0)!=0);return a|0}function Ns(a,b){a=a|0;b=b|0;var d=0,e=0;do if((a|0)!=(b|0)){d=c[a+16>>2]|0;e=d+220|0;if(!(c[e>>2]|0)){c[e>>2]=a;c[d+216>>2]=1}else a=Ms(a)|0;e=c[b+16>>2]|0;d=e+220|0;if(!(c[d>>2]|0)){c[d>>2]=b;c[e+216>>2]=1}else{e=Ms(b)|0;b=e;e=c[e+16>>2]|0}d=c[a+16>>2]|0;if((c[d+120>>2]|0)>(c[e+120>>2]|0)){c[d+220>>2]=b;a=e+216|0;c[a>>2]=(c[a>>2]|0)+(c[d+216>>2]|0);break}else{c[e+220>>2]=a;b=d+216|0;c[b>>2]=(c[b>>2]|0)+(c[e+216>>2]|0);b=a;break}}else b=a;while(0);return b|0}function Os(b){b=b|0;b=c[b+16>>2]|0;c[b+216>>2]=1;c[b+220>>2]=0;a[b+159>>0]=0;return}function Ps(a,b){a=a|0;b=b|0;if((Ms(a)|0)==(a|0)){a=c[a+16>>2]|0;c[a+220>>2]=b;b=(c[b+16>>2]|0)+216|0;c[b>>2]=(c[b>>2]|0)+(c[a+216>>2]|0);return}else Ia(131282,131274,194,131298)}function Qs(a,b){a=a|0;b=b|0;var d=0.0;b=c[(c[b+16>>2]|0)+132>>2]|0;d=+h[b+8>>3]*72.0;h[a>>3]=+h[b>>3]*72.0;h[a+8>>3]=d;return}function Rs(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;r=i;i=i+576|0;q=r;p=(d|0)<0;if(!p){j=0;while(1){o=q+(j<<4)|0;n=b+(j<<4)|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];if((j|0)==(d|0))break;else j=j+1|0}if((d|0)>=1){l=1.0-e;j=1;n=d;while(1){if((j|0)<=(d|0)){b=j+-1|0;k=+h[q+(b*96|0)+8>>3];m=+h[q+(b*96|0)>>3];o=0;do{s=o;o=o+1|0;t=m;m=+h[q+(b*96|0)+(o<<4)>>3];h[q+(j*96|0)+(s<<4)>>3]=l*t+m*e;t=k;k=+h[q+(b*96|0)+(o<<4)+8>>3];h[q+(j*96|0)+(s<<4)+8>>3]=l*t+k*e}while((o|0)!=(n|0))}if((j|0)==(d|0))break;else{j=j+1|0;n=n+-1|0}}}}if(!((f|0)==0|p)){b=0;while(1){s=f+(b<<4)|0;o=q+(b*96|0)|0;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];c[s+8>>2]=c[o+8>>2];c[s+12>>2]=c[o+12>>2];if((b|0)==(d|0))break;else b=b+1|0}}if(!((g|0)==0|p)){b=0;while(1){s=g+(b<<4)|0;f=q+((d-b|0)*96|0)+(b<<4)|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];if((b|0)==(d|0))break;else b=b+1|0}}s=q+(d*96|0)|0;c[a>>2]=c[s>>2];c[a+4>>2]=c[s+4>>2];c[a+8>>2]=c[s+8>>2];c[a+12>>2]=c[s+12>>2];i=r;return}function Ss(b){b=b|0;var d=0,e=0,f=0,g=0;d=0;do{e=c[14274]|0;if((e-d|0)<1024){f=e+1024|0;c[14274]=f;f=cq(c[14275]|0,f)|0;c[14275]=f;e=c[14274]|0}else f=c[14275]|0;e=yz(f+d|0,e-d|0,b)|0;if(!e){g=6;break}d=(pA(e)|0)+d|0;e=c[14275]|0}while((a[e+(d+-1)>>0]|0)!=10);if((g|0)==6)e=c[14275]|0;return ((d|0)>0?e:0)|0}function Ts(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+8|0;f=h;do if((b|0)!=0?(a[b>>0]|0)!=0:0){e=c[13357]|0;if(!e){d=c[13356]|0;e=c[14277]|0;if((c[14276]|0)==(d|0))d=e;else{if(e){pB(c[e>>2]|0);pB(c[14277]|0);c[14277]=0;d=c[13356]|0}c[14276]=d;if(!d)break;if(!(a[d>>0]|0))break;d=st(d)|0;c[14277]=d}if(!((a[b>>0]|0)!=47&(d|0)!=0))break;b=tt(d,c[14278]|0,b)|0;break}d=c[13355]|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){if(!(c[14276]|0)){c[14277]=st(d)|0;d=c[13355]|0;c[14276]=d}e=uA(b,47)|0;e=(e|0)==0?b:e+1|0;f=uA(e,92)|0;f=(f|0)==0?e:f+1|0;e=uA(f,58)|0;e=(e|0)==0?f:e+1|0;if(!((a[131309]|0)==0|(e|0)==(b|0))){c[g>>2]=b;c[g+4>>2]=d;dj(0,131435,g)|0;a[131309]=0}b=tt(c[14277]|0,c[14278]|0,e)|0;break}if(a[131309]|0){c[f>>2]=e;dj(0,131310,f)|0;a[131309]=0;b=0}else b=0}else b=0;while(0);i=h;return b|0}function Us(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[d>>2]|0;a:do if(!f)f=0;else{h=(b|0)==0;g=f;f=0;do{if((!h?(a[b>>0]|0)==(a[g>>0]|0):0)?(lA(b,g)|0)==0:0)break a;f=f+1|0;g=c[d+(f<<2)>>2]|0}while((g|0)!=0)}while(0);return c[e+(f<<2)>>2]|0}function Vs(b,c){b=b|0;c=c|0;var d=0;if((b|0)!=0?(d=a[b>>0]|0,d<<24>>24!=0):0)if((hA(b,160740)|0)!=0?(hA(b,131588)|0)!=0:0)if((hA(b,131591)|0)!=0?(hA(b,131596)|0)!=0:0){if(((d<<24>>24)+-48|0)>>>0<10)c=(Yz(b)|0)&255}else c=1;else c=0;return c|0}function Ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0.0;y=i;i=i+80|0;x=y+16|0;w=y;s=c[b+4>>2]|0;t=c[b>>2]|0;v=+h[d>>3];u=d+8|0;f=+h[u>>3];if((s|0)>0){e=1.e+38;d=-1;b=-1;r=0;do{q=c[t+(r*48|0)>>2]|0;p=c[t+(r*48|0)+4>>2]|0;if((p|0)>0){n=0;do{m=+h[q+(n<<4)>>3]-v;o=+h[q+(n<<4)+8>>3]-f;o=m*m+o*o;z=(b|0)==-1|o<e;e=z?o:e;b=z?n:b;d=z?r:d;n=n+1|0}while((n|0)!=(p|0))}r=r+1|0}while((r|0)<(s|0))}else{d=-1;b=-1}z=c[t+(d*48|0)>>2]|0;b=(((b|0)==((c[t+(d*48|0)+4>>2]|0)+-1|0))<<31>>31)+b|0;b=b-((b|0)%3|0)|0;o=+h[z+(b<<4)>>3];h[x>>3]=o;j=+h[z+(b<<4)+8>>3];h[x+8>>3]=j;t=b+1|0;h[x+16>>3]=+h[z+(t<<4)>>3];h[x+24>>3]=+h[z+(t<<4)+8>>3];t=b+2|0;h[x+32>>3]=+h[z+(t<<4)>>3];h[x+40>>3]=+h[z+(t<<4)+8>>3];b=b+3|0;e=+h[z+(b<<4)>>3];h[x+48>>3]=e;g=+h[z+(b<<4)+8>>3];h[x+56>>3]=g;o=o-v;j=j-f;j=o*o+j*j;e=e-v;g=g-f;g=e*e+g*g;Rs(w,x,3,.5,0,0);f=+h[w>>3];b=w+8|0;e=+h[b>>3];a:do if(!(+N(+(j-g))<1.0)){o=+h[u>>3];m=.5;k=1.0;l=0.0;do{if(+N(+(k-l))<1.0e-05)break a;z=j<g;A=f-v;f=e-o;f=A*A+f*f;j=z?j:f;g=z?f:g;l=z?l:m;k=z?m:k;m=(l+k)*.5;Rs(w,x,3,m,0,0);f=+h[w>>3];e=+h[b>>3]}while(!(+N(+(j-g))<1.0))}while(0);h[a>>3]=f;h[a+8>>3]=e;i=y;return}function Xs(b){b=b|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,l=0,m=0;k=+Hs(b,c[13377]|0,.75,.01);l=b+16|0;h[(c[l>>2]|0)+32>>3]=k;k=+Hs(b,c[13376]|0,.5,.02);h[(c[l>>2]|0)+40>>3]=k;e=c[13378]|0;j=(b|0)!=0;if(j&(e|0)!=0){e=Aj(b,e)|0;if(!e)g=4;else g=3}else{e=131600;g=3}if((g|0)==3)if(!(a[e>>0]|0))g=4;if((g|0)==4)e=131600;i=nr(e,b)|0;c[(c[l>>2]|0)+8>>2]=i;i=Aj(b,c[13393]|0)|0;k=+Hs(b,c[13389]|0,14.0,1.0);e=c[13390]|0;if(j&(e|0)!=0){e=Aj(b,e)|0;if(!e)g=8;else g=7}else{e=131608;g=7}if((g|0)==7)if(!(a[e>>0]|0))g=8;if((g|0)==8)e=131608;f=c[13391]|0;if(j&(f|0)!=0){f=Aj(b,f)|0;if(!f)g=12;else g=11}else{f=160746;g=11}if((g|0)==11)if(!(a[f>>0]|0))g=12;if((g|0)==12)f=160746;g=(Ll(i)|0)!=0;j=(kr(b)|0)==2;g=Qp(b,i,(j?4:0)|(g?2:0),k,e,f)|0;c[(c[l>>2]|0)+104>>2]=g;g=c[13394]|0;if(((g|0)!=0?(m=Aj(b,g)|0,(m|0)!=0):0)?(a[m>>0]|0)!=0:0){j=(Ll(m)|0)!=0;m=Qp(b,m,j?2:0,k,e,f)|0;c[(c[l>>2]|0)+108>>2]=m;m=(c[(gl(b)|0)+16>>2]|0)+113|0;a[m>>0]=d[m>>0]|16}j=(Gs(b,c[13397]|0,0,0)|0)&255;m=c[l>>2]|0;a[m+144>>0]=j;zb[c[c[(c[m+8>>2]|0)+4>>2]>>2]&127](b);return}function Ys(b){b=b|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+112|0;p=x+96|0;r=x+80|0;v=x+40|0;w=x;u=b+48|0;s=gl(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)|0;m=p+8|0;c[m>>2]=0;q=r+8|0;c[q>>2]=0;e=c[13428]|0;if(((e|0)!=0?(g=Aj(b,e)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){ut(b,p);j=(Ll(g)|0)!=0;k=+h[p>>3];f=c[m>>2]|0;e=c[p+12>>2]|0;j=Qp(b,g,j?2:0,k,f,e)|0;l=b+16|0;g=c[l>>2]|0;c[g+96>>2]=j;j=(c[s+16>>2]|0)+113|0;a[j>>0]=d[j>>0]|1;j=c[13438]|0;if(!j)j=160740;else{j=Aj(b,j)|0;g=c[l>>2]|0}a[g+114>>0]=Vs(j,0)|0;l=1}else{e=0;k=0.0;f=0;l=0}g=c[13429]|0;if(((g|0)!=0?(n=Aj(b,g)|0,(n|0)!=0):0)?(a[n>>0]|0)!=0:0){if(!f){ut(b,p);k=+h[p>>3];f=c[m>>2]|0;e=c[p+12>>2]|0}m=(Ll(n)|0)!=0;n=Qp(b,n,m?2:0,k,f,e)|0;c[(c[b+16>>2]|0)+108>>2]=n;n=(c[s+16>>2]|0)+113|0;a[n>>0]=d[n>>0]|32}e=c[13443]|0;if(((e|0)!=0?(o=Aj(b,e)|0,(o|0)!=0):0)?(a[o>>0]|0)!=0:0){vt(b,p,r);n=(Ll(o)|0)!=0;k=+h[r>>3];f=c[q>>2]|0;e=c[r+12>>2]|0;o=Qp(b,o,n?2:0,k,f,e)|0;c[(c[b+16>>2]|0)+100>>2]=o;o=(c[s+16>>2]|0)+113|0;a[o>>0]=d[o>>0]|2}else{e=0;k=0.0;f=0}g=c[13444]|0;if(((g|0)!=0?(t=Aj(b,g)|0,(t|0)!=0):0)?(a[t>>0]|0)!=0:0){if(!f){vt(b,p,r);k=+h[r>>3];f=c[q>>2]|0;e=c[r+12>>2]|0}r=(Ll(t)|0)!=0;t=Qp(b,t,r?2:0,k,f,e)|0;c[(c[b+16>>2]|0)+104>>2]=t;t=(c[s+16>>2]|0)+113|0;a[t>>0]=d[t>>0]|4}e=zj(b,134905)|0;e=(e|0)!=0?e:164137;if(a[e>>0]|0)a[(c[(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)+16>>2]|0)+145>>0]=1;j=b+16|0;g=(c[j>>2]|0)+16|0;f=c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0;wt(v,c[(c[(c[(c[f+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,f,e);e=v;f=g+40|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));if((xt(b,c[13450]|0)|0)<<24>>24)a[(c[j>>2]|0)+46>>0]=0;e=zj(b,134914)|0;e=(e|0)!=0?e:164137;if(!(a[e>>0]|0))f=b+-48|0;else{f=b+-48|0;a[(c[(c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0)+16>>2]|0)+145>>0]=1}g=(c[j>>2]|0)+56|0;f=c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0;wt(w,c[(c[(c[(c[f+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,f,e);e=w;f=g+40|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));if((xt(b,c[13451]|0)|0)<<24>>24)a[(c[j>>2]|0)+86>>0]=0;i=x;return l|0}function Zs(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0.0,n=0;l=c[b+8>>2]|0;k=c[b+4>>2]|0;j=c[b+44>>2]|0;k=_((k|0)>1?k+-1|0:0,l)|0;d=+h[j+(k<<4)>>3];i=+h[j+(k<<4)+8>>3];if((l|0)>1){g=d;f=i;e=d;d=i;b=1;do{n=b+k|0;m=+h[j+(n<<4)>>3];g=g<m?g:m;i=+h[j+(n<<4)+8>>3];f=f<i?f:i;e=e>m?e:m;d=d>i?d:i;b=b+1|0}while((b|0)!=(l|0))}else{g=d;f=i;e=d;d=i}h[a>>3]=g;h[a+8>>3]=f;h[a+16>>3]=e;h[a+24>>3]=d;return}function _s(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0.0;b=c[b+16>>2]|0;s=c[b+116>>2]&1;o=b+16|0;a[k>>0]=a[o>>0];a[k+1>>0]=a[o+1>>0];a[k+2>>0]=a[o+2>>0];a[k+3>>0]=a[o+3>>0];a[k+4>>0]=a[o+4>>0];a[k+5>>0]=a[o+5>>0];a[k+6>>0]=a[o+6>>0];a[k+7>>0]=a[o+7>>0];p=+h[k>>3];l=b+24|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];m=+h[k>>3];g=b+32|0;a[k>>0]=a[g>>0];a[k+1>>0]=a[g+1>>0];a[k+2>>0]=a[g+2>>0];a[k+3>>0]=a[g+3>>0];a[k+4>>0]=a[g+4>>0];a[k+5>>0]=a[g+5>>0];a[k+6>>0]=a[g+6>>0];a[k+7>>0]=a[g+7>>0];i=+h[k>>3];b=b+40|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];e=+h[k>>3];t=+h[d+56>>3];r=+h[d+64>>3];s=(s|0)==0;f=+h[d+24>>3];n=+h[d+32>>3];j=(s?f:n)*.5;q=t-j;j=t+j;f=(s?n:f)*.5;n=r-f;f=r+f;h[o>>3]=q<p?q:p;h[l>>3]=n<m?n:m;h[g>>3]=j>i?j:i;h[b>>3]=f>e?f:e;return}function $s(b){b=b|0;var d=0.0,e=0.0,f=0,g=0.0,i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;if(!((ek(b)|0)==0?(c[(c[b+16>>2]|0)+180>>2]|0)==0:0)){f=Rk(b)|0;s=b+16|0;if(!f){d=-2147483647.0;i=-2147483647.0;g=2147483647.0;e=2147483647.0}else{e=2147483647.0;g=2147483647.0;i=-2147483647.0;d=-2147483647.0;do{j=c[f+16>>2]|0;r=c[j+132>>2]|0;x=+h[r>>3]*72.0;w=+h[r+8>>3]*72.0;t=(+h[j+88>>3]+ +h[j+96>>3])*.5;k=+h[j+80>>3]*.5;v=x-t;u=w-k;t=x+t;k=w+k;e=e<v?e:v;g=g<u?g:u;i=i>t?i:t;d=d>k?d:k;j=c[j+108>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];r=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(r?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(r?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=Lj(b,f)|0;if(j){r=j;do{q=c[r+16>>2]|0;j=c[q+8>>2]|0;if(j){p=c[j+4>>2]|0;if((p|0)>0){o=c[j>>2]|0;n=0;do{m=c[o+(n*48|0)+4>>2]|0;if((m|0)>0){l=c[o+(n*48|0)>>2]|0;j=0;do{w=+h[l+(j<<4)>>3];x=+h[l+(j<<4)+8>>3];e=e<w?e:w;g=g<x?g:x;i=i>w?i:w;d=d>x?d:x;j=j+1|0}while((j|0)<(m|0))}n=n+1|0}while((n|0)<(p|0))}j=c[q+96>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];p=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(p?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(p?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=c[q+100>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];p=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(p?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(p?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=c[q+104>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];p=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(p?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(p?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=c[q+108>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];q=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(q?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(q?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}}r=Nj(b,r)|0}while((r|0)!=0)}f=Sk(b,f)|0}while((f|0)!=0)}m=c[s>>2]|0;l=c[m+180>>2]|0;if((l|0)>=1){j=c[m+184>>2]|0;f=1;while(1){s=c[(c[j+(f<<2)>>2]|0)+16>>2]|0;u=+h[s+16>>3];v=+h[s+24>>3];w=+h[s+32>>3];x=+h[s+40>>3];e=e<u?e:u;g=g<v?g:v;i=i>w?i:w;d=d>x?d:x;if((f|0)<(l|0))f=f+1|0;else break}}f=c[m+12>>2]|0;if((f|0)!=0?(a[f+81>>0]|0)!=0:0){t=+h[f+56>>3];w=+h[f+64>>3];s=(c[m+116>>2]&1|0)==0;k=+h[f+24>>3];x=+h[f+32>>3];v=(s?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(s?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}h[m+16>>3]=e;h[m+24>>3]=g;h[m+32>>3]=i;h[m+40>>3]=d}return}function at(a){a=a|0;if((c[a+60>>2]|0)==(a|0))a=1;else a=(qA(ok(a)|0,131620,7)|0)==0;return a&1|0}function bt(a){a=a|0;var b=0;b=Vi(57116,c[12573]|0)|0;yt(a,b);return b|0}function ct(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=am(b,131628,1)|0;xl(h,160878,280,1)|0;d=Rk(b)|0;if(d)do{e=Lj(b,d)|0;if(e)do{g=c[e>>2]&3;f=c[((g|0)==3?e:e+48|0)+40>>2]|0;g=c[((g|0)==2?e:e+-48|0)+40>>2]|0;if(!((a[(c[f+16>>2]|0)+118>>0]|0)==0?(a[(c[g+16>>2]|0)+118>>0]|0)==0:0)){f=At(f,h)|0;f=zt(e,f,At(g,h)|0)|0;g=c[e+16>>2]|0;i=g+8|0;f=c[f+16>>2]|0;c[f+8>>2]=c[i>>2];c[i>>2]=0;i=g+96|0;c[f+96>>2]=c[i>>2];c[i>>2]=0;i=g+108|0;c[f+108>>2]=c[i>>2];c[i>>2]=0;i=g+100|0;c[f+100>>2]=c[i>>2];c[i>>2]=0;g=g+104|0;c[f+104>>2]=c[g>>2];c[g>>2]=0;pt(e)}e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);d=Rk(h)|0;if(d)do{i=d;d=Sk(h,d)|0;dt(i);fl(b,i)|0}while((d|0)!=0);dk(h)|0;return}function dt(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+132>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+8>>2]|0;if(d){zb[c[(c[d+4>>2]|0)+4>>2]&127](a);b=c[e>>2]|0}Sp(c[b+104>>2]|0);Sp(c[(c[e>>2]|0)+108>>2]|0);yl(a,160855)|0;return}function et(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=rj(a,b,c,0)|0;if(!e)e=rj(a,b,c,d)|0;return e|0}function ft(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+1072|0;m=p+8|0;l=p;k=p+32|0;o=p+16|0;c[k>>2]=b;if((c[14792]|0)!=(d|0)){c[14792]=d;a[131643]=0}gj(o,1024,p+40|0);e=b+1|0;c[k>>2]=e;b=a[b>>0]|0;n=o+4|0;j=o+8|0;if(b<<24>>24)do{a:do if((b&255)<192){if(b<<24>>24==38){f=Dt(k)|0;if(!f)b=38;else{if(f>>>0<127){b=f&255;break}b=c[n>>2]|0;e=b>>>0>=(c[j>>2]|0)>>>0;if(f>>>0<2047){if(e){hj(o,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=f>>>6|192;b=(f&63|128)&255;break}if(e){hj(o,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=f>>>12|224;b=c[n>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=f>>>6&63|128;b=(f&63|128)&255}}}else{if((b&255)>=224)if((b&255)>=240)if((b&255)<248)h=3;else{if(!(a[131643]|0)){c[l>>2]=ok(d)|0;dj(0,131644,l)|0;a[131643]=1}b=Ct(b,o)|0;break}else h=2;else h=1;g=0;while(1){if((a[e>>0]&-64)<<24>>24!=-128)break;f=c[n>>2]|0;if(f>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;f=c[n>>2]|0}c[n>>2]=f+1;a[f>>0]=b;b=e;e=e+1|0;c[k>>2]=e;b=a[b>>0]|0;g=g+1|0;if((g|0)>=(h|0))break a}if(!(a[131643]|0)){g=ok(d)|0;c[m>>2]=h+1;c[m+4>>2]=g;dj(0,131765,m)|0;a[131643]=1}b=Ct(b,o)|0}while(0);e=c[n>>2]|0;if(e>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;e=c[n>>2]|0}c[n>>2]=e+1;a[e>>0]=b;b=c[k>>2]|0;e=b+1|0;c[k>>2]=e;b=a[b>>0]|0}while(b<<24>>24!=0);b=c[n>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;b=c[n>>2]|0}a[b>>0]=0;m=c[o>>2]|0;c[n>>2]=m;n=oA(m)|0;kj(o);i=p;return n|0}function gt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+1056|0;h=l+16|0;k=l;gj(k,1024,l+24|0);c[h>>2]=b+1;b=a[b>>0]|0;j=k+4|0;g=k+8|0;if(b<<24>>24)do{d=b&255;if(b<<24>>24==38){b=Dt(h)|0;if(!b){b=38;f=5}else f=4}else{b=d;f=4}do if((f|0)==4){f=0;if(b>>>0<127)f=5;else{d=c[j>>2]|0;e=d>>>0>=(c[g>>2]|0)>>>0;if(b>>>0<2047){if(e){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>6|192;d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b&63|128;break}if(e){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>12|224;d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>6&63|128;d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b&63|128}}while(0);if((f|0)==5){d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b}b=c[h>>2]|0;c[h>>2]=b+1;b=a[b>>0]|0}while(b<<24>>24!=0);b=c[j>>2]|0;if(b>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;b=c[j>>2]|0}a[b>>0]=0;h=c[k>>2]|0;c[j>>2]=h;j=oA(h)|0;kj(k);i=l;return j|0}function ht(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+1040|0;j=k;gj(j,1024,k+16|0);e=a[b>>0]|0;h=j+4|0;g=j+8|0;if(e<<24>>24){f=e;while(1){e=b+1|0;if((f&255)<127){b=c[h>>2]|0;if(b>>>0>=(c[g>>2]|0)>>>0){hj(j,1)|0;b=c[h>>2]|0}c[h>>2]=b+1;a[b>>0]=f}else{f=((d[e>>0]|0)&63|(f&255)<<6)&255;e=c[h>>2]|0;if(e>>>0>=(c[g>>2]|0)>>>0){hj(j,1)|0;e=c[h>>2]|0}c[h>>2]=e+1;a[e>>0]=f;e=b+2|0}f=a[e>>0]|0;if(!(f<<24>>24))break;else b=e}}e=c[h>>2]|0;if(e>>>0>=(c[g>>2]|0)>>>0){hj(j,1)|0;e=c[h>>2]|0}a[e>>0]=0;g=c[j>>2]|0;c[h>>2]=g;h=oA(g)|0;kj(j);i=k;return h|0}function it(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,j=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0.0;p=i;i=i+48|0;o=p+16|0;m=p+32|0;n=p;f=+h[d+16>>3];e=c[b+16>>2]|0;if(((f>=+h[e+48>>3]?(l=+h[d>>3],+h[e+64>>3]>=l):0)?(g=+h[d+24>>3],g>=+h[e+56>>3]):0)?(j=+h[d+8>>3],+h[e+72>>3]>=j):0){d=e+16|0;a[k>>0]=a[d>>0];a[k+1>>0]=a[d+1>>0];a[k+2>>0]=a[d+2>>0];a[k+3>>0]=a[d+3>>0];a[k+4>>0]=a[d+4>>0];a[k+5>>0]=a[d+5>>0];a[k+6>>0]=a[d+6>>0];a[k+7>>0]=a[d+7>>0];q=+h[k>>3];d=e+24|0;a[k>>0]=a[d>>0];a[k+1>>0]=a[d+1>>0];a[k+2>>0]=a[d+2>>0];a[k+3>>0]=a[d+3>>0];a[k+4>>0]=a[d+4>>0];a[k+5>>0]=a[d+5>>0];a[k+6>>0]=a[d+6>>0];a[k+7>>0]=a[d+7>>0];j=+h[k>>3]-(g+j)*.5;h[n>>3]=q-(l+f)*.5;h[n+8>>3]=j;c[m>>2]=b;c[m+4>>2]=0;e=c[(c[(c[e+8>>2]|0)+4>>2]|0)+12>>2]|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];e=Lb[e&63](m,o)|0}else e=0;i=p;return e|0}function jt(b,c){b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0;g=+h[b+24>>3]*.5;i=+h[b+32>>3]*.5;j=b+56|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];f=+h[k>>3];b=b+64|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];d=+h[k>>3];e=d-i;d=i+d;if((+h[c+16>>3]>=f-g?g+f>=+h[c>>3]:0)?+h[c+24>>3]>=e:0)b=d>=+h[c+8>>3]&1;else b=0;return b|0}function kt(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0,F=0.0,G=0.0,H=0.0;E=i;i=i+176|0;y=E+144|0;t=E+128|0;s=E+112|0;z=E+96|0;A=E+80|0;x=E+48|0;u=E;v=b+16|0;b=c[v>>2]|0;r=c[b+8>>2]|0;do if((((((r|0)!=0?(q=r+16|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],g=+h[k>>3],q=r+24|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],F=+h[k>>3],q=r+32|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],f=+h[k>>3],F>=+h[d>>3]):0)?(q=r+8|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],+h[d+16>>3]>=+h[k>>3]):0)?f>=+h[d+8>>3]:0)?+h[d+24>>3]>=g:0)?(w=r+4|0,(c[w>>2]|0)>0):0){l=u+4|0;m=u+8|0;n=u+12|0;o=u+32|0;p=u+16|0;q=0;a:while(1){e=(c[r>>2]|0)+(q*48|0)|0;c[x>>2]=c[d>>2];c[x+4>>2]=c[d+4>>2];c[x+8>>2]=c[d+8>>2];c[x+12>>2]=c[d+12>>2];c[x+16>>2]=c[d+16>>2];c[x+20>>2]=c[d+20>>2];c[x+24>>2]=c[d+24>>2];c[x+28>>2]=c[d+28>>2];b=u;j=b+48|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(j|0));b=c[l>>2]|0;if(!b){e=9;break}e=c[u>>2]|0;c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];b:do if((b|0)>1){j=e+16|0;c[z>>2]=c[j>>2];c[z+4>>2]=c[j+4>>2];c[z+8>>2]=c[j+8>>2];c[z+12>>2]=c[j+12>>2];c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];c[t>>2]=c[A>>2];c[t+4>>2]=c[A+4>>2];c[t+8>>2]=c[A+8>>2];c[t+12>>2]=c[A+12>>2];c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[y+16>>2]=c[x+16>>2];c[y+20>>2]=c[x+20>>2];c[y+24>>2]=c[x+24>>2];c[y+28>>2]=c[x+28>>2];if((Ep(s,t,y)|0)==-1)b=1;else{e=18;break a}while(1){c[A>>2]=c[z>>2];c[A+4>>2]=c[z+4>>2];c[A+8>>2]=c[z+8>>2];c[A+12>>2]=c[z+12>>2];b=b+1|0;if((b|0)>=(c[l>>2]|0))break b;j=(c[u>>2]|0)+(b<<4)|0;c[z>>2]=c[j>>2];c[z+4>>2]=c[j+4>>2];c[z+8>>2]=c[j+8>>2];c[z+12>>2]=c[j+12>>2];c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];c[t>>2]=c[A>>2];c[t+4>>2]=c[A+4>>2];c[t+8>>2]=c[A+8>>2];c[t+12>>2]=c[A+12>>2];c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[y+16>>2]=c[x+16>>2];c[y+20>>2]=c[x+20>>2];c[y+24>>2]=c[x+24>>2];c[y+28>>2]=c[x+28>>2];if((Ep(s,t,y)|0)!=-1){e=18;break a}}}while(0);b=c[m>>2]|0;if((b|0)!=0?(j=c[u>>2]|0,c[s>>2]=c[p>>2],c[s+4>>2]=c[p+4>>2],c[s+8>>2]=c[p+8>>2],c[s+12>>2]=c[p+12>>2],c[t>>2]=c[j>>2],c[t+4>>2]=c[j+4>>2],c[t+8>>2]=c[j+8>>2],c[t+12>>2]=c[j+12>>2],c[y>>2]=c[x>>2],c[y+4>>2]=c[x+4>>2],c[y+8>>2]=c[x+8>>2],c[y+12>>2]=c[x+12>>2],c[y+16>>2]=c[x+16>>2],c[y+20>>2]=c[x+20>>2],c[y+24>>2]=c[x+24>>2],c[y+28>>2]=c[x+28>>2],(Et(s,t,b,y)|0)<<24>>24!=0):0){e=18;break}b=c[n>>2]|0;if((b|0)!=0?(j=(c[u>>2]|0)+((c[l>>2]|0)+-1<<4)|0,c[s>>2]=c[o>>2],c[s+4>>2]=c[o+4>>2],c[s+8>>2]=c[o+8>>2],c[s+12>>2]=c[o+12>>2],c[t>>2]=c[j>>2],c[t+4>>2]=c[j+4>>2],c[t+8>>2]=c[j+8>>2],c[t+12>>2]=c[j+12>>2],c[y>>2]=c[x>>2],c[y+4>>2]=c[x+4>>2],c[y+8>>2]=c[x+8>>2],c[y+12>>2]=c[x+12>>2],c[y+16>>2]=c[x+16>>2],c[y+20>>2]=c[x+20>>2],c[y+24>>2]=c[x+24>>2],c[y+28>>2]=c[x+28>>2],(Et(s,t,b,y)|0)<<24>>24!=0):0){e=18;break}q=q+1|0;if((q|0)>=(c[w>>2]|0)){e=20;break}}if((e|0)==9)Ia(131874,131274,1637,131882);else if((e|0)==18){B=1;break}else if((e|0)==20){b=c[v>>2]|0;e=21;break}}else e=21;while(0);do if((e|0)==21){b=c[b+96>>2]|0;if(((b|0)!=0?(g=+h[d>>3],H=+h[d+16>>3],F=+h[d+24>>3],G=+h[b+24>>3]*.5,C=+h[b+32>>3]*.5,B=b+56|0,a[k>>0]=a[B>>0],a[k+1>>0]=a[B+1>>0],a[k+2>>0]=a[B+2>>0],a[k+3>>0]=a[B+3>>0],a[k+4>>0]=a[B+4>>0],a[k+5>>0]=a[B+5>>0],a[k+6>>0]=a[B+6>>0],a[k+7>>0]=a[B+7>>0],f=+h[k>>3],B=b+64|0,a[k>>0]=a[B>>0],a[k+1>>0]=a[B+1>>0],a[k+2>>0]=a[B+2>>0],a[k+3>>0]=a[B+3>>0],a[k+4>>0]=a[B+4>>0],a[k+5>>0]=a[B+5>>0],a[k+6>>0]=a[B+6>>0],a[k+7>>0]=a[B+7>>0],D=+h[k>>3],!(!(H>=f-G)|!(G+f>=g)|!(F>=D-C))):0)?C+D>=+h[d+8>>3]:0){B=1;break}B=0}while(0);i=E;return B|0}function lt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;f=g;a:do if((b|0)!=0?(e=a[b>>0]|0,e<<24>>24!=0):0){do switch(e<<24>>24|0){case 48:{d=2;break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{d=10;break a}case 67:case 99:{e=b+1|0;if(!(hA(e,131897)|0)){d=4;break a}if(!(hA(e,131903)|0)){d=12;break a}break}case 70:case 102:{if(!(hA(b+1|0,131911)|0)){d=2;break a}break}case 76:case 108:{if(!(hA(b+1|0,131916)|0)){d=2;break a}break}case 78:case 110:{e=b+1|0;if(!(hA(e,131920)|0)){d=0;break a}if(!(hA(e,131924)|0)){d=2;break a}break}case 79:case 111:{if(!(hA(b+1|0,131926)|0)){d=8;break a}break}case 80:case 112:{if(!(hA(b+1|0,131931)|0)){d=6;break a}break}case 83:case 115:{if(!(hA(b+1|0,131939)|0)){d=10;break a}break}case 84:case 116:{if(!(hA(b+1|0,131945)|0)){d=10;break a}break}case 89:case 121:{if(!(hA(b+1|0,131949)|0)){d=10;break a}break}default:{}}while(0);c[f>>2]=b;dj(0,131952,f)|0}while(0);i=g;return d|0}function mt(d,f){d=d|0;f=f|0;var g=0;g=zj(d,131993)|0;if(g)if(!(a[g>>0]|0))f=0;else f=lt(g,f)|0;d=(c[d+16>>2]|0)+136|0;b[d>>1]=e[d>>1]|f;return}function nt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0;n=e&1;o=e&2;if((c|0)!=2){f=+h[a>>3];j=+h[a+8>>3];if((c|0)<2){m=f;i=j;g=j}else{k=f;e=1;g=j;i=j;while(1){l=+h[a+(e<<4)>>3];m=+h[a+(e<<4)+8>>3];j=l<f?l:f;g=m<g?m:g;f=l>k?l:k;i=m>i?m:i;e=e+1|0;if((e|0)==(c|0)){m=f;f=j;break}else{k=f;f=j}}}}else{k=+h[a>>3];f=+h[a+16>>3]-k;l=+h[a+8>>3];g=+h[a+24>>3]-l;m=k+f;i=l+g;f=k-f;g=l-g}l=f+(m-f)*.5;k=g+(i-g)*.5;if(!n){i=i-k;j=d;f=+R(+j);j=+Q(+j);if(!o){g=-k-(k-g)*f;f=i*f-k}else{f=i*f;g=k+f;f=k-f}h[b+8>>3]=f;h[b+24>>3]=g;d=(m-l)*j;h[b>>3]=l-d;h[b+16>>3]=l+d}else{m=l-f;d=k-g;d=+O(+(m*m+d*d));h[b+8>>3]=(o|0)==0?-k:k;h[b>>3]=l;h[b+16>>3]=d*.25;h[b+24>>3]=d}return}function ot(a){a=a|0;var b=0,d=0;d=a+16|0;a=c[d>>2]|0;b=c[a+8>>2]|0;if(b){if((c[b+4>>2]|0)>0){a=b;b=0;do{pB(c[(c[a>>2]|0)+(b*48|0)>>2]|0);b=b+1|0;a=c[(c[d>>2]|0)+8>>2]|0}while((b|0)<(c[a+4>>2]|0))}else a=b;pB(c[a>>2]|0);pB(c[(c[d>>2]|0)+8>>2]|0);a=c[d>>2]|0}c[a+8>>2]=0;return}function pt(a){a=a|0;var b=0;b=a+16|0;pB(c[(c[b>>2]|0)+144>>2]|0);ot(a);Sp(c[(c[b>>2]|0)+96>>2]|0);Sp(c[(c[b>>2]|0)+108>>2]|0);Sp(c[(c[b>>2]|0)+100>>2]|0);Sp(c[(c[b>>2]|0)+104>>2]|0);yl(a,161165)|0;return}function qt(a,b){a=a|0;b=b|0;var d=0.0;a=c[a+16>>2]|0;if(!(b<<24>>24)){d=+h[a+32>>3]*72.0*.5;h[a+88>>3]=d;h[a+80>>3]=+h[a+40>>3]*72.0}else{d=+h[a+40>>3]*72.0*.5;h[a+88>>3]=d;h[a+80>>3]=+h[a+32>>3]*72.0}h[a+96>>3]=d;return}function rt(a,b){a=a|0;b=b|0;a=ub[c[a>>2]&31](a,b,512)|0;if(!a)a=0;else a=c[a+12>>2]|0;return a|0}function st(a){a=a|0;var b=0,d=0,e=0,f=0;f=0;e=xA(oA(a)|0,133477)|0;d=0;a=0;while(1){if(!d)d=aq((f<<2)+8|0)|0;else d=cq(d,(f<<2)+8|0)|0;b=f+1|0;c[d+(f<<2)>>2]=e;f=pA(e)|0;a=a>>>0>f>>>0?a:f;e=xA(0,133477)|0;if(!e)break;else f=b}c[d+(b<<2)>>2]=0;c[14278]=a;return d|0}function tt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h+16|0;f=h;e=c[14793]|0;b=rB(e,b+2+(pA(d)|0)|0)|0;c[14793]=b;e=c[a>>2]|0;a:do if(!e)b=0;else{c[f>>2]=e;c[f+4>>2]=133475;c[f+8>>2]=d;Oz(b,133468,f)|0;if(BA(c[14793]|0,4)|0)do{a=a+4|0;b=c[a>>2]|0;if(!b){b=0;break a}f=c[14793]|0;c[g>>2]=b;c[g+4>>2]=133475;c[g+8>>2]=d;Oz(f,133468,g)|0}while((BA(c[14793]|0,4)|0)!=0);b=c[14793]|0}while(0);i=h;return b|0}function ut(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;h[d>>3]=+Hs(b,c[13425]|0,14.0,1.0);e=c[13426]|0;g=(b|0)!=0;if(g&(e|0)!=0){e=Aj(b,e)|0;if(!e)f=4;else f=3}else{e=131608;f=3}if((f|0)==3)if(!(a[e>>0]|0))f=4;if((f|0)==4)e=131608;c[d+8>>2]=e;e=c[13427]|0;if(g&(e|0)!=0){e=Aj(b,e)|0;if(!e)f=8;else f=7}else{e=160746;f=7}if((f|0)==7)if(!(a[e>>0]|0))f=8;if((f|0)==8)e=160746;c[d+12>>2]=e;return}function vt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;f=d+8|0;if(!(c[f>>2]|0))ut(b,d);h[e>>3]=+Hs(b,c[13445]|0,+h[d>>3],1.0);g=c[13446]|0;i=c[f>>2]|0;j=(b|0)!=0;if(j&(g|0)!=0)f=Aj(b,g)|0;else f=i;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=i;c[e+8>>2]=f;f=c[13447]|0;g=c[d+12>>2]|0;if(j&(f|0)!=0)f=Aj(b,f)|0;else f=g;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=g;c[e+12>>2]=f;return}function wt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+128|0;l=m+80|0;h=m+40|0;g=m;if((f|0)!=0?(k=jA(f,58)|0,(k|0)!=0):0){a[k>>0]=0;g=k+1|0;Kb[d&31](h,e,f,g);j=l;e=h;d=j+36|0;do{c[j>>2]=c[e>>2];j=j+4|0;e=e+4|0}while((j|0)<(d|0));a[k>>0]=58}else{Kb[d&31](g,e,f,0);j=l;e=g;d=j+36|0;do{c[j>>2]=c[e>>2];j=j+4|0;e=e+4|0}while((j|0)<(d|0));g=f}j=b;e=l;d=j+36|0;do{c[j>>2]=c[e>>2];j=j+4|0;e=e+4|0}while((j|0)<(d|0));c[b+36>>2]=g;i=m;return}function xt(b,c){b=b|0;c=c|0;var d=0;if(((c|0)!=0?(d=Aj(b,c)|0,(d|0)!=0):0)?(a[d>>0]|0)!=0:0)d=(Vs(d,0)|0)<<24>>24==0&1;else d=0;return d|0}function yt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;g=h;f=a+16|0;a=c[f>>2]|0;if((c[a+180>>2]|0)>=1){e=1;while(1){d=c[(c[a+184>>2]|0)+(e<<2)>>2]|0;a=ok(d)|0;if(!(ub[c[b>>2]&31](b,a,512)|0)){j=$p(16)|0;c[j+8>>2]=a;c[j+12>>2]=d;ub[c[b>>2]&31](b,j,1)|0}else{c[g>>2]=a;dj(0,133416,g)|0}yt(d,b);a=c[f>>2]|0;if((e|0)>=(c[a+180>>2]|0))break;else e=e+1|0}}i=h;return}function zt(a,b,c){a=a|0;b=b|0;c=c|0;b=Sj(gl(b)|0,b,c,0,1)|0;xl(b,161165,176,1)|0;Ej(a,b)|0;return b|0}function At(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=gl(b)|0;if(a[(c[b+16>>2]|0)+118>>0]|0){Wk(d,b,1)|0;b=jA(ok(b)|0,58)|0;if(!b)Ia(134567,131274,1225,133411);d=b+1|0;b=Xk(f,d,0)|0;if(!b){b=Xk(f,d,1)|0;xl(b,160855,304,1)|0;d=sj(f,1,0)|0;if(d)do{g=Aj(b,d)|0;e=c[d+12>>2]|0;if((g|0)!=(e|0))Cj(b,d,e)|0;d=sj(f,1,d)|0}while((d|0)!=0)}}return b|0}function Bt(a,b){a=a|0;b=b|0;return lA(c[a>>2]|0,c[b>>2]|0)|0}function Ct(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;k=l;a[k>>0]=b;a[k+1>>0]=0;k=gt(k)|0;b=pA(k)|0;if((b|0)>1){g=d+4|0;h=d+8|0;j=b+-1|0;f=k;while(1){b=b+-1|0;e=c[g>>2]|0;if(e>>>0>=(c[h>>2]|0)>>>0){hj(d,1)|0;e=c[g>>2]|0}m=a[f>>0]|0;c[g>>2]=e+1;a[e>>0]=m;if((b|0)<=1)break;else f=f+1|0}b=k+j|0}else b=k;m=a[b>>0]|0;pB(k);i=l;return m|0}function Dt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l;j=l+8|0;d=c[b>>2]|0;a:do if((a[d>>0]|0)==35){e=a[d+1>>0]|0;b:do if((e&-33)<<24>>24!=88){f=e&255;if((e+-48&255)<10){g=1;e=0;do{e=(e*10|0)+-48+f|0;g=g+1|0;if((g|0)>=8)break b;k=a[d+g>>0]|0;f=k&255}while((k+-48&255)<10)}else{g=1;e=0}}else{h=2;e=0;while(1){g=a[d+h>>0]|0;f=g&255;do if((g+-65&255)<6)f=f+-55|0;else{if((g+-97&255)<6){f=f+-87|0;break}if((g+-48&255)>=10){g=h;break b}f=f+-48|0}while(0);e=f+(e<<4)|0;g=h+1|0;if((g|0)<8)h=g;else break}}while(0);if((f|0)==59)d=d+(g+1)|0;else e=0}else{c[k>>2]=j;f=a[d>>0]|0;c:do switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=1;e=j;break}default:{e=j+1|0;a[j>>0]=f;f=a[d+1>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=2;break c}default:{}}g=j+2|0;a[e>>0]=f;f=a[d+2>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=3;e=g;break c}default:{}}e=j+3|0;a[g>>0]=f;f=a[d+3>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=4;break c}default:{}}g=j+4|0;a[e>>0]=f;f=a[d+4>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=5;e=g;break c}default:{}}e=j+5|0;a[g>>0]=f;f=a[d+5>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=6;break c}default:{}}g=j+6|0;a[e>>0]=f;e=a[d+6>>0]|0;switch(e<<24>>24){case 0:{e=0;break a}case 59:{h=7;e=g;break c}default:{}}f=j+7|0;a[g>>0]=e;e=a[d+7>>0]|0;switch(e<<24>>24){case 0:{e=0;break a}case 59:{h=8;e=f;break c}default:{}}a[f>>0]=e;e=0;break a}}while(0);a[e>>0]=0;e=Zz(k,57152,252,8,31)|0;if(!e)e=0;else{e=c[e+4>>2]|0;d=d+h|0}}while(0);c[b>>2]=d;i=l;return e|0}function Et(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+160|0;l=m+144|0;k=m+128|0;n=m+96|0;f=m+64|0;g=m+32|0;j=m;o=+h[e+16>>3];c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];c[l+12>>2]=c[b+12>>2];Fo(n,k,l,1.0,d);if(((o>=+h[n>>3]?(c[k>>2]=c[a>>2],c[k+4>>2]=c[a+4>>2],c[k+8>>2]=c[a+8>>2],c[k+12>>2]=c[a+12>>2],c[l>>2]=c[b>>2],c[l+4>>2]=c[b+4>>2],c[l+8>>2]=c[b+8>>2],c[l+12>>2]=c[b+12>>2],Fo(f,k,l,1.0,d),+h[f+16>>3]>=+h[e>>3]):0)?(o=+h[e+24>>3],c[k>>2]=c[a>>2],c[k+4>>2]=c[a+4>>2],c[k+8>>2]=c[a+8>>2],c[k+12>>2]=c[a+12>>2],c[l>>2]=c[b>>2],c[l+4>>2]=c[b+4>>2],c[l+8>>2]=c[b+8>>2],c[l+12>>2]=c[b+12>>2],Fo(g,k,l,1.0,d),o>=+h[g+8>>3]):0)?(c[k>>2]=c[a>>2],c[k+4>>2]=c[a+4>>2],c[k+8>>2]=c[a+8>>2],c[k+12>>2]=c[a+12>>2],c[l>>2]=c[b>>2],c[l+4>>2]=c[b+4>>2],c[l+8>>2]=c[b+8>>2],c[l+12>>2]=c[b+12>>2],Fo(j,k,l,1.0,d),+h[j+24>>3]>=+h[e+8>>3]):0)f=1;else f=0;i=m;return f|0}function Ft(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function Gt(e,f){e=e|0;f=f|0;var g=0,j=0,l=0,m=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ja=0,la=0,ma=0,oa=0,wa=0,xa=0;xa=i;i=i+240|0;la=xa+216|0;ja=xa+200|0;fa=xa+168|0;ea=xa+160|0;ca=xa+152|0;ba=xa+144|0;aa=xa+112|0;$=xa+104|0;q=xa+96|0;oa=4;ma=oB(40)|0;c[ma>>2]=0;V=xa+224|0;R=xa+80|0;S=xa+64|0;T=xa+48|0;U=xa+32|0;Z=xa+16|0;_=xa;n=0;g=na(25,e|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;a:do if((l|0)!=1){n=0;X=na(18,g<<3|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){if(!(a[124828]|0))Y=0;else{n=0;g=ha(1)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){E=0;F=0;D=0;U=0;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=0;break}Y=g}n=0;g=ua(32,e|0,133479)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)!=1){c[14794]=0;b:do if((g|0)!=0?(m=a[g>>0]|0,m<<24>>24!=0):0){l=g;j=m;g=0;while(1){l=l+1|0;switch(j<<24>>24|0){case 99:{g=g|8;c[14794]=g;break}case 105:{g=g|18;c[14794]=g;break}case 109:{g=g|1;c[14794]=g;break}case 114:{g=g|4;c[14794]=g;break}case 115:{g=g|2;c[14794]=g;break}default:{}}j=a[l>>0]|0;if(!(j<<24>>24))break b}}while(0);if(f){n=0;da(11,0,133483,q|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){E=0;F=0;D=0;U=0;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break}}n=0;W=ua(33,e|0,0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){Q=c[W+16>>2]|0;if(c[14794]&2){n=0;ka(29,c[22667]|0,Q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break}}n=0;g=na(26,e|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)!=1){if(!g)m=0;else{m=0;do{n=0;j=ua(34,e|0,g|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}if(j){B=j;do{if(!((c[13358]|0)==2?(c[(c[B+16>>2]|0)+8>>2]|0)!=0:0))wa=29;c:do if((wa|0)==29){wa=0;do if(a[124828]|0){x=c[B>>2]&3;l=B+48|0;w=(c[c[((x|0)==3?B:l)+40>>2]>>2]|0)>>>4;j=B+-48|0;x=(c[c[((x|0)==2?B:j)+40>>2]>>2]|0)>>>4;if(w>>>0>x>>>0){n=0;f=da(17,Y|0,x|0,w|0)|0;q=n;n=0;if((q|0)!=0&(o|0)!=0){u=zB(c[q>>2]|0,ma|0,oa|0)|0;if(!u)Ka(q|0,o|0);C=o}else u=-1;if((u|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}if(f)break c;n=0;pa(59,Y|0,x|0,w|0);f=n;n=0;if((f|0)!=0&(o|0)!=0){q=zB(c[f>>2]|0,ma|0,oa|0)|0;if(!q)Ka(f|0,o|0);C=o}else q=-1;if((q|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}break}else{n=0;f=da(17,Y|0,w|0,x|0)|0;q=n;n=0;if((q|0)!=0&(o|0)!=0){u=zB(c[q>>2]|0,ma|0,oa|0)|0;if(!u)Ka(q|0,o|0);C=o}else u=-1;if((u|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}if(f)break c;n=0;pa(59,Y|0,w|0,x|0);f=n;n=0;if((f|0)!=0&(o|0)!=0){q=zB(c[f>>2]|0,ma|0,oa|0)|0;if(!q)Ka(f|0,o|0);C=o}else q=-1;if((q|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}break}}else{l=B+48|0;j=B+-48|0}while(0);c[X+(m<<3)+4>>2]=B;P=c[B>>2]&3;O=c[(c[((P|0)==3?B:l)+40>>2]|0)+16>>2]|0;P=c[(c[((P|0)==2?B:j)+40>>2]|0)+16>>2]|0;z=+h[O+16>>3]-+h[P+16>>3];A=+h[O+24>>3]-+h[P+24>>3];c[X+(m<<3)>>2]=~~(z*z+A*A);m=m+1|0}while(0);n=0;B=ua(35,e|0,B|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}}while((B|0)!=0)}n=0;g=ua(36,e|0,g|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}}while((g|0)!=0)}n=0;D=na(19,m<<3|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){n=0;ta(26,X|0,m|0,8,37);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){l=c[Q>>2]|0;n=0;ia(90,l+2|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){g=c[Q+16>>2]|0;M=g+(l*40|0)|0;N=g+((l+1|0)*40|0)|0;E=(m|0)>0;if(E){O=c[22667]|0;P=(M|0)==0;I=g+(l*40|0)+8|0;J=R+8|0;K=S+8|0;L=0;do{if((L|0)>0?(c[14794]&16|0)!=0:0){n=0;ka(29,O|0,Q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}}g=c[X+(L<<3)+4>>2]|0;H=c[g>>2]&3;w=c[(c[(c[((H|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;g=c[(c[(c[((H|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if((w|0)!=(g|0)){n=0;pa(61,Q|0,g|0,N|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}n=0;pa(61,Q|0,w|0,M|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}}else{f=w+32|0;if((c[f>>2]|0)>0){q=w+36|0;u=0;do{l=c[(c[q>>2]|0)+(u<<2)>>2]|0;do if(!(a[l+36>>0]|0)){g=c[l+20>>2]|0;if((g|0)==(w|0)){n=0;pa(60,U|0,l|0,c[l+24>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}n=0;va(1,Q|0,M|0,l|0,0.0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}break}else{n=0;pa(60,U|0,l|0,g|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}n=0;va(1,Q|0,N|0,l|0,0.0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}break}}while(0);u=u+1|0}while((u|0)<(c[f>>2]|0))}c[Q>>2]=(c[Q>>2]|0)+2}n=0;g=da(18,Q|0,N|0,M|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}if(g){F=D;u=W;w=X;q=X;x=0;B=0;e=0;f=Y;wa=245;break a}if(P)g=-112;else{g=M;j=0;do{j=j+1|0;g=c[g+8>>2]|0}while((g|0)!=0);g=(j*56|0)+-112|0}n=0;H=na(19,g|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}q=c[I>>2]|0;f=c[q+8>>2]|0;g=c[q+20>>2]|0;if(c[g>>2]&1)g=c[q+24>>2]|0;n=0;pa(60,R|0,q|0,g|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}j=f+8|0;do if(!(c[j>>2]|0)){n=0;j=ua(38,H|0,0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}g=0}else{z=+h[R>>3];A=+h[J>>3];w=g;l=q;p=0.0;r=0.0;u=q;G=0;while(1){g=c[l+20>>2]|0;q=f+20|0;do if((g|0)==(c[q>>2]|0))F=g;else{if((g|0)==(c[f+24>>2]|0)){F=g;break}F=c[l+24>>2]|0}while(0);n=0;pa(62,Q|0,F|0,c[u+12>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}B=u+36|0;g=a[B>>0]|0;e=f+36|0;do if(g<<24>>24==(a[e>>0]|0)){if((c[j>>2]|0)!=(N|0)){t=z;s=A;q=w;g=G;break}n=0;pa(60,S|0,f|0,F|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}g=a[B>>0]|0;t=+h[S>>3];s=+h[K>>3];wa=92}else{t=(+h[F+40>>3]+ +h[F+56>>3])*.5;s=(+h[F+48>>3]+ +h[F+64>>3])*.5;wa=92}while(0);do if((wa|0)==92){wa=0;x=g<<24>>24==0;l=(u|0)==(c[I>>2]|0);if(x){if(!(a[e>>0]|0))g=0;else g=(c[q>>2]|0)==(F|0)?4:2;u=w+48|0;q=F+48|0;w=w+40|0;l=l?0:p>z?4:2}else{if(g<<24>>24==(a[e>>0]|0))g=0;else g=(c[q>>2]|0)==(F|0)?1:3;u=w+40|0;q=F+40|0;w=w+48|0;l=l?0:r>A?1:3}r=+h[q>>3];p=+h[u>>3];y=+h[w>>3];if(p<r){u=0;v=p;p=r;q=l;l=g}else{u=1;v=r;q=g}g=G+1|0;w=H+(G*56|0)|0;a[w>>0]=x&1;a[w+1>>0]=u;x=w+2|0;b[x>>1]=b[V>>1]|0;b[x+2>>1]=b[V+2>>1]|0;b[x+4>>1]=b[V+4>>1]|0;h[w+8>>3]=y;h[w+16>>3]=v;h[w+24>>3]=p;c[w+32>>2]=q;c[w+36>>2]=l;c[w+48>>2]=0;c[w+52>>2]=0;if((a[B>>0]|0)==(a[e>>0]|0)){q=F;p=z;r=A;u=f;break}if((c[j>>2]|0)!=(N|0)){q=F;p=z;r=A;u=f;break}n=0;pa(60,T|0,f|0,F|0);l=n;n=0;if((l|0)!=0&(o|0)!=0){q=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!q)Ka(l|0,o|0);C=o}else q=-1;if((q|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}u=(a[e>>0]|0)==0;q=F+48|0;e=F+40|0;p=+h[(u?q:e)>>3];r=+h[(u?e:q)>>3];q=H+(g*56|0)|0;a[q>>0]=u&1;a[q+1>>0]=1;g=q+2|0;b[g>>1]=b[V>>1]|0;b[g+2>>1]=b[V+2>>1]|0;b[g+4>>1]=b[V+4>>1]|0;h[q+8>>3]=r;h[q+16>>3]=p;h[q+24>>3]=p;c[q+32>>2]=0;c[q+36>>2]=u?(z>t?4:2):A>s?1:3;c[q+48>>2]=0;c[q+52>>2]=0;q=F;p=z;r=A;u=f;g=G+2|0}while(0);l=c[j>>2]|0;j=l+8|0;if(!(c[j>>2]|0))break;else{F=f;z=t;A=s;w=q;f=l;G=g;l=F}}n=0;j=ua(38,H|0,g*56|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}if((g|0)<=0)break;l=g+-1|0;f=0;do{if((f|0)>0)c[j+(f*56|0)+48>>2]=j+((f+-1|0)*56|0);q=f;f=f+1|0;if((q|0)<(l|0))c[j+(q*56|0)+52>>2]=j+(f*56|0)}while((f|0)!=(g|0))}while(0);c[D+(L<<3)>>2]=g;c[D+(L<<3)+4>>2]=j;n=0;ia(91,Q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}L=L+1|0}while((L|0)<(m|0))}n=0;qa(4);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){n=0;x=ua(39,59180,c[12573]|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){g=c[W>>2]|0;if((g|0)>0){w=W+8|0;u=0;do{j=(c[w>>2]|0)+(u*72|0)|0;if(!(c[j>>2]&4)){while(1){f=j+36|0;g=c[(c[f>>2]|0)+8>>2]|0;if(!g)break;g=c[g+20>>2]|0;if(!g)break;if(!(c[g>>2]&1))j=g;else break}n=0;q=na(19,40)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=W;S=Y;break a}c[q+36>>2]=j;h[q+8>>3]=+h[j+40>>3];c[j>>2]=c[j>>2]|4;g=c[c[f>>2]>>2]|0;d:do if(!g)g=j;else{f=j;while(1){l=c[g+24>>2]|0;if(!l){g=f;break d}g=c[l>>2]|0;if(g&1){g=f;break d}c[l>>2]=g|4;g=c[c[l+36>>2]>>2]|0;if(!g){g=l;break}else f=l}}while(0);h[q+16>>3]=+h[g+56>>3];n=0;ra(1,x|0,q|0,+(+h[j+48>>3]));g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=W;S=Y;break a}g=c[W>>2]|0}u=u+1|0}while((u|0)<(g|0))}H=W+20|0;c[H>>2]=x;n=0;x=ua(39,59180,c[12573]|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=H;e=W;S=Y}else{g=c[W>>2]|0;if((g|0)>0){w=W+8|0;u=0;do{j=(c[w>>2]|0)+(u*72|0)|0;if(!(c[j>>2]&2)){while(1){f=j+36|0;g=c[(c[f>>2]|0)+12>>2]|0;if(!g)break;g=c[g+20>>2]|0;if(!g)break;if(!(c[g>>2]&1))j=g;else break}n=0;q=na(19,40)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=H;e=W;S=Y;break a}c[q+36>>2]=j;h[q+8>>3]=+h[j+48>>3];c[j>>2]=c[j>>2]|2;g=c[(c[f>>2]|0)+4>>2]|0;e:do if(!g)g=j;else{f=j;while(1){l=c[g+24>>2]|0;if(!l){g=f;break e}g=c[l>>2]|0;if(g&1){g=f;break e}c[l>>2]=g|2;g=c[(c[l+36>>2]|0)+4>>2]|0;if(!g){g=l;break}else f=l}}while(0);h[q+16>>3]=+h[g+64>>3];n=0;ra(1,x|0,q|0,+(+h[j+40>>3]));g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=H;e=W;S=Y;break a}g=c[W>>2]|0}u=u+1|0}while((u|0)<(g|0))}G=W+24|0;c[G>>2]=x;if(E){B=0;do{u=c[D+(B<<3)>>2]|0;w=c[D+(B<<3)+4>>2]|0;if((u|0)>0){e=0;do{x=w+(e*56|0)|0;if(!(a[x>>0]|0)){n=0;g=ua(40,c[H>>2]|0,x|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}else{n=0;g=ua(40,c[G>>2]|0,x|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}q=g+24|0;f=c[q>>2]|0;j=f+1|0;c[q>>2]=j;c[w+(e*56|0)+40>>2]=f;f=g+28|0;g=c[f>>2]|0;if(!g){n=0;g=na(18,j<<2|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}else{n=0;g=ua(27,g|0,j<<2|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}c[f>>2]=g;c[g+((c[q>>2]|0)+-1<<2)>>2]=x;e=e+1|0}while((e|0)!=(u|0))}B=B+1|0}while((B|0)!=(m|0))}ma=xB(59216,1,ma|0,oa|0)|0;oa=C;n=0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break}F=D;U=W;w=X;T=X;g=0;x=G;B=H;e=W;S=Y}}else{F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y}}else{E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y}}else{E=0;F=0;D=0;U=0;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y}}else{E=0;F=0;D=0;U=0;w=0;T=X;g=C;x=0;B=0;e=0;m=0;S=0}}else{E=0;F=0;D=0;U=0;w=0;T=0;g=C;x=0;B=0;e=0;m=0;S=0}while(0);f:while(1){if((wa|0)==245){wa=0;if(a[124828]|0){n=0;ia(95,f|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue}}if(E){l=0;while(1){n=0;ia(89,c[F+(l<<3)+4>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue f}l=l+1|0;if((l|0)==(m|0))break}}n=0;ia(89,D|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue}n=0;ia(96,u|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue}n=0;ia(89,q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f}else break}if(g){u=U;q=T;f=S;wa=245;continue}n=0;ia(92,c[B>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(92,c[x>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(93,c[B>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(93,c[x>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ka(30,c[B>>2]|0,U|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ka(30,c[x>>2]|0,U|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(94,c[B>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(94,c[x>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}if(c[14794]&4){K=c[22667]|0;n=0;sa(21,133557,405,1,K|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;c[$>>2]=10;c[$+4>>2]=10;da(13,K|0,133963,$|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;sa(21,161386,18,1,K|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}g=U+4|0;if((c[g>>2]|0)>0){j=U+12|0;q=0;while(1){l=c[j>>2]|0;y=+h[l+(q*72|0)+48>>3];z=+h[l+(q*72|0)+56>>3];A=+h[l+(q*72|0)+64>>3];n=0;h[aa>>3]=+h[l+(q*72|0)+40>>3];h[aa+8>>3]=y;h[aa+16>>3]=z;h[aa+24>>3]=A;da(13,K|0,161405,aa|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}q=q+1|0;if((q|0)>=(c[g>>2]|0))break}}if(E){s=-1797693134862315708145274.0e284;t=-1797693134862315708145274.0e284;r=1797693134862315708145274.0e284;p=1797693134862315708145274.0e284;J=0;while(1){I=c[w+(J<<3)+4>>2]|0;G=F+(J<<3)|0;G=d[G>>0]|d[G+1>>0]<<8|d[G+2>>0]<<16|d[G+3>>0]<<24;H=F+(J<<3)+4|0;H=d[H>>0]|d[H+1>>0]<<8|d[H+2>>0]<<16|d[H+3>>0]<<24;g=c[(c[(c[((c[I>>2]&3|0)==3?I:I+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if(!(a[H>>0]|0)){y=+h[g+56>>3];v=+h[g+40>>3];n=0;l=ua(40,c[B>>2]|0,H|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[l+36>>2]|0;A=+h[Y+48>>3];y=(y+v)*.5;v=A+(1.0-+(c[H+44>>2]|0)/+((c[l+24>>2]|0)+1|0))*(+h[Y+64>>3]-A)}else{z=+h[g+64>>3];v=+h[g+48>>3];n=0;g=ua(40,c[x>>2]|0,H|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[g+36>>2]|0;y=+h[Y+40>>3];y=y+ +(c[H+44>>2]|0)/+((c[g+24>>2]|0)+1|0)*(+h[Y+56>>3]-y);v=(z+v)*.5}q=~~v;f=~~y;z=+(f|0);p=p<z?p:z;A=+(q|0);r=r<A?r:A;t=t>z?t:z;s=s>A?s:A;n=0;c[ba>>2]=f;c[ba+4>>2]=q;da(13,K|0,133980,ba|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}if((G|0)>1){u=1;while(1){g=H+(u*56|0)|0;if(!(a[g>>0]|0)){n=0;l=ua(40,c[B>>2]|0,g|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[l+36>>2]|0;A=+h[Y+48>>3];l=~~(A+(1.0-+(c[H+(u*56|0)+44>>2]|0)/+((c[l+24>>2]|0)+1|0))*(+h[Y+64>>3]-A))}else{n=0;g=ua(40,c[x>>2]|0,g|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}f=c[g+36>>2]|0;A=+h[f+40>>3];f=~~(A+ +(c[H+(u*56|0)+44>>2]|0)/+((c[g+24>>2]|0)+1|0)*(+h[f+56>>3]-A));l=q}z=+(f|0);p=p<z?p:z;A=+(l|0);r=r<A?r:A;t=t>z?t:z;s=s>A?s:A;n=0;c[ca>>2]=f;c[ca+4>>2]=l;da(13,K|0,134002,ca|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}u=u+1|0;if((u|0)==(G|0))break;else q=l}z=p;y=r;v=s;f=H+(((G|0)>2?G+-1|0:1)*56|0)|0}else{z=p;y=r;v=s;f=H}g=c[(c[(c[((c[I>>2]&3|0)==2?I:I+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if(!(a[f>>0]|0)){r=+h[g+56>>3];p=+h[g+40>>3];n=0;l=ua(40,c[B>>2]|0,f|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[l+36>>2]|0;A=+h[Y+48>>3];r=(r+p)*.5;p=A+(1.0-+(c[f+44>>2]|0)/+((c[l+24>>2]|0)+1|0))*(+h[Y+64>>3]-A)}else{s=+h[g+64>>3];p=+h[g+48>>3];n=0;g=ua(40,c[x>>2]|0,f|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[g+36>>2]|0;r=+h[Y+40>>3];r=r+ +(c[f+44>>2]|0)/+((c[g+24>>2]|0)+1|0)*(+h[Y+56>>3]-r);p=(s+p)*.5}g=~~p;Y=~~r;A=+(Y|0);p=z<A?z:A;s=+(g|0);r=y<s?y:s;t=t>A?t:A;s=v>s?v:s;n=0;c[ea>>2]=Y;c[ea+4>>2]=g;da(13,K|0,134016,ea|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}J=J+1|0;if((J|0)==(m|0))break}}else{t=-1797693134862315708145274.0e284;r=1797693134862315708145274.0e284;p=1797693134862315708145274.0e284;s=-1797693134862315708145274.0e284}n=0;sa(21,134037,24,1,K|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}if((c[e>>2]|0)>0){f=U+8|0;l=0;while(1){g=c[f>>2]|0;v=+h[g+(l*72|0)+40>>3];y=+h[g+(l*72|0)+48>>3];z=+h[g+(l*72|0)+56>>3];A=+h[g+(l*72|0)+64>>3];n=0;h[fa>>3]=v;h[fa+8>>3]=y;h[fa+16>>3]=z;h[fa+24>>3]=A;da(13,K|0,161442,fa|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}p=p<v?p:v;r=r<y?r:y;t=t>z?t:z;s=s>A?s:A;l=l+1|0;if((l|0)>=(c[e>>2]|0))break}}n=0;c[ja>>2]=~~(p+10.0);c[ja+4>>2]=~~(r+10.0);c[ja+8>>2]=~~(t+10.0);c[ja+12>>2]=~~(s+10.0);da(13,K|0,134062,ja|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}}if(E){O=Z+8|0;P=_+8|0;Q=c[22667]|0;R=0;g=0;j=0;while(1){L=c[w+(R<<3)+4>>2]|0;I=c[L>>2]&3;J=L+48|0;M=c[(c[((I|0)==3?L:J)+40>>2]|0)+16>>2]|0;q=c[L+16>>2]|0;H=q+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];z=+h[k>>3];H=q+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];y=+h[k>>3];H=M+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];A=+h[k>>3];M=M+24|0;a[k>>0]=a[M>>0];a[k+1>>0]=a[M+1>>0];a[k+2>>0]=a[M+2>>0];a[k+3>>0]=a[M+3>>0];a[k+4>>0]=a[M+4>>0];a[k+5>>0]=a[M+5>>0];a[k+6>>0]=a[M+6>>0];a[k+7>>0]=a[M+7>>0];y=y+ +h[k>>3];h[Z>>3]=z+A;h[O>>3]=y;M=L+-48|0;I=c[(c[((I|0)==2?L:M)+40>>2]|0)+16>>2]|0;H=q+56|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];y=+h[k>>3];q=q+64|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];A=+h[k>>3];q=I+16|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];z=+h[k>>3];I=I+24|0;a[k>>0]=a[I>>0];a[k+1>>0]=a[I+1>>0];a[k+2>>0]=a[I+2>>0];a[k+3>>0]=a[I+3>>0];a[k+4>>0]=a[I+4>>0];a[k+5>>0]=a[I+5>>0];a[k+6>>0]=a[I+6>>0];a[k+7>>0]=a[I+7>>0];A=A+ +h[k>>3];h[_>>3]=y+z;h[P>>3]=A;I=c[F+(R<<3)>>2]|0;q=c[F+(R<<3)+4>>2]|0;H=I*3|0;N=H+1|0;if((H|0)<(j|0))K=j;else{if(g){n=0;ia(89,g|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}}n=0;g=na(18,N<<4|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}K=N}if(!(a[q>>0]|0)){n=0;f=ua(40,c[B>>2]|0,q|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[f+36>>2]|0;r=+h[Y+48>>3];p=+h[Z>>3];r=+(~~(r+(1.0-+(c[q+44>>2]|0)/+((c[f+24>>2]|0)+1|0))*(+h[Y+64>>3]-r))|0)}else{n=0;j=ua(40,c[x>>2]|0,q|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[j+36>>2]|0;p=+h[Y+40>>3];p=p+ +(c[q+44>>2]|0)/+((c[j+24>>2]|0)+1|0)*(+h[Y+56>>3]-p);r=+h[O>>3]}Y=g+16|0;h[g+16>>3]=p;h[g+24>>3]=r;c[g>>2]=c[Y>>2];c[g+4>>2]=c[Y+4>>2];c[g+8>>2]=c[Y+8>>2];c[g+12>>2]=c[Y+12>>2];if((I|0)>1){u=1;G=2;while(1){j=q+(u*56|0)|0;if(!(a[j>>0]|0)){n=0;f=ua(40,c[B>>2]|0,j|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[f+36>>2]|0;r=+h[Y+48>>3];r=+(~~(r+(1.0-+(c[q+(u*56|0)+44>>2]|0)/+((c[f+24>>2]|0)+1|0))*(+h[Y+64>>3]-r))|0)}else{n=0;j=ua(40,c[x>>2]|0,j|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[j+36>>2]|0;p=+h[Y+40>>3];p=p+ +(c[q+(u*56|0)+44>>2]|0)/+((c[j+24>>2]|0)+1|0)*(+h[Y+56>>3]-p)}Y=g+(G+2<<4)|0;W=g+(G+1<<4)|0;X=g+(G<<4)|0;h[X>>3]=p;h[g+(G<<4)+8>>3]=r;c[W>>2]=c[X>>2];c[W+4>>2]=c[X+4>>2];c[W+8>>2]=c[X+8>>2];c[W+12>>2]=c[X+12>>2];c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];u=u+1|0;if((u|0)==(I|0))break;else G=G+3|0}u=H+-1|0;q=q+((I+-1|0)*56|0)|0}else u=2;if(!(a[q>>0]|0)){n=0;f=ua(40,c[B>>2]|0,q|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[f+36>>2]|0;p=+h[Y+48>>3];r=+h[_>>3];p=+(~~(p+(1.0-+(c[q+44>>2]|0)/+((c[f+24>>2]|0)+1|0))*(+h[Y+64>>3]-p))|0)}else{n=0;j=ua(40,c[x>>2]|0,q|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[j+36>>2]|0;r=+h[Y+40>>3];r=r+ +(c[q+44>>2]|0)/+((c[j+24>>2]|0)+1|0)*(+h[Y+56>>3]-r);p=+h[P>>3]}Y=g+(u<<4)|0;W=u+1|0;X=g+(W<<4)|0;h[X>>3]=r;h[g+(W<<4)+8>>3]=p;c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];if((d[124827]|0)>1){n=0;q=na(22,c[((c[L>>2]&3|0)==3?L:J)+40>>2]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}n=0;j=na(22,c[((c[L>>2]&3|0)==2?L:M)+40>>2]|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}n=0;c[la>>2]=q;c[la+4>>2]=j;da(13,Q|0,134113,la|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}}n=0;ga(7,L|0,c[((c[L>>2]&3|0)==2?L:M)+40>>2]|0,g|0,N|0,59372);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}R=R+1|0;if((R|0)==(m|0))break;else j=K}}else g=0;n=0;ia(89,g|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}u=U;q=T;f=S;wa=245}pB(ma|0);i=xa;return}function Ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+32|0;l=m+16|0;k=m;Mz(134350,10,1,a)|0;Mz(134361,19,1,a)|0;if((c[b>>2]|0)>0){g=b+16|0;j=0;do{d=c[g>>2]|0;f=d+(j*40|0)|0;e=c[d+(j*40|0)+20>>2]|0;d=c[d+(j*40|0)+24>>2]|0;do if((e|0)!=(d|0)){e=(c[e>>2]&1|0)==0?e:d;d=c[e+36>>2]|0;if((c[d+4>>2]|0)==(f|0)){f=~~((+h[e+40>>3]+ +h[e+56>>3])*.5);d=~~+h[e+64>>3];break}if((c[d+12>>2]|0)==(f|0)){f=~~((+h[e+40>>3]+ +h[e+56>>3])*.5);d=~~+h[e+48>>3];break}if((c[d+8>>2]|0)==(f|0)){f=~~+h[e+40>>3];d=~~((+h[e+48>>3]+ +h[e+64>>3])*.5);break}if((c[d>>2]|0)==(f|0)){f=~~+h[e+56>>3];d=~~((+h[e+48>>3]+ +h[e+64>>3])*.5)}else{f=0;d=0}}else{f=~~((+h[e+40>>3]+ +h[e+56>>3])*.5);d=~~((+h[e+48>>3]+ +h[e+64>>3])*.5)}while(0);c[k>>2]=j;c[k+4>>2]=f;c[k+8>>2]=d;Bz(a,134381,k)|0;j=j+1|0}while((j|0)<(c[b>>2]|0))}f=b+4|0;if((c[f>>2]|0)>0){d=b+20|0;e=0;do{k=c[d>>2]|0;b=c[k+(e*24|0)+16>>2]|0;n=+h[k+(e*24|0)>>3];c[l>>2]=c[k+(e*24|0)+12>>2];c[l+4>>2]=b;h[l+8>>3]=n;Bz(a,134401,l)|0;e=e+1|0}while((e|0)<(c[f>>2]|0))}Mz(134423,2,1,a)|0;i=m;return}function It(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function Jt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0;j=(a[d+36>>0]|0)!=0;i=e+40|0;do if((c[d+24>>2]|0)==(e|0)){g=+h[i>>3];f=+h[e+48>>3];if(j){f=(f+ +h[e+64>>3])*.5;break}else{g=(g+ +h[e+56>>3])*.5;break}}else{g=+h[e+56>>3];f=+h[e+64>>3];if(j){f=(+h[e+48>>3]+f)*.5;break}else{g=(+h[i>>3]+g)*.5;break}}while(0);h[b>>3]=g;h[b+8>>3]=f;return}function Kt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;f=l;g=b+32|0;if((c[g>>2]|0)>0){h=b+36|0;k=0;do{j=c[(c[h>>2]|0)+(k<<2)>>2]|0;e=c[j+20>>2]|0;if((e|0)==(b|0))e=c[j+24>>2]|0;Jt(f,j,e);pu(a,d,j,0.0)|0;k=k+1|0}while((k|0)<(c[g>>2]|0))}c[a>>2]=(c[a>>2]|0)+1;c[d+24>>2]=b;c[d+20>>2]=b;i=l;return}function Lt(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0;g=i;i=i+16|0;f=g;h[f>>3]=d;e=ub[c[a>>2]&31](a,f,512)|0;if(!e){e=$p(24)|0;h[e+8>>3]=+h[f>>3];c[e+16>>2]=Vi(59384,c[12573]|0)|0;ub[c[a>>2]&31](a,e,1)|0}a=c[e+16>>2]|0;ub[c[a>>2]&31](a,b,1)|0;i=g;return}function Mt(a,b){a=a|0;b=b|0;a=ub[c[a>>2]&31](a,b+8|0,512)|0;if(!a)Ia(134330,134219,423,134336);a=c[a+16>>2]|0;a=ub[c[a>>2]&31](a,b+16|0,512)|0;if(!a)Ia(134347,134219,425,134336);else return a|0;return 0}function Nt(a){a=a|0;var b=0;a=Ti(a)|0;if(a)do{b=Ti(c[a+16>>2]|0)|0;if(b)do{c[b+32>>2]=du(c[b+24>>2]|0)|0;b=c[b>>2]|0}while((b|0)!=0);a=c[a>>2]|0}while((a|0)!=0);return}function Ot(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a=Ti(a)|0;if(a)do{b=Ti(c[a+16>>2]|0)|0;if(b)do{h=c[b+24>>2]|0;if((h|0)!=0?(i=c[b+28>>2]|0,j=c[b+32>>2]|0,(h|0)>1):0){g=1;e=0;while(1){d=i+(e<<2)|0;f=g;do{switch(Yt(c[d>>2]|0,c[i+(f<<2)>>2]|0)|0){case 1:{fu(j,e,f);break}case -1:{fu(j,f,e);break}default:{}}f=f+1|0}while((f|0)!=(h|0));d=g+1|0;if((d|0)==(h|0))break;else{e=g;g=d}}}b=c[b>>2]|0}while((b|0)!=0);a=c[a>>2]|0}while((a|0)!=0);return}function Pt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+16|0;v=y+8|0;w=y;a=Ti(a)|0;if(a){t=v+4|0;u=w+4|0;do{d=Ti(c[a+16>>2]|0)|0;if(d)do{p=c[d+32>>2]|0;q=c[d+28>>2]|0;r=d+24|0;e=c[r>>2]|0;if((e|0)>1){s=1;o=0;while(1){if((s|0)<(e|0)){m=q+(o<<2)|0;n=s;do{a:do if(((hu(p,o,n)|0)==0?(hu(p,n,o)|0)==0:0)?(x=q+(n<<2)|0,(Ut(c[m>>2]|0,c[x>>2]|0)|0)!=0):0){j=c[m>>2]|0;e=c[j+48>>2]|0;k=c[x>>2]|0;f=c[k+48>>2]|0;g=(f|0)==0;if(e)if(g)l=1;else l=+h[e+8>>3]!=+h[f+8>>3]&1;else l=g&1^1;Vt(v,j,k,0,l);e=c[v>>2]|0;k=c[t>>2]|0;f=l^1;Vt(w,c[m>>2]|0,c[x>>2]|0,1,f);g=c[w>>2]|0;j=c[u>>2]|0;switch(k|0){case -1:{Wt(c[x>>2]|0,c[m>>2]|0,l,0,e,b);Wt(c[x>>2]|0,c[m>>2]|0,f,1,g,b);if((j|0)!=1)break a;Xt(c[m>>2]|0,c[x>>2]|0,f,b);break a}case 0:switch(j|0){case -1:{Wt(c[x>>2]|0,c[m>>2]|0,l,0,e,b);Wt(c[x>>2]|0,c[m>>2]|0,f,1,g,b);break a}case 0:{Wt(c[m>>2]|0,c[x>>2]|0,0,l,e,b);Wt(c[m>>2]|0,c[x>>2]|0,1,f,g,b);break a}case 1:{Wt(c[m>>2]|0,c[x>>2]|0,0,l,e,b);Wt(c[m>>2]|0,c[x>>2]|0,1,f,g,b);break a}default:break a}case 1:{Wt(c[m>>2]|0,c[x>>2]|0,0,l,e,b);Wt(c[m>>2]|0,c[x>>2]|0,1,f,g,b);if((j|0)!=-1)break a;Xt(c[m>>2]|0,c[x>>2]|0,f,b);break a}default:break a}}while(0);n=n+1|0;e=c[r>>2]|0}while((n|0)<(e|0))}f=s+1|0;if((f|0)<(e|0)){o=s;s=f}else break}}d=c[d>>2]|0}while((d|0)!=0);a=c[a>>2]|0}while((a|0)!=0)}i=y;return}function Qt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=i;i=i+32|0;o=p;a=Ti(a)|0;if(a){m=c[22667]|0;do{b=Ti(c[a+16>>2]|0)|0;if(b){l=a+8|0;do{k=b+24|0;d=c[k>>2]|0;if(d){if(!((c[14794]&8|0)==0|(d|0)<2)?(r=+h[b+8>>3],q=+h[b+16>>3],c[o>>2]=~~+h[l>>3],h[o+8>>3]=r,h[o+16>>3]=q,Bz(m,134126,o)|0,(c[k>>2]|0)>0):0){d=b+32|0;e=b+28|0;j=0;do{f=c[(c[(c[d>>2]|0)+4>>2]|0)+(j*12|0)+8>>2]|0;if((Xi(f)|0)!=0?(Tt(m,c[(c[e>>2]|0)+(j<<2)>>2]|0),Mz(134146,4,1,m)|0,n=ub[c[f>>2]&31](f,0,128)|0,(n|0)!=0):0){g=n;do{Mz(134151,5,1,m)|0;Tt(m,c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0);Cz(10,m)|0;g=ub[c[f>>2]&31](f,g,8)|0}while((g|0)!=0)}j=j+1|0}while((j|0)<(c[k>>2]|0))}d=b+32|0;iu(c[d>>2]|0);g=c[k>>2]|0;if((g|0)>0){d=c[(c[d>>2]|0)+4>>2]|0;e=c[b+28>>2]|0;f=0;do{c[(c[e+(f<<2)>>2]|0)+44>>2]=(c[d+(f*12|0)+4>>2]|0)+1;f=f+1|0}while((f|0)<(g|0))}}b=c[b>>2]|0}while((b|0)!=0)}a=c[a>>2]|0}while((a|0)!=0)}i=p;return}function Rt(a){a=a|0;return 0}function St(a){a=a|0;return 0}function Tt(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0,k=0,l=0,m=0;m=i;i=i+80|0;l=m+40|0;k=m;if(!(a[d>>0]|0)){e=+h[d+16>>3];f=+h[d+8>>3];g=+h[d+24>>3];switch(c[d+32>>2]|0){case 0:{j=134184;break}case 1:{j=134179;break}case 2:{j=134172;break}case 3:{j=134165;break}case 4:{j=134157;break}default:j=0}switch(c[d+36>>2]|0){case 0:{d=134184;break}case 1:{d=134179;break}case 2:{d=134172;break}case 3:{d=134165;break}case 4:{d=134157;break}default:d=0}h[l>>3]=e;h[l+8>>3]=f;h[l+16>>3]=g;h[l+24>>3]=f;c[l+32>>2]=j;c[l+36>>2]=d;Bz(b,134191,l)|0}else{e=+h[d+8>>3];f=+h[d+16>>3];g=+h[d+24>>3];switch(c[d+32>>2]|0){case 0:{j=134184;break}case 1:{j=134179;break}case 2:{j=134172;break}case 3:{j=134165;break}case 4:{j=134157;break}default:j=0}switch(c[d+36>>2]|0){case 0:{d=134184;break}case 1:{d=134179;break}case 2:{d=134172;break}case 3:{d=134165;break}case 4:{d=134157;break}default:d=0}h[k>>3]=e;h[k+8>>3]=f;h[k+16>>3]=e;h[k+24>>3]=g;c[k+32>>2]=j;c[k+36>>2]=d;Bz(b,134191,k)|0}i=m;return}function Ut(a,b){a=a|0;b=b|0;if(!(+h[a+8>>3]==+h[b+8>>3]))Ia(134287,134219,843,134318);if((+h[a+16>>3]==+h[b+16>>3]?+h[a+24>>3]==+h[b+24>>3]:0)?(c[a+32>>2]|0)==(c[b+32>>2]|0):0)a=(c[a+36>>2]|0)==(c[b+36>>2]|0);else a=0;return a&1|0}function Vt(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0;if(!d)Ia(134215,134219,798,134227);j=(f|0)==0;i=(g|0)==0;g=c[(j?d+48|0:d+52|0)>>2]|0;a:do if(g){d=0;while(1){if(!e){d=5;break}e=c[(i?e+48|0:e+52|0)>>2]|0;if(!e){d=9;break}if(!(Ut(g,e)|0)){l=d;d=10;break}d=d+1|0;g=c[(j?g+48|0:g+52|0)>>2]|0;if(!g){m=d;n=0;break a}}if((d|0)==5)Ia(134215,134219,798,134227);else if((d|0)==9)Ia(161945,134219,871,134236);else if((d|0)==10){d=Yt(g,e)|0;k=l+1|0;if((l|0)<0){m=l;n=d;break}f=(f|0)==1;j=1;while(1){if(!g)break;i=g;g=c[(f?g+48|0:g+52|0)>>2]|0;e=+h[g+8>>3]==+h[i+16>>3];do if(!(a[i>>0]|0))if(e){d=(c[i+32>>2]|0)==1?0-d|0:d;break}else{d=(c[i+36>>2]|0)==3?0-d|0:d;break}else if(e){d=(c[i+32>>2]|0)==4?0-d|0:d;break}else{d=(c[i+36>>2]|0)==2?0-d|0:d;break}while(0);if((j|0)>=(k|0)){m=l;n=d;break a}else j=j+1|0}Ia(134215,134219,798,134227)}}else{m=0;n=0}while(0);c[b>>2]=m;c[b+4>>2]=n;return}function Wt(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!(a[b>>0]|0))j=Mt(c[i+20>>2]|0,b)|0;else j=Mt(c[i+24>>2]|0,b)|0;fu(c[j+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0);if((g|0)>=1){p=(e|0)==0;n=(f|0)==0;o=i+24|0;m=i+20|0;l=1;while(1){i=b;b=c[(p?b+48|0:b+52|0)>>2]|0;f=d;d=c[(n?d+48|0:d+52|0)>>2]|0;do if(!(a[i>>0]|0)){e=Mt(c[o>>2]|0,b)|0;if(+h[b+8>>3]==+h[i+16>>3]){q=(c[i+32>>2]|0)==1;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[d+40>>2]|0;i=c[b+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}}else{q=(c[i+36>>2]|0)==1;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{f=c[d+40>>2]|0;i=c[b+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}}}else{e=Mt(c[m>>2]|0,b)|0;if(+h[b+8>>3]==+h[i+16>>3]){q=(c[i+32>>2]|0)==2;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{i=c[d+40>>2]|0;f=c[b+40>>2]|0;if(j){fu(k,i,f);break}else{fu(k,f,i);break}}}else{q=(c[i+36>>2]|0)==2;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[d+40>>2]|0;i=c[b+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}}}while(0);if((l|0)==(g|0))break;else{j=e;l=l+1|0}}}return}function Xt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if(Ut(b,d)|0){g=(e|0)==0;e=b;while(1){if(!e){e=4;break}if(!d){e=6;break}e=c[e+52>>2]|0;d=c[(g?d+48|0:d+52|0)>>2]|0;if(!(Ut(e,d)|0)){h=e;i=d;break a}}if((e|0)==4)Ia(134215,134219,798,134227);else if((e|0)==6)Ia(134215,134219,798,134227)}else{h=b;i=d}while(0);if(!(a[h>>0]|0))e=Mt(c[f+20>>2]|0,h)|0;else e=Mt(c[f+24>>2]|0,h)|0;gu(c[e+32>>2]|0,c[h+40>>2]|0,c[i+40>>2]|0);return}function Yt(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=a[b>>0]|0;if(d<<24>>24==(a[c>>0]|0)?!(+h[b+8>>3]!=+h[c+8>>3]):0){if(!(d<<24>>24))d=Zt(b,c,3,1)|0;else d=Zt(b,c,4,2)|0;i=f;return d|0}dj(1,134249,e)|0;Ka(59216,1);return 0}function Zt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0;i=+h[a+24>>3];j=+h[b+16>>3];do if(!(i<j)?(l=+h[a+16>>3],m=+h[b+24>>3],!(l>m)):0){if(j<i&l<j){f=_t(a,b,d,e)|0;break}if(j<l&l<m){f=0-(_t(b,a,d,e)|0)|0;break}if(!(l==j))if(i==j){f=c[a+36>>2]|0;if((f|0)==(c[b+32>>2]|0)){f=0;break}f=(f|0)==(e|0)?1:-1;break}else{f=c[a+32>>2]|0;if((f|0)==(c[b+36>>2]|0)){f=0;break}f=(f|0)==(e|0)?1:-1;break}if(!(i==m))if(i<m){k=(c[a+36>>2]|0)==(d|0);g=c[b+32>>2]|0;f=c[a+32>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f)f=0;else{f=f&1;n=41}}else n=41;if((n|0)==41)f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;return (k?f:0-f|0)|0}else{k=(c[b+36>>2]|0)==(e|0);g=c[a+32>>2]|0;f=c[b+32>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f)f=0;else{f=f&1;n=45}}else n=45;if((n|0)==45)f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;f=k?f:0-f|0;break}o=c[a+32>>2]|0;n=c[b+32>>2]|0;if((o|0)==(n|0)){f=c[b+36>>2]|0;if((c[a+36>>2]|0)==(f|0)){f=0;break}}else f=c[b+36>>2]|0;b=(n|0)==(d|0);if((n|0)==(f|0)){if(b){f=1;break}if((n|0)==(e|0)){f=-1;break}if((o|0)!=(d|0)?(c[a+36>>2]|0)!=(d|0):0){f=1;break}if((o|0)!=(e|0)?(c[a+36>>2]|0)!=(e|0):0){f=-1;break}f=0;break}g=(f|0)==(e|0);if(b&g){f=(c[a+36>>2]|0)==(e|0);if((o|0)==(d|0)){if(!f){f=-1;break}}else if(f){f=1;break}f=0;break}k=(f|0)==(d|0);if((n|0)==(e|0)&k){f=(o|0)==(e|0);if((c[a+36>>2]|0)==(d|0)){if(!f){f=-1;break}}else if(f){f=1;break}f=0;break}if(!n){if(k){f=(o|0)==(d|0)?((c[a+36>>2]|0)==(d|0))<<31>>31:1;break}if(g){f=(o|0)==(e|0)?(c[a+36>>2]|0)==(e|0)&1:-1;break}}g=c[a+36>>2]|0;if(b&(f|0)==0){f=(g|0)==(d|0)?((o|0)==(d|0))<<31>>31:1;break}else{f=(g|0)==(e|0)?(o|0)==(e|0)&1:-1;break}}else f=0;while(0);return f|0}function _t(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0;i=+h[a+24>>3];j=+h[b+24>>3];do if(i<j){f=c[a+36>>2]|0;if((f|0)==(d|0)?(c[b+32>>2]|0)==(e|0):0){f=-1;break}if((f|0)==(e|0)?(c[b+32>>2]|0)==(d|0):0){f=1;break}f=0}else{f=c[b+32>>2]|0;g=(f|0)==(e|0);if(!(i==j)){if(g?(c[b+36>>2]|0)==(e|0):0){f=-1;break}if((f|0)==(d|0)?(c[b+36>>2]|0)==(d|0):0){f=1;break}f=0;break}if(g){g=c[a+36>>2]|0;f=c[b+36>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f){f=0;break}else f=f&1}f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;break}g=c[b+36>>2]|0;f=c[a+36>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f)f=0;else{f=f&1;k=14}}else k=14;if((k|0)==14)f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;f=0-f|0}while(0);return f|0}function $t(a,b,d){a=a|0;b=b|0;d=d|0;eu(c[b+32>>2]|0);pB(c[b+28>>2]|0);pB(b);return}function au(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];if(!(e>f))if(e<f)a=!(+h[b+8>>3]>=+h[c+8>>3])<<31>>31;else a=0;else a=!(+h[b+8>>3]<=+h[c+8>>3])&1;return a|0}function bu(a,b,d){a=a|0;b=b|0;d=d|0;Pi(c[b+16>>2]|0)|0;pB(b);return}function cu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;f=+h[b>>3];e=+h[c>>3];return (f>e?1:(f<e)<<31>>31)|0}function du(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=$p(8)|0;c[b>>2]=a;d=b+4|0;c[d>>2]=$p(a*12|0)|0;if((a|0)>0){e=0;do{g=qw()|0;f=c[d>>2]|0;c[f+(e*12|0)+8>>2]=g;c[f+(e*12|0)>>2]=0;e=e+1|0}while((e|0)!=(a|0))}return b|0}function eu(a){a=a|0;var b=0,d=0;b=a+4|0;if((c[a>>2]|0)>0){d=0;do{Pi(c[(c[b>>2]|0)+(d*12|0)+8>>2]|0)|0;d=d+1|0}while((d|0)<(c[a>>2]|0))}pB(c[b>>2]|0);pB(a);return}function fu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;ub[c[d>>2]&31](d,f,1)|0;i=e;return}function gu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;c[f>>2]=d;a=a+4|0;g=c[(c[a>>2]|0)+(b*12|0)+8>>2]|0;ub[c[g>>2]&31](g,f,2)|0;c[f>>2]=b;d=c[(c[a>>2]|0)+(d*12|0)+8>>2]|0;ub[c[d>>2]&31](d,f,2)|0;i=e;return}function hu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;d=(ub[c[d>>2]&31](d,f,512)|0)!=0&1;i=e;return d|0}function iu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=c[a>>2]|0;switch(b|0){case 0:break;case 1:{c[(c[a+4>>2]|0)+4>>2]=0;break}default:{h=$p(8)|0;g=h+4|0;c[g>>2]=$p(b<<2)|0;c[h>>2]=-1;b=c[a>>2]|0;a:do if((b|0)>0){f=a+4|0;e=0;d=0;do{if(!(c[(c[f>>2]|0)+(e*12|0)>>2]|0)){d=ju(a,e,d,h)|0;b=c[a>>2]|0}e=e+1|0}while((e|0)<(b|0));d=c[h>>2]|0;if((d|0)!=-1){b=c[g>>2]|0;a=a+4|0;g=0;while(1){f=c[b+(d<<2)>>2]|0;e=d;d=d+-1|0;c[h>>2]=d;if((f|0)<=-1)break a;c[(c[a>>2]|0)+(f*12|0)+4>>2]=g;if(!e)break;else g=g+1|0}}else i=6}else i=6;while(0);if((i|0)==6)b=c[g>>2]|0;pB(b);pB(h)}}return}function ju(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+4|0;f=c[i>>2]|0;j=f+(b*12|0)|0;c[j>>2]=1;f=c[f+(b*12|0)+8>>2]|0;d=d+1|0;g=Ti(f)|0;if(g){h=f+4|0;do{f=c[(c[h>>2]|0)+8>>2]|0;if((f|0)<0)f=c[g+8>>2]|0;else f=g+(0-f)|0;f=c[f>>2]|0;if(!(c[(c[i>>2]|0)+(f*12|0)>>2]|0))d=ju(a,f,d,e)|0;g=c[g>>2]|0}while((g|0)!=0)}c[j>>2]=2;j=(c[e>>2]|0)+1|0;c[e>>2]=j;c[(c[e+4>>2]|0)+(j<<2)>>2]=b;return d+1|0}function ku(a){a=a|0;var d=0,e=0;e=c[a>>2]|0;c[a+8>>2]=e;c[a+12>>2]=c[a+4>>2];if((e|0)>0){a=c[a+16>>2]|0;d=0;do{b[a+(d*40|0)+18>>1]=b[a+(d*40|0)+16>>1]|0;d=d+1|0}while((d|0)<(e|0))}return}function lu(a){a=a|0;var d=0,e=0,f=0,g=0;g=c[a+8>>2]|0;c[a>>2]=g;c[a+4>>2]=c[a+12>>2];if((g|0)>0){d=c[a+16>>2]|0;e=(g|0)>1;f=0;do{b[d+(f*40|0)+16>>1]=b[d+(f*40|0)+18>>1]|0;f=f+1|0}while((f|0)<(g|0));d=e?g:1}else d=0;if((d|0)<(g+2|0)){f=c[a+16>>2]|0;e=g+1|0;while(1){b[f+(d*40|0)+16>>1]=0;if((d|0)<(e|0))d=d+1|0;else break}}return}function mu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=$p(((c[a>>2]|0)*6|0)+(b<<1)<<2)|0;c[a+20>>2]=$p((((c[a>>2]|0)*3|0)+b|0)*24|0)|0;i=c[a>>2]|0;if((i|0)>0){g=c[a+16>>2]|0;d=(i|0)>1?i:1;h=e+(d*24|0)|0;f=0;while(1){c[g+(f*40|0)+28>>2]=e;f=f+1|0;if((f|0)>=(i|0))break;else e=e+24|0}e=h}else d=0;if((d|0)<(i+2|0)){g=c[a+16>>2]|0;f=i+1|0;while(1){c[g+(d*40|0)+28>>2]=e;if((d|0)<(f|0)){e=e+(b<<2)|0;d=d+1|0}else break}}return}function nu(a){a=a|0;var b=0;b=$p(24)|0;c[b>>2]=0;c[b+16>>2]=$p(a*40|0)|0;return b|0}function ou(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=c[a>>2]|0;c[d+(b*40|0)+32>>2]=b;c[a>>2]=b+1;return d+(b*40|0)|0}function pu(a,d,e,f){a=a|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0;g=a+4|0;i=c[g>>2]|0;c[g>>2]=i+1;g=c[a+20>>2]|0;a=g+(i*24|0)|0;c[g+(i*24|0)+12>>2]=c[d+32>>2];c[g+(i*24|0)+16>>2]=c[e+32>>2];h[a>>3]=f;c[g+(i*24|0)+8>>2]=0;g=d+16|0;j=b[g>>1]|0;c[(c[d+28>>2]|0)+(j<<16>>16<<2)>>2]=i;b[g>>1]=j+1<<16>>16;d=e+16|0;g=b[d>>1]|0;c[(c[e+28>>2]|0)+(g<<16>>16<<2)>>2]=i;b[d>>1]=g+1<<16>>16;return a|0}function qu(a){a=a|0;var b=0;b=a+16|0;pB(c[(c[b>>2]|0)+28>>2]|0);pB(c[b>>2]|0);pB(c[a+20>>2]|0);pB(a);return}function ru(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=c[a>>2]|0;if((f|0)>0){g=c[a+16>>2]|0;i=0;do{c[g+(i*40|0)>>2]=-2147483648;i=i+1|0}while((i|0)<(f|0))}yw();a:do if(!(Bw(d)|0)){c[d+8>>2]=0;c[d>>2]=0;f=Dw()|0;if(!f)f=0;else{q=a+20|0;p=a+16|0;while(1){c[f>>2]=0-(c[f>>2]|0);if((f|0)==(e|0)){f=0;break a}j=f+16|0;if((b[j>>1]|0)>0){k=f+28|0;l=f+32|0;o=0;do{g=c[(c[k>>2]|0)+(o<<2)>>2]|0;d=c[q>>2]|0;m=d+(g*24|0)|0;i=c[d+(g*24|0)+12>>2]|0;n=c[p>>2]|0;if((i|0)==(c[l>>2]|0))i=c[d+(g*24|0)+16>>2]|0;g=n+(i*40|0)|0;d=c[g>>2]|0;do if((d|0)<0){a=~~-(+(c[f>>2]|0)+ +h[m>>3]);if((d|0)==-2147483648){c[g>>2]=a;if(Bw(g)|0){f=1;break a}c[n+(i*40|0)+8>>2]=f;c[n+(i*40|0)+12>>2]=m;break}else{if((d|0)>=(a|0))break;Ew(g,a);c[n+(i*40|0)+8>>2]=f;c[n+(i*40|0)+12>>2]=m;break}}while(0);o=o+1|0}while((o|0)<(b[j>>1]|0))}f=Dw()|0;if(!f){f=0;break}}}}else f=1;while(0);return f|0}function su(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]|0;tn(d,3,b)|0;b=c[d+92>>2]|0;do if(b){g=c[b+16>>2]|0;h=c[g+12>>2]|0;c[a+76>>2]=h;f=c[g+16>>2]|0;c[a+84>>2]=f;g=c[g>>2]|0;c[a+80>>2]=g;c[a+88>>2]=c[b+4>>2];e=a+152|0;f=c[e>>2]|c[f>>2];c[e>>2]=f;b=c[d+80>>2]|0;if(!b){c[a+60>>2]=0;b=999;break}d=c[b+16>>2]|0;c[a+60>>2]=c[d+12>>2];i=c[d+16>>2]|0;c[a+68>>2]=i;c[a+72>>2]=c[b+4>>2];c[e>>2]=f|c[i>>2];if(!h){c[a+64>>2]=g;b=300;break}else{c[a+64>>2]=c[d>>2];b=300;break}}else b=999;while(0);return b|0}function tu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(!(Ym(a)|0))if((b|0)!=0?(d=c[b>>2]|0,(d|0)!=0):0){zb[d&127](a);b=0}else b=0;else b=1;return b|0}function uu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+4>>2]|0,(d|0)!=0):0)zb[d&127](a);c[(c[a>>2]|0)+24>>2]=0;cn(a);return}function vu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0;g=+h[a+504>>3];j=+h[a+512>>3];i=+h[a+352>>3];k=i*+h[a+520>>3];i=i*+h[a+528>>3];f=(e|0)>0;if(!(c[a+360>>2]|0)){if(f){f=0;do{h[d+(f<<4)>>3]=k*(g+ +h[b+(f<<4)>>3]);h[d+(f<<4)+8>>3]=i*(j+ +h[b+(f<<4)+8>>3]);f=f+1|0}while((f|0)!=(e|0))}}else if(f){f=0;do{l=-(k*(j+ +h[b+(f<<4)+8>>3]));h[d+(f<<4)+8>>3]=i*(g+ +h[b+(f<<4)>>3]);h[d+(f<<4)>>3]=l;f=f+1|0}while((f|0)!=(e|0))}return d|0}function wu(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+8>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function xu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+12>>2]|0,(d|0)!=0):0)zb[d&127](a);bn(a);return}function yu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+24>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function zu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+28>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Au(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+16>>2]|0,(d|0)!=0):0){b=c[a+160>>2]|0;Kb[d&31](a,c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0,b,c[a+156>>2]|0)}return}function Bu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+20>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Cu(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+32>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Du(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+36>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Eu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+40>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Fu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+44>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Gu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+48>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Hu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+52>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Iu(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+56>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Ju(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+60>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Ku(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+64>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Lu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+68>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Mu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[a+60>>2]|0;if((g|0)!=0?(h=c[g+72>>2]|0,(h|0)!=0):0)xb[h&7](a,b,d,e,f);return}function Nu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+76>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Ou(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+60>>2]|0;if((d|0)!=0?(e=c[d+80>>2]|0,(e|0)!=0):0)Bb[e&31](a,b);return}function Pu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+84>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Qu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+32|0;q=r+16|0;p=r;n=c[b+60>>2]|0;s=c[e>>2]|0;do if((s|0)!=0?(a[s>>0]|0)!=0:0){s=c[b+16>>2]|0;if((s|0)!=0?(c[s+144>>2]|0)==0:0)break;if(!(c[b+152>>2]&8192)){l=+h[d>>3];f=+h[d+8>>3];g=+h[b+504>>3];j=+h[b+512>>3];m=+h[b+352>>3];if(!(c[b+360>>2]|0)){k=l+g;f=f+j}else{k=-(f+j);f=l+g}l=m*+h[b+528>>3]*f;h[p>>3]=m*+h[b+520>>3]*k;h[p+8>>3]=l}else{c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2]}if((n|0)!=0?(o=c[n+88>>2]|0,(o|0)!=0):0){c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];Gb[o&127](b,q,e)}}while(0);i=r;return}function Ru(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b+60>>2]|0;g=(c[b+16>>2]|0)+16|0;i=jA(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if((e|0)!=0?(bv(c[b+68>>2]|0,d,g),f=c[e+92>>2]|0,(f|0)!=0):0)Bb[f&31](b,g);if(h)a[i>>0]=58;return}function Su(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b+60>>2]|0;g=(c[b+16>>2]|0)+56|0;i=jA(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if((e|0)!=0?(bv(c[b+68>>2]|0,d,g),f=c[e+92>>2]|0,(f|0)!=0):0)Bb[f&31](b,g);if(h)a[i>>0]=58;return}function Tu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,i=0,j=0;f=c[a+60>>2]|0;h=a+16|0;i=(c[h>>2]|0)+96|0;if((f|0)!=0?(bv(c[a+68>>2]|0,b,i),j=c[f+92>>2]|0,(j|0)!=0):0)Bb[j&31](a,i);b=c[h>>2]|0;c[b+136>>2]=d;g[b+140>>2]=e;return}function Uu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;k=m;j=c[b+60>>2]|0;b=c[b+16>>2]|0;c[b+160>>2]=d;a:do if((d|0)!=0&(j|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){j=b+144|0;g=b+152|0;f=b+148|0;b=e;while(1){d=d+4|0;b:do switch(a[b>>0]|0){case 115:{if(!(lA(b,134426)|0)){c[j>>2]=3;break b}if(!(lA(b,134447)|0)){e=b+1|0;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}h[g>>3]=+Xz(b)}else l=26;break}case 100:{if(!(lA(b,161262)|0)){c[j>>2]=1;break b}if(!(lA(b,161269)|0))c[j>>2]=2;else l=26;break}case 105:{if((lA(b,157791)|0)!=0?(lA(b,134432)|0)!=0:0){l=26;break b}c[j>>2]=0;break}case 98:{if(!(lA(b,134442)|0))h[g>>3]=2.0;else l=26;break}case 102:{if(!(lA(b,134460)|0))c[f>>2]=1;else l=26;break}case 117:{if(!(lA(b,134467)|0))c[f>>2]=0;else l=26;break}case 116:{if(lA(b,134476)|0)l=26;break}default:l=26}while(0);if((l|0)==26){l=0;c[k>>2]=b;dj(0,134484,k)|0}b=c[d>>2]|0;if(!b)break a}}while(0);i=m;return}function Vu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0;g=i;i=i+32|0;f=g;d=c[a+60>>2]|0;if(((d|0)!=0?(j=d+96|0,(c[j>>2]|0)!=0):0)?(c[(c[a+16>>2]|0)+144>>2]|0)!=0:0){d=b+16|0;h[f>>3]=(+h[b>>3]+ +h[d>>3])*.5;h[f+8>>3]=(+h[b+8>>3]+ +h[b+24>>3])*.5;b=f+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];if(!(c[a+152>>2]&8192))vu(a,f,f,2)|0;Gb[c[j>>2]&127](a,f,e)}i=g;return}function Wu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;n=o;f=c[a+60>>2]|0;if(((f|0)!=0?(l=f+100|0,(c[l>>2]|0)!=0):0)?(m=a+16|0,k=c[m>>2]|0,(c[k+144>>2]|0)!=0):0){if(!(e&4))g=0;else{e=e&-5;f=k+16|0;g=n;h=f;j=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));g=f;h=k+56|0;j=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));g=1}if(!(c[a+152>>2]&8192)){if((c[14855]|0)<(d|0)){f=d+10|0;c[14855]=f;f=cq(c[14856]|0,f<<4)|0;c[14856]=f}else f=c[14856]|0;vu(a,b,f,d)|0;Kb[c[l>>2]&31](a,c[14856]|0,d,e)}else Kb[c[l>>2]&31](a,b,d,e);if(g){g=(c[m>>2]|0)+16|0;h=n;j=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0))}}i=o;return}function Xu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+64|0;f=e;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];g=f+32|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[f+16>>3]=+h[f>>3];h[f+24>>3]=+h[f+40>>3];h[f+48>>3]=+h[g>>3];h[f+56>>3]=+h[f+8>>3];Wu(a,f,4,d);i=e;return}function Yu(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+60>>2]|0;do if(((h|0)!=0?(j=h+104|0,i=c[j>>2]|0,(i|0)!=0):0)?(c[(c[a+16>>2]|0)+144>>2]|0)!=0:0){if(c[a+152>>2]&8192){vb[i&15](a,b,d,e,f,g&255);break}if((c[14855]|0)<(d|0)){h=d+10|0;c[14855]=h;h=cq(c[14856]|0,h<<4)|0;c[14856]=h}else h=c[14856]|0;vu(a,b,h,d)|0;vb[c[j>>2]&15](a,c[14856]|0,d,e,f,g&255)}while(0);return}function Zu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a+60>>2]|0;do if(((e|0)!=0?(g=e+108|0,f=c[g>>2]|0,(f|0)!=0):0)?(c[(c[a+16>>2]|0)+144>>2]|0)!=0:0){if(c[a+152>>2]&8192){Gb[f&127](a,b,d);break}if((c[14855]|0)<(d|0)){e=d+10|0;c[14855]=e;e=cq(c[14856]|0,e<<4)|0;c[14856]=e}else e=c[14856]|0;vu(a,b,e,d)|0;Gb[c[g>>2]&127](a,c[14856]|0,d)}while(0);return}function _u(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+60>>2]|0;if(((d|0)!=0?(e|0)!=0&(a[d>>0]|0)!=0:0)?(f=c[e+112>>2]|0,(f|0)!=0):0)Bb[f&31](b,d);return}function $u(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+80|0;B=C+32|0;A=C;n=C+64|0;y=c[b+60>>2]|0;if(!b)Ia(134710,134537,691,134548);if(!d)Ia(134567,134537,692,134548);if(!(a[d>>0]|0))Ia(134572,134537,693,134548);z=vn(d)|0;if(!z){if((y|0)!=0&(mr(d)|0)!=0?(m=c[y+116>>2]|0,(m|0)!=0):0)xb[m&7](b,d,e,f,g&255)}else{w=b+432|0;c[B>>2]=c[w>>2];c[B+4>>2]=c[w+4>>2];c[B+8>>2]=c[w+8>>2];c[B+12>>2]=c[w+12>>2];yn(n,z,B);w=c[n>>2]|0;v=c[n+4>>2]|0;if(!((w|0)<1&(v|0)<1)){u=A+16|0;c[u>>2]=c[e>>2];c[u+4>>2]=c[e+4>>2];c[u+8>>2]=c[e+8>>2];c[u+12>>2]=c[e+12>>2];c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];if((f|0)>1){n=A+8|0;d=A+24|0;p=+h[u>>3];l=+h[A>>3];k=+h[n>>3];o=+h[d>>3];m=1;do{s=+h[e+(m<<4)>>3];l=l<s?l:s;t=+h[e+(m<<4)+8>>3];k=k<t?k:t;p=p>s?p:s;o=o>t?o:t;m=m+1|0}while((m|0)!=(f|0));h[A>>3]=l;h[n>>3]=k;h[u>>3]=p;h[d>>3]=o;f=A;x=d;e=u}else{m=A+24|0;d=A+8|0;f=A;x=m;n=d;e=u;p=+h[u>>3];l=+h[A>>3];o=+h[m>>3];k=+h[d>>3]}r=p-l;q=o-k;l=+(v|0);k=+(w|0);o=r/k;p=q/l;do if(a[j>>0]|0){if(!(hA(j,134580)|0)){k=k*o;break}if(!(hA(j,134586)|0)){l=l*p;break}if(!(hA(j,134593)|0)){l=l*p;k=k*o;break}if((Ls(j)|0)<<24>>24)if(o<p){l=l*o;k=k*o;break}else{l=l*p;k=k*p;break}}while(0);if(k<r){t=(r-k)*.5;h[f>>3]=t+ +h[f>>3];h[e>>3]=+h[e>>3]-t}if(l<q){t=(q-l)*.5;h[n>>3]=t+ +h[n>>3];h[x>>3]=+h[x>>3]-t}k=+h[f>>3];if(!(c[b+152>>2]&8192)){l=+h[n>>3];q=+h[b+504>>3];r=+h[b+512>>3];t=+h[b+352>>3];s=t*+h[b+520>>3];t=t*+h[b+528>>3];d=(c[b+360>>2]|0)==0;if(d){o=k+q;l=l+r}else{o=-(l+r);l=k+q}k=s*o;h[f>>3]=k;h[n>>3]=t*l;m=A+16|0;l=+h[m>>3];p=+h[x>>3];if(d){o=l+q;l=p+r}else{o=-(p+r);l=l+q}s=s*o;h[m>>3]=s;h[x>>3]=t*l;l=s}else l=+h[e>>3];if(k>l){h[f>>3]=l;h[e>>3]=k}k=+h[n>>3];l=+h[x>>3];if(k>l){h[n>>3]=l;h[x>>3]=k}if(y){y=c[b+72>>2]|0;c[B>>2]=c[A>>2];c[B+4>>2]=c[A+4>>2];c[B+8>>2]=c[A+8>>2];c[B+12>>2]=c[A+12>>2];c[B+16>>2]=c[A+16>>2];c[B+20>>2]=c[A+20>>2];c[B+24>>2]=c[A+24>>2];c[B+28>>2]=c[A+28>>2];ev(b,z,B,g,y)}}}i=C;return}function av(a,b){a=a|0;b=+b;if(c[a+60>>2]|0)h[(c[a+16>>2]|0)+152>>3]=b;return}function bv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;k=l+8|0;j=l;c[d>>2]=b;c[d+32>>2]=5;e=Jv(b)|0;f=c[a+16>>2]|0;if(!((f|0)!=0?(Zz(e,f,c[a+20>>2]|0,4,41)|0)!=0:0))h=3;a:do if((h|0)==3){switch(Kv(b,d,c[a+24>>2]|0)|0){case 0:break a;case 1:break;default:{dj(1,134633,g)|0;break a}}e=aq((pA(b)|0)+16|0)|0;c[j>>2]=b;Oz(e,134598,j)|0;if(ap(e)|0){c[k>>2]=b;dj(0,134607,k)|0}pB(e)}while(0);i=l;return}function cv(a,b){a=a|0;b=b|0;b=tn(a,1,b)|0;if(!b)b=999;else{b=c[b+16>>2]|0;c[a+184>>2]=c[b+4>>2];c[a+172>>2]=c[b+12>>2];c[a+176>>2]=c[b>>2];c[a+180>>2]=c[b+16>>2];b=300}return b|0}function dv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j;xl(b,160878,280,1)|0;g=b+16|0;c[(c[g>>2]|0)+144>>2]=a;if((hl(b)|0)!=(b|0))c[(c[(hl(b)|0)+16>>2]|0)+144>>2]=a;e=zj(b,134654)|0;d=a+172|0;if((e|0)!=0?(c[d>>2]=0,(cv(a,e)|0)==999):0){d=un(a,1,e)|0;c[f>>2]=e;c[f+4>>2]=d;dj(1,134661,f)|0;d=-1}else{e=c[d>>2]|0;if(!e)d=-1;else{ep(1);Lp(b,c[c[a+180>>2]>>2]&1);d=c[(c[g>>2]|0)+8>>2]|0;c[(c[(hl(b)|0)+16>>2]|0)+8>>2]=d;pr();d=c[e>>2]|0;if((d|0)!=0?(zb[d&127](b),h=c[e+4>>2]|0,(h|0)!=0):0)c[(c[g>>2]|0)+148>>2]=h;ep(0);d=0}}i=j;return d|0}function ev(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+176|0;m=n+8|0;k=n;j=n+40|0;if(!b)Ia(134710,134714,52,134728);if(!d)Ia(134740,134714,53,134728);h=c[d+8>>2]|0;if(!h)Ia(134743,134714,54,134728);if(!(a[h>>0]|0))Ia(134752,134714,55,134728);mA(j,c[d+28>>2]|0)|0;h=j+(pA(j)|0)|0;a[h>>0]=58;a[h+1>>0]=0;iA(j,g)|0;h=tn(c[b>>2]|0,4,j)|0;if(!h){c[k>>2]=j;dj(0,134764,k)|0;h=c[b+92>>2]|0}else{k=c[h+16>>2]|0;h=c[k+12>>2]|0;c[b+92>>2]=h;c[b+96>>2]=c[k>>2]}if((h|0)!=0?(l=c[h>>2]|0,(l|0)!=0):0){c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];Kb[l&31](b,d,m,f)}i=n;return}function fv(a){a=a|0;return 1}function gv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=10.0/+h[b+352>>3]+ +h[c>>3];a[b+537>>0]=1;return 0}function hv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function iv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function jv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=10.0/+h[b+352>>3]+ +h[c>>3];a[b+537>>0]=1;return 0}function kv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]*1.1;a[b+537>>0]=1;return 0}function lv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]/1.1;a[b+537>>0]=1;return 0}function mv(b){b=b|0;var d=0,e=0,f=0.0,g=0.0;e=b+536|0;d=(a[e>>0]|0)==0;a[e>>0]=d&1;if(d){d=c[b+448>>2]|0;e=c[b+452>>2]|0;g=+(d>>>0)/+(d|0);f=+(e>>>0)/+(e|0);h[b+352>>3]=g<f?g:f;e=b+336|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;a[b+537>>0]=1}return 0}function nv(b){b=b|0;var e=0,f=0;e=c[(c[b>>2]|0)+168>>2]|0;f=b+580|0;if(!(c[f>>2]|0)){c[f>>2]=e;f=(c[e+16>>2]|0)+112|0;a[f>>0]=d[f>>0]|0|2;yv(b,e)}$o(b,e);a[b+540>>0]=1;return}-function zn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0,N=0,O=0,P=0;P=i;i=i+2432|0;D=P+2160|0;C=P+2152|0;B=P+2144|0;A=P+2136|0;z=P+2128|0;m=P+2120|0;n=P+2104|0;O=P+2096|0;J=P+2072|0;I=P+2056|0;F=P+1032|0;K=P+8|0;E=P;y=P+2408|0;x=P+2176|0;w=P+2208|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){if(((c[13357]|0)==0?(f=c[13356]|0,(c[13108]|0)!=(f|0)):0)?(c[13108]=f,g=c[13106]|0,(g|0)!=0):0){Pi(g)|0;c[13106]=0}L=+h[(c[(c[d+16>>2]|0)+8>>2]|0)+24>>3];L=!(L>=1.0)?96.0:L;if(!(c[13106]|0))c[13106]=Vi(52436,c[12577]|0)|0;f=vn(e)|0;do if(!f){f=$p(64)|0;if(!f){g=-1;f=-1}else{H=f+8|0;c[H>>2]=Il(0,e)|0;if(!((wn(f)|0)<<24>>24)){An(f);g=-1;f=-1;break}G=f+20|0;g=c[G>>2]|0;if(!g)Ia(122021,121920,653,122027);a:do if((Ez(J,1,20,g)|0)==20){g=0;while(1){if(!(dA(J,c[52472+(g<<4)>>2]|0,c[52472+(g<<4)+4>>2]|0)|0))break;g=g+1|0;if(g>>>0>=10){M=26;break a}}k=f+28|0;c[k>>2]=c[52472+(g<<4)+12>>2];d=c[52472+(g<<4)+8>>2]|0;l=f+24|0;c[l>>2]=d;b:do switch(g|0){case 7:{while(1){if(!(yz(w,200,c[G>>2]|0)|0)){M=24;break}if(!(dA(w,122044,4)|0)){M=21;break}}if((M|0)==21){c[k>>2]=125602;c[l>>2]=8;break b}else if((M|0)==24){g=c[l>>2]|0;M=27;break b}break}case 8:{if(!(dA(J+8|0,122049,4)|0)){c[k>>2]=122054;c[l>>2]=11;M=67}else{g=d;M=27}break}default:{g=d;M=27}}while(0);c:do if((M|0)==27)switch(g|0){case 0:{M=28;break a}case 11:{M=67;break c}case 8:break c;case 2:{c[f+48>>2]=0;Hz(c[G>>2]|0,6,0)|0;if((Bn(c[G>>2]|0,2,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,2,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}break a}case 3:{c[f+48>>2]=0;Hz(c[G>>2]|0,16,0)|0;if((Cn(c[G>>2]|0,4,J)|0)<<24>>24!=0?(Cn(c[G>>2]|0,4,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}break a}case 1:{c[f+48>>2]=0;Hz(c[G>>2]|0,16,0)|0;if((((Bn(c[G>>2]|0,2,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,2,I)|0)<<24>>24!=0:0)?(Bn(c[G>>2]|0,2,F)|0)<<24>>24!=0:0)?(Bn(c[G>>2]|0,2,K)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2]<<16|c[I>>2];c[f+44>>2]=c[F>>2]<<16|c[K>>2]}break a}case 4:{c[f+48>>2]=0;d:do if((Cn(c[G>>2]|0,1,J)|0)<<24>>24){while(1){d=c[J>>2]|0;if((d|0)!=255?(jA(122124,d)|0)==0:0){if((d|0)==192){M=48;break}g=c[G>>2]|0;if((d|0)==194){M=53;break}if(!((Cn(g,2,I)|0)<<24>>24))break d;Hz(c[G>>2]|0,(c[I>>2]|0)+-2|0,1)|0}if(!((Cn(c[G>>2]|0,1,J)|0)<<24>>24))break d}if((M|0)==48){if(!((Cn(c[G>>2]|0,3,E)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,F)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,K)|0)<<24>>24))break;c[f+44>>2]=c[F>>2];c[f+40>>2]=c[K>>2];break}else if((M|0)==53){if(!((Cn(g,3,E)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,F)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,K)|0)<<24>>24))break;c[f+44>>2]=c[F>>2];c[f+40>>2]=c[K>>2];break}}while(0);break a}case 6:{c[f+48>>2]=72;Hz(c[G>>2]|0,0,0)|0;e:do if(yz(K,1024,c[G>>2]|0)|0){while(1){g=wA(K,122136)|0;if((g|0)!=0?(c[n>>2]=J,c[n+4>>2]=I,c[n+8>>2]=F,c[n+12>>2]=E,(Pz(g,127888,n)|0)==4):0)break;if(!(yz(K,1024,c[G>>2]|0)|0))break e}J=c[J>>2]|0;c[f+32>>2]=J;K=c[I>>2]|0;c[f+36>>2]=K;c[f+40>>2]=(c[F>>2]|0)-J;c[f+44>>2]=(c[E>>2]|0)-K}while(0);break a}case 5:{c[f+48>>2]=0;Hz(c[G>>2]|0,0,0)|0;d=c[G>>2]|0;do{if(!(yz(F,1024,d)|0)){M=104;break}g=wA(F,122249)|0}while((g|0)==0);if((M|0)==104)break a;k=I+4|0;c[k>>2]=F;c[I>>2]=g+9;l=I+8|0;c[l>>2]=d;En(I);g=c[I>>2]|0;d=a[g>>0]|0;if(!(d<<24>>24)){k=c[k>>2]|0;if(!(yz(k,1024,c[l>>2]|0)|0))d=0;else{c[I>>2]=k;d=a[k>>0]|0;g=k}d=d&255}else d=d<<24>>24;if((((d|0)==91?(c[I>>2]=g+1,Fn(I,K),o=+$z(K,J),(c[J>>2]|0)!=(K|0)):0)?(Fn(I,K),p=+$z(K,J),(c[J>>2]|0)!=(K|0)):0)?(Fn(I,K),q=+$z(K,J),(c[J>>2]|0)!=(K|0)):0){Fn(I,K);j=+$z(K,J);if((c[J>>2]|0)==(K|0))break a;c[f+32>>2]=~~o;c[f+36>>2]=~~p;c[f+40>>2]=~~(q-o);c[f+44>>2]=~~(j-p);break a}break a}case 12:{c[f+48>>2]=0;Hz(c[G>>2]|0,6,0)|0;if((Cn(c[G>>2]|0,1,J)|0)<<24>>24!=0?(Cn(c[G>>2]|0,1,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}break a}default:break a}while(0);if((M|0)==67){c[f+48>>2]=0;Hz(c[G>>2]|0,15,0)|0;K=(xz(c[G>>2]|0)|0)==88;g=c[G>>2]|0;if(K){Hz(g,24,0)|0;if((Bn(c[G>>2]|0,4,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,4,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}}else{Hz(g,26,0)|0;if((Bn(c[G>>2]|0,2,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,2,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}}break}if(!(c[13158]|0)){if($y(52636,122151,1)|0){c[m>>2]=122151;dj(1,122178,m)|0}c[13158]=52636}Hz(c[G>>2]|0,0,0)|0;f:do if(!(yz(w,200,c[G>>2]|0)|0)){d=0;g=0}else{r=x+12|0;s=x+20|0;t=x+8|0;u=x+16|0;v=x+4|0;d=0;k=0;g=0;l=0;do{if(k<<24>>24==0|l<<24>>24==0)e=w;else break f;g:while(1){m=k;n=l;h:while(1){if(bz(52636,e,4,x,0)|0){k=m;l=n;break g}while(1){a[e+(c[r>>2]|0)>>0]=0;a[e+(c[s>>2]|0)>>0]=0;l=e+(c[t>>2]|0)|0;k=e+(c[u>>2]|0)|0;e=e+((c[v>>2]|0)+1)|0;if(!(lA(l,134580)|0))break;if(!(lA(l,134586)|0)){l=n;break h}if((lA(l,122225)|0)==0?(c[D>>2]=I,c[D+4>>2]=F,c[D+8>>2]=K,c[D+12>>2]=E,(Pz(k,122233,D)|0)==4):0){M=99;break g}if(bz(52636,e,4,x,0)|0){k=m;l=n;break g}}c[z>>2]=J;c[z+4>>2]=y;do if((Pz(k,122215,z)|0)==2){g=Dn(+h[J>>3],y)|0;l=1}else{c[A>>2]=J;if((Pz(k,124835,A)|0)!=1){l=n;break}g=Dn(+h[J>>3],122222)|0;l=1}while(0);if(!(m<<24>>24)){m=0;n=l}else{k=m;break g}}c[B>>2]=J;c[B+4>>2]=y;do if((Pz(k,122215,B)|0)==2){d=Dn(+h[J>>3],y)|0;k=1}else{c[C>>2]=J;if((Pz(k,124835,C)|0)!=1){k=m;break}d=Dn(+h[J>>3],122222)|0;k=1}while(0);if(!(l<<24>>24))l=0;else break}if((M|0)==99){M=0;d=~~(+h[E>>3]-+h[F>>3]+1.0)>>>0;k=1;g=~~(+h[K>>3]-+h[I>>3]+1.0)>>>0;l=1}}while((yz(w,200,c[G>>2]|0)|0)!=0)}while(0);c[f+48>>2]=0;c[f+40>>2]=g;c[f+44>>2]=d}else M=26;while(0);if((M|0)==26){c[f+28>>2]=122059;c[f+24>>2]=0;M=28}if((M|0)==28?(K=mr(c[H>>2]|0)|0,c[f+52>>2]=K,(K|0)==0):0){c[O>>2]=c[H>>2];dj(0,122065,O)|0;An(f);g=-1;f=-1;break}if((a[f+17>>0]|0)!=0?(N=c[G>>2]|0,(N|0)!=0):0){uz(N)|0;c[G>>2]=0}M=c[13106]|0;ub[c[M>>2]&31](M,f,1)|0;M=129}}else if((a[f+17>>0]|0)!=0?(k=f+20|0,l=c[k>>2]|0,(l|0)!=0):0){uz(l)|0;c[k>>2]=0;M=129}else M=129;while(0);if((M|0)==129){g=c[f+48>>2]|0;L=(g|0)==0?L:+(g|0);g=~~(+((c[f+40>>2]|0)*72|0)/L);f=~~(+((c[f+44>>2]|0)*72|0)/L)}c[b>>2]=g;c[b+4>>2]=f}else{c[b>>2]=-1;c[b+4>>2]=-1}i=P;return}function An(a){a=a|0;var b=0;b=c[a+8>>2]|0;if(b)Kl(0,b)|0;pB(a);return}function Bn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;a:do if(!b)e=1;else{f=0;while(1){e=xz(a)|0;if(vz(a)|0){e=0;break a}c[d>>2]=c[d>>2]|e<<(f<<3);f=f+1|0;if(f>>>0>=b>>>0){e=1;break}}}while(0);return e|0}function Cn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;a:do if(!b)e=1;else{f=0;while(1){e=xz(a)|0;if(vz(a)|0){e=0;break a}c[d>>2]=c[d>>2]<<8|e;f=f+1|0;if(f>>>0>=b>>>0){e=1;break}}}while(0);return e|0}function Dn(a,b){a=+a;b=b|0;do if(!(lA(b,122259)|0)){a=a*72.0;b=~~(a+(a>=0.0?.5:-.5))}else{if(!(lA(b,122262)|0)){a=a*72.0/96.0;b=~~(a+(a>=0.0?.5:-.5));break}if(!(lA(b,122265)|0)){a=a*72.0/6.0;b=~~(a+(a>=0.0?.5:-.5));break}if((lA(b,122222)|0)!=0?(lA(b,122268)|0)!=0:0){if(!(lA(b,122270)|0)){a=a*28.346456664;b=~~(a+(a>=0.0?.5:-.5));break}if(lA(b,122273)|0){b=0;break}a=a*2.8346456663999997;b=~~(a+(a>=0.0?.5:-.5));break}b=~~((a>=0.0?.5:-.5)+a)}while(0);return b|0}function En(b){b=b|0;var d=0;d=c[b>>2]|0;while(1){d=a[d>>0]|0;if(!(d<<24>>24))d=(Gn(b)|0)&255;else d=d<<24>>24;if(!((d&255)<<24>>24))break;if(!(Zx(d&255)|0))break;d=(c[b>>2]|0)+1|0;c[b>>2]=d}return}function Fn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;En(b);f=c[b>>2]|0;e=0;while(1){f=a[f>>0]|0;if(!(f<<24>>24))f=(Gn(b)|0)&255;else f=f<<24>>24;g=f<<24>>24;if(!g)break;if(!((g|0)==46|(g+-48|0)>>>0<10))break;a[d+e>>0]=f;e=e+1|0;f=(c[b>>2]|0)+1|0;c[b>>2]=f;if((e|0)==1023){e=1023;break}}a[d+e>>0]=0;return}function Gn(b){b=b|0;var d=0;d=b+4|0;if(!(yz(c[d>>2]|0,1024,c[b+8>>2]|0)|0))d=0;else{d=c[d>>2]|0;c[b>>2]=d;d=a[d>>0]|0}return d|0}function Hn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+20>>2]|0;if(a)uz(a)|0;if((c[b+52>>2]|0)!=0?(e=c[b+60>>2]|0,(e|0)!=0):0)zb[e&127](b);pB(b);return}function In(){var a=0;rj(0,1,124829,129969)|0;a=jn(0,1)|0;Av(a,0);return a|0}function Jn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0;p=i;i=i+304|0;o=p+24|0;n=p+8|0;f=p;m=p+40|0;if((cv(b,e)|0)!=999)if((dv(b,d)|0)==-1)e=-1;else{f=c[d+16>>2]|0;g=+h[f+16>>3];j=+h[f+24>>3];k=+h[f+32>>3];l=+h[f+40>>3];if(!(a[(c[f+8>>2]|0)+81>>0]|0)){c[o>>2]=~~(g+(g>=0.0?.5:-.5));c[o+4>>2]=~~(j+(j>=0.0?.5:-.5));c[o+8>>2]=~~(k+(k>=0.0?.5:-.5));c[o+12>>2]=~~(l+(l>=0.0?.5:-.5));Oz(m,122375,o)|0}else{c[n>>2]=~~(j+(j>=0.0?.5:-.5));c[n+4>>2]=~~(g+(g>=0.0?.5:-.5));c[n+8>>2]=~~(l+(l>=0.0?.5:-.5));c[n+12>>2]=~~(k+(k>=0.0?.5:-.5));Oz(m,122375,n)|0}Dj(d,126296,m,164137)|0;e=0}else{o=un(b,1,e)|0;c[f>>2]=e;c[f+4>>2]=o;dj(1,134661,f)|0;e=-1}i=p;return e|0}function Kn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j;f=c[b+60>>2]|0;nn(a,d)|0;b=c[a+164>>2]|0;c[b+56>>2]=su(b,c[b+52>>2]|0)|0;if((xl(f,160878,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b+152>>2]&67108864)){ej(122387,g);b=-1}else h=5;if((h|0)==5){c[b+36>>2]=e;if(!e){h=b+152|0;c[h>>2]=c[h>>2]|134217728}h=fp(a,f)|0;uu(b);rn(a);b=h}i=j;return b|0}function Ln(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j;f=c[b+60>>2]|0;nn(a,d)|0;b=c[a+164>>2]|0;c[b+56>>2]=su(b,c[b+52>>2]|0)|0;if((xl(f,160878,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b+152>>2]&67108864)){ej(122387,g);b=-1}else h=5;if((h|0)==5){mn(a,e);h=fp(a,f)|0;uu(b);cn(b);rn(a);b=h}i=j;return b|0}function Mn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;h=m+8|0;g=m;b=c[b+60>>2]|0;nn(a,d)|0;k=c[a+164>>2]|0;c[k+56>>2]=su(k,c[k+52>>2]|0)|0;if((xl(b,160878,0,1)|0)!=0?(c[(c[b+16>>2]|0)+8>>2]|0)!=0:0)l=5;else if(!(c[k+152>>2]&67108864)){ej(122387,g);b=-1}else l=5;do if((l|0)==5){if((e|0)!=0?(j=oB(4096)|0,c[e>>2]=j,(j|0)!=0):0){g=k+40|0;c[g>>2]=j;c[k+44>>2]=4096;d=k+48|0;c[d>>2]=0;b=fp(a,b)|0;uu(k);if(!b){c[e>>2]=c[g>>2];c[f>>2]=c[d>>2]}rn(a);break}dj(1,122408,h)|0;b=-1}while(0);i=m;return b|0}function Nn(a,b){a=a|0;b=b|0;zv(a,0,b);return}function On(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=Rk(a)|0;if(!e)d=0;else{d=0;do{f=Lj(b,e)|0;if(f)do{if(Wk(a,c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0,0)|0){Vj(a,f,1)|0;d=d+1|0}f=Nj(b,f)|0}while((f|0)!=0);e=Sk(a,e)|0}while((e|0)!=0)}return d|0}function Pn(a){a=a|0;a=wl(a,122445,0)|0;if(!a)Ia(122450,122453,529,122462);else return c[a+8>>2]|0;return 0}function Qn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+4320|0;f=y+4180|0;w=y+24|0;t=y+8|0;s=y;x=y+4184|0;v=y+4160|0;k=y+48|0;j=y+64|0;l=y+40|0;if(ek(b)|0){zl(b,0,122471,-12,0);zl(b,1,122483,16,0);u=Rn(e,l,x)|0;c[f>>2]=c[12650];r=ak(122495,f,0)|0;Vn(r,b);e=Rk(b)|0;if(e)do{if(!(c[(wl(e,122483,0)|0)+12>>2]|0)){q=Xk(r,ok(e)|0,1)|0;xl(q,122483,16,1)|0;c[(c[q+16>>2]|0)+12>>2]=e;c[(wl(e,122483,0)|0)+12>>2]=q}e=Sk(b,e)|0}while((e|0)!=0);e=Rk(b)|0;if(e)do{h=c[(wl(e,122483,0)|0)+12>>2]|0;f=Lj(b,e)|0;if(f)do{g=c[(wl(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0,122483,0)|0)+12>>2]|0;do if((g|0)!=(h|0))if(g>>>0>h>>>0){Sj(r,h,g,0,1)|0;break}else{Sj(r,g,h,0,1)|0;break}while(0);f=Nj(b,f)|0}while((f|0)!=0);e=Sk(b,e)|0}while((e|0)!=0);q=aq((ek(r)|0)<<2)|0;c[k>>2]=j;c[k+4>>2]=j+4096;c[k+12>>2]=0;c[k+8>>2]=0;c[v>>2]=k;c[v+4>>2]=k;c[v+8>>2]=j;c[v+12>>2]=23;p=v+16|0;c[p>>2]=22;f=Rk(r)|0;a:do if(!f)e=0;else{n=u+(c[l>>2]|0)|0;o=c[22667]|0;g=22;e=0;while(1){if(!(Lb[g&63](f,-1)|0)){c[s>>2]=e;Oz(n,123409,s)|0;k=am(r,u,1)|0;l=am(b,u,1)|0;xl(l,122471,12,0)|0;a[(wl(l,122471,0)|0)+8>>0]=1;m=Tn(r,f,k,v)|0;g=Rk(k)|0;if(g)do{j=c[(c[g+16>>2]|0)+12>>2]|0;if((c[j>>2]&3|0)!=1){h=Rk(j)|0;if(h)do{Wk(l,h,1)|0;h=Sk(j,h)|0}while((h|0)!=0)}else Wk(l,j,1)|0;g=Sk(k,g)|0}while((g|0)!=0);g=On(l,c[l+60>>2]|0)|0;Xn(b,l,0);c[q+(e<<2)>>2]=l;fl(r,k)|0;if(a[124827]|0){c[t>>2]=e;c[t+4>>2]=m;c[t+8>>2]=g;Bz(o,122498,t)|0}e=e+1|0}f=Sk(r,f)|0;if(!f)break a;g=c[p>>2]|0}}while(0);if(a[124827]|0){t=c[22667]|0;o=ek(b)|0;p=fk(b)|0;s=ok(b)|0;c[w>>2]=o;c[w+4>>2]=p;c[w+8>>2]=e;c[w+12>>2]=s;Bz(t,122528,w)|0}dk(r)|0;Al(b,0,122471);Al(b,1,122483);Un(v);f=cq(q,e<<2)|0;if((u|0)!=(x|0))pB(u)}else{f=0;e=0}c[d>>2]=e;i=y;return f|0}function Rn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!b)b=122661;else{f=b;b:while(1){g=f;f=f+1|0;g=a[g>>0]|0;switch(g<<24>>24){case 0:break a;case 95:continue b;default:{}}if(!(Wx(g&255)|0)){b=122661;break a}}}while(0);g=pA(b)|0;f=g+25|0;if((f|0)>=129){e=aq(f)|0;if(!e)e=0;else h=6}else h=6;if((h|0)==6){mA(e,b)|0;c[d>>2]=g}return e|0}function Sn(a,b){a=a|0;b=b|0;Wk(b,a,1)|0;return}function Tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;Yn(e,b);j=e+8|0;k=e+4|0;l=e+12|0;m=e+16|0;b=0;a:while(1){f=c[j>>2]|0;g=c[k>>2]|0;if((f|0)==(c[g>>2]|0)){if((g|0)==(c[e>>2]|0))break;f=c[g+8>>2]|0;c[k>>2]=f;f=c[f+4>>2]|0;c[j>>2]=f}i=f+-4|0;c[j>>2]=i;i=c[i>>2]|0;if(!i)break;b=b+1|0;f=c[l>>2]|0;if(f)Bb[f&31](i,d);f=Qj(a,i)|0;if(!f)continue;while(1){h=c[f>>2]&3;g=c[((h|0)==3?f:f+48|0)+40>>2]|0;if((g|0)==(i|0))g=c[((h|0)==2?f:f+-48|0)+40>>2]|0;if(!(Lb[c[m>>2]&63](g,-1)|0))Yn(e,g);f=Rj(a,f,i)|0;if(!f)continue a}}return b|0}function Un(a){a=a|0;var b=0;a=c[(c[a>>2]|0)+12>>2]|0;if(a)do{b=a;a=c[a+12>>2]|0;pB(c[b>>2]|0);pB(b)}while((a|0)!=0);return}function Vn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+16|0;g=h;b=bm(b)|0;if(b){f=c[22667]|0;do{if(!(rA(ok(b)|0,131620,7)|0)){e=Xk(a,ok(b)|0,1)|0;xl(e,122483,16,1)|0;c[(c[e+16>>2]|0)+12>>2]=b;d=Rk(b)|0;if(d)do{if(c[(wl(d,122483,0)|0)+12>>2]|0){l=ok(d)|0;k=ok(b)|0;j=ok(c[(wl(d,122483,0)|0)+12>>2]|0)|0;c[g>>2]=l;c[g+4>>2]=k;c[g+8>>2]=j;Bz(f,122575,g)|0}c[(wl(d,122483,0)|0)+12>>2]=e;d=Sk(b,d)|0}while((d|0)!=0)}else Vn(a,b);b=cm(b)|0}while((b|0)!=0)}i=h;return}function Wn(b,d){b=b|0;d=d|0;var e=0;b=(c[b+16>>2]|0)+8|0;e=a[b>>0]|0;if((d|0)>=0)a[b>>0]=d;return e|0}function Xn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;b=bm(b)|0;if(b){i=(e|0)!=0;h=(e|0)==0;do{if(!(a[(wl(b,122471,0)|0)+8>>0]|0)){e=Rk(b)|0;if(!e)e=0;else{f=0;do{g=Xk(d,ok(e)|0,0)|0;if(g){if(!f)f=am(d,ok(b)|0,1)|0;Wk(f,g,1)|0}e=Sk(b,e)|0}while((e|0)!=0);e=f}if(i&(e|0)==0)e=am(d,ok(b)|0,1)|0;if(e){On(e,b)|0;Ej(b,e)|0;if(!(rA(ok(e)|0,131620,7)|0))c[(xl(e,122445,12,0)|0)+8>>2]=b;if(h)f=(rA(ok(b)|0,131620,7)|0)==0;else f=1;Xn(b,e,f&1)}}b=cm(b)|0}while((b|0)!=0)}return}function Yn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+8|0;f=l;g=a+8|0;h=a+4|0;d=c[h>>2]|0;if((c[g>>2]|0)==(c[d+4>>2]|0)){d=c[d+12>>2]|0;do if(!d){e=aq(16)|0;if(!e){dj(1,122642,f)|0;Ka(52668,1)}c[e+8>>2]=c[h>>2];c[e+12>>2]=0;d=aq(4e6)|0;c[e>>2]=d;if(!d){dj(1,122642,k)|0;Ka(52668,1)}else{c[e+4>>2]=d+4e6;c[(c[h>>2]|0)+12>>2]=e;j=e;break}}else j=d;while(0);c[h>>2]=j;c[g>>2]=c[j>>2]}Lb[c[a+16>>2]&63](b,1)|0;k=c[g>>2]|0;c[g>>2]=k+4;c[k>>2]=b;i=l;return}function Zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0;n=+h[a>>3];d=~~(n+(n>=0.0?.5:-.5));n=+h[a+8>>3];a=~~(n+(n>=0.0?.5:-.5));n=+h[b>>3];k=~~(n+(n>=0.0?.5:-.5));n=+h[b+8>>3];g=~~(n+(n>=0.0?.5:-.5));l=k-d|0;i=((l|0)>-1?l:0-l|0)<<1;l=l>>31|1;m=g-a|0;j=((m|0)>-1?m:0-m|0)<<1;m=m>>31|1;Gq(c,d,a);if((i|0)>(j|0)){if((k|0)!=(d|0)){f=0-i|0;e=j-(i>>1)|0;b=a;while(1){a=(e|0)>-1;b=(a?m:0)+b|0;d=d+l|0;Gq(c,d,b);if((d|0)==(k|0))break;else e=e+j+(a?f:0)|0}}}else if((g|0)!=(a|0)){f=0-j|0;e=i-(j>>1)|0;b=a;while(1){a=(e|0)>-1;d=(a?l:0)+d|0;b=b+m|0;Gq(c,d,b);if((b|0)==(g|0))break;else e=e+i+(a?f:0)|0}}return}function _n(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0.0,ha=0.0;fa=i;i=i+208|0;aa=fa+192|0;U=fa+144|0;q=fa+136|0;ea=fa+120|0;ca=fa+104|0;X=fa+96|0;Y=fa+80|0;w=fa+72|0;v=fa+32|0;V=fa+16|0;W=fa;ba=fa+176|0;p=fa+184|0;do if((b|0)<1)j=0;else{_=g+16|0;if((c[_>>2]|0)>>>0>=4){n=aq(b<<5)|0;j=0;do{da=c[e+(j<<2)>>2]|0;$s(da);ea=n+(j<<5)|0;da=(c[da+16>>2]|0)+16|0;c[ea>>2]=c[da>>2];c[ea+4>>2]=c[da+4>>2];c[ea+8>>2]=c[da+8>>2];c[ea+12>>2]=c[da+12>>2];c[ea+16>>2]=c[da+16>>2];c[ea+20>>2]=c[da+20>>2];c[ea+24>>2]=c[da+24>>2];c[ea+28>>2]=c[da+28>>2];j=j+1|0}while((j|0)!=(b|0));if((c[_>>2]|0)==4){m=g+28|0;if(c[m>>2]&2){j=g+24|0;c[j>>2]=$p(b<<2)|0;l=0;do{k=zj(c[e+(l<<2)>>2]|0,122792)|0;if((k|0)!=0?(c[q>>2]=p,ea=(Pz(k,160852,q)|0)>0,o=c[p>>2]|0,ea&(o|0)>-1):0)c[(c[j>>2]|0)+(l<<2)>>2]=o;l=l+1|0}while((l|0)!=(b|0))}j=mo(b,n,g)|0;if(c[m>>2]&2)pB(c[g+24>>2]|0)}else j=0;pB(n);break}$=c[g+20>>2]|0;t=($|0)==0;da=c[22667]|0;n=0;l=0;m=0;k=0;r=0;u=0;while(1){s=c[e+(u<<2)>>2]|0;$s(s);if(!t?(a[$+u>>0]|0)!=0:0){p=c[s+16>>2]|0;I=+h[p+16>>3];j=~~(I+(I>=0.0?.5:-.5));I=+h[p+24>>3];q=~~(I+(I>=0.0?.5:-.5));I=+h[p+32>>3];o=~~(I+(I>=0.0?.5:-.5));I=+h[p+40>>3];p=~~(I+(I>=0.0?.5:-.5));if(!r){n=j;l=o;m=p;k=q}else{n=(j|0)<(n|0)?j:n;l=(o|0)>(l|0)?o:l;m=(p|0)>(m|0)?p:m;k=(q|0)<(k|0)?q:k}j=r+1|0}else j=r;if((d[124827]|0)>2){T=ok(s)|0;S=c[s+16>>2]|0;ha=+h[S+16>>3];ga=+h[S+24>>3];x=+h[S+32>>3];I=+h[S+40>>3];c[v>>2]=T;h[v+8>>3]=ha;h[v+16>>3]=ga;h[v+24>>3]=x;h[v+32>>3]=I;Bz(da,122666,v)|0}u=u+1|0;if((u|0)==(b|0))break;else r=j}T=aq(b<<5)|0;j=0;do{S=T+(j<<5)|0;R=(c[(c[e+(j<<2)>>2]|0)+16>>2]|0)+16|0;c[S>>2]=c[R>>2];c[S+4>>2]=c[R+4>>2];c[S+8>>2]=c[R+8>>2];c[S+12>>2]=c[R+12>>2];c[S+16>>2]=c[R+16>>2];c[S+20>>2]=c[R+20>>2];c[S+24>>2]=c[R+24>>2];c[S+28>>2]=c[R+28>>2];j=j+1|0}while((j|0)!=(b|0));R=g+8|0;S=ho(b,T,c[R>>2]|0)|0;if(a[124827]|0){c[w>>2]=S;Bz(da,122694,w)|0}if((S|0)>=1){O=($|0)!=0;if(O){N=(n+l|0)/2|0;M=(k+m|0)/2|0}else{N=0;M=0}P=ba+4|0;c[P>>2]=M;c[ba>>2]=N;Q=$p(b<<4)|0;E=g+12|0;F=(f|0)==0;G=V+8|0;H=U+4|0;I=+(S|0);J=W+8|0;L=0;do{C=c[e+(L<<2)>>2]|0;D=Q+(L<<4)|0;c[Q+(L<<4)+12>>2]=L;if((c[_>>2]|0)==3){A=(c[C+16>>2]|0)+16|0;B=c[R>>2]|0;K=ok(C)|0;c[U>>2]=c[A>>2];c[U+4>>2]=c[A+4>>2];c[U+8>>2]=c[A+8>>2];c[U+12>>2]=c[A+12>>2];c[U+16>>2]=c[A+16>>2];c[U+20>>2]=c[A+20>>2];c[U+24>>2]=c[A+24>>2];c[U+28>>2]=c[A+28>>2];c[aa>>2]=c[ba>>2];c[aa+4>>2]=c[ba+4>>2];io(U,D,S,B,aa,K)}else{B=c[R>>2]|0;y=c[E>>2]|0;z=F?C:f;K=Dq()|0;A=C+16|0;g=c[A>>2]|0;ha=+h[g+16>>3];w=N-~~(ha+(ha>=0.0?.5:-.5))|0;ha=+h[g+24>>3];g=M-~~(ha+(ha>=0.0?.5:-.5))|0;if((c[_>>2]|0)!=1){j=Rk(C)|0;if(j){x=+(B|0);do{Qs(W,j);ga=+h[W>>3];ha=+h[J>>3];q=~~(ga+(ga>=0.0?.5:-.5))+w|0;c[U>>2]=q;r=~~(ha+(ha>=0.0?.5:-.5))+g|0;c[H>>2]=r;n=c[j+16>>2]|0;m=~~(x+(+h[n+88>>3]+ +h[n+96>>3])*.5);n=~~(x+ +h[n+80>>3]*.5);k=q-m|0;l=r-n|0;m=m+q|0;n=n+r|0;if((k|0)>-1)k=(k|0)/(S|0)|0;else k=((k+1|0)/(S|0)|0)+-1|0;if((l|0)>-1)p=(l|0)/(S|0)|0;else p=((l+1|0)/(S|0)|0)+-1|0;if((m|0)>-1)o=(m|0)/(S|0)|0;else o=((m+1|0)/(S|0)|0)+-1|0;if((n|0)>-1)n=(n|0)/(S|0)|0;else n=((n+1|0)/(S|0)|0)+-1|0;if((k|0)<=(o|0)){m=(p|0)>(n|0);while(1){if(!m){l=p;while(1){Gq(K,k,l);if((l|0)<(n|0))l=l+1|0;else break}}if((k|0)<(o|0))k=k+1|0;else break}}if((q|0)>-1)k=(q|0)/(S|0)|0;else k=((q+1|0)/(S|0)|0)+-1|0;c[U>>2]=k;if((r|0)>-1)k=(r|0)/(S|0)|0;else k=((r+1|0)/(S|0)|0)+-1|0;c[H>>2]=k;k=Lj(z,j)|0;if(k)do{c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];jo(k,aa,K,w,g,S,y);k=Nj(z,k)|0}while((k|0)!=0);j=Sk(C,j)|0}while((j|0)!=0)}}else{v=aq((ek(C)|0)<<2)|0;j=Rk(C)|0;if(j){k=0;while(1){u=j+16|0;c[v+(k<<2)>>2]=c[(c[u>>2]|0)+112>>2];c[(c[u>>2]|0)+112>>2]=0;j=Sk(C,j)|0;if(!j)break;else k=k+1|0}}j=c[A>>2]|0;if((c[j+180>>2]|0)>=1){r=w-B|0;s=g-B|0;t=w+B|0;u=g+B|0;q=1;while(1){p=c[(c[j+184>>2]|0)+(q<<2)>>2]|0;n=c[p+16>>2]|0;ha=+h[n+16>>3];k=~~(ha+(ha>=0.0?.5:-.5));ha=+h[n+24>>3];l=~~(ha+(ha>=0.0?.5:-.5));ha=+h[n+32>>3];m=~~(ha+(ha>=0.0?.5:-.5));ha=+h[n+40>>3];n=~~(ha+(ha>=0.0?.5:-.5));if((m|0)>(k|0)&(n|0)>(l|0)){j=k+r|0;k=l+s|0;l=t+m|0;m=u+n|0;if((j|0)>-1)j=(j|0)/(S|0)|0;else j=((j+1|0)/(S|0)|0)+-1|0;if((k|0)>-1)o=(k|0)/(S|0)|0;else o=((k+1|0)/(S|0)|0)+-1|0;if((l|0)>-1)n=(l|0)/(S|0)|0;else n=((l+1|0)/(S|0)|0)+-1|0;if((m|0)>-1)m=(m|0)/(S|0)|0;else m=((m+1|0)/(S|0)|0)+-1|0;if((j|0)<=(n|0)){l=(o|0)>(m|0);while(1){if(!l){k=o;while(1){Gq(K,j,k);if((k|0)<(m|0))k=k+1|0;else break}}if((j|0)<(n|0))j=j+1|0;else break}}j=Rk(p)|0;if(j)do{c[(c[j+16>>2]|0)+212>>2]=p;j=Sk(p,j)|0}while((j|0)!=0);j=c[A>>2]|0}if((q|0)<(c[j+180>>2]|0))q=q+1|0;else break}}j=Rk(C)|0;if(j){x=+(B|0);do{Qs(V,j);ga=+h[V>>3];ha=+h[G>>3];q=~~(ga+(ga>=0.0?.5:-.5))+w|0;c[U>>2]=q;r=~~(ha+(ha>=0.0?.5:-.5))+g|0;c[H>>2]=r;l=j+16|0;k=c[l>>2]|0;do if(!(c[k+212>>2]|0)){m=~~(x+(+h[k+88>>3]+ +h[k+96>>3])*.5);n=~~(x+ +h[k+80>>3]*.5);k=q-m|0;l=r-n|0;m=m+q|0;n=n+r|0;if((k|0)>-1)k=(k|0)/(S|0)|0;else k=((k+1|0)/(S|0)|0)+-1|0;if((l|0)>-1)p=(l|0)/(S|0)|0;else p=((l+1|0)/(S|0)|0)+-1|0;if((m|0)>-1)o=(m|0)/(S|0)|0;else o=((m+1|0)/(S|0)|0)+-1|0;if((n|0)>-1)n=(n|0)/(S|0)|0;else n=((n+1|0)/(S|0)|0)+-1|0;if((k|0)<=(o|0)){m=(p|0)>(n|0);while(1){if(!m){l=p;while(1){Gq(K,k,l);if((l|0)<(n|0))l=l+1|0;else break}}if((k|0)<(o|0))k=k+1|0;else break}}if((q|0)>-1)k=(q|0)/(S|0)|0;else k=((q+1|0)/(S|0)|0)+-1|0;c[U>>2]=k;if((r|0)>-1)k=(r|0)/(S|0)|0;else k=((r+1|0)/(S|0)|0)+-1|0;c[H>>2]=k;k=Lj(z,j)|0;if(!k)break;do{c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];jo(k,aa,K,w,g,S,y);k=Nj(z,k)|0}while((k|0)!=0)}else{if((q|0)>-1)k=(q|0)/(S|0)|0;else k=((q+1|0)/(S|0)|0)+-1|0;c[U>>2]=k;if((r|0)>-1)k=(r|0)/(S|0)|0;else k=((r+1|0)/(S|0)|0)+-1|0;c[H>>2]=k;k=Lj(z,j)|0;if(!k)break;do{if((c[(c[l>>2]|0)+212>>2]|0)!=(c[(c[(c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)){c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];jo(k,aa,K,w,g,S,y)}k=Nj(z,k)|0}while((k|0)!=0)}while(0);j=Sk(C,j)|0}while((j|0)!=0)}j=Rk(C)|0;if(j){k=0;while(1){c[(c[j+16>>2]|0)+112>>2]=c[v+(k<<2)>>2];j=Sk(C,j)|0;if(!j)break;else k=k+1|0}}pB(v)}l=Q+(L<<4)+4|0;c[l>>2]=Kq(K)|0;m=Q+(L<<4)+8|0;c[m>>2]=Jq(K)|0;k=c[A>>2]|0;ha=+(B<<1|0);j=~~+Z(+((ha+(+h[k+32>>3]-+h[k+16>>3]))/I));k=~~+Z(+((ha+(+h[k+40>>3]-+h[k+24>>3]))/I));c[D>>2]=k+j;if((d[124827]|0)>2?(C=ok(C)|0,D=c[m>>2]|0,c[Y>>2]=C,c[Y+4>>2]=D,c[Y+8>>2]=j,c[Y+12>>2]=k,Bz(da,122710,Y)|0,(c[m>>2]|0)>0):0){j=0;do{C=c[l>>2]|0;D=c[C+(j<<3)+4>>2]|0;c[X>>2]=c[C+(j<<3)>>2];c[X+4>>2]=D;Bz(da,122737,X)|0;j=j+1|0}while((j|0)<(c[m>>2]|0))}Eq(K)}L=L+1|0}while((L|0)!=(b|0));q=$p(b<<2)|0;j=0;do{c[q+(j<<2)>>2]=Q+(j<<4);j=j+1|0}while((j|0)!=(b|0));_z(q,b,4,23);r=Dq()|0;j=$p(b<<3)|0;if(O){p=0;do{if(a[$+p>>0]|0){m=c[q+(p<<2)>>2]|0;o=c[m+12>>2]|0;e=c[P>>2]|0;k=c[m+4>>2]|0;m=c[m+8>>2]|0;n=j+(o<<3)|0;c[n>>2]=0-(c[ba>>2]|0);o=j+(o<<3)+4|0;c[o>>2]=0-e;if((m|0)>0){l=0;while(1){c[aa>>2]=c[k>>2];c[aa+4>>2]=c[k+4>>2];Fq(r,aa);l=l+1|0;if((l|0)==(m|0))break;else k=k+8|0}}if((d[124827]|0)>1){_=c[n>>2]|0;e=c[o>>2]|0;c[ca>>2]=m;c[ca+4>>2]=_;c[ca+8>>2]=e;Bz(da,122751,ca)|0}}p=p+1|0}while((p|0)!=(b|0));k=0;do{if(!(a[$+k>>0]|0)){ca=c[q+(k<<2)>>2]|0;lo(k,ca,r,j+(c[ca+12>>2]<<3)|0,S,c[R>>2]|0,T)}k=k+1|0}while((k|0)!=(b|0))}else{k=0;do{ca=c[q+(k<<2)>>2]|0;lo(k,ca,r,j+(c[ca+12>>2]<<3)|0,S,c[R>>2]|0,T);k=k+1|0}while((k|0)!=(b|0))}pB(q);k=0;do{pB(c[Q+(k<<4)+4>>2]|0);k=k+1|0}while((k|0)!=(b|0));pB(Q);Eq(r);pB(T);if((d[124827]|0)>1){k=0;do{ba=c[j+(k<<3)>>2]|0;ca=c[j+(k<<3)+4>>2]|0;c[ea>>2]=k;c[ea+4>>2]=ba;c[ea+8>>2]=ca;Bz(da,122777,ea)|0;k=k+1|0}while((k|0)!=(b|0))}}else j=0}while(0);i=fa;return j|0}function $n(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if((a|0)<1)f=(a|0)>-1?a:0-a|0;else{z=(e|0)==0;u=(f|0)==0;y=0;do{v=c[b+(y<<2)>>2]|0;p=z?v:e;w=c[d+(y<<3)>>2]|0;x=c[d+(y<<3)+4>>2]|0;q=+(w|0);r=q/72.0;s=+(x|0);t=s/72.0;f=Rk(v)|0;if(f)do{g=c[f+16>>2]|0;o=c[g+132>>2]|0;h[o>>3]=r+ +h[o>>3];o=o+8|0;h[o>>3]=t+ +h[o>>3];o=g+16|0;h[o>>3]=q+ +h[o>>3];o=g+24|0;h[o>>3]=s+ +h[o>>3];g=c[g+108>>2]|0;if(g){o=g+56|0;h[o>>3]=q+ +h[o>>3];o=g+64|0;h[o>>3]=s+ +h[o>>3]}if(!u?(A=Lj(p,f)|0,(A|0)!=0):0){o=A;do{i=c[o+16>>2]|0;g=c[i+96>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+108>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+100>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+104>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+8>>2]|0;if((g|0)!=0?(B=c[g+4>>2]|0,(B|0)>0):0){g=c[g>>2]|0;m=0;do{i=c[g+(m*48|0)>>2]|0;j=c[g+(m*48|0)+4>>2]|0;k=c[g+(m*48|0)+8>>2]|0;l=c[g+(m*48|0)+12>>2]|0;if((j|0)>0){n=0;do{C=i+(n<<4)|0;h[C>>3]=q+ +h[C>>3];C=i+(n<<4)+8|0;h[C>>3]=s+ +h[C>>3];n=n+1|0}while((n|0)!=(j|0))}if(k){C=g+(m*48|0)+16|0;h[C>>3]=q+ +h[C>>3];C=g+(m*48|0)+24|0;h[C>>3]=s+ +h[C>>3]}if(l){C=g+(m*48|0)+32|0;h[C>>3]=q+ +h[C>>3];C=g+(m*48|0)+40|0;h[C>>3]=s+ +h[C>>3]}m=m+1|0}while((m|0)!=(B|0))}o=Nj(p,o)|0}while((o|0)!=0)}f=Sk(v,f)|0}while((f|0)!=0);no(v,w,x);y=y+1|0}while((y|0)!=(a|0));f=0}return f|0}function ao(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=_n(a,b,d,e)|0;if(!f)f=1;else{d=$n(a,b,f,d,c[e+12>>2]|0)|0;pB(f);f=d}return f|0}function bo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=ao(a,b,d,e)|0;if(!q){$s(d);m=c[d+16>>2]|0;n=m+16|0;g=+h[n>>3];o=m+24|0;i=+h[o>>3];p=m+32|0;f=+h[p>>3];m=m+40|0;j=+h[m>>3];if((a|0)>0){l=0;do{e=c[(c[b+(l<<2)>>2]|0)+16>>2]|0;k=c[e+180>>2]|0;if((k|0)>=1){d=c[e+184>>2]|0;e=1;while(1){s=c[(c[d+(e<<2)>>2]|0)+16>>2]|0;r=+h[s+16>>3];g=g<r?g:r;r=+h[s+24>>3];i=i<r?i:r;r=+h[s+32>>3];f=f>r?f:r;r=+h[s+40>>3];j=j>r?j:r;if((e|0)<(k|0))e=e+1|0;else break}}l=l+1|0}while((l|0)!=(a|0))}h[n>>3]=g;h[o>>3]=i;h[p>>3]=f;h[m>>3]=j}return q|0}function co(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;h=i;i=i+16|0;g=h;if(!f)Ia(122798,122804,1400,122811);e=go(b,e,e)|0;c[f+8>>2]=e;if(a[124827]|0){j=c[22667]|0;c[g>>2]=e;Bz(j,122823,g)|0}c[f+12>>2]=0;c[f+20>>2]=0;eo(zj(b,122836)|0,d,f)|0;i=h;return c[f+16>>2]|0}function eo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;s=v+40|0;r=v+32|0;u=v+24|0;t=v+16|0;l=v+8|0;n=v;k=v+48|0;m=v+44|0;if(!e)Ia(122798,122804,1292,122845);p=e+28|0;c[p>>2]=0;q=e+16|0;c[q>>2]=d;o=e+4|0;c[o>>2]=0;c[e+24>>2]=0;a:do if((b|0)!=0?(j=a[b>>0]|0,j<<24>>24!=0):0)switch(j<<24>>24|0){case 97:{if(rA(b,122863,5)|0){if(rA(b,122869,6)|0)break a;c[q>>2]=5;c[l>>2]=k;n=(Pz(b+5|0,122876,l)|0)>0;f=+g[k>>2];if(n&f>0.0){g[e>>2]=f;break a}else{g[e>>2]=1.0;break a}}c[q>>2]=4;d=b+5|0;b:do if((a[d>>0]|0)==95){d=b+6|0;j=a[d>>0]|0;if(j<<24>>24){k=0;while(1){switch(j<<24>>24|0){case 99:{k=k|1;c[p>>2]=k;break}case 105:{k=k|64;c[p>>2]=k;break}case 117:{k=k|2;c[p>>2]=k;break}case 116:{k=k|16;c[p>>2]=k;break}case 98:{k=k|32;c[p>>2]=k;break}case 108:{k=k|4;c[p>>2]=k;break}case 114:{k=k|8;c[p>>2]=k;break}default:break b}d=d+1|0;j=a[d>>0]|0;if(!(j<<24>>24))break b}}}while(0);c[n>>2]=m;n=(Pz(d,160852,n)|0)>0;d=c[m>>2]|0;if(!(n&(d|0)>0))break a;c[o>>2]=d;break a}case 99:{if(j<<24>>24!=99)break a;if(lA(b,131620)|0)break a;c[q>>2]=1;break a}case 103:{if(j<<24>>24!=103)break a;if(lA(b,134935)|0)break a;c[q>>2]=3;break a}case 110:{if(j<<24>>24!=110)break a;if(lA(b,134886)|0)break a;c[q>>2]=2;break a}default:break a}while(0);if(a[124827]|0){d=c[22667]|0;Mz(122879,11,1,d)|0;switch(c[q>>2]|0){case 1:{j=131620;break}case 2:{j=134886;break}case 3:{j=134935;break}case 4:{j=122863;break}case 5:{j=122869;break}default:j=122891}c[t>>2]=j;Bz(d,122901,t)|0;if((c[q>>2]|0)==5){h[u>>3]=+g[e>>2];Bz(d,122914,u)|0}c[r>>2]=c[o>>2];Bz(d,122927,r)|0;c[s>>2]=c[p>>2];Bz(d,122940,s)|0}i=v;return c[q>>2]|0}function fo(a,b,c){a=a|0;b=b|0;c=c|0;return eo(zj(a,122836)|0,b,c)|0}function go(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;g=j+4|0;f=zj(b,122953)|0;a:do if(f){c[h>>2]=g;h=(Pz(f,160852,h)|0)==1;b=c[g>>2]|0;if(!(h&(b|0)>-1)){switch(a[f>>0]|0){case 84:case 116:break;default:{b=d;break a}}b=e}}else b=d;while(0);i=j;return b|0}function ho(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0;s=i;i=i+96|0;q=s+80|0;r=s+48|0;p=s+8|0;n=s;o=+((a*100|0)+-1|0);if((a|0)>0){g=+(e<<1|0);f=0.0;l=0.0;e=0;do{k=g+(+h[b+(e<<5)+16>>3]-+h[b+(e<<5)>>3]);m=g+(+h[b+(e<<5)+24>>3]-+h[b+(e<<5)+8>>3]);f=f-(k+m);l=l-k*m;e=e+1|0}while((e|0)!=(a|0));m=f}else{m=0.0;l=0.0}k=m*m-o*4.0*l;if(!(k<0.0)){f=+O(+k);j=o*2.0;g=(f-m)/j;j=(-m-f)/j;e=~~g;e=(e|0)==0?1:e;if((d[124827]|0)>2){n=c[22667]|0;Mz(123080,27,1,n)|0;h[p>>3]=o;h[p+8>>3]=m;h[p+16>>3]=l;h[p+24>>3]=k;h[p+32>>3]=f;Bz(n,123108,p)|0;c[r>>2]=e;h[r+8>>3]=g;c[r+16>>2]=~~j;h[r+24>>3]=j;Bz(n,123134,r)|0;h[q>>3]=l+(m*g+g*(o*g));h[q+8>>3]=l+(m*j+j*(o*j));Bz(n,123156,q)|0}}else{h[n>>3]=k;dj(1,123053,n)|0;e=-1}i=s;return e|0}function io(a,b,e,f,g,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0;w=i;i=i+32|0;v=w+16|0;t=w;o=+h[a>>3];r=+h[a+8>>3];q=+h[a+16>>3];p=+h[a+24>>3];s=Dq()|0;k=c[g>>2]|0;a=k-f|0;l=c[g+4>>2]|0;g=l-f|0;k=f-~~(o+(o>=0.0?.5:-.5))+k+~~(q+(q>=0.0?.5:-.5))|0;l=f-~~(r+(r>=0.0?.5:-.5))+l+~~(p+(p>=0.0?.5:-.5))|0;if((a|0)>-1)a=(a|0)/(e|0)|0;else a=((a+1|0)/(e|0)|0)+-1|0;if((g|0)>-1)n=(g|0)/(e|0)|0;else n=((g+1|0)/(e|0)|0)+-1|0;if((k|0)>-1)m=(k|0)/(e|0)|0;else m=((k+1|0)/(e|0)|0)+-1|0;if((l|0)>-1)l=(l|0)/(e|0)|0;else l=((l+1|0)/(e|0)|0)+-1|0;if((a|0)<=(m|0)){k=(n|0)>(l|0);while(1){if(!k){g=n;while(1){Gq(s,a,g);if((g|0)<(l|0))g=g+1|0;else break}}if((a|0)<(m|0))a=a+1|0;else break}}l=b+4|0;c[l>>2]=Kq(s)|0;k=Jq(s)|0;m=b+8|0;c[m>>2]=k;y=+(f<<1|0);x=+(e|0);g=~~+Z(+((y+(q-o))/x));a=~~+Z(+((y+(p-r))/x));c[b>>2]=a+g;if((d[124827]|0)>2?(u=c[22667]|0,c[t>>2]=j,c[t+4>>2]=k,c[t+8>>2]=g,c[t+12>>2]=a,Bz(u,122710,t)|0,(c[m>>2]|0)>0):0){a=0;do{j=c[l>>2]|0;t=c[j+(a<<3)+4>>2]|0;c[v>>2]=c[j+(a<<3)>>2];c[v+4>>2]=t;Bz(u,122737,v)|0;a=a+1|0}while((a|0)<(c[m>>2]|0))}Eq(s);i=w;return}function jo(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+112|0;w=z+96|0;y=z+80|0;t=z+16|0;u=z;x=z+64|0;v=z+48|0;n=z+32|0;h[x>>3]=+(c[b>>2]|0);r=x+8|0;h[r>>3]=+(c[b+4>>2]|0);if((j|0)!=0?(s=a+16|0,m=c[(c[s>>2]|0)+8>>2]|0,(m|0)!=0):0){if((c[m+4>>2]|0)>0){q=+(e|0);p=+(f|0);o=+(g|0);b=v+8|0;a=0;do{f=c[m>>2]|0;n=c[f+(a*48|0)>>2]|0;j=c[f+(a*48|0)+4>>2]|0;g=c[f+(a*48|0)+8>>2]|0;e=c[f+(a*48|0)+12>>2]|0;m=f+(a*48|0)+16|0;c[t>>2]=c[m>>2];c[t+4>>2]=c[m+4>>2];c[t+8>>2]=c[m+8>>2];c[t+12>>2]=c[m+12>>2];f=f+(a*48|0)+32|0;c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];c[u+12>>2]=c[f+12>>2];if(!g){c[x>>2]=c[n>>2];c[x+4>>2]=c[n+4>>2];c[x+8>>2]=c[n+8>>2];c[x+12>>2]=c[n+12>>2];m=n+16|0;c[v>>2]=c[m>>2];c[v+4>>2]=c[m+4>>2];c[v+8>>2]=c[m+8>>2];c[v+12>>2]=c[m+12>>2];m=2}else{c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=c[t+12>>2];c[v>>2]=c[n>>2];c[v+4>>2]=c[n+4>>2];c[v+8>>2]=c[n+8>>2];c[v+12>>2]=c[n+12>>2];m=1}k=q+ +h[x>>3];h[x>>3]=k;l=p+ +h[r>>3];h[r>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[x>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[r>>3]=k;k=q+ +h[v>>3];h[v>>3]=k;l=p+ +h[b>>3];h[b>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[b>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d);if((m|0)<(j|0))do{c[x>>2]=c[v>>2];c[x+4>>2]=c[v+4>>2];c[x+8>>2]=c[v+8>>2];c[x+12>>2]=c[v+12>>2];g=n+(m<<4)|0;c[v>>2]=c[g>>2];c[v+4>>2]=c[g+4>>2];c[v+8>>2]=c[g+8>>2];c[v+12>>2]=c[g+12>>2];k=q+ +h[v>>3];h[v>>3]=k;l=p+ +h[b>>3];h[b>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[b>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d);m=m+1|0}while((m|0)!=(j|0));if(e){c[x>>2]=c[v>>2];c[x+4>>2]=c[v+4>>2];c[x+8>>2]=c[v+8>>2];c[x+12>>2]=c[v+12>>2];c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];k=q+ +h[v>>3];h[v>>3]=k;l=p+ +h[b>>3];h[b>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[b>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d)}a=a+1|0;m=c[(c[s>>2]|0)+8>>2]|0}while((a|0)<(c[m+4>>2]|0))}}else{Qs(n,c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0);c[v>>2]=c[n>>2];c[v+4>>2]=c[n+4>>2];c[v+8>>2]=c[n+8>>2];c[v+12>>2]=c[n+12>>2];k=+(e|0)+ +h[v>>3];h[v>>3]=k;m=v+8|0;l=+(f|0)+ +h[m>>3];h[m>>3]=l;if(!(k>=0.0))k=(k+1.0)/+(g|0)+-1.0;else k=k/+(g|0);h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/+(g|0)+-1.0;else k=l/+(g|0);h[m>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d)}i=z;return}function ko(a,b){a=a|0;b=b|0;return (c[c[b>>2]>>2]|0)-(c[c[a>>2]>>2]|0)|0}function lo(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0;p=c[b+12>>2]|0;j=+h[i+(p<<5)>>3];k=+h[i+(p<<5)+8>>3];l=+h[i+(p<<5)+16>>3];m=+h[i+(p<<5)+24>>3];if(!((a|0)==0?(r=+(g<<1|0),q=+(f|0),(qo((~~+Z(+((r+(l-j))/q))|0)/-2|0,(~~+Z(+((r+(m-k))/q))|0)/-2|0,b,d,e,f,i)|0)!=0):0))n=3;a:do if((n|0)==3?(qo(0,0,b,d,e,f,i)|0)==0:0)if((~~+Z(+(l-j))|0)<(~~+Z(+(m-k))|0)){p=1;while(1){o=0-p|0;g=0;while(1){if(qo(o,g,b,d,e,f,i)|0)break a;a=g+-1|0;if((a|0)>(o|0))g=a;else{n=g;break}}if((p|0)>(o|0)){g=o;do{if(qo(g,a,b,d,e,f,i)|0)break a;g=g+1|0}while((g|0)<(p|0))}else g=o;if((n|0)<=(p|0))do{if(qo(g,a,b,d,e,f,i)|0)break a;a=a+1|0}while((a|0)<(p|0));if((g|0)>(o|0))do{if(qo(g,a,b,d,e,f,i)|0)break a;g=g+-1|0}while((g|0)>(o|0));if((a|0)>0)while(1){if(qo(g,a,b,d,e,f,i)|0)break a;if((a|0)>1)a=a+-1|0;else break}p=p+1|0}}else{p=1;while(1){o=0-p|0;g=0;while(1){if(qo(g,o,b,d,e,f,i)|0)break a;a=g+1|0;if((a|0)<(p|0))g=a;else{n=g;break}}if((p|0)>(o|0)){g=o;do{if(qo(a,g,b,d,e,f,i)|0)break a;g=g+1|0}while((g|0)<(p|0))}else g=o;if((n|0)>=(o|0))do{if(qo(a,g,b,d,e,f,i)|0)break a;a=a+-1|0}while((a|0)>(o|0));if((g|0)>(o|0))do{if(qo(a,g,b,d,e,f,i)|0)break a;g=g+-1|0}while((g|0)>(o|0));if((a|0)<0)while(1){if(qo(a,g,b,d,e,f,i)|0)break a;if((a|0)<-1)a=a+1|0;else break}p=p+1|0}}while(0);return}function mo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+16|0;j=B;A=$p(b<<3)|0;g=c[e+4>>2]|0;r=e+28|0;f=(g|0)>0;do if(!(c[r>>2]&1))if(f){z=g;g=(b+-1+g|0)/(g|0)|0;q=1;break}else{g=~~+Z(+(+O(+(+(b|0)))));z=g;g=(b+-1+g|0)/(g|0)|0;q=1;break}else if(f){z=(b+-1+g|0)/(g|0)|0;q=0;break}else{g=~~+Z(+(+O(+(+(b|0)))));z=(b+-1+g|0)/(g|0)|0;q=0;break}while(0);if(a[124827]|0){y=c[22667]|0;c[j>>2]=(q|0)!=0?122958:122968;c[j+4>>2]=g;c[j+8>>2]=z;Bz(y,122981,j)|0}w=$p((z<<3)+8|0)|0;x=$p((g<<3)+8|0)|0;y=$p(b*24|0)|0;p=(b|0)>0;if(p){k=+((c[e+8>>2]|0)>>>0);f=0;j=y;while(1){o=+h[d+(f<<5)+8>>3];n=+h[d+(f<<5)+24>>3];h[j>>3]=+h[d+(f<<5)+16>>3]-+h[d+(f<<5)>>3]+k;h[j+8>>3]=n-o+k;c[j+16>>2]=f;f=f+1|0;if((f|0)==(b|0))break;else j=j+24|0}j=$p(b<<2)|0;if(p){f=0;do{c[j+(f<<2)>>2]=y+(f*24|0);f=f+1|0}while((f|0)!=(b|0));v=j;u=j}else{v=j;u=j}}else{u=$p(b<<2)|0;v=u}f=c[e+24>>2]|0;if(!f){if(!(c[r>>2]&64))_z(v,b,4,25)}else{c[13206]=f;_z(v,b,4,24)}if(p){e=(q|0)==0;f=0;m=0;j=0;do{s=c[u+(m<<2)>>2]|0;t=w+(f<<3)|0;o=+h[t>>3];n=+h[s>>3];h[t>>3]=o>n?o:n;t=x+(j<<3)|0;n=+h[t>>3];o=+h[s+8>>3];h[t>>3]=n>o?n:o;if(e){j=j+1|0;t=(j|0)==(g|0);f=(t&1)+f|0;j=t?0:j}else{f=f+1|0;t=(f|0)==(z|0);f=t?0:f;j=(t&1)+j|0}m=m+1|0}while((m|0)!=(b|0))}if((z|0)>=0){f=0;l=0.0;while(1){t=w+(f<<3)|0;k=+h[t>>3];h[t>>3]=l;if((f|0)==(z|0))break;else{f=f+1|0;l=l+k}}}if((g|0)>0){k=0.0;f=g;do{t=f;f=f+-1|0;o=+h[x+(f<<3)>>3];h[x+(t<<3)>>3]=k;k=k+o}while((t|0)>1)}else k=0.0;h[x>>3]=k;if(p){t=(q|0)==0;r=c[r>>2]|0;m=(r&4|0)==0;p=(r&8|0)==0;q=(r&16|0)==0;r=(r&32|0)==0;f=0;s=0;j=0;do{e=c[(c[u+(s<<2)>>2]|0)+16>>2]|0;k=+h[d+(e<<5)>>3];l=+h[d+(e<<5)+8>>3];n=+h[d+(e<<5)+16>>3];o=+h[d+(e<<5)+24>>3];do if(m)if(p){c[A+(e<<3)>>2]=~~((+h[w+(f<<3)>>3]+ +h[w+(f+1<<3)>>3]-n-k)*.5);break}else{c[A+(e<<3)>>2]=~~(+h[w+(f+1<<3)>>3]-(n-k));break}else c[A+(e<<3)>>2]=~~+h[w+(f<<3)>>3];while(0);do if(q)if(r){c[A+(e<<3)+4>>2]=~~((+h[x+(j<<3)>>3]+ +h[x+(j+1<<3)>>3]-o-l)*.5);break}else{c[A+(e<<3)+4>>2]=~~+h[x+(j+1<<3)>>3];break}else c[A+(e<<3)+4>>2]=~~(+h[x+(j<<3)>>3]-(o-l));while(0);if(t){j=j+1|0;e=(j|0)==(g|0);f=(e&1)+f|0;j=e?0:j}else{f=f+1|0;e=(f|0)==(z|0);f=e?0:f;j=(e&1)+j|0}s=s+1|0}while((s|0)!=(b|0))}pB(y);pB(v);pB(w);pB(x);i=B;return A|0}function no(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0;j=b+16|0;b=c[j>>2]|0;o=b+16|0;m=b+24|0;f=b+32|0;b=b+40|0;g=+(d|0);l=g+ +h[f>>3];i=+(e|0);n=i+ +h[m>>3];k=i+ +h[b>>3];h[o>>3]=g+ +h[o>>3];h[m>>3]=n;h[f>>3]=l;h[b>>3]=k;b=c[j>>2]|0;f=c[b+12>>2]|0;if((f|0)!=0?(a[f+81>>0]|0)!=0:0){o=f+56|0;h[o>>3]=g+ +h[o>>3];o=f+64|0;h[o>>3]=i+ +h[o>>3]}if((c[b+180>>2]|0)>=1){f=1;while(1){no(c[(c[b+184>>2]|0)+(f<<2)>>2]|0,d,e);b=c[j>>2]|0;if((f|0)>=(c[b+180>>2]|0))break;else f=f+1|0}}return}function oo(a,b){a=a|0;b=b|0;var d=0;d=c[13206]|0;a=c[d+(c[(c[a>>2]|0)+16>>2]<<2)>>2]|0;b=c[d+(c[(c[b>>2]|0)+16>>2]<<2)>>2]|0;return ((a|0)>(b|0)?1:((a|0)<(b|0))<<31>>31)|0}function po(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;a=c[a>>2]|0;b=c[b>>2]|0;e=+h[a+8>>3]+ +h[a>>3];d=+h[b+8>>3]+ +h[b>>3];return (e<d?1:(e>d)<<31>>31)|0}function qo(a,b,e,f,g,j,k){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;v=i;i=i+48|0;t=v+32|0;u=v;s=v+24|0;q=e+4|0;r=c[e+8>>2]|0;o=(r|0)>0;a:do if(o){l=s+4|0;m=c[q>>2]|0;n=0;while(1){w=m;x=c[w>>2]|0;w=c[w+4>>2]|0;y=s;c[y>>2]=x;c[y+4>>2]=w;c[s>>2]=x+a;c[l>>2]=w+b;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];if(Hq(f,t)|0){l=0;break a}n=n+1|0;if((n|0)>=(r|0)){p=5;break}else m=m+8|0}}else p=5;while(0);if((p|0)==5){n=c[e+12>>2]|0;A=+h[k+(n<<5)>>3];z=+h[k+(n<<5)+8>>3];c[g>>2]=(_(j,a)|0)-~~(A+(A>=0.0?.5:-.5));n=g+4|0;c[n>>2]=(_(j,b)|0)-~~(z+(z>=0.0?.5:-.5));if(o){m=s+4|0;l=c[q>>2]|0;k=0;while(1){y=l;x=c[y>>2]|0;y=c[y+4>>2]|0;w=s;c[w>>2]=x;c[w+4>>2]=y;c[s>>2]=x+a;c[m>>2]=y+b;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];Fq(f,t);k=k+1|0;if((k|0)==(r|0))break;else l=l+8|0}}if((d[124827]|0)>1){l=c[22667]|0;x=c[g>>2]|0;y=c[n>>2]|0;c[u>>2]=r;c[u+4>>2]=a;c[u+8>>2]=b;c[u+12>>2]=x;c[u+16>>2]=y;Bz(l,123019,u)|0;l=1}else l=1}i=v;return l|0}function ro(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+160|0;L=O+148|0;K=O+144|0;J=O+80|0;M=O;do if(b){if(!f){f=qB(1,20)|0;c[f+4>>2]=e>>>0>80?e:80}e=c[f>>2]|0;N=c[f+4>>2]|0;if(!e){g=100;e=qB(100,N)|0}else{g=e+100|0;I=rB(c[f+8>>2]|0,_(g,N)|0)|0;CB(I+(_(N,e)|0)|0,0,N*100|0)|0;e=I}n=M+8|0;o=(d|0)==0;p=M+72|0;q=d+4|0;r=d+8|0;s=J+8|0;t=M+8|0;u=d+24|0;v=M+8|0;w=d+40|0;x=d+20|0;y=d+12|0;z=M+16|0;A=M+24|0;B=M+32|0;C=M+40|0;D=d+16|0;E=M+16|0;F=d+28|0;G=d+32|0;H=d+36|0;I=d+44|0;k=g;a:while(1){while(1){g=b+1|0;if(!(Zx(a[b>>0]|0)|0))break;else b=g}b:do switch(a[b>>0]|0){case 0:{g=11;break a}case 69:{c[M>>2]=0;b=xo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[d>>2];break}case 101:{c[M>>2]=1;b=xo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[d>>2];break}case 80:{c[M>>2]=2;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[q>>2];break}case 112:{c[M>>2]=3;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[q>>2];break}case 98:{c[M>>2]=4;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[r>>2];break}case 66:{c[M>>2]=5;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[r>>2];break}case 99:{b=zo(g,K)|0;if(!b){g=84;break a}m=vo(c[K>>2]|0,J)|0;c[K>>2]=m;if(!m){g=84;break a}if(!(c[J>>2]|0)){c[M>>2]=9;c[t>>2]=c[s>>2];if(o)break b;c[p>>2]=c[u>>2];break b}else{c[M>>2]=14;g=v;l=J;m=g+64|0;do{c[g>>2]=c[l>>2];g=g+4|0;l=l+4|0}while((g|0)<(m|0));if(o)break b;c[p>>2]=c[w>>2];break b}}case 67:{b=zo(g,K)|0;if(!b){g=84;break a}m=vo(c[K>>2]|0,J)|0;c[K>>2]=m;if(!m){g=84;break a}if(!(c[J>>2]|0)){c[M>>2]=8;c[t>>2]=c[s>>2];if(o)break b;c[p>>2]=c[x>>2];break b}else{c[M>>2]=13;g=v;l=J;m=g+64|0;do{c[g>>2]=c[l>>2];g=g+4|0;l=l+4|0}while((g|0)<(m|0));if(o)break b;c[p>>2]=c[w>>2];break b}}case 76:{c[M>>2]=6;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[y>>2];break}case 84:{c[M>>2]=7;j=+$z(g,L);b=c[L>>2]|0;if((b|0)==(g|0)){g=48;break a}h[n>>3]=j;if(!b){g=84;break a}j=+$z(b,L);g=c[L>>2]|0;if((g|0)==(b|0)){g=51;break a}h[z>>3]=j;if(!g){g=84;break a}b=bA(g,L,10)|0;m=c[L>>2]|0;g=(m|0)==(g|0)?0:m;do if((b|0)>=0)if((b|0)>0){c[A>>2]=2;break}else{c[A>>2]=1;break}else c[A>>2]=0;while(0);if(!g){g=84;break a}j=+$z(g,L);b=c[L>>2]|0;if((b|0)==(g|0)){g=60;break a}h[B>>3]=j;if(!b){g=84;break a}b=zo(b,C)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[D>>2];break}case 70:{c[M>>2]=10;j=+$z(g,L);b=c[L>>2]|0;if((b|0)==(g|0)){g=66;break a}h[n>>3]=j;if(!b){g=84;break a}b=zo(b,E)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[F>>2];break}case 83:{c[M>>2]=11;b=zo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[G>>2];break}case 73:{c[M>>2]=12;b=xo(g,n)|0;if(!b){g=84;break a}b=zo(b,C)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[H>>2];break}case 116:{c[M>>2]=15;c[t>>2]=aA(g,L,10)|0;b=c[L>>2]|0;b=(b|0)==(g|0)?0:b;if(!b){g=84;break a}if(!o)c[p>>2]=c[I>>2];break}default:{g=84;break a}}while(0);g=c[f>>2]|0;if((g|0)==(k|0)){m=k<<1;e=rB(e,_(m,N)|0)|0;g=_(k,N)|0;CB(e+g|0,0,g|0)|0;g=c[f>>2]|0;k=m}g=e+(_(g,N)|0)|0;l=M;m=g+80|0;do{c[g>>2]=c[l>>2];g=g+4|0;l=l+4|0}while((g|0)<(m|0));c[f>>2]=(c[f>>2]|0)+1}if((g|0)==11)b=e;else if((g|0)==48)g=84;else if((g|0)==51)g=84;else if((g|0)==60)g=84;else if((g|0)==66)g=84;if((g|0)==84){b=f+16|0;c[b>>2]=c[b>>2]|1;b=e}e=c[f>>2]|0;if(!e){pB(b);pB(f);f=0;break}else{c[f+8>>2]=rB(b,_(e,N)|0)|0;break}}while(0);i=O;return f|0}function so(a,b,c){a=a|0;b=b|0;c=c|0;return ro(a,b,c,0)|0}function to(a){a=a|0;return ro(a,0,0,0)|0}function uo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=c[a+12>>2]|0;if(a){f=c[a+8>>2]|0;a:do if((c[a>>2]|0)>0){g=a+4|0;h=(b|0)==0;i=0;while(1){d=_(c[g>>2]|0,i)|0;e=f+d|0;if(!h)zb[b&127](e);switch(c[e>>2]|0){case 3:case 2:{pB(c[f+(d+12)>>2]|0);break}case 5:case 4:{pB(c[f+(d+12)>>2]|0);break}case 6:{pB(c[f+(d+12)>>2]|0);break}case 7:{pB(c[f+(d+40)>>2]|0);break}case 9:case 8:{pB(c[f+(d+8)>>2]|0);break}case 14:case 13:{wo(f+(d+8)|0);break}case 10:{pB(c[f+(d+16)>>2]|0);break}case 11:{pB(c[f+(d+8)>>2]|0);break}case 12:{pB(c[f+(d+40)>>2]|0);break}default:{}}i=i+1|0;if((i|0)>=(c[a>>2]|0))break a}}while(0);pB(f);pB(a)}return}function vo(b,d){b=b|0;d=d|0;var e=0,f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;r=s;e=a[b>>0]|0;a:do switch(e|0){case 91:{b=b+1|0;c[d>>2]=1;n=d+8|0;f=+$z(b,r);e=c[r>>2]|0;if((e|0)==(b|0)){b=0;break a}h[n>>3]=f;if(e){f=+$z(e,r);l=c[r>>2]|0;if((l|0)==(e|0)){b=0;break a}h[d+16>>3]=f;if(l){f=+$z(l,r);k=c[r>>2]|0;if((k|0)==(l|0)){b=0;break a}h[d+24>>3]=f;if(k){f=+$z(k,r);e=c[r>>2]|0;if((e|0)==(k|0)){b=0;break a}h[d+32>>3]=f;if((e|0)!=0?(o=d+40|0,m=bA(e,r,10)|0,c[o>>2]=m,j=c[r>>2]|0,!((j|0)==(e|0)|(j|0)==0)):0){l=qB(m,8)|0;b:do if((m|0)>0){k=0;while(1){f=+$z(j,r);e=c[r>>2]|0;if((e|0)==(j|0)|(e|0)==0){e=19;break}g[l+(k<<3)>>2]=f;j=zo(e,l+(k<<3)+4|0)|0;k=k+1|0;if(!j){e=21;break}if((k|0)>=(c[o>>2]|0))break b}if((e|0)==19){pB(l);b=0;break a}else if((e|0)==21){pB(l);b=0;break a}}while(0);c[n+36>>2]=l}else b=0}else b=0}else b=0}else b=0;break}case 40:{b=b+1|0;c[d>>2]=2;f=+$z(b,r);e=c[r>>2]|0;if((e|0)==(b|0)){b=0;break a}h[d+8>>3]=f;if(e){f=+$z(e,r);j=c[r>>2]|0;if((j|0)==(e|0)){b=0;break a}h[d+16>>3]=f;if(j){f=+$z(j,r);e=c[r>>2]|0;if((e|0)==(j|0)){b=0;break a}h[d+24>>3]=f;if(e){f=+$z(e,r);j=c[r>>2]|0;if((j|0)==(e|0)){b=0;break a}h[d+32>>3]=f;if(j){f=+$z(j,r);k=c[r>>2]|0;if((k|0)==(j|0)){b=0;break a}h[d+40>>3]=f;if(k){f=+$z(k,r);e=c[r>>2]|0;if((e|0)==(k|0)){b=0;break a}h[d+48>>3]=f;if((e|0)!=0?(q=d+56|0,n=bA(e,r,10)|0,c[q>>2]=n,p=c[r>>2]|0,!((p|0)==(e|0)|(p|0)==0)):0){l=qB(n,8)|0;c:do if((n|0)>0){k=0;j=p;while(1){f=+$z(j,r);e=c[r>>2]|0;if((e|0)==(j|0)|(e|0)==0){e=46;break}g[l+(k<<3)>>2]=f;j=zo(e,l+(k<<3)+4|0)|0;k=k+1|0;if(!j){e=48;break}if((k|0)>=(c[q>>2]|0))break c}if((e|0)==46){pB(l);b=0;break a}else if((e|0)==48){pB(l);b=0;break a}}while(0);c[d+60>>2]=l}else b=0}else b=0}else b=0}else b=0}else b=0}else b=0;break}case 47:case 35:{c[d>>2]=0;c[d+8>>2]=b;break}default:if(!(Wx(e)|0))b=0;else{c[d>>2]=0;c[d+8>>2]=b}}while(0);i=s;return b|0}function wo(a){a=a|0;var b=0,d=0;switch(c[a>>2]|0){case 1:{d=a+40|0;a=a+8+36|0;if((c[d>>2]|0)>0){b=0;do{pB(c[(c[a>>2]|0)+(b<<3)+4>>2]|0);b=b+1|0}while((b|0)<(c[d>>2]|0))}pB(c[a>>2]|0);break}case 2:{d=a+56|0;a=a+60|0;if((c[d>>2]|0)>0){b=0;do{pB(c[(c[a>>2]|0)+(b<<3)+4>>2]|0);b=b+1|0}while((b|0)<(c[d>>2]|0))}pB(c[a>>2]|0);break}default:{}}return}function xo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0;j=i;i=i+16|0;g=j;h[b>>3]=+$z(a,g);d=c[g>>2]|0;if(((d|0)!=(a|0)?(h[b+8>>3]=+$z(d,g),e=c[g>>2]|0,(d|0)!=(e|0)):0)?(h[b+16>>3]=+$z(e,g),f=c[g>>2]|0,(e|0)!=(f|0)):0){h[b+24>>3]=+$z(f,g);d=c[g>>2]|0;d=(f|0)==(d|0)?0:d}else d=0;i=j;return d|0}function yo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0;k=i;i=i+16|0;d=k+4|0;g=k;e=bA(a,d,10)|0;d=c[d>>2]|0;a:do if((d|0)==(a|0)|(d|0)==0)d=0;else{j=qB(e,24)|0;c[b>>2]=e;b:do if((e|0)>0){e=j;f=0;while(1){h[e>>3]=+$z(d,g);a=c[g>>2]|0;if((d|0)==(a|0)){a=5;break}h[e+8>>3]=+$z(a,g);d=c[g>>2]|0;if((a|0)==(d|0)){a=7;break}h[e+16>>3]=0.0;f=f+1|0;if((f|0)>=(c[b>>2]|0))break b;else e=e+24|0}if((a|0)==5){pB(j);d=0;break a}else if((a|0)==7){pB(j);d=0;break a}}while(0);c[b+4>>2]=j}while(0);i=k;return d|0}function zo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;f=bA(b,j,10)|0;j=c[j>>2]|0;b=(j|0)==(b|0)?0:j;a:do if(!((f|0)<1|(b|0)==0)){do{j=a[b>>0]|0;e=j<<24>>24==0;b=b+1|0}while(j<<24>>24!=45&(e^1));if(!e){j=qB(f+1|0,1)|0;b:do if((f|0)>0){h=f;g=j;while(1){f=a[b>>0]|0;if(!(f<<24>>24))break;e=g+1|0;a[g>>0]=f;b=b+1|0;if((h|0)>1){h=h+-1|0;g=e}else break b}pB(j);b=0;break a}else e=j;while(0);a[e>>0]=0;c[d>>2]=j}else b=0}else b=0;while(0);i=k;return b|0}function Ao(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+4|0;j=l;c[d>>2]=0;c[e>>2]=(hk(gl(b)|0)|0)!=0&1;f=c[13430]|0;a:do if(f){f=Aj(b,f)|0;switch(a[f>>0]|0){case 110:{if(!(lA(f,159165)|0))f=52864;else break a;break}case 102:{if(!(lA(f,124700)|0))f=52828;else break a;break}case 98:{if(lA(f,124708)|0)if(!(lA(f,134593)|0))f=52852;else break a;else f=52840;break}default:break a}c[d>>2]=c[f+4>>2];c[e>>2]=c[f+8>>2]}while(0);f=c[13441]|0;if(((f|0)!=0?(c[e>>2]|0)==1:0)?(g=Aj(b,f)|0,(a[g>>0]|0)!=0):0)Ho(g,e);f=c[13442]|0;if(((f|0)!=0?(c[d>>2]|0)==1:0)?(h=Aj(b,f)|0,(a[h>>0]|0)!=0):0)Ho(h,d);if(a[(c[b+16>>2]|0)+153>>0]|0){g=b+-48|0;f=gl(c[((c[b>>2]&3|0)==2?b:g)+40>>2]|0)|0;h=c[b>>2]&3;Ao(Sj(f,c[((h|0)==2?b:g)+40>>2]|0,c[((h|0)==3?b:b+48|0)+40>>2]|0,0,0)|0,k,j);c[e>>2]=c[k>>2]|c[e>>2];c[d>>2]=c[j>>2]|c[d>>2]}i=l;return}function Bo(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0;f=0;d=0.0;do{e=b>>(f<<3)&15;if((e|0)!=1)if((e|0)!=2)if((e|0)!=3)if((e|0)!=4)if((e|0)!=5)if((e|0)!=6)if((e|0)!=7){if((e|0)==8){e=33600;g=3}}else{e=33576;g=3}else{e=33552;g=3}else{e=33528;g=3}else{e=33504;g=3}else{e=33480;g=3}else{e=33456;g=3}else{e=33432;g=3}if((g|0)==3){g=0;d=d+ +h[e+8>>3]}f=f+1|0}while((f|0)!=4);return +(d*10.0*+Hs(a,c[13434]|0,1.0,0.0))}function Co(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;n=i;i=i+80|0;l=n+72|0;m=n+8|0;k=n;j=+Bo(a,g);j=j*j;h[k>>3]=j;c[f+12>>2]=g;f=f+32|0;a=e+3|0;g=b+(a<<4)|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];if((e|0)>(d|0)?(p=+h[b+(e<<4)>>3]-+h[g>>3],o=+h[b+(e<<4)+8>>3]-+h[b+(a<<4)+8>>3],p*p+o*o<j):0)e=e+-3|0;s=m+48|0;r=b+(e<<4)|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];q=m+32|0;a=b+(e+1<<4)|0;c[q>>2]=c[a>>2];c[q+4>>2]=c[a+4>>2];c[q+8>>2]=c[a+8>>2];c[q+12>>2]=c[a+12>>2];g=m+16|0;d=b+(e+2<<4)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];c[l>>2]=m;c[l+4>>2]=k;Zr(l,26,m,1);c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];c[a>>2]=c[q>>2];c[a+4>>2]=c[q+4>>2];c[a+8>>2]=c[q+8>>2];c[a+12>>2]=c[q+12>>2];c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];b=b+(e+3<<4)|0;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];c[b+12>>2]=c[m+12>>2];i=n;return e|0}function Do(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0;o=i;i=i+80|0;l=o+72|0;n=o+8|0;m=o;k=+Bo(a,g);k=k*k;h[m>>3]=k;c[f+8>>2]=g;g=f+16|0;a=b+(d<<4)|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];if(!((e|0)>(d|0)?(j=d+3|0,q=+h[a>>3]-+h[b+(j<<4)>>3],p=+h[b+(d<<4)+8>>3]-+h[b+(j<<4)+8>>3],q*q+p*p<k):0))j=d;d=b+(j+3<<4)|0;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];f=n+16|0;e=b+(j+2<<4)|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];r=n+32|0;a=b+(j+1<<4)|0;c[r>>2]=c[a>>2];c[r+4>>2]=c[a+4>>2];c[r+8>>2]=c[a+8>>2];c[r+12>>2]=c[a+12>>2];s=n+48|0;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];c[l>>2]=s;c[l+4>>2]=m;Zr(l,26,n,0);m=b+(j<<4)|0;c[m>>2]=c[s>>2];c[m+4>>2]=c[s+4>>2];c[m+8>>2]=c[s+8>>2];c[m+12>>2]=c[s+12>>2];c[a>>2]=c[r>>2];c[a+4>>2]=c[r+4>>2];c[a+8>>2]=c[r+8>>2];c[a+12>>2]=c[r+12>>2];c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];i=o;return j|0}function Eo(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0;r=(g|0)!=0;j=(i|0)!=0;if(!((e|0)==(d|0)&(r&j))){if(j){k=+Bo(a,i);l=+h[b+(e<<4)>>3];m=+h[b+(e<<4)+8>>3];q=e+3|0;j=b+(q<<4)|0;n=+h[j>>3];q=b+(q<<4)+8|0;o=+h[q>>3];t=l-n;u=m-o;u=+O(+(t*t+u*u))*.9;k=k>=u?u:k;do if(m==o)if(l<n){p=n-k;k=m;break}else{p=n+k;k=m;break}else if(m<o){p=l;k=o-k;break}else{p=l;k=o+k;break}while(0);v=e+1|0;h[b+(v<<4)>>3]=l;h[b+(v<<4)+8>>3]=m;e=b+(e+2<<4)|0;h[j>>3]=p;h[q>>3]=k;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];c[f+12>>2]=i;h[f+32>>3]=n;h[f+40>>3]=o}if(r){k=+Bo(a,g);j=b+(d<<4)|0;l=+h[j>>3];m=+h[b+(d<<4)+8>>3];v=d+3|0;n=+h[b+(v<<4)>>3];o=+h[b+(v<<4)+8>>3];t=l-n;u=m-o;u=+O(+(t*t+u*u))*.9;k=k>=u?u:k;do if(m==o)if(l<n){p=l+k;k=m;break}else{p=l-k;k=m;break}else if(m<o){p=l;k=m+k;break}else{p=l;k=m-k;break}while(0);e=d+1|0;v=b+(e<<4)|0;h[v>>3]=p;h[b+(e<<4)+8>>3]=k;c[j>>2]=c[v>>2];c[j+4>>2]=c[v+4>>2];c[j+8>>2]=c[v+8>>2];c[j+12>>2]=c[v+12>>2];v=d+2|0;h[b+(v<<4)>>3]=n;h[b+(v<<4)+8>>3]=o;c[f+8>>2]=g;h[f+16>>3]=l;h[f+24>>3]=m}}else{q=b+(e<<4)|0;s=+h[q>>3];t=+h[b+(e<<4)+8>>3];j=e+3|0;r=b+(j<<4)|0;u=+h[r>>3];j=b+(j<<4)+8|0;p=+h[j>>3];k=+Bo(a,g);o=+Bo(a,i);n=s-u;l=t-p;l=+O(+(n*n+l*l));v=!(k+o>=l);l=l/3.0;k=v?k:l;l=v?o:l;do if(t==p)if(s<u){o=s+k;m=t;n=u-l;k=t;break}else{o=s-k;m=t;n=u+l;k=t;break}else if(t<p){o=s;m=t+k;n=s;k=p-l;break}else{o=s;m=t-k;n=s;k=p+l;break}while(0);d=e+1|0;v=b+(d<<4)|0;h[v>>3]=o;h[b+(d<<4)+8>>3]=m;c[q>>2]=c[v>>2];c[q+4>>2]=c[v+4>>2];c[q+8>>2]=c[v+8>>2];c[q+12>>2]=c[v+12>>2];v=b+(e+2<<4)|0;h[r>>3]=n;h[j>>3]=k;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];c[v+8>>2]=c[r+8>>2];c[v+12>>2]=c[r+12>>2];c[f+12>>2]=i;h[f+32>>3]=s;h[f+40>>3]=t;c[f+8>>2]=g;h[f+16>>3]=u;h[f+24>>3]=p}return}function Fo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;m=+h[b>>3];k=+h[c>>3]-m;l=+h[b+8>>3];j=+h[c+8>>3]-l;o=d*10.0/(+O(+(k*k+j*j))+.0001);k=o*(k+(k>=0.0?.0001:-.0001));j=o*(j+(j>=0.0?.0001:-.0001));o=k*.5;n=j*.5;i=m-n;f=l-o;n=m+n;l=o+l;o=k+i;m=j+f;k=k+n;j=j+l;g=o>k?o:k;g=n>g?n:g;d=m>j?m:j;d=l>d?l:d;k=o<k?o:k;k=n<k?n:k;j=m<j?m:j;j=l<j?l:j;h[a>>3]=i<k?i:k;h[a+8>>3]=f<j?f:j;h[a+16>>3]=i>g?i:g;h[a+24>>3]=f>d?f:d;return}function Go(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=+g;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0;w=i;i=i+80|0;u=w+64|0;s=w+48|0;t=w+32|0;r=w+16|0;o=w;p=(c[a+16>>2]|0)+12|0;q=c[p>>2]|0;c[p>>2]=b;Uu(a,c[(c[a>>2]|0)+336>>2]|0);av(a,g);z=+h[e>>3]-+h[d>>3];k=e+8|0;x=+h[k>>3]-+h[d+8>>3];y=10.0/(+O(+(z*z+x*x))+.0001);h[e>>3]=y*(z+(z>=0.0?.0001:-.0001));h[k>>3]=y*(x+(x>=0.0?.0001:-.0001));k=t+8|0;l=r+8|0;n=0;do{b=j>>(n<<3);m=b&255;if(!m)break;c[t>>2]=c[e>>2];c[t+4>>2]=c[e+4>>2];c[t+8>>2]=c[e+8>>2];c[t+12>>2]=c[e+12>>2];c[r>>2]=c[d>>2];c[r+4>>2]=c[d+4>>2];c[r+8>>2]=c[d+8>>2];c[r+12>>2]=c[d+12>>2];b=b&15;if((b|0)!=1)if((b|0)!=2)if((b|0)!=3)if((b|0)!=4)if((b|0)!=5)if((b|0)!=6)if((b|0)!=7){if((b|0)==8){b=33600;v=4}}else{b=33576;v=4}else{b=33552;v=4}else{b=33528;v=4}else{b=33504;v=4}else{b=33480;v=4}else{b=33456;v=4}else{b=33432;v=4}if((v|0)==4){v=0;z=+h[b+8>>3]*f;h[t>>3]=+h[t>>3]*z;h[k>>3]=z*+h[k>>3];b=c[b+16>>2]|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];Db[b&15](a,s,u,f,g,m);h[r>>3]=+h[r>>3]+ +h[t>>3];h[l>>3]=+h[l>>3]+ +h[k>>3]};c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];c[o+12>>2]=c[r+12>>2];c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];n=n+1|0}while((n|0)<4);c[p>>2]=q;i=w;return}function Ho(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;m=n;k=n+4|0;c[d>>2]=0;a:do if(a[b>>0]|0){l=0;b:while(1){h=(l|0)==3;j=(l|0)==0;while(1){c[k>>2]=0;e=Ro(b,52888,k)|0;if((e|0)==(b|0)){e=b;while(1){f=Ro(e,52904,k)|0;if((e|0)==(f|0))break;else e=f}g=Ro(e,52952,k)|0}else g=e;e=c[k>>2]|0;if((e|0)!=0&(e&15|0)==0){b=g;g=14;break}if(!e)break b;f=(e|0)==8;if(!(h&f)){b=g;g=12;break}if(!(a[g>>0]|0))break a;else b=g}if((g|0)==12){if(j&f)if(!(a[b>>0]|0))break a;else e=8}else if((g|0)==14)e=e|1;c[d>>2]=c[d>>2]|e<<(l<<3);l=l+1|0;if(!((l|0)<4&(a[b>>0]|0)!=0))break a}c[m>>2]=b;dj(0,123170,m)|0}while(0);i=n;return}function Io(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[a>>2]|0;e=+h[b>>3]-+h[f>>3];d=+h[b+8>>3]-+h[f+8>>3];return e*e+d*d<=+h[c[a+4>>2]>>3]|0}function Jo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0;o=i;i=i+80|0;n=o;l=f>4.0?f*.25*.35:.35;k=+h[d+8>>3];m=l*k;j=+h[d>>3];l=l*j;f=+h[b>>3];j=j+f;e=+h[b+8>>3];k=k+e;d=n+64|0;if(!(g&32)){h[n+64>>3]=j;h[n+72>>3]=k;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];d=n+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];f=j;e=k}else{c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];h[n+32>>3]=j;h[n+40>>3]=k}h[n+16>>3]=m+f;h[n+24>>3]=e-l;h[n+48>>3]=f-m;h[n+56>>3]=l+e;do if(!(g&64))if(!(g&128)){Wu(a,n+16|0,3,g>>>4&1^1);break}else{Wu(a,n+32|0,3,g>>>4&1^1);break}else Wu(a,n,3,g>>>4&1^1);while(0);i=o;return}function Ko(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0;u=i;i=i+144|0;t=u;j=e*4.0;r=(g&32|0)==0;j=!(j<f)|r?.45:f/j*.45;if(!(f>1.0)|r)e=0.0;else e=(f+-1.0)*.05/e;o=+h[d+8>>3];q=-o;s=j*q;n=+h[d>>3];p=j*n;q=e*q;m=e*n;f=+h[b>>3];e=n+f;k=+h[b+8>>3];l=o+k;n=f+n*.5;o=o*.5+k;d=t+128|0;if(r){h[t+128>>3]=e;h[t+136>>3]=l;c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2];h[t+16>>3]=f-s;h[t+24>>3]=k-p;h[t+32>>3]=n-q;h[t+40>>3]=o-m;h[t+48>>3]=f;h[t+56>>3]=k;r=t+64|0;c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];h[t+80>>3]=f;j=k;e=k}else{c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];h[t+16>>3]=e-s;h[t+24>>3]=l-p;h[t+32>>3]=n-q;h[t+40>>3]=o-m;h[t+48>>3]=e-q;h[t+56>>3]=l-m;h[t+64>>3]=e;h[t+72>>3]=l;h[t+80>>3]=q+e;f=e;j=l;e=m+l}h[t+88>>3]=e;h[t+96>>3]=q+n;h[t+104>>3]=m+o;h[t+112>>3]=s+f;h[t+120>>3]=p+j;do if(!(g&64))if(!(g&128)){Wu(a,t,9,1);break}else{Wu(a,t+48|0,6,1);break}else Wu(a,t,6,1);while(0);i=u;return}function Lo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0;u=i;i=i+64|0;t=u;w=+h[d+8>>3];v=+h[d>>3];f=+h[b>>3];q=v+f;j=+h[b+8>>3];r=w+j;s=f+v*.2;e=w*.2+j;f=f+v*.6;j=w*.6+j;h[t>>3]=s-w;d=t+8|0;h[d>>3]=v+e;k=t+16|0;h[k>>3]=w+s;l=t+24|0;h[l>>3]=e-v;m=t+32|0;h[m>>3]=w+f;n=t+40|0;h[n>>3]=j-v;o=t+48|0;h[o>>3]=f-w;p=t+56|0;h[p>>3]=v+j;if(!(g&64)){if(g&128){h[k>>3]=s;h[l>>3]=e;h[m>>3]=f;h[n>>3]=j}}else{h[t>>3]=s;h[d>>3]=e;h[o>>3]=f;h[p>>3]=j}Wu(a,t,4,1);c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];h[k>>3]=q;h[l>>3]=r;Zu(a,t,2);i=u;return}function Mo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0;s=i;i=i+64|0;r=s;j=+h[d+8>>3];u=j*-.4;f=+h[d>>3];t=f*.4;w=+h[b>>3];q=w+f*.8;v=+h[b+8>>3];e=j*.8+v;f=f+w;j=j+v;h[r>>3]=u+w;d=r+8|0;h[d>>3]=t+v;k=r+16|0;h[k>>3]=w-u;l=r+24|0;h[l>>3]=v-t;m=r+32|0;h[m>>3]=q-u;n=r+40|0;h[n>>3]=e-t;o=r+48|0;h[o>>3]=u+q;p=r+56|0;h[p>>3]=t+e;if(!(g&64)){if(g&128){c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];h[m>>3]=q;h[n>>3]=e}}else{c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];h[o>>3]=q;h[p>>3]=e}Wu(a,r,4,g>>>4&1^1);h[r>>3]=q;h[d>>3]=e;h[r+16>>3]=f;h[l>>3]=j;Zu(a,r,2);i=s;return}function No(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;k=i;i=i+80|0;j=k;o=+h[d+8>>3];l=-o/3.0;q=+h[d>>3];f=q/3.0;p=+h[b>>3];m=q*.5+p;n=+h[b+8>>3];e=o*.5+n;d=j+64|0;h[j+64>>3]=q+p;h[j+72>>3]=o+n;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];h[j+16>>3]=l+m;h[j+24>>3]=f+e;d=j+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];h[j+48>>3]=m-l;h[j+56>>3]=e-f;do if(!(g&64)){d=g>>>4&1^1;if(!(g&128)){Wu(a,j,4,d);break}else{Wu(a,j,3,d);break}}else Wu(a,d,3,g>>>4&1^1);while(0);i=k;return}function Oo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;var g=0,j=0,k=0.0;g=i;i=i+32|0;j=g;k=+h[c>>3];e=+h[c+8>>3];d=+O(+(k*k+e*e))*.5;k=k*.5+ +h[b>>3];h[j>>3]=k-d;e=+h[b+8>>3]+e*.5;h[j+8>>3]=e-d;h[j+16>>3]=d+k;h[j+24>>3]=d+e;Vu(a,j,2,f>>>4&1^1);i=g;return}function Po(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+128|0;s=u+64|0;t=u+32|0;q=u+16|0;r=u;l=f>4.0?f*.5*.25:.5;p=+h[b>>3];j=+h[d>>3];e=+h[b+8>>3];m=+h[d+8>>3];f=l*m;l=l*j;c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];h[t+16>>3]=p+j;h[t+24>>3]=e+m;h[s>>3]=l+(p-f);m=f+(l+e);h[s+8>>3]=m;h[s+48>>3]=l+(f+p);e=f+(e-l);h[s+56>>3]=e;j=f*-.95;n=l+(j+p);o=l*4.0/3.0;if(!(g&32)){f=f*4.0/3.0;k=e-f;j=l+(p-j)-o;f=m-f;e=n-o}else{f=f*4.0/3.0;k=f+e;j=o+(l+(p-j));f=m+f;e=o+n}h[s+16>>3]=e;h[s+24>>3]=f;h[s+32>>3]=j;h[s+40>>3]=k;Zu(a,t,2);if(!(g&64)){if(g&128)Rs(r,s,3,.5,s,0)}else Rs(q,s,3,.5,0,s);Yu(a,s,4,0,0,0);i=u;return}function Qo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0;g=i;i=i+32|0;j=g;e=+h[b>>3]+ +h[d>>3];f=+h[b+8>>3]+ +h[d+8>>3];c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];h[j+16>>3]=e;h[j+24>>3]=f;Zu(a,j,2);i=g;return}function Ro(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[b>>2]|0;a:do if(e){f=b;while(1){b=pA(e)|0;if(!(rA(a,e,b)|0)){e=f;break}f=f+8|0;e=c[f>>2]|0;if(!e)break a}c[d>>2]=c[d>>2]|c[e+4>>2];a=a+b|0}while(0);return a|0}function So(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j+8|0;f=j;d=zj(b,123272)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else{d=zj(b,123284)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else d=0}if((h|0)==5){d=so(e,0,120)|0;if(!d){c[f>>2]=ok(b)|0;dj(0,123291,f)|0;c[g>>2]=e;dj(3,123344,g)|0}}i=j;return d|0}function To(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=$p(304)|0;if(!f)dj(1,123352,g)|0;e=a+16|0;a=c[e>>2]|0;c[f>>2]=a;c[e>>2]=f;if(!a){c[f+144>>2]=3;c[f+148>>2]=0;h[f+152>>3]=1.0}else{b=f+16|0;d=a+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=f+56|0;d=a+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));c[f+144>>2]=c[a+144>>2];c[f+148>>2]=c[a+148>>2];h[f+152>>3]=+h[a+152>>3];c[f+136>>2]=c[a+136>>2];b=f+96|0;d=a+96|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0))}i=g;return f|0}function Uo(a){a=a|0;var b=0;a=a+16|0;b=c[a>>2]|0;if(!b)Ia(123378,123382,117,123389);else{pB(c[b+212>>2]|0);pB(c[b+208>>2]|0);pB(c[b+216>>2]|0);pB(c[b+220>>2]|0);pB(c[b+224>>2]|0);pB(c[b+228>>2]|0);pB(c[b+232>>2]|0);pB(c[b+236>>2]|0);pB(c[b+240>>2]|0);pB(c[b+244>>2]|0);pB(c[b+248>>2]|0);pB(c[b+252>>2]|0);pB(c[b+256>>2]|0);pB(c[b+272>>2]|0);pB(c[b+284>>2]|0);pB(c[b+280>>2]|0);c[a>>2]=c[b>>2];pB(b);return}}function Vo(d,e,f,g,h,i,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;l=c[d+16>>2]|0;k=c[d+152>>2]|0;if((e|0)!=0&(k&32768|0)!=0)c[l+192>>2]=e;if(((k&65536|0)!=0?(c[l+212>>2]=Up(i,j)|0,(f|0)!=0):0)?(a[f>>0]|0)!=0:0){c[l+208>>2]=Up(f,j)|0;d=1}else d=0;do if(k&4194304){if((g|0)!=0?(a[g>>0]|0)!=0:0){c[l+228>>2]=Up(g,j)|0;d=l+260|0;b[d>>1]=b[d>>1]|1;d=1;break}i=c[l+192>>2]|0;if(i){c[l+228>>2]=oA(i)|0;d=1}}while(0);if((h|0)!=0&(k&8388608|0)!=0?(a[h>>0]|0)!=0:0){c[l+244>>2]=Up(h,j)|0;d=1}return d|0}function Wo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+80|0;j=k;h=k+8|0;g=c[(c[b>>2]|0)+168>>2]|0;f=c[(c[(c[g+16>>2]|0)+8>>2]|0)+92>>2]|0;gp(b,e);b=zj(d,125554)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0){jj(e,b)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){hj(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}else{if((g|0)!=(d|0)&(f|0)!=0){jj(e,f)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){hj(e,1)|0;b=c[f>>2]|0}c[f>>2]=b+1;a[b>>0]=95}switch(rl(d)|0){case 0:{f=(c[d>>2]|0)>>>4;b=(g|0)==(d|0)?134935:123403;break}case 1:{f=(c[d>>2]|0)>>>4;b=134886;break}case 2:{f=(c[d>>2]|0)>>>4;b=134900;break}default:{f=0;b=0}}jj(e,b)|0;c[j>>2]=f;Oz(h,123409,j)|0;jj(e,h)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){hj(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}i=k;return b|0}function Xo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0,s=0,t=0;t=i;i=i+48|0;s=t+16|0;e=t+32|0;r=t;q=+h[(c[a+16>>2]|0)+152>>3];p=hp(d,0,e)|0;if((p+-1|0)>>>0>=2){f=+h[b+16>>3];m=(+h[b>>3]+f)*.5;h[r>>3]=m;j=+h[b+24>>3];n=(+h[b+8>>3]+j)*.5;h[r+8>>3]=n;m=f-m;n=j-n;o=q>.5;if(o)av(a,.5);k=c[e>>2]|0;l=k+8|0;b=c[l>>2]|0;d=c[b>>2]|0;if(d){f=0.0;do{e=b+4|0;if(!(+g[e>>2]==0.0)){Su(a,d);if(!(c[b+12>>2]|0))j=6.283185307179586;else j=f+ +g[e>>2]*6.283185307179586;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];e=Pv(s,m,n,f,j)|0;Yu(a,c[e>>2]|0,c[e+4>>2]|0,0,0,1);Ux(e);f=j}b=b+12|0;d=c[b>>2]|0}while((d|0)!=0)}if(o)av(a,q);pB(c[k+4>>2]|0);pB(c[l>>2]|0);pB(k)}i=t;return p|0}function Yo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0,t=0,u=0;u=i;i=i+80|0;f=u+64|0;t=u;s=+h[(c[a+16>>2]|0)+152>>3];r=hp(d,0,f)|0;if((r+-1|0)>>>0>=2){if(!e){c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];q=t+16|0;p=b+16|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];q=t+32|0;p=b+32|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];q=t+48|0;p=b+48|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2]}else{q=b+32|0;c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];q=t+16|0;p=b+48|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];q=t+32|0;c[q>>2]=c[b>>2];c[q+4>>2]=c[b+4>>2];c[q+8>>2]=c[b+8>>2];c[q+12>>2]=c[b+12>>2];q=t+48|0;p=b+16|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2]}m=t+16|0;n=+h[m>>3];j=+h[t>>3];o=n-j;p=t+32|0;h[p>>3]=j;h[m>>3]=j;q=s>.5;if(q)av(a,.5);f=c[f>>2]|0;k=f+8|0;b=c[k>>2]|0;d=c[b>>2]|0;if(d){l=t+48|0;do{e=b+4|0;if(!(+g[e>>2]==0.0)){Su(a,d);if(!(c[b+12>>2]|0))j=n;else j=+h[t>>3]+o*+g[e>>2];h[p>>3]=j;h[m>>3]=j;Wu(a,t,4,1);j=+h[m>>3];h[l>>3]=j;h[t>>3]=j}b=b+12|0;d=c[b>>2]|0}while((d|0)!=0)}if(q)av(a,s);pB(c[f+4>>2]|0);pB(c[k>>2]|0);pB(f)}i=u;return r|0}function Zo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840){f=e&131072;c[d+264>>2]=f>>>16^2;h=d+268|0;c[h>>2]=(f>>>16^2)+2;g=d+272|0;pB(c[g>>2]|0);d=$p(c[h>>2]<<4)|0;c[g>>2]=d;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];g=d+16|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];if(!(e&8192))vu(a,d,d,2)|0;if(!f)Fp(d)}return}function _o(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+160|0;g=r+96|0;f=r+32|0;o=r+16|0;j=r;d=+h[b>>3];q=a+16|0;l=+h[q>>3];if(!(((((((((!(d>l)?(m=+h[a>>3],!(d<m)):0)?(n=+h[b+8>>3],e=+h[a+24>>3],!(n>e)):0)?(k=+h[a+8>>3],!(n<k)):0)?(n=+h[b+16>>3],!(n>l|n<m)):0)?(n=+h[b+24>>3],!(n>e|n<k)):0)?(n=+h[b+32>>3],!(n>l|n<m)):0)?(n=+h[b+40>>3],!(n>e|n<k)):0)?(n=+h[b+48>>3],!(n>l|n<m)):0)?(n=+h[b+56>>3],!(n>e|n<k)):0))p=11;do if((p|0)==11){s=b+48|0;p=b+16|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];n=+Jp(o,f,g);p=b+32|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];if(!(n<4.0&+Jp(o,f,g)<4.0)){Rs(j,b,3,.5,g,f);_o(a,g);_o(a,f);break}f=a+24|0;g=a+8|0;e=+h[q>>3];j=0;while(1){d=+h[b+(j<<4)>>3];if(!(d>e))if(d<+h[a>>3]){h[a>>3]=d;d=e}else d=e;else h[q>>3]=d;e=+h[b+(j<<4)+8>>3];if(!(e>+h[f>>3])){if(e<+h[g>>3])h[g>>3]=e}else h[f>>3]=e;j=j+1|0;if((j|0)==4)break;else e=d}}while(0);i=r;return}function $o(e,f){e=e|0;f=f|0;var j=0.0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0;Wa=i;i=i+240|0;Ra=Wa+32|0;Ua=Wa+24|0;Ta=Wa+16|0;r=Wa+8|0;s=Wa;Sa=Wa+96|0;Oa=Wa+88|0;Pa=Wa+84|0;Qa=Wa+80|0;Na=Wa+104|0;Va=Wa+64|0;Ka=e+152|0;m=c[Ka>>2]|0;La=e+352|0;o=+h[La>>3];x=+h[e+432>>3];n=o*x/72.0;h[e+488>>3]=n;j=+h[e+440>>3];o=o*j/72.0;h[e+496>>3]=o;h[e+520>>3]=x/72.0;j=j/72.0;l=e+528|0;h[l>>3]=j;if(m&4096|c[13364])h[l>>3]=-j;Ia=e+360|0;Fa=(c[Ia>>2]|0)==0;x=+((c[e+448>>2]|0)>>>0);w=+((c[e+452>>2]|0)>>>0);Ja=e+368|0;h[Ja>>3]=(Fa?x:w)/n;Ha=e+376|0;h[Ha>>3]=(Fa?w:x)/o;_u(e,Is(f,rj(f,0,125350,0)|0,164137)|0);Fa=e+160|0;c[Fa>>2]=0;Ga=To(e)|0;c[Ga+4>>2]=0;c[Ga+8>>2]=f;c[Ga+12>>2]=0;Ga=f+16|0;ip(e,c[(c[Ga>>2]|0)+12>>2]|0,f);wu(e,f);if(m&2){Su(e,158256);l=zj(f,123413)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)Su(e,l);l=zj(f,125258)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)Ru(e,l);jp(e,f);l=Rk(f)|0;if(l)do{m=zj(l,161159)|0;if((m|0)!=0?(a[m>>0]|0)!=0:0)Ru(e,m);m=zj(l,161150)|0;if((m|0)!=0?(a[m>>0]|0)!=0:0)Su(e,m);m=zj(l,125224)|0;do if((m|0)!=0?(a[m>>0]|0)!=0:0){if(!(jA(m,58)|0)){Ru(e,m);break}p=oA(m)|0;m=xA(p,133477)|0;if(m)do{if(a[m>>0]|0)Ru(e,m);m=xA(0,133477)|0}while((m|0)!=0);pB(p)}while(0);m=zj(l,125258)|0;if((m|0)!=0?(a[m>>0]|0)!=0:0)Ru(e,m);m=Lj(f,l)|0;if(m)do{p=zj(m,161159)|0;do if((p|0)!=0?(a[p>>0]|0)!=0:0){if(!(jA(p,58)|0)){Ru(e,p);break}q=oA(p)|0;p=xA(q,133477)|0;if(p)do{if(a[p>>0]|0)Ru(e,p);p=xA(0,133477)|0}while((p|0)!=0);pB(q)}while(0);p=zj(m,125258)|0;if((p|0)!=0?(a[p>>0]|0)!=0:0)Ru(e,p);m=Nj(f,m)|0}while((m|0)!=0);l=Sk(f,l)|0}while((l|0)!=0)}l=Rk(f)|0;if(l)do{a[(c[l+16>>2]|0)+116>>0]=0;l=Sk(f,l)|0}while((l|0)!=0);q=c[e>>2]|0;l=c[q+312>>2]|0;Ea=e+156|0;c[Ea>>2]=l;q=c[q+316>>2]|0;if(!q)if((l|0)>1?(c[Ka>>2]&64|0)==0:0){c[r>>2]=c[e+52>>2];dj(0,123421,r)|0;c[Ea>>2]=1;c[Fa>>2]=1;m=0;Da=55}else{p=1;m=0;Da=54}else{m=q+4|0;if((c[q>>2]|0)>1?(c[Ka>>2]&64|0)==0:0){c[s>>2]=c[e+52>>2];dj(0,123421,s)|0;c[q+8>>2]=(c[Ea>>2]|0)+1;l=c[Ea>>2]|0}p=c[m>>2]|0;m=q+8|0;Da=54}if((Da|0)==54?(c[Fa>>2]=p,(p|0)<=(l|0)):0)Da=55;if((Da|0)==55){G=e+196|0;H=e+172|0;I=e+164|0;J=e+200|0;K=e+168|0;L=e+196|0;M=e+16|0;N=Va+4|0;O=Va+8|0;P=e+164|0;Q=e+320|0;R=e+240|0;S=e+288|0;U=e+328|0;V=e+248|0;X=e+296|0;Y=e+304|0;Z=e+312|0;_=e+12|0;$=e+472|0;aa=e+456|0;ba=e+336|0;ca=e+344|0;da=e+256|0;ea=e+264|0;fa=e+272|0;ga=e+280|0;ha=e+384|0;ia=e+504|0;ja=e+392|0;ka=e+512|0;la=e+256|0;ma=Oa+4|0;na=e+188|0;oa=e+192|0;pa=e+184|0;qa=e+176|0;ra=e+180|0;sa=e+172|0;ta=e+288|0;ua=e+304|0;va=e+504|0;wa=e+456|0;xa=e+476|0;ya=e+460|0;za=e+480|0;Aa=e+464|0;Ba=e+484|0;Ca=e+468|0;while(1){F=c[(c[e>>2]|0)+316>>2]|0;if((c[((F|0)==0?Ea:F)>>2]|0)>1)Au(e);l=H;p=c[l>>2]|0;l=c[l+4>>2]|0;F=G;c[F>>2]=p;c[F+4>>2]=l;a:do if((p|0)>-1?((l|0)>-1?(p|0)<(c[I>>2]|0):0):0)do{if((l|0)>=(c[K>>2]|0))break a;E=c[M>>2]|0;F=c[Ka>>2]|0;if((c[Fa>>2]|0)>1|(p|0)>0){gj(Va,128,Na);p=E+212|0;q=c[p>>2]|0;gp(e,Va);jj(Va,q)|0;l=c[N>>2]|0;if(l>>>0>=(c[O>>2]|0)>>>0){hj(Va,1)|0;l=c[N>>2]|0}a[l>>0]=0;D=c[Va>>2]|0;c[N>>2]=D;c[p>>2]=D}else q=0;Lv(zj(f,123456)|0);C=G;D=c[C>>2]|0;C=c[C+4>>2]|0;p=P;l=c[p>>2]|0;p=c[p+4>>2]|0;r=(c[Ia>>2]|0)==0;j=+((r?D:C)|0);o=+h[Q>>3];v=o*j-+h[R>>3];h[S>>3]=v;n=+((r?C:D)|0);w=+h[U>>3];x=n*w-+h[V>>3];h[X>>3]=x;h[Y>>3]=o+v;h[Z>>3]=w+x;if(!(c[(c[_>>2]|0)+28>>2]|0)){c[$>>2]=c[aa>>2];c[$+4>>2]=c[aa+4>>2];c[$+8>>2]=c[aa+8>>2];c[$+12>>2]=c[aa+12>>2]}else{D=c[$>>2]|0;C=c[wa>>2]|0;c[$>>2]=(D|0)<(C|0)?D:C;C=c[xa>>2]|0;D=c[ya>>2]|0;c[xa>>2]=(C|0)<(D|0)?C:D;D=c[za>>2]|0;C=c[Aa>>2]|0;c[za>>2]=(D|0)>(C|0)?D:C;C=c[Ba>>2]|0;D=c[Ca>>2]|0;c[Ba>>2]=(C|0)>(D|0)?C:D}s=c[Ka>>2]|0;t=+h[ba>>3];x=+h[ca>>3];if(!(s&128)){t=o*(j-+((r?l:p)|0)*.5)+t;x=w*(n-+((r?p:l)|0)*.5)+x;u=x;v=t;t=o+t;o=w+x}else{w=+h[Ja>>3]*.5;o=+h[Ha>>3]*.5;u=x-o;v=t-w;t=t+w;o=x+o}h[da>>3]=v;h[ea>>3]=u;h[fa>>3]=t;h[ga>>3]=o;do if(r){n=+h[La>>3];h[ia>>3]=+h[ha>>3]/n-v;j=+h[ja>>3];if(!(c[13364]|s&4096)){h[ka>>3]=j/n-u;break}else{h[ka>>3]=-o-j/n;break}}else{n=+h[La>>3];h[ka>>3]=-o-+h[ja>>3]/n;j=+h[ha>>3];if(!(c[13364]|s&4096)){h[va>>3]=j/n-v;break}else{h[va>>3]=-t-j/n;break}}while(0);yu(e);Ru(e,160746);Su(e,158256);do if(F&4259840){if((c[E+208>>2]|0)==0?(b[E+260>>1]&1)==0:0)break;do if(!(F&655360)){l=0;p=0}else{D=F&131072;p=D>>>16^2;l=p+2|0;c[E+264>>2]=p;p=$p(l<<4)|0;c[p>>2]=c[ta>>2];c[p+4>>2]=c[ta+4>>2];c[p+8>>2]=c[ta+8>>2];c[p+12>>2]=c[ta+12>>2];C=p+16|0;c[C>>2]=c[ua>>2];c[C+4>>2]=c[ua+4>>2];c[C+8>>2]=c[ua+8>>2];c[C+12>>2]=c[ua+12>>2];if(D)break;Fp(p)}while(0);if(!(F&8192))vu(e,p,p,l)|0;c[E+272>>2]=p;c[E+268>>2]=l}while(0);if((F&32768|0)!=0?(Ma=c[(c[Ga>>2]|0)+12>>2]|0,(Ma|0)!=0):0)c[E+192>>2]=c[Ma>>2];D=(F&4|0)!=0;do if(!D){l=E+208|0;if((c[l>>2]|0)==0?(b[E+260>>1]&1)==0:0)break;c[Ra>>2]=c[la>>2];c[Ra+4>>2]=c[la+4>>2];c[Ra+8>>2]=c[la+8>>2];c[Ra+12>>2]=c[la+12>>2];c[Ra+16>>2]=c[la+16>>2];c[Ra+20>>2]=c[la+20>>2];c[Ra+24>>2]=c[la+24>>2];c[Ra+28>>2]=c[la+28>>2];Zo(e,Ra);Mu(e,c[l>>2]|0,c[E+228>>2]|0,c[E+244>>2]|0,c[E+212>>2]|0)}while(0);l=zj(f,123413)|0;if(!l){r=1;l=160654}else{C=(a[l>>0]|0)==0;r=C&1;l=C?160654:l}s=c[Ka>>2]|0;p=(a[l>>0]|0)==116;do if(s&256){if(!p){p=r;Da=101;break}if(lA(l,161276)|0){p=r;Da=101}}else{if(!p){p=r;Da=101;break}Da=(lA(l,161276)|0)==0;p=Da?1:r;l=Da?160654:l;Da=101}while(0);do if((Da|0)==101){Da=0;if((s&33554432|0)!=0&(p|0)!=0)break;if(!((cp(l,Oa,Pa)|0)<<24>>24)){Su(e,l);Ru(e,161276);c[Ra>>2]=c[la>>2];c[Ra+4>>2]=c[la+4>>2];c[Ra+8>>2]=c[la+8>>2];c[Ra+12>>2]=c[la+12>>2];c[Ra+16>>2]=c[la+16>>2];c[Ra+20>>2]=c[la+20>>2];c[Ra+24>>2]=c[la+24>>2];c[Ra+28>>2]=c[la+28>>2];Xu(e,Ra,1);break}c[Qa>>2]=0;l=c[Oa>>2]|0;Su(e,l);Ru(e,161276);kp(f,Qa)|0;p=c[ma>>2]|0;r=Gs(f,c[13374]|0,0,0)|0;j=+g[Pa>>2];if(!p)Tu(e,160746,r,j);else Tu(e,p,r,j);C=(c[Qa>>2]|0)>>>1&1|2;c[Ra>>2]=c[la>>2];c[Ra+4>>2]=c[la+4>>2];c[Ra+8>>2]=c[la+8>>2];c[Ra+12>>2]=c[la+12>>2];c[Ra+16>>2]=c[la+16>>2];c[Ra+20>>2]=c[la+20>>2];c[Ra+24>>2]=c[la+24>>2];c[Ra+28>>2]=c[la+28>>2];Xu(e,Ra,C);pB(l)}while(0);l=c[Ga>>2]|0;C=c[(c[l+8>>2]|0)+88>>2]|0;if(C){c[Sa>>2]=1e3;l=aq(16e3)|0;do if((c[C>>2]|0)>0){y=1;A=0;s=1;B=c[C+8>>2]|0;p=0;while(1){r=c[B>>2]|0;b:do switch(r|0){case 1:case 0:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}u=+h[B+8>>3];v=+h[B+24>>3];h[l>>3]=u-v;w=+h[B+16>>3];x=+h[B+32>>3];h[l+8>>3]=w-x;h[l+16>>3]=u+v;h[l+24>>3]=w+x;Vu(e,l,2,(r|0)==0?y:0);r=y;break}case 3:case 2:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}r=B+8|0;l=lp(l,Sa,c[r+4>>2]|0,c[r>>2]|0)|0;Wu(e,l,c[r>>2]|0,(c[B>>2]|0)==2?y:0);r=y;break}case 5:case 4:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}r=B+8|0;l=lp(l,Sa,c[r+4>>2]|0,c[r>>2]|0)|0;Yu(e,l,c[r>>2]|0,0,0,(c[B>>2]|0)==4?y&255:0);r=y;break}case 6:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}r=B+8|0;l=lp(l,Sa,c[r+4>>2]|0,c[r>>2]|0)|0;Zu(e,l,c[r>>2]|0);r=y;break}case 7:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}h[l>>3]=+h[B+8>>3];h[l+8>>3]=+h[B+16>>3];r=c[B+112>>2]|0;c[Ra>>2]=c[l>>2];c[Ra+4>>2]=c[l+4>>2];c[Ra+8>>2]=c[l+8>>2];c[Ra+12>>2]=c[l+12>>2];Qu(e,Ra,r);r=y;break}case 8:{Su(e,c[B+8>>2]|0);r=1;break}case 9:{Ru(e,c[B+8>>2]|0);r=1;break}case 13:{r=B+16|0;if((c[B+8>>2]|0)!=2){y=c[r+36>>2]|0;z=c[y+12>>2]|0;x=+g[y+8>>2];r=~~(+W(+(+h[B+40>>3]-+h[B+24>>3]),+(+h[B+32>>3]-+h[r>>3]))*180.0/3.141592653589793);Su(e,c[y+4>>2]|0);Tu(e,z,r,x);r=2;break b}Xa=c[B+68>>2]|0;y=c[Xa+4>>2]|0;z=c[Xa+12>>2]|0;o=+g[Xa+8>>2];n=+h[B+40>>3];j=+h[r>>3];if(n==j?+h[B+48>>3]==+h[B+24>>3]:0)r=0;else r=~~(+T(+((j-n)/+h[B+32>>3]))*180.0/3.141592653589793);Su(e,y);Tu(e,z,r,o);r=3;break}case 14:{dj(0,123468,Ta)|0;r=y;break}case 12:{if(!s){r=y;s=0;break b}dj(0,123508,Ua)|0;r=y;s=0;break}case 11:{dp(c[B+8>>2]|0)|0;Uu(e,53064);r=y;p=53064;break}default:r=y}while(0);A=A+1|0;if((A|0)>=(c[C>>2]|0))break;else{y=r;B=B+120|0}}if(!p)break;Uu(e,c[(c[e>>2]|0)+336>>2]|0)}while(0);pB(l);l=c[Ga>>2]|0}l=c[l+12>>2]|0;if(l)Tp(e,4,l);if(D){Xa=(c[e>>2]|0)+28|0;c[Xa>>2]=(c[Xa>>2]|0)+1}else{if(!((c[E+208>>2]|0)==0?(b[E+260>>1]&1)==0:0))Nu(e);Xa=(c[e>>2]|0)+28|0;c[Xa>>2]=(c[Xa>>2]|0)+1;bp(e,f,F)}c:do if(!(F&1)){if(F&16){Gu(e);l=Rk(f)|0;if(l)do{p=Lj(f,l)|0;if(p)do{np(e,p);p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0}while((l|0)!=0);Hu(e);Eu(e);l=Rk(f)|0;if(l)do{mp(e,l);l=Sk(f,l)|0}while((l|0)!=0);Fu(e);break}if(!(F&8)){l=Rk(f)|0;if(!l)break;while(1){mp(e,l);p=Lj(f,l)|0;if(p)do{mp(e,c[((c[p>>2]&3|0)==2?p:p+-48|0)+40>>2]|0);np(e,p);p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0;if(!l)break c}}Eu(e);l=Rk(f)|0;if(l)do{p=c[Ga>>2]|0;d:do if((c[p+180>>2]|0)<1)Da=173;else{r=1;while(1){if(ql(c[(c[p+184>>2]|0)+(r<<2)>>2]|0,l)|0)break d;p=c[Ga>>2]|0;if((r|0)>=(c[p+180>>2]|0)){Da=173;break}else r=r+1|0}}while(0);if((Da|0)==173){Da=0;mp(e,l)}l=Sk(f,l)|0}while((l|0)!=0);Fu(e);Gu(e);l=Rk(f)|0;if(l)do{p=Lj(f,l)|0;if(p)do{r=c[Ga>>2]|0;e:do if((c[r+180>>2]|0)<1)Da=181;else{s=1;while(1){if(ql(c[(c[r+184>>2]|0)+(s<<2)>>2]|0,p)|0)break e;r=c[Ga>>2]|0;if((s|0)>=(c[r+180>>2]|0)){Da=181;break}else s=s+1|0}}while(0);if((Da|0)==181){Da=0;np(e,p)}p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0}while((l|0)!=0);Hu(e)}else{Eu(e);l=Rk(f)|0;if(l)do{mp(e,l);l=Sk(f,l)|0}while((l|0)!=0);Fu(e);Gu(e);l=Rk(f)|0;if(l)do{p=Lj(f,l)|0;if(p)do{np(e,p);p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0}while((l|0)!=0);Hu(e)}while(0);if(D)bp(e,f,F);zu(e);if(q){kj(Va);c[E+212>>2]=q}p=(d[L>>0]|d[L+1>>0]<<8|d[L+2>>0]<<16|d[L+3>>0]<<24)+(d[na>>0]|d[na+1>>0]<<8|d[na+2>>0]<<16|d[na+3>>0]<<24)|0;l=(d[J>>0]|d[J+1>>0]<<8|d[J+2>>0]<<16|d[J+3>>0]<<24)+(d[oa>>0]|d[oa+1>>0]<<8|d[oa+2>>0]<<16|d[oa+3>>0]<<24)|0;Xa=G;c[Xa>>2]=p;c[Xa+4>>2]=l;do if((p|0)>-1){if(!((l|0)>-1?(p|0)<(c[I>>2]|0):0)){Da=198;break}if((l|0)>=(c[K>>2]|0))Da=198}else Da=198;while(0);if((Da|0)==198){Da=0;q=c[pa>>2]|0;if(!q){l=c[qa>>2]|0;c[J>>2]=l}else{p=c[sa>>2]|0;c[G>>2]=p}p=(d[ra>>0]|d[ra+1>>0]<<8|d[ra+2>>0]<<16|d[ra+3>>0]<<24)+p|0;l=l+q|0;Xa=G;c[Xa>>2]=p;c[Xa+4>>2]=l;if((p|0)<=-1)break a}}while((l|0)>-1?(p|0)<(c[I>>2]|0):0);while(0);Xa=c[(c[e>>2]|0)+316>>2]|0;if((c[((Xa|0)==0?Ea:Xa)>>2]|0)>1)Bu(e);if(!m){p=0;l=(c[Fa>>2]|0)+1|0}else{p=m+4|0;l=c[m>>2]|0}c[Fa>>2]=l;if((l|0)>(c[Ea>>2]|0))break;else m=p}}xu(e);Uo(e);i=Wa;return}function ap(a){a=a|0;var b=0,d=0,e=0;b=c[13330]|0;if(!b){b=Vi(53324,c[12573]|0)|0;c[13330]=b}if(!(ub[c[b>>2]&31](b,a,4)|0)){d=c[13330]|0;e=c[d>>2]|0;b=oA(a)|0;ub[e&31](d,b,1)|0;b=1}else b=0;return b|0}function bp(e,f,j){e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;W=i;i=i+128|0;w=W+72|0;U=W+64|0;T=W+120|0;Q=W;R=W+112|0;S=W+104|0;x=f+16|0;k=c[x>>2]|0;if((c[k+180>>2]|0)>=1){M=e+156|0;N=(j&4|0)!=0;O=e+16|0;P=Q+32|0;y=Q+16|0;z=Q+8|0;B=Q+24|0;C=Q+48|0;E=Q+40|0;F=Q+56|0;G=(j&8|0)==0;H=R+4|0;I=e+160|0;v=1;while(1){u=c[(c[k+184>>2]|0)+(v<<2)>>2]|0;a:do if((c[M>>2]|0)>=2?(K=Is(u,rj(u,0,125338,0)|0,164137)|0,(op(c[e>>2]|0,c[I>>2]|0,c[M>>2]|0,K)|0)<<24>>24==0):0){if((a[K>>0]|0)==0?(L=Rk(u)|0,(L|0)!=0):0){k=L;do{if((pp(e,u,k)|0)<<24>>24){V=9;break a}k=Sk(u,k)|0}while((k|0)!=0)}}else V=9;while(0);if((V|0)==9){V=0;if(N)bp(e,u,j);q=To(e)|0;c[q+4>>2]=1;c[q+8>>2]=u;c[q+12>>2]=1;q=u+16|0;ip(e,c[(c[q>>2]|0)+12>>2]|0,u);Cu(e,u);r=c[O>>2]|0;s=r+208|0;if(!(c[s>>2]|0))t=(b[r+260>>1]&1)!=0;else t=1;Lv(zj(u,123456)|0);if(!(N|t^1)){p=(c[q>>2]|0)+16|0;c[w>>2]=c[p>>2];c[w+4>>2]=c[p+4>>2];c[w+8>>2]=c[p+8>>2];c[w+12>>2]=c[p+12>>2];c[w+16>>2]=c[p+16>>2];c[w+20>>2]=c[p+20>>2];c[w+24>>2]=c[p+24>>2];c[w+28>>2]=c[p+28>>2];Zo(e,w);Mu(e,c[s>>2]|0,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0)}c[T>>2]=0;k=kp(u,T)|0;if(!k)p=0;else{Uu(e,k);p=c[T>>2]&1}k=d[(c[q>>2]|0)+112>>0]|0;do if(!(k&1)){if(k&2){k=Js(u,c[13365]|0,129696)|0;l=Js(u,c[13366]|0,129704)|0;V=34;break}if(k&8){k=Js(u,c[13369]|0,129712)|0;l=Js(u,c[13370]|0,129720)|0;V=34;break}if(k&4){k=Js(u,c[13367]|0,129728)|0;l=Js(u,c[13368]|0,129736)|0;V=34;break}k=zj(u,161159)|0;if(!k)l=0;else l=(a[k>>0]|0)==0?0:k;k=zj(u,161150)|0;if(!k)k=l;else k=(a[k>>0]|0)==0?l:k;m=zj(u,125224)|0;if(m)l=(a[m>>0]|0)==0?l:m;if(!((p|0)!=0&(l|0)!=0)?(A=zj(u,123413)|0,(A|0)!=0):0){o=(a[A>>0]|0)==0;l=o?l:A;if(!o){V=34;break}}k=(k|0)==0?160746:k;l=(l|0)==0?158256:l;c[R>>2]=0;if(!p){o=l;p=0}else{o=l;l=p;V=36}}else{k=Js(u,c[13365]|0,129680)|0;l=Js(u,c[13366]|0,129688)|0;V=34}while(0);if((V|0)==34){c[R>>2]=0;k=(k|0)==0?160746:k;o=(l|0)==0?158256:l;l=1;V=36}do if((V|0)==36){V=0;if(!((cp(o,R,S)|0)<<24>>24)){Su(e,o);p=l;break}Su(e,c[R>>2]|0);l=c[H>>2]|0;m=Gs(u,c[13374]|0,0,0)|0;n=+g[S>>2];if(!l)Tu(e,160746,m,n);else Tu(e,l,m,n);p=(c[T>>2]|0)>>>1&1|2}while(0);l=c[13373]|0;if(((l|0)!=0?(D=Aj(u,l)|0,(D|0)!=0):0)?(a[D>>0]|0)!=0:0)av(e,+Hs(u,c[13373]|0,1.0,0.0));m=c[T>>2]|0;do if(m&4){l=Gs(u,c[13372]|0,1,0)|0;if(l|p){o=(c[q>>2]|0)+16|0;c[Q>>2]=c[o>>2];c[Q+4>>2]=c[o+4>>2];c[Q+8>>2]=c[o+8>>2];c[Q+12>>2]=c[o+12>>2];o=(c[q>>2]|0)+32|0;c[P>>2]=c[o>>2];c[P+4>>2]=c[o+4>>2];c[P+8>>2]=c[o+8>>2];c[P+12>>2]=c[o+12>>2];h[y>>3]=+h[P>>3];h[B>>3]=+h[z>>3];h[C>>3]=+h[Q>>3];h[F>>3]=+h[E>>3];if(!l)Ru(e,161276);else Ru(e,k);jr(e,Q,4,m,p)}}else{if(!(m&64)){if(Gs(u,c[13372]|0,1,0)|0){Ru(e,k);o=(c[q>>2]|0)+16|0;c[w>>2]=c[o>>2];c[w+4>>2]=c[o+4>>2];c[w+8>>2]=c[o+8>>2];c[w+12>>2]=c[o+12>>2];c[w+16>>2]=c[o+16>>2];c[w+20>>2]=c[o+20>>2];c[w+24>>2]=c[o+24>>2];c[w+28>>2]=c[o+28>>2];Xu(e,w,p);break}if(!p)break;Ru(e,161276);o=(c[q>>2]|0)+16|0;c[w>>2]=c[o>>2];c[w+4>>2]=c[o+4>>2];c[w+8>>2]=c[o+8>>2];c[w+12>>2]=c[o+12>>2];c[w+16>>2]=c[o+16>>2];c[w+20>>2]=c[o+20>>2];c[w+24>>2]=c[o+24>>2];c[w+28>>2]=c[o+28>>2];Xu(e,w,p);break}p=(c[q>>2]|0)+16|0;c[Q>>2]=c[p>>2];c[Q+4>>2]=c[p+4>>2];c[Q+8>>2]=c[p+8>>2];c[Q+12>>2]=c[p+12>>2];p=(c[q>>2]|0)+32|0;c[P>>2]=c[p>>2];c[P+4>>2]=c[p+4>>2];c[P+8>>2]=c[p+8>>2];c[P+12>>2]=c[p+12>>2];h[y>>3]=+h[P>>3];h[B>>3]=+h[z>>3];h[C>>3]=+h[Q>>3];h[F>>3]=+h[E>>3];if(!(Gs(u,c[13372]|0,1,0)|0))Ru(e,161276);else Ru(e,k);if((Yo(e,Q,o,0)|0)>1){c[U>>2]=ok(u)|0;dj(3,123554,U)|0}p=(c[q>>2]|0)+16|0;c[w>>2]=c[p>>2];c[w+4>>2]=c[p+4>>2];c[w+8>>2]=c[p+8>>2];c[w+12>>2]=c[p+12>>2];c[w+16>>2]=c[p+16>>2];c[w+20>>2]=c[p+20>>2];c[w+24>>2]=c[p+24>>2];c[w+28>>2]=c[p+28>>2];Xu(e,w,0)}while(0);pB(c[R>>2]|0);k=c[(c[q>>2]|0)+12>>2]|0;if(k)Tp(e,5,k);if(t){if(N){t=(c[q>>2]|0)+16|0;c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];c[w+16>>2]=c[t+16>>2];c[w+20>>2]=c[t+20>>2];c[w+24>>2]=c[t+24>>2];c[w+28>>2]=c[t+28>>2];Zo(e,w);Mu(e,c[s>>2]|0,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0)}Nu(e)}if(!G?(J=Rk(u)|0,(J|0)!=0):0){l=J;do{mp(e,l);k=Lj(u,l)|0;if(k)do{np(e,k);k=Nj(u,k)|0}while((k|0)!=0);l=Sk(u,l)|0}while((l|0)!=0)}Du(e,f);Uo(e);if(!N)bp(e,u,j)}k=c[x>>2]|0;if((v|0)>=(c[k+180>>2]|0))break;else v=v+1|0}}i=W;return}function cp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;h=l;j=l+4|0;c[j>>2]=0;m=(hp(b,0,j)|0)==0;j=c[j>>2]|0;if((m?(f=c[j>>2]|0,(f|0)>=2):0)?(k=j+8|0,(c[c[k>>2]>>2]|0)!=0):0){if((f|0)>2)dj(0,123569,h)|0;m=aq((pA(b)|0)+1|0)|0;c[d>>2]=m;mA(m,c[c[k>>2]>>2]|0)|0;if(!(c[(c[k>>2]|0)+12>>2]|0))c[d+4>>2]=0;else{m=c[d>>2]|0;m=m+((pA(m)|0)+1)|0;c[d+4>>2]=m;mA(m,c[(c[k>>2]|0)+12>>2]|0)|0}f=c[k>>2]|0;do if(!(a[f+8>>0]|0))if(!(a[f+20>>0]|0)){g[e>>2]=0.0;break}else{g[e>>2]=1.0-+g[f+16>>2];break}else c[e>>2]=c[f+4>>2];while(0);pB(c[j+4>>2]|0);pB(c[k>>2]|0);pB(j);f=1}else{c[d>>2]=0;pB(c[j+4>>2]|0);pB(c[j+8>>2]|0);pB(j);f=0}i=l;return f|0}function dp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+176|0;p=s+24|0;o=s+16|0;n=s+8|0;m=s;q=s+32|0;if(a[123635]|0){gj(53360,128,123636);a[123635]=0}gj(q,128,s+48|0);k=q+4|0;l=q+8|0;e=0;d=0;f=b;a:while(1){g=f;b:while(1){f=a[g>>0]|0;c:do if(!(f<<24>>24))f=0;else while(1){if((Zx(f<<24>>24)|0)==0?(j=a[g>>0]|0,j<<24>>24!=44):0){f=j;break c}g=g+1|0;f=a[g>>0]|0;if(!(f<<24>>24)){f=0;break}}while(0);h=f<<24>>24;switch(h|0){case 0:{r=31;break a}case 41:case 40:break;default:{r=10;break b}}g=g+1|0;switch(h|0){case 41:if(!(d<<24>>24)){r=19;break a}else{d=0;continue b}case 40:if(!(d<<24>>24)){d=1;continue b}else{r=17;break a}default:break b}}d:do if((r|0)==10){r=0;h=f;while(1){switch(h<<24>>24|0){case 0:case 44:case 41:case 40:break d;default:{}}f=c[k>>2]|0;if(f>>>0>=(c[l>>2]|0)>>>0){hj(q,1)|0;f=c[k>>2]|0}c[k>>2]=f+1;a[f>>0]=h;f=g+1|0;h=a[f>>0]|0;g=f}}while(0);if(!(d<<24>>24)){if((e|0)==63){r=22;break}f=c[13341]|0;if(f>>>0>=(c[13342]|0)>>>0){hj(53360,1)|0;f=c[13341]|0}c[13341]=f+1;a[f>>0]=0;c[53064+(e<<2)>>2]=c[13341];e=e+1|0}f=c[k>>2]|0;if(f>>>0>=(c[l>>2]|0)>>>0){hj(q,1)|0;f=c[k>>2]|0}a[f>>0]=0;f=c[q>>2]|0;c[k>>2]=f;jj(53360,f)|0;f=c[13341]|0;if(f>>>0>=(c[13342]|0)>>>0){hj(53360,1)|0;f=c[13341]|0}c[13341]=f+1;a[f>>0]=0;f=g}do if((r|0)==17){c[m>>2]=b;dj(1,123764,m)|0;c[13266]=0;kj(q)}else if((r|0)==19){c[n>>2]=b;dj(1,123798,n)|0;c[13266]=0;kj(q)}else if((r|0)==22){c[o>>2]=b;dj(0,123826,o)|0;c[13329]=0;kj(q)}else if((r|0)==31){if(d<<24>>24){c[p>>2]=b;dj(1,123849,p)|0;c[13266]=0;kj(q);break}c[53064+(e<<2)>>2]=0;kj(q);d=c[13341]|0;if(d>>>0>=(c[13342]|0)>>>0){hj(53360,1)|0;d=c[13341]|0}a[d>>0]=0;c[13341]=c[13340]}while(0);i=s;return 53064}function ep(a){a=a|0;var b=0;b=c[13344]|0;if(!a){if((b|0)>0?(a=b+-1|0,c[13344]=a,(a|0)==0):0)pB(c[13345]|0)}else{c[13344]=b+1;if(!b)c[13345]=oA(yy(1,0)|0)|0}return}function fp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;ma=i;i=i+432|0;Y=ma+384|0;X=ma+368|0;ga=ma+352|0;fa=ma+344|0;ea=ma+320|0;da=ma+296|0;ca=ma+280|0;la=ma+264|0;ka=ma+256|0;ba=ma+240|0;aa=ma+232|0;W=ma+224|0;V=ma+216|0;T=ma+208|0;R=ma+200|0;f=ma+184|0;e=ma+176|0;$=ma+128|0;ha=ma+96|0;ia=ma+64|0;P=ma+32|0;Q=ma;if(a[124827]|0)As();a:do if((xl(d,160878,0,1)|0)!=0?(Z=d+16|0,(c[(c[Z>>2]|0)+8>>2]|0)!=0):0){e=Rk(d)|0;b:do if(e){y=ha+8|0;z=ha+16|0;A=ha+24|0;B=ia+8|0;C=ia+16|0;D=ia+24|0;E=$+8|0;F=$+12|0;G=$+32|0;H=$+4|0;I=Q+8|0;J=Q+16|0;K=Q+24|0;L=$+16|0;M=P+8|0;N=P+16|0;O=P+24|0;c:while(1){f=c[e+16>>2]|0;s=+h[f+16>>3];h[f+48>>3]=s-+h[f+88>>3];t=+h[f+24>>3];u=+h[f+80>>3]*.5;h[f+56>>3]=t-u;h[f+64>>3]=s+ +h[f+96>>3];h[f+72>>3]=t+u;f=Lj(d,e)|0;if(f)do{x=c[(c[f+16>>2]|0)+8>>2]|0;if(x){w=x+4|0;if((c[w>>2]|0)<=0)break c;g=c[x>>2]|0;j=$;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));j=Y;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));qp(ha,Y);n=+h[ha>>3];p=+h[y>>3];o=+h[z>>3];k=+h[A>>3];if((c[w>>2]|0)>0){v=0;do{if((v|0)>0){g=(c[x>>2]|0)+(v*48|0)|0;j=$;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));j=Y;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));qp(ia,Y);r=+h[ia>>3];s=+h[B>>3];t=+h[C>>3];u=+h[D>>3];n=n<r?n:r;p=p<s?p:s;o=o>t?o:t;k=k>u?k:u}g=c[E>>2]|0;if(g){m=c[$>>2]|0;c[X>>2]=c[L>>2];c[X+4>>2]=c[L+4>>2];c[X+8>>2]=c[L+8>>2];c[X+12>>2]=c[L+12>>2];c[Y>>2]=c[m>>2];c[Y+4>>2]=c[m+4>>2];c[Y+8>>2]=c[m+8>>2];c[Y+12>>2]=c[m+12>>2];Fo(P,X,Y,1.0,g);r=+h[P>>3];s=+h[M>>3];t=+h[N>>3];u=+h[O>>3];n=n<r?n:r;p=p<s?p:s;o=o>t?o:t;k=k>u?k:u}g=c[F>>2]|0;if(g){m=(c[$>>2]|0)+((c[H>>2]|0)+-1<<4)|0;c[X>>2]=c[G>>2];c[X+4>>2]=c[G+4>>2];c[X+8>>2]=c[G+8>>2];c[X+12>>2]=c[G+12>>2];c[Y>>2]=c[m>>2];c[Y+4>>2]=c[m+4>>2];c[Y+8>>2]=c[m+8>>2];c[Y+12>>2]=c[m+12>>2];Fo(Q,X,Y,1.0,g);r=+h[Q>>3];s=+h[I>>3];t=+h[J>>3];u=+h[K>>3];n=n<r?n:r;p=p<s?p:s;o=o>t?o:t;k=k>u?k:u}v=v+1|0}while((v|0)<(c[w>>2]|0))}h[x+8>>3]=n;h[x+16>>3]=p;h[x+24>>3]=o;h[x+32>>3]=k}f=Nj(d,f)|0}while((f|0)!=0);e=Sk(d,e)|0;if(!e)break b}Ia(123956,123382,3994,123970)}while(0);c[b+168>>2]=d;f=b+293|0;a[f>>0]=0;e=zj(d,129972)|0;if((e|0)!=0?(c[R>>2]=Y,c[R+4>>2]=X,S=Pz(e,129979,R)|0,(S|0)>0):0){u=+h[Y>>3]*72.0;e=b+208|0;h[e>>3]=u;h[b+200>>3]=u;if((S|0)>1)h[e>>3]=+h[X>>3]*72.0;a[f>>0]=1}f=b+292|0;a[f>>0]=0;e=zj(d,123986)|0;if((e|0)!=0?(c[T>>2]=Y,c[T+4>>2]=X,U=Pz(e,129979,T)|0,(U|0)>0):0){u=+h[Y>>3]*72.0;e=b+224|0;h[e>>3]=u;h[b+216>>3]=u;if((U|0)>1)h[e>>3]=+h[X>>3]*72.0;a[f>>0]=1}e=b+294|0;a[e>>0]=0;f=b+232|0;U=(c[(c[Z>>2]|0)+8>>2]|0)+48|0;c[f>>2]=c[U>>2];c[f+4>>2]=c[U+4>>2];c[f+8>>2]=c[U+8>>2];c[f+12>>2]=c[U+12>>2];f=c[(c[Z>>2]|0)+8>>2]|0;if(+h[f+48>>3]>.001?+h[f+56>>3]>.001:0)a[e>>0]=1;c[b+288>>2]=(a[f+81>>0]|0)==0?0:90;e=b+196|0;c[e>>2]=123990;f=zj(d,123993)|0;if((f|0)!=0?(a[f>>0]|0)!=0:0)c[e>>2]=f;j=b+256|0;e=(c[Z>>2]|0)+16|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];c[j+20>>2]=c[e+20>>2];c[j+24>>2]=c[e+24>>2];c[j+28>>2]=c[e+28>>2];c[13372]=rj(d,0,125290,0)|0;c[13373]=rj(d,0,125275,0)|0;c[b+320>>2]=Js(0,c[13390]|0,131608)|0;h[b+328>>3]=+Hs(0,c[13389]|0,14.0,1.0);c[b+336>>2]=53384;c[b+188>>2]=ok(d)|0;j=b+304|0;e=c[j>>2]|0;if(e){pB(e);c[j>>2]=0}v=b+308|0;e=c[v>>2]|0;if(e){pB(e);c[v>>2]=0}w=b+316|0;e=c[w>>2]|0;if(e){pB(e);c[w>>2]=0}e=zj(d,124001)|0;if(e){g=zj(d,124008)|0;m=b+296|0;c[m>>2]=(g|0)==0?124017:g;g=zj(d,124021)|0;f=b+300|0;g=(g|0)==0?124034:g;c[f>>2]=g;g=tA(c[m>>2]|0,g)|0;if(g){c[V>>2]=a[g>>0];dj(0,124036,V)|0;c[f>>2]=164137}e=oA(e)|0;c[j>>2]=e;e=xA(e,c[m>>2]|0)|0;if(e){f=0;j=0;l=e;while(1){e=f+1|0;if((f|0)<(j|0))g=c[v>>2]|0;else{j=j+128|0;g=c[v>>2]|0;if(!g)g=aq(j<<2)|0;else g=cq(g,j<<2)|0;c[v>>2]=g}c[g+(e<<2)>>2]=l;l=xA(0,c[m>>2]|0)|0;if(!l)break;else f=e}if(e){V=cq(c[v>>2]|0,(e<<2)+8|0)|0;c[v>>2]=V;c[V>>2]=0;c[(c[v>>2]|0)+(f+2<<2)>>2]=0}else e=0}else e=0;m=b+312|0;c[m>>2]=e;l=zj(d,124137)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){e=aq((c[m>>2]<<2)+8|0)|0;f=c[m>>2]|0;do if((f|0)<1)ja=68;else{g=0;j=1;while(1){if((op(b,j,f,l)|0)<<24>>24){g=g+1|0;c[e+(g<<2)>>2]=j}f=c[m>>2]|0;if((j|0)>=(f|0)){f=g;break}else j=j+1|0}if(!f){ja=68;break}c[e>>2]=f;c[e+(f+1<<2)>>2]=(c[m>>2]|0)+1}while(0);if((ja|0)==68){c[W>>2]=l;dj(0,124149,W)|0;pB(e);e=0}c[w>>2]=e}}else{c[v>>2]=0;c[b+312>>2]=1}ep(1);e=on(b)|0;d:do if(e){F=b+56|0;G=b+184|0;H=b+192|0;I=d+60|0;J=b+28|0;E=e;e:while(1){e=c[F>>2]|0;if(!e){c[E+20>>2]=0;e=0}else{c[E+20>>2]=c[e+8>>2];e=c[e+12>>2]|0}c[E+24>>2]=e;c[E+12>>2]=b;c[E+28>>2]=c[G>>2];c[E+620>>2]=59428;c[E+624>>2]=c[14885];if(!(c[(c[Z>>2]|0)+8>>2]|0)){ja=77;break}e=E+52|0;W=su(E,c[e>>2]|0)|0;g=E+56|0;c[g>>2]=W;switch(W|0){case 999:{ja=80;break e}case 21:{ja=E+152|0;c[ja>>2]=c[ja>>2]|1;break}case 24:{ja=E+152|0;c[ja>>2]=c[ja>>2]|520;break}default:{f=zj(d,124303)|0;f:do if(!f)ja=88;else switch(a[f>>0]|0){case 110:if(!(lA(f+1|0,124315)|0)){f=1;break f}else{ja=88;break f}case 101:if(!(lA(f+1|0,124325)|0)){f=16;break f}else{ja=88;break f}default:{ja=88;break f}}while(0);if((ja|0)==88)f=0;ja=E+152|0;c[ja>>2]=c[ja>>2]|f}}f=c[H>>2]|0;g:do if(!f){c[13349]=0;ja=97}else{do if(c[f+152>>2]&32){if(lA(c[e>>2]|0,c[f+52>>2]|0)|0)break;e=c[13349]|0;if(!e){ja=97;break g}c[e+8>>2]=E;c[E+36>>2]=c[(c[13349]|0)+36>>2];ja=99;break g}while(0);uu(f);c[H>>2]=0;c[J>>2]=0;c[13349]=0;ja=97}while(0);do if((ja|0)==97){ja=0;if(tu(E)|0)break;c[H>>2]=E;ja=99}while(0);if((ja|0)==99){ja=0;c[E+8>>2]=0;c[E+104>>2]=59544;f=c[E>>2]|0;do if(!(a[f+292>>0]|0))if((c[g>>2]|0)==300){u=+h[(c[E+68>>2]|0)+8>>3];h[E+248>>3]=u;h[E+240>>3]=u;break}else{h[E+248>>3]=4.0;h[E+240>>3]=4.0;break}else{W=E+240|0;V=f+216|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2]}while(0);h:do if(!(a[f+293>>0]|0))switch(c[g>>2]|0){case 300:{W=E+416|0;V=(c[E+84>>2]|0)+8|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];break h}case 30:case 21:case 22:case 4:case 3:case 2:{h[E+424>>3]=36.0;h[E+416>>3]=36.0;break h}default:{W=E+416|0;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;c[W+12>>2]=0;break h}}else{W=E+416|0;V=f+200|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2]}while(0);e=c[f+192>>2]|0;k=+h[(c[(c[Z>>2]|0)+8>>2]|0)+24>>3];i:do if(!(k!=0.0)){do if(e){if(!(a[e+128>>0]|0))break;W=E+432|0;V=e+112|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];break i}while(0);e=E+432|0;if((c[g>>2]|0)==300){W=(c[E+84>>2]|0)+40|0;c[e>>2]=c[W>>2];c[e+4>>2]=c[W+4>>2];c[e+8>>2]=c[W+8>>2];c[e+12>>2]=c[W+12>>2];break}else{h[E+440>>3]=96.0;h[e>>3]=96.0;break}}else{h[E+440>>3]=k;h[E+432>>3]=k}while(0);r=+h[f+272>>3];t=+h[f+280>>3];s=+h[f+256>>3];u=+h[f+264>>3];q=+h[E+240>>3];k=s-q;h[E+208>>3]=k;n=+h[E+248>>3];p=u-n;h[E+216>>3]=p;q=r+q;h[E+224>>3]=q;n=t+n;h[E+232>>3]=n;k=q-k;p=n-p;h[$>>3]=1.0;e=c[(c[Z>>2]|0)+8>>2]|0;n=+h[e+64>>3];do if(n>.001){o=+h[e+72>>3];if(!(o>.001)){q=1.0;n=k;o=p;break}k=k==0.0?n:k;p=p==0.0?o:p;if(!(n<k|o<p)?!(o>p&(n>k&(a[e+80>>0]|0)!=0)):0){q=1.0;n=k;o=p;break}n=n/k;q=o/p;q=n<q?n:q;h[$>>3]=q;n=k;o=p}else{q=1.0;n=k;o=p}while(0);p=(r+s)*.5;h[ha>>3]=p;k=(t+u)*.5;h[ia>>3]=k;D=E+360|0;c[D>>2]=c[f+288>>2];n=q*n;h[Y>>3]=n;o=q*o;h[X>>3]=o;e=zj(d,124335)|0;if(e){f=oB((pA(e)|0)+1|0)|0;g=oB((pA(e)|0)+1|0)|0;c[ca>>2]=Y;c[ca+4>>2]=X;c[ca+8>>2]=$;c[ca+12>>2]=f;do if((Pz(e,124344,ca)|0)==4){e=Xk(c[I>>2]|0,f,0)|0;if(!e)break;W=c[e+16>>2]|0;h[ha>>3]=+h[W+16>>3];h[ia>>3]=+h[W+24>>3]}else{c[da>>2]=Y;c[da+4>>2]=X;c[da+8>>2]=$;c[da+12>>2]=f;c[da+16>>2]=g;if((Pz(e,124364,da)|0)!=4){c[ea>>2]=Y;c[ea+4>>2]=X;c[ea+8>>2]=$;c[ea+12>>2]=ha;c[ea+16>>2]=ia;Pz(e,124384,ea)|0;break}e=Xk(c[I>>2]|0,f,0)|0;if(!e)break;W=c[e+16>>2]|0;h[ha>>3]=+h[W+16>>3];h[ia>>3]=+h[W+24>>3]}while(0);pB(f);pB(g);n=+h[Y>>3];o=+h[X>>3];q=+h[$>>3];p=+h[ha>>3];k=+h[ia>>3]}V=E+368|0;h[V>>3]=n;W=E+376|0;h[W>>3]=o;C=E+352|0;h[C>>3]=q;h[E+336>>3]=p;h[E+344>>3]=k;j=c[E>>2]|0;s=+h[V>>3];q=+h[W>>3];W=(c[D>>2]|0)==0;r=W?q:s;q=W?s:q;s=+h[E+416>>3];t=+h[E+424>>3];do if(!(a[j+294>>0]|0))ja=143;else{if(!(c[E+152>>2]&32)){ja=143;break}o=+h[j+232>>3]-s*2.0;p=+h[j+240>>3]-t*2.0;do if(o<.0001){c[E+164>>2]=1;e=1}else{e=~~(q/o);f=E+164|0;c[f>>2]=e;if(!(q-o*+(e|0)>.0001))break;e=e+1|0;c[f>>2]=e}while(0);do if(p<.0001){c[E+168>>2]=1;f=1}else{f=~~(r/p);g=E+168|0;c[g>>2]=f;if(!(r-p*+(f|0)>.0001))break;f=f+1|0;c[g>>2]=f}while(0);c[E+204>>2]=_(f,e)|0;k=o;n=p;q=q<o?q:o;r=r<p?r:p}while(0);do if((ja|0)==143){ja=0;do if(!(c[E+68>>2]|0)){k=0.0;n=0.0}else{W=c[E+84>>2]|0;k=+h[W+24>>3]-s*2.0;k=k<0.0?0.0:k;n=+h[W+32>>3]-t*2.0;if(!(n<0.0))break;n=0.0}while(0);c[E+204>>2]=1;c[E+168>>2]=1;c[E+164>>2]=1;k=k<q?q:k;if(!(n<r)){f=1;e=1;break}n=r;f=1;e=1}while(0);A=E+432|0;u=(s*2.0+k)*+h[A>>3]/72.0;c[E+448>>2]=~~(u+(u>=0.0?.5:-.5));B=E+440|0;u=(t*2.0+n)*+h[B>>3]/72.0;c[E+452>>2]=~~(u+(u>=0.0?.5:-.5));y=E+188|0;z=E+180|0;l=E+176|0;m=E+172|0;v=j+196|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;switch(a[c[v>>2]>>0]|0){case 84:{c[l>>2]=f+-1;w=0;g=0;j=0;x=-1;break}case 66:{w=0;g=0;j=0;x=1;break}case 76:{w=1;g=0;j=0;x=0;break}case 82:{c[m>>2]=e+-1;w=-1;g=0;j=0;x=0;break}default:{w=0;g=0;j=0;x=0}}W=z;c[W>>2]=w|g;c[W+4>>2]=j|x;switch(a[(c[v>>2]|0)+1>>0]|0){case 84:{c[l>>2]=f+-1;e=0;f=0;g=0;j=-1;break}case 66:{e=0;f=0;g=0;j=1;break}case 76:{e=1;f=0;g=0;j=0;break}case 82:{c[m>>2]=e+-1;e=-1;f=0;g=0;j=0;break}default:{e=0;f=0;g=0;j=0}}W=y;c[W>>2]=e|f;c[W+4>>2]=g|j;W=e+w|0;if(!((((W|0)>-1?W:0-W|0)|0)==1?(W=j+x|0,(((W|0)>-1?W:0-W|0)|0)==1):0)){W=z;c[W>>2]=0;c[W+4>>2]=1;W=y;c[W>>2]=1;c[W+4>>2]=0;c[fa>>2]=c[v>>2];dj(0,124404,fa)|0}do if(!(a[(c[(c[Z>>2]|0)+8>>2]|0)+82>>0]|0)){k=0.0;n=0.0}else{k=k>q?(k-q)*.5:0.0;if(!(n>r)){n=0.0;break}n=(n-r)*.5}while(0);W=(c[D>>2]|0)==0;p=W?r:q;o=W?q:r;u=(W?s:t)+(W?k:n);h[E+384>>3]=u;q=(W?t:s)+(W?n:k);h[E+392>>3]=q;r=o+u;h[E+400>>3]=r;t=p+q;h[E+408>>3]=t;s=+h[C>>3];h[E+320>>3]=o/s;h[E+328>>3]=p/s;s=+h[A>>3];u=u*s/72.0;l=~~(u+(u>=0.0?.5:-.5));m=E+456|0;c[m>>2]=l;u=+h[B>>3];q=q*u/72.0;e=~~(q+(q>=0.0?.5:-.5));c[E+460>>2]=e;s=r*s/72.0;f=~~(s+(s>=0.0?.5:-.5));g=E+464|0;c[g>>2]=f;u=t*u/72.0;j=~~(u+(u>=0.0?.5:-.5));c[E+468>>2]=j;if(!W){W=m;c[W>>2]=e;c[W+4>>2]=l;W=g;c[W>>2]=j;c[W+4>>2]=f}if(!(c[E+152>>2]&128))$o(E,d);c[13349]=E}E=pn(b)|0;if(!E)break d}if((ja|0)==77){dj(1,124250,aa)|0;ep(0);if(!(a[124827]|0)){e=-1;break a}e=c[22667]|0;la=ok(d)|0;u=+Bs();c[ba>>2]=la;h[ba+8>>3]=u;Bz(e,123927,ba)|0;e=-1;break a}else if((ja|0)==80){c[ka>>2]=c[e>>2];dj(1,124271,ka)|0;ep(0);if(!(a[124827]|0)){e=-1;break a}e=c[22667]|0;ka=ok(d)|0;u=+Bs();c[la>>2]=ka;h[la+8>>3]=u;Bz(e,123927,la)|0;e=-1;break a}}while(0);ep(0);if(!(a[124827]|0))e=0;else{e=c[22667]|0;la=ok(d)|0;u=+Bs();c[ga>>2]=la;h[ga+8>>3]=u;Bz(e,123927,ga)|0;e=0}}else ja=5;while(0);if((ja|0)==5){dj(1,123879,e)|0;if(!(a[124827]|0))e=-1;else{e=c[22667]|0;la=ok(d)|0;u=+Bs();c[f>>2]=la;h[f+8>>3]=u;Bz(e,123927,f)|0;e=-1}}i=ma;return e|0}function gp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+144|0;h=j;g=j+8|0;e=c[b+160>>2]|0;if((e|0)>1?(c[b+152>>2]&64|0)!=0:0){jj(d,c[(c[(c[b>>2]|0)+308>>2]|0)+(e<<2)>>2]|0)|0;f=d+4|0;e=c[f>>2]|0;if(e>>>0>=(c[d+8>>2]|0)>>>0){hj(d,1)|0;e=c[f>>2]|0}c[f>>2]=e+1;a[e>>0]=95}f=c[b+196>>2]|0;e=c[b+200>>2]|0;if((f|0)>0|(e|0)>0){c[h>>2]=f;c[h+4>>2]=e;Oz(g,124816,h)|0;jj(d,g)|0}i=j;return}function hp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+16|0;r=v+8|0;q=v;p=v+12|0;u=$p(12)|0;h=oA(b)|0;a:do if(!d){d=1;f=h;while(1){switch(a[f>>0]|0){case 0:break a;case 58:{d=d+1|0;break}default:{}}f=f+1|0}}while(0);o=u+4|0;c[o>>2]=h;t=$p((d*12|0)+12|0)|0;l=u+8|0;c[l>>2]=t;d=xA(h,133477)|0;b:do if(d){h=0;k=d;j=1.0;d=0;while(1){f=jA(k,59)|0;if(f){w=f+1|0;a[f>>0]=0;m=+$z(w,p);if(m>=0.0?(c[p>>2]|0)==(w|0):1){s=19;break}}else m=0.0;n=m-j;if(n>0.0)if((c[13352]|0)!=0?!(n<1.0e-05&n>-1.0e-05):0){c[q>>2]=b;dj(0,124735,q)|0;c[13352]=0;d=3;m=j}else m=j;j=j-m;if(m>0.0)a[t+(h*12|0)+8>>0]=1;if(a[k>>0]|0)c[t+(h*12|0)>>2]=k;f=h+1|0;g[t+(h*12|0)+4>>2]=m;if(j<1.0e-05&j>-1.0e-05){s=33;break b}k=xA(0,133477)|0;if(!k)break;else h=f}if((s|0)==19){if(!(c[13352]|0))d=1;else{c[r>>2]=b;dj(1,124770,r)|0;c[13352]=0;d=2}pB(c[o>>2]|0);pB(c[l>>2]|0);pB(u);break}if(j>0.0){l=(h|0)>-1;if(l){h=0;k=0;do{h=(+g[t+(k*12|0)+4>>2]==0.0&1)+h|0;k=k+1|0}while((k|0)!=(f|0));if((h|0)>0)if(l){j=j/+(h|0);k=0;do{h=t+(k*12|0)+4|0;if(+g[h>>2]==0.0)g[h>>2]=j;k=k+1|0}while((k|0)!=(f|0));s=33}else s=33;else s=32}else s=32}else s=33}else{f=0;j=1.0;d=0;s=32}while(0);if((s|0)==32){w=t+((f+-1|0)*12|0)+4|0;g[w>>2]=j+ +g[w>>2];s=33}if((s|0)==33){while(1){h=f+-1|0;if((f|0)<=0)break;if(+g[t+(h*12|0)+4>>2]>0.0)break;else f=h}c[t+(f*12|0)>>2]=0;c[u>>2]=f;c[e>>2]=u}i=v;return d|0}function ip(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+144|0;l=m;f=zj(e,134891)|0;h=zj(e,134878)|0;k=zj(e,124573)|0;gj(l,128,m+16|0);if(!d)j=0;else j=c[d>>2]|0;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=zj(e,134896)|0;g=Wo(b,e,l)|0;if(!h)d=0;else d=tp(h,e)|0;Vo(b,j,f,d,k,g,e)|0;pB(d);kj(l);i=m;return}function jp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+16|0;d=c[g>>2]|0;if((c[d+180>>2]|0)>=1){f=1;while(1){e=c[(c[d+184>>2]|0)+(f<<2)>>2]|0;jp(b,e);d=zj(e,161159)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=zj(e,161150)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=zj(e,123413)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=zj(e,125224)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Su(b,d);d=zj(e,125258)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=c[g>>2]|0;if((f|0)>=(c[d+180>>2]|0))break;else f=f+1|0}}return}function kp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;b=zj(b,125234)|0;a:do if((b|0)!=0?(a[b>>0]|0)!=0:0){dp(b)|0;b=c[13266]|0;if(!b){b=0;e=53064}else{f=0;e=53064;while(1){while(1){if(!(lA(b,134460)|0)){b=9;break}if(!(lA(b,129774)|0)){b=12;break}if(!(lA(b,129781)|0)){b=15;break}if(!(lA(b,129756)|0)){b=18;break}e=e+4|0;b=c[e>>2]|0;if(!b){b=f;e=53064;break a}}if((b|0)==9){f=f|1;e=e+4|0}else if((b|0)==12){b=e;do{h=b;b=b+4|0;g=c[b>>2]|0;c[h>>2]=g}while((g|0)!=0);f=f|3}else if((b|0)==15){b=e;do{g=b;b=b+4|0;h=c[b>>2]|0;c[g>>2]=h}while((h|0)!=0);f=f|64}else if((b|0)==18){b=e;do{g=b;b=b+4|0;h=c[b>>2]|0;c[g>>2]=h}while((h|0)!=0);f=f|4}b=c[e>>2]|0;if(!b){b=f;e=53064;break}}}}else{b=0;e=0}while(0);c[d>>2]=b;return e|0}function lp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[b>>2]|0;if((f|0)<(e|0)){f=f<<1;f=(f|0)>(e|0)?f:e;a=cq(a,f<<4)|0;c[b>>2]=f}if((e|0)>0){f=0;do{h[a+(f<<4)>>3]=+h[d+(f*24|0)>>3];h[a+(f<<4)+8>>3]=+h[d+(f*24|0)+8>>3];f=f+1|0}while((f|0)!=(e|0))}return a|0}function mp(d,f){d=d|0;f=f|0;var g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0;g=c[d>>2]|0;z=f+16|0;a:do if(((((c[(c[z>>2]|0)+8>>2]|0)!=0?(pp(d,gl(f)|0,f)|0)<<24>>24!=0:0)?(i=d+256|0,a[k>>0]=a[i>>0],a[k+1>>0]=a[i+1>>0],a[k+2>>0]=a[i+2>>0],a[k+3>>0]=a[i+3>>0],a[k+4>>0]=a[i+4>>0],a[k+5>>0]=a[i+5>>0],a[k+6>>0]=a[i+6>>0],a[k+7>>0]=a[i+7>>0],w=+h[k>>3],i=c[z>>2]|0,y=i+64|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],+h[k>>3]>=w):0)?(y=i+56|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],p=+h[k>>3],y=d+280|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],o=+h[k>>3],y=i+72|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],q=+h[k>>3],y=d+272|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],w=+h[k>>3],y=d+264|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],v=+h[k>>3],y=i+48|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],!(!(o>=p)|(q>=v?!(w>=+h[k>>3]):1))):0)?(j=i+116|0,l=c[g+28>>2]|0,(a[j>>0]|0)!=(l|0)):0){a[j>>0]=l;_u(d,ok(f)|0);g=Is(f,c[13408]|0,164137)|0;if(a[g>>0]|0)_u(d,g);g=Is(f,c[13396]|0,164137)|0;if((a[g>>0]|0)!=0?(dp(g)|0,m=c[13266]|0,(m|0)!=0):0){g=m;i=53068;while(1){if((a[g>>0]|0)==105?(lA(g,157791)|0)==0:0)break a;g=c[i>>2]|0;if(!g)break;else i=i+4|0}}x=c[d+152>>2]|0;y=To(d)|0;c[y+4>>2]=2;c[y+8>>2]=f;c[y+12>>2]=8;do if(x&16777216)if((e[(c[(gl(f)|0)+16>>2]|0)+178>>1]|0)>2){w=+h[(c[(c[z>>2]|0)+132>>2]|0)+16>>3]*72.0;h[y+168>>3]=+(~~(w+(w>=0.0?.5:-.5))|0);break}else{h[y+168>>3]=0.0;break}while(0);ip(d,c[(c[z>>2]|0)+104>>2]|0,f);do if(x&4259840){if((c[y+208>>2]|0)==0?(b[y+260>>1]&1)==0:0)break;l=kr(f)|0;g=c[z>>2]|0;v=+h[g+16>>3];w=+h[g+24>>3];g=Js(f,c[13396]|0,164137)|0;if((a[g>>0]|0)!=0?(dp(g)|0,r=c[13266]|0,(r|0)!=0):0){i=r;j=53064;g=0;do{u=(lA(i,134460)|0)==0;g=u?1:g;j=j+4|0;i=c[j>>2]|0}while((i|0)!=0)}else g=0;b:do if((l&-3|0)==1){s=c[(c[z>>2]|0)+12>>2]|0;m=s+8|0;i=c[m>>2]|0;if((((i|0)==4?(q=+h[s+16>>3],((~~(q+(q>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[s+24>>3]==0.0:0)?+h[s+32>>3]==0.0:0)j=(c[s+4>>2]|g|0)!=0;else j=0;if(!((x&524288|0)==0|((s|0)==0|j))){i=(i|0)<3?1:i;l=s+4|0;r=c[l>>2]|0;r=(r|0)>1?r:1;t=c[s+44>>2]|0;j=zj(f,126330)|0;if(!j)j=0;else j=Yz(j)|0;u=(j+-4|0)>>>0>56?20:j;if(!(c[l>>2]|g)){c[y+264>>2]=0;g=$p(32)|0;i=c[z>>2]|0;p=+h[i+88>>3];h[g>>3]=v-p;q=+h[i+80>>3]*.5;h[g+8>>3]=w-q;h[g+16>>3]=v+p;h[g+24>>3]=w+q;i=2;break}g=c[m>>2]|0;do if((g|0)<3){if(!(+h[s+32>>3]==0.0))break;if(!(+h[s+24>>3]==0.0))break;g=y+264|0;if(c[s>>2]|0){c[g>>2]=1;g=$p(32)|0;h[g>>3]=v;h[g+8>>3]=w;i=(r<<1)+-1|0;h[g+16>>3]=v+ +h[t+(i<<4)>>3];h[g+24>>3]=w+ +h[t+(i<<4)+8>>3];i=2;break b}c[g>>2]=2;g=(r<<1)+-1|0;q=+h[t+(g<<4)>>3];n=+h[t+(g<<4)+8>>3];o=6.283185307179586/+(u|0);g=$p(u<<4)|0;if((u|0)>0){i=0;p=0.0}else{i=u;break b}while(1){h[g+(i<<4)>>3]=q*+Q(+p);h[g+(i<<4)+8>>3]=n*+R(+p);i=i+1|0;if((i|0)==(u|0)){i=0;break}else p=o+p}while(1){t=g+(i<<4)|0;h[t>>3]=v+ +h[t>>3];t=g+(i<<4)+8|0;h[t>>3]=w+ +h[t>>3];i=i+1|0;if((i|0)==(u|0)){i=u;break b}}}while(0);m=_(g,r+-1|0)|0;c[y+264>>2]=2;if((g|0)<(u|0)){g=$p(i<<4)|0;if((i|0)>0)j=0;else break;do{u=j+m|0;h[g+(j<<4)>>3]=v+ +h[t+(u<<4)>>3];h[g+(j<<4)+8>>3]=w+ +h[t+(u<<4)+8>>3];j=j+1|0}while((j|0)!=(i|0))}else{i=(g|0)/(u|0)|0;g=$p(u<<4)|0;if((u|0)>0){j=0;l=0}else{i=u;break}while(1){s=j+m|0;h[g+(l<<4)>>3]=v+ +h[t+(s<<4)>>3];h[g+(l<<4)+8>>3]=w+ +h[t+(s<<4)+8>>3];l=l+1|0;if((l|0)==(u|0)){i=u;break}else j=j+i|0}}}else A=47}else A=47;while(0);if((A|0)==47){c[y+264>>2]=0;g=$p(32)|0;i=c[z>>2]|0;h[g>>3]=v-+h[i+88>>3];q=+h[i+80>>3]*.5;h[g+8>>3]=w-q;h[g+16>>3]=v+ +h[i+96>>3];h[g+24>>3]=w+q;i=2}if(!(x&8192))vu(d,g,g,i)|0;c[y+272>>2]=g;c[y+268>>2]=i}while(0);Lv(zj(f,123456)|0);Iu(d,f);Bb[c[(c[(c[(c[z>>2]|0)+8>>2]|0)+4>>2]|0)+20>>2]&31](d,f);g=c[(c[z>>2]|0)+108>>2]|0;if((g|0)!=0?(a[g+81>>0]|0)!=0:0)Tp(d,10,g);Ju(d);Uo(d)}while(0);return}-function Ff(f,g){f=f|0;g=g|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0;ub=i;i=i+6112|0;Ua=ub+5904|0;j=ub+5896|0;lb=ub+5200|0;ob=ub+4504|0;jb=ub+3808|0;mb=ub+3696|0;hb=ub+3520|0;eb=ub+2824|0;kb=ub+2128|0;nb=ub+1432|0;ib=ub+736|0;Va=ub+704|0;Wa=ub+672|0;_a=ub+640|0;$a=ub+608|0;ab=ub+576|0;bb=ub+544|0;fb=ub+96|0;gb=ub;tb=ub+6084|0;db=ub+6080|0;cb=f+16|0;qb=e[(c[cb>>2]|0)+136>>1]&14;Xa=fb+16|0;c[Xa>>2]=ub+368;Ya=gb+16|0;c[Ya>>2]=ub+192;do if(qb){Za=(qb|0)==4;do if(Za){Gf(f);if(!(a[(c[(c[f+60>>2]|0)+16>>2]|0)+113>>0]&1))P=19;else{dj(0,116497,j)|0;P=19}}else if((qb|0)==8){Gf(f);if(!(a[(c[(c[f+60>>2]|0)+16>>2]|0)+113>>0]&1)){Gt(f,0);p=0;o=0;break}j=c[(c[cb>>2]|0)+192>>2]|0;a:do if(j){m=j;b:while(1){o=m+16|0;j=c[o>>2]|0;do if((a[j+156>>0]|0)==1){l=c[j+112>>2]|0;if(!l){l=c[j+104>>2]|0;if(!l)break;Hf(m);j=l}else{l=c[(c[l+16>>2]|0)+96>>2]|0;if(!l)break b;pb=l+56|0;j=j+16|0;c[pb>>2]=c[j>>2];c[pb+4>>2]=c[j+4>>2];c[pb+8>>2]=c[j+8>>2];c[pb+12>>2]=c[j+12>>2];a[l+81>>0]=1;j=l}_s(f,j);j=c[o>>2]|0}while(0);m=c[j+164>>2]|0;if(!m)break a}Ia(116565,116584,234,116597)}while(0);Gt(f,1);p=0;o=0}else P=19;while(0);if((P|0)==19){vi(f);if(ar()|0)break;p=$p(96)|0;q=c[(c[cb>>2]|0)+248>>2]|0;c[tb+8>>2]=(q|0)/4|0;Ta=tb+12|0;c[Ta>>2]=q;q=$p(512)|0;O=tb+4|0;c[O>>2]=0;c[tb>>2]=0;j=c[cb>>2]|0;Ra=b[j+236>>1]|0;s=Ra<<16>>16;do if(Ra<<16>>16<=(b[j+238>>1]|0)){r=0;l=0;v=q;u=0;q=0;c:while(1){t=c[j+196>>2]|0;w=c[t+(s<<6)>>2]|0;I=w+q|0;q=c[t+(s<<6)+4>>2]|0;t=c[q>>2]|0;if(t){K=+(l|0);l=c[t+16>>2]|0;L=+h[l+16>>3]-+h[l+88>>3];l=~~(K<L?K:L)}d:do if(w){q=c[q+(w+-1<<2)>>2]|0;if(q){K=+(r|0);r=c[q+16>>2]|0;L=+h[r+16>>3]+ +h[r+96>>3];r=~~(K>L?K:L)}l=l+-16|0;r=r+16|0;if((w|0)>0){w=t;x=v;t=0;while(1){y=w+16|0;j=c[y>>2]|0;q=c[j+112>>2]|0;if(q){q=q+16|0;v=c[(c[q>>2]|0)+96>>2]|0;if(!v){P=30;break c}Ra=v+56|0;j=j+16|0;c[Ra>>2]=c[j>>2];c[Ra+4>>2]=c[j+4>>2];c[Ra+8>>2]=c[j+8>>2];c[Ra+12>>2]=c[j+12>>2];a[(c[(c[q>>2]|0)+96>>2]|0)+81>>0]=1;j=c[y>>2]|0}if(a[j+156>>0]|0)if(!((Eb[c[49900>>2]&31](w)|0)<<24>>24))v=x;else{j=c[y>>2]|0;P=35}else P=35;do if((P|0)==35){P=0;q=c[c[j+180>>2]>>2]|0;e:do if(!q)v=x;else{v=x;w=0;while(1){j=c[q+16>>2]|0;f:do switch(a[j+112>>0]|0){case 6:case 4:break;default:{c[j+164>>2]=81;j=u+1|0;c[v+(u<<2)>>2]=q;if(j&127){u=j;break f}v=cq(v,(u<<2)+516|0)|0;u=j}}while(0);w=w+1|0;j=c[y>>2]|0;q=c[(c[j+180>>2]|0)+(w<<2)>>2]|0;if(!q)break e}}while(0);q=c[j+188>>2]|0;do if(q){q=c[q>>2]|0;if(!q)break;else{w=0;j=u}while(1){If(q,2,0,128);u=j+1|0;c[v+(j<<2)>>2]=q;if(!(u&127))v=cq(v,(j<<2)+516|0)|0;w=w+1|0;j=c[y>>2]|0;q=c[(c[j+188>>2]|0)+(w<<2)>>2]|0;if(!q)break;else j=u}}while(0);q=c[j+204>>2]|0;if(q){if(!(a[j+156>>0]|0)){Qa=j+96|0;L=+h[Qa>>3];Ra=j+240|0;h[Qa>>3]=+h[Ra>>3];h[Ra>>3]=L}j=c[q>>2]|0;if(!j)break;else{q=v;v=0}while(1){If(j,0,0,128);w=u+1|0;c[q+(u<<2)>>2]=j;if(!(w&127))q=cq(q,(u<<2)+516|0)|0;v=v+1|0;j=c[(c[(c[y>>2]|0)+204>>2]|0)+(v<<2)>>2]|0;if(!j){v=q;u=w;break}else u=w}}}while(0);t=t+1|0;j=c[cb>>2]|0;q=c[j+196>>2]|0;if((t|0)>=(c[q+(s<<6)>>2]|0))break d;w=c[(c[q+(s<<6)+4>>2]|0)+(t<<2)>>2]|0;x=v}}}else{r=r+16|0;l=l+-16|0}while(0);q=s+1|0;if((s|0)<(b[j+238>>1]|0)){s=q;q=I}else{s=I;o=v;j=u;P=55;break}}if((P|0)==30)Ia(116613,116584,313,116626);else if((P|0)==55){c[tb>>2]=l;c[O>>2]=r;N=q;Sa=j;M=(s<<5)+11520|0;break}}else{o=q;N=s;Sa=0;M=11520}while(0);_z(o,Sa,4,10);c[p+84>>2]=$p(M)|0;c[tb+16>>2]=$p(N<<5)|0;Ra=(qb|0)==2;if(Ra?(m=c[(c[cb>>2]|0)+192>>2]|0,(m|0)!=0):0)do{l=m+16|0;j=c[l>>2]|0;if((a[j+156>>0]|0)==1?(c[j+104>>2]|0)!=0:0){Hf(m);j=c[l>>2]|0}m=c[j+164>>2]|0}while((m|0)!=0);if((Sa|0)>0){T=eb+16|0;U=(qb|0)==10;V=ob+52|0;W=jb+52|0;X=p+80|0;Y=f+60|0;Z=nb+52|0;$=ib+52|0;aa=mb+16|0;ba=mb+8|0;ca=mb+32|0;da=mb+48|0;ea=mb+64|0;fa=mb+64|0;ga=mb+72|0;ha=mb+80|0;ia=mb+96|0;ja=mb+96|0;ka=mb+104|0;la=lb+52|0;ma=ob+52|0;na=eb+48|0;oa=eb+-48|0;pa=jb+16|0;qa=mb+16|0;ra=hb+16|0;sa=jb+48|0;ta=jb+48|0;ua=mb+48|0;va=mb+48|0;wa=mb+-48|0;xa=jb+-48|0;ya=hb+48|0;za=hb+-48|0;Aa=eb+16|0;Ba=eb+52|0;Ca=kb+52|0;Da=p+56|0;Ea=p+69|0;Fa=p+16|0;Ga=p+29|0;Ha=kb+16|0;Ja=gb+48|0;Ka=gb+-48|0;La=fb+48|0;Ma=fb+-48|0;Na=hb+16|0;Oa=hb+56|0;Pa=hb+112|0;Qa=hb+116|0;S=0;while(1){O=o+(S<<2)|0;N=c[O>>2]|0;m=N;while(1){j=c[m+16>>2]|0;l=c[j+172>>2]|0;if(!l){l=m;break}else m=l}j=c[j+116>>2]|0;if(!j)j=l;else while(1){l=c[(c[j+16>>2]|0)+116>>2]|0;if(!l)break;else j=l}M=N+16|0;l=c[M>>2]|0;if(!(a[l+44>>0]|0)){q=(a[l+84>>0]|0)==0?j:N;l=c[q+16>>2]|0}else q=N;m=q+16|0;if(!(c[l+164>>2]&32))l=q;else{l=c[Xa>>2]|0;AB(l|0,c[m>>2]|0,176)|0;w=fb;x=q;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[Xa>>2]=l;c[((c[fb>>2]&3|0)==3?fb:La)+40>>2]=c[((c[q>>2]&3|0)==2?q:q+-48|0)+40>>2];c[((c[fb>>2]&3|0)==2?fb:Ma)+40>>2]=c[((c[q>>2]&3|0)==3?q:q+48|0)+40>>2];w=l+16|0;x=(c[m>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=l+56|0;x=(c[m>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[l+112>>0]=1;c[l+116>>2]=q;l=fb}m=S+1|0;g:do if((m|0)<(Sa|0)){I=l+16|0;l=1;while(1){v=o+(m<<2)|0;t=c[v>>2]|0;s=t;while(1){q=c[s+16>>2]|0;r=c[q+172>>2]|0;if(!r){r=s;break}else s=r}q=c[q+116>>2]|0;if(!q)q=r;else while(1){r=c[(c[q+16>>2]|0)+116>>2]|0;if(!r)break;else q=r}if((j|0)!=(q|0)){Q=l;R=m;break g}if(!(a[(c[M>>2]|0)+113>>0]|0)){u=t+16|0;q=c[u>>2]|0;if(!(a[q+44>>0]|0)){s=(a[q+84>>0]|0)==0?j:t;q=c[s+16>>2]|0}else s=t;r=s+16|0;if(c[q+164>>2]&32){q=c[Ya>>2]|0;AB(q|0,c[r>>2]|0,176)|0;w=gb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[Ya>>2]=q;c[((c[gb>>2]&3|0)==3?gb:Ja)+40>>2]=c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2];c[((c[gb>>2]&3|0)==2?gb:Ka)+40>>2]=c[((c[s>>2]&3|0)==3?s:s+48|0)+40>>2];w=q+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=q+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[q+112>>0]=1;c[q+116>>2]=s}s=c[I>>2]|0;R=q+16|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];A=+h[k>>3];R=q+24|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];B=+h[k>>3];R=a[q+44>>0]|0;r=s+16|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];C=+h[k>>3];r=s+24|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];D=+h[k>>3];r=a[s+44>>0]|0;if(!(R<<24>>24))r=r<<24>>24!=0&1;else{if(!(r<<24>>24)){Q=l;R=m;break g}if(~~(C-A)){Q=l;R=m;break g}r=~~(D-B)}if(r){Q=l;R=m;break g}R=q+56|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];C=+h[k>>3];R=q+64|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];D=+h[k>>3];R=a[q+84>>0]|0;q=s+56|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];A=+h[k>>3];q=s+64|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];B=+h[k>>3];q=a[s+84>>0]|0;if(!(R<<24>>24))q=q<<24>>24!=0&1;else{if(!(q<<24>>24)){Q=l;R=m;break g}if(~~(A-C)){Q=l;R=m;break g}q=~~(B-D)}if(q){Q=l;R=m;break g}R=c[M>>2]|0;if((c[R+164>>2]&15|0)==2?(c[R+96>>2]|0)!=(c[(c[u>>2]|0)+96>>2]|0):0){Q=l;R=m;break g}if(c[(c[(c[v>>2]|0)+16>>2]|0)+164>>2]&64){Q=l;R=m;break g}}l=l+1|0;m=m+1|0;if((m|0)>=(Sa|0)){Q=l;R=m;break}}}else{Q=1;R=m}while(0);h:do if(Za){if((Q|0)==1)q=db;else q=$p(Q<<2)|0;m=c[O>>2]|0;while(1){j=c[m+16>>2]|0;l=c[j+172>>2]|0;if(!l){l=m;break}else m=l}j=c[j+116>>2]|0;if(!j)j=l;else while(1){l=c[(c[j+16>>2]|0)+116>>2]|0;if(!l)break;else j=l}c[q>>2]=j;j=(Q|0)>1;if(j)l=1;else{er(f,q,Q,4,49896);break}do{c[q+(l<<2)>>2]=c[o+(l+S<<2)>>2];l=l+1|0}while((l|0)!=(Q|0));er(f,q,Q,4,49896);if(j)pB(q)}else{j=c[N>>2]&3;P=c[((j|0)==3?N:N+48|0)+40>>2]|0;j=c[((j|0)==2?N:N+-48|0)+40>>2]|0;l=c[P+16>>2]|0;q=c[l+232>>2]|0;if((P|0)==(j|0)){m=c[cb>>2]|0;do if((q|0)==(b[m+238>>1]|0))if((q|0)>0){j=~~(+h[(c[(c[c[(c[m+196>>2]|0)+(q+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[l+24>>3]);break}else{j=~~+h[l+80>>3];break}else{A=+h[l+24>>3];j=c[m+196>>2]|0;if((q|0)==(b[m+236>>1]|0)){j=~~(A-+h[(c[(c[c[j+(q+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);break}else{P=~~(+h[(c[(c[c[j+(q+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-A);j=~~(A-+h[(c[(c[c[j+(q+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);j=(P|0)<(j|0)?P:j;break}}while(0);fs(p,o,S,Q,+(c[Ta>>2]|0),+((j|0)/2|0|0),49896);if((Q|0)>0)l=0;else break;while(1){j=c[(c[(c[o+(l+S<<2)>>2]|0)+16>>2]|0)+96>>2]|0;if(j)_s(f,j);l=l+1|0;if((l|0)==(Q|0))break h}}if((q|0)==(c[(c[j+16>>2]|0)+232>>2]|0)){c[T>>2]=hb;l=c[O>>2]|0;m=l+16|0;j=c[m>>2]|0;q=a[j+113>>0]|0;if(!(c[j+164>>2]&32))u=l;else{AB(hb|0,j|0,176)|0;w=eb;x=l;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[T>>2]=hb;c[((c[eb>>2]&3|0)==3?eb:na)+40>>2]=c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2];c[((c[eb>>2]&3|0)==2?eb:oa)+40>>2]=c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2];w=Na;x=(c[m>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=Oa;x=(c[m>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[Pa>>0]=1;c[Qa>>2]=l;u=eb}i:do if((Q|0)>1){j=1;while(1){if(a[(c[(c[o+(j+S<<2)>>2]|0)+16>>2]|0)+113>>0]|0){P=131;break i}j=j+1|0;if((j|0)>=(Q|0)){P=130;break}}}else P=130;while(0);j:do if((P|0)==130){P=0;if(q<<24>>24){P=131;break}q=u+16|0;j=c[q>>2]|0;m=c[j+96>>2]|0;if(m){s=c[u>>2]&3;r=c[((s|0)==3?u:u+48|0)+40>>2]|0;t=u+-48|0;s=c[((s|0)==2?u:t)+40>>2]|0;j=c[j+172>>2]|0;while(1){l=c[(c[j+16>>2]|0)+172>>2]|0;if(!l)break;else j=l}l=m+56|0;m=(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)+16|0;j=(c[m>>2]|0)+16|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];j=c[q>>2]|0;l=c[j+96>>2]|0;a[l+81>>0]=1;if(!Ra){O=c[m>>2]|0;J=+h[O+16>>3];G=J-+h[O+88>>3];J=J+ +h[O+96>>3];K=+h[O+24>>3];H=K+ +h[O+80>>3]*.5;O=c[r+16>>2]|0;S=c[O+232>>2]|0;Q=c[(c[cb>>2]|0)+196>>2]|0;S=~~(+(~~(K-+h[Q+(S<<6)+16>>3]-+h[O+24>>3]+ +h[Q+(S<<6)+24>>3])|0)/6.0);K=H-((S|0)<5?5.0:+(S|0));Lf(f,tb,p,r,u,lb,1);Lf(f,tb,p,s,u,ob,0);S=c[la>>2]|0;Q=S+-1|0;L=+h[lb+56+(Q<<5)>>3];h[167]=L;h[168]=+h[lb+56+(Q<<5)+24>>3];h[169]=G;h[170]=K;h[171]=L;h[172]=K;Q=(c[ma>>2]|0)+-1|0;L=+h[ob+56+(Q<<5)+16>>3];h[173]=L;h[174]=H;h[175]=J;h[178]=K;h[176]=+h[ob+56+(Q<<5)+24>>3];h[177]=L;if((S|0)>0){j=0;do{S=lb+56+(j<<5)|0;c[Ua>>2]=c[S>>2];c[Ua+4>>2]=c[S+4>>2];c[Ua+8>>2]=c[S+8>>2];c[Ua+12>>2]=c[S+12>>2];c[Ua+16>>2]=c[S+16>>2];c[Ua+20>>2]=c[S+20>>2];c[Ua+24>>2]=c[S+24>>2];c[Ua+28>>2]=c[S+28>>2];bs(p,Ua);j=j+1|0}while((j|0)<(c[la>>2]|0))};c[Ua>>2]=c[334];c[Ua+4>>2]=c[335];c[Ua+8>>2]=c[336];c[Ua+12>>2]=c[337];c[Ua+16>>2]=c[338];c[Ua+20>>2]=c[339];c[Ua+24>>2]=c[340];c[Ua+28>>2]=c[341];bs(p,Ua);c[Ua>>2]=c[342];c[Ua+4>>2]=c[343];c[Ua+8>>2]=c[344];c[Ua+12>>2]=c[345];c[Ua+16>>2]=c[346];c[Ua+20>>2]=c[347];c[Ua+24>>2]=c[348];c[Ua+28>>2]=c[349];bs(p,Ua);c[Ua>>2]=c[350];c[Ua+4>>2]=c[351];c[Ua+8>>2]=c[352];c[Ua+12>>2]=c[353];c[Ua+16>>2]=c[354];c[Ua+20>>2]=c[355];c[Ua+24>>2]=c[356];c[Ua+28>>2]=c[357];bs(p,Ua);j=c[ma>>2]|0;if((j|0)>0)do{S=j;j=j+-1|0;Q=ob+56+(j<<5)|0;c[Ua>>2]=c[Q>>2];c[Ua+4>>2]=c[Q+4>>2];c[Ua+8>>2]=c[Q+8>>2];c[Ua+12>>2]=c[Q+12>>2];c[Ua+16>>2]=c[Q+16>>2];c[Ua+20>>2]=c[Q+20>>2];c[Ua+24>>2]=c[Q+24>>2];c[Ua+28>>2]=c[Q+28>>2];bs(p,Ua)}while((S|0)>1);if(U)l=cr(p,jb)|0;else l=dr(p,jb)|0;j=c[jb>>2]|0;if(j)P=145}else{P=c[r+16>>2]|0;S=j+16|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];D=+h[k>>3];S=j+24|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];F=+h[k>>3];S=P+16|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];E=+h[k>>3];P=P+24|0;a[k>>0]=a[P>>0];a[k+1>>0]=a[P+1>>0];a[k+2>>0]=a[P+2>>0];a[k+3>>0]=a[P+3>>0];a[k+4>>0]=a[P+4>>0];a[k+5>>0]=a[P+5>>0];a[k+6>>0]=a[P+6>>0];a[k+7>>0]=a[P+7>>0];F=F+ +h[k>>3];P=c[s+16>>2]|0;S=j+56|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];J=+h[k>>3];j=j+64|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];L=+h[k>>3];j=P+16|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];K=+h[k>>3];j=P+24|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];L=L+ +h[k>>3];G=+h[l+56>>3];H=+h[l+64>>3]-+h[l+32>>3]*.5;h[mb>>3]=D+E;h[ba>>3]=F;c[aa>>2]=c[mb>>2];c[aa+4>>2]=c[mb+4>>2];c[aa+8>>2]=c[mb+8>>2];c[aa+12>>2]=c[mb+12>>2];h[fa>>3]=G;h[ga>>3]=H;c[da>>2]=c[ea>>2];c[da+4>>2]=c[ea+4>>2];c[da+8>>2]=c[ea+8>>2];c[da+12>>2]=c[ea+12>>2];c[ca>>2]=c[ea>>2];c[ca+4>>2]=c[ea+4>>2];c[ca+8>>2]=c[ea+8>>2];c[ca+12>>2]=c[ea+12>>2];h[ja>>3]=J+K;h[ka>>3]=L;c[ha>>2]=c[ia>>2];c[ha+4>>2]=c[ia+4>>2];c[ha+8>>2]=c[ia+8>>2];c[ha+12>>2]=c[ia+12>>2];c[jb>>2]=7;j=7;l=mb;P=145}if((P|0)==145){P=0;as(u,c[((c[u>>2]&3|0)==2?u:t)+40>>2]|0,l,j,49896)}break}if(Ra){O=c[u>>2]&3;Mf(c[((O|0)==3?u:u+48|0)+40>>2]|0,c[((O|0)==2?u:u+-48|0)+40>>2]|0,o,S,Q,2);break}l=a[j+49>>0]|0;j=a[j+89>>0]|0;do if(!(l<<24>>24==1&j<<24>>24!=4)){if(l<<24>>24!=4&j<<24>>24==1)break;q=c[u>>2]&3;m=c[((q|0)==3?u:u+48|0)+40>>2]|0;q=c[((q|0)==2?u:u+-48|0)+40>>2]|0;j=c[m+16>>2]|0;l=c[j+232>>2]|0;if((l|0)>0){O=c[(c[cb>>2]|0)+196>>2]|0;N=((d[(c[(c[Y>>2]|0)+16>>2]|0)+113>>0]|-2)^1)+l|0;A=+h[(c[(c[c[O+(N<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[O+(N<<6)+16>>3]-+h[j+24>>3]-+h[O+(l<<6)+24>>3]}else A=+(c[(c[cb>>2]|0)+252>>2]|0);L=+(Q+1|0);B=+(c[Ta>>2]|0)/L;A=A/L;Lf(f,tb,p,m,u,nb,1);Lf(f,tb,p,q,u,ib,0);if((Q|0)>0)q=0;else break j;while(1){m=c[o+(q+S<<2)>>2]|0;O=c[Z>>2]|0;N=O+-1|0;G=+h[nb+56+(N<<5)>>3];H=+h[nb+56+(N<<5)+16>>3];L=+h[nb+56+(N<<5)+24>>3];h[167]=G;h[168]=L;q=q+1|0;J=+(q|0);K=B*J;h[169]=K+H;L=A*J+L;h[170]=L;h[171]=G;h[172]=L;N=(c[$>>2]|0)+-1|0;G=+h[ib+56+(N<<5)+16>>3];h[173]=G;h[174]=A+L;J=+h[ib+56+(N<<5)>>3];H=+h[ib+56+(N<<5)+24>>3];h[177]=G;h[176]=H;h[175]=J-K;h[178]=L;if((O|0)>0){j=0;do{O=nb+56+(j<<5)|0;c[Ua>>2]=c[O>>2];c[Ua+4>>2]=c[O+4>>2];c[Ua+8>>2]=c[O+8>>2];c[Ua+12>>2]=c[O+12>>2];c[Ua+16>>2]=c[O+16>>2];c[Ua+20>>2]=c[O+20>>2];c[Ua+24>>2]=c[O+24>>2];c[Ua+28>>2]=c[O+28>>2];bs(p,Ua);j=j+1|0}while((j|0)<(c[Z>>2]|0))};c[Ua>>2]=c[334];c[Ua+4>>2]=c[335];c[Ua+8>>2]=c[336];c[Ua+12>>2]=c[337];c[Ua+16>>2]=c[338];c[Ua+20>>2]=c[339];c[Ua+24>>2]=c[340];c[Ua+28>>2]=c[341];bs(p,Ua);c[Ua>>2]=c[342];c[Ua+4>>2]=c[343];c[Ua+8>>2]=c[344];c[Ua+12>>2]=c[345];c[Ua+16>>2]=c[346];c[Ua+20>>2]=c[347];c[Ua+24>>2]=c[348];c[Ua+28>>2]=c[349];bs(p,Ua);c[Ua>>2]=c[350];c[Ua+4>>2]=c[351];c[Ua+8>>2]=c[352];c[Ua+12>>2]=c[353];c[Ua+16>>2]=c[354];c[Ua+20>>2]=c[355];c[Ua+24>>2]=c[356];c[Ua+28>>2]=c[357];bs(p,Ua);j=c[$>>2]|0;if((j|0)>0)do{O=j;j=j+-1|0;N=ib+56+(j<<5)|0;c[Ua>>2]=c[N>>2];c[Ua+4>>2]=c[N+4>>2];c[Ua+8>>2]=c[N+8>>2];c[Ua+12>>2]=c[N+12>>2];c[Ua+16>>2]=c[N+16>>2];c[Ua+20>>2]=c[N+20>>2];c[Ua+24>>2]=c[N+24>>2];c[Ua+28>>2]=c[N+28>>2];bs(p,Ua)}while((O|0)>1);if(U)l=cr(p,kb)|0;else l=dr(p,kb)|0;j=c[kb>>2]|0;if(!j)break j;as(m,c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0,l,j,49896);c[X>>2]=0;if((q|0)>=(Q|0))break j}}while(0);r=c[u>>2]&3;q=c[((r|0)==3?u:u+48|0)+40>>2]|0;r=c[((r|0)==2?u:u+-48|0)+40>>2]|0;j=c[q+16>>2]|0;l=c[j+232>>2]|0;m=c[cb>>2]|0;if((l|0)<(b[m+238>>1]|0)){N=c[m+196>>2]|0;O=l+1|0;A=+h[j+24>>3]-+h[N+(l<<6)+32>>3]-(+h[(c[(c[c[N+(O<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[N+(O<<6)+40>>3])}else A=+(c[m+252>>2]|0);L=+(Q+1|0);B=+(c[Ta>>2]|0)/L;A=A/L;Nf(f,tb,p,q,u,ob,1);Nf(f,tb,p,r,u,jb,0);k:do if((Q|0)>0){q=0;do{m=c[o+(q+S<<2)>>2]|0;O=c[V>>2]|0;N=O+-1|0;G=+h[ob+56+(N<<5)>>3];J=+h[ob+56+(N<<5)+8>>3];H=+h[ob+56+(N<<5)+16>>3];h[167]=G;h[170]=J;q=q+1|0;L=+(q|0);K=B*L;h[169]=K+H;L=J-A*L;h[168]=L;h[171]=G;h[174]=L;N=(c[W>>2]|0)+-1|0;G=+h[jb+56+(N<<5)+16>>3];h[173]=G;h[172]=L-A;J=+h[jb+56+(N<<5)>>3];H=+h[jb+56+(N<<5)+8>>3];h[177]=G;h[178]=H;h[175]=J-K;h[176]=L;if((O|0)>0){j=0;do{O=ob+56+(j<<5)|0;c[Ua>>2]=c[O>>2];c[Ua+4>>2]=c[O+4>>2];c[Ua+8>>2]=c[O+8>>2];c[Ua+12>>2]=c[O+12>>2];c[Ua+16>>2]=c[O+16>>2];c[Ua+20>>2]=c[O+20>>2];c[Ua+24>>2]=c[O+24>>2];c[Ua+28>>2]=c[O+28>>2];bs(p,Ua);j=j+1|0}while((j|0)<(c[V>>2]|0))};c[Ua>>2]=c[334];c[Ua+4>>2]=c[335];c[Ua+8>>2]=c[336];c[Ua+12>>2]=c[337];c[Ua+16>>2]=c[338];c[Ua+20>>2]=c[339];c[Ua+24>>2]=c[340];c[Ua+28>>2]=c[341];bs(p,Ua);c[Ua>>2]=c[342];c[Ua+4>>2]=c[343];c[Ua+8>>2]=c[344];c[Ua+12>>2]=c[345];c[Ua+16>>2]=c[346];c[Ua+20>>2]=c[347];c[Ua+24>>2]=c[348];c[Ua+28>>2]=c[349];bs(p,Ua);c[Ua>>2]=c[350];c[Ua+4>>2]=c[351];c[Ua+8>>2]=c[352];c[Ua+12>>2]=c[353];c[Ua+16>>2]=c[354];c[Ua+20>>2]=c[355];c[Ua+24>>2]=c[356];c[Ua+28>>2]=c[357];bs(p,Ua);j=c[W>>2]|0;if((j|0)>0)do{O=j;j=j+-1|0;N=jb+56+(j<<5)|0;c[Ua>>2]=c[N>>2];c[Ua+4>>2]=c[N+4>>2];c[Ua+8>>2]=c[N+8>>2];c[Ua+12>>2]=c[N+12>>2];c[Ua+16>>2]=c[N+16>>2];c[Ua+20>>2]=c[N+20>>2];c[Ua+24>>2]=c[N+24>>2];c[Ua+28>>2]=c[N+28>>2];bs(p,Ua)}while((O|0)>1);if(U)l=cr(p,lb)|0;else l=dr(p,lb)|0;j=c[lb>>2]|0;if(!j)break k;as(m,c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0,l,j,49896);c[X>>2]=0}while((q|0)<(Q|0))}while(0)}while(0);if((P|0)==131)Kf(f,o,S,Q,u,qb);break}c[pa>>2]=Ua;c[qa>>2]=lb;c[ra>>2]=ob;if(!(c[12477]|0)){c[12477]=aq(32e3)|0;c[12478]=aq(32e3)|0;c[12479]=2e3;c[12480]=2e3}s=c[O>>2]|0;P=c[s>>2]&3;m=s+48|0;q=s+-48|0;P=(c[(c[(c[((P|0)==3?s:m)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((P|0)==2?s:q)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;r=s+16|0;do if((((P|0)>-1?P:0-P|0)|0)>1){AB(Ua|0,c[r>>2]|0,176)|0;w=jb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=sa;x=m;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[pa>>2]=Ua;j=c[r>>2]|0;if(!(c[j+164>>2]&32)){AB(lb|0,j|0,176)|0;w=mb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[qa>>2]=lb;c[((c[jb>>2]&3|0)==3?jb:ta)+40>>2]=c[((c[s>>2]&3|0)==3?s:m)+40>>2];w=ua;x=m;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));m=s}else{l=c[qa>>2]|0;AB(l|0,j|0,176)|0;w=mb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[qa>>2]=l;c[((c[mb>>2]&3|0)==3?mb:va)+40>>2]=c[((c[s>>2]&3|0)==2?s:q)+40>>2];c[((c[mb>>2]&3|0)==2?mb:wa)+40>>2]=c[((c[s>>2]&3|0)==3?s:m)+40>>2];w=l+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=(c[qa>>2]|0)+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=c[qa>>2]|0;a[w+112>>0]=1;c[w+116>>2]=s;c[((c[jb>>2]&3|0)==3?jb:ta)+40>>2]=c[((c[s>>2]&3|0)==2?s:q)+40>>2];w=(c[pa>>2]|0)+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));m=s}while(1){j=c[m+16>>2]|0;l=c[j+172>>2]|0;if(!l){l=m;break}else m=l}j=c[j+116>>2]|0;if(!j)j=l;else while(1){l=c[(c[j+16>>2]|0)+116>>2]|0;if(!l)break;else j=l}while(1){l=c[(c[j+16>>2]|0)+172>>2]|0;if(!l)break;else j=l}c[((c[jb>>2]&3|0)==2?jb:xa)+40>>2]=c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2];O=c[pa>>2]|0;a[O+84>>0]=0;a[O+112>>0]=1;N=O+56|0;c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;c[O+116>>2]=s;O=jb;N=1}else{j=c[r>>2]|0;if(!(c[j+164>>2]&32)){O=s;N=0;break}l=c[pa>>2]|0;AB(l|0,j|0,176)|0;w=jb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[pa>>2]=l;c[((c[jb>>2]&3|0)==3?jb:ta)+40>>2]=c[((c[s>>2]&3|0)==2?s:q)+40>>2];c[((c[jb>>2]&3|0)==2?jb:xa)+40>>2]=c[((c[s>>2]&3|0)==3?s:m)+40>>2];w=l+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=(c[pa>>2]|0)+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));O=c[pa>>2]|0;a[O+112>>0]=1;c[O+116>>2]=s;O=jb;N=0}while(0);l:do if(Ra){t=c[12477]|0;l=O+16|0;j=c[l>>2]|0;if(!(a[j+112>>0]|0))m=O;else do{m=c[j+116>>2]|0;l=m+16|0;j=c[l>>2]|0}while((a[j+112>>0]|0)!=0);r=c[m>>2]&3;s=c[((r|0)==2?m:m+-48|0)+40>>2]|0;r=c[((r|0)==3?m:m+48|0)+40>>2]|0;q=c[s+16>>2]|0;m=c[r+16>>2]|0;P=(c[q+232>>2]|0)-(c[m+232>>2]|0)|0;switch(((P|0)>-1?P:0-P|0)|0){case 1:{P=206;break l}case 2:{if(a[(c[(c[Y>>2]|0)+16>>2]|0)+113>>0]&1){P=206;break l}break}default:{}}P=(c[((c[O>>2]&3|0)==3?O:O+48|0)+40>>2]|0)==(r|0);N=j+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];G=+h[k>>3];N=j+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];D=+h[k>>3];N=m+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];H=+h[k>>3];N=m+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];B=+h[k>>3];N=j+56|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];E=+h[k>>3];N=j+64|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];C=+h[k>>3];N=q+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];F=+h[k>>3];N=q+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];A=+h[k>>3];if(P){r=s;L=C+A;J=D+B;K=G+H;E=E+F}else{L=D+B;J=C+A;K=E+F;E=G+H}j=c[j+96>>2]|0;if(!j){l=t+16|0;h[t>>3]=K;h[t+8>>3]=J;c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[l+12>>2]=c[t+12>>2];l=t+48|0;P=t+32|0;h[t+32>>3]=E;h[t+40>>3]=L;c[l>>2]=c[P>>2];c[l+4>>2]=c[P+4>>2];c[l+8>>2]=c[P+8>>2];c[l+12>>2]=c[P+12>>2];l=4;P=270;break}H=+h[j+24>>3];B=+h[j+32>>3];P=(c[(c[(gl(s)|0)+16>>2]|0)+116>>2]&1|0)==0;D=P?B:H;N=c[(c[l>>2]|0)+96>>2]|0;A=+h[N+56>>3];C=+h[N+64>>3];B=(P?H:B)*.5;if((~~((L-J)*(A-K)-(E-K)*(C-J))|0)>0){B=A+B;A=C-D*.5}else{B=A-B;A=C+D*.5}l=t+16|0;h[t>>3]=K;h[t+8>>3]=J;c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[l+12>>2]=c[t+12>>2];l=t+32|0;N=t+48|0;P=t+64|0;h[t+64>>3]=B;h[t+72>>3]=A;c[N>>2]=c[P>>2];c[N+4>>2]=c[P+4>>2];c[N+8>>2]=c[P+8>>2];c[N+12>>2]=c[P+12>>2];c[l>>2]=c[P>>2];c[l+4>>2]=c[P+4>>2];c[l+8>>2]=c[P+8>>2];c[l+12>>2]=c[P+12>>2];l=t+80|0;P=t+96|0;h[t+96>>3]=E;h[t+104>>3]=L;c[l>>2]=c[P>>2];c[l+4>>2]=c[P+4>>2];c[l+8>>2]=c[P+8>>2];c[l+12>>2]=c[P+12>>2];l=7;P=270}else P=206;while(0);m:do if((P|0)==206){P=0;q=c[O>>2]&3;t=c[((q|0)==3?O:O+48|0)+40>>2]|0;q=c[((q|0)==2?O:O+-48|0)+40>>2]|0;Of(ib,f,tb,t,0,O);c[eb>>2]=c[ib>>2];c[eb+4>>2]=c[ib+4>>2];c[eb+8>>2]=c[ib+8>>2];c[eb+12>>2]=c[ib+12>>2];c[eb+16>>2]=c[ib+16>>2];c[eb+20>>2]=c[ib+20>>2];c[eb+24>>2]=c[ib+24>>2];c[eb+28>>2]=c[ib+28>>2];C=+h[eb>>3];D=+h[Aa>>3];l=t+16|0;j=c[l>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);cs(p,O,1,eb,j);j=c[Ba>>2]|0;B=+h[eb+56+(j+-1<<5)+8>>3];M=c[l>>2]|0;A=+h[M+24>>3]-+h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[M+232>>2]<<6)+16>>3];if(C<D&A<B){c[Ba>>2]=j+1;h[eb+56+(j<<5)>>3]=C;h[eb+56+(j<<5)+8>>3]=A;h[eb+56+(j<<5)+16>>3]=D;h[eb+56+(j<<5)+24>>3]=B}m=q;j=m+16|0;n:do if((a[(c[j>>2]|0)+156>>0]|0)==1){l=0;M=O;r=-1;s=0;while(1){I=q;y=0;u=M;w=r;q=0;while(1){if((Eb[c[49900>>2]&31](m)|0)<<24>>24){q=I;r=y;x=M;j=t;break n}x=y|1;v=1336+(y<<5)|0;Pf(Va,tb,f,c[(c[t+16>>2]|0)+232>>2]|0);c[v>>2]=c[Va>>2];c[v+4>>2]=c[Va+4>>2];c[v+8>>2]=c[Va+8>>2];c[v+12>>2]=c[Va+12>>2];c[v+16>>2]=c[Va+16>>2];c[v+20>>2]=c[Va+20>>2];c[v+24>>2]=c[Va+24>>2];c[v+28>>2]=c[Va+28>>2];if(!q){q=c[j>>2]|0;r=c[c[q+180>>2]>>2]|0;r=c[(c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0;o:do if((a[r+156>>0]|0)==1){s=q+16|0;q=0;do{if((c[r+184>>2]|0)!=1)break o;if((c[r+176>>2]|0)!=1)break o;if(+h[r+16>>3]!=+h[s>>3])break o;q=q+1|0;v=c[c[r+180>>2]>>2]|0;r=c[(c[((c[v>>2]&3|0)==2?v:v+-48|0)+40>>2]|0)+16>>2]|0}while((a[r+156>>0]|0)==1)}else q=0;while(0);v=(q|0)<(((a[(c[(c[Y>>2]|0)+16>>2]|0)+113>>0]&1)<<1)+3|0);w=v?w:1;s=v?q:q+-2|0;v=v&1^1}else v=q;if(!((v|0)==0|(w|0)>0)){q=I;r=x;x=s;break}r=y+2|0;q=1336+(x<<5)|0;Of(Wa,f,tb,m,u,c[c[(c[j>>2]|0)+180>>2]>>2]|0);c[q>>2]=c[Wa>>2];c[q+4>>2]=c[Wa+4>>2];c[q+8>>2]=c[Wa+8>>2];c[q+12>>2]=c[Wa+12>>2];c[q+16>>2]=c[Wa+16>>2];c[q+20>>2]=c[Wa+20>>2];c[q+24>>2]=c[Wa+24>>2];c[q+28>>2]=c[Wa+28>>2];u=c[c[(c[I+16>>2]|0)+180>>2]>>2]|0;q=c[u>>2]&3;t=c[((q|0)==3?u:u+48|0)+40>>2]|0;q=c[((q|0)==2?u:u+-48|0)+40>>2]|0;m=q;j=m+16|0;if((a[(c[j>>2]|0)+156>>0]|0)!=1){x=M;j=t;break n}else{I=q;y=r;w=w+-1|0;q=v}}Of(_a,f,tb,m,u,c[c[(c[j>>2]|0)+180>>2]>>2]|0);c[kb>>2]=c[_a>>2];c[kb+4>>2]=c[_a+4>>2];c[kb+8>>2]=c[_a+8>>2];c[kb+12>>2]=c[_a+12>>2];c[kb+16>>2]=c[_a+16>>2];c[kb+20>>2]=c[_a+20>>2];c[kb+24>>2]=c[_a+24>>2];c[kb+28>>2]=c[_a+28>>2];j=c[(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)+16>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);ds(p,u,1,kb,j);j=c[Ca>>2]|0;I=j+-1|0;v=q+16|0;y=c[v>>2]|0;A=+h[y+24>>3]+ +h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[y+232>>2]<<6)+24>>3];B=+h[kb+56+(I<<5)>>3];C=+h[kb+56+(I<<5)+16>>3];D=+h[kb+56+(I<<5)+24>>3];if(B<C&D<A){c[Ca>>2]=j+1;h[kb+56+(j<<5)>>3]=B;h[kb+56+(j<<5)+8>>3]=D;h[kb+56+(j<<5)+16>>3]=C;h[kb+56+(j<<5)+24>>3]=A}h[Da>>3]=1.5707963267948966;a[Ea>>0]=1;Qf(p,M,u,eb,kb,r);do if(U){m=cr(p,nb)|0;j=c[nb>>2]|0;P=233}else{m=dr(p,nb)|0;j=c[nb>>2]|0;if(!(Ra&(j|0)>4)){P=233;break}s=m+16|0;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];c[s+8>>2]=c[m+8>>2];c[s+12>>2]=c[m+12>>2];s=m+32|0;j=m+(j+-1<<4)|0;c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];BB(m+48|0,j|0,16)|0;c[nb>>2]=4;j=4;s=m}while(0);if((P|0)==233){P=0;if(!j)break m;else s=m}m=j+l|0;if((m|0)>(c[12479]|0)){c[12479]=m<<1;t=cq(c[12477]|0,m<<5)|0;c[12477]=t;j=c[nb>>2]|0}else t=c[12477]|0;if((j|0)>0){q=(j|0)>1;m=l;r=0;while(1){I=t+(m<<4)|0;y=s+(r<<4)|0;c[I>>2]=c[y>>2];c[I+4>>2]=c[y+4>>2];c[I+8>>2]=c[y+8>>2];c[I+12>>2]=c[y+12>>2];r=r+1|0;if((r|0)==(j|0))break;else m=m+1|0}l=(q?j:1)+l|0}j=c[c[(c[v>>2]|0)+180>>2]>>2]|0;if(!x)s=j;else{m=x;do{m=m+-1|0;j=c[c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((m|0)!=0);s=j}r=t+(l<<4)|0;j=t+(l+-1<<4)|0;c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];r=l+2|0;q=t+(l+1<<4)|0;c[q>>2]=c[j>>2];c[q+4>>2]=c[j+4>>2];c[q+8>>2]=c[j+8>>2];c[q+12>>2]=c[j+12>>2];q=t+(r<<4)|0;t=s+48|0;l=(c[(c[((c[s>>2]&3|0)==3?s:t)+40>>2]|0)+16>>2]|0)+16|0;c[q>>2]=c[l>>2];c[q+4>>2]=c[l+4>>2];c[q+8>>2]=c[l+8>>2];c[q+12>>2]=c[l+12>>2];Rf(M,p);q=c[s>>2]&3;t=c[((q|0)==3?s:t)+40>>2]|0;q=c[((q|0)==2?s:s+-48|0)+40>>2]|0;l=t+16|0;Of($a,f,tb,t,c[c[(c[l>>2]|0)+172>>2]>>2]|0,s);c[eb>>2]=c[$a>>2];c[eb+4>>2]=c[$a+4>>2];c[eb+8>>2]=c[$a+8>>2];c[eb+12>>2]=c[$a+12>>2];c[eb+16>>2]=c[$a+16>>2];c[eb+20>>2]=c[$a+20>>2];c[eb+24>>2]=c[$a+24>>2];c[eb+28>>2]=c[$a+28>>2];j=c[l>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);cs(p,s,1,eb,j);j=c[Ba>>2]|0;M=j+-1|0;I=c[l>>2]|0;A=+h[I+24>>3]-+h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[I+232>>2]<<6)+16>>3];B=+h[eb+56+(M<<5)>>3];C=+h[eb+56+(M<<5)+8>>3];D=+h[eb+56+(M<<5)+16>>3];if(A<C&B<D){c[Ba>>2]=j+1;h[eb+56+(j<<5)>>3]=B;h[eb+56+(j<<5)+8>>3]=A;h[eb+56+(j<<5)+16>>3]=D;h[eb+56+(j<<5)+24>>3]=C}h[Fa>>3]=-1.5707963267948966;a[Ga>>0]=1;m=q;j=m+16|0;if((a[(c[j>>2]|0)+156>>0]|0)==1){l=r;M=s;r=w;s=x}else{l=r;r=0;u=s;x=s;j=t;break}}}else{l=0;r=0;u=O;x=O;j=t}while(0);s=r+1|0;v=1336+(r<<5)|0;Pf(ab,tb,f,c[(c[j+16>>2]|0)+232>>2]|0);c[v>>2]=c[ab>>2];c[v+4>>2]=c[ab+4>>2];c[v+8>>2]=c[ab+8>>2];c[v+12>>2]=c[ab+12>>2];c[v+16>>2]=c[ab+16>>2];c[v+20>>2]=c[ab+20>>2];c[v+24>>2]=c[ab+24>>2];c[v+28>>2]=c[ab+28>>2];Of(bb,f,tb,m,u,0);c[kb>>2]=c[bb>>2];c[kb+4>>2]=c[bb+4>>2];c[kb+8>>2]=c[bb+8>>2];c[kb+12>>2]=c[bb+12>>2];c[kb+16>>2]=c[bb+16>>2];c[kb+20>>2]=c[bb+20>>2];c[kb+24>>2]=c[bb+24>>2];c[kb+28>>2]=c[bb+28>>2];C=+h[kb>>3];D=+h[Ha>>3];v=(N|0)!=0;m=v?mb:u;w=u+-48|0;j=c[(c[((c[u>>2]&3|0)==2?u:w)+40>>2]|0)+16>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);ds(p,m,1,kb,j);j=c[Ca>>2]|0;B=+h[kb+56+(j+-1<<5)+24>>3];N=c[q+16>>2]|0;A=+h[N+24>>3]+ +h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[N+232>>2]<<6)+24>>3];if(C<D&B<A){c[Ca>>2]=j+1;h[kb+56+(j<<5)>>3]=C;h[kb+56+(j<<5)+8>>3]=B;h[kb+56+(j<<5)+16>>3]=D;h[kb+56+(j<<5)+24>>3]=A}Qf(p,x,u,eb,kb,s);if(U)t=cr(p,nb)|0;else t=dr(p,nb)|0;j=c[nb>>2]|0;if(!(Ra&(j|0)>4)){if(!j)break}else{P=t+16|0;c[P>>2]=c[t>>2];c[P+4>>2]=c[t+4>>2];c[P+8>>2]=c[t+8>>2];c[P+12>>2]=c[t+12>>2];P=t+32|0;j=t+(j+-1<<4)|0;c[P>>2]=c[j>>2];c[P+4>>2]=c[j+4>>2];c[P+8>>2]=c[j+8>>2];c[P+12>>2]=c[j+12>>2];BB(t+48|0,j|0,16)|0;c[nb>>2]=4;j=4}m=j+l|0;if((m|0)>(c[12479]|0)){c[12479]=m<<1;c[12477]=cq(c[12477]|0,m<<5)|0;j=c[nb>>2]|0}if((j|0)>0){q=c[12477]|0;r=(j|0)>1;m=l;s=0;while(1){P=q+(m<<4)|0;N=t+(s<<4)|0;c[P>>2]=c[N>>2];c[P+4>>2]=c[N+4>>2];c[P+8>>2]=c[N+8>>2];c[P+12>>2]=c[N+12>>2];s=s+1|0;if((s|0)==(j|0))break;else m=m+1|0}l=(r?j:1)+l|0}Rf(x,p);if(v)j=(c[mb>>2]&3|0)==2?mb:wa;else j=(c[u>>2]&3|0)==2?u:w;r=c[j+40>>2]|0;P=270}while(0);do if((P|0)==270){if((Q|0)==1){as(O,r,c[12477]|0,l,49896);break}u=l+-1|0;v=(u|0)>1;if(v){A=+((_(c[Ta>>2]|0,Q+-1|0)|0)/2|0|0);j=c[12477]|0;m=1;do{P=j+(m<<4)|0;h[P>>3]=+h[P>>3]-A;m=m+1|0}while((m|0)!=(u|0))}j=c[12479]|0;if((j|0)>(c[12480]|0)){c[12480]=j;m=cq(c[12478]|0,j<<4)|0;c[12478]=m}else m=c[12478]|0;t=(l|0)>0;if(t){j=c[12477]|0;q=0;do{P=m+(q<<4)|0;N=j+(q<<4)|0;c[P>>2]=c[N>>2];c[P+4>>2]=c[N+4>>2];c[P+8>>2]=c[N+8>>2];c[P+12>>2]=c[N+12>>2];q=q+1|0}while((q|0)!=(l|0))}as(O,r,m,l,49896);if((Q|0)<=1)break;A=+(c[Ta>>2]|0);s=1;do{r=c[o+(s+S<<2)>>2]|0;m=r+16|0;j=c[m>>2]|0;if(c[j+164>>2]&32){q=c[ra>>2]|0;AB(q|0,j|0,176)|0;w=hb;x=r;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[ra>>2]=q;c[((c[hb>>2]&3|0)==3?hb:ya)+40>>2]=c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2];c[((c[hb>>2]&3|0)==2?hb:za)+40>>2]=c[((c[r>>2]&3|0)==3?r:r+48|0)+40>>2];w=q+16|0;x=(c[m>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=(c[ra>>2]|0)+56|0;x=(c[m>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));P=c[ra>>2]|0;a[P+112>>0]=1;c[P+116>>2]=r;r=hb}if(v){j=c[12477]|0;m=1;do{P=j+(m<<4)|0;h[P>>3]=A+ +h[P>>3];m=m+1|0}while((m|0)!=(u|0))}j=c[12478]|0;if(t){m=c[12477]|0;q=0;do{P=j+(q<<4)|0;O=m+(q<<4)|0;c[P>>2]=c[O>>2];c[P+4>>2]=c[O+4>>2];c[P+8>>2]=c[O+8>>2];c[P+12>>2]=c[O+12>>2];q=q+1|0}while((q|0)!=(l|0))}as(r,c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,j,l,49896);s=s+1|0}while((s|0)!=(Q|0))}while(0)}while(0);if((R|0)<(Sa|0))S=R;else break}}j=c[(c[cb>>2]|0)+192>>2]|0;if(j){m=j;do{l=m+16|0;j=c[l>>2]|0;if((a[j+156>>0]|0)==1?(c[j+104>>2]|0)!=0:0){Hf(m);_s(f,c[(c[l>>2]|0)+104>>2]|0);j=c[l>>2]|0}m=c[j+164>>2]|0}while((m|0)!=0)}if((g|0)!=0?(z=Rk(f)|0,(z|0)!=0):0)do{j=Lj(f,z)|0;if(j)do{if((Eb[c[49896>>2]&31](j)|0)<<24>>24!=0?(pb=c[(c[j+16>>2]|0)+8>>2]|0,(pb|0)!=0):0){x=c[pb+4>>2]|0;y=aq(x*48|0)|0;if((x|0)>0){r=0;t=y;v=(c[pb>>2]|0)+((x+-1|0)*48|0)|0;do{w=v;v=v+-48|0;l=c[w+4>>2]|0;m=aq(l<<4)|0;if((l|0)>0){q=0;s=m;u=(c[w>>2]|0)+(l+-1<<4)|0;while(1){c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];c[s+8>>2]=c[u+8>>2];c[s+12>>2]=c[u+12>>2];q=q+1|0;if((q|0)==(l|0))break;else{s=s+16|0;u=u+-16|0}}}c[t>>2]=m;c[t+4>>2]=l;c[t+8>>2]=c[w+12>>2];c[t+12>>2]=c[w+8>>2];g=t+16|0;ob=w+32|0;c[g>>2]=c[ob>>2];c[g+4>>2]=c[ob+4>>2];c[g+8>>2]=c[ob+8>>2];c[g+12>>2]=c[ob+12>>2];g=t+32|0;t=t+48|0;ob=w+16|0;c[g>>2]=c[ob>>2];c[g+4>>2]=c[ob+4>>2];c[g+8>>2]=c[ob+8>>2];c[g+12>>2]=c[ob+12>>2];r=r+1|0}while((r|0)!=(x|0));l=0;do{pB(c[(c[pb>>2]|0)+(l*48|0)>>2]|0);l=l+1|0}while((l|0)!=(x|0))}pB(c[pb>>2]|0);c[pb>>2]=y}j=Nj(f,j)|0}while((j|0)!=0);z=Sk(f,z)|0}while((z|0)!=0)}if(((c[13443]|0)!=0|(c[13444]|0)!=0?(c[13449]|0)!=0|(c[13448]|0)!=0:0)?(n=Rk(f)|0,(n|0)!=0):0)do{if((c[13443]|0)!=0?(rb=Oj(f,n)|0,(rb|0)!=0):0){m=rb;do{j=m+-48|0;l=(c[m>>2]&3|0)==2?m:j;if(c[(c[l+16>>2]|0)+100>>2]|0){hs(l,1)|0;_s(f,c[(c[((c[m>>2]&3|0)==2?m:j)+16>>2]|0)+100>>2]|0)}m=Pj(f,m)|0}while((m|0)!=0)}if((c[13444]|0)!=0?(sb=Lj(f,n)|0,(sb|0)!=0):0){l=sb;do{j=l+16|0;if((c[(c[j>>2]|0)+104>>2]|0)!=0?(hs(l,0)|0)!=0:0)_s(f,c[(c[j>>2]|0)+104>>2]|0);l=Nj(f,l)|0}while((l|0)!=0)}n=Sk(f,n)|0}while((n|0)!=0);switch(qb|0){case 4:case 8:break;default:{pB(o);pB(c[p+84>>2]|0);pB(p);pB(c[tb+16>>2]|0);br()}}c[13362]=1;c[13363]=1}while(0);i=ub;return}function Gf(a){a=a|0;var b=0,d=0,e=0.0,f=0;b=Rk(a)|0;if(b)do{d=c[b+16>>2]|0;if(c[d+204>>2]|0){f=d+96|0;e=+h[f>>3];d=d+240|0;h[f>>3]=+h[d>>3];h[d>>3]=e}b=Sk(a,b)|0}while((b|0)!=0);return}function Hf(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;f=b+16|0;d=c[f>>2]|0;if(c[d+176>>2]|0){d=c[d+180>>2]|0;while(1){e=(c[d>>2]|0)+16|0;d=c[e>>2]|0;if(!(a[d+112>>0]|0))break;else d=d+116|0}d=c[d+96>>2]|0;g=+h[d+24>>3];i=+h[d+32>>3];d=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1|0)!=0;f=c[f>>2]|0;b=c[(c[e>>2]|0)+96>>2]|0;h[b+56>>3]=+h[f+16>>3]+(d?i:g)*.5;h[b+64>>3]=+h[f+24>>3];a[b+81>>0]=1}return}function If(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;do if(!d){d=c[b>>2]&3;g=c[((d|0)==3?b:b+48|0)+40>>2]|0;d=c[((d|0)==2?b:b+-48|0)+40>>2]|0;if((g|0)!=(d|0)){g=(c[(c[g+16>>2]|0)+232>>2]|0)==(c[(c[d+16>>2]|0)+232>>2]|0)?2:1;break}d=c[b+16>>2]|0;if(!(a[d+44>>0]|0))g=(a[d+84>>0]|0)==0?8:4;else g=4}else g=d;while(0);a:do if(!e)switch(g|0){case 1:{d=c[b>>2]&3;d=(c[(c[(c[((d|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)<(c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)?16:32;break a}case 2:{d=c[b>>2]&3;d=(c[(c[(c[((d|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)?16:32;break a}default:{d=16;break a}}else d=e;while(0);c[(c[b+16>>2]|0)+164>>2]=g|f|d;return}function Jf(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+544|0;x=F+368|0;y=F+96|0;A=F;w=y+16|0;c[w>>2]=x;z=A+16|0;c[z>>2]=F+192;E=c[b>>2]|0;D=c[d>>2]|0;B=E+16|0;u=c[B>>2]|0;v=c[u+164>>2]|0;l=v&15;C=D+16|0;b=c[C>>2]|0;d=c[b+164>>2]&15;do if((d|0)==(l|0)){d=c[u+172>>2]|0;if(!d){l=u;d=E}else while(1){l=c[d+16>>2]|0;m=c[l+172>>2]|0;if(!m)break;else d=m}l=c[l+116>>2]|0;if(l){d=l;while(1){l=c[(c[d+16>>2]|0)+116>>2]|0;if(!l)break;else d=l}}l=c[b+172>>2]|0;if(!l){m=b;l=D}else while(1){m=c[l+16>>2]|0;n=c[m+172>>2]|0;if(!n)break;else l=n}m=c[m+116>>2]|0;if(m){l=m;while(1){m=c[(c[l+16>>2]|0)+116>>2]|0;if(!m)break;else l=m}}s=c[d>>2]|0;n=s&3;m=c[(c[((n|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0;n=c[(c[((n|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0;o=(c[m+232>>2]|0)-(c[n+232>>2]|0)|0;t=c[l>>2]|0;r=t&3;q=c[(c[((r|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0;r=c[(c[((r|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0;p=(c[q+232>>2]|0)-(c[r+232>>2]|0)|0;o=(o|0)>-1?o:0-o|0;p=(p|0)>-1?p:0-p|0;if((o|0)!=(p|0)){b=o-p|0;break}n=~~(+h[m+16>>3]-+h[n+16>>3]);n=(n|0)>-1?n:0-n|0;m=~~(+h[q+16>>3]-+h[r+16>>3]);m=(m|0)>-1?m:0-m|0;if((n|0)!=(m|0)){b=n-m|0;break}n=s>>>4;m=t>>>4;if((n|0)!=(m|0)){b=n-m|0;break}if(!(a[u+44>>0]|0)){d=(a[u+84>>0]|0)==0?d:E;m=d;d=c[(c[d+16>>2]|0)+164>>2]|0}else{m=E;d=v}n=m+16|0;if(d&32){AB(x|0,c[n>>2]|0,176)|0;o=y;p=m;q=o+48|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));c[w>>2]=x;c[((c[y>>2]&3|0)==3?y:y+48|0)+40>>2]=c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2];c[((c[y>>2]&3|0)==2?y:y+-48|0)+40>>2]=c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2];o=x+16|0;p=(c[n>>2]|0)+56|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));b=c[w>>2]|0;o=b+56|0;p=(c[n>>2]|0)+16|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));a[b+112>>0]=1;c[b+116>>2]=m;b=c[C>>2]|0;m=y}if(!(a[b+44>>0]|0)){b=(a[b+84>>0]|0)==0?l:D;l=b;b=c[b+16>>2]|0}else l=D;d=l+16|0;if(!(c[b+164>>2]&32))d=b;else{b=c[z>>2]|0;AB(b|0,c[d>>2]|0,176)|0;o=A;p=l;q=o+48|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));c[z>>2]=b;c[((c[A>>2]&3|0)==3?A:A+48|0)+40>>2]=c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2];c[((c[A>>2]&3|0)==2?A:A+-48|0)+40>>2]=c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2];o=b+16|0;p=(c[d>>2]|0)+56|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));o=b+56|0;p=(c[d>>2]|0)+16|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));a[b+112>>0]=1;c[b+116>>2]=l;d=b}l=c[m+16>>2]|0;A=d+16|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];e=+h[k>>3];A=d+24|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];g=+h[k>>3];A=a[d+44>>0]|0;b=l+16|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];f=+h[k>>3];b=l+24|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];j=+h[k>>3];b=a[l+44>>0]|0;if(!(A<<24>>24))b=b<<24>>24!=0&1;else{if(!(b<<24>>24)){b=-1;break}b=~~(f-e);if(b)break;b=~~(j-g)}if(!b){A=d+56|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];f=+h[k>>3];A=d+64|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];j=+h[k>>3];A=a[d+84>>0]|0;b=l+56|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];e=+h[k>>3];b=l+64|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];g=+h[k>>3];b=a[l+84>>0]|0;if(!(A<<24>>24))b=b<<24>>24!=0&1;else{if(!(b<<24>>24)){b=-1;break}b=~~(e-f);if(b)break;b=~~(g-j)}if(!b){d=c[(c[B>>2]|0)+164>>2]&192;b=c[(c[C>>2]|0)+164>>2]&192;if((d|0)==(b|0)){b=((c[E>>2]|0)>>>4)-((c[D>>2]|0)>>>4)|0;break}else{b=d-b|0;break}}}}else b=d-l|0;while(0);i=F;return b|0}function Kf(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;Ea=i;i=i+336|0;Aa=Ea+248|0;U=Ea+232|0;Z=Ea+216|0;Ca=Ea+200|0;Ba=Ea+192|0;X=Ea+320|0;V=Ea+312|0;W=Ea+32|0;Y=Ea+16|0;T=Ea;ya=c[g>>2]&3;za=c[((ya|0)==3?g:g+48|0)+40>>2]|0;ya=c[((ya|0)==2?g:g+-48|0)+40>>2]|0;a:do if((kr(za)|0)!=2?(kr(ya)|0)!=2:0){G=(f|0)>0;do if(G){m=0;l=0;g=0;do{xa=c[(c[d+(m+e<<2)>>2]|0)+16>>2]|0;l=((c[xa+96>>2]|0)!=0&1)+l|0;if(!((a[xa+44>>0]|0)==0?(a[xa+84>>0]|0)==0:0))g=1;m=m+1|0}while((m|0)!=(f|0));I=l;if(!g){if(!I)break;l=c[d+(e<<2)>>2]|0;S=$p(f<<2)|0;if(G){g=0;do{c[S+(g<<2)>>2]=c[d+(g+e<<2)>>2];g=g+1|0}while((g|0)!=(f|0))}_z(S,f,4,11);P=c[za+16>>2]|0;O=l+16|0;N=c[O>>2]|0;e=N+16|0;a[k>>0]=a[e>>0];a[k+1>>0]=a[e+1>>0];a[k+2>>0]=a[e+2>>0];a[k+3>>0]=a[e+3>>0];a[k+4>>0]=a[e+4>>0];a[k+5>>0]=a[e+5>>0];a[k+6>>0]=a[e+6>>0];a[k+7>>0]=a[e+7>>0];o=+h[k>>3];N=N+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];n=+h[k>>3];N=P+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];J=+h[k>>3];N=P+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];J=o+J;n=n+ +h[k>>3];h[Y>>3]=J;N=Y+8|0;h[N>>3]=n;e=c[ya+16>>2]|0;O=c[O>>2]|0;Q=O+56|0;a[k>>0]=a[Q>>0];a[k+1>>0]=a[Q+1>>0];a[k+2>>0]=a[Q+2>>0];a[k+3>>0]=a[Q+3>>0];a[k+4>>0]=a[Q+4>>0];a[k+5>>0]=a[Q+5>>0];a[k+6>>0]=a[Q+6>>0];a[k+7>>0]=a[Q+7>>0];o=+h[k>>3];O=O+64|0;a[k>>0]=a[O>>0];a[k+1>>0]=a[O+1>>0];a[k+2>>0]=a[O+2>>0];a[k+3>>0]=a[O+3>>0];a[k+4>>0]=a[O+4>>0];a[k+5>>0]=a[O+5>>0];a[k+6>>0]=a[O+6>>0];a[k+7>>0]=a[O+7>>0];t=+h[k>>3];O=e+16|0;a[k>>0]=a[O>>0];a[k+1>>0]=a[O+1>>0];a[k+2>>0]=a[O+2>>0];a[k+3>>0]=a[O+3>>0];a[k+4>>0]=a[O+4>>0];a[k+5>>0]=a[O+5>>0];a[k+6>>0]=a[O+6>>0];a[k+7>>0]=a[O+7>>0];K=+h[k>>3];O=e+24|0;a[k>>0]=a[O>>0];a[k+1>>0]=a[O+1>>0];a[k+2>>0]=a[O+2>>0];a[k+3>>0]=a[O+3>>0];a[k+4>>0]=a[O+4>>0];a[k+5>>0]=a[O+5>>0];a[k+6>>0]=a[O+6>>0];a[k+7>>0]=a[O+7>>0];K=o+K;t=t+ +h[k>>3];h[T>>3]=K;O=T+8|0;h[O>>3]=t;J=J+ +h[P+96>>3];K=K-+h[e+88>>3];t=(J+K)*.5;e=c[S>>2]|0;c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];P=W+16|0;c[P>>2]=c[Y>>2];c[P+4>>2]=c[Y+4>>2];c[P+8>>2]=c[Y+8>>2];c[P+12>>2]=c[Y+12>>2];Q=W+32|0;c[Q>>2]=c[T>>2];c[Q+4>>2]=c[T+4>>2];c[Q+8>>2]=c[T+8>>2];c[Q+12>>2]=c[T+12>>2];R=W+48|0;c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];as(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,W,4,49896);e=c[(c[e+16>>2]|0)+96>>2]|0;h[e+56>>3]=t;o=+h[e+32>>3];h[e+64>>3]=n+(o+6.0)*.5;a[e+81>>0]=1;n=+h[N>>3]+3.0;o=o+n;M=+h[e+24>>3]*.5;L=t-M;M=t+M;b:do if((I|0)>1){u=W+24|0;w=W+40|0;x=W+56|0;y=W+64|0;z=W+72|0;A=W+80|0;B=W+88|0;C=W+96|0;D=W+104|0;E=W+112|0;F=W+120|0;G=X+4|0;H=(j|0)==6&1;g=1;q=0.0;p=0.0;while(1){s=c[S+(g<<2)>>2]|0;if(!(g&1)){c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=L;h[u>>3]=+h[N>>3];h[Q>>3]=L;h[w>>3]=o;h[R>>3]=M;h[x>>3]=o;h[y>>3]=M;r=+h[O>>3];h[z>>3]=r;v=+h[T>>3];h[A>>3]=v;h[B>>3]=r;h[C>>3]=v;v=o+6.0;h[D>>3]=v;h[E>>3]=+h[Y>>3];h[F>>3]=v;v=+h[(c[(c[s+16>>2]|0)+96>>2]|0)+32>>3];r=o+v*.5+6.0;o=o+(v+6.0)}else{l=s+16|0;m=c[(c[l>>2]|0)+96>>2]|0;if((g|0)==1){p=+h[m+24>>3]*.5;q=t+p;p=t-p}n=n-(+h[m+32>>3]+6.0);c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=+h[Y>>3];r=n+-6.0;h[u>>3]=r;h[Q>>3]=+h[T>>3];h[w>>3]=r;c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];h[y>>3]=q;h[z>>3]=+h[O>>3];h[A>>3]=q;h[B>>3]=n;h[C>>3]=p;h[D>>3]=n;h[E>>3]=p;h[F>>3]=+h[N>>3];r=n+ +h[(c[(c[l>>2]|0)+96>>2]|0)+32>>3]*.5}c[G>>2]=8;c[X>>2]=W;c[Z>>2]=c[Y>>2];c[Z+4>>2]=c[Y+4>>2];c[Z+8>>2]=c[Y+8>>2];c[Z+12>>2]=c[Y+12>>2];c[U>>2]=c[T>>2];c[U+4>>2]=c[T+4>>2];c[U+8>>2]=c[T+8>>2];c[U+12>>2]=c[T+12>>2];c[Aa>>2]=c[X>>2];c[Aa+4>>2]=c[X+4>>2];l=$q(Z,U,Aa,V,H)|0;m=c[V>>2]|0;if(!m)break b;e=c[(c[s+16>>2]|0)+96>>2]|0;h[e+56>>3]=t;h[e+64>>3]=r;a[e+81>>0]=1;as(s,c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2]|0,l,m,49896);g=g+1|0;if((g|0)>=(I|0)){Da=17;break}}}else{g=1;q=0.0;p=0.0;Da=17}while(0);c:do if((Da|0)==17){if((g|0)<(f|0)){w=W+24|0;x=W+40|0;y=W+56|0;z=W+64|0;A=W+72|0;B=W+80|0;C=W+88|0;D=W+96|0;E=W+104|0;F=W+112|0;G=W+120|0;H=X+4|0;u=(j|0)==6&1;v=(J*2.0+K)/3.0;t=(J+K*2.0)/3.0;while(1){s=c[S+(g<<2)>>2]|0;if(!(g&1)){c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=L;h[w>>3]=+h[N>>3];h[Q>>3]=L;h[x>>3]=o;h[R>>3]=M;h[y>>3]=o;h[z>>3]=M;r=+h[O>>3];h[A>>3]=r;K=+h[T>>3];h[B>>3]=K;h[C>>3]=r;h[D>>3]=K;K=o+6.0;h[E>>3]=K;h[F>>3]=+h[Y>>3];o=K;r=n;n=K}else{j=(g|0)==1;p=j?v:p;q=j?t:q;r=n+-6.0;c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=+h[Y>>3];n=r+-6.0;h[w>>3]=n;h[Q>>3]=+h[T>>3];h[x>>3]=n;c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];h[z>>3]=q;h[A>>3]=+h[O>>3];h[B>>3]=q;h[C>>3]=r;h[D>>3]=p;h[E>>3]=r;h[F>>3]=p;n=+h[N>>3]}h[G>>3]=n;c[H>>2]=8;c[X>>2]=W;c[Z>>2]=c[Y>>2];c[Z+4>>2]=c[Y+4>>2];c[Z+8>>2]=c[Y+8>>2];c[Z+12>>2]=c[Y+12>>2];c[U>>2]=c[T>>2];c[U+4>>2]=c[T+4>>2];c[U+8>>2]=c[T+8>>2];c[U+12>>2]=c[T+12>>2];c[Aa>>2]=c[X>>2];c[Aa+4>>2]=c[X+4>>2];l=$q(Z,U,Aa,V,u)|0;m=c[V>>2]|0;if(!m)break c;as(s,c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2]|0,l,m,49896);g=g+1|0;if((g|0)>=(f|0))break;else n=r}}pB(S)}while(0);break a}va=$p(156)|0;if(!(hk(b)|0)){c[Aa>>2]=c[12649];xa=ak(116762,Aa,0)|0}else{c[Aa>>2]=c[12647];xa=ak(116762,Aa,0)|0}xl(xa,160878,280,1)|0;rj(xa,0,118472,164137)|0;ta=$p(96)|0;C=xa+16|0;g=c[C>>2]|0;c[g+8>>2]=ta;wa=b+16|0;ua=c[wa>>2]|0;sa=c[ua+8>>2]|0;h[ta>>3]=+h[sa>>3];h[ta+24>>3]=+h[sa+24>>3];a[g+115>>0]=a[ua+115>>0]|0;c[g+116>>2]=c[ua+116>>2]&1^1;c[g+248>>2]=c[ua+248>>2];c[g+252>>2]=c[ua+252>>2];g=sj(hl(b)|0,1,0)|0;if(g)do{rj(xa,1,c[g+8>>2]|0,c[g+12>>2]|0)|0;g=sj(hl(b)|0,1,g)|0}while((g|0)!=0);g=sj(hl(b)|0,2,0)|0;if(g)do{rj(xa,2,c[g+8>>2]|0,c[g+12>>2]|0)|0;g=sj(hl(b)|0,2,g)|0}while((g|0)!=0);if(!(rj(xa,2,134914,0)|0))rj(xa,2,134914,164137)|0;if(!(rj(xa,2,134905,0)|0))rj(xa,2,134905,164137)|0;c[va>>2]=c[13435];H=va+4|0;c[H>>2]=c[13439];I=va+8|0;c[I>>2]=c[13440];N=va+12|0;c[N>>2]=c[13413];O=va+16|0;c[O>>2]=c[13414];P=va+20|0;c[P>>2]=c[13427];Q=va+24|0;c[Q>>2]=c[13426];R=va+28|0;c[R>>2]=c[13425];S=va+32|0;c[S>>2]=c[13451];T=va+36|0;c[T>>2]=c[13443];U=va+40|0;c[U>>2]=c[13428];V=va+44|0;c[V>>2]=c[13438];W=va+48|0;c[W>>2]=c[13447];X=va+52|0;c[X>>2]=c[13446];Y=va+56|0;c[Y>>2]=c[13445];Z=va+60|0;c[Z>>2]=c[13450];_=va+64|0;c[_>>2]=c[13444];$=va+68|0;c[$>>2]=c[13429];aa=va+72|0;c[aa>>2]=c[13376];ba=va+76|0;c[ba>>2]=c[13377];ca=va+80|0;c[ca>>2]=c[13378];da=va+84|0;c[da>>2]=c[13396];ea=va+88|0;c[ea>>2]=c[13389];fa=va+92|0;c[fa>>2]=c[13390];ga=va+96|0;c[ga>>2]=c[13391];ha=va+100|0;c[ha>>2]=c[13393];ia=va+104|0;c[ia>>2]=c[13394];ja=va+108|0;c[ja>>2]=c[13397];ka=va+112|0;c[ka>>2]=c[13400];la=va+116|0;c[la>>2]=c[13398];ma=va+120|0;c[ma>>2]=c[13399];na=va+124|0;c[na>>2]=c[13402];oa=va+128|0;c[oa>>2]=c[13401];pa=va+132|0;c[pa>>2]=c[13403];qa=va+136|0;c[qa>>2]=c[13404];ra=va+140|0;c[ra>>2]=c[13395];sa=va+144|0;c[sa>>2]=c[13407];ta=va+152|0;c[ta>>2]=c[13362];ua=va+148|0;c[ua>>2]=c[13371];c[13435]=0;c[13439]=rj(xa,2,118617,0)|0;c[13440]=rj(xa,2,118626,0)|0;F=rj(xa,2,125369,0)|0;c[13413]=F;if(!F)c[13413]=rj(xa,2,125369,164137)|0;c[13414]=0;c[13427]=0;c[13426]=rj(xa,2,125249,0)|0;c[13425]=rj(xa,2,125240,0)|0;c[13451]=rj(xa,2,125545,0)|0;c[13443]=0;c[13428]=rj(xa,2,124829,0)|0;c[13438]=rj(xa,2,116767,0)|0;c[13447]=0;c[13446]=rj(xa,2,125445,0)|0;c[13445]=rj(xa,2,125431,0)|0;c[13450]=rj(xa,2,125536,0)|0;c[13444]=0;c[13429]=0;c[13376]=rj(xa,1,134586,0)|0;c[13377]=rj(xa,1,134580,0)|0;c[13378]=rj(xa,1,130096,0)|0;c[13396]=0;c[13389]=rj(xa,1,125240,0)|0;c[13390]=rj(xa,1,125249,0)|0;c[13391]=0;c[13393]=rj(xa,1,124829,0)|0;c[13394]=0;c[13397]=0;c[13400]=rj(xa,1,125201,0)|0;c[13398]=rj(xa,1,125284,0)|0;c[13399]=rj(xa,1,125290,0)|0;c[13402]=rj(xa,1,125302,0)|0;c[13401]=rj(xa,1,125140,0)|0;c[13403]=rj(xa,1,125307,0)|0;c[13404]=rj(xa,1,116779,0)|0;c[13395]=0;c[13407]=0;c[13371]=rj(xa,0,125201,0)|0;D=am(xa,116785,1)|0;xl(D,160878,280,1)|0;Bj(D,118472,118486)|0;A=~~+h[(c[ya+16>>2]|0)+16>>3];B=~~+h[(c[za+16>>2]|0)+16>>3];w=(c[(c[wa>>2]|0)+116>>2]&1|0)==0;x=w?ya:za;w=w?za:ya;D=Xf(D,w)|0;E=Xf(xa,x)|0;if(G){s=0;u=0;while(1){g=d+(u+e<<2)|0;while(1){m=c[g>>2]|0;g=m+16|0;l=c[g>>2]|0;if(!(a[l+112>>0]|0)){l=g;break}else g=l+116|0}if((c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0)==(w|0))g=Yf(xa,D,E,m)|0;else g=Yf(xa,E,D,m)|0;l=c[l>>2]|0;c[l+120>>2]=g;if(!s)if((a[l+44>>0]|0)==0?(a[l+84>>0]|0)==0:0)c[(c[g+16>>2]|0)+120>>2]=m;else g=0;else g=s;u=u+1|0;if((u|0)==(f|0))break;else s=g}if(g)F=g;else Da=58}else Da=58;if((Da|0)==58)F=Sj(xa,D,E,0,1)|0;Cj(F,c[13413]|0,116789)|0;y=c[C>>2]|0;c[y+144>>2]=c[(c[wa>>2]|0)+144>>2];c[y+188>>2]=xa;mt(xa,j);tf(xa);xh(xa,0);sg(xa,0);bh(xa,0);y=w+16|0;m=c[y>>2]|0;l=c[x+16>>2]|0;z=D+16|0;s=c[z>>2]|0;w=s+16|0;u=c[E+16>>2]|0;x=u+16|0;g=c[(c[C>>2]|0)+192>>2]|0;if(g){p=+(A|0);q=+(~~((+h[w>>3]+ +h[x>>3])*.5)|0);o=+(B|0);n=+(~~((+h[m+16>>3]-+h[m+96>>3]+ +h[l+16>>3]+ +h[l+88>>3])*.5)|0);m=s+24|0;l=u+24|0;do{do if((g|0)!=(D|0))if((g|0)==(E|0)){h[l>>3]=o;h[x>>3]=q;break}else{h[(c[g+16>>2]|0)+24>>3]=n;break}else{h[m>>3]=p;h[w>>3]=q}while(0);g=c[(c[g+16>>2]|0)+164>>2]|0}while((g|0)!=0)}Vh(xa);Ff(xa,0);Qq(xa);l=c[y>>2]|0;g=c[z>>2]|0;n=+h[l+24>>3];if(!(c[(c[wa>>2]|0)+116>>2]&1)){o=n-+h[g+24>>3];g=g+16|0}else{o=n+ +h[g+16>>3];g=g+24|0}n=+h[l+16>>3]-+h[g>>3];if(G){y=Aa+16|0;z=Aa+32|0;A=Aa+48|0;B=Aa+56|0;C=0;do{g=d+(C+e<<2)|0;while(1){m=c[g>>2]|0;g=m+16|0;l=c[g>>2]|0;if(!(a[l+112>>0]|0))break;else g=l+116|0}j=c[l+120>>2]|0;x=j+16|0;l=c[x>>2]|0;do if(!((j|0)==(F|0)&(c[l+120>>2]|0)==0)){u=c[c[l+8>>2]>>2]|0;w=u+4|0;l=$r(m,c[w>>2]|0)|0;c[l+8>>2]=c[u+8>>2];j=c[(c[wa>>2]|0)+116>>2]&1;G=u+16|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];M=+h[k>>3];G=u+24|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];L=+h[k>>3];j=(j|0)==0;h[l+16>>3]=n+(j?M:L);h[l+24>>3]=o+(j?L:-M);c[l+12>>2]=c[u+12>>2];j=c[(c[wa>>2]|0)+116>>2]&1;G=u+32|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];M=+h[k>>3];G=u+40|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];L=+h[k>>3];j=(j|0)==0;h[l+32>>3]=n+(j?M:L);h[l+40>>3]=o+(j?L:-M);d:do if((c[w>>2]|0)>0){s=0;while(1){j=c[l>>2]|0;m=j+(s<<4)|0;E=c[u>>2]|0;G=c[(c[wa>>2]|0)+116>>2]&1;D=E+(s<<4)|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];M=+h[k>>3];E=E+(s<<4)+8|0;a[k>>0]=a[E>>0];a[k+1>>0]=a[E+1>>0];a[k+2>>0]=a[E+2>>0];a[k+3>>0]=a[E+3>>0];a[k+4>>0]=a[E+4>>0];a[k+5>>0]=a[E+5>>0];a[k+6>>0]=a[E+6>>0];a[k+7>>0]=a[E+7>>0];L=+h[k>>3];G=(G|0)==0;h[m>>3]=n+(G?M:L);h[j+(s<<4)+8>>3]=o+(G?L:-M);c[Aa>>2]=c[m>>2];c[Aa+4>>2]=c[m+4>>2];c[Aa+8>>2]=c[m+8>>2];c[Aa+12>>2]=c[m+12>>2];m=s+1|0;if((m|0)>=(c[w>>2]|0))break;G=c[l>>2]|0;j=G+(m<<4)|0;D=c[u>>2]|0;E=c[(c[wa>>2]|0)+116>>2]&1;Fa=D+(m<<4)|0;a[k>>0]=a[Fa>>0];a[k+1>>0]=a[Fa+1>>0];a[k+2>>0]=a[Fa+2>>0];a[k+3>>0]=a[Fa+3>>0];a[k+4>>0]=a[Fa+4>>0];a[k+5>>0]=a[Fa+5>>0];a[k+6>>0]=a[Fa+6>>0];a[k+7>>0]=a[Fa+7>>0];M=+h[k>>3];D=D+(m<<4)+8|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];L=+h[k>>3];E=(E|0)==0;h[j>>3]=n+(E?M:L);h[G+(m<<4)+8>>3]=o+(E?L:-M);c[y>>2]=c[j>>2];c[y+4>>2]=c[j+4>>2];c[y+8>>2]=c[j+8>>2];c[y+12>>2]=c[j+12>>2];j=s+2|0;G=c[l>>2]|0;E=G+(j<<4)|0;m=c[u>>2]|0;D=c[(c[wa>>2]|0)+116>>2]&1;Fa=m+(j<<4)|0;a[k>>0]=a[Fa>>0];a[k+1>>0]=a[Fa+1>>0];a[k+2>>0]=a[Fa+2>>0];a[k+3>>0]=a[Fa+3>>0];a[k+4>>0]=a[Fa+4>>0];a[k+5>>0]=a[Fa+5>>0];a[k+6>>0]=a[Fa+6>>0];a[k+7>>0]=a[Fa+7>>0];M=+h[k>>3];m=m+(j<<4)+8|0;a[k>>0]=a[m>>0];a[k+1>>0]=a[m+1>>0];a[k+2>>0]=a[m+2>>0];a[k+3>>0]=a[m+3>>0];a[k+4>>0]=a[m+4>>0];a[k+5>>0]=a[m+5>>0];a[k+6>>0]=a[m+6>>0];a[k+7>>0]=a[m+7>>0];L=+h[k>>3];D=(D|0)==0;h[E>>3]=n+(D?M:L);h[G+(j<<4)+8>>3]=o+(D?L:-M);c[z>>2]=c[E>>2];c[z+4>>2]=c[E+4>>2];c[z+8>>2]=c[E+8>>2];c[z+12>>2]=c[E+12>>2];s=s+3|0;E=c[u>>2]|0;j=c[wa>>2]|0;G=c[j+116>>2]&1;D=E+(s<<4)|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];M=+h[k>>3];E=E+(s<<4)+8|0;a[k>>0]=a[E>>0];a[k+1>>0]=a[E+1>>0];a[k+2>>0]=a[E+2>>0];a[k+3>>0]=a[E+3>>0];a[k+4>>0]=a[E+4>>0];a[k+5>>0]=a[E+5>>0];a[k+6>>0]=a[E+6>>0];a[k+7>>0]=a[E+7>>0];L=+h[k>>3];G=(G|0)==0;h[A>>3]=n+(G?M:L);h[B>>3]=o+(G?L:-M);_o(j+16|0,Aa);if((s|0)>=(c[w>>2]|0))break d}}while(0);l=c[(c[g>>2]|0)+96>>2]|0;if(!l)break;j=c[(c[x>>2]|0)+96>>2]|0;Fa=c[(c[wa>>2]|0)+116>>2]&1;G=j+56|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];M=+h[k>>3];j=j+64|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];L=+h[k>>3];Fa=(Fa|0)==0;h[l+56>>3]=n+(Fa?M:L);h[l+64>>3]=o+(Fa?L:-M);Fa=c[(c[g>>2]|0)+96>>2]|0;a[Fa+81>>0]=1;_s(b,Fa)}while(0);C=C+1|0}while((C|0)!=(f|0))}c[13435]=c[va>>2];c[13439]=c[H>>2];c[13440]=c[I>>2];c[13413]=c[N>>2];c[13414]=c[O>>2];c[13427]=c[P>>2];c[13426]=c[Q>>2];c[13425]=c[R>>2];c[13451]=c[S>>2];c[13443]=c[T>>2];c[13428]=c[U>>2];c[13438]=c[V>>2];c[13447]=c[W>>2];c[13446]=c[X>>2];c[13445]=c[Y>>2];c[13450]=c[Z>>2];c[13444]=c[_>>2];c[13429]=c[$>>2];c[13376]=c[aa>>2];c[13377]=c[ba>>2];c[13378]=c[ca>>2];c[13396]=c[da>>2];c[13389]=c[ea>>2];c[13390]=c[fa>>2];c[13391]=c[ga>>2];c[13393]=c[ha>>2];c[13394]=c[ia>>2];c[13397]=c[ja>>2];c[13400]=c[ka>>2];c[13398]=c[la>>2];c[13399]=c[ma>>2];c[13402]=c[na>>2];c[13401]=c[oa>>2];c[13403]=c[pa>>2];c[13404]=c[qa>>2];c[13395]=c[ra>>2];c[13407]=c[sa>>2];c[13371]=c[ua>>2];c[13362]=c[ta>>2];pB(va);uf(xa);dk(xa)|0;break a}while(0);Mf(za,ya,d,e,f,j)}else Da=4;while(0);if((Da|0)==4?(c[12481]|0)==0:0){c[12481]=1;dj(0,116639,Ba)|0;Ba=ok(za)|0;Da=(hk(b)|0)!=0;Fa=ok(ya)|0;c[Ca>>2]=Ba;c[Ca+4>>2]=Da?160891:160894;c[Ca+8>>2]=Fa;dj(3,116745,Ca)|0}i=Ea;return}function Lf(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0;o=i;i=i+32|0;p=o;Of(p,a,b,e,0,f);c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];c[g+16>>2]=c[p+16>>2];c[g+20>>2]=c[p+20>>2];c[g+24>>2]=c[p+24>>2];c[g+28>>2]=c[p+28>>2];m=+h[g>>3];n=+h[g+16>>3];c[g+48>>2]=4;if(!(j<<24>>24))ds(d,f,2,g,0);else cs(d,f,2,g,0);b=g+52|0;d=c[b>>2]|0;l=+h[g+56+(d+-1<<5)+24>>3];p=c[e+16>>2]|0;k=+h[p+24>>3]+ +h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[p+232>>2]<<6)+24>>3];if(m<n&l<k){c[b>>2]=d+1;h[g+56+(d<<5)>>3]=m;h[g+56+(d<<5)+8>>3]=l;h[g+56+(d<<5)+16>>3]=n;h[g+56+(d<<5)+24>>3]=k}i=o;return}function Mf(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var l=0,m=0.0,n=0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0;O=i;i=i+160|0;N=O;b=c[b+16>>2]|0;G=c[(c[e+(f<<2)>>2]|0)+16>>2]|0;H=G+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];I=+h[k>>3];H=G+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];M=+h[k>>3];H=b+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];L=+h[k>>3];H=b+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];L=I+L;M=M+ +h[k>>3];H=c[d+16>>2]|0;F=G+56|0;a[k>>0]=a[F>>0];a[k+1>>0]=a[F+1>>0];a[k+2>>0]=a[F+2>>0];a[k+3>>0]=a[F+3>>0];a[k+4>>0]=a[F+4>>0];a[k+5>>0]=a[F+5>>0];a[k+6>>0]=a[F+6>>0];a[k+7>>0]=a[F+7>>0];I=+h[k>>3];G=G+64|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];K=+h[k>>3];G=H+16|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];J=+h[k>>3];H=H+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];J=I+J;K=K+ +h[k>>3];if((g|0)<=1){if((g|0)>0){m=0.0;I=0.0;l=4}}else{I=+h[b+80>>3];m=I*.5;I=I/+(g+-1|0);l=4}if((l|0)==4){l=(j&-9|0)==2;n=N+8|0;o=(L*2.0+J)/3.0;p=N+16|0;q=N+24|0;r=(L+J*2.0)/3.0;s=N+32|0;t=N+40|0;u=N+48|0;v=N+56|0;w=N+64|0;x=N+72|0;y=N+80|0;z=N+88|0;A=N+96|0;B=N+104|0;C=N+112|0;D=N+120|0;E=N+128|0;F=N+136|0;G=N+144|0;H=N+152|0;m=M-m;d=0;while(1){b=c[e+(d+f<<2)>>2]|0;h[N>>3]=L;h[n>>3]=M;if(l){h[p>>3]=o;h[q>>3]=m;h[s>>3]=r;h[t>>3]=m;h[u>>3]=J;h[v>>3]=K;j=4}else{h[p>>3]=L;h[q>>3]=M;h[s>>3]=o;h[t>>3]=m;h[u>>3]=o;h[v>>3]=m;h[w>>3]=o;h[x>>3]=m;h[y>>3]=r;h[z>>3]=m;h[A>>3]=r;h[B>>3]=m;h[C>>3]=r;h[D>>3]=m;h[E>>3]=J;h[F>>3]=K;h[G>>3]=J;h[H>>3]=K;j=10}as(b,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,N,j,49896);d=d+1|0;if((d|0)==(g|0))break;else m=I+m}}i=O;return}function Nf(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0;o=i;i=i+32|0;p=o;Of(p,a,b,e,0,f);c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];c[g+16>>2]=c[p+16>>2];c[g+20>>2]=c[p+20>>2];c[g+24>>2]=c[p+24>>2];c[g+28>>2]=c[p+28>>2];m=+h[g>>3];n=+h[g+16>>3];c[g+48>>2]=1;if(!(j<<24>>24))ds(d,f,2,g,0);else cs(d,f,2,g,0);b=g+52|0;d=c[b>>2]|0;l=+h[g+56+(d+-1<<5)+8>>3];p=c[e+16>>2]|0;k=+h[p+24>>3]-+h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[p+232>>2]<<6)+24>>3];if(m<n&k<l){c[b>>2]=d+1;h[g+56+(d<<5)>>3]=m;h[g+56+(d<<5)+8>>3]=k;h[g+56+(d<<5)+16>>3]=n;h[g+56+(d<<5)+24>>3]=l}i=o;return}function Of(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0;q=c[f+16>>2]|0;p=+h[q+16>>3];m=p-+h[q+88>>3]+-4.0;l=Uf(d,f,g,i,-1)|0;if(!l){n=~~(m+(m>=0.0?.5:-.5));k=c[e>>2]|0;k=(n|0)<(k|0)?n:k}else{k=Vf(d,f,l)|0;do if(!k){n=c[l+16>>2]|0;j=+h[n+16>>3]+ +h[n+240>>3];if(!(a[n+156>>0]|0)){j=j+ +(c[(c[d+16>>2]|0)+248>>2]|0)*.5;break}else{j=j+ +(c[e+8>>2]|0);break}}else j=+h[(c[k+16>>2]|0)+32>>3]+ +(c[e+8>>2]|0);while(0);o=j<m?j:m;k=~~(o+(o>=0.0?.5:-.5))}o=+(k|0);n=(a[q+156>>0]|0)==1;if(n?(c[q+104>>2]|0)!=0:0)m=p+10.0;else m=p+ +h[q+96>>3]+4.0;l=Uf(d,f,g,i,1)|0;if(!l){f=~~(m+(m>=0.0?.5:-.5));k=c[e+4>>2]|0;k=(f|0)>(k|0)?f:k}else{k=Vf(d,f,l)|0;do if(!k){f=c[l+16>>2]|0;j=+h[f+16>>3]-+h[f+88>>3];if(!(a[f+156>>0]|0)){j=j-+(c[(c[d+16>>2]|0)+248>>2]|0)*.5;break}else{j=j-+(c[e+8>>2]|0);break}}else j=+h[(c[k+16>>2]|0)+16>>3]-+(c[e+8>>2]|0);while(0);m=j>m?j:m;k=~~(m+(m>=0.0?.5:-.5))}j=+(k|0);if(n?(c[q+104>>2]|0)!=0:0){j=j-+h[q+96>>3];if(j<o)j=p}p=+h[q+24>>3];q=c[q+232>>2]|0;d=c[(c[d+16>>2]|0)+196>>2]|0;m=p-+h[d+(q<<6)+16>>3];p=p+ +h[d+(q<<6)+24>>3];h[b>>3]=o;h[b+8>>3]=m;h[b+16>>3]=j;h[b+24>>3]=p;return}function Pf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0;n=c[b+16>>2]|0;k=n+(e<<5)|0;j=+h[k>>3];l=n+(e<<5)+8|0;i=+h[l>>3];m=n+(e<<5)+16|0;g=+h[m>>3];n=n+(e<<5)+24|0;f=+h[n>>3];if(j==g){d=c[(c[d+16>>2]|0)+196>>2]|0;o=e+1|0;j=+(c[b>>2]|0);i=+h[(c[(c[c[d+(o<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[d+(o<<6)+24>>3];g=+(c[b+4>>2]|0);f=+h[(c[(c[c[d+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[d+(e<<6)+16>>3];h[k>>3]=j;h[l>>3]=i;h[m>>3]=g;h[n>>3]=f}h[a>>3]=j;h[a+8>>3]=i;h[a+16>>3]=g;h[a+24>>3]=f;return}function Qf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+32|0;m=r;k=Sf(b,-1)|0;b=Sf(b,1)|0;if(!((k|0)!=0?(ks(k)|0)==0:0))q=3;do if((q|0)==3){if((b|0)!=0?(ks(b)|0)==0:0)break;k=Tf(d,-1)|0;b=Tf(d,1)|0;if((k|0)!=0?(ks(k)|0)==0:0)break;if((b|0)!=0?(ks(b)|0)==0:0)break;b=e+52|0;if((c[b>>2]|0)>0){k=0;do{p=e+56+(k<<5)|0;c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];c[m+12>>2]=c[p+12>>2];c[m+16>>2]=c[p+16>>2];c[m+20>>2]=c[p+20>>2];c[m+24>>2]=c[p+24>>2];c[m+28>>2]=c[p+28>>2];bs(a,m);k=k+1|0}while((k|0)<(c[b>>2]|0))}n=a+80|0;d=c[n>>2]|0;o=d+1|0;k=o+g|0;p=k+-3|0;if((g|0)>0){b=0;do{e=1336+(b<<5)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];bs(a,m);b=b+1|0}while((b|0)!=(g|0))}b=c[f+52>>2]|0;if((b|0)>0)do{g=b;b=b+-1|0;e=f+56+(b<<5)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];bs(a,m)}while((g|0)>1);e=k+-2|0;if((e|0)>=(o|0)){g=c[a+84>>2]|0;do{k=g+(d<<5)|0;l=+h[k>>3];if(!(d-o&1)){b=g+(d<<5)+16|0;j=+h[b>>3];if(l>=j){f=~~((l+j)*.5);h[k>>3]=+(f+-8|0);h[b>>3]=+(f+8|0)}}else{b=g+(d<<5)+16|0;j=+h[b>>3];if(l+16.0>j){f=~~((l+j)*.5);h[k>>3]=+(f+-8|0);h[b>>3]=+(f+8|0)}}d=d+1|0}while((d|0)<(e|0))}b=c[n>>2]|0;if((b|0)>1){n=c[a+84>>2]|0;g=b+-1|0;m=0;do{k=n+(m<<5)|0;d=m;m=m+1|0;e=n+(m<<5)|0;if(!((d|0)<(o|0)|(d|0)>(p|0))?(d-o&1|0)==0:0){j=+h[k>>3]+16.0;b=n+(m<<5)+16|0;if(j>+h[b>>3])h[b>>3]=j;j=+h[n+(d<<5)+16>>3]+-16.0;if(j<+h[e>>3])h[e>>3]=j}else q=31;if(((q|0)==31?(q=0,(d|0)<(p|0)&(m|0)>=(o|0)):0)?(m-o&1|0)==0:0){j=+h[n+(m<<5)+16>>3];if(+h[k>>3]+16.0>j)h[k>>3]=j+-16.0;b=n+(d<<5)+16|0;j=+h[e>>3];if(+h[b>>3]+-16.0<j)h[b>>3]=j+16.0}}while((m|0)!=(g|0))}}while(0);i=r;return}function Rf(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0,j=0,k=0,l=0,m=0;f=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;b=f+16|0;a:do if((a[(c[b>>2]|0)+156>>0]|0)==1){l=d+84|0;k=d+80|0;i=0;d=f;do{if((Eb[c[49900>>2]&31](d)|0)<<24>>24)break a;j=c[k>>2]|0;b:do if((i|0)<(j|0)){f=c[l>>2]|0;e=+h[(c[b>>2]|0)+24>>3];d=i;while(1){if(!(+h[f+(d<<5)+8>>3]>e)){i=d;break b}d=d+1|0;if((d|0)>=(j|0)){i=d;break}}}while(0);if((i|0)>=(j|0))break a;d=c[l>>2]|0;b=c[b>>2]|0;do if(!(+h[d+(i<<5)+24>>3]<+h[b+24>>3])){g=+h[d+(i<<5)>>3];f=~~g;e=+h[d+(i<<5)+16>>3];if(!(c[b+104>>2]|0)){j=~~((g+e)*.5);h[b+16>>3]=+(j|0);h[b+88>>3]=+(j-f|0);h[b+96>>3]=+(~~e-j|0);break}else{d=~~e;j=b+96|0;m=~~(e+ +h[j>>3]);h[b+16>>3]=+(d|0);h[b+88>>3]=+(d-f|0);h[j>>3]=+(m-d|0);break}}while(0);d=c[c[b+180>>2]>>2]|0;d=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;b=d+16|0}while((a[(c[b>>2]|0)+156>>0]|0)==1)}while(0);return}function Sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]&3;i=c[(c[(c[((d|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180>>2]|0;e=c[i>>2]|0;if(!e)d=0;else{h=c[(c[(c[((d|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;d=0;g=0;do{f=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((_(f-h|0,b)|0)>=1){a=c[e+16>>2]|0;if(!(c[a+8>>2]|0)){a=c[a+116>>2]|0;if(!a)break;if(!(c[(c[a+16>>2]|0)+8>>2]|0))break}if((d|0)!=0?(_((c[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;d=e}while(0);g=g+1|0;e=c[i+(g<<2)>>2]|0}while((e|0)!=0)}return d|0}function Tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]&3;i=c[(c[(c[((d|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172>>2]|0;e=c[i>>2]|0;if(!e)d=0;else{h=c[(c[(c[((d|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;d=0;g=0;do{f=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((_(f-h|0,b)|0)>=1){a=c[e+16>>2]|0;if(!(c[a+8>>2]|0)){a=c[a+116>>2]|0;if(!a)break;if(!(c[(c[a+16>>2]|0)+8>>2]|0))break}if((d|0)!=0?(_((c[(c[(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;d=e}while(0);g=g+1|0;e=c[i+(g<<2)>>2]|0}while((e|0)!=0)}return d|0}function Uf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=c[d+16>>2]|0;h=c[q+232>>2]|0;d=c[(c[b+16>>2]|0)+196>>2]|0;q=c[q+236>>2]|0;b=q+g|0;a:do if((b|0)>-1){p=c[d+(h<<6)>>2]|0;m=d+(h<<6)+4|0;n=(f|0)==0;o=(e|0)!=0;while(1){if((b|0)>=(p|0)){d=0;break a}d=c[(c[m>>2]|0)+(b<<2)>>2]|0;k=c[d+16>>2]|0;switch(a[k+156>>0]|0){case 0:break a;case 1:{if(c[k+104>>2]|0)break a;break}default:{}}l=(c[k+236>>2]|0)>(q|0);if((c[k+184>>2]|0)!=1)break a;b:do if(n)r=17;else{j=0;h=c[c[k+180>>2]>>2]|0;i=f;while(1){h=c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0;i=c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0;if((h|0)==(i|0)){r=17;break b}h=c[h+16>>2]|0;i=c[i+16>>2]|0;if(l^(c[h+236>>2]|0)>(c[i+236>>2]|0))break b;if((c[h+184>>2]|0)!=1){r=17;break b}if(!(a[h+156>>0]|0)){r=17;break b}if((c[i+184>>2]|0)!=1){r=17;break b}if(!(a[i+156>>0]|0)){r=17;break b}j=j+1|0;if((j|0)>=2){r=17;break}else{h=c[c[h+180>>2]>>2]|0;i=c[c[i+180>>2]>>2]|0}}}while(0);c:do if((r|0)==17){r=0;if(!(o&(c[k+176>>2]|0)==1))break a;j=0;i=c[c[k+172>>2]>>2]|0;h=e;while(1){i=c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0;h=c[((c[h>>2]&3|0)==3?h:h+48|0)+40>>2]|0;if((i|0)==(h|0))break a;i=c[i+16>>2]|0;h=c[h+16>>2]|0;if(l^(c[i+236>>2]|0)>(c[h+236>>2]|0))break c;if((c[i+176>>2]|0)!=1)break a;if(!(a[i+156>>0]|0))break a;if((c[h+176>>2]|0)!=1)break a;if(!(a[h+156>>0]|0))break a;j=j+1|0;if((j|0)>=2)break a;else{i=c[c[i+172>>2]>>2]|0;h=c[c[h+172>>2]>>2]|0}}}while(0);b=b+g|0;if((b|0)<=-1){d=0;break a}}}else d=0;while(0);return d|0}function Vf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0;d=c[d+16>>2]|0;if(!(a[d+156>>0]|0)){j=c[d+212>>2]|0;i=j}else{j=c[(c[(c[c[d+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;g=c[j>>2]&3;i=c[(c[(c[((g|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;j=c[(c[(c[((g|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0}g=c[e+16>>2]|0;if(!(a[g+156>>0]|0)){p=c[g+212>>2]|0;p=(p|0)==(b|0)?0:p;return ((p|0)==(i|0)|((p|0)==0|(p|0)==(j|0))?0:p)|0}e=c[(c[(c[c[g+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;f=c[e>>2]&3;d=c[(c[(c[((f|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if(!((((!((d|0)==(i|0)|((d|0)==0|(d|0)==(j|0)))?(k=c[d+16>>2]|0,l=+h[g+16>>3],+h[k+16>>3]<=l):0)?l<=+h[k+32>>3]:0)?(m=+h[g+24>>3],+h[k+24>>3]<=m):0)?m<=+h[k+40>>3]:0)){d=c[(c[(c[((f|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if(((!((d|0)==(i|0)|((d|0)==0|(d|0)==(j|0)))?(p=c[d+16>>2]|0,n=+h[g+16>>3],+h[p+16>>3]<=n):0)?n<=+h[p+32>>3]:0)?(o=+h[g+24>>3],+h[p+24>>3]<=o):0)d=o<=+h[p+40>>3]?d:0;else d=0}return d|0}function Wf(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0;d=c[(c[(c[a>>2]|0)+16>>2]|0)+96>>2]|0;a=c[(c[(c[b>>2]|0)+16>>2]|0)+96>>2]|0;b=(a|0)!=0;if(d)if(b?(e=+h[d+24>>3],f=+h[d+32>>3],g=+h[a+24>>3],i=+h[a+32>>3],!(e>g)):0)if(!(e<g))if(f>i)a=-1;else a=f<i&1;else a=1;else a=-1;else a=b&1;return a|0}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e;a=Xk(a,ok(b)|0,1)|0;xl(a,160855,304,1)|0;Ej(b,a)|0;if((kr(b)|0)==2){f=b+16|0;b=aq((pA(c[c[(c[f>>2]|0)+104>>2]>>2]|0)|0)+3|0)|0;c[d>>2]=c[c[(c[f>>2]|0)+104>>2]>>2];Oz(b,116795,d)|0;Bj(a,124829,b)|0}i=e;return a|0}function Yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=Sj(a,b,c,0,1)|0;xl(b,161165,176,1)|0;Ej(d,b)|0;return b|0}function Zf(a){a=a|0;var b=0,d=0,e=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;d=c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;e=c[d+232>>2]|0;a=c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;b=c[a+232>>2]|0;if((e|0)<=(b|0))if((e|0)<(b|0))a=1;else a=(c[d+236>>2]|0)<(c[a+236>>2]|0)&1;else a=0;return a|0}function _f(b){b=b|0;b=c[b+16>>2]|0;if((a[b+156>>0]|0)==1)if((c[b+176>>2]|0)>1)b=1;else b=(c[b+184>>2]|0)>1&1;else b=0;return b|0}function $f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+180|0;g=(c[b+16>>2]|0)+172|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=qg(a,f,b,e)|0;i=d;return b|0}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+188|0;g=(c[b+16>>2]|0)+196|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=qg(a,f,b,e)|0;i=d;return b|0}function bg(a){a=a|0;var b=0,d=0,e=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+180>>2]|0;d=c[d+184>>2]|0;if(!b)b=aq((d<<2)+8|0)|0;else b=cq(b,(d<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+180>>2]=b;b=(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+184|0;d=c[b>>2]|0;c[b>>2]=d+1;c[(c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+180>>2]|0)+(d<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+180>>2]|0)+(c[e+184>>2]<<2)>>2]=0;e=a+-48|0;d=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;b=c[d+172>>2]|0;d=c[d+176>>2]|0;if(!b)b=aq((d<<2)+8|0)|0;else b=cq(b,(d<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+172>>2]=b;b=(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+176|0;d=c[b>>2]|0;c[b>>2]=d+1;c[(c[(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+172>>2]|0)+(d<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+172>>2]|0)+(c[e+176>>2]<<2)>>2]=0;return a|0}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=a+4|0;g=c[f>>2]|0;a:do if((g|0)>0){h=c[a>>2]|0;e=0;while(1){d=h+(e<<2)|0;if((c[d>>2]|0)==(b|0))break;e=e+1|0;if((e|0)>=(g|0))break a}g=g+-1|0;c[f>>2]=g;c[d>>2]=c[h+(g<<2)>>2];c[(c[a>>2]|0)+(g<<2)>>2]=0}while(0);return}function dg(a){a=a|0;if(!a)Ia(116800,116810,117,116819);else{cg((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180|0,a);cg((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172|0,a);return}}function eg(a){a=a|0;var b=0,d=0,e=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+204>>2]|0;d=c[d+208>>2]|0;if(!b)b=aq((d<<2)+8|0)|0;else b=cq(b,(d<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+204>>2]=b;b=(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+208|0;d=c[b>>2]|0;c[b>>2]=d+1;c[(c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+204>>2]|0)+(d<<2)>>2]=a;a=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[a+204>>2]|0)+(c[a+208>>2]<<2)>>2]=0;return}function fg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;g=f+204|0;f=f+208|0;b=c[f>>2]|0;d=c[g>>2]|0;a:do if((b|0)<=0)if(!d){b=aq((b<<2)+8|0)|0;h=7}else h=5;else{e=0;while(1){if((c[d+(e<<2)>>2]|0)==(a|0))break a;e=e+1|0;if((e|0)>=(b|0)){h=5;break}}}while(0);if((h|0)==5){b=cq(d,(b<<2)+8|0)|0;h=7}if((h|0)==7){c[g>>2]=b;e=c[f>>2]|0;h=e+1|0;c[f>>2]=h;c[b+(e<<2)>>2]=a;c[(c[g>>2]|0)+(h<<2)>>2]=0}return}function gg(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=$p(96)|0;g=m+48|0;c[g>>2]=c[g>>2]|3;c[m>>2]=c[m>>2]&-4|2;h=$p(176)|0;n=m+16|0;c[n>>2]=h;c[((c[m>>2]&3|0)==3?m:g)+40>>2]=d;j=m+-48|0;c[((c[m>>2]&3|0)==2?m:j)+40>>2]=e;a[h+112>>0]=1;if(!f){c[h+156>>2]=1;b[h+154>>1]=1;b[h+168>>1]=1;b[h+170>>1]=1}else{c[m>>2]=c[m>>2]&15|c[f>>2]&-16;c[g>>2]=c[g>>2]&15|c[f>>2]&-16;l=f+16|0;i=c[l>>2]|0;b[h+168>>1]=b[i+168>>1]|0;b[h+154>>1]=b[i+154>>1]|0;c[h+156>>2]=c[i+156>>2];b[h+170>>1]=b[i+170>>1]|0;d=c[((c[m>>2]&3|0)==3?m:g)+40>>2]|0;e=c[f>>2]&3;k=f+48|0;if((d|0)!=(c[((e|0)==3?f:k)+40>>2]|0)){g=f+-48|0;if((d|0)==(c[((e|0)==2?f:g)+40>>2]|0)){h=h+16|0;d=i+56|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}}else{h=h+16|0;d=i+16|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));g=f+-48|0}d=c[((c[m>>2]&3|0)==2?m:j)+40>>2]|0;e=c[f>>2]&3;if((d|0)!=(c[((e|0)==2?f:g)+40>>2]|0)){if((d|0)==(c[((e|0)==3?f:k)+40>>2]|0)){h=(c[n>>2]|0)+56|0;d=(c[l>>2]|0)+16|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}}else{h=(c[n>>2]|0)+56|0;d=(c[l>>2]|0)+56|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}d=(c[l>>2]|0)+172|0;if(!(c[d>>2]|0))c[d>>2]=m;c[(c[n>>2]|0)+116>>2]=f}return m|0}function hg(a,b,c){a=a|0;b=b|0;c=c|0;return bg(gg(a,b,c)|0)|0}function ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;a=(c[a+16>>2]|0)+192|0;f=c[a>>2]|0;d=c[b+16>>2]|0;c[d+164>>2]=f;e=f;if(f)c[(c[e+16>>2]|0)+168>>2]=b;c[a>>2]=b;c[d+168>>2]=0;if((e|0)==(b|0))Ia(116836,116810,215,116852);else return}function jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((a|0)==(b|0))Ia(116862,116810,220,116869);e=c[b+16>>2]|0;d=e+164|0;if(c[d>>2]|0)Ia(116882,116810,221,116869);f=(c[a+16>>2]|0)+164|0;c[d>>2]=c[f>>2];d=c[f>>2]|0;if(d)c[(c[d+16>>2]|0)+168>>2]=b;c[e+168>>2]=a;c[f>>2]=b;return}function kg(a,b){a=a|0;b=b|0;var d=0,e=0;e=(c[a+16>>2]|0)+192|0;a=c[e>>2]|0;if(!((a|0)==0|(a|0)==(b|0)))do a=c[(c[a+16>>2]|0)+164>>2]|0;while(!((a|0)==0|(a|0)==(b|0)));if(!a)Ia(116901,116810,231,116922);a=c[b+16>>2]|0;b=c[a+164>>2]|0;d=b;a=a+168|0;if(b)c[(c[b+16>>2]|0)+168>>2]=c[a>>2];a=c[a>>2]|0;if(!a)c[e>>2]=d;else c[(c[a+16>>2]|0)+164>>2]=d;return}function lg(b){b=b|0;var d=0,e=0,f=0,g=0;d=$p(64)|0;c[d>>2]=c[d>>2]&-4|1;e=d+16|0;c[e>>2]=$p(304)|0;c[d+24>>2]=hl(b)|0;g=c[e>>2]|0;a[g+156>>0]=1;h[g+96>>3]=1.0;h[g+88>>3]=1.0;h[g+80>>3]=1.0;c[g+216>>2]=1;c[g+176>>2]=0;g=$p(20)|0;f=c[e>>2]|0;c[f+172>>2]=g;c[f+184>>2]=0;f=$p(20)|0;c[(c[e>>2]|0)+180>>2]=f;ig(b,d);b=(c[b+16>>2]|0)+232|0;c[b>>2]=(c[b>>2]|0)+1;return d|0}function mg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+48|0;f=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;e=c[f+188>>2]|0;f=c[f+192>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+188>>2]=e;e=(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+192|0;f=c[e>>2]|0;c[e>>2]=f+1;c[(c[(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+188>>2]|0)+(f<<2)>>2]=d;g=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;c[(c[g+188>>2]|0)+(c[g+192>>2]<<2)>>2]=0;g=d+-48|0;f=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;e=c[f+196>>2]|0;f=c[f+200>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+196>>2]=e;e=(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+200|0;f=c[e>>2]|0;c[e>>2]=f+1;c[(c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+196>>2]|0)+(f<<2)>>2]=d;d=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;c[(c[d+196>>2]|0)+(c[d+200>>2]<<2)>>2]=0;a[(c[b+16>>2]|0)+240>>0]=1;a[(c[(wf(b)|0)+16>>2]|0)+240>>0]=1;return}function ng(a){a=a|0;var b=0,d=0;if(!a)Ia(116800,116810,269,116939);b=c[(c[a+16>>2]|0)+116>>2]|0;if((b|0)!=0?(d=(c[b+16>>2]|0)+172|0,(c[d>>2]|0)==(a|0)):0)c[d>>2]=0;cg((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+188|0,a);cg((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+196|0,a);return}function og(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=c[a+16>>2]|0;a=j+172|0;f=c[a>>2]|0;a:do if((f|0)==(d|0))dj(0,116956,k)|0;else{if(f)Ia(118798,116810,340,116977);c[a>>2]=d;h=c[d+16>>2]|0;f=h+170|0;a=b[j+170>>1]|0;if((e[f>>1]|0)<(a&65535))b[f>>1]=a;d=j+168|0;g=j+154|0;f=j+156|0;a=h;while(1){j=a+168|0;b[j>>1]=(e[j>>1]|0)+(e[d>>1]|0);j=a+154|0;b[j>>1]=(e[j>>1]|0)+(e[g>>1]|0);j=a+156|0;c[j>>2]=(c[j>>2]|0)+(c[f>>2]|0);a=c[a+172>>2]|0;if(!a)break a;a=c[a+16>>2]|0}}while(0);i=k;return}function pg(d){d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=d+16|0;d=c[m>>2]|0;f=c[d+172>>2]|0;if(f)do{l=f+16|0;j=c[l>>2]|0;i=j+168|0;k=(e[i>>1]|0)-(e[d+168>>1]|0)&65535;b[i>>1]=k;i=j+154|0;b[i>>1]=(e[i>>1]|0)-(e[d+154>>1]|0);i=j+156|0;c[i>>2]=(c[i>>2]|0)-(c[d+156>>2]|0);d=f;f=c[j+172>>2]|0;if(!(k<<16>>16)){g=c[d>>2]|0;k=d+48|0;i=(c[(c[((g&3|0)==3?d:k)+40>>2]|0)+16>>2]|0)+180|0;h=c[c[i>>2]>>2]|0;if(h){j=0;do{if((h|0)==(d|0)){cg(i,d);g=c[d>>2]|0}j=j+1|0;i=(c[(c[((g&3|0)==3?d:k)+40>>2]|0)+16>>2]|0)+180|0;h=c[(c[i>>2]|0)+(j<<2)>>2]|0}while((h|0)!=0)}k=d+-48|0;i=(c[(c[((g&3|0)==2?d:k)+40>>2]|0)+16>>2]|0)+172|0;h=c[c[i>>2]>>2]|0;if(h){j=0;do{if((h|0)==(d|0)){cg(i,d);g=c[d>>2]|0}j=j+1|0;i=(c[(c[((g&3|0)==2?d:k)+40>>2]|0)+16>>2]|0)+172|0;h=c[(c[i>>2]|0)+(j<<2)>>2]|0}while((h|0)!=0)}}a:do if((a[(c[l>>2]|0)+112>>0]|0)==1)do{d=c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0;if((a[d+156>>0]|0)!=1)break a;if((c[d+184>>2]|0)!=1)break a;d=c[c[d+180>>2]>>2]|0;j=c[m>>2]|0;l=c[d+16>>2]|0;k=l+168|0;b[k>>1]=(e[k>>1]|0)-(e[j+168>>1]|0);k=l+154|0;b[k>>1]=(e[k>>1]|0)-(e[j+154>>1]|0);k=l+156|0;c[k>>2]=(c[k>>2]|0)-(c[j+156>>2]|0)}while((a[l+112>>0]|0)==1);while(0);d=c[m>>2]|0}while((f|0)!=0);c[d+172>>2]=0;return}function qg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[b+4>>2]|0;a:do if((f|0)>0?(g=c[e+4>>2]|0,(g|0)>0):0)if((f|0)<(g|0)){b=c[b>>2]|0;f=c[b>>2]|0;if(!f){f=0;break}else g=0;while(1){g=g+1|0;if((c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(d|0))break a;f=c[b+(g<<2)>>2]|0;if(!f){f=0;break}}}else{b=c[e>>2]|0;f=c[b>>2]|0;if(!f){f=0;break}else g=0;while(1){g=g+1|0;if((c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)==(a|0))break a;f=c[b+(g<<2)>>2]|0;if(!f){f=0;break}}}else f=0;while(0);return f|0}function rg(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+1040|0;r=u+4|0;t=u;s=u+8|0;p=a+16|0;a=c[p>>2]|0;d=b[a+236>>1]|0;a:do if(d<<16>>16<=(b[a+238>>1]|0)){o=d<<16>>16;b:while(1){m=c[a+196>>2]|0;h=m+(o<<6)|0;a=c[h>>2]|0;if((a|0)>0){j=m+(o<<6)+4|0;g=0;d=0;do{e=c[(c[j>>2]|0)+(g<<2)>>2]|0;f=e+16|0;if(c[(c[f>>2]|0)+112>>2]|0){if(!d){c[r>>2]=c[12648];d=ak(116990,r,0)|0}c[t>>2]=g;Oz(s,160852,t)|0;a=Xk(d,s,1)|0;xl(a,116993,24,1)|0;n=c[(c[f>>2]|0)+180>>2]|0;l=c[n>>2]|0;l=c[(c[(c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;n=c[n+4>>2]|0;n=c[(c[(c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;k=(l|0)>(n|0);a=c[a+16>>2]|0;c[a+12>>2]=k?n:l;c[a+16>>2]=k?l:n;c[a+20>>2]=e;a=c[h>>2]|0}g=g+1|0}while((g|0)<(a|0));n=d;if(n){if((ek(n)|0)>1?(q=Rk(n)|0,(q|0)!=0):0){a=Sk(n,q)|0;if(!a)a=0;else{e=0;j=q;while(1){h=j+16|0;g=a;do{d=c[g+16>>2]|0;f=c[h>>2]|0;if((c[d+16>>2]|0)>(c[f+12>>2]|0)){if((c[f+16>>2]|0)<=(c[d+12>>2]|0))Sj(n,j,g,0,1)|0}else{Sj(n,g,j,0,1)|0;e=1}g=Sk(n,g)|0}while((g|0)!=0);d=Sk(n,a)|0;if(!d){a=e;break}else{j=a;a=d}}}if(a){j=am(n,116998,1)|0;k=$p((ek(n)|0)<<2)|0;l=$p((ek(n)|0)<<2)|0;a=Rk(n)|0;if(a){h=m+(o<<6)+4|0;g=a;do{if((c[(c[g+16>>2]|0)+8>>2]|0)==0?(gk(n,g,1,1)|0)!=0:0){do if(Dg(n,g,j,l)|0){f=ek(j)|0;a=Rk(j)|0;c:do if(!a)a=0;else{d=0;while(1){while(1){if(!(gk(n,a,1,0)|0))break;a=Sk(j,a)|0;if(!a){a=d;break c}}e=d+1|0;c[k+(d<<2)>>2]=c[(c[a+16>>2]|0)+20>>2];Zk(j,a)|0;a=Lj(n,a)|0;if(a)do{m=a;a=Nj(n,a)|0;Uj(n,m)|0}while((a|0)!=0);a=Rk(j)|0;if(!a){a=e;break}else d=e}}while(0);if((a|0)!=(f|0))break b;_z(l,f,4,12);if((f|0)>0)a=0;else break;do{m=l+(a<<2)|0;e=c[k+(a<<2)>>2]|0;c[(c[e+16>>2]|0)+236>>2]=c[m>>2];c[(c[h>>2]|0)+(c[m>>2]<<2)>>2]=e;a=a+1|0}while((a|0)!=(f|0))}while(0);a=Rk(j)|0;if(a)do{m=a;a=Sk(j,a)|0;Zk(j,m)|0}while((a|0)!=0)}g=Sk(n,g)|0}while((g|0)!=0)}pB(k)}}dk(n)|0}}a=c[p>>2]|0;if((o|0)>=(b[a+238>>1]|0))break a;else o=o+1|0}Ia(117003,117013,265,117024)}while(0);i=u;return}function sg(d,e){d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0;w=i;i=i+32|0;v=w+16|0;s=w;if(a[124827]|0)As();a[117038]=0;c[12482]=d;f=((fk(wf(d)|0)|0)<<2)+4|0;c[12483]=$p(f)|0;c[12484]=$p(f)|0;c[12485]=8;c[13361]=24;h[4167]=.995;f=zj(d,117039)|0;if((f|0)!=0?(j=+Xz(f),j>0.0):0){x=j*+(c[12485]|0);c[12485]=x<1.0?1:~~x;j=j*+(c[13361]|0);c[13361]=j<1.0?1:~~j}t=d+16|0;f=c[t>>2]|0;if(b[f+136>>1]&16){p=(b[f+238>>1]|0)+2|0;q=$p(p<<2)|0;Fg(d,q,p,0)|0;pB(q)}ni(d);Ji(d,1);xg(d);Gg(d);f=c[t>>2]|0;c[12486]=b[f+236>>1];c[12487]=b[f+238>>1];if((c[f+220>>2]|0)>0){m=0;k=0;do{c[f+192>>2]=c[(c[f+216>>2]|0)+(m<<2)>>2];if((m|0)>0?(n=b[f+236>>1]|0,o=b[f+238>>1]|0,n<<16>>16<=o<<16>>16):0){f=c[f+196>>2]|0;g=o<<16>>16;l=n<<16>>16;while(1){p=f+(l<<6)+4|0;q=f+(l<<6)|0;c[p>>2]=(c[p>>2]|0)+(c[q>>2]<<2);c[q>>2]=0;if((l|0)<(g|0))l=l+1|0;else break}}k=(Hg(d,0,e)|0)+k|0;m=m+1|0;f=c[t>>2]|0;g=f+220|0;l=c[g>>2]|0}while((m|0)<(l|0));p=g;m=l;if((m|0)<2){g=f;r=15}else{n=c[f+216>>2]|0;o=0;l=0;while(1){g=c[n+(o<<2)>>2]|0;if(l)c[(c[l+16>>2]|0)+164>>2]=g;q=c[g+16>>2]|0;c[q+168>>2]=l;l=c[q+164>>2]|0;if(l){g=l;while(1){l=c[(c[g+16>>2]|0)+164>>2]|0;if(!l)break;else g=l}}o=o+1|0;if((o|0)==(m|0))break;else l=g}c[p>>2]=1;c[f+192>>2]=c[n>>2];l=c[12486]&65535;b[f+236>>1]=l;g=c[12487]&65535;b[f+238>>1]=g;q=k}}else{g=f;k=0;r=15}if((r|0)==15){f=g;l=b[g+236>>1]|0;g=b[g+238>>1]|0;q=k}if(l<<16>>16<=g<<16>>16){p=c[22667]|0;o=l<<16>>16;while(1){g=c[f+196>>2]|0;l=c[g+(o<<6)+8>>2]|0;c[g+(o<<6)>>2]=l;m=c[g+(o<<6)+12>>2]|0;c[g+(o<<6)+4>>2]=m;a:do if((l|0)>0){k=0;while(1){n=c[m+(k<<2)>>2]|0;if(!n)break;c[(c[n+16>>2]|0)+236>>2]=k;k=k+1|0;if((k|0)>=(l|0))break a}if(a[124827]|0){g=ok(d)|0;f=c[(c[(c[t>>2]|0)+196>>2]|0)+(o<<6)>>2]|0;c[s>>2]=g;c[s+4>>2]=o;c[s+8>>2]=k;c[s+12>>2]=f;Bz(p,117047,s)|0;f=c[t>>2]|0;g=c[f+196>>2]|0}c[g+(o<<6)>>2]=k}while(0);if((o|0)<(b[f+238>>1]|0))o=o+1|0;else break}}do if((c[f+180>>2]|0)>=1){k=f;l=1;f=q;while(1){g=(Ig(c[(c[k+184>>2]|0)+(l<<2)>>2]|0,e)|0)+f|0;k=c[t>>2]|0;f=c[k+180>>2]|0;if((l|0)>=(f|0))break;else{l=l+1|0;f=g}}if((f|0)>0){f=zj(d,117097)|0;if((f|0)!=0?(Ls(f)|0)<<24>>24==0:0){q=g;break}vi(d);a[117038]=1;q=Hg(d,2,e)|0}else q=g}while(0);f=c[12484]|0;if(f){pB(f);c[12484]=0}f=c[12483]|0;if(f){pB(f);c[12483]=0}f=c[t>>2]|0;if((c[f+180>>2]|0)>=1){g=1;while(1){vg(c[(c[f+184>>2]|0)+(g<<2)>>2]|0);f=c[t>>2]|0;if((g|0)<(c[f+180>>2]|0))g=g+1|0;else break}}g=b[f+236>>1]|0;if(g<<16>>16<=(b[f+238>>1]|0)){k=f;l=f;o=g<<16>>16;while(1){f=c[k+196>>2]|0;if((c[f+(o<<6)>>2]|0)>0){k=l;n=0;do{m=(c[(c[f+(o<<6)+4>>2]|0)+(n<<2)>>2]|0)+16|0;g=c[m>>2]|0;c[g+236>>2]=n;f=c[g+188>>2]|0;if((f|0)!=0?(u=c[f>>2]|0,(u|0)!=0):0){l=u;f=0;do{k=l+16|0;if((a[(c[k>>2]|0)+112>>0]|0)==4){ng(l);pB(c[k>>2]|0);pB(l);g=c[m>>2]|0;f=f+-1|0}f=f+1|0;l=c[(c[g+188>>2]|0)+(f<<2)>>2]|0}while((l|0)!=0);k=c[t>>2]|0}n=n+1|0;f=c[k+196>>2]|0}while((n|0)<(c[f+(o<<6)>>2]|0));g=k}else g=l;f=c[f+(o<<6)+56>>2]|0;if(!f)f=k;else{pB(c[f+8>>2]|0);pB(f);g=c[t>>2]|0;f=g}if((o|0)<(b[f+238>>1]|0)){k=f;l=g;o=o+1|0}else break}}if(a[124827]|0){u=c[22667]|0;d=ok(d)|0;x=+Bs();c[v>>2]=d;c[v+4>>2]=q;h[v+8>>3]=x;Bz(u,117108,v)|0}i=w;return}function tg(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;h=a+16|0;a=c[h>>2]|0;f=c[a+268>>2]|0;if(((f|0)!=0?(g=b[a+236>>1]|0,g<<16>>16<=(b[a+238>>1]|0)):0)?(d=g<<16>>16,c[f+(d<<2)>>2]=c[c[(c[a+196>>2]|0)+(d<<6)+4>>2]>>2],e=c[h>>2]|0,g<<16>>16<(b[e+238>>1]|0)):0)do{d=d+1|0;c[(c[e+268>>2]|0)+(d<<2)>>2]=c[c[(c[e+196>>2]|0)+(d<<6)+4>>2]>>2];e=c[h>>2]|0}while((d|0)<(b[e+238>>1]|0));return}function ug(a){a=a|0;var b=0,d=0;tg(a);d=a+16|0;a=c[d>>2]|0;if((c[a+180>>2]|0)>=1){b=1;while(1){ug(c[(c[a+184>>2]|0)+(b<<2)>>2]|0);a=c[d>>2]|0;if((b|0)>=(c[a+180>>2]|0))break;else b=b+1|0}}return}function vg(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=a+16|0;d=c[g>>2]|0;if((c[d+180>>2]|0)>=1){e=1;while(1){vg(c[(c[d+184>>2]|0)+(e<<2)>>2]|0);d=c[g>>2]|0;if((e|0)<(c[d+180>>2]|0))e=e+1|0;else break}}e=c[d+268>>2]|0;a:do if((e|0)!=0?(f=b[d+236>>1]|0,f<<16>>16<=(b[d+238>>1]|0)):0){f=f<<16>>16;while(1){i=c[e+(f<<2)>>2]|0;h=Jg(a,i,-1)|0;i=Jg(a,i,1)|0;c[(c[(c[g>>2]|0)+268>>2]|0)+(f<<2)>>2]=h;j=c[(c[(c[(wf(a)|0)+16>>2]|0)+196>>2]|0)+(f<<6)+4>>2]|0;h=c[(c[h+16>>2]|0)+236>>2]|0;d=c[g>>2]|0;e=c[d+196>>2]|0;c[e+(f<<6)+4>>2]=j+(h<<2);c[e+(f<<6)>>2]=(c[(c[i+16>>2]|0)+236>>2]|0)+1-h;if((f|0)>=(b[d+238>>1]|0))break a;e=c[d+268>>2]|0;f=f+1|0}}while(0);return}function wg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[d>>2]&3;j=c[((g|0)==2?d:d+-48|0)+40>>2]|0;h=c[(c[j+16>>2]|0)+188>>2]|0;a:do if((h|0)!=0?(e=c[h>>2]|0,(e|0)!=0):0){l=d+48|0;i=c[((g|0)==3?d:l)+40>>2]|0;f=0;while(1){f=f+1|0;if((c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)==(i|0))break;e=c[h+(f<<2)>>2]|0;if(!e){m=15;break a}}og(d,e);f=(c[d+16>>2]|0)+172|0;if(!(c[f>>2]|0))c[f>>2]=e;e=c[e+16>>2]|0;if((a[e+112>>0]|0)==4?(k=e+116|0,(c[k>>2]|0)==0):0)c[k>>2]=d;f=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;e=c[f+204>>2]|0;f=c[f+208>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+204>>2]=e;b=(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+208|0;k=c[b>>2]|0;c[b>>2]=k+1;c[(c[(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+204>>2]|0)+(k<<2)>>2]=d;d=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;c[(c[d+204>>2]|0)+(c[d+208>>2]<<2)>>2]=0}else m=15;while(0);if((m|0)==15){m=gg(j,c[((g|0)==3?d:d+48|0)+40>>2]|0,d)|0;l=c[d+16>>2]|0;d=c[m+16>>2]|0;a[d+112>>0]=(a[l+112>>0]|0)==4?4:3;c[d+96>>2]=c[l+96>>2];mg(b,m)}return}function xg(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=a+16|0;i=$p((b[(c[h>>2]|0)+238>>1]<<2)+8|0)|0;d=Rk(a)|0;if(d)do{e=i+(c[(c[d+16>>2]|0)+232>>2]<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=Lj(a,d)|0;if(e)do{j=c[e>>2]&3;f=c[(c[(c[((j|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;j=c[(c[(c[((j|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;k=(f|0)>(j|0);g=k?f:j;f=(k?j:f)+1|0;if((f|0)<(g|0))do{k=i+(f<<2)|0;c[k>>2]=(c[k>>2]|0)+1;f=f+1|0}while((f|0)<(g|0));e=Nj(a,e)|0}while((e|0)!=0);d=Sk(a,d)|0}while((d|0)!=0);d=$p((b[(c[h>>2]|0)+238>>1]<<6)+128|0)|0;k=c[h>>2]|0;c[k+196>>2]=d;e=b[k+236>>1]|0;if(e<<16>>16<=(b[k+238>>1]|0)){e=e<<16>>16;while(1){j=i+(e<<2)|0;k=c[j>>2]|0;c[d+(e<<6)>>2]=k;c[d+(e<<6)+8>>2]=k;j=$p((c[j>>2]<<2)+4|0)|0;k=c[h>>2]|0;d=c[k+196>>2]|0;c[d+(e<<6)+4>>2]=j;c[d+(e<<6)+12>>2]=j;if((e|0)>=(b[k+238>>1]|0))break;else e=e+1|0}}pB(i);return}function yg(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+96|0;o=p+64|0;n=p+48|0;h=p+24|0;f=p;j=d+16|0;k=c[(c[j>>2]|0)+232>>2]|0;l=a+16|0;e=c[(c[l>>2]|0)+196>>2]|0;m=c[e+(k<<6)>>2]|0;do if((c[e+(k<<6)+8>>2]|0)>=1){c[(c[e+(k<<6)+4>>2]|0)+(m<<2)>>2]=d;c[(c[j>>2]|0)+236>>2]=m;e=c[l>>2]|0;f=c[e+196>>2]|0;a=f+(k<<6)|0;g=c[a>>2]|0;c[a>>2]=g+1;if((g|0)>=(c[f+(k<<6)+8>>2]|0))Ia(117202,117013,1346,117238);g=c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;if((m|0)>(g|0)){d=ok(d)|0;n=c[(c[j>>2]|0)+236>>2]|0;o=c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;c[h>>2]=1359;c[h+4>>2]=d;c[h+8>>2]=n;c[h+12>>2]=k;c[h+16>>2]=o;dj(1,117254,h)|0;break}a=b[e+236>>1]|0;e=b[e+238>>1]|0;if((k|0)<(a|0)|(k|0)>(e<<16>>16|0)){c[n>>2]=1364;c[n+4>>2]=k;c[n+8>>2]=a;c[n+12>>2]=e<<16>>16;dj(1,117327,n)|0;break}if(((c[f+(k<<6)+4>>2]|0)+(m<<2)|0)>>>0>((c[f+(k<<6)+12>>2]|0)+(g<<2)|0)>>>0){m=ok(d)|0;n=c[(c[l>>2]|0)+196>>2]|0;d=(c[n+(k<<6)+4>>2]|0)+(c[(c[j>>2]|0)+236>>2]<<2)|0;n=(c[n+(k<<6)+12>>2]|0)+(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]<<2)|0;c[o>>2]=1370;c[o+4>>2]=k;c[o+8>>2]=m;c[o+12>>2]=d;c[o+16>>2]=k;c[o+20>>2]=k;c[o+24>>2]=n;dj(1,117388,o)|0}}else{n=ok(a)|0;o=ok(d)|0;c[f>>2]=1339;c[f+4>>2]=n;c[f+8>>2]=o;c[f+12>>2]=k;c[f+16>>2]=m;dj(1,117147,f)|0}while(0);i=p;return}function zg(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;r=i;i=i+16|0;m=r;n=d+16|0;o=Cs(c[(c[n>>2]|0)+232>>2]|0)|0;g=c[n>>2]|0;k=g+192|0;f=c[k>>2]|0;if(f)do{j=c[f+16>>2]|0;a[j+157>>0]=0;f=c[j+164>>2]|0}while((f|0)!=0);h=b[g+236>>1]|0;f=b[g+238>>1]|0;if(h<<16>>16<=f<<16>>16){j=f<<16>>16;g=c[g+196>>2]|0;f=h<<16>>16;while(1){c[g+(f<<6)>>2]=0;if((f|0)<(j|0))f=f+1|0;else break}}f=c[k>>2]|0;if(f){j=(e|0)==0;g=f;do{h=g+16|0;f=c[h>>2]|0;if((c[c[(j?f+172|0:f+180|0)>>2]>>2]|0)==0?(l=f+157|0,(a[l>>0]|0)==0):0){a[l>>0]=1;Es(o,g);f=Fs(o)|0;if(f)do{if((a[(c[f+16>>2]|0)+159>>0]|0)==7)ui(d,f,e,o);else{yg(d,f);Ag(o,f,e)}f=Fs(o)|0}while((f|0)!=0);f=c[h>>2]|0}g=c[f+164>>2]|0}while((g|0)!=0)}if(Fs(o)|0)dj(1,117500,m)|0;f=c[n>>2]|0;g=b[f+236>>1]|0;if(g<<16>>16<=(b[f+238>>1]|0)){l=g<<16>>16;while(1){g=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0;a[g+(l<<6)+49>>0]=0;if((c[f+116>>2]&1|0)!=0?(p=c[f+196>>2]|0,q=c[p+(l<<6)>>2]|0,(q|0)>0):0){h=c[p+(l<<6)+4>>2]|0;j=q+-1|0;k=(j|0)/2|0;f=0;while(1){v=c[h+(f<<2)>>2]|0;s=c[h+(j-f<<2)>>2]|0;w=c[v+16>>2]|0;e=c[w+232>>2]|0;w=w+236|0;m=c[w>>2]|0;t=s+16|0;u=c[(c[t>>2]|0)+236>>2]|0;c[w>>2]=u;c[(c[g+(e<<6)+4>>2]|0)+(u<<2)>>2]=v;c[(c[t>>2]|0)+236>>2]=m;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(m<<2)>>2]=s;if((f|0)>=(k|0))break;g=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0;f=f+1|0}f=c[n>>2]|0}if((l|0)<(b[f+238>>1]|0))l=l+1|0;else break}}if((wf(d)|0)==(d|0)?(Bg(0)|0)>0:0)Kg(d,0);Ds(o);i=r;return}function Ag(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=d+16|0;d=c[i>>2]|0;if(!e){if((c[d+184>>2]|0)>0){h=0;do{e=c[(c[d+180>>2]|0)+(h<<2)>>2]|0;f=e+-48|0;g=(c[(c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[g>>0]|0)){a[g>>0]=1;Es(b,c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0);d=c[i>>2]|0}h=h+1|0}while((h|0)<(c[d+184>>2]|0))}}else if((c[d+176>>2]|0)>0){h=0;do{e=c[(c[d+172>>2]|0)+(h<<2)>>2]|0;f=e+48|0;g=(c[(c[((c[e>>2]&3|0)==3?e:f)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[g>>0]|0)){a[g>>0]=1;Es(b,c[((c[e>>2]&3|0)==3?e:f)+40>>2]|0);d=c[i>>2]|0}h=h+1|0}while((h|0)<(c[d+176>>2]|0))}return}function Bg(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+16|0;w=y;x=(c[12482]|0)+16|0;d=c[x>>2]|0;e=b[d+236>>1]|0;if(e<<16>>16<(b[d+238>>1]|0)){h=d;d=0;v=e<<16>>16;while(1){f=c[h+196>>2]|0;if(!(a[f+(v<<6)+49>>0]|0)){s=c[f+(v<<6)+4>>2]|0;g=v+1|0;e=c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(g<<6)>>2]|0;if((c[12488]|0)>(e|0)){e=h;u=f}else{e=e+1|0;c[12488]=e;f=c[12489]|0;if(!f)e=aq(e<<2)|0;else e=cq(f,e<<2)|0;c[12489]=e;u=c[x>>2]|0;e=u;u=c[u+196>>2]|0}t=u+(g<<6)|0;if((c[t>>2]|0)>0){f=c[12489]|0;h=0;do{c[f+(h<<2)>>2]=0;h=h+1|0}while((h|0)<(c[t>>2]|0))}r=u+(v<<6)|0;f=c[r>>2]|0;if((f|0)>0){l=f;f=0;h=0;q=0;do{p=c[(c[(c[s+(q<<2)>>2]|0)+16>>2]|0)+180>>2]|0;j=c[p>>2]|0;if((h|0)>0){if(j){o=c[12489]|0;m=j;n=0;do{k=c[(c[(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if((k|0)<(h|0)){m=b[(c[m+16>>2]|0)+154>>1]|0;do{k=k+1|0;f=(_(c[o+(k<<2)>>2]|0,m)|0)+f|0}while((k|0)!=(h|0))}n=n+1|0;m=c[p+(n<<2)>>2]|0}while((m|0)!=0);m=23}}else m=23;if((m|0)==23){m=0;if(j){l=c[12489]|0;k=0;do{o=c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;h=(o|0)>(h|0)?o:h;o=l+(o<<2)|0;c[o>>2]=(c[o>>2]|0)+(b[(c[j+16>>2]|0)+154>>1]|0);k=k+1|0;j=c[p+(k<<2)>>2]|0}while((j|0)!=0);l=c[r>>2]|0}}q=q+1|0}while((q|0)<(l|0));if((l|0)>0){k=c[u+(v<<6)+4>>2]|0;j=0;do{h=c[(c[k+(j<<2)>>2]|0)+16>>2]|0;if(a[h+145>>0]|0){s=h+180|0;c[w>>2]=c[s>>2];c[w+4>>2]=c[s+4>>2];f=(Lg(w,1)|0)+f|0}j=j+1|0}while((j|0)!=(l|0))}}else f=0;k=c[t>>2]|0;if((k|0)>0){j=c[u+(g<<6)+4>>2]|0;l=0;do{h=c[(c[j+(l<<2)>>2]|0)+16>>2]|0;if(a[h+145>>0]|0){t=h+172|0;c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];f=(Lg(w,-1)|0)+f|0}l=l+1|0}while((l|0)!=(k|0))}c[u+(v<<6)+52>>2]=f;a[u+(v<<6)+49>>0]=1}else{f=c[f+(v<<6)+52>>2]|0;g=v+1|0;e=h}d=f+d|0;if((g|0)<(b[e+238>>1]|0)){h=e;v=g}else break}}else d=0;i=y;return d|0}function Cg(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]&3;d=c[(c[((e|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0;if((a[d+156>>0]|0)==1)f=2;else f=(a[d+160>>0]|0)<2&1;d=c[(c[((e|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0;if((a[d+156>>0]|0)==1)d=2;else d=(a[d+160>>0]|0)<2&1;b=(c[b+16>>2]|0)+156|0;c[b>>2]=_(c[b>>2]|0,c[49960+(d*12|0)+(f<<2)>>2]|0)|0;return}function Dg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=c[b+16>>2]|0;c[g+8>>2]=1;g=c[(c[(c[g+20>>2]|0)+16>>2]|0)+236>>2]|0;c[e+((ek(d)|0)<<2)>>2]=g;Wk(d,b,1)|0;g=Lj(a,b)|0;if(!g)f=0;else{f=0;do{j=c[g>>2]&3;h=c[((j|0)==2?g:g+-48|0)+40>>2]|0;i=c[h+16>>2]|0;f=((c[(c[(c[i+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[(c[(c[((j|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)+f|0;if(!(c[i+8>>2]|0))f=(Dg(a,h,d,e)|0)+f|0;g=Nj(a,g)|0}while((g|0)!=0)}g=Oj(a,b)|0;if(g)do{i=c[g>>2]&3;h=c[((i|0)==3?g:g+48|0)+40>>2]|0;j=c[h+16>>2]|0;f=((c[(c[(c[(c[(c[((i|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[j+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)+f|0;if(!(c[j+8>>2]|0))f=(Dg(a,h,d,e)|0)+f|0;g=Pj(a,g)|0}while((g|0)!=0);return f|0}function Eg(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function Fg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0;l=a+16|0;g=c[l>>2]|0;if((c[g+180>>2]|0)>=1){i=1;while(1){f=Fg(c[(c[g+184>>2]|0)+(i<<2)>>2]|0,d,e,f)|0;g=c[l>>2]|0;if((i|0)>=(c[g+180>>2]|0))break;else i=i+1|0}}if((wf(a)|0)!=(a|0)){CB(d|0,0,e<<2|0)|0;g=Rk(a)|0;if(g)do{k=g+16|0;c[d+(c[(c[k>>2]|0)+232>>2]<<2)>>2]=1;i=Lj(a,g)|0;if(i)do{e=c[(c[k>>2]|0)+232>>2]|0;j=i+-48|0;if((e|0)<(c[(c[(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)+16>>2]|0)+232>>2]|0))do{e=e+1|0;c[d+(e<<2)>>2]=1}while((e|0)<(c[(c[(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)+16>>2]|0)+232>>2]|0));i=Nj(a,i)|0}while((i|0)!=0);g=Sk(a,g)|0}while((g|0)!=0);g=c[l>>2]|0;i=b[g+236>>1]|0;if(i<<16>>16<=(b[g+238>>1]|0)){i=i<<16>>16;while(1){if(!(c[d+(i<<2)>>2]|0)){if(!f)f=am(wf(a)|0,117916,1)|0;g=Xk(f,0,1)|0;xl(g,160855,304,1)|0;k=g+16|0;e=c[k>>2]|0;c[e+232>>2]=i;h[e+96>>3]=.5;h[e+88>>3]=.5;h[e+80>>3]=1.0;c[e+216>>2]=1;c[e+176>>2]=0;e=$p(20)|0;j=c[k>>2]|0;c[j+172>>2]=e;c[j+184>>2]=0;j=$p(20)|0;c[(c[k>>2]|0)+180>>2]=j;Wk(a,g,1)|0;g=c[l>>2]|0}if((i|0)<(b[g+238>>1]|0))i=i+1|0;else break}}}return f|0}function Gg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+8|0;f=h;d=c[13371]|0;a:do if((d|0)!=0|(c[13400]|0)!=0){d=Is(b,d,0)|0;if(d){switch(a[d>>0]|0){case 0:break a;case 111:{if(!(lA(d,117836)|0)){Zg(b,1);break a}break}case 105:{if(!(lA(d,122259)|0)){Zg(b,0);break a}break}default:{}}c[f>>2]=d;dj(1,117840,f)|0;break}d=bm(b)|0;if(d)do{if(!(yh(d)|0))Gg(d);d=cm(d)|0}while((d|0)!=0);if((c[13400]|0)!=0?(e=Rk(b)|0,(e|0)!=0):0)do{d=Is(e,c[13400]|0,0)|0;b:do if(d){switch(a[d>>0]|0){case 0:break b;case 111:{if(!(lA(d,117836)|0)){_g(b,e,1);break b}break}case 105:{if(!(lA(d,122259)|0)){_g(b,e,0);break b}break}default:{}}f=ok(e)|0;c[g>>2]=d;c[g+4>>2]=f;dj(1,117871,g)|0}while(0);e=Sk(b,e)|0}while((e|0)!=0)}while(0);i=h;return}function Hg(e,f,g){e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;N=i;i=i+32|0;L=N;if((f|0)>1){j=Bg(0)|0;Wg(e);if((f|0)<3)x=3;else f=0}else{j=2147483647;x=3}if((x|0)==3){I=e+16|0;J=c[22667]|0;l=j;k=j;H=f;while(1){f=c[13361]|0;if((H|0)<2){f=(f|0)>4?4:f;if((wf(e)|0)==(e|0))zg(e,H);if(!H)Qg(e);Rg(e);k=Bg(0)|0;if((k|0)>(l|0))j=l;else{Wg(e);j=k}}else if((k|0)>(l|0)){Xg(e);j=l;k=l}else{j=l;k=l}a:do if((f|0)>0){G=0;l=0;while(1){if(a[124827]|0){c[L>>2]=H;c[L+4>>2]=G;c[L+8>>2]=l;c[L+12>>2]=k;c[L+16>>2]=j;Bz(J,117764,L)|0}F=l+1|0;if((k|0)==0|(l|0)>=(c[12485]|0))break a;D=((G|0)%4|0|0)<2;C=D&1;l=c[I>>2]|0;k=b[l+236>>1]|0;if(!(G&1)){E=1;m=(k<<16>>16<=(b[(c[(c[12482]|0)+16>>2]|0)+236>>1]|0)&1)+(k<<16>>16)|0;k=b[l+238>>1]|0}else{m=b[l+238>>1]|0;E=-1;m=((m<<16>>16>=(b[(c[(c[12482]|0)+16>>2]|0)+238>>1]|0))<<31>>31)+(m<<16>>16)|0;k=k<<16>>16}A=E+k|0;b:do if((m|0)!=(A|0)){B=(E|0)<0;k=m;while(1){w=c[12484]|0;z=c[l+196>>2]|0;y=c[z+(k<<6)+4>>2]|0;if((c[z+(k<<6)>>2]|0)>0){t=w+4|0;v=0;while(1){s=(c[y+(v<<2)>>2]|0)+16|0;r=c[s>>2]|0;if(B){q=c[r+180>>2]|0;l=c[q>>2]|0;if(!l)x=36;else{m=0;p=0;do{n=c[l+16>>2]|0;if((b[n+154>>1]|0)>0){c[w+(m<<2)>>2]=d[n+88>>0]|c[(c[(c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8;m=m+1|0}p=p+1|0;l=c[q+(p<<2)>>2]|0}while((l|0)!=0);x=35}}else{q=c[r+172>>2]|0;l=c[q>>2]|0;if(!l)x=36;else{m=0;p=0;do{n=c[l+16>>2]|0;if((b[n+154>>1]|0)>0){c[w+(m<<2)>>2]=d[n+48>>0]|c[(c[(c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8;m=m+1|0}p=p+1|0;l=c[q+(p<<2)>>2]|0}while((l|0)!=0);x=35}}c:do if((x|0)==35){x=0;switch(m|0){case 0:{x=36;break c}case 1:{h[r+240>>3]=+(c[w>>2]|0);break c}case 2:{h[r+240>>3]=+(((c[t>>2]|0)+(c[w>>2]|0)|0)/2|0|0);break c}default:{_z(w,m,4,12);l=(m|0)/2|0;if(m&1){h[(c[s>>2]|0)+240>>3]=+(c[w+(l<<2)>>2]|0);break c}p=c[w+(l<<2)>>2]|0;n=(c[w+(m+-1<<2)>>2]|0)-p|0;l=c[w+(l+-1<<2)>>2]|0;m=l-(c[w>>2]|0)|0;if((m|0)==(n|0)){h[(c[s>>2]|0)+240>>3]=+((l+p|0)/2|0|0);break c}else{u=+(((_(m,p)|0)+(_(l,n)|0)|0)/(m+n|0)|0|0);h[(c[s>>2]|0)+240>>3]=u;break c}}}}while(0);if((x|0)==36)h[r+240>>3]=-1.0;v=v+1|0;l=c[(c[I>>2]|0)+196>>2]|0;m=c[l+(k<<6)>>2]|0;if((v|0)>=(m|0)){t=l;v=m;break}}if((v|0)>0){l=0;s=0;do{r=c[(c[y+(s<<2)>>2]|0)+16>>2]|0;if((c[r+184>>2]|0)==0?(c[r+176>>2]|0)==0:0){do if((c[r+200>>2]|0)>0){q=c[r+196>>2]|0;m=c[q>>2]|0;m=c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0;n=c[q+4>>2]|0;if(n){p=1;do{z=c[((c[n>>2]&3|0)==3?n:n+48|0)+40>>2]|0;m=(c[(c[z+16>>2]|0)+236>>2]|0)>(c[(c[m+16>>2]|0)+236>>2]|0)?z:m;p=p+1|0;n=c[q+(p<<2)>>2]|0}while((n|0)!=0)}o=+h[(c[m+16>>2]|0)+240>>3];if(!(o>=0.0)){m=1;break}h[r+240>>3]=o+1.0;m=0}else{if((c[r+192>>2]|0)<=0){m=1;break}q=c[r+188>>2]|0;m=c[q>>2]|0;m=c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0;n=c[q+4>>2]|0;if(n){p=1;do{z=c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0;m=(c[(c[z+16>>2]|0)+236>>2]|0)<(c[(c[m+16>>2]|0)+236>>2]|0)?z:m;p=p+1|0;n=c[q+(p<<2)>>2]|0}while((n|0)!=0)}o=+h[(c[m+16>>2]|0)+240>>3];if(!(o>0.0)){m=1;break}h[r+240>>3]=o+-1.0;m=0}while(0);l=(m|l&255)&255}s=s+1|0}while((s|0)!=(v|0));z=c[t+(k<<6)+4>>2]|0;w=(l&255|C|0)==0;l=0;y=z+(v<<2)|0;while(1){t=v;v=v+-1|0;d:do if(z>>>0<y>>>0){m=z;while(1){e:while(1){p=c[m>>2]|0;n=c[p+16>>2]|0;u=+h[n+240>>3];if(u<0.0){m=m+4|0;if(m>>>0<y>>>0)continue;else break d}s=0;while(1){r=s<<24>>24==0;while(1){m=m+4|0;if(m>>>0>=y>>>0)break d;if(r){x=67;break}q=c[m>>2]|0;if(!(c[(c[q+16>>2]|0)+212>>2]|0)){r=q;x=69;break}}if((x|0)==67){r=c[m>>2]|0;q=r}else if((x|0)==69)q=r;if(Mg(e,p,q)|0)continue e;r=c[r+16>>2]|0;o=+h[r+240>>3];if(o>=0.0)break;s=(c[r+212>>2]|0)==0?s:1}s=~~u;x=~~o;if((s|0)>(x|0)|D&(s|0)==(x|0))break}s=c[n+232>>2]|0;O=n+236|0;x=c[O>>2]|0;r=q+16|0;n=c[(c[r>>2]|0)+236>>2]|0;c[O>>2]=n;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+4>>2]|0)+(n<<2)>>2]=p;c[(c[r>>2]|0)+236>>2]=x;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+4>>2]|0)+(x<<2)>>2]=q;l=l+1|0}}while(0);if((t|0)<=1)break;else y=w?y+-4|0:y}if((l|0)!=0?(K=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0,a[K+(k<<6)+49>>0]=0,(k|0)>0):0)a[K+(k+-1<<6)+49>>0]=0}}k=k+E|0;if((k|0)==(A|0))break b;l=c[I>>2]|0}}while(0);Kg(e,C^1);k=Bg(0)|0;if((k|0)>(j|0)){m=j;l=F}else{Wg(e);m=k;l=+(k|0)<+(j|0)*+h[4167]?0:F}G=G+1|0;if((G|0)>=(f|0)){j=m;break}else j=m}}while(0);H=H+1|0;if(!k){k=0;break}if((H|0)>=3)break;else l=j}if((k|0)>(j|0))Xg(e)}if((j|0)>0){Kg(e,0);K=Bg(0)|0}else K=j;f:do if((g|0)!=0&(f|0)>0){I=e+16|0;j=c[I>>2]|0;J=0;g:while(1){k=b[j+238>>1]|0;if(k<<16>>16>=(b[j+236>>1]|0)){n=j;H=k<<16>>16;while(1){k=c[n+196>>2]|0;a[k+(H<<6)+48>>0]=0;l=c[k+(H<<6)>>2]|0;if((l|0)>1){F=(H|0)>0;G=H+1|0;m=k;k=n;E=0;do{r=c[m+(H<<6)+4>>2]|0;A=c[r+(E<<2)>>2]|0;E=E+1|0;B=c[r+(E<<2)>>2]|0;C=A+16|0;v=c[C>>2]|0;w=v+236|0;x=c[w>>2]|0;D=B+16|0;q=c[D>>2]|0;y=c[q+236>>2]|0;if((x|0)>=(y|0))break g;do if(!(Mg(e,A,B)|0)){if(F){n=Ng(A,B)|0;p=Ng(B,A)|0}else{n=0;p=0}if((c[m+(G<<6)>>2]|0)>0){n=(Og(A,B)|0)+n|0;p=(Og(B,A)|0)+p|0}if((p|0)<=(n|0)?(M=a[v+156>>0]|0,M<<24>>24!=(a[q+156>>0]|0)):0){if((l|0)>0){k=0;j=0;m=0;do{O=(a[(c[(c[r+(m<<2)>>2]|0)+16>>2]|0)+156>>0]|0)==0&1;k=(O^1)+k|0;j=O+j|0;m=m+1|0}while((m|0)!=(l|0));m=M<<24>>24==0;m=(j|0)<(k|0)?(m?A:B):m?B:A;k=0;j=0;do{j=(c[r+(k<<2)>>2]|0)==(m|0)?k:j;k=k+1|0}while((k|0)!=(l|0));p=m}else{p=M<<24>>24==0?B:A;j=0}z=(a[(c[p+16>>2]|0)+156>>0]|0)==0&1;h:do if((j|0)>0){m=j;k=0;while(1){n=m;m=m+-1|0;if((a[(c[(c[r+(m<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0)){t=k;break h}k=k+1|0;if((n|0)<=1){t=k;break}}}else t=0;while(0);k=j+1|0;i:do if((k|0)<(l|0)){m=0;while(1){if((a[(c[(c[r+(k<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0)){s=m;break i}m=m+1|0;k=k+1|0;if((k|0)>=(l|0)){s=m;break}}}else s=0;while(0);r=c[v+232>>2]|0;c[w>>2]=y;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(y<<2)>>2]=A;c[(c[D>>2]|0)+236>>2]=x;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(x<<2)>>2]=B;r=c[I>>2]|0;m=c[r+196>>2]|0;l=c[m+(H<<6)>>2]|0;if((l|0)>0){k=c[m+(H<<6)+4>>2]|0;n=0;do{j=(c[k+(n<<2)>>2]|0)==(p|0)?n:j;n=n+1|0}while((n|0)!=(l|0))}j:do if((j|0)>0){n=c[m+(H<<6)+4>>2]|0;p=j;k=0;do{q=p;p=p+-1|0;if((a[(c[(c[n+(p<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0))break j;k=k+1|0}while((q|0)>1)}else k=0;while(0);j=j+1|0;k:do if((j|0)<(l|0)){p=c[m+(H<<6)+4>>2]|0;n=j;j=0;do{if((a[(c[(c[p+(n<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0))break k;j=j+1|0;n=n+1|0}while((n|0)<(l|0))}else j=0;while(0);g=k-j|0;O=t-s|0;if((((g|0)>-1?g:0-g|0)|0)<=(((O|0)>-1?O:0-O|0)|0)){j=r;k=r;break}j=c[C>>2]|0;m=c[j+232>>2]|0;j=j+236|0;k=c[j>>2]|0;l=c[(c[D>>2]|0)+236>>2]|0;c[j>>2]=l;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(m<<6)+4>>2]|0)+(l<<2)>>2]=A;c[(c[D>>2]|0)+236>>2]=k;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(m<<6)+4>>2]|0)+(k<<2)>>2]=B;k=c[I>>2]|0;m=c[k+196>>2]|0;l=c[m+(H<<6)>>2]|0;j=k}}while(0)}while((E|0)<(l+-1|0))}else k=n;if((H|0)>(b[k+236>>1]|0)){n=k;H=H+-1|0}else break}}J=J+1|0;if((J|0)>=(f|0))break f}Ia(117510,117013,721,117828)}while(0);i=N;return K|0}function Ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;ri(a);Gg(a);Qg(a);Rg(a);d=Hg(a,2,b)|0;g=a+16|0;e=c[g>>2]|0;if((c[e+180>>2]|0)>=1){f=1;while(1){d=(Ig(c[(c[e+184>>2]|0)+(f<<2)>>2]|0,b)|0)+d|0;e=c[g>>2]|0;if((f|0)>=(c[e+180>>2]|0))break;else f=f+1|0}}tg(a);return d|0}function Jg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if(!d)Ia(117551,117013,1023,117553);i=(e|0)<0;f=d;while(1){d=c[d+16>>2]|0;h=c[d+236>>2]|0;if(i){if((h|0)<=0){d=14;break}d=(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(c[d+232>>2]<<6)+4>>2]|0)+(h+-1<<2)|0}else d=(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(c[d+232>>2]<<6)+4>>2]|0)+(h+1<<2)|0;d=c[d>>2]|0;if(!d){d=14;break}g=c[d+16>>2]|0;if((_((c[g+236>>2]|0)-h|0,e)|0)<=0){d=10;break}if((a[g+156>>0]|0)==0?(ql(b,d)|0)!=0:0){f=d;continue}h=(Pg(b,d)|0)==0;f=h?f:d}if((d|0)==10)Ia(117562,117013,1029,117553);else if((d|0)==14)return f|0;return 0}function Kg(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=d+16|0;g=c[z>>2]|0;h=b[g+236>>1]|0;k=b[g+238>>1]|0;if(h<<16>>16<=k<<16>>16){i=k<<16>>16;f=c[g+196>>2]|0;j=h<<16>>16;while(1){a[f+(j<<6)+48>>0]=1;if((j|0)<(i|0))j=j+1|0;else break}}y=(e|0)!=0;a:do if(h<<16>>16<=k<<16>>16){b:while(1){f=0;x=h<<16>>16;while(1){i=c[g+196>>2]|0;h=i+(x<<6)+48|0;if(a[h>>0]|0){a[h>>0]=0;h=c[i+(x<<6)>>2]|0;c:do if((h|0)>1){u=(x|0)>0;v=x+1|0;w=x+-1|0;j=h;e=0;h=0;do{t=c[i+(x<<6)+4>>2]|0;l=c[t+(e<<2)>>2]|0;p=c[l+16>>2]|0;s=i+(v<<6)|0;r=j+-1|0;q=p;j=c[p+236>>2]|0;while(1){e=e+1|0;m=l;l=c[t+(e<<2)>>2]|0;k=l+16|0;o=q;q=c[k>>2]|0;p=j;j=c[q+236>>2]|0;if((p|0)>=(j|0))break b;if(!(Mg(d,m,l)|0)){if(u){i=Ng(m,l)|0;n=Ng(l,m)|0}else{i=0;n=0}if((c[s>>2]|0)>0){i=(Og(m,l)|0)+i|0;n=(Og(l,m)|0)+n|0}if((i|0)>(n|0)){g=n;break}if((i|0)==(n|0)&(y&(i|0)>0)){i=n;g=n;break}}if((e|0)>=(r|0))break c}t=c[o+232>>2]|0;c[o+236>>2]=j;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(t<<6)+4>>2]|0)+(j<<2)>>2]=m;c[(c[k>>2]|0)+236>>2]=p;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(t<<6)+4>>2]|0)+(p<<2)>>2]=l;h=i-g+h|0;j=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0;a[j+(x<<6)+49>>0]=0;g=c[z>>2]|0;i=c[g+196>>2]|0;a[i+(x<<6)+48>>0]=1;if((b[g+236>>1]|0)<(x|0)){a[j+(w<<6)+49>>0]=0;a[i+(w<<6)+48>>0]=1}if((b[g+238>>1]|0)>(x|0)){a[j+(v<<6)+49>>0]=0;a[i+(v<<6)+48>>0]=1}j=c[i+(x<<6)>>2]|0}while((e|0)<(j+-1|0))}else h=0;while(0);f=h+f|0}h=b[g+238>>1]|0;if((x|0)<(h<<16>>16|0))x=x+1|0;else break}if((f|0)<=0)break a;f=b[g+236>>1]|0;if(f<<16>>16>h<<16>>16)break a;else h=f}Ia(117510,117013,770,117536)}while(0);return}function Lg(a,d){a=a|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;n=(d|0)>0;m=c[a>>2]|0;d=c[m>>2]|0;a:do if(!d)d=0;else{k=d;d=0;l=0;do{l=l+1|0;e=k;k=c[m+(l<<2)>>2]|0;a=(k|0)==0;if(n){if(a)break a;j=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;g=c[e+16>>2]|0;f=+h[g+16>>3];g=g+154|0;i=k;e=l;do{a=c[i+16>>2]|0;if(+((c[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-j|0)*(+h[a+16>>3]-f)<0.0)d=(_(b[a+154>>1]|0,b[g>>1]|0)|0)+d|0;e=e+1|0;i=c[m+(e<<2)>>2]|0}while((i|0)!=0)}else{if(a)break a;j=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;g=c[e+16>>2]|0;f=+h[g+56>>3];g=g+154|0;i=k;e=l;do{a=c[i+16>>2]|0;if(+((c[(c[(c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-j|0)*(+h[a+56>>3]-f)<0.0)d=(_(b[a+154>>1]|0,b[g>>1]|0)|0)+d|0;e=e+1|0;i=c[m+(e<<2)>>2]|0}while((i|0)!=0)}}while((k|0)!=0)}while(0);return d|0}function Mg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=c[d+16>>2]|0;g=c[j+212>>2]|0;h=c[e+16>>2]|0;i=c[h+212>>2]|0;f=(g|0)!=(i|0);do if(!(a[117038]|0))if((i|0)==0|((g|0)==0|f^1))k=9;else{if((a[j+159>>0]|0)==7?(a[j+156>>0]|0)==1:0){f=0;break}if((a[h+159>>0]|0)==7?(a[h+156>>0]|0)==1:0){f=0;break}f=1}else if(f)f=1;else k=9;while(0);if((k|0)==9){g=c[b+16>>2]|0;f=c[(c[g+196>>2]|0)+(c[j+232>>2]<<6)+56>>2]|0;if(!f)f=0;else{j=(c[g+116>>2]&1|0)==0;k=_(c[f+4>>2]|0,c[(c[(j?d:e)+16>>2]|0)+284>>2]|0)|0;f=a[(c[f+8>>2]|0)+((c[(c[(j?e:d)+16>>2]|0)+284>>2]|0)+k)>>0]|0}}return f|0}function Ng(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[(c[d+16>>2]|0)+172>>2]|0;d=c[e>>2]|0;if(!d)d=0;else{m=c[(c[a+16>>2]|0)+172>>2]|0;k=c[m>>2]|0;l=(k|0)==0;a=d;d=0;do{j=b[(c[a+16>>2]|0)+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!l){i=k;f=m;do{a=c[(c[(c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if((a|0)<=(g|0)){if((a|0)==(g|0)?+h[(c[i+16>>2]|0)+16>>3]>+h[(c[(c[e>>2]|0)+16>>2]|0)+16>>3]:0)n=8}else n=8;if((n|0)==8){n=0;d=(_(b[(c[(c[f>>2]|0)+16>>2]|0)+154>>1]|0,j)|0)+d|0}f=f+4|0;i=c[f>>2]|0}while((i|0)!=0)}e=e+4|0;a=c[e>>2]|0}while((a|0)!=0)}return d|0}function Og(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[(c[d+16>>2]|0)+180>>2]|0;d=c[e>>2]|0;if(!d)d=0;else{m=c[(c[a+16>>2]|0)+180>>2]|0;k=c[m>>2]|0;l=(k|0)==0;a=d;d=0;do{j=b[(c[a+16>>2]|0)+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!l){i=k;f=m;do{a=c[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if((a|0)<=(g|0)){if((a|0)==(g|0)?+h[(c[i+16>>2]|0)+56>>3]>+h[(c[(c[e>>2]|0)+16>>2]|0)+56>>3]:0)n=8}else n=8;if((n|0)==8){n=0;d=(_(b[(c[(c[f>>2]|0)+16>>2]|0)+154>>1]|0,j)|0)+d|0}f=f+4|0;i=c[f>>2]|0}while((i|0)!=0)}e=e+4|0;a=c[e>>2]|0}while((a|0)!=0)}return d|0}function Pg(b,d){b=b|0;d=d|0;var e=0,f=0;d=c[d+16>>2]|0;if(((a[d+156>>0]|0)==1?(c[d+176>>2]|0)==1:0)?(c[d+184>>2]|0)==1:0){d=c[d+180>>2]|0;while(1){d=c[d>>2]|0;e=c[d+16>>2]|0;if(!(a[e+112>>0]|0))break;else d=e+116|0}if(ql(b,d)|0)d=1;else f=7}else f=7;if((f|0)==7)d=0;return d|0}function Qg(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=d+16|0;e=c[k>>2]|0;f=b[e+236>>1]|0;if(f<<16>>16<=(b[e+238>>1]|0)){j=f<<16>>16;while(1){f=c[e+196>>2]|0;g=c[f+(j<<6)>>2]|0;if((g|0)>0){h=0;i=0;do{l=c[(c[(c[f+(j<<6)+4>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;a[l+158>>0]=0;a[l+157>>0]=0;c[l+284>>2]=i;if((h|0)==0&(c[l+192>>2]|0)>0){h=$p(12)|0;c[h>>2]=g;c[h+4>>2]=g;c[h+8>>2]=$p(_(g,g)|0)|0;e=c[k>>2]|0;f=c[e+196>>2]|0;c[f+(j<<6)+56>>2]=h;g=c[f+(j<<6)>>2]|0;h=1}i=i+1|0}while((i|0)<(g|0));if((h|0)!=0&(g|0)>0){g=0;do{f=c[(c[f+(j<<6)+4>>2]|0)+(g<<2)>>2]|0;if(!(a[(c[f+16>>2]|0)+157>>0]|0)){Vg(d,f);e=c[k>>2]|0}g=g+1|0;f=c[e+196>>2]|0}while((g|0)<(c[f+(j<<6)>>2]|0))}}if((j|0)<(b[e+238>>1]|0))j=j+1|0;else break}}return}-function Ob(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Pb(){return i|0}function Qb(a){a=a|0;i=a}function Rb(a,b){a=a|0;b=b|0;i=a;j=b}function Sb(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Tb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Ub(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Vb(a){a=a|0;C=a}function Wb(){return C|0}function Xb(a){a=a|0;c[10814]=a;return 0}function Yb(){return c[10814]|0}function Zb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+4|0;g=j;c[h>>2]=0;f=In()|0;Nn(f,43260);Nn(f,49820);cj(1)|0;bj(16)|0;e=Gk(a)|0;if(!e)a=0;else{a=0;do{if(!a){Jn(f,e,d)|0;Mn(f,e,b,h,g)|0}e=Gk(164137)|0;a=c[h>>2]|0}while((e|0)!=0)}i=j;return a|0}function _b(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0.0,l=0,m=0;e=i;i=i+1056|0;m=e+16|0;j=e+8|0;l=e;f=e+32|0;a=a+16|0;g=c[43940+(c[(c[a>>2]|0)+12>>2]<<2)>>2]|0;jj(g,97973)|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];$b(g,m);k=+h[d+16>>3]-+h[d>>3];h[l>>3]=k>-1.0e-08&k<1.0e-08?0.0:k;Oz(f,97976,l)|0;ac(f,1);jj(g,f)|0;k=+h[d+24>>3]-+h[d+8>>3];h[j>>3]=k>-1.0e-08&k<1.0e-08?0.0:k;Oz(f,97976,j)|0;ac(f,1);jj(g,f)|0;bc(c[43940+(c[(c[a>>2]|0)+12>>2]<<2)>>2]|0,164137,c[b+8>>2]|0);i=e;return}function $b(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0.0,g=0;c=i;i=i+1040|0;e=c+8|0;g=c;d=c+16|0;f=+h[b>>3];h[g>>3]=f>-1.0e-08&f<1.0e-08?0.0:f;Oz(d,97976,g)|0;ac(d,1);jj(a,d)|0;f=+vq(+h[b+8>>3]);h[e>>3]=f>-1.0e-08&f<1.0e-08?0.0:f;Oz(d,97976,e)|0;ac(d,1);jj(a,d)|0;i=c;return}function ac(b,c){b=b|0;c=c|0;var d=0,e=0;d=jA(b,46)|0;if(!d){if(c){d=b+(pA(b)|0)|0;e=10}}else{while(1){b=d+1|0;if(!(a[b>>0]|0))break;else d=b}a:while(1){switch(a[d>>0]|0){case 46:{e=5;break a}case 48:break;default:{e=6;break a}}a[d>>0]=0;d=d+-1|0}if((e|0)==5)a[d>>0]=0;else if((e|0)==6)d=d+1|0;if(c)e=10}if((e|0)==10){a[d>>0]=32;a[d+1>>0]=0}return}function bc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+1040|0;h=f;g=f+8|0;j=pA(e)|0;c[h>>2]=d;c[h+4>>2]=j;Oz(g,98245,h)|0;jj(b,g)|0;jj(b,e)|0;e=b+4|0;d=c[e>>2]|0;if(d>>>0>=(c[b+8>>2]|0)>>>0){hj(b,1)|0;d=c[e>>2]|0}c[e>>2]=d+1;a[d>>0]=32;i=f;return}function cc(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+4|0;e=k;j=c[(c[d+16>>2]|0)+8>>2]|0;d=d+64|0;switch(c[d>>2]|0){case 0:{yq(j);break}case 1:{if(b[(c[j+16>>2]|0)+136>>1]&1)ct(j);break}case 4:case 5:case 6:{xq(j,e,f);h=c[e>>2]|0;f=c[f>>2]|0;e=c[d>>2]|0;d=oB(8240)|0;c[10997]=d;a:do switch(e|0){case 6:{b[d+8232>>1]=14;c[d+8236>>2]=98164;break}case 5:{b[d+8232>>1]=12;c[d+8236>>2]=98168;break}default:{d=zj(j,98152)|0;if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(g=rc(d)|0,(g&65535)>10):0){e=c[10997]|0;b[e+8232>>1]=g;c[e+8236>>2]=d;break a}e=rc(98172)|0;g=c[10997]|0;b[g+8232>>1]=e;c[g+8236>>2]=98172}}while(0);e=j+16|0;d=c[e>>2]|0;if(!(c[d+180>>2]|0))c[c[10997]>>2]=0;else{d=et(j,0,123284,164137)|0;c[c[10997]>>2]=d;d=c[e>>2]|0}if(!(a[d+113>>0]&8))c[(c[10997]|0)+4>>2]=0;else{g=et(j,0,98176,164137)|0;c[(c[10997]|0)+4>>2]=g}g=et(j,1,123284,164137)|0;c[(c[10997]|0)+8>>2]=g;g=et(j,1,98176,164137)|0;c[(c[10997]|0)+12>>2]=g;g=et(j,2,123284,164137)|0;c[(c[10997]|0)+16>>2]=g;if(!f)c[(c[10997]|0)+20>>2]=0;else{g=et(j,2,98184,164137)|0;c[(c[10997]|0)+20>>2]=g}if(!h)c[(c[10997]|0)+24>>2]=0;else{h=et(j,2,98192,164137)|0;c[(c[10997]|0)+24>>2]=h}d=a[(c[e>>2]|0)+113>>0]|0;if(!(d&33))c[(c[10997]|0)+28>>2]=0;else{d=et(j,2,98176,164137)|0;c[(c[10997]|0)+28>>2]=d;d=a[(c[e>>2]|0)+113>>0]|0}if(!(d&2))c[(c[10997]|0)+32>>2]=0;else{d=et(j,2,98200,164137)|0;c[(c[10997]|0)+32>>2]=d;d=a[(c[e>>2]|0)+113>>0]|0}if(!(d&4)){c[(c[10997]|0)+36>>2]=0;d=0}else{d=et(j,2,98209,164137)|0;c[(c[10997]|0)+36>>2]=d;d=0}do{gj(44052+(d<<4)|0,1024,(c[10997]|0)+40+(d<<10)|0);d=d+1|0}while((d|0)!=8);break}default:{}}i=k;return}function dc(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;i=c[(c[b+16>>2]|0)+8>>2]|0;if(!(c[11045]|0)){c[11045]=c[12680];c[11046]=9;c[11047]=17}j=i+64|0;f=(c[j>>2]|0)+8|0;g=c[f>>2]|0;c[f>>2]=44180;switch(c[b+64>>2]|0){case 2:{wq(b,i,b,0);break}case 3:{wq(b,i,b,1);break}case 1:case 0:{if(!(c[b+152>>2]&134217728))pm(i,b)|0;break}case 6:case 5:case 4:{d=c[11014]|0;if((d|0)==(c[11013]|0))e=i;else{e=c[c[10997]>>2]|0;if(!e){d=et(i,0,123284,164137)|0;c[c[10997]>>2]=d;d=c[11014]|0;e=c[c[10997]>>2]|0}if(d>>>0>=(c[11015]|0)>>>0){hj(44052,1)|0;d=c[11014]|0}a[d>>0]=0;f=c[11013]|0;c[11014]=f;Cj(i,e,f)|0;e=i}if(c[(c[i+16>>2]|0)+12>>2]|0){f=c[(c[10997]|0)+4>>2]|0;d=c[11030]|0;if(d>>>0>=(c[11031]|0)>>>0){hj(44116,1)|0;d=c[11030]|0}a[d>>0]=0;d=c[11029]|0;c[11030]=d;Cj(e,f,d)|0}Dj(e,98152,c[(c[10997]|0)+8236>>2]|0,164137)|0;kj(44052);kj(44068);kj(44084);kj(44100);kj(44116);kj(44132);kj(44148);kj(44164);pB(c[10997]|0);h[23]=1.0;h[27]=1.0;c[11001]=0;c[11005]=0;if(!(c[b+152>>2]&134217728))pm(i,b)|0;break}default:{}}c[(c[j>>2]|0)+8>>2]=g;return}function ec(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;d=c[c[10997]>>2]|0;b=c[11018]|0;if(b>>>0>=(c[11019]|0)>>>0){hj(44068,1)|0;b=c[11018]|0}a[b>>0]=0;b=c[11017]|0;c[11018]=b;Cj(e,d,b)|0;if(c[(c[e+16>>2]|0)+12>>2]|0){d=c[(c[10997]|0)+4>>2]|0;b=c[11034]|0;if(b>>>0>=(c[11035]|0)>>>0){hj(44132,1)|0;b=c[11034]|0}a[b>>0]=0;b=c[11033]|0;c[11034]=b;Cj(e,d,b)|0}h[24]=1.0;h[28]=1.0;c[11002]=0;c[11006]=0;return}function fc(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[11018]|0;if((b|0)!=(c[11017]|0)){d=c[(c[10997]|0)+8>>2]|0;if(b>>>0>=(c[11019]|0)>>>0){hj(44068,1)|0;b=c[11018]|0}a[b>>0]=0;b=c[11017]|0;c[11018]=b;Cj(e,d,b)|0}b=c[11034]|0;if((b|0)!=(c[11033]|0)){d=c[(c[10997]|0)+12>>2]|0;if(b>>>0>=(c[11035]|0)>>>0){hj(44132,1)|0;b=c[11034]|0}a[b>>0]=0;b=c[11033]|0;c[11034]=b;Cj(e,d,b)|0}h[31]=1.0;h[33]=1.0;c[11009]=0;c[11011]=0;return}function gc(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[11018]|0;if((b|0)!=(c[11017]|0)){d=c[(c[10997]|0)+16>>2]|0;if(b>>>0>=(c[11019]|0)>>>0){hj(44068,1)|0;b=c[11018]|0}a[b>>0]=0;b=c[11017]|0;c[11018]=b;Cj(e,d,b)|0}b=c[11022]|0;if((b|0)!=(c[11021]|0)){d=c[(c[10997]|0)+24>>2]|0;if(b>>>0>=(c[11023]|0)>>>0){hj(44084,1)|0;b=c[11022]|0}a[b>>0]=0;b=c[11021]|0;c[11022]=b;Cj(e,d,b)|0}b=c[11026]|0;if((b|0)!=(c[11025]|0)){d=c[(c[10997]|0)+20>>2]|0;if(b>>>0>=(c[11027]|0)>>>0){hj(44100,1)|0;b=c[11026]|0}a[b>>0]=0;b=c[11025]|0;c[11026]=b;Cj(e,d,b)|0}b=c[11034]|0;if((b|0)!=(c[11033]|0)){d=c[(c[10997]|0)+28>>2]|0;if(b>>>0>=(c[11035]|0)>>>0){hj(44132,1)|0;b=c[11034]|0}a[b>>0]=0;b=c[11033]|0;c[11034]=b;Cj(e,d,b)|0}b=c[11038]|0;if((b|0)!=(c[11037]|0)){d=c[(c[10997]|0)+36>>2]|0;if(b>>>0>=(c[11039]|0)>>>0){hj(44148,1)|0;b=c[11038]|0}a[b>>0]=0;b=c[11037]|0;c[11038]=b;Cj(e,d,b)|0}b=c[11042]|0;if((b|0)!=(c[11041]|0)){d=c[(c[10997]|0)+32>>2]|0;if(b>>>0>=(c[11043]|0)>>>0){hj(44164,1)|0;b=c[11042]|0}a[b>>0]=0;b=c[11041]|0;c[11042]=b;Cj(e,d,b)|0}h[32]=1.0;h[34]=1.0;h[25]=1.0;h[26]=1.0;h[29]=1.0;h[30]=1.0;c[11010]=0;c[11012]=0;c[11003]=0;c[11004]=0;c[11007]=0;c[11008]=0;return}function hc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=i;i=i+1072|0;q=u+24|0;t=u+16|0;s=u+8|0;r=u;p=u+40|0;j=d+16|0;k=c[(c[j>>2]|0)+12>>2]|0;l=c[43940+(k<<2)>>2]|0;jj(l,98140)|0;d=f+4|0;v=+h[(c[d>>2]|0)+16>>3];h[q>>3]=v>-1.0e-08&v<1.0e-08?0.0:v;Oz(p,97976,q)|0;ac(p,1);jj(l,p)|0;bc(c[43940+(c[(c[j>>2]|0)+12>>2]<<2)>>2]|0,164137,c[c[d>>2]>>2]|0);nc((c[j>>2]|0)+16|0);bc(c[43940+(c[(c[j>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);m=a[f+48>>0]|0;m=m<<24>>24==108?-1:m<<24>>24==114&1;d=c[d>>2]|0;if(!d)g=0;else g=c[d+24>>2]&127;d=b[(c[10997]|0)+8232>>1]|0;if((d&65535)>14?(n=c[43992+((d&65535)+-15<<2)>>2]&g,o=44004+(k<<2)|0,(c[o>>2]|0)!=(n|0)):0){c[r>>2]=n;Oz(p,98143,r)|0;jj(l,p)|0;c[o>>2]=n}r=e+8|0;h[r>>3]=+h[f+24>>3]+ +h[r>>3];jj(l,98149)|0;c[q>>2]=c[e>>2];c[q+4>>2]=c[e+4>>2];c[q+8>>2]=c[e+8>>2];c[q+12>>2]=c[e+12>>2];$b(l,q);c[s>>2]=m;Oz(p,126064,s)|0;jj(l,p)|0;v=+h[f+32>>3];h[t>>3]=v>-1.0e-08&v<1.0e-08?0.0:v;Oz(p,97976,t)|0;ac(p,1);jj(l,p)|0;bc(c[43940+(c[(c[j>>2]|0)+12>>2]<<2)>>2]|0,164137,c[f>>2]|0);i=u;return}function ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+1056|0;g=m+16|0;l=m+8|0;k=m;j=m+32|0;e=a+16|0;f=c[(c[e>>2]|0)+12>>2]|0;mc(a);nc((c[e>>2]|0)+16|0);bc(c[43940+(c[(c[e>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);if(!d){e=c[43940+(f<<2)>>2]|0;jj(e,98137)|0}else{if((d&-2|0)==2)pc(a,d,b,2);else{nc((c[e>>2]|0)+56|0);bc(c[43940+(c[(c[e>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}e=c[43940+(f<<2)>>2]|0;jj(e,98134)|0};c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];$b(e,g);n=+h[b+16>>3]-+h[b>>3];h[k>>3]=n>-1.0e-08&n<1.0e-08?0.0:n;Oz(j,97976,k)|0;ac(j,1);jj(e,j)|0;n=+h[b+24>>3]-+h[b+8>>3];h[l>>3]=n>-1.0e-08&n<1.0e-08?0.0:n;Oz(j,97976,l)|0;ac(j,1);jj(e,j)|0;i=m;return}function jc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;mc(a);f=a+16|0;nc((c[f>>2]|0)+16|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);if(!e)oc(a,112,b,d);else{if((e&-2|0)==2)pc(a,e,b,d);else{nc((c[f>>2]|0)+56|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}oc(a,80,b,d)}return}function kc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;mc(a);f=a+16|0;nc((c[f>>2]|0)+16|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);if(!g)oc(a,66,b,d);else{if((g&-2|0)==2)pc(a,g,b,d);else{nc((c[f>>2]|0)+56|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}oc(a,98,b,d)}return}function lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;mc(a);e=a+16|0;nc((c[e>>2]|0)+16|0);bc(c[43940+(c[(c[e>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);oc(a,76,b,d);return}function mc(b){b=b|0;var d=0,e=0.0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+1184|0;g=o;f=o+24|0;m=o+8|0;gj(m,1024,o+152|0);l=b+16|0;b=c[l>>2]|0;e=+h[b+152>>3];d=184+(c[b+12>>2]<<3)|0;if(e!=+h[d>>3]){h[d>>3]=e;jj(m,98100)|0;h[g>>3]=+h[(c[l>>2]|0)+152>>3];Oz(f,98114,g)|0;ac(f,0);jj(m,f)|0;f=m+4|0;b=c[f>>2]|0;d=m+8|0;if(b>>>0>=(c[d>>2]|0)>>>0){hj(m,1)|0;b=c[f>>2]|0}c[f>>2]=b+1;a[b>>0]=41;b=c[f>>2]|0;if(b>>>0>=(c[d>>2]|0)>>>0){hj(m,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[m>>2]|0;c[f>>2]=b;bc(c[43940+(c[(c[l>>2]|0)+12>>2]<<2)>>2]|0,98119,b);b=c[l>>2]|0}b=c[b+160>>2]|0;if(b){d=c[b>>2]|0;a:do if(d){j=m+4|0;k=m+8|0;while(1){b=b+4|0;switch(a[d>>0]|0){case 102:{if(lA(d,134460)|0)n=14;break}case 98:{if(lA(d,134442)|0)n=14;break}case 115:{if(lA(d,134447)|0)n=14;break}default:n=14}if((n|0)==14){n=0;jj(m,d)|0;while(1){f=d+1|0;if(!(a[d>>0]|0)){d=f;break}else d=f}if(a[d>>0]|0){f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;f=c[j>>2]|0}c[j>>2]=f+1;a[f>>0]=40;if(a[d>>0]|0){g=0;while(1){if(g){f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;f=c[j>>2]|0}c[j>>2]=f+1;a[f>>0]=44}jj(m,d)|0;f=d;while(1){d=f+1|0;if(!(a[f>>0]|0))break;else f=d}if(!(a[d>>0]|0))break;else g=g+1|0}}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=41}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;d=c[j>>2]|0}a[d>>0]=0;g=c[m>>2]|0;c[j>>2]=g;bc(c[43940+(c[(c[l>>2]|0)+12>>2]<<2)>>2]|0,98119,g)}d=c[b>>2]|0;if(!d)break a}}while(0);kj(m)}i=o;return}function nc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k+16|0;h=k;e=a[b+3>>0]|0;f=d[b>>0]|0;g=d[b+1>>0]|0;b=d[b+2>>0]|0;if(e<<24>>24==-1){c[h>>2]=f;c[h+4>>2]=g;c[h+8>>2]=b;Oz(98067,106995,h)|0}else{c[j>>2]=f;c[j+4>>2]=g;c[j+8>>2]=b;c[j+12>>2]=e&255;Oz(98067,98082,j)|0}i=k;return}function oc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+1040|0;k=l;j=l+16|0;h=c[43940+(c[(c[b+16>>2]|0)+12>>2]<<2)>>2]|0;g=h+4|0;b=c[g>>2]|0;if(b>>>0>=(c[h+8>>2]|0)>>>0){hj(h,1)|0;b=c[g>>2]|0}c[g>>2]=b+1;a[b>>0]=d;c[k>>2]=f;Oz(j,98077,k)|0;jj(h,j)|0;if((f|0)>0){b=0;do{d=e+(b<<4)|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];$b(h,k);b=b+1|0}while((b|0)!=(f|0))}i=l;return}function pc(b,d,f,j){b=b|0;d=d|0;f=f|0;j=j|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;A=i;i=i+2144|0;v=A+80|0;u=A+72|0;t=A+64|0;z=A+1104|0;q=A+32|0;r=A+16|0;s=A;y=b+16|0;w=c[y>>2]|0;k=+(c[w+136>>2]|0)*3.141592653589793/180.0;if((e[(c[10997]|0)+8232>>1]|0)<14){nc(w+56|0);bc(c[43940+(c[(c[y>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}else{gj(z,1024,A+1120|0);x=(d|0)==2;if(x){nt(f,q,j,k,2);d=z+4|0;b=c[d>>2]|0;if(b>>>0>=(c[z+8>>2]|0)>>>0){hj(z,1)|0;b=c[d>>2]|0}c[d>>2]=b+1;a[b>>0]=91;c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];c[v+8>>2]=c[q+8>>2];c[v+12>>2]=c[q+12>>2];$b(z,v);u=q+16|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];$b(z,v)}else{nt(f,q,j,0.0,3);p=+h[q+24>>3];n=+h[q>>3];m=+h[q+8>>3];o=p*.25;if(k==0.0){k=m;l=n}else{B=o;l=k;k=m+B*+R(+l);l=n+B*+Q(+l)}h[r>>3]=l;h[r+8>>3]=k;h[s>>3]=n;h[s+8>>3]=m;d=z+4|0;b=c[d>>2]|0;if(b>>>0>=(c[z+8>>2]|0)>>>0){hj(z,1)|0;b=c[d>>2]|0}c[d>>2]=b+1;a[b>>0]=40;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];c[v+8>>2]=c[r+8>>2];c[v+12>>2]=c[r+12>>2];$b(z,v);B=o;h[t>>3]=B>-1.0e-08&B<1.0e-08?0.0:B;Oz(v,97976,t)|0;ac(v,1);jj(z,v)|0;c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];c[v+12>>2]=c[s+12>>2];$b(z,v);B=p;h[u>>3]=B>-1.0e-08&B<1.0e-08?0.0:B;Oz(v,97976,u)|0;ac(v,1);jj(z,v)|0}jj(z,98125)|0;b=w+140|0;k=+g[b>>2];d=w+56|0;if(k>0.0){qc(z,k,d);qc(z,+g[b>>2],w+96|0)}else{qc(z,0.0,d);qc(z,1.0,w+96|0)}lj(z)|0;j=z+4|0;b=c[j>>2]|0;f=z+8|0;d=b>>>0>=(c[f>>2]|0)>>>0;if(x){if(d){hj(z,1)|0;b=c[j>>2]|0}c[j>>2]=b+1;a[b>>0]=93}else{if(d){hj(z,1)|0;b=c[j>>2]|0}c[j>>2]=b+1;a[b>>0]=41}b=c[j>>2]|0;if(b>>>0>=(c[f>>2]|0)>>>0){hj(z,1)|0;b=c[j>>2]|0}a[b>>0]=0;x=c[z>>2]|0;c[j>>2]=x;bc(c[43940+(c[(c[y>>2]|0)+12>>2]<<2)>>2]|0,98122,x);kj(z)}i=A;return}function qc(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,f=0;d=i;i=i+1040|0;f=d;e=d+8|0;h[f>>3]=b;Oz(e,98128,f)|0;ac(e,1);nc(c);bc(a,e,98067);i=d;return}function rc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+1040|0;g=k;h=k+8|0;d=0;e=b;a:while(1){f=e;while(1){e=f+1|0;f=a[f>>0]|0;if(!(f<<24>>24))break a;if(((f<<24>>24)+-48|0)>>>0<10)break;else f=e}if((d|0)>=1023){j=7;break}a[h+d>>0]=f;d=d+1|0}if((j|0)==7){c[g>>2]=b;dj(0,98218,g)|0}a[h+d>>0]=0;j=(Yz(h)|0)&65535;i=k;return j|0}function sc(a){a=a|0;var b=0;switch(c[a+64>>2]|0){case 0:{b=kn(c[a>>2]|0)|0;Kn(b,c[(c[a+16>>2]|0)+8>>2]|0,99116,0)|0;ln(b);break}case 1:{yq(c[(c[a>>2]|0)+168>>2]|0);break}default:{}}return}function tc(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;e=f;d=c[(c[b+16>>2]|0)+8>>2]|0;if(!(c[11128]|0)){c[11128]=c[12680];c[11129]=9;c[11130]=17}c[(c[d+64>>2]|0)+8>>2]=44512;uc(d,1);c[e>>2]=0;a[e+4>>0]=(a[(c[d+16>>2]|0)+115>>0]|0)==1&1;g=c[b+64>>2]|0;a[e+5>>0]=(g|0)==0?1:(g|0)==3&1;a[e+6>>0]=0;vc(d,b,1,e);i=f;return}function uc(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=c[a>>2]&-9;d=bm(a)|0;if(d)do{uc(d,0);d=cm(d)|0}while((d|0)!=0);if((b|0)!=0?(e=Rk(a)|0,(e|0)!=0):0)do{c[e>>2]=c[e>>2]&-9;d=Lj(a,e)|0;if(d)do{c[d>>2]=c[d>>2]&-9;d=Nj(a,d)|0}while((d|0)!=0);e=Sk(a,e)|0}while((e|0)!=0);return}function vc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+112|0;B=D+96|0;A=D+88|0;z=D+80|0;y=D+72|0;w=D+64|0;v=D+56|0;u=D+48|0;t=D+40|0;r=D+32|0;s=D+24|0;q=D+16|0;p=D+8|0;o=D;C=(d|0)!=0;if(C){m=Vi(44524,c[12573]|0)|0;zl(a,1,125554,12,0);zl(a,2,125554,12,0);zl(a,0,125554,-12,0);n=wc(a,0,m)|0;f=Rk(a)|0;if(f){h=0;k=0;while(1){if(!(rA(ok(f)|0,131620,7)|0)){j=ok(f)|0;j=ub[c[m>>2]&31](m,j,512)|0;if(!j)j=-1;else j=c[j+12>>2]|0;c[(wl(f,125554,0)|0)+8>>2]=j;l=k}else{c[(wl(f,125554,0)|0)+8>>2]=k+n;l=k+1|0}j=Lj(a,f)|0;if(j){k=h;while(1){h=k+1|0;c[(wl(j,125554,0)|0)+8>>2]=k;j=Nj(a,j)|0;if(!j)break;else k=h}}f=Sk(a,f)|0;if(!f)break;else k=l}}Pi(m)|0;j=n}else j=0;f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120787)|0;h=ok(a)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}c[o>>2]=xc(h,e)|0;dn(b,98335,o);k=(d|0)==0;if(!k){_m(b,120758)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}f=(hk(a)|0)!=0;c[p>>2]=f?131591:160740;dn(b,98348,p);f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}p=(jk(a)|0)!=0;c[q>>2]=p?131591:160740;dn(b,98365,q)}yc(a,b,e);_m(b,120758)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}if(C){c[s>>2]=j;dn(b,98378,s)}else{c[r>>2]=c[(wl(a,125554,0)|0)+8>>2];dn(b,98398,r)}h=bm(a)|0;if(h){_m(b,120758)|0;f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}if(!C){_m(b,98424)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else{f=0;break}}else f=0}else{_m(b,98410)|0;f=0}do{if(!f)f=1;else _m(b,120758)|0;if(C)zc(h,b,e);else{c[t>>2]=c[(wl(h,125554,0)|0)+8>>2];dn(b,160852,t)}h=cm(h)|0}while((h|0)!=0);if(C)f=1;else{c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0;f=1}}else f=0;h=Rk(a)|0;if(!h){if(C&(f|0)!=0){c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0}}else{_m(b,120758)|0;if(C)if(!f){f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,98410)|0;j=h;f=0}else{j=h;f=0}else{f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,98440)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else{j=h;f=0;break}}else{j=h;f=0}}do{do if(rA(ok(j)|0,131620,7)|0){do if(!f)if(k){f=1;x=74}else f=1;else if(C){_m(b,120758)|0;break}else{_m(b,124034)|0;x=74;break}while(0);if((x|0)==74){x=0;c[w>>2]=c[(wl(j,125554,0)|0)+8>>2];dn(b,160852,w);break}h=c[e>>2]|0;c[e>>2]=h+1;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}_m(b,120787)|0;h=c[e>>2]|0;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}c[u>>2]=c[(wl(j,125554,0)|0)+8>>2];dn(b,98452,u);h=c[e>>2]|0;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}c[v>>2]=xc(ok(j)|0,e)|0;dn(b,98335,v);yc(j,b,e);_m(b,175632)|0;t=c[e>>2]|0;h=t+-1|0;c[e>>2]=h;if((t|0)>1)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}_m(b,106606)|0}while(0);j=Sk(a,j)|0}while((j|0)!=0);c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0}f=Rk(a)|0;a:do if(f){while(1){if(Lj(a,f)|0)break;f=Sk(a,f)|0;if(!f)break a}_m(b,120758)|0;h=c[e>>2]|0;c[e>>2]=h+1;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}_m(b,98466)|0;if(!C?(g=c[e>>2]|0,(g|0)>0):0)while(1){_m(b,98332)|0;if((g|0)>1)g=g+-1|0;else break}if(f){g=0;do{h=Lj(a,f)|0;if(h)do{do if(!g)if(k){g=1;x=105}else{g=1;x=94}else if(C){_m(b,120758)|0;x=94;break}else{_m(b,124034)|0;x=105;break}while(0);if((x|0)==94){j=c[e>>2]|0;c[e>>2]=j+1;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(b,120787)|0;j=c[e>>2]|0;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[y>>2]=c[(wl(h,125554,0)|0)+8>>2];dn(b,98452,y);j=c[e>>2]|0;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[z>>2]=c[(wl(c[((c[h>>2]&3|0)==3?h:h+48|0)+40>>2]|0,125554,0)|0)+8>>2];dn(b,98478,z);j=c[e>>2]|0;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[A>>2]=c[(wl(c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0,125554,0)|0)+8>>2];dn(b,98491,A);yc(h,b,e);_m(b,175632)|0;x=c[e>>2]|0;j=x+-1|0;c[e>>2]=j;if((x|0)>1)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(b,106606)|0}else if((x|0)==105){c[B>>2]=c[(wl(h,125554,0)|0)+8>>2];dn(b,160852,B)}h=Nj(a,h)|0}while((h|0)!=0);f=Sk(a,f)|0}while((f|0)!=0)}c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0}while(0);_m(b,175632)|0;B=c[e>>2]|0;f=B+-1|0;c[e>>2]=f;if((B|0)>1)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}if(C)_m(b,134423)|0;else _m(b,106606)|0;i=D;return}function wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;do if((hl(a)|0)!=(a|0)){e=b+1|0;c[(wl(a,125554,0)|0)+8>>2]=b;if(!(rA(ok(a)|0,131620,7)|0)){g=ok(a)|0;b=c[(wl(a,125554,0)|0)+8>>2]|0;f=ub[c[d>>2]&31](d,g,512)|0;if(!f){h=qB(1,16)|0;c[h+8>>2]=oA(g)|0;c[h+12>>2]=b;ub[c[d>>2]&31](d,h,1)|0;break}if((c[f+12>>2]|0)!=(b|0)){c[h>>2]=g;dj(0,99087,h)|0}}}else e=b;while(0);b=bm(a)|0;if(b)do{e=wc(b,e,d)|0;b=cm(b)|0}while((b|0)!=0);i=j;return e|0}function xc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+4|0;if(a[g>>0]|0)b=gt(b)|0;if(!(c[11140]|0))gj(44560,1024,0);d=a[b>>0]|0;a:do if(d<<24>>24){f=b;while(1){switch(d&255|0){case 34:{jj(44560,99066)|0;break}case 92:{jj(44560,120150)|0;break}case 47:{jj(44560,99069)|0;break}case 8:{jj(44560,99072)|0;break}case 12:{jj(44560,99075)|0;break}case 10:{jj(44560,99078)|0;break}case 13:{jj(44560,99081)|0;break}case 9:{jj(44560,99084)|0;break}default:{e=c[11141]|0;if(e>>>0>=(c[11142]|0)>>>0){hj(44560,1)|0;e=c[11141]|0}c[11141]=e+1;a[e>>0]=d}}f=f+1|0;d=a[f>>0]|0;if(!(d<<24>>24))break a}}while(0);d=c[11141]|0;if(d>>>0>=(c[11142]|0)>>>0){hj(44560,1)|0;d=c[11141]|0}a[d>>0]=0;d=c[11140]|0;c[11141]=d;if(a[g>>0]|0)pB(b);return d|0}function yc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0.0,ba=0.0;_=i;i=i+336|0;Y=_+328|0;X=_+320|0;W=_+312|0;V=_+304|0;U=_+296|0;T=_+288|0;S=_+280|0;R=_+272|0;P=_+248|0;O=_+224|0;N=_+216|0;M=_+200|0;L=_+184|0;K=_+176|0;J=_+168|0;I=_+160|0;H=_+152|0;G=_+144|0;E=_+136|0;D=_+128|0;C=_+120|0;B=_+112|0;A=_+104|0;z=_+88|0;y=_+80|0;x=_+72|0;w=_+64|0;v=_+56|0;Q=_+24|0;F=_+16|0;u=_+8|0;t=_;p=hl(b)|0;q=c[b>>2]&3;f=sj(p,q,0)|0;if(f){s=e+5|0;do{g=Aj(b,f)|0;a:do if(g){if(!(a[g>>0]|0)){g=c[f+8>>2]|0;if((a[g>>0]|0)!=108)break;if(lA(g,124829)|0)break}_m(d,120758)|0;g=c[e>>2]|0;if((g|0)>0)while(1){_m(d,98332)|0;if((g|0)>1)g=g+-1|0;else break}g=f+8|0;c[t>>2]=xc(c[g>>2]|0,e)|0;dn(d,98502,t);b:do if((a[s>>0]|0)!=0?(n=c[g>>2]|0,r=n+1|0,(a[n>>0]|0)==95):0){switch(a[r>>0]|0){case 100:{if(lA(r,98509)|0)break b;break}case 108:{if(lA(r,98515)|0)break b;break}case 104:{if(lA(r,98522)|0){o=lA(r,98536)|0;Z=18}break}case 116:{if(lA(r,98529)|0){o=lA(r,98544)|0;Z=18}break}default:break b}if((Z|0)==18?(Z=0,(o|0)!=0):0)break;g=Aj(b,f)|0;if(!g)break a;if(!(a[g>>0]|0))break a;n=to(g)|0;if(!n){c[u>>2]=g;dj(0,98552,u)|0;break a}_m(d,175632)|0;g=c[e>>2]|0;c[e>>2]=g+1;if((g|0)>0)while(1){_m(d,98332)|0;if((g|0)>1)g=g+-1|0;else break}_m(d,98579)|0;c:do if((c[n>>2]|0)>0){l=n+8|0;m=0;g=0;while(1){if(!g)g=1;else _m(d,120758)|0;k=c[l>>2]|0;j=c[e>>2]|0;c[e>>2]=j+1;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(d,120787)|0;j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[k+(m*80|0)>>2]|0;d:do switch(j|0){case 1:case 0:{c[F>>2]=(j|0)==0?69:101;dn(d,98582,F);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}ba=+h[k+(m*80|0)+16>>3];aa=+h[k+(m*80|0)+24>>3];$=+h[k+(m*80|0)+32>>3];h[Q>>3]=+h[k+(m*80|0)+8>>3];h[Q+8>>3]=ba;h[Q+16>>3]=aa;h[Q+24>>3]=$;dn(d,98595,Q);break}case 3:case 2:{c[v>>2]=(j|0)==2?80:112;dn(d,98582,v);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Ac(d,k+(m*80|0)+8|0);break}case 5:case 4:{c[w>>2]=(j|0)==4?66:98;dn(d,98582,w);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Ac(d,k+(m*80|0)+8|0);break}case 6:{dn(d,98630,x);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Ac(d,k+(m*80|0)+8|0);break}case 7:{dn(d,98642,y);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}ba=+h[k+(m*80|0)+16>>3];h[z>>3]=+h[k+(m*80|0)+8>>3];h[z+8>>3]=ba;dn(d,98654,z);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[k+(m*80|0)+24>>2]|0;c[A>>2]=(j|0)==0?108:(j|0)==1?99:114;dn(d,98676,A);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}h[B>>3]=+h[k+(m*80|0)+32>>3];dn(d,98692,B);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[C>>2]=xc(c[k+(m*80|0)+40>>2]|0,e)|0;dn(d,98709,C);break}case 9:case 8:{c[D>>2]=(j|0)==8?67:99;dn(d,98582,D);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}dn(d,98723,E);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[G>>2]=xc(c[k+(m*80|0)+8>>2]|0,e)|0;dn(d,98740,G);break}case 13:case 14:{c[H>>2]=(j|0)==13?67:99;dn(d,98582,H);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}switch(c[k+(m*80|0)+8>>2]|0){case 0:{dn(d,98723,I);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[J>>2]=xc(c[k+(m*80|0)+16>>2]|0,e)|0;dn(d,98740,J);break d}case 1:{dn(d,98755,K);j=c[e>>2]|0;do if((j|0)>0){while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[e>>2]|0;k=k+(m*80|0)+16|0;if((j|0)<=0)break;while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}}else k=k+(m*80|0)+16|0;while(0);ba=+h[k+8>>3];h[L>>3]=+h[k>>3];h[L+8>>3]=ba;dn(d,98774,L);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}ba=+h[k+24>>3];h[M>>3]=+h[k+16>>3];h[M+8>>3]=ba;dn(d,98796,M);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Bc(d,c[k+32>>2]|0,c[k+36>>2]|0,e);break d}default:{dn(d,98818,N);j=c[e>>2]|0;do if((j|0)>0){while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[e>>2]|0;if((j|0)<=0)break;while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}}while(0);aa=+h[k+(m*80|0)+24>>3];ba=+h[k+(m*80|0)+32>>3];h[O>>3]=+h[k+(m*80|0)+16>>3];h[O+8>>3]=aa;h[O+16>>3]=ba;dn(d,98837,O);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}aa=+h[k+(m*80|0)+48>>3];ba=+h[k+(m*80|0)+56>>3];h[P>>3]=+h[k+(m*80|0)+40>>3];h[P+8>>3]=aa;h[P+16>>3]=ba;dn(d,98865,P);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Bc(d,c[k+(m*80|0)+64>>2]|0,c[k+(m*80|0)+68>>2]|0,e);break d}}}case 10:{dn(d,98893,R);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}h[S>>3]=+h[k+(m*80|0)+8>>3];dn(d,98905,S);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[T>>2]=xc(c[k+(m*80|0)+16>>2]|0,e)|0;dn(d,98921,T);break}case 11:{dn(d,98935,U);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[V>>2]=xc(c[k+(m*80|0)+8>>2]|0,e)|0;dn(d,98947,V);break}case 15:{dn(d,98962,W);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[X>>2]=c[k+(m*80|0)+8>>2];dn(d,98974,X);break}default:{}}while(0);k=c[e>>2]|0;j=k+-1|0;c[e>>2]=j;if((k|0)>1)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(d,106606)|0;m=m+1|0;if((m|0)>=(c[n>>2]|0))break c}}while(0);c[e>>2]=(c[e>>2]|0)+-1;_m(d,175632)|0;g=c[e>>2]|0;if((g|0)>0)while(1){_m(d,98332)|0;if((g|0)>1)g=g+-1|0;else break}_m(d,120753)|0;uo(n);break a}while(0);c[Y>>2]=xc(Aj(b,f)|0,e)|0;dn(d,98990,Y)}while(0);f=sj(p,q,f)|0}while((f|0)!=0)}i=_;return}function zc(a,b,c){a=a|0;b=b|0;c=c|0;vc(a,b,0,c);a=bm(a)|0;if(a)do{_m(b,120758)|0;zc(a,b,c);a=cm(a)|0}while((a|0)!=0);return}function Ac(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0.0;k=i;i=i+48|0;j=k+32|0;g=k+16|0;f=k+8|0;e=c[b>>2]|0;b=c[b+4>>2]|0;dn(a,99040,k);if((e|0)>0){d=0;do{if((d|0)>0)dn(a,124034,f);l=+h[b+(d*24|0)+8>>3];h[g>>3]=+h[b+(d*24|0)>>3];h[g+8>>3]=l;dn(a,99052,g);d=d+1|0}while((d|0)!=(e|0))}dn(a,99037,j);i=k;return}function Bc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+48|0;l=m+32|0;k=m+16|0;j=m+8|0;dn(a,98995,m);if((b|0)>0){f=0;do{if((f|0)>0)dn(a,124034,j);o=+g[d+(f<<3)>>2];n=xc(c[d+(f<<3)+4>>2]|0,e)|0;h[k>>3]=o;c[k+8>>2]=n;dn(a,99006,k);f=f+1|0}while((f|0)!=(b|0))}dn(a,99037,l);i=m;return}function Cc(a,b,d){a=a|0;b=b|0;d=d|0;pB(c[b+8>>2]|0);pB(b);return}function Dc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;_m(a,99871)|0;k=c[c[a+12>>2]>>2]|0;j=c[k+4>>2]|0;h=c[k+8>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=j;c[g+8>>2]=h;dn(a,99881,g);c[e>>2]=ok(c[f+8>>2]|0)|0;dn(a,99916,e);c[d>>2]=_(c[a+168>>2]|0,c[a+164>>2]|0)|0;dn(a,99929,d);_m(a,99942)|0;_m(a,99952)|0;_m(a,99960)|0;_m(a,99968)|0;_m(a,99976)|0;_m(a,99984)|0;_m(a,99992)|0;_m(a,99996)|0;_m(a,100001)|0;i=b;return}function Ec(a){a=a|0;_m(a,99852)|0;return}function Fc(a){a=a|0;c[11202]=2;return}function Gc(a){a=a|0;c[11202]=1;return}function Hc(a){a=a|0;c[11202]=2;return}function Ic(a){a=a|0;c[11202]=0;return}function Jc(a){a=a|0;c[11202]=2;return}function Kc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+96|0;u=v+8|0;o=v;s=c[(c[b+16>>2]|0)+16>>2]|0;t=c[11202]|0;f=c[e+4>>2]|0;p=+h[f+16>>3]*+h[b+352>>3];q=(c[b+360>>2]|0)!=0?1.5707963267948966:0.0;j=c[e>>2]|0;r=p*2.0/3.0*+((pA(j)|0)>>>0)*.5;f=c[f+8>>2]|0;if(!f)n=-1;else n=c[f+20>>2]|0;m=a[e+48>>0]|0;m=m<<24>>24==108?0:m<<24>>24==114?2:1;w=+h[d>>3];l=~~(w+(w>=0.0?.5:-.5));w=+h[d+8>>3]+-72.0;k=~~(w+(w>=0.0?.5:-.5));f=c[11204]|0;if(!f){c[11205]=64;f=oB(64)|0;c[11204]=f}e=a[j>>0]|0;if(e<<24>>24){g=0;while(1){j=j+1|0;d=c[11205]|0;if((g|0)>(d+-8|0)){f=d<<1;c[11205]=f;f=rB(c[11204]|0,f)|0;c[11204]=f;f=f+g|0}if(e<<24>>24>-1){if(e<<24>>24==92){a[f>>0]=92;f=f+1|0;d=g+1|0}else d=g;a[f>>0]=e;f=f+1|0;d=d+1|0}else{a[f>>0]=92;c[o>>2]=e&255;Oz(f+1|0,112499,o)|0;f=f+4|0;d=g+4|0}e=a[j>>0]|0;if(!(e<<24>>24))break;else g=d}}a[f>>0]=0;o=c[11204]|0;c[u>>2]=4;c[u+4>>2]=m;c[u+8>>2]=s;c[u+12>>2]=t;c[u+16>>2]=0;c[u+20>>2]=n;h[u+24>>3]=p;h[u+32>>3]=q;c[u+40>>2]=6;h[u+48>>3]=p;h[u+56>>3]=r;c[u+64>>2]=l;c[u+68>>2]=k;c[u+72>>2]=o;dn(b,99797,u);i=v;return}function Lc(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;x=i;i=i+32|0;u=x;w=f+32|0;a:do switch(c[w>>2]|0){case 5:{h=c[f>>2]|0;j=a[h>>0]|0;k=160746;g=0;while(1){if((a[k>>0]|0)==j<<24>>24?(lA(k,h)|0)==0:0)break;g=g+1|0;if((g|0)==8)break a;else k=c[45336+(g<<2)>>2]|0}c[f>>2]=g;break}case 1:{p=a[f>>0]|0;l=p&255;q=f+1|0;r=a[q>>0]|0;m=r&255;s=f+2|0;t=a[s>>0]|0;n=t&255;o=c[11203]|0;do if((o|0)>0){g=0;h=-1;k=195075;while(1){y=(b[92148+(g<<1)>>1]|0)-l|0;z=(b[92660+(g<<1)>>1]|0)-m|0;j=(b[93172+(g<<1)>>1]|0)-n|0;j=(_(z,z)|0)+(_(y,y)|0)+(_(j,j)|0)|0;if((j|0)<(k|0))if(!j)break;else h=g;else j=k;g=g+1|0;if((g|0)<(o|0))k=j;else{v=12;break}}if((v|0)==12){c[11203]=o+1;if((o|0)==256)g=h;else{v=14;break}}g=g+32|0}else{c[11203]=o+1;g=0;v=14}while(0);if((v|0)==14){b[92148+(g<<1)>>1]=p&255;b[92660+(g<<1)>>1]=r&255;b[93172+(g<<1)>>1]=t&255;g=g+32|0;v=d[f>>0]|0;y=d[q>>0]|0;z=d[s>>0]|0;c[u>>2]=0;c[u+4>>2]=g;c[u+8>>2]=v;c[u+12>>2]=y;c[u+16>>2]=z;dn(e,99740,u)}c[f>>2]=g;break}default:Ia(161945,99140,163,99171)}while(0);c[w>>2]=6;i=x;return}function Mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0;n=i;i=i+96|0;m=n;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[e+56>>2]|0;l=c[11202]|0;d=(d|0)!=0?20:-1;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}t=+h[b>>3];r=~~(t+(t>=0.0?.5:-.5));s=+h[b+8>>3];q=~~(s+(s>=0.0?.5:-.5));p=+h[b+16>>3];t=p-t;o=+h[b+24>>3];s=o-s;c[m>>2]=1;c[m+4>>2]=1;c[m+8>>2]=e;c[m+12>>2]=g;c[m+16>>2]=j;c[m+20>>2]=k;c[m+24>>2]=l;c[m+28>>2]=0;c[m+32>>2]=d;h[m+40>>3]=f;c[m+48>>2]=0;h[m+56>>3]=0.0;c[m+64>>2]=r;c[m+68>>2]=q;c[m+72>>2]=~~(t+(t>=0.0?.5:-.5));c[m+76>>2]=~~(s+(s>=0.0?.5:-.5));c[m+80>>2]=r;c[m+84>>2]=q;c[m+88>>2]=~~(p+(p>=0.0?.5:-.5));c[m+92>>2]=~~(o+(o>=0.0?.5:-.5));dn(a,99675,m);i=n;return}function Nc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p;g=c[a+16>>2]|0;k=~~+h[g+152>>3];l=c[g+16>>2]|0;m=c[g+56>>2]|0;n=c[11202]|0;e=(e|0)!=0?20:-1;f=d+1|0;switch(c[g+144>>2]|0){case 1:{g=1;j=10.0;break}case 2:{g=2;j=10.0;break}default:{g=0;j=0.0}}c[o>>2]=2;c[o+4>>2]=3;c[o+8>>2]=g;c[o+12>>2]=k;c[o+16>>2]=l;c[o+20>>2]=m;c[o+24>>2]=n;c[o+28>>2]=0;c[o+32>>2]=e;h[o+40>>3]=j;c[o+48>>2]=0;c[o+52>>2]=0;c[o+56>>2]=0;c[o+60>>2]=0;c[o+64>>2]=0;c[o+68>>2]=f;dn(a,99579,o);Rc(a,b,d,1);i=p;return}function Oc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0;H=i;i=i+176|0;G=H+168|0;E=H+160|0;F=H+96|0;x=H+88|0;e=H+80|0;v=H+16|0;u=H;f=c[a+16>>2]|0;z=~~+h[f+152>>3];C=c[f+16>>2]|0;D=c[11202]|0;if((d|0)<=3)Ia(99133,99140,360,99160);y=oB((d*140|0)+140|0)|0;switch(c[f+144>>2]|0){case 1:{A=1;B=10.0;break}case 2:{A=2;B=10.0;break}default:{A=0;B=0.0}}if(!g){w=-1;s=0;t=4}else{w=20;s=c[f+56>>2]|0;t=5}J=+h[b>>3];g=v+48|0;h[g>>3]=J;I=+h[b+8>>3];j=v+56|0;h[j>>3]=I;c[e>>2]=~~(J+(J>=0.0?.5:-.5));c[e+4>>2]=~~(I+(I>=0.0?.5:-.5));k=u+8|0;r=(((d+-4|0)>>>0)/3|0)*6|0;l=v+16|0;m=v+24|0;n=v+32|0;o=v+40|0;p=v+48|0;q=3;f=y+(Oz(y,112351,e)|0)|0;e=0;while(1){c[v>>2]=c[g>>2];c[v+4>>2]=c[g+4>>2];c[v+8>>2]=c[g+8>>2];c[v+12>>2]=c[g+12>>2];K=e+1|0;h[l>>3]=+h[b+(K<<4)>>3];h[m>>3]=+h[b+(K<<4)+8>>3];K=e+2|0;h[n>>3]=+h[b+(K<<4)>>3];h[o>>3]=+h[b+(K<<4)+8>>3];e=e+3|0;h[p>>3]=+h[b+(e<<4)>>3];h[j>>3]=+h[b+(e<<4)+8>>3];e=1;do{Rs(u,v,3,+(e|0)/6.0,0,0);I=+h[u>>3];J=+h[k>>3];c[x>>2]=~~(I+(I>=0.0?.5:-.5));c[x+4>>2]=~~(J+(J>=0.0?.5:-.5));f=f+(Oz(f,112351,x)|0)|0;e=e+1|0}while((e|0)!=7);e=q+3|0;if((e|0)<(d|0)){K=q;q=e;e=K}else break}g=r+7|0;c[F>>2]=3;c[F+4>>2]=t;c[F+8>>2]=A;c[F+12>>2]=z;c[F+16>>2]=C;c[F+20>>2]=s;c[F+24>>2]=D;c[F+28>>2]=0;c[F+32>>2]=w;h[F+40>>3]=B;c[F+48>>2]=0;c[F+52>>2]=0;c[F+56>>2]=0;c[F+60>>2]=g;dn(a,99630,F);c[E>>2]=y;dn(a,112358,E);pB(y);if((g|0)>0){f=r+6|0;e=0;do{c[G>>2]=((e|0)%(f|0)|0|0)!=0&1;dn(a,112363,G);e=e+1|0}while((e|0)!=(g|0))}_m(a,175632)|0;i=H;return}function Pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+80|0;l=m;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[11202]|0;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}c[l>>2]=2;c[l+4>>2]=1;c[l+8>>2]=e;c[l+12>>2]=g;c[l+16>>2]=j;c[l+20>>2]=0;c[l+24>>2]=k;c[l+28>>2]=0;c[l+32>>2]=0;h[l+40>>3]=f;c[l+48>>2]=0;c[l+52>>2]=0;c[l+56>>2]=0;c[l+60>>2]=0;c[l+64>>2]=0;c[l+68>>2]=d;dn(a,99579,l);Rc(a,b,d,0);i=m;return}function Qc(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;dn(a,99573,e);i=d;return}function Rc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;j=k+8|0;g=k;if((d|0)>0){f=0;do{m=+h[b+(f<<4)>>3];l=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(l+(l>=0.0?.5:-.5));dn(a,112351,g);f=f+1|0}while((f|0)!=(d|0))}if(e){l=+h[b>>3];m=+h[b+8>>3];c[j>>2]=~~(l+(l>=0.0?.5:-.5));c[j+4>>2]=~~(m+(m>=0.0?.5:-.5));dn(a,112351,j)}_m(a,175632)|0;i=k;return}function Sc(b){b=b|0;var d=0,e=0,f=0;d=c[b+16>>2]|0;switch(c[b+64>>2]|0){case 0:{_m(b,99522)|0;d=d+208|0;e=c[d>>2]|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){_m(b,99536)|0;_m(b,Vp(c[d>>2]|0)|0)|0;_m(b,175632)|0}break}case 1:{e=d+208|0;f=c[e>>2]|0;if((f|0)!=0?(a[f>>0]|0)!=0:0){_m(b,99536)|0;_m(b,Vp(c[e>>2]|0)|0)|0;_m(b,126232)|0;_m(b,Vp(ok(c[d+8>>2]|0)|0)|0)|0;_m(b,175632)|0}break}case 3:{f=Vp(ok(c[d+8>>2]|0)|0)|0;_m(b,99545)|0;_m(b,f)|0;_m(b,99555)|0;_m(b,f)|0;_m(b,99510)|0;break}default:{}}return}function Tc(a){a=a|0;var b=0;b=c[a+16>>2]|0;switch(c[a+64>>2]|0){case 2:{Vc(a,c[b+264>>2]|0,c[b+272>>2]|0,c[b+268>>2]|0,c[b+208>>2]|0,c[b+228>>2]|0,c[b+244>>2]|0,c[b+212>>2]|0);break}case 3:{Vc(a,c[b+264>>2]|0,c[b+272>>2]|0,c[b+268>>2]|0,c[b+208>>2]|0,c[b+228>>2]|0,c[b+244>>2]|0,c[b+212>>2]|0);_m(a,99514)|0;break}default:{}}return}function Uc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+16>>2]|0;Vc(a,c[g+264>>2]|0,c[g+272>>2]|0,c[g+268>>2]|0,b,d,e,f);return}function Vc(b,d,e,f,g,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=i;i=i+128|0;x=y+120|0;u=y+112|0;t=y+96|0;s=y+80|0;r=y+56|0;w=y+48|0;q=y+40|0;v=y+24|0;p=y;a:do if((e|0)!=0&(f|0)!=0){if((c[11281]|0)<(f|0)){o=f+10|0;c[11281]=o;c[11282]=rB(c[11282]|0,o<<3)|0}o=(f|0)>0;if(o){m=c[11282]|0;n=0;do{z=+h[e+(n<<4)>>3];c[m+(n<<3)>>2]=~~(z+(z>=0.0?.5:-.5));z=+h[e+(n<<4)+8>>3];c[m+(n<<3)+4>>2]=~~(z+(z>=0.0?.5:-.5));n=n+1|0}while((n|0)!=(f|0))}n=b+64|0;m=c[n>>2]|0;e=(g|0)!=0;if(e&(m|0)==0?(a[g>>0]|0)!=0:0)switch(d|0){case 0:{f=c[11282]|0;v=c[f>>2]|0;w=c[f+12>>2]|0;x=c[f+8>>2]|0;f=c[f+4>>2]|0;c[p>>2]=g;c[p+4>>2]=v;c[p+8>>2]=w;c[p+12>>2]=x;c[p+16>>2]=f;dn(b,99256,p);break a}case 1:{f=c[11282]|0;w=c[f>>2]|0;x=c[f+4>>2]|0;f=(c[f+8>>2]|0)-w|0;c[v>>2]=g;c[v+4>>2]=w;c[v+8>>2]=x;c[v+12>>2]=f;dn(b,99277,v);break a}case 2:{c[q>>2]=g;dn(b,99297,q);if(o){m=0;do{v=c[11282]|0;x=c[v+(m<<3)+4>>2]|0;c[w>>2]=c[v+(m<<3)>>2];c[w+4>>2]=x;dn(b,99305,w);m=m+1|0}while((m|0)!=(f|0))}_m(b,175632)|0;break a}default:Ia(161945,99312,63,99332)}if(e&(m|0)==1?(a[g>>0]|0)!=0:0)if(!d){v=c[11282]|0;w=c[v+12>>2]|0;x=c[v+8>>2]|0;f=c[v+4>>2]|0;c[r>>2]=c[v>>2];c[r+4>>2]=w;c[r+8>>2]=x;c[r+12>>2]=f;c[r+16>>2]=g;c[r+20>>2]=j;dn(b,99349,r);break}else Ia(161945,99312,75,99332);if((m&-2|0)==2){switch(d|0){case 1:{_m(b,99382)|0;break}case 0:{_m(b,99403)|0;break}case 2:{_m(b,99422)|0;break}default:Ia(161945,99312,91,99332)}if((l|0)!=0?(a[l>>0]|0)!=0:0){_m(b,104907)|0;_m(b,Xp(l)|0)|0;_m(b,122268)|0}if(e?(a[g>>0]|0)!=0:0){_m(b,99441)|0;_m(b,Xp(g)|0)|0;_m(b,122268)|0}if((k|0)!=0?(a[k>>0]|0)!=0:0){_m(b,105866)|0;_m(b,Vp(k)|0)|0;_m(b,122268)|0}if((j|0)!=0?(a[j>>0]|0)!=0:0){_m(b,99449)|0;_m(b,Vp(j)|0)|0;_m(b,122268)|0}_m(b,99458)|0;_m(b,99466)|0;switch(d|0){case 1:{f=c[11282]|0;w=c[f>>2]|0;x=c[f+4>>2]|0;f=(c[f+8>>2]|0)-w|0;c[s>>2]=w;c[s+4>>2]=x;c[s+8>>2]=f;dn(b,99476,s);break}case 0:{v=c[11282]|0;w=c[v+12>>2]|0;x=c[v+8>>2]|0;f=c[v+4>>2]|0;c[t>>2]=c[v>>2];c[t+4>>2]=w;c[t+8>>2]=x;c[t+12>>2]=f;dn(b,99485,t);break}case 2:{v=c[11282]|0;w=c[v+4>>2]|0;c[u>>2]=c[v>>2];c[u+4>>2]=w;dn(b,99497,u);if((f|0)>1){m=1;do{v=c[11282]|0;w=c[v+(m<<3)+4>>2]|0;c[x>>2]=c[v+(m<<3)>>2];c[x+4>>2]=w;dn(b,99503,x);m=m+1|0}while((m|0)!=(f|0))}break}default:{}}if((c[n>>2]|0)==3){_m(b,104731)|0;break}else{_m(b,99510)|0;break}}}while(0);i=y;return}function Wc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;_m(a,99871)|0;k=c[c[a+12>>2]>>2]|0;j=c[k+4>>2]|0;h=c[k+8>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=j;c[g+8>>2]=h;dn(a,99881,g);c[e>>2]=ok(c[f+8>>2]|0)|0;dn(a,99916,e);c[d>>2]=_(c[a+168>>2]|0,c[a+164>>2]|0)|0;dn(a,99929,d);_m(a,99942)|0;_m(a,99952)|0;_m(a,99960)|0;_m(a,99968)|0;_m(a,99976)|0;_m(a,99984)|0;_m(a,99992)|0;_m(a,99996)|0;_m(a,100001)|0;i=b;return}function Xc(a){a=a|0;_m(a,99852)|0;return}function Yc(a){a=a|0;c[11333]=2;return}function Zc(a){a=a|0;c[11333]=1;return}function _c(a){a=a|0;c[11333]=2;return}function $c(a){a=a|0;c[11333]=0;return}function ad(a){a=a|0;c[11333]=2;return}function bd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0;u=i;i=i+96|0;t=u+8|0;o=u;r=c[(c[b+16>>2]|0)+16>>2]|0;s=c[11333]|0;f=c[e+4>>2]|0;p=+h[f+16>>3]*+h[b+352>>3];q=(c[b+360>>2]|0)!=0?1.5707963267948966:0.0;f=c[f+8>>2]|0;if(!f)m=-1;else m=c[f+20>>2]|0;n=a[e+48>>0]|0;n=n<<24>>24==108?0:n<<24>>24==114?2:1;v=+h[d>>3];l=~~(v+(v>=0.0?.5:-.5));v=+h[d+8>>3];k=~~(v+(v>=0.0?.5:-.5));e=c[e>>2]|0;f=c[11344]|0;if(!f){c[11345]=64;f=oB(64)|0;c[11344]=f}d=a[e>>0]|0;if(d<<24>>24){g=0;j=e;while(1){j=j+1|0;e=c[11345]|0;if((g|0)>(e+-8|0)){f=e<<1;c[11345]=f;f=rB(c[11344]|0,f)|0;c[11344]=f;f=f+g|0}if(d<<24>>24>-1){if(d<<24>>24==92){a[f>>0]=92;f=f+1|0;e=g+1|0}else e=g;a[f>>0]=d;f=f+1|0;e=e+1|0}else{a[f>>0]=92;c[o>>2]=d&255;Oz(f+1|0,112499,o)|0;f=f+4|0;e=g+4|0}d=a[j>>0]|0;if(!(d<<24>>24))break;else g=e}}a[f>>0]=0;o=c[11344]|0;c[t>>2]=4;c[t+4>>2]=n;c[t+8>>2]=r;c[t+12>>2]=s;c[t+16>>2]=0;c[t+20>>2]=m;h[t+24>>3]=p;h[t+32>>3]=q;c[t+40>>2]=4;h[t+48>>3]=0.0;h[t+56>>3]=0.0;c[t+64>>2]=l;c[t+68>>2]=k;c[t+72>>2]=o;dn(b,99797,t);i=u;return}function cd(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;x=i;i=i+32|0;u=x;w=f+32|0;a:do switch(c[w>>2]|0){case 5:{h=c[f>>2]|0;j=a[h>>0]|0;k=160746;g=0;while(1){if((a[k>>0]|0)==j<<24>>24?(lA(k,h)|0)==0:0)break;g=g+1|0;if((g|0)==8)break a;else k=c[45336+(g<<2)>>2]|0}c[f>>2]=g;break}case 1:{p=a[f>>0]|0;l=p&255;q=f+1|0;r=a[q>>0]|0;m=r&255;s=f+2|0;t=a[s>>0]|0;n=t&255;o=c[11343]|0;do if((o|0)>0){g=0;h=-1;k=195075;while(1){y=(b[93684+(g<<1)>>1]|0)-l|0;z=(b[94196+(g<<1)>>1]|0)-m|0;j=(b[94708+(g<<1)>>1]|0)-n|0;j=(_(z,z)|0)+(_(y,y)|0)+(_(j,j)|0)|0;if((j|0)<(k|0))if(!j)break;else h=g;else j=k;g=g+1|0;if((g|0)<(o|0))k=j;else{v=12;break}}if((v|0)==12){c[11343]=o+1;if((o|0)==256)g=h;else{v=14;break}}g=g+32|0}else{c[11343]=o+1;g=0;v=14}while(0);if((v|0)==14){b[93684+(g<<1)>>1]=p&255;b[94196+(g<<1)>>1]=r&255;b[94708+(g<<1)>>1]=t&255;g=g+32|0;v=d[f>>0]|0;y=d[q>>0]|0;z=d[s>>0]|0;c[u>>2]=0;c[u+4>>2]=g;c[u+8>>2]=v;c[u+12>>2]=y;c[u+16>>2]=z;dn(e,99740,u)}c[f>>2]=g;break}case 0:{c[f>>2]=0;break}default:Ia(161945,99761,168,99780)}while(0);c[w>>2]=6;i=x;return}function dd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0;n=i;i=i+96|0;m=n;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[e+56>>2]|0;l=c[11333]|0;d=(d|0)!=0?20:-1;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}t=+h[b>>3];r=~~(t+(t>=0.0?.5:-.5));s=+h[b+8>>3];q=~~(s+(s>=0.0?.5:-.5));p=+h[b+16>>3];t=p-t;o=+h[b+24>>3];s=o-s;c[m>>2]=1;c[m+4>>2]=1;c[m+8>>2]=e;c[m+12>>2]=g;c[m+16>>2]=j;c[m+20>>2]=k;c[m+24>>2]=l;c[m+28>>2]=0;c[m+32>>2]=d;h[m+40>>3]=f;c[m+48>>2]=0;h[m+56>>3]=0.0;c[m+64>>2]=r;c[m+68>>2]=q;c[m+72>>2]=~~(t+(t>=0.0?.5:-.5));c[m+76>>2]=~~(s+(s>=0.0?.5:-.5));c[m+80>>2]=r;c[m+84>>2]=q;c[m+88>>2]=~~(p+(p>=0.0?.5:-.5));c[m+92>>2]=~~(o+(o>=0.0?.5:-.5));dn(a,99675,m);i=n;return}function ed(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p;g=c[a+16>>2]|0;k=~~+h[g+152>>3];l=c[g+16>>2]|0;m=c[g+56>>2]|0;n=c[11333]|0;e=(e|0)!=0?20:-1;f=d+1|0;switch(c[g+144>>2]|0){case 1:{g=1;j=10.0;break}case 2:{g=2;j=10.0;break}default:{g=0;j=0.0}}c[o>>2]=2;c[o+4>>2]=3;c[o+8>>2]=g;c[o+12>>2]=k;c[o+16>>2]=l;c[o+20>>2]=m;c[o+24>>2]=n;c[o+28>>2]=0;c[o+32>>2]=e;h[o+40>>3]=j;c[o+48>>2]=0;c[o+52>>2]=0;c[o+56>>2]=0;c[o+60>>2]=0;c[o+64>>2]=0;c[o+68>>2]=f;dn(a,99579,o);id(a,b,d,1);i=p;return}function fd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0;H=i;i=i+176|0;G=H+168|0;E=H+160|0;F=H+96|0;x=H+88|0;e=H+80|0;v=H+16|0;u=H;f=c[a+16>>2]|0;z=~~+h[f+152>>3];C=c[f+16>>2]|0;D=c[11333]|0;y=oB((d*140|0)+140|0)|0;switch(c[f+144>>2]|0){case 1:{A=1;B=10.0;break}case 2:{A=2;B=10.0;break}default:{A=0;B=0.0}}if(!g){w=-1;s=0;t=4}else{w=20;s=c[f+56>>2]|0;t=5}J=+h[b>>3];q=v+48|0;h[q>>3]=J;I=+h[b+8>>3];r=v+56|0;h[r>>3]=I;c[e>>2]=~~(J+(J>=0.0?.5:-.5));c[e+4>>2]=~~(I+(I>=0.0?.5:-.5));f=Oz(y,112351,e)|0;if((d|0)>3){g=u+8|0;j=(((d+-4|0)>>>0)/3|0)*6|0;k=v+16|0;l=v+24|0;m=v+32|0;n=v+40|0;o=v+48|0;p=3;f=y+f|0;e=0;while(1){c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];c[v+8>>2]=c[q+8>>2];c[v+12>>2]=c[q+12>>2];K=e+1|0;h[k>>3]=+h[b+(K<<4)>>3];h[l>>3]=+h[b+(K<<4)+8>>3];K=e+2|0;h[m>>3]=+h[b+(K<<4)>>3];h[n>>3]=+h[b+(K<<4)+8>>3];e=e+3|0;h[o>>3]=+h[b+(e<<4)>>3];h[r>>3]=+h[b+(e<<4)+8>>3];e=1;do{Rs(u,v,3,+(e|0)/6.0,0,0);I=+h[u>>3];J=+h[g>>3];c[x>>2]=~~(I+(I>=0.0?.5:-.5));c[x+4>>2]=~~(J+(J>=0.0?.5:-.5));f=f+(Oz(f,112351,x)|0)|0;e=e+1|0}while((e|0)!=7);e=p+3|0;if((e|0)<(d|0)){K=p;p=e;e=K}else break}g=j+7|0}else g=1;c[F>>2]=3;c[F+4>>2]=t;c[F+8>>2]=A;c[F+12>>2]=z;c[F+16>>2]=C;c[F+20>>2]=s;c[F+24>>2]=D;c[F+28>>2]=0;c[F+32>>2]=w;h[F+40>>3]=B;c[F+48>>2]=0;c[F+52>>2]=0;c[F+56>>2]=0;c[F+60>>2]=g;dn(a,99630,F);c[E>>2]=y;dn(a,112358,E);pB(y);if((g|0)>0){f=g+-1|0;e=0;do{c[G>>2]=((e|0)%(f|0)|0|0)!=0&1;dn(a,112363,G);e=e+1|0}while((e|0)!=(g|0))}_m(a,175632)|0;i=H;return}function gd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+80|0;l=m;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[11333]|0;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}c[l>>2]=2;c[l+4>>2]=1;c[l+8>>2]=e;c[l+12>>2]=g;c[l+16>>2]=j;c[l+20>>2]=0;c[l+24>>2]=k;c[l+28>>2]=0;c[l+32>>2]=0;h[l+40>>3]=f;c[l+48>>2]=0;c[l+52>>2]=0;c[l+56>>2]=0;c[l+60>>2]=0;c[l+64>>2]=0;c[l+68>>2]=d;dn(a,99579,l);id(a,b,d,0);i=m;return}function hd(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;dn(a,99573,e);i=d;return}function id(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;j=k+8|0;g=k;if((d|0)>0){f=0;do{m=+h[b+(f<<4)>>3];l=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(l+(l>=0.0?.5:-.5));dn(a,112351,g);f=f+1|0}while((f|0)!=(d|0))}if(e){l=+h[b>>3];m=+h[b+8>>3];c[j>>2]=~~(l+(l>=0.0?.5:-.5));c[j+4>>2]=~~(m+(m>=0.0?.5:-.5));dn(a,112351,j)}_m(a,175632)|0;i=k;return}function jd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=i;i=i+16|0;b=d;_m(a,104579)|0;if((c[a+64>>2]|0)==2)_m(a,104594)|0;else _m(a,175632)|0;g=c[c[a+12>>2]>>2]|0;f=c[g+4>>2]|0;e=c[g+8>>2]|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;c[b+8>>2]=e;dn(a,104605,b);i=d;return}function kd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+8|0;e=g;_m(a,104533)|0;d=a+64|0;b=a+12|0;if((c[d>>2]|0)!=2){c[e>>2]=c[(c[b>>2]|0)+28>>2];dn(a,104544,e)}if((c[(c[b>>2]|0)+20>>2]|0)==0?(c[d>>2]|0)!=2:0){b=c[a+476>>2]|0;d=c[a+480>>2]|0;e=c[a+484>>2]|0;c[f>>2]=c[a+472>>2];c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=e;dn(a,100913,f)}_m(a,104559)|0;_m(a,104572)|0;i=g;return}function ld(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+48|0;k=l+24|0;f=l+8|0;d=l;j=l+32|0;g=c[b+16>>2]|0;a[100843]=0;e=b+12|0;h=g+8|0;if(!(c[(c[e>>2]|0)+28>>2]|0)){c[d>>2]=ok(c[h>>2]|0)|0;dn(b,100844,d);d=b+64|0;if((c[d>>2]|0)==2)_m(b,100877)|0;else _m(b,100859)|0;do if(!(c[(c[e>>2]|0)+20>>2]|0))if((c[d>>2]|0)==2){n=c[b+460>>2]|0;m=c[b+464>>2]|0;d=c[b+468>>2]|0;c[f>>2]=c[b+456>>2];c[f+4>>2]=n;c[f+8>>2]=m;c[f+12>>2]=d;dn(b,100913,f);break}else{_m(b,100889)|0;break}while(0);_m(b,100943)|0;Wq(b,c[(c[e>>2]|0)+24>>2]|0,45628);Yq(b);d=c[(c[e>>2]|0)+20>>2]|0;if(d){c[j>>2]=c[d>>2];c[j+4>>2]=0;Wq(b,0,j)}}c[11406]=(a[(c[(c[h>>2]|0)+16>>2]|0)+115>>0]|0)==1?1:-1;if(!(a[100843]|0)){_m(b,100963)|0;a[100843]=1}d=c[g+208>>2]|0;if(d){c[k>>2]=Zq(d,c[11406]|0)|0;dn(b,100976,k)}i=l;return}function md(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;b=i;i=i+16|0;f=b;c[f>>2]=d;c[f+4>>2]=e;dn(a,100827,f);i=b;return}function nd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0;s=i;i=i+144|0;r=s+128|0;q=s+112|0;p=s+72|0;o=s+56|0;n=s+40|0;m=s+32|0;e=s+24|0;b=s+8|0;d=s;f=c[a+456>>2]|0;g=c[a+460>>2]|0;j=c[a+464>>2]|0;k=c[a+468>>2]|0;l=a+12|0;t=(c[(c[l>>2]|0)+28>>2]|0)+1|0;c[d>>2]=t;c[d+4>>2]=t;dn(a,100454,d);if(!(c[(c[l>>2]|0)+20>>2]|0)){c[b>>2]=f;c[b+4>>2]=g;c[b+8>>2]=j;c[b+12>>2]=k;dn(a,100471,b)}d=a+360|0;c[e>>2]=(c[d>>2]|0)!=0?100505:100515;dn(a,100524,e);b=a+64|0;if((c[b>>2]|0)==1){c[m>>2]=j;c[m+4>>2]=k;dn(a,100549,m)}m=c[a+200>>2]|0;t=c[a+204>>2]|0;c[n>>2]=c[a+196>>2];c[n+4>>2]=m;c[n+8>>2]=t;dn(a,100588,n);if(!(c[(c[l>>2]|0)+20>>2]|0)){c[o>>2]=f;c[o+4>>2]=g;c[o+8>>2]=j-f;c[o+12>>2]=k-g;dn(a,100608,o)}w=+h[a+496>>3];t=c[d>>2]|0;v=+h[a+504>>3];u=+h[a+512>>3];h[p>>3]=+h[a+488>>3];h[p+8>>3]=w;c[p+16>>2]=t;h[p+24>>3]=v;h[p+32>>3]=u;dn(a,100648,p);if((c[b>>2]|0)==1){if((j|0)>14399|(k|0)>14399){t=c[(c[l>>2]|0)+16>>2]|0;c[q>>2]=j;c[q+4>>2]=k;c[q+8>>2]=14400;Bb[t&31](100691,q)}c[r>>2]=f;c[r+4>>2]=g;c[r+8>>2]=j;c[r+12>>2]=k;dn(a,100786,r)}i=s;return}function od(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e;b=a+12|0;if(c[(c[b>>2]|0)+20>>2]|0){_m(a,100378)|0;Wq(a,0,(c[(c[b>>2]|0)+20>>2]|0)+4|0)}_m(a,100395)|0;_m(a,100422)|0;c[d>>2]=c[(c[b>>2]|0)+28>>2];dn(a,100437,d);i=e;return}function pd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=ok(c[(c[a+16>>2]|0)+8>>2]|0)|0;dn(a,100371,d);_m(a,100364)|0;i=b;return}function qd(a){a=a|0;_m(a,115801)|0;return}function rd(a){a=a|0;_m(a,100364)|0;return}function sd(a){a=a|0;_m(a,115801)|0;return}function td(a){a=a|0;_m(a,100364)|0;return}function ud(a){a=a|0;_m(a,115801)|0;return}function vd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;e=i;i=i+16|0;f=e;if((b|0)!=0?(g=(c[a+16>>2]|0)+272|0,(c[g>>2]|0)!=0):0){_m(a,100260)|0;gn(a,c[g>>2]|0,2);_m(a,100271)|0;c[f>>2]=Zq(b,c[11406]|0)|0;dn(a,100275,f)}i=e;return}function wd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;j=l+8|0;k=l;f=c[b+16>>2]|0;if(!(+h[f+40>>3]<.5)){Dd(b,f+16|0);g=e+4|0;en(b,+h[(c[g>>2]|0)+16>>3]);c[j>>2]=c[c[g>>2]>>2];dn(b,100219,j);g=Zq(c[e>>2]|0,c[11406]|0)|0;switch(a[e+48>>0]|0){case 114:{f=e+32|0;h[d>>3]=+h[d>>3]-+h[f>>3];break}case 108:{f=e+32|0;break}default:{f=e+32|0;h[d>>3]=+h[d>>3]-+h[f>>3]*.5}}m=d+8|0;h[m>>3]=+h[e+24>>3]+ +h[m>>3];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];fn(b,j);_m(b,100234)|0;en(b,+h[f>>3]);c[k>>2]=g;dn(b,100243,k)}i=l;return}function xd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+32|0;f=g;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];h[f+16>>3]=+h[b+16>>3]-+h[b>>3];h[f+24>>3]=+h[b+24>>3]-+h[b+8>>3];b=a+16|0;if((d|0)!=0?(e=c[b>>2]|0,+h[e+80>>3]>.5):0){Dd(a,e+56|0);gn(a,f,2);_m(a,100177)|0}if(+h[(c[b>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[b>>2]|0)+16|0);gn(a,f,2);_m(a,100197)|0}i=g;return}function yd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0;k=i;i=i+16|0;j=k;g=a+16|0;if((e|0)!=0?(f=c[g>>2]|0,+h[f+80>>3]>.5):0){Dd(a,f+56|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{e=b+(f<<4)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];fn(a,j);_m(a,100116)|0;f=f+1|0}while((f|0)!=(d|0))}_m(a,100143)|0}if(+h[(c[g>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[g>>2]|0)+16|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{g=b+(f<<4)|0;c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];fn(a,j);_m(a,100116)|0;f=f+1|0}while((f|0)!=(d|0))}_m(a,100159)|0}i=k;return}function zd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0;l=i;i=i+16|0;j=l;e=a+16|0;if((g|0)!=0?(k=c[e>>2]|0,+h[k+80>>3]>.5):0){Dd(a,k+56|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{gn(a,b+(f<<4)|0,3);_m(a,100133)|0;f=f+3|0}while((f|0)<(d|0))}_m(a,100143)|0}if(+h[(c[e>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[e>>2]|0)+16|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{gn(a,b+(f<<4)|0,3);_m(a,100133)|0;f=f+3|0}while((f|0)<(d|0))}_m(a,100125)|0}i=l;return}function Ad(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0;g=i;i=i+16|0;f=g;e=a+16|0;if(+h[(c[e>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[e>>2]|0)+16|0);_m(a,100098)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];fn(a,f);_m(a,100107)|0;if((d|0)>1){e=1;do{j=b+(e<<4)|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];fn(a,f);_m(a,100116)|0;e=e+1|0}while((e|0)!=(d|0))}_m(a,100125)|0}i=g;return}function Bd(a,b){a=a|0;b=b|0;_m(a,100095)|0;_m(a,b)|0;_m(a,175632)|0;return}function Cd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;k=n+16|0;m=n+8|0;l=n;g=a+16|0;if((f|0)!=0?(j=c[g>>2]|0,+h[j+80>>3]>.5):0){Dd(a,j+56|0);_m(a,115696)|0;gn(a,d,e);_m(a,126232)|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];fn(a,k);c[l>>2]=e;c[l+4>>2]=b;dn(a,100012,l)}if(+h[(c[g>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[g>>2]|0)+16|0);_m(a,115696)|0;gn(a,d,e);_m(a,126232)|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];fn(a,k);c[m>>2]=e;c[m+4>>2]=b;dn(a,100028,m)}i=n;return}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,j=0.0;f=i;i=i+32|0;e=f;if(b){switch(c[(c[a+16>>2]|0)+4>>2]|0){case 1:case 0:{d=134935;break}case 2:{d=134886;break}case 3:{d=134900;break}default:d=100064}j=+h[b+8>>3];g=+h[b+16>>3];h[e>>3]=+h[b>>3];h[e+8>>3]=j;h[e+16>>3]=g;c[e+24>>2]=d;dn(a,100071,e)}i=f;return}function Ed(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m+8|0;k=m;j=b+16|0;g=c[j>>2]|0;d=c[g+160>>2]|0;en(b,+h[g+152>>3]);_m(b,100045)|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){g=e;do{d=d+4|0;if(lA(g,134447)|0){f=g;while(1){e=f+1|0;if(!(a[f>>0]|0))break;else f=e}if(a[e>>0]|0)do{c[k>>2]=e;dn(b,100060,k);f=e;while(1){e=f+1|0;if(!(a[f>>0]|0))break;else f=e}}while((a[e>>0]|0)!=0);if(!(lA(g,157791)|0))h[(c[j>>2]|0)+152>>3]=0.0;c[l>>2]=g;dn(b,120678,l)}g=c[d>>2]|0}while((g|0)!=0)}i=m;return}function Fd(b){b=b|0;var d=0;_m(b,106145)|0;d=zj(c[(c[b>>2]|0)+168>>2]|0,106201)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){_m(b,106212)|0;_m(b,d)|0;_m(b,106236)|0}_m(b,106257)|0;_m(b,106305)|0;_m(b,106359)|0;d=b+12|0;_m(b,Vp(c[c[c[d>>2]>>2]>>2]|0)|0)|0;_m(b,109462)|0;_m(b,Vp(c[(c[c[d>>2]>>2]|0)+4>>2]|0)|0)|0;_m(b,109472)|0;_m(b,Vp(c[(c[c[d>>2]>>2]|0)+8>>2]|0)|0)|0;_m(b,106683)|0;_m(b,106786)|0;return}function Gd(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0.0,l=0.0,m=0.0;j=i;i=i+48|0;g=j+16|0;f=j+8|0;e=j;d=c[b+16>>2]|0;_m(b,105980)|0;d=d+8|0;if(a[(ok(c[d>>2]|0)|0)>>0]|0){_m(b,106646)|0;_m(b,Vp(ok(c[d>>2]|0)|0)|0)|0}c[e>>2]=_(c[b+168>>2]|0,c[b+164>>2]|0)|0;dn(b,105985,e);e=c[b+452>>2]|0;c[f>>2]=c[b+448>>2];c[f+4>>2]=e;dn(b,106001,f);m=+h[b+392>>3];l=+h[b+400>>3];k=+h[b+408>>3];h[g>>3]=+h[b+384>>3];h[g+8>>3]=m;h[g+16>>3]=l;h[g+24>>3]=k;dn(b,106034,g);_m(b,106065)|0;_m(b,106101)|0;_m(b,107669)|0;i=j;return}function Hd(a){a=a|0;_m(a,105972)|0;return}function Id(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;ce(a,b,0,125338,c[(c[a+16>>2]|0)+8>>2]|0);_m(a,107669)|0;return}function Jd(a){a=a|0;_m(a,105820)|0;return}function Kd(b){b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e;g=c[b+16>>2]|0;d=g+8|0;ce(b,c[g+212>>2]|0,0,134935,c[d>>2]|0);_m(b,105924)|0;en(b,+h[b+488>>3]);_m(b,126232)|0;en(b,+h[b+496>>3]);c[f>>2]=0-(c[b+360>>2]|0);dn(b,105943,f);en(b,+h[b+504>>3]);_m(b,126232)|0;en(b,-+h[b+512>>3]);_m(b,105967)|0;if(a[(ok(c[d>>2]|0)|0)>>0]|0){_m(b,105876)|0;_m(b,Vp(ok(c[d>>2]|0)|0)|0)|0;_m(b,105884)|0}i=e;return}function Ld(a){a=a|0;_m(a,105820)|0;return}function Md(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ce(a,c[d+212>>2]|0,0,131620,c[b>>2]|0);_m(a,107669)|0;_m(a,105876)|0;_m(a,Vp(ok(c[b>>2]|0)|0)|0)|0;_m(a,105884)|0;return}function Nd(a){a=a|0;_m(a,105820)|0;return}function Od(a){a=a|0;var b=0,d=0,e=0;d=c[a+16>>2]|0;b=c[a+160>>2]|0;if((b|0)>1)b=c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0;else b=0;e=d+8|0;ce(a,c[d+212>>2]|0,b,134886,c[e>>2]|0);_m(a,107669)|0;_m(a,105876)|0;_m(a,Vp(ok(c[e>>2]|0)|0)|0)|0;_m(a,105884)|0;return}function Pd(a){a=a|0;_m(a,105820)|0;return}function Qd(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ce(a,c[d+212>>2]|0,0,134900,c[b>>2]|0);_m(a,107669)|0;_m(a,105876)|0;b=Up(125772,c[b>>2]|0)|0;_m(a,Vp(b)|0)|0;pB(b);_m(a,105884)|0;return}function Rd(a){a=a|0;_m(a,105820)|0;return}function Sd(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;_m(b,105826)|0;if(f){_m(b,105829)|0;_m(b,Vp(f)|0)|0;_m(b,122268)|0}_m(b,105719)|0;_m(b,107630)|0;if((c|0)!=0?(a[c>>0]|0)!=0:0){_m(b,105837)|0;_m(b,c)|0;_m(b,122268)|0}if((d|0)!=0?(a[d>>0]|0)!=0:0){_m(b,105851)|0;_m(b,Wp(d,1)|0)|0;_m(b,122268)|0}if((e|0)!=0?(a[e>>0]|0)!=0:0){_m(b,105866)|0;_m(b,Vp(e)|0)|0;_m(b,122268)|0}_m(b,107669)|0;return}function Td(a){a=a|0;_m(a,107624)|0;_m(a,105820)|0;return}function Ud(e,f,g){e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0;M=i;i=i+176|0;L=M+160|0;K=M+152|0;F=M+136|0;J=M+128|0;E=M+120|0;D=M+112|0;C=M+104|0;B=M+96|0;A=M+88|0;y=M+80|0;w=M+72|0;v=M+64|0;u=M+56|0;t=M+48|0;j=M+40|0;q=M+32|0;s=M+24|0;r=M+16|0;p=M+8|0;o=M;G=c[e+16>>2]|0;_m(e,105351)|0;switch(a[g+48>>0]|0){case 108:{_m(e,105357)|0;break}case 114:{_m(e,105378)|0;break}default:_m(e,105397)|0}H=f+8|0;I=+h[g+24>>3]+ +h[H>>3];h[H>>3]=I;H=G+260|0;if(!(b[H>>1]&512)){_m(e,105419)|0;en(e,+h[f>>3]);_m(e,105424)|0;en(e,-I);_m(e,122268)|0}x=g+4|0;f=c[x>>2]|0;n=c[f+8>>2]|0;if(n){switch(c[(c[(c[(c[e>>2]|0)+168>>2]|0)+16>>2]|0)+244>>2]|0){case 1:{m=n;f=n+16|0;j=n+8|0;break}case 2:{m=n+24|0;f=n+32|0;j=n+28|0;break}default:{m=n+4|0;f=n+16|0;j=n+8|0}}k=c[f>>2]|0;j=c[j>>2]|0;l=c[n+12>>2]|0;c[o>>2]=c[m>>2];dn(e,105430,o);f=c[n+24>>2]|0;if(f){c[p>>2]=f;dn(e,105447,p)}_m(e,122268)|0;if(j){c[r>>2]=j;dn(e,105451,r)}if(l){c[s>>2]=l;dn(e,105469,s)}if(!k)k=0;else{c[q>>2]=k;dn(e,105488,q)}}else{c[j>>2]=c[f>>2];dn(e,105505,j);k=0;j=0}f=c[x>>2]|0;if((f|0)!=0?(z=c[f+24>>2]|0,(z&127|0)!=0):0){if(!((j|0)!=0|(z&1|0)==0))dn(e,105523,t);if(!((k|0)!=0|(z&2|0)==0))dn(e,105543,u);if(z&100){dn(e,105564,v);if(!(z&4))f=0;else{dn(e,129426,w);f=1}if(z&64){c[y>>2]=(f|0)!=0?124034:164137;dn(e,105583,y);f=1}if(z&32){c[A>>2]=(f|0)!=0?124034:164137;dn(e,105594,A)}dn(e,122268,B)}if(z&8)dn(e,105609,C);if(z&16)dn(e,105633,D)}h[E>>3]=+h[(c[x>>2]|0)+16>>3];dn(e,105655,E);f=G+16|0;switch(c[G+48>>2]|0){case 5:{f=c[f>>2]|0;if(hA(f,160746)|0){c[J>>2]=f;dn(e,105673,J)}break}case 1:{E=d[f+1>>0]|0;J=d[f+2>>0]|0;c[F>>2]=d[f>>0];c[F+4>>2]=E;c[F+8>>2]=J;dn(e,105684,F);break}default:Ia(161945,104865,486,105706)}_m(e,105719)|0;if(b[H>>1]&512){c[K>>2]=Vp(c[G+212>>2]|0)|0;dn(e,105721,K);_m(e,105770)|0;en(e,-I);_m(e,105788)|0}_m(e,Wp(c[g>>2]|0,1)|0)|0;if(b[H>>1]&512)dn(e,105791,L);_m(e,105811)|0;i=M;return}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;switch(c|0){case 2:{d=ae(a,b,2)|0;break}case 3:{d=be(a)|0;break}default:d=0}_m(a,105315)|0;_d(a,c,d);_m(a,105324)|0;en(a,+h[b>>3]);_m(a,105330)|0;d=b+8|0;en(a,-+h[d>>3]);_m(a,105337)|0;en(a,+h[b+16>>3]-+h[b>>3]);_m(a,105344)|0;en(a,+h[b+24>>3]-+h[d>>3]);_m(a,104731)|0;return}function Wd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;switch(d|0){case 2:{e=ae(a,b,c)|0;break}case 3:{e=be(a)|0;break}default:e=0}_m(a,105306)|0;_d(a,d,e);_m(a,104721)|0;if((c|0)>0){d=0;do{en(a,+h[b+(d<<4)>>3]);_m(a,124034)|0;en(a,-+h[b+(d<<4)+8>>3]);_m(a,126232)|0;d=d+1|0}while((d|0)!=(c|0))}en(a,+h[b>>3]);_m(a,124034)|0;en(a,-+h[b+8>>3]);_m(a,104731)|0;return}function Xd(a,d,e,f,g,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0;l=i;i=i+16|0;k=l;g=c[a+16>>2]|0;switch(j|0){case 2:{f=ae(a,d,e)|0;break}case 3:{f=be(a)|0;break}default:f=0}_m(a,104901)|0;if(b[g+260>>1]&512){_m(a,104907)|0;_m(a,Vp(c[g+212>>2]|0)|0)|0;_m(a,104913)|0}_d(a,j,f);_m(a,104918)|0;if((e|0)>0){f=77;j=0;while(1){c[k>>2]=f;dn(a,104923,k);en(a,+h[d+(j<<4)>>3]);_m(a,124034)|0;en(a,-+h[d+(j<<4)+8>>3]);g=j+1|0;if((g|0)==(e|0))break;else{f=(j|0)==0?67:32;j=g}}}_m(a,104731)|0;i=l;return}function Yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;_m(a,104711)|0;_d(a,0,0);_m(a,104721)|0;if((c|0)>0){d=0;do{en(a,+h[b+(d<<4)>>3]);_m(a,124034)|0;en(a,-+h[b+(d<<4)+8>>3]);_m(a,126232)|0;d=d+1|0}while((d|0)!=(c|0))}_m(a,104731)|0;return}function Zd(a,b){a=a|0;b=b|0;_m(a,104705)|0;_m(a,Vp(b)|0)|0;_m(a,106786)|0;return}function _d(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+96|0;l=q+48|0;p=q+40|0;n=q+32|0;o=q+24|0;k=q+16|0;g=q+8|0;f=q;m=c[b+16>>2]|0;_m(b,104736)|0;a:do switch(d|0){case 2:{c[f>>2]=e;dn(b,104744,f);break}case 3:{c[g>>2]=e;dn(b,104755,g);break}case 0:{_m(b,159165)|0;break}default:{d=m+56|0;f=l;g=d;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:break a;default:{}}h[k>>3]=+(d&255)/255.0;dn(b,104766,k)}}}while(0);_m(b,104785)|0;e=m+16|0;f=l;g=e;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);d=m+152|0;if(+h[d>>3]!=1.0){_m(b,104796)|0;en(b,+h[d>>3])}switch(c[m+144>>2]|0){case 1:{c[o>>2]=104836;dn(b,104813,o);break}case 2:{c[n>>2]=104840;dn(b,104813,n);break}default:{}}b:do if((c[m+48>>2]|0)==1){d=a[e+3>>0]|0;switch(d<<24>>24){case -1:case 0:break b;default:{}}h[p>>3]=+(d&255)/255.0;dn(b,104844,p)}while(0);_m(b,122268)|0;i=q;return}function $d(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;a:do switch(c[d+32>>2]|0){case 5:{_m(b,c[d>>2]|0)|0;break}case 1:if(!(a[d+3>>0]|0)){_m(b,161276)|0;break a}else{d=c[d>>2]|0;c[e>>2]=d&255;c[e+4>>2]=d>>>8&255;c[e+8>>2]=d>>>16&255;dn(b,106995,e);break a}default:Ia(161945,104865,117,104885)}while(0);i=f;return}function ae(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+112|0;o=t+64|0;r=t+56|0;n=t+48|0;m=t+40|0;j=t;l=t+8|0;q=c[11777]|0;c[11777]=q+1;p=c[b+16>>2]|0;f=+(c[p+136>>2]|0)*3.141592653589793/180.0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;nt(d,l,e,f,0);c[o>>2]=q;dn(b,105138,o);_m(b,105203)|0;en(b,+h[l>>3]);_m(b,105208)|0;en(b,+h[l+8>>3]);_m(b,105215)|0;en(b,+h[l+16>>3]);_m(b,105222)|0;en(b,+h[l+24>>3]);_m(b,105229)|0;l=p+140|0;f=+g[l>>2];if(f>0.0){h[j>>3]=f+-.001;dn(b,105234,j)}else _m(b,105010)|0;d=p+56|0;e=o;j=d;k=e+40|0;do{c[e>>2]=c[j>>2];e=e+4|0;j=j+4|0}while((e|0)<(k|0));$d(b,o);_m(b,105046)|0;a:do if((c[p+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=7;break a}default:{}}h[m>>3]=+(d&255)/255.0;dn(b,122876,m)}else s=7;while(0);if((s|0)==7)_m(b,105061)|0;_m(b,105064)|0;f=+g[l>>2];if(f>0.0){h[n>>3]=f;dn(b,105234,n)}else _m(b,105070)|0;d=p+96|0;e=o;j=d;k=e+40|0;do{c[e>>2]=c[j>>2];e=e+4|0;j=j+4|0}while((e|0)<(k|0));$d(b,o);_m(b,105046)|0;b:do if((c[p+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=14;break b}default:{}}h[r>>3]=+(d&255)/255.0;dn(b,122876,r)}else s=14;while(0);if((s|0)==14)_m(b,105061)|0;_m(b,105274)|0;i=t;return q|0}function be(b){b=b|0;var d=0,e=0.0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=i;i=i+64|0;l=q+16|0;o=q+8|0;k=q;n=c[11776]|0;c[11776]=n+1;m=c[b+16>>2]|0;r=+(c[m+136>>2]|0)*3.141592653589793/180.0;e=r;if(r==0.0){f=50;d=50}else{f=~~((+Q(+e)+1.0)*50.0);d=~~((1.0-+R(+e))*50.0)}c[l>>2]=n;c[l+4>>2]=f;c[l+8>>2]=d;dn(b,104926,l);_m(b,105010)|0;d=m+56|0;f=l;g=d;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);_m(b,105046)|0;a:do if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=6;break a}default:{}}h[k>>3]=+(d&255)/255.0;dn(b,122876,k)}else p=6;while(0);if((p|0)==6)_m(b,105061)|0;_m(b,105064)|0;_m(b,105070)|0;d=m+96|0;f=l;g=d;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);_m(b,105046)|0;b:do if((c[m+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=10;break b}default:{}}h[o>>3]=+(d&255)/255.0;dn(b,122876,o)}else p=10;while(0);if((p|0)==10)_m(b,105061)|0;_m(b,105106)|0;i=q;return n|0}function ce(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+16|0;j=k+8|0;h=k;_m(b,105894)|0;_m(b,Vp(d)|0)|0;if(e){c[h>>2]=Vp(e)|0;dn(b,105902,h)}c[j>>2]=f;dn(b,105906,j);d=zj(g,105918)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){_m(b,126232)|0;_m(b,Vp(d)|0)|0}_m(b,122268)|0;i=k;return}function de(a){a=a|0;var b=0;_m(a,106667)|0;b=a+12|0;_m(a,c[c[c[b>>2]>>2]>>2]|0)|0;_m(a,109462)|0;_m(a,c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0;_m(a,109472)|0;_m(a,c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0;_m(a,106683)|0;return}function ee(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=c[b+16>>2]|0;_m(b,106644)|0;d=d+8|0;if(a[(ok(c[d>>2]|0)|0)>>0]|0){_m(b,106646)|0;_m(b,ok(c[d>>2]|0)|0)|0}c[e>>2]=_(c[b+168>>2]|0,c[b+164>>2]|0)|0;dn(b,106655,e);c[11828]=0;i=f;return}function fe(a){a=a|0;c[11828]=1;return}function ge(a){a=a|0;c[11828]=-1;return}function he(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;j=n+8|0;m=n;f=c[b+16>>2]|0;if((c[f+144>>2]|0)!=0?(l=e+4|0,k=~~(+h[(c[l>>2]|0)+16>>3]*+h[b+352>>3]),(k|0)!=0):0){ne(b);_m(b,106583)|0;g=d+8|0;h[g>>3]=+h[g>>3]-+(k|0)*.55;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];fn(b,j);_m(b,106597)|0;_m(b,c[e>>2]|0)|0;_m(b,106606)|0;_m(b,106404)|0;g=j;d=f+16|0;f=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));oe(b,j);_m(b,106608)|0;j=c[l>>2]|0;l=c[j+8>>2]|0;l=c[((l|0)==0?j:l+4|0)>>2]|0;_m(b,122268)|0;_m(b,l)|0;_m(b,122268)|0;c[m>>2]=k;dn(b,106617,m);switch(a[e+48>>0]|0){case 108:{_m(b,106622)|0;break}case 114:{_m(b,106633)|0;break}default:{}}pe(b);_m(b,175632)|0}i=n;return}function ie(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0.0,m=0.0,n=0.0;k=i;i=i+48|0;f=k;g=c[a+16>>2]|0;j=g+144|0;if(c[j>>2]|0){n=+h[b>>3];e=b+8|0;m=+h[e>>3];l=+h[b+24>>3]-m;h[b>>3]=n-(+h[b+16>>3]-n);h[e>>3]=m-l;ne(a);_m(a,106569)|0;gn(a,b,2);_m(a,106404)|0;do if(!d)if(!(c[11828]|0)){_m(a,120794)|0;break}else{_m(a,160654)|0;break}else{b=f;d=g+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));oe(a,f)}while(0);if((c[11828]|0)==1)c[11828]=0;_m(a,106515)|0;en(a,+h[g+152>>3]);_m(a,106558)|0;b=f;d=g+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));oe(a,f);b=c[j>>2]|0;if((b|0)==1){_m(a,106412)|0;b=c[j>>2]|0}if((b|0)==2)_m(a,106421)|0;pe(a);_m(a,175632)|0}i=k;return}function je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0;k=i;i=i+48|0;f=k;g=c[a+16>>2]|0;j=g+144|0;if(c[j>>2]|0){ne(a);_m(a,106541)|0;gn(a,b,d);_m(a,106404)|0;do if(!e)if(!(c[11828]|0)){_m(a,120794)|0;break}else{_m(a,160654)|0;break}else{b=f;e=g+56|0;d=b+40|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(d|0));oe(a,f)}while(0);if((c[11828]|0)==1)c[11828]=0;_m(a,106515)|0;en(a,+h[g+152>>3]);_m(a,106558)|0;b=f;e=g+16|0;d=b+40|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(d|0));oe(a,f);b=c[j>>2]|0;if((b|0)==1){_m(a,106412)|0;b=c[j>>2]|0}if((b|0)==2)_m(a,106421)|0;pe(a);_m(a,175632)|0}i=k;return}function ke(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0;m=i;i=i+48|0;j=m;k=c[a+16>>2]|0;l=k+144|0;if(c[l>>2]|0){ne(a);_m(a,106390)|0;gn(a,b,d);_m(a,106404)|0;f=j;e=k+16|0;g=f+40|0;do{c[f>>2]=c[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(g|0));oe(a,j);_m(a,106515)|0;en(a,+h[k+152>>3]);f=c[l>>2]|0;if((f|0)==1){_m(a,106412)|0;f=c[l>>2]|0}if((f|0)==2)_m(a,106421)|0;_m(a,106524)|0;pe(a);_m(a,175632)|0}i=m;return}function le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+48|0;g=j;e=c[a+16>>2]|0;h=e+144|0;if(c[h>>2]|0){ne(a);_m(a,106390)|0;gn(a,b,d);_m(a,106404)|0;f=g;b=e+16|0;d=f+40|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0}while((f|0)<(d|0));oe(a,g);b=c[h>>2]|0;if((b|0)==1){_m(a,106412)|0;b=c[h>>2]|0}if((b|0)==2)_m(a,106421)|0;pe(a);_m(a,175632)|0}i=j;return}function me(a,b){a=a|0;b=b|0;_m(a,106387)|0;_m(a,b)|0;_m(a,175632)|0;return}function ne(b){b=b|0;if(!(a[b+144>>0]|0))_m(b,106512)|0;else _m(b,c[b+148>>2]|0)|0;return}function oe(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;a:do switch(c[d+32>>2]|0){case 5:{_m(b,c[d>>2]|0)|0;break}case 1:if(!(a[d+3>>0]|0)){_m(b,120794)|0;break a}else{d=c[d>>2]|0;c[e>>2]=d&255;c[e+4>>2]=d>>>8&255;c[e+8>>2]=d>>>16&255;dn(b,106995,e);break a}default:Ia(161945,106430,49,106494)}while(0);i=f;return}function pe(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;b=c[a+16>>2]|0;switch(c[b+12>>2]|0){case 8:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134886;break}case 10:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134886;break}case 3:case 2:case 9:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134900;break}case 7:case 6:case 11:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134900;break}case 0:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134935;break}case 4:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=106466;break}case 1:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134935;break}case 5:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134935;break}default:Ia(161945,106430,106,106449)}c[g>>2]=d;c[g+4>>2]=f;c[g+8>>2]=e;dn(a,106478,g);i=h;return}function qe(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;e=t;d=c[11881]|0;if(!d){c[11882]=64;d=aq(64)|0;c[11881]=d}a:do if((b|0)!=0?(q=e+15|0,r=e+14|0,f=a[b>>0]|0,f<<24>>24!=0):0){k=0;e=0;g=0;p=0;m=0;h=0;b:while(1){n=g;j=h;c:while(1){g=c[11882]|0;if((p|0)>(g+-8|0)){d=g<<1;c[11882]=d;d=cq(c[11881]|0,d)|0;c[11881]=d;f=a[b>>0]|0;d=d+p|0}switch(f<<24>>24){case 60:{g=b;h=n;l=4;f=125761;o=39;break c}case 62:{l=4;k=j;f=125756;o=40;break c}case 45:{f=n;g=j;o=38;break c}case 38:{g=a[b+1>>0]|0;d:do if(g<<24>>24!=35){if(((g&-33)+-65&255)<26){h=b+2|0;while(1){g=a[h>>0]|0;if(((g&-33)+-65&255)<26)h=h+1|0;else break}}}else{g=a[b+2>>0]|0;switch(g<<24>>24){case 88:case 120:break;default:{if((g+-48&255)>=10)break d;h=b+3|0;while(1){g=a[h>>0]|0;if((g+-48&255)<10)h=h+1|0;else break d}}}h=b+3|0;while(1){g=a[h>>0]|0;if((g+-48&255)>=10)switch(g<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break d}h=h+1|0}}while(0);if(g<<24>>24!=59){g=b;h=n;l=5;f=125738;o=39;break c}switch(f<<24>>24){case 60:{g=b;h=n;l=4;f=125761;o=39;break c}case 62:{l=4;k=j;f=125756;o=40;break c}case 45:{f=n;g=j;o=38;break c}default:{}}break}default:{}}if(k&f<<24>>24==32?(a[m>>0]|0)==32:0){g=b;h=n;l=6;f=125731;o=39;break}switch(f<<24>>24){case 34:{g=b;h=n;l=6;f=125724;o=39;break c}case 39:{l=5;k=j;f=125744;o=40;break c}default:{}}if(f<<24>>24>=0){g=b;h=n;l=1;f=b;o=39;break}f=f&255;g=127;h=0;while(1){f=f&g;g=g>>>1;if(g>>>0>=f>>>0)break;else h=h+1|0}if((h|0)<=0){e=DB(e|0,n|0,6)|0;e=wB(f&255|0,0,e|0,C|0)|0;f=C;h=j+-1|0;if((j|0)>1)g=f;else{o=33;break}}else{e=f&255;g=0}b=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){s=d;break a}else{n=g;j=h}}if((o|0)==33){o=0;a[q>>0]=59;k=e;j=3;n=r;while(1){e=LB(k|0,f|0,10,0)|0;g=n+-1|0;a[n>>0]=e|48;e=KB(k|0,f|0,10,0)|0;m=C;l=j+1|0;if((j|0)>11)break b;if(f>>>0>0|(f|0)==0&k>>>0>9){k=e;f=m;j=l;n=g}else{j=m;f=n;break}}f=f+-2|0;a[g>>0]=35;a[f>>0]=38;if(!l){m=b;g=j;j=p}else{n=j;k=h;o=40}}else if((o|0)==38){n=f;l=5;k=g;f=125750;o=40}else if((o|0)==39){b=g;n=h;k=j;o=40}if((o|0)==40){j=l+p|0;g=l;h=d;while(1){g=g+-1|0;a[h>>0]=a[f>>0]|0;if(!g)break;else{h=h+1|0;f=f+1|0}}m=b;g=n;d=d+l|0;h=k}b=m+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){s=d;break a}else{k=(m|0)!=0;p=j}}Mz(106686,46,1,c[22667]|0)|0;qb(1)}else s=d;while(0);a[s>>0]=0;i=t;return c[11881]|0}function re(a){a=a|0;var b=0;_m(a,109434)|0;_m(a,109442)|0;b=a+12|0;_m(a,qe(c[c[c[b>>2]>>2]>>2]|0)|0)|0;_m(a,109462)|0;_m(a,qe(c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0)|0;_m(a,109472)|0;_m(a,qe(c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0)|0;_m(a,109475)|0;return}function se(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0;k=i;i=i+32|0;j=k+24|0;g=k+16|0;f=k+8|0;e=k;d=c[b+16>>2]|0;c[11879]=~~(+h[b+232>>3]-+h[b+216>>3]);c[11880]=~~(+h[b+224>>3]-+h[b+208>>3]);_m(b,108121)|0;_m(b,108128)|0;d=ok(c[d+8>>2]|0)|0;if(a[d>>0]|0){_m(b,108197)|0;_m(b,qe(d)|0)|0;_m(b,108205)|0}c[e>>2]=_(c[b+168>>2]|0,c[b+164>>2]|0)|0;dn(b,108214,e);_m(b,108234)|0;_m(b,108269)|0;_m(b,108297)|0;_m(b,108303)|0;_m(b,108346)|0;_m(b,108387)|0;_m(b,108406)|0;_m(b,108423)|0;_m(b,108471)|0;_m(b,108524)|0;_m(b,108600)|0;_m(b,108676)|0;_m(b,108685)|0;_m(b,108708)|0;_m(b,108735)|0;_m(b,108788)|0;_m(b,108810)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,108877)|0;_m(b,108903)|0;_m(b,108788)|0;_m(b,108955)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,108999)|0;_m(b,108708)|0;_m(b,108735)|0;_m(b,108788)|0;_m(b,108955)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,108877)|0;_m(b,108903)|0;_m(b,108788)|0;_m(b,108810)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,109012)|0;_m(b,109020)|0;_m(b,109026)|0;_m(b,109040)|0;_m(b,109048)|0;_m(b,109081)|0;e=(c[11879]|0)+10|0;c[f>>2]=c[11880];c[f+4>>2]=e;dn(b,109158,f);_m(b,109188)|0;_m(b,109197)|0;_m(b,109255)|0;_m(b,109265)|0;_m(b,109330)|0;f=c[11879]|0;c[g>>2]=c[11880];c[g+4>>2]=f;dn(b,109367,g);g=c[11879]|0;c[j>>2]=c[11880];c[j+4>>2]=g;dn(b,109395,j);i=k;return}function te(a){a=a|0;_m(a,107672)|0;_m(a,107684)|0;_m(a,107692)|0;_m(a,107755)|0;_m(a,107684)|0;_m(a,107800)|0;_m(a,107849)|0;_m(a,107903)|0;_m(a,107684)|0;_m(a,108003)|0;_m(a,108052)|0;_m(a,107684)|0;_m(a,108104)|0;return}function ue(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+32|0;j=k+16|0;h=k+8|0;g=k;_m(b,107630)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){c[g>>2]=qe(d)|0;dn(b,107633,g)}if((e|0)!=0?(a[e>>0]|0)!=0:0){c[h>>2]=qe(e)|0;dn(b,107644,h)}if((f|0)!=0?(a[f>>0]|0)!=0:0){c[j>>2]=qe(f)|0;dn(b,107656,j)}_m(b,107669)|0;i=k;return}function ve(a){a=a|0;_m(a,107624)|0;return}function we(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0;A=i;i=i+112|0;y=A+96|0;z=A+88|0;w=A+80|0;q=A+72|0;v=A+64|0;t=A+56|0;s=A+48|0;r=A+40|0;p=A+24|0;o=A+8|0;n=A;x=c[b+16>>2]|0;switch(a[f+48>>0]|0){case 108:{k=+h[f+32>>3];m=+h[e>>3];break}case 114:{m=+h[f+32>>3];k=m;m=+h[e>>3]-m;break}default:{m=+h[f+32>>3];k=m;m=+h[e>>3]-m*.5}}g=f+40|0;j=+h[g>>3];u=f+4|0;l=+h[(c[u>>2]|0)+16>>3];if(j<l){j=l*1.1+1.0;h[g>>3]=j}D=m+-8.0;C=+((c[11879]|0)>>>0)-+h[e+8>>3];B=l/5.0+(l<12.0?1.4:2.0);l=C-j+B;dn(b,107286,n);h[o>>3]=D;h[o+8>>3]=l;dn(b,107223,o);h[p>>3]=m+k+8.0-D;h[p+8>>3]=C+B-l;dn(b,107247,p);_m(b,107321)|0;_m(b,107355)|0;g=c[u>>2]|0;e=c[g+8>>2]|0;if(e){c[r>>2]=c[e+4>>2];dn(b,107445,r);g=c[e+8>>2]|0;if(g){c[s>>2]=g;dn(b,107464,s)}g=c[e+12>>2]|0;if(g){c[t>>2]=g;dn(b,107481,t)}g=c[e+16>>2]|0;if(g){c[v>>2]=g;dn(b,107499,v)}}else{c[q>>2]=c[g>>2];dn(b,107445,q)}h[w>>3]=+h[(c[u>>2]|0)+16>>3];dn(b,107515,w);g=x+16|0;switch(c[x+48>>2]|0){case 5:{g=c[g>>2]|0;if(hA(g,160746)|0){c[z>>2]=g;dn(b,107535,z)}break}case 1:{x=d[g+1>>0]|0;z=d[g+2>>0]|0;c[y>>2]=d[g>>0];c[y+4>>2]=x;c[y+8>>2]=z;dn(b,107545,y);break}default:Ia(161945,107009,438,107566)}_m(b,107579)|0;_m(b,qe(c[f>>2]|0)|0)|0;_m(b,107590)|0;_m(b,107613)|0;i=A;return}function xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0,l=0.0,m=0.0;e=i;i=i+32|0;f=e+16|0;k=e;_m(a,107187)|0;m=+h[b>>3];j=+h[b+16>>3]-m;l=+h[b+8>>3];g=+h[b+24>>3]-l;l=+((c[11879]|0)>>>0)-(l+g);h[k>>3]=m-j;h[k+8>>3]=l;dn(a,107223,k);h[f>>3]=j*2.0;h[f+8>>3]=g*2.0;dn(a,107247,f);Ee(a,d);_m(a,107069)|0;Ce(a);_m(a,107275)|0;i=e;return}function ye(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;l=m+24|0;k=m+8|0;j=m;_m(a,106792)|0;n=c[11879]|0;c[j>>2]=c[11880];c[j+4>>2]=n;dn(a,107045,j);Ee(a,e);_m(a,107069)|0;Ce(a);_m(a,107072)|0;if((d|0)>0){e=d+-1|0;j=0;do{g=+h[b+(j<<4)>>3];f=+((c[11879]|0)>>>0)-+h[b+(j<<4)+8>>3];if(!j){_m(a,107085)|0;h[k>>3]=g;h[k+8>>3]=f;dn(a,107165,k);_m(a,107176)|0}else{h[l>>3]=g;h[l+8>>3]=f;dn(a,107165,l)}if((j|0)==(e|0))_m(a,107179)|0;j=j+1|0}while((j|0)!=(d|0))}_m(a,106908)|0;i=m;return}function ze(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0.0,m=0.0;k=i;i=i+32|0;j=k+8|0;e=k;_m(a,106792)|0;f=c[11879]|0;c[e>>2]=c[11880];c[e+4>>2]=f;dn(a,107045,e);Ee(a,g);_m(a,107069)|0;Ce(a);_m(a,107072)|0;if((d|0)>0){e=107085;g=0;while(1){m=+h[b+(g<<4)>>3];l=+((c[11879]|0)>>>0)-+h[b+(g<<4)+8>>3];c[j>>2]=e;h[j+8>>3]=m;h[j+16>>3]=l;dn(a,107088,j);f=g+1|0;if((f|0)==(d|0))break;else{e=(g|0)==0?107101:164137;g=f}}}_m(a,122268)|0;_m(a,107104)|0;i=k;return}function Ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0.0;l=i;i=i+48|0;k=l+24|0;j=l+8|0;g=l;_m(a,106792)|0;f=c[11879]|0;c[g>>2]=c[11880];c[g+4>>2]=f;dn(a,106829,g);_m(a,106869)|0;if((d|0)>0){e=d+-1|0;f=b+8|0;g=0;do{if(!g){_m(a,106881)|0;m=+((c[11879]|0)>>>0)-+h[f>>3];h[j>>3]=+h[b>>3];h[j+8>>3]=m;dn(a,106885,j);_m(a,106896)|0}else{m=+((c[11879]|0)>>>0)-+h[b+(g<<4)+8>>3];h[k>>3]=+h[b+(g<<4)>>3];h[k+8>>3]=m;dn(a,106885,k)}if((g|0)==(e|0))_m(a,106900)|0;g=g+1|0}while((g|0)!=(d|0))}_m(a,106904)|0;Ce(a);_m(a,106908)|0;i=l;return}function Be(a,b){a=a|0;b=b|0;_m(a,106774)|0;_m(a,qe(b)|0)|0;_m(a,106786)|0;return}function Ce(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0,j=0,k=0,l=0;l=i;i=i+48|0;d=l+8|0;k=l;j=c[a+16>>2]|0;_m(a,106920)|0;e=d;f=j+16|0;g=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));De(a,d);b=+h[j+152>>3];if(b!=1.0){h[k>>3]=b;dn(a,106938,k)}switch(c[j+144>>2]|0){case 1:{_m(a,106955)|0;break}case 2:{_m(a,106973)|0;break}default:{}}_m(a,106990)|0;i=l;return}function De(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;a:do switch(c[d+32>>2]|0){case 5:{_m(b,c[d>>2]|0)|0;break}case 1:if(!(a[d+3>>0]|0)){_m(b,159165)|0;break a}else{d=c[d>>2]|0;c[e>>2]=d&255;c[e+4>>2]=d>>>8&255;c[e+8>>2]=d>>>16&255;dn(b,106995,e);break a}default:Ia(161945,107009,94,107029)}while(0);i=f;return}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+48|0;f=g;if(!b)_m(a,107148)|0;else{d=c[a+16>>2]|0;_m(a,107118)|0;b=f;d=d+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));De(a,f);_m(a,107145)|0}i=g;return}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+1056|0;h=j;g=j+24|0;f=j+8|0;c[f>>2]=d;e=Uz(g,1024,b,f)|0;do if((e|0)>=0)if((e|0)>1023){e=oB(e+1|0)|0;c[f>>2]=d;Vz(e,b,f)|0;break}else{e=oA(g)|0;break}else{e=c[(c[a+12>>2]|0)+16>>2]|0;c[h>>2]=ry(c[(qy()|0)>>2]|0)|0;Bb[e&31](109482,h);e=oA(164137)|0}while(0);i=j;return e|0}function Ge(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+8|0;e=b;_m(a,112124)|0;_m(a,112139)|0;_m(a,112178)|0;_m(a,112227)|0;c[e>>2]=160746;c[e+4>>2]=112315;dn(a,112296,e);c[d>>2]=160654;c[d+4>>2]=112321;dn(a,112296,d);i=b;return}function He(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,g=0.0,j=0.0,k=0;b=i;i=i+64|0;d=b+8|0;k=b;c[k>>2]=ok(c[(c[a+16>>2]|0)+8>>2]|0)|0;dn(a,111077,k);j=+h[a+368>>3]*.5*+h[a+488>>3];g=+h[a+376>>3]*.5*+h[a+496>>3];e=+N(-500.0);f=+V(+(j/e))*180.0/3.141592653589793*2.0;e=+V(+(g/e))*180.0/3.141592653589793*2.0;h[d>>3]=j;h[d+8>>3]=g;h[d+16>>3]=-500.0;h[d+24>>3]=j;h[d+32>>3]=g;h[d+40>>3]=0.0;h[d+48>>3]=(f>e?f:e)*1.2;dn(a,111099,d);_m(a,111246)|0;_m(a,112076)|0;i=b;return}function Ie(a){a=a|0;_m(a,111060)|0;return}function Je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0;f=i;i=i+16|0;h=f;c[h>>2]=b;c[h+4>>2]=d;c[h+8>>2]=e;dn(a,111030,h);g[12071]=+(_(d,-10)|0);i=f;return}function Ke(a){a=a|0;_m(a,111013)|0;return}function Le(a){a=a|0;_m(a,110995)|0;return}function Me(a){a=a|0;_m(a,110979)|0;return}function Ne(a){a=a|0;_m(a,110958)|0;g[12071]=+g[12071]+-2.0;return}function Oe(a){a=a|0;_m(a,110939)|0;return}function Pe(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=ok(c[(c[a+16>>2]|0)+8>>2]|0)|0;dn(a,110917,d);i=b;return}function Qe(a){a=a|0;_m(a,110901)|0;return}function Re(a){a=a|0;_m(a,110883)|0;g[12071]=+g[12071]+-5.0;return}function Se(a){a=a|0;_m(a,110867)|0;g[12071]=+g[12071]+5.0;return}function Te(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0;r=i;i=i+144|0;o=r+104|0;q=r+56|0;k=r+32|0;j=r+24|0;n=r;p=e+4|0;m=c[p>>2]|0;f=+h[m+16>>3];m=c[m>>2]|0;c[n>>2]=c[e>>2];h[n+8>>3]=f;c[n+16>>2]=m;dn(b,110713,n);g[12072]=+g[12071]+-9.0;switch(a[e+48>>0]|0){case 108:{f=+h[d>>3];break}case 114:{f=+h[d>>3]-+h[e+32>>3];h[d>>3]=f;break}default:{f=+h[d>>3]-+h[e+32>>3]*.5;h[d>>3]=f}}u=+h[b+488>>3];t=(f+ +h[b+504>>3])*u;s=(+h[d+8>>3]+ +h[b+512>>3])*+h[b+496>>3];h[j>>3]=u*+h[(c[p>>2]|0)+16>>3];n=Fe(b,110765,j)|0;f=+(c[b+360>>2]|0);h[k>>3]=0.0;h[k+8>>3]=0.0;h[k+16>>3]=f;d=Fe(b,110004,k)|0;f=+g[12072];h[o>>3]=t;h[o+8>>3]=s;h[o+16>>3]=f;j=Fe(b,110036,o)|0;k=o;l=(c[b+16>>2]|0)+16|0;m=k+40|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));o=Ze(b,o,0.0)|0;e=c[e>>2]|0;c[q>>2]=c[c[p>>2]>>2];h[q+8>>3]=.25;h[q+16>>3]=0.0;c[q+24>>2]=e;c[q+28>>2]=110852;c[q+32>>2]=n;c[q+36>>2]=d;c[q+40>>2]=j;c[q+44>>2]=o;q=Fe(b,110777,q)|0;_m(b,q)|0;pB(q);pB(d);pB(o);pB(j);pB(n);i=r;return}function Ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=i;i=i+240|0;x=z+192|0;y=z+152|0;t=z+128|0;r=z+104|0;o=z+80|0;n=z+48|0;e=z+24|0;m=z;_m(a,110590)|0;g[12072]=+g[12071]+-6.0;k=+h[b>>3];j=+h[a+488>>3];p=(k+ +h[a+504>>3])*j;l=+h[b+8>>3];A=+h[a+496>>3];q=(l+ +h[a+512>>3])*A;k=j*(+h[b+16>>3]-k);l=A*(+h[b+24>>3]-l);s=a+16|0;A=k+l;j=+h[(c[s>>2]|0)+152>>3]/A*.5*5.0;h[m>>3]=k;h[m+8>>3]=A*.25;h[m+16>>3]=l;b=Fe(a,109972,m)|0;m=a+360|0;A=+(c[m>>2]|0);h[e>>3]=90.0;h[e+8>>3]=0.0;h[e+16>>3]=A;e=Fe(a,110004,e)|0;A=+g[12072];h[x>>3]=p;h[x+8>>3]=q;h[x+16>>3]=A;f=Fe(a,110036,x)|0;u=x;v=(c[s>>2]|0)+16|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));v=Ze(a,x,0.0)|0;h[n>>3]=1.0;h[n+8>>3]=j;c[n+16>>2]=b;c[n+20>>2]=e;c[n+24>>2]=f;c[n+28>>2]=v;w=Fe(a,110605,n)|0;_m(a,w)|0;pB(b);pB(e);pB(f);pB(v);pB(w);if(d){h[o>>3]=k;h[o+8>>3]=l;h[o+16>>3]=1.0;f=Fe(a,109972,o)|0;A=+(c[m>>2]|0);h[r>>3]=0.0;h[r+8>>3]=0.0;h[r+16>>3]=A;e=Fe(a,110004,r)|0;A=+g[12072];h[t>>3]=p;h[t+8>>3]=q;h[t+16>>3]=A;b=Fe(a,110036,t)|0;u=x;v=(c[s>>2]|0)+56|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));x=Ze(a,x,0.0)|0;h[y>>3]=0.0;h[y+8>>3]=0.0;h[y+16>>3]=0.0;c[y+24>>2]=f;c[y+28>>2]=e;c[y+32>>2]=b;c[y+36>>2]=x;y=Fe(a,110651,y)|0;_m(a,y)|0;pB(f);pB(e);pB(b);pB(x);pB(y)}i=z;return}function Ve(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0,O=0.0;L=i;i=i+336|0;B=L+296|0;K=L+288|0;J=L+272|0;I=L+264|0;H=L+240|0;E=L+232|0;A=L+208|0;z=L+184|0;x=L+160|0;w=L+152|0;v=L+136|0;u=L+128|0;t=L+96|0;n=L+88|0;m=L+56|0;f=L+48|0;o=L+24|0;s=L;_m(a,110455)|0;g[12072]=+g[12071]+-2.0;q=a+488|0;r=a+496|0;M=+h[r>>3];h[s>>3]=+h[q>>3];h[s+8>>3]=M;h[s+16>>3]=1.0;s=Fe(a,109972,s)|0;y=a+360|0;M=+(c[y>>2]|0);h[o>>3]=0.0;h[o+8>>3]=0.0;h[o+16>>3]=M;o=Fe(a,110004,o)|0;M=+g[12072]+-2.0;h[B>>3]=0.0;h[B+8>>3]=0.0;h[B+16>>3]=M;p=Fe(a,110036,B)|0;C=a+16|0;j=B;k=(c[C>>2]|0)+16|0;l=j+40|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));l=Ze(a,B,0.0)|0;c[f>>2]=110099;c[f+4>>2]=d+1;f=Fe(a,110068,f)|0;D=(d|0)>0;F=a+504|0;G=a+512|0;if(D){k=0;while(1){O=+h[b+(k<<4)+8>>3]+ +h[G>>3];M=+h[(c[C>>2]|0)+152>>3];h[m>>3]=+h[b+(k<<4)>>3]+ +h[F>>3];h[m+8>>3]=O;h[m+16>>3]=0.0;h[m+24>>3]=M;N=Fe(a,110113,m)|0;c[n>>2]=f;c[n+4>>2]=N;j=Fe(a,110142,n)|0;pB(N);pB(f);k=k+1|0;if((k|0)==(d|0)){f=j;break}else f=j}}M=+h[b+8>>3]+ +h[G>>3];O=+h[(c[C>>2]|0)+152>>3];h[t>>3]=+h[b>>3]+ +h[F>>3];h[t+8>>3]=M;h[t+16>>3]=0.0;h[t+24>>3]=O;t=Fe(a,110113,t)|0;c[u>>2]=f;c[u+4>>2]=t;N=Fe(a,110142,u)|0;pB(t);pB(f);c[v>>2]=s;c[v+4>>2]=o;c[v+8>>2]=p;c[v+12>>2]=l;v=Fe(a,110470,v)|0;c[w>>2]=N;c[w+4>>2]=v;N=Fe(a,110197,w)|0;pB(v);_m(a,N)|0;pB(s);pB(o);pB(p);pB(l);pB(N);if(e){O=+h[r>>3];h[x>>3]=+h[q>>3];h[x+8>>3]=O;h[x+16>>3]=1.0;o=Fe(a,109972,x)|0;O=+(c[y>>2]|0);h[z>>3]=0.0;h[z+8>>3]=0.0;h[z+16>>3]=O;n=Fe(a,110004,z)|0;O=+g[12072]+-2.0;h[A>>3]=0.0;h[A+8>>3]=0.0;h[A+16>>3]=O;m=Fe(a,110036,A)|0;j=B;k=(c[C>>2]|0)+56|0;l=j+40|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));l=Ze(a,B,.25)|0;c[E>>2]=d;f=Fe(a,110515,E)|0;if(D){k=0;while(1){O=+h[b+(k<<4)+8>>3]+ +h[G>>3];h[H>>3]=+h[b+(k<<4)>>3]+ +h[F>>3];h[H+8>>3]=O;h[H+16>>3]=0.0;N=Fe(a,110530,H)|0;c[I>>2]=f;c[I+4>>2]=N;j=Fe(a,110552,I)|0;pB(N);pB(f);k=k+1|0;if((k|0)==(d|0)){f=j;break}else f=j}}c[J>>2]=o;c[J+4>>2]=n;c[J+8>>2]=m;c[J+12>>2]=l;J=Fe(a,110562,J)|0;c[K>>2]=f;c[K+4>>2]=J;N=Fe(a,110197,K)|0;pB(J);_m(a,N)|0;pB(o);pB(n);pB(m);pB(l);pB(N)}i=L;return}function We(a,b,d,e,f,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0.0;A=i;i=i+208|0;f=A+160|0;z=A+152|0;y=A+136|0;u=A+128|0;t=A+96|0;s=A+88|0;r=A+56|0;l=A+48|0;v=A+24|0;x=A;_m(a,110382)|0;g[12072]=+g[12071]+-4.0;B=+h[a+496>>3];h[x>>3]=+h[a+488>>3];h[x+8>>3]=B;h[x+16>>3]=1.0;x=Fe(a,109972,x)|0;B=+(c[a+360>>2]|0);h[v>>3]=0.0;h[v+8>>3]=0.0;h[v+16>>3]=B;v=Fe(a,110004,v)|0;B=+g[12072]+-2.0;h[f>>3]=0.0;h[f+8>>3]=0.0;h[f+16>>3]=B;w=Fe(a,110036,f)|0;q=a+16|0;e=f;j=(c[q>>2]|0)+56|0;k=e+40|0;do{c[e>>2]=c[j>>2];e=e+4|0;j=j+4|0}while((e|0)<(k|0));p=Ze(a,f,0.0)|0;c[l>>2]=110396;c[l+4>>2]=d+2;f=Fe(a,110068,l)|0;if((d|0)>0){l=a+504|0;m=a+512|0;n=d+-1|0;o=0;do{e=b+(o<<4)|0;j=b+(o<<4)+8|0;D=+h[j>>3]+ +h[m>>3];B=+h[(c[q>>2]|0)+152>>3];h[r>>3]=+h[e>>3]+ +h[l>>3];h[r+8>>3]=D;h[r+16>>3]=0.0;h[r+24>>3]=B;C=Fe(a,110113,r)|0;c[s>>2]=f;c[s+4>>2]=C;k=Fe(a,110142,s)|0;pB(C);pB(f);if((o|0)==0|(o|0)==(n|0)){B=+h[j>>3]+ +h[m>>3];D=+h[(c[q>>2]|0)+152>>3];h[t>>3]=+h[e>>3]+ +h[l>>3];h[t+8>>3]=B;h[t+16>>3]=0.0;h[t+24>>3]=D;C=Fe(a,110113,t)|0;c[u>>2]=k;c[u+4>>2]=C;f=Fe(a,110142,u)|0;pB(C);pB(k)}else f=k;o=o+1|0}while((o|0)!=(d|0))}c[y>>2]=x;c[y+4>>2]=v;c[y+8>>2]=w;c[y+12>>2]=p;d=Fe(a,110405,y)|0;c[z>>2]=f;c[z+4>>2]=d;C=Fe(a,110197,z)|0;pB(d);_m(a,C)|0;pB(x);pB(v);pB(w);pB(p);pB(C);i=A;return}function Xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0.0;v=i;i=i+160|0;e=v+120|0;u=v+112|0;t=v+96|0;p=v+88|0;o=v+56|0;l=v+48|0;q=v+24|0;s=v;_m(a,109956)|0;g[12072]=+g[12071]+-6.0;w=+h[a+496>>3];h[s>>3]=+h[a+488>>3];h[s+8>>3]=w;h[s+16>>3]=1.0;s=Fe(a,109972,s)|0;w=+(c[a+360>>2]|0);h[q>>3]=0.0;h[q+8>>3]=0.0;h[q+16>>3]=w;q=Fe(a,110004,q)|0;w=+g[12072];h[e>>3]=0.0;h[e+8>>3]=0.0;h[e+16>>3]=w;r=Fe(a,110036,e)|0;n=a+16|0;f=e;j=(c[n>>2]|0)+16|0;k=f+40|0;do{c[f>>2]=c[j>>2];f=f+4|0;j=j+4|0}while((f|0)<(k|0));m=Ze(a,e,0.0)|0;c[l>>2]=110099;c[l+4>>2]=d;e=Fe(a,110068,l)|0;if((d|0)>0){j=a+504|0;k=a+512|0;l=0;while(1){y=+h[b+(l<<4)+8>>3]+ +h[k>>3];w=+h[(c[n>>2]|0)+152>>3];h[o>>3]=+h[b+(l<<4)>>3]+ +h[j>>3];h[o+8>>3]=y;h[o+16>>3]=0.0;h[o+24>>3]=w;x=Fe(a,110113,o)|0;c[p>>2]=e;c[p+4>>2]=x;f=Fe(a,110142,p)|0;pB(x);pB(e);l=l+1|0;if((l|0)==(d|0)){e=f;break}else e=f}}c[t>>2]=s;c[t+4>>2]=q;c[t+8>>2]=r;c[t+12>>2]=m;t=Fe(a,110151,t)|0;c[u>>2]=e;c[u+4>>2]=t;x=Fe(a,110197,u)|0;pB(t);_m(a,x)|0;pB(s);pB(q);pB(r);pB(m);pB(x);i=v;return}function Ye(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;dn(a,109937,e);i=d;return}function Ze(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+112|0;n=p+104|0;j=p+96|0;g=p+64|0;m=p+48|0;o=p+32|0;l=p+16|0;k=p;e=c[b+32>>2]|0;a:do switch(e|0){case 5:{e=c[b>>2]|0;if(!(lA(e,159758)|0)){c[k>>2]=110219;h[k+8>>3]=d;f=Fe(a,110202,k)|0;break a}if(!(lA(e,156888)|0)){c[l>>2]=110223;h[l+8>>3]=d;f=Fe(a,110202,l)|0;break a}if(!(lA(e,154887)|0)){c[o>>2]=110229;h[o+8>>3]=d;f=Fe(a,110202,o)|0;break a}else{c[m>>2]=e;h[m+8>>3]=d;f=Fe(a,110202,m)|0;break a}}case 1:{f=c[b>>2]|0;h[g>>3]=+(f&255|0)*.00390625;h[g+8>>3]=+(f>>>8&255|0)*.00390625;h[g+16>>3]=+(f>>>16&255|0)*.00390625;h[g+24>>3]=d;f=Fe(a,110234,g)|0;break}default:{o=c[22667]|0;m=c[b>>2]|0;c[j>>2]=e;c[j+4>>2]=m;Bz(o,110273,j)|0;Ia(161945,110323,436,110343)}}while(0);c[n>>2]=f;o=Fe(a,110360,n)|0;pB(f);i=p;return o|0}function _e(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;h=c[c[a+12>>2]>>2]|0;k=c[h>>2]|0;j=c[h+4>>2]|0;h=c[h+8>>2]|0;c[g>>2]=112346;c[g+4>>2]=k;c[g+8>>2]=j;c[g+12>>2]=h;dn(a,114965,g);f=ok(c[f+8>>2]|0)|0;c[e>>2]=112346;c[e+4>>2]=f;dn(a,114997,e);c[d>>2]=112346;dn(a,115011,d);i=b;return}function $e(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=112346;dn(a,114913,d);i=b;return}function af(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+320|0;q=X+304|0;p=X+296|0;W=X+280|0;V=X+272|0;U=X+264|0;S=X+256|0;R=X+248|0;Q=X+240|0;O=X+232|0;N=X+224|0;M=X+216|0;L=X+208|0;K=X+200|0;J=X+192|0;I=X+184|0;H=X+176|0;G=X+168|0;F=X+160|0;E=X+152|0;D=X+144|0;C=X+136|0;B=X+128|0;A=X+120|0;z=X+112|0;y=X+104|0;x=X+96|0;w=X+88|0;v=X+80|0;u=X+72|0;t=X+64|0;s=X+56|0;r=X+48|0;T=X+32|0;o=X+24|0;n=X+8|0;m=X;g=c[a+456>>2]|0;j=c[a+460>>2]|0;k=c[a+464>>2]|0;l=c[a+468>>2]|0;f=a+360|0;a:do if(c[12195]|0){switch(c[f>>2]|0){case 90:case 0:break a;default:{}}c[m>>2]=112451;c[m+4>>2]=112551;dj(0,112533,m)|0;c[12195]=0}while(0);e=(+(l|0)-+(j|0))/72.0;b=(+(k|0)-+(g|0))/72.0;m=(c[f>>2]|0)==90;d=m?e:b;e=m?b:e;h[n>>3]=d;h[n+8>>3]=e;dn(a,112560,n);c[o>>2]=112346;dn(a,112575,o);if(d>0.0){b=+Ly(d);b=b+(3.0-+(~~b|0))}else b=3.0;b=+P(10.0,+b);h[166]=b;h[T>>3]=b;h[T+8>>3]=b;dn(a,112744,T);c[r>>2]=112346;dn(a,112779,r);c[s>>2]=112346;dn(a,112837,s);c[t>>2]=112346;dn(a,112897,t);c[u>>2]=112346;dn(a,112946,u);c[v>>2]=112346;dn(a,112985,v);c[w>>2]=112346;dn(a,113036,w);c[x>>2]=112346;dn(a,113098,x);c[y>>2]=112346;dn(a,113208,y);c[z>>2]=112346;dn(a,113299,z);c[A>>2]=112346;dn(a,113353,A);c[B>>2]=112346;dn(a,113422,B);dn(a,113458,C);c[D>>2]=112346;dn(a,113583,D);c[E>>2]=112346;dn(a,113612,E);dn(a,113652,F);c[G>>2]=112346;dn(a,113745,G);c[H>>2]=112346;dn(a,113804,H);c[I>>2]=112346;dn(a,113885,I);dn(a,113955,J);c[K>>2]=112346;dn(a,114044,K);c[L>>2]=112346;dn(a,114149,L);c[M>>2]=112346;dn(a,114225,M);c[N>>2]=112346;dn(a,114264,N);c[O>>2]=112346;dn(a,114363,O);c[Q>>2]=112346;dn(a,114409,Q);dn(a,114498,R);c[S>>2]=112346;dn(a,114539,S);c[U>>2]=112346;dn(a,114622,U);c[V>>2]=112346;dn(a,114723,V);h[W>>3]=e;h[W+8>>3]=d;dn(a,114787,W);dn(a,114815,p);dn(a,114823,q);i=X;return}function bf(a){a=a|0;var b=0;b=i;i=i+16|0;dn(a,112526,b);i=b;return}function cf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;u=v+40|0;s=v+32|0;q=v+16|0;o=v+8|0;k=v;switch(a[e+48>>0]|0){case 108:{t=d;l=+h[e+32>>3];m=+h[d>>3];break}case 114:{l=+h[e+32>>3];m=+h[d>>3]-l;h[d>>3]=m;t=d;break}default:{l=+h[e+32>>3];m=+h[d>>3]-l*.5;h[d>>3]=m;t=d}}n=e+4|0;j=c[n>>2]|0;f=+h[j+16>>3];r=d+8|0;h[r>>3]=f/216.0+ +h[r>>3];h[t>>3]=l/144.0+m;j=c[j>>2]|0;do if(j){d=c[12123]|0;if((d|0)!=0?(lA(d,j)|0)==0:0)break;else d=48496;while(1){g=c[d+4>>2]|0;if(!g){c[k>>2]=112451;c[k+4>>2]=j;dj(1,112425,k)|0;d=uA(j,45)|0;if(!d){d=112468;break}a[d>>0]=0;d=48496;continue}else{if(!(lA(g,j)|0)){p=11;break}d=d+8|0;continue}}c[o>>2]=d;dn(b,112470,o);c[12123]=c[c[n>>2]>>2];f=+h[(c[n>>2]|0)+16>>3]}while(0);d=~~f;d=(d|0)<1?1:d;if((d|0)!=(c[12192]|0)){m=+h[166];c[q>>2]=d;h[q+8>>3]=m;dn(b,112478,q);c[12192]=d}j=c[e>>2]|0;d=c[12193]|0;if(!d){c[12194]=64;d=oB(64)|0;c[12193]=d}g=a[j>>0]|0;if(g<<24>>24){k=0;n=j;while(1){n=n+1|0;j=c[12194]|0;if((k|0)>(j+-8|0)){d=j<<1;c[12194]=d;d=rB(c[12193]|0,d)|0;c[12193]=d;d=d+k|0}if(g<<24>>24>-1){if(g<<24>>24==92){a[d>>0]=92;d=d+1|0;j=k+1|0}else j=k;a[d>>0]=g;d=d+1|0;j=j+1|0}else{a[d>>0]=92;c[s>>2]=g&255;Oz(d+1|0,112499,s)|0;d=d+4|0;j=k+4|0}g=a[n>>0]|0;if(!(g<<24>>24))break;else k=j}}a[d>>0]=0;l=+h[t>>3];m=+h[r>>3];c[u>>2]=c[12193];h[u+8>>3]=l;h[u+16>>3]=m;dn(b,112504,u);i=v;return}function df(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0;e=i;i=i+48|0;f=e;j=+h[b>>3];l=(+h[b+16>>3]-j)*2.0/72.0;g=+h[b+8>>3];k=(+h[b+24>>3]-g)*2.0/72.0;c[f>>2]=1;c[f+4>>2]=(d|0)!=0?112367:164137;h[f+8>>3]=l;h[f+16>>3]=k;h[f+24>>3]=j/72.0;h[f+32>>3]=g/72.0;dn(a,112373,f);i=e;return}function ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;jf(a,b,c,1);return}function ff(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0;y=i;i=i+112|0;x=y+104|0;w=y+96|0;u=y+88|0;f=y+80|0;t=y+16|0;g=y;v=oB((d*140|0)+140|0)|0;A=+h[b>>3];r=t+48|0;h[r>>3]=A;z=+h[b+8>>3];s=t+56|0;h[s>>3]=z;c[f>>2]=~~(A+(A>=0.0?.5:-.5));c[f+4>>2]=~~(z+(z>=0.0?.5:-.5));f=Oz(v,112351,f)|0;if((d|0)>3){j=g+8|0;k=(((d+-4|0)>>>0)/3|0)*6|0;l=t+16|0;m=t+24|0;n=t+32|0;o=t+40|0;p=t+48|0;q=3;f=v+f|0;e=0;while(1){c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];B=e+1|0;h[l>>3]=+h[b+(B<<4)>>3];h[m>>3]=+h[b+(B<<4)+8>>3];B=e+2|0;h[n>>3]=+h[b+(B<<4)>>3];h[o>>3]=+h[b+(B<<4)+8>>3];e=e+3|0;h[p>>3]=+h[b+(e<<4)>>3];h[s>>3]=+h[b+(e<<4)+8>>3];e=1;do{Rs(g,t,3,+(e|0)/6.0,0,0);z=+h[g>>3];A=+h[j>>3];c[u>>2]=~~(z+(z>=0.0?.5:-.5));c[u+4>>2]=~~(A+(A>=0.0?.5:-.5));f=f+(Oz(f,112351,u)|0)|0;e=e+1|0}while((e|0)!=7);e=q+3|0;if((e|0)<(d|0)){B=q;q=e;e=B}else break}g=k+7|0}else g=1;c[w>>2]=v;dn(a,112358,w);pB(v);if((g|0)>0){f=g+-1|0;e=0;do{c[x>>2]=((e|0)%(f|0)|0|0)!=0&1;dn(a,112363,x);e=e+1|0}while((e|0)!=(g|0))}_m(a,175632)|0;i=y;return}function gf(a,b,c){a=a|0;b=b|0;c=c|0;jf(a,b,c,0);return}function hf(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=112346;c[e+4>>2]=b;dn(a,112339,e);i=d;return}function jf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;j=k+8|0;g=k;if((d|0)>0){f=0;do{m=+h[b+(f<<4)>>3];l=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(l+(l>=0.0?.5:-.5));dn(a,112351,g);f=f+1|0}while((f|0)!=(d|0))}if(e){l=+h[b>>3];m=+h[b+8>>3];c[j>>2]=~~(l+(l>=0.0?.5:-.5));c[j+4>>2]=~~(m+(m>=0.0?.5:-.5));dn(a,112351,j)}_m(a,175632)|0;i=k;return}function kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function lf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,j=0.0,k=0,l=0;e=i;i=i+32|0;f=e+8|0;k=e;b=b+8|0;l=c[b>>2]|0;c[k>>2]=l;c[k+4>>2]=l;dn(a,115472,k);j=(+h[d+16>>3]+ +h[d>>3])*.5;g=(+h[d+24>>3]+ +h[d+8>>3])*.5;c[f>>2]=c[b>>2];h[f+8>>3]=j;h[f+16>>3]=g;dn(a,115514,f);i=e;return}function mf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,j=0.0,k=0.0,l=0.0;e=i;i=i+48|0;f=e;j=+h[d>>3];l=+h[d+16>>3]-j;g=+h[d+24>>3];k=g-+h[d+8>>3];g=+(~~(+h[a+232>>3]-+h[a+216>>3])>>>0)-g;c[f>>2]=c[b+8>>2];h[f+8>>3]=l;h[f+16>>3]=k;h[f+24>>3]=j;h[f+32>>3]=g;dn(a,115559,f);_m(a,115651)|0;i=e;return}function nf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+256|0;z=B+248|0;y=B+232|0;w=B+216|0;v=B+200|0;u=B+184|0;t=B+168|0;s=B+160|0;r=B+152|0;q=B+136|0;p=B+120|0;A=B+104|0;x=B+88|0;o=B+72|0;n=B+64|0;m=B;if(!a)Ia(134710,115656,212,115675);if(!b)Ia(134740,115656,213,115675);l=b+8|0;if(!(c[l>>2]|0))Ia(134743,115656,214,115675);if(c[b+52>>2]|0){c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];b=m+32|0;d=d+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];f=+h[m>>3];h[m+16>>3]=f;g=+h[m+40>>3];h[m+24>>3]=g;j=+h[b>>3];h[m+48>>3]=j;k=+h[m+8>>3];h[m+56>>3]=k;if(e<<24>>24){dn(a,115696,n);h[o>>3]=f;h[o+8>>3]=k;dn(a,115699,o);h[x>>3]=f;h[x+8>>3]=g;dn(a,115699,x);h[A>>3]=j;h[A+8>>3]=g;dn(a,115699,A);h[p>>3]=j;h[p+8>>3]=k;dn(a,115699,p);h[q>>3]=f;h[q+8>>3]=k;dn(a,115699,q);A=c[l>>2]|0;c[r>>2]=4;c[r+4>>2]=A;dn(a,115706,r)}dn(a,115696,s);h[t>>3]=f;h[t+8>>3]=k;dn(a,115699,t);h[u>>3]=f;h[u+8>>3]=g;dn(a,115699,u);h[v>>3]=j;h[v+8>>3]=g;dn(a,115699,v);h[w>>3]=j;h[w+8>>3]=k;dn(a,115699,w);h[y>>3]=f;h[y+8>>3]=k;dn(a,115699,y);A=c[l>>2]|0;c[z>>2]=4;c[z+4>>2]=A;dn(a,115721,z)}i=B;return}function of(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;o=i;i=i+112|0;n=o+24|0;m=o+16|0;l=o;j=o+28|0;if(!b)Ia(134710,115656,153,115737);if(!d)Ia(134740,115656,154,115737);if(!(c[d+8>>2]|0))Ia(134743,115656,155,115737);k=d+52|0;if(c[k>>2]|0){f=d+60|0;g=c[f>>2]|0;if((g|0)==84)g=18;else{zb[g&127](d);c[k>>2]=0;c[f>>2]=0;c[d+56>>2]=0;g=10}}else g=10;do if((g|0)==10){if(!((wn(d)|0)<<24>>24))break;f=zz(c[d+20>>2]|0)|0;if((c[d+24>>2]&-2|0)==6){fz(f,j)|0;j=c[j+36>>2]|0;c[d+56>>2]=j;f=Qy(0,j,1,1,f,0)|0;c[k>>2]=f;a[d+16>>0]=1}else f=c[k>>2]|0;if(f)c[d+60>>2]=84;xn(d);if(c[k>>2]|0)g=18}while(0);if((g|0)==18){p=+h[e+8>>3]-+(c[d+36>>2]|0);h[l>>3]=+h[e>>3]-+(c[d+32>>2]|0);h[l+8>>3]=p;dn(b,115755,l);if(!(a[d+16>>0]|0)){c[m>>2]=c[d+12>>2];dn(b,115786,m)}else Xq(b,d);dn(b,115801,n)}i=o;return}function pf(a){a=a|0;Ry(c[a+52>>2]|0,c[a+56>>2]|0)|0;return}function qf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g+48|0;if(!a)Ia(134710,115656,121,115811);e=c[a+16>>2]|0;if(!e)Ia(123378,115656,123,115811);if(!b)Ia(134740,115656,124,115811);d=b+8|0;if(!(c[d>>2]|0))Ia(134743,115656,125,115811);if(!(c[e+8>>2]|0))Ia(162430,115656,128,115811);else{dn(a,115831,g);dn(a,115840,g+8|0);dn(a,115867,g+16|0);dn(a,115892,g+24|0);dn(a,115921,g+32|0);dn(a,115949,g+40|0);c[f>>2]=c[d>>2];dn(a,115956,f);dn(a,115995,g+56|0);dn(a,134423,g+64|0);i=g;return}}function rf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0.0;j=i;i=i+128|0;g=j+80|0;f=j;if(!a)Ia(134710,115656,97,116e3);if(!b)Ia(134740,115656,98,116e3);e=c[b+8>>2]|0;if(!e)Ia(134743,115656,99,116e3);else{m=+h[d>>3];k=~~(m+(m>=0.0?.5:-.5));m=+h[d+8>>3];b=~~(m+(m>=0.0?.5:-.5));m=+h[d+16>>3];l=~~(m+(m>=0.0?.5:-.5));m=+h[d+24>>3];d=~~(m+(m>=0.0?.5:-.5));c[f>>2]=2;c[f+4>>2]=5;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=-1;c[f+24>>2]=1;c[f+28>>2]=-1;c[f+32>>2]=0;h[f+40>>3]=0.0;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=5;c[f+72>>2]=0;c[f+76>>2]=e;dn(a,116019,f);c[g>>2]=k;c[g+4>>2]=b;c[g+8>>2]=k;c[g+12>>2]=d;c[g+16>>2]=l;c[g+20>>2]=d;c[g+24>>2]=l;c[g+28>>2]=b;c[g+32>>2]=k;c[g+36>>2]=b;dn(a,116077,g);i=j;return}}function sf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0.0;p=i;i=i+96|0;o=p+56|0;n=p+32|0;m=p;q=+h[d+16>>3];g=+h[d>>3];l=q-g;j=+h[d+24>>3];f=+h[d+8>>3];k=j-f;g=(q+g-l)*.5;if(!a)Ia(134710,115656,53,116109);if(!b)Ia(134740,115656,54,116109);e=b+8|0;if(!(c[e>>2]|0))Ia(134743,115656,55,116109);_m(a,116128)|0;_m(a,c[e>>2]|0)|0;e=a+360|0;f=-((j+f+k)*.5);if(!(c[e>>2]|0)){h[o>>3]=l;h[o+8>>3]=k;h[o+16>>3]=g;h[o+24>>3]=f;dn(a,116257,o)}else{h[m>>3]=k;h[m+8>>3]=l;h[m+16>>3]=g;h[m+24>>3]=f;dn(a,116148,m);c[n>>2]=c[e>>2];h[n+8>>3]=g;h[n+16>>3]=f;dn(a,116227,n)}_m(a,116336)|0;i=p;return}function tf(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=Rk(d)|0;if(e)do{xl(e,160855,304,1)|0;Xs(e);qt(e,c[(c[(gl(e)|0)+16>>2]|0)+116>>2]&1);i=e+16|0;c[(c[i>>2]|0)+176>>2]=0;h=$p(20)|0;g=c[i>>2]|0;c[g+172>>2]=h;c[g+184>>2]=0;g=$p(20)|0;h=c[i>>2]|0;c[h+180>>2]=g;c[h+200>>2]=0;h=$p(12)|0;g=c[i>>2]|0;c[g+196>>2]=h;c[g+192>>2]=0;g=$p(12)|0;h=c[i>>2]|0;c[h+188>>2]=g;c[h+208>>2]=0;h=$p(12)|0;i=c[i>>2]|0;c[i+204>>2]=h;c[i+216>>2]=1;e=Sk(d,e)|0}while((e|0)!=0);e=Rk(d)|0;if(e)do{f=Lj(d,e)|0;if(f)do{xl(f,161165,176,1)|0;Ys(f)|0;j=Gs(f,c[13413]|0,1,0)|0;g=f+16|0;c[(c[g>>2]|0)+156>>2]=j;j=Is(c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0,c[13407]|0,164137)|0;k=Is(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0,c[13407]|0,164137)|0;h=c[g>>2]|0;i=h+154|0;b[i>>1]=1;b[h+168>>1]=1;if((j|0)==(k|0)&(a[j>>0]|0)!=0){b[i>>1]=1e3;k=h+156|0;c[k>>2]=(c[k>>2]|0)*100}if(ji(f)|0){k=c[g>>2]|0;b[k+154>>1]=0;c[k+156>>2]=0}k=(Gs(f,c[13433]|0,0,0)|0)&255;a[(c[g>>2]|0)+152>>0]=k;k=(Gs(f,c[13414]|0,1,0)|0)&65535;b[(c[g>>2]|0)+170>>1]=k;f=Nj(d,f)|0}while((f|0)!=0);e=Sk(d,e)|0}while((e|0)!=0);return}function uf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[(c[b+16>>2]|0)+192>>2]|0;if(d)do{h=d+16|0;e=c[h>>2]|0;i=d;d=c[e+164>>2]|0;f=c[e+176>>2]|0;if((f|0)>0)do{g=f;f=f+-1|0;e=c[(c[e+172>>2]|0)+(f<<2)>>2]|0;dg(e);pB(c[e+16>>2]|0);pB(e);e=c[h>>2]|0}while((g|0)>1);f=c[e+184>>2]|0;if((f|0)>0){g=f+-1|0;e=c[(c[e+180>>2]|0)+(g<<2)>>2]|0;dg(e);pB(c[e+16>>2]|0);pB(e);if((f|0)>1){e=g;do{g=e;e=e+-1|0;f=c[(c[(c[h>>2]|0)+180>>2]|0)+(e<<2)>>2]|0;dg(f);pB(c[f+16>>2]|0);pB(f)}while((g|0)>1)}e=c[h>>2]|0}if((a[e+156>>0]|0)==1){f=c[e+180>>2]|0;if(f){pB(f);e=c[h>>2]|0}f=c[e+172>>2]|0;if(f){pB(f);e=c[h>>2]|0}pB(e);pB(i)}}while((d|0)!=0);d=Rk(b)|0;if(d)do{e=Lj(b,d)|0;if(e)do{pt(e);e=Nj(b,e)|0}while((e|0)!=0);xf(d);d=Sk(b,d)|0}while((d|0)!=0);yf(b);return}function vf(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;o=p+32|0;g=p;if(ek(b)|0){d=go(b,-1,8)|0;e=fo(b,0,g)|0;co(b,2,8,g)|0;e=(e|0)==0;f=(d|0)<0;if(f&e)zf(b);else{if(e)c[g+16>>2]=3;else d=f?8:d;c[g+8>>2]=d;c[g+20>>2]=0;n=Qn(b,o,0)|0;d=c[o>>2]|0;do if((d|0)!=1){m=b+16|0;if(c[(c[(c[m>>2]|0)+8>>2]|0)+84>>2]|0){zf(b);break}c[g+12>>2]=1;if((d|0)>0){d=0;do{l=c[n+(d<<2)>>2]|0;xl(l,160878,280,1)|0;f=$p(96)|0;k=c[l+16>>2]|0;c[k+8>>2]=f;j=c[m>>2]|0;e=c[j+8>>2]|0;h[f>>3]=+h[e>>3];h[f+24>>3]=+h[e+24>>3];c[k+144>>2]=c[j+144>>2];a[k+115>>0]=a[j+115>>0]|0;c[k+116>>2]=c[j+116>>2];c[k+248>>2]=c[j+248>>2];c[k+252>>2]=c[j+252>>2];c[k+244>>2]=c[j+244>>2];zf(l);d=d+1|0}while((d|0)<(c[o>>2]|0))}e=$p((ek(b)|0)<<4)|0;d=Rk(b)|0;if(d)while(1){l=c[d+16>>2]|0;c[l+132>>2]=e;h[e>>3]=+h[l+16>>3]/72.0;h[e+8>>3]=+h[l+24>>3]/72.0;d=Sk(b,d)|0;if(!d)break;else e=e+16|0}bo(c[o>>2]|0,n,b,g)|0;f=c[(c[(Rk(b)|0)+16>>2]|0)+132>>2]|0;d=Rk(b)|0;if(d){e=f;while(1){l=c[d+16>>2]|0;c[l+132>>2]=0;h[l+16>>3]=+h[e>>3]*72.0;h[l+24>>3]=+h[e+8>>3]*72.0;d=Sk(b,d)|0;if(!d)break;else e=e+16|0}}pB(f);l=c[o>>2]|0;if((l|0)>0){e=0;d=0;do{d=(c[(c[(c[n+(e<<2)>>2]|0)+16>>2]|0)+180>>2]|0)+d|0;e=e+1|0}while((e|0)!=(l|0));e=1}else{e=0;d=0}c[(c[m>>2]|0)+180>>2]=d;k=$p((d<<2)+4|0)|0;c[(c[m>>2]|0)+184>>2]=k;if(e){k=0;d=1;do{j=(c[n+(k<<2)>>2]|0)+16|0;e=c[j>>2]|0;if((c[e+180>>2]|0)>=1){g=1;f=d;while(1){q=Pn(c[(c[e+184>>2]|0)+(g<<2)>>2]|0)|0;d=f+1|0;c[(c[(c[m>>2]|0)+184>>2]|0)+(f<<2)>>2]=q;Af(c[(c[(c[j>>2]|0)+184>>2]|0)+(g<<2)>>2]|0,q);e=c[j>>2]|0;if((g|0)>=(c[e+180>>2]|0))break;else{g=g+1|0;f=d}}}k=k+1|0}while((k|0)!=(l|0))}}else zf(b);while(0);if((c[o>>2]|0)>0){d=0;do{q=n+(d<<2)|0;pB(c[(c[(c[q>>2]|0)+16>>2]|0)+8>>2]|0);yf(c[q>>2]|0);fl(b,c[q>>2]|0)|0;d=d+1|0}while((d|0)<(c[o>>2]|0))}pB(n)}}Qq(b);i=p;return}function wf(a){a=a|0;return c[(c[(hl(a)|0)+16>>2]|0)+188>>2]|0}function xf(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+172>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+180>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+188>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+196>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+204>>2]|0;if(d){pB(d);b=c[e>>2]|0}Sp(c[b+104>>2]|0);Sp(c[(c[e>>2]|0)+108>>2]|0);b=c[(c[e>>2]|0)+8>>2]|0;if(b)zb[c[(c[b+4>>2]|0)+4>>2]&127](a);yl(a,160855)|0;return}function yf(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;d=bm(a)|0;if(d)do{yf(d);d=cm(d)|0}while((d|0)!=0);if(xl(a,160878,0,1)|0){h=a+16|0;d=c[h>>2]|0;e=c[d+184>>2]|0;if(e){pB(e);d=c[h>>2]|0}e=c[d+268>>2]|0;if(e){pB(e);d=c[h>>2]|0}e=c[d+216>>2]|0;if(e){pB(e);d=c[h>>2]|0}f=c[d+196>>2]|0;do if(f){g=b[d+236>>1]|0;if(g<<16>>16>(b[d+238>>1]|0)){e=g;d=f}else{e=g<<16>>16;pB(c[f+(e<<6)+12>>2]|0);d=c[h>>2]|0;if(g<<16>>16<(b[d+238>>1]|0))do{e=e+1|0;pB(c[(c[d+196>>2]|0)+(e<<6)+12>>2]|0);d=c[h>>2]|0}while((e|0)<(b[d+238>>1]|0));e=b[d+236>>1]|0;d=c[d+196>>2]|0}if(e<<16>>16==-1){pB(d+-64|0);break}else{pB(d);break}}while(0);if((hl(a)|0)!=(a|0)){Sp(c[(c[h>>2]|0)+12>>2]|0);yl(a,160878)|0}}return}function zf(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;l=r+40|0;k=r;h=Gs(a,rj(a,0,116351,0)|0,-1,1)|0;mt(a,10);d=di(a,k)|0;Bf(a,a);tf(a);e=(h|0)==1;f=k+32|0;g=(h|0)==2;h=(h|0)==3;j=k+28|0;k=k+24|0;while(1){xh(a,d);if(e){j=3;break}if(c[f>>2]|0){dj(0,116357,l)|0;c[k>>2]=0;d=0}sg(a,(d|0)!=0&1);if(g){j=7;break}bh(a,d);if(h){j=9;break}p=(c[j>>2]|0)+-1|0;c[j>>2]=p;if(!((c[k>>2]|0)!=0&(p|0)!=0)){j=11;break}}if((j|0)==3)Cf(a,1);else if((j|0)==7)Cf(a,2);else if((j|0)==9)Cf(a,2);else if((j|0)==11){p=a+16|0;if((b[(c[p>>2]|0)+136>>1]&16)!=0?(q=am(a,117916,0)|0,(q|0)!=0):0){d=Rk(q)|0;a:do if(d){while(1){o=d;d=Sk(q,d)|0;kg(a,o);n=c[(c[o+16>>2]|0)+232>>2]|0;j=c[(c[p>>2]|0)+196>>2]|0;f=j+(n<<6)|0;e=c[f>>2]|0;j=j+(n<<6)+4|0;g=0;l=0;while(1){if((g|0)>=(e|0)){e=l;j=21;break}k=c[j>>2]|0;m=k+(g<<2)|0;l=c[m>>2]|0;h=g+1|0;if((l|0)==(o|0)){l=m;j=17;break}else g=h}if((j|0)==17){if((h|0)<(e|0)){c[l>>2]=c[k+(h<<2)>>2];h=g+2|0;g=c[(c[p>>2]|0)+196>>2]|0;f=g+(n<<6)|0;e=c[f>>2]|0;if((h|0)<(e|0))do{f=c[g+(n<<6)+4>>2]|0;c[f+(h+-1<<2)>>2]=c[f+(h<<2)>>2];h=h+1|0;g=c[(c[p>>2]|0)+196>>2]|0;f=g+(n<<6)|0;e=c[f>>2]|0}while((h|0)<(e|0))}c[f>>2]=e+-1}else if((j|0)==21?(0,(e|0)!=(o|0)):0)break;xf(o);Zk(a,o)|0;if(!d)break a}Ia(116448,116455,248,116465)}while(0);em(a,q)|0}Vh(a);Ef(a);if((Ls(zj(a,116482)|0)|0)<<24>>24)zi(a)}i=r;return}function Af(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;xl(d,160878,280,1)|0;g=d+16|0;d=(c[g>>2]|0)+16|0;f=b+16|0;b=(c[f>>2]|0)+16|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];c[d+20>>2]=c[b+20>>2];c[d+24>>2]=c[b+24>>2];c[d+28>>2]=c[b+28>>2];b=c[f>>2]|0;d=c[g>>2]|0;a[d+275>>0]=a[b+275>>0]|0;d=d+48|0;b=b+48|0;e=d+64|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(e|0));e=c[(c[f>>2]|0)+180>>2]|0;c[(c[g>>2]|0)+180>>2]=e;d=$p((e<<2)+4|0)|0;b=c[g>>2]|0;c[b+184>>2]=d;d=c[f>>2]|0;if((e|0)>=1){b=1;while(1){d=Pn(c[(c[d+184>>2]|0)+(b<<2)>>2]|0)|0;c[(c[(c[g>>2]|0)+184>>2]|0)+(b<<2)>>2]=d;Af(c[(c[(c[f>>2]|0)+184>>2]|0)+(b<<2)>>2]|0,d);d=c[f>>2]|0;if((b|0)==(e|0))break;else b=b+1|0}b=c[g>>2]|0}g=d+12|0;c[b+12>>2]=c[g>>2];c[g>>2]=0;return}function Bf(a,b){a=a|0;b=b|0;if((hl(a)|0)!=(a|0))xl(a,160878,280,1)|0;if((a|0)==(b|0))c[(c[(hl(a)|0)+16>>2]|0)+188>>2]=a;a=bm(a)|0;if(a)do{Bf(a,b);a=cm(a)|0}while((a|0)!=0);return}function Cf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+1040|0;m=n+8|0;l=n;k=n+16|0;f=rj(a,1,118472,164137)|0;g=rj(a,1,116491,164137)|0;d=Rk(a)|0;if(d){h=(b|0)>0;e=(b|0)>1;b=d;do{if(h?(j=b+16|0,c[l>>2]=c[(c[j>>2]|0)+232>>2],Oz(k,160852,l)|0,Cj(b,f,k)|0,e):0){c[m>>2]=c[(c[j>>2]|0)+236>>2];Oz(k,160852,m)|0;Cj(b,g,k)|0}b=Sk(a,b)|0}while((b|0)!=0)}i=n;return}function Df(b,c){b=b|0;c=c|0;var d=0;d=a[b+28>>0]|0;if(a[c+28>>0]|0)if(d<<24>>24){d=~~(+h[b>>3]-+h[c>>3]);if(!d)d=~~(+h[b+8>>3]-+h[c+8>>3])}else d=-1;else d=d<<24>>24!=0&1;return d|0}function Ef(a){a=a|0;Ff(a,1);return}-function Rg(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=d+16|0;e=c[p>>2]|0;if((a[e+240>>0]|0)!=0?(f=b[e+236>>1]|0,f<<16>>16<=(b[e+238>>1]|0)):0){o=f<<16>>16;f=0;a:while(1){g=c[e+196>>2]|0;i=c[g+(o<<6)>>2]|0;if(i){e=c[g+(o<<6)+4>>2]|0;n=c[(c[(c[e>>2]|0)+16>>2]|0)+236>>2]|0;if((i|0)>0){g=(i|0)>1;h=0;do{a[(c[(c[e+(h<<2)>>2]|0)+16>>2]|0)+157>>0]=0;h=h+1|0}while((h|0)<(i|0));e=g?i:1}else e=0;if(!f)f=aq((e<<2)+4|0)|0;else f=cq(f,(e<<2)+4|0)|0;e=c[p>>2]|0;g=c[e+196>>2]|0;h=c[g+(o<<6)>>2]|0;if((h|0)>0){i=g;m=0;g=0;do{l=c[(c[i+(o<<6)+4>>2]|0)+(((c[e+116>>2]&1|0)==0?h+~m|0:m)<<2)>>2]|0;k=l+16|0;e=c[k>>2]|0;if((c[e+200>>2]|0)>0){i=0;h=0;do{h=((Sg(d,c[(c[e+196>>2]|0)+(i<<2)>>2]|0)|0)!=0&1)+h|0;i=i+1|0;e=c[k>>2]|0}while((i|0)<(c[e+200>>2]|0));j=h}else j=0;if((c[e+192>>2]|0)>0){i=0;h=0;do{h=((Sg(d,c[(c[e+188>>2]|0)+(i<<2)>>2]|0)|0)!=0&1)+h|0;i=i+1|0;e=c[k>>2]|0}while((i|0)<(c[e+192>>2]|0))}else h=0;if(h|j){if((j|0)==0&(a[e+157>>0]|0)==0)g=(Tg(d,l,f+(g<<2)|0,o)|0)+g|0}else{c[f+(g<<2)>>2]=l;g=g+1|0}m=m+1|0;e=c[p>>2]|0;i=c[e+196>>2]|0;h=c[i+(o<<6)>>2]|0}while((h|0)>(m|0));if(g){if((c[e+116>>2]&1|0)==0?(q=f+(g+-1<<2)|0,f>>>0<q>>>0):0){e=f;g=q;do{m=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=m;e=e+4|0;g=g+-4|0}while(e>>>0<g>>>0);e=c[p>>2]|0}g=c[e+196>>2]|0;if((c[g+(o<<6)>>2]|0)>0){i=0;while(1){e=c[f+(i<<2)>>2]|0;c[(c[g+(o<<6)+4>>2]|0)+(i<<2)>>2]=e;c[(c[e+16>>2]|0)+236>>2]=i+n;i=i+1|0;e=c[p>>2]|0;h=c[e+196>>2]|0;g=c[h+(o<<6)>>2]|0;if((i|0)>=(g|0))break;else g=h}if((g|0)>0){m=0;do{l=(c[(c[h+(o<<6)+4>>2]|0)+(m<<2)>>2]|0)+16|0;h=c[l>>2]|0;g=c[h+188>>2]|0;if((g|0)!=0?(r=c[g>>2]|0,(r|0)!=0):0){k=r;j=0;do{i=c[k>>2]&3;g=c[(c[(c[((i|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;i=c[(c[(c[((i|0)==3?k:k+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!(c[e+116>>2]&1))if((g|0)<(i|0))t=35;else e=j;else if((g|0)>(i|0))t=35;else e=j;if((t|0)==35){t=0;if(Sg(d,k)|0){t=36;break a}ng(k);wg(d,k);h=c[l>>2]|0;e=j+-1|0}j=e+1|0;k=c[(c[h+188>>2]|0)+(j<<2)>>2]|0;e=c[p>>2]|0}while((k|0)!=0)}m=m+1|0;h=c[e+196>>2]|0}while((m|0)<(c[h+(o<<6)>>2]|0))}}}}a[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(o<<6)+49>>0]=0}if((o|0)<(b[e+238>>1]|0))o=o+1|0;else{s=f;break}}if((t|0)==36)Ia(117610,117013,1561,117649);if(s)pB(s)}return}function Sg(a,b){a=a|0;b=b|0;if((c[(c[b+16>>2]|0)+156>>2]|0)!=0?(Ug(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)!=0:0)b=(Ug(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)!=0&1;else b=0;return b|0}function Tg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=d+16|0;h=c[k>>2]|0;a[h+157>>0]=1;if((c[h+192>>2]|0)>0?(g=c[c[h+188>>2]>>2]|0,(g|0)!=0):0){i=g;g=0;j=0;do{if((Sg(b,i)|0)!=0?(l=c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0,(a[(c[l+16>>2]|0)+157>>0]|0)==0):0)g=(Tg(b,l,e+(g<<2)|0,f)|0)+g|0;j=j+1|0;h=c[k>>2]|0;i=c[(c[h+188>>2]|0)+(j<<2)>>2]|0}while((i|0)!=0)}else g=0;if((c[h+232>>2]|0)==(f|0)){c[e+(g<<2)>>2]=d;return g+1|0}else Ia(117662,117013,1490,117678);return 0}function Ug(b,d){b=b|0;d=d|0;var e=0;if(!(a[(c[d+16>>2]|0)+156>>0]|0))e=(ql(b,d)|0)!=0;else e=0;return e&1|(Pg(b,d)|0)|0}function Vg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;m=d+16|0;n=c[m>>2]|0;o=c[(c[(c[b+16>>2]|0)+196>>2]|0)+(c[n+232>>2]<<6)+56>>2]|0;a[n+157>>0]=1;a[n+158>>0]=1;n=(c[(c[(wf(b)|0)+16>>2]|0)+180>>2]|0)>0;d=c[m>>2]|0;e=c[d+188>>2]|0;a:do if((e|0)!=0?(f=c[e>>2]|0,(f|0)!=0):0){k=o+4|0;l=o+8|0;d=0;b:while(1){if(n){if((ql(b,c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)|0)!=0?(ql(b,c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)|0)!=0:0)q=7}else q=7;do if((q|0)==7){q=0;i=f+16|0;if(c[(c[i>>2]|0)+156>>2]|0){e=c[f>>2]&3;h=f+-48|0;r=c[(c[((e|0)==2?f:h)+40>>2]|0)+16>>2]|0;j=c[r+284>>2]|0;g=(j|0)<(c[o>>2]|0);if((a[r+158>>0]|0)==1){if(!g){q=10;break b}e=c[(c[(c[((e|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;g=c[k>>2]|0;if((e|0)>=(g|0)){q=12;break b}r=(_(g,j)|0)+e|0;a[(c[l>>2]|0)+r>>0]=1;ng(f);d=d+-1|0;if((a[(c[i>>2]|0)+112>>0]|0)==4)break;wg(b,f);break}else{if(!g){q=16;break b}e=c[(c[(c[((e|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;g=c[k>>2]|0;if((e|0)>=(g|0)){q=18;break b}e=(_(g,e)|0)+j|0;a[(c[l>>2]|0)+e>>0]=1;e=c[((c[f>>2]&3|0)==2?f:h)+40>>2]|0;if(a[(c[e+16>>2]|0)+157>>0]|0)break;Vg(b,e);break}}}while(0);d=d+1|0;e=c[m>>2]|0;f=c[(c[e+188>>2]|0)+(d<<2)>>2]|0;if(!f){p=e;break a}}if((q|0)==10)Ia(117688,117013,1251,117720);else if((q|0)==12)Ia(117732,117013,1252,117720);else if((q|0)==16)Ia(117688,117013,1260,117720);else if((q|0)==18)Ia(117732,117013,1261,117720)}else p=d;while(0);a[p+158>>0]=0;return}function Wg(a){a=a|0;var d=0,e=0,f=0,g=0,i=0,j=0;a=c[a+16>>2]|0;e=b[a+236>>1]|0;d=b[a+238>>1]|0;if(e<<16>>16<=d<<16>>16){i=c[a+196>>2]|0;g=d<<16>>16;f=e<<16>>16;while(1){d=c[i+(f<<6)>>2]|0;if((d|0)>0){a=c[i+(f<<6)+4>>2]|0;e=0;do{j=c[(c[a+(e<<2)>>2]|0)+16>>2]|0;h[j+16>>3]=+(c[j+236>>2]|0);e=e+1|0}while((e|0)<(d|0))}if((f|0)<(g|0))f=f+1|0;else break}}return}function Xg(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=d+16|0;e=c[n>>2]|0;m=b[e+236>>1]|0;d=b[e+238>>1]|0;k=m<<16>>16>d<<16>>16;if(!k){l=c[e+196>>2]|0;f=d<<16>>16;j=m<<16>>16;while(1){g=c[l+(j<<6)>>2]|0;if((g|0)>0){d=c[l+(j<<6)+4>>2]|0;i=0;do{o=c[(c[d+(i<<2)>>2]|0)+16>>2]|0;c[o+236>>2]=~~+h[o+16>>3];i=i+1|0}while((i|0)<(g|0))}if((j|0)<(f|0))j=j+1|0;else break}if(!k){d=m<<16>>16;while(1){a[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(d<<6)+49>>0]=0;o=c[e+196>>2]|0;_z(c[o+(d<<6)+4>>2]|0,c[o+(d<<6)>>2]|0,4,13);e=c[n>>2]|0;if((d|0)>=(b[e+238>>1]|0))break;else d=d+1|0}}}return}function Yg(a,b){a=a|0;b=b|0;return (c[(c[(c[a>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[b>>2]|0)+16>>2]|0)+236>>2]|0)|0}function Zg(a,b){a=a|0;b=b|0;var c=0;c=Rk(a)|0;if(c)do{_g(a,c,b);c=Sk(a,c)|0}while((c|0)!=0);return}function _g(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=c[12483]|0;h=d+16|0;f=c[h>>2]|0;a:do if(!(c[f+212>>2]|0)){j=(e|0)!=0;if(j){d=c[c[f+180>>2]>>2]|0;if(!d)break;else{g=d;e=f;f=0;d=0}do{if(!($g(g)|0)){c[k+(d<<2)>>2]=g;e=c[h>>2]|0;d=d+1|0}f=f+1|0;g=c[(c[e+180>>2]|0)+(f<<2)>>2]|0}while((g|0)!=0)}else{d=c[c[f+172>>2]>>2]|0;if(!d)break;else{g=d;e=f;f=0;d=0}do{if(!($g(g)|0)){c[k+(d<<2)>>2]=g;e=c[h>>2]|0;d=d+1|0}f=f+1|0;g=c[(c[e+172>>2]|0)+(f<<2)>>2]|0}while((g|0)!=0)}if((d|0)>=2?(c[k+(d<<2)>>2]=0,_z(k,d,4,14),i=c[k+4>>2]|0,(i|0)!=0):0){e=i;i=1;do{g=c[k+(i+-1<<2)>>2]|0;h=c[g>>2]&3;d=c[e>>2]|0;if(j){f=(d&3|0)==2?e:e+-48|0;d=(h|0)==2?g:g+-48|0}else{f=(d&3|0)==3?e:e+48|0;d=(h|0)==3?g:g+48|0}e=c[d+40>>2]|0;d=c[f+40>>2]|0;if(ag(e,d)|0)break a;e=gg(e,d,0)|0;a[(c[e+16>>2]|0)+112>>0]=4;mg(b,e);i=i+1|0;e=c[k+(i<<2)>>2]|0}while((e|0)!=0)}}while(0);return}function $g(a){a=a|0;var b=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;return (c[(c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)!=(c[(c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)|0}function ah(a,b){a=a|0;b=b|0;return ((c[c[a>>2]>>2]|0)>>>4)-((c[c[b>>2]>>2]|0)>>>4)|0}function bh(d,f){d=d|0;f=f|0;var g=0,j=0,k=0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+64|0;J=L+40|0;I=L+32|0;H=L+16|0;C=L;B=L+48|0;K=d+16|0;if(c[(c[K>>2]|0)+192>>2]|0){vi(d);eh(d);if(a[124828]|0)Fi(d);g=c[K>>2]|0;j=b[g+236>>1]|0;if(j<<16>>16<=(b[g+238>>1]|0)){u=j<<16>>16;while(1){q=c[g+196>>2]|0;s=c[q+(u<<6)>>2]|0;if((s|0)>0){m=c[q+(u<<6)+4>>2]|0;n=0;j=0;do{k=c[(c[m+(n<<2)>>2]|0)+16>>2]|0;c[k+236>>2]=j;if((a[k+159>>0]|0)==6)k=c[k+216>>2]|0;else k=1;j=k+j|0;n=n+1|0}while((n|0)!=(s|0));m=j}else m=0;if((m|0)>(s|0)){g=c[q+(u<<6)+4>>2]|0;if(!g)g=aq((m<<2)+4|0)|0;else g=cq(g,(m<<2)+4|0)|0;j=c[(c[K>>2]|0)+196>>2]|0;c[j+(u<<6)+4>>2]=g;k=c[j+(u<<6)>>2]|0;if((k|0)>0)do{A=k;k=k+-1|0;j=c[g+(k<<2)>>2]|0;c[g+(c[(c[j+16>>2]|0)+236>>2]<<2)>>2]=j;j=c[(c[K>>2]|0)+196>>2]|0;g=c[j+(u<<6)+4>>2]|0}while((A|0)>1);c[j+(u<<6)>>2]=m;c[g+(m<<2)>>2]=0;g=c[K>>2]|0}if((u|0)<(b[g+238>>1]|0))u=u+1|0;else break}}g=c[g+192>>2]|0;if(g)do{k=g+16|0;g=c[k>>2]|0;j=c[g+224>>2]|0;if(j){fh(d,j);g=c[k>>2]|0}j=c[g+228>>2]|0;if(j){fh(d,j);g=c[k>>2]|0}j=c[g+204>>2]|0;if(j){k=0;while(1)if(!(c[j+(k<<2)>>2]|0))break;else k=k+1|0}g=c[g+164>>2]|0}while((g|0)!=0);if(Li(d)|0)eh(d);g=c[K>>2]|0;j=c[g+192>>2]|0;if(j){g=j;do{n=g+16|0;m=c[n>>2]|0;g=m+172|0;j=c[g+4>>2]|0;m=m+248|0;c[m>>2]=c[g>>2];c[m+4>>2]=j;m=c[n>>2]|0;j=m+180|0;g=c[j+4>>2]|0;m=m+256|0;c[m>>2]=c[j>>2];c[m+4>>2]=g;m=c[n>>2]|0;g=c[m+180>>2]|0;j=0;while(1)if(!(c[g+(j<<2)>>2]|0))break;else j=j+1|0;k=c[m+172>>2]|0;g=0;while(1)if(!(c[k+(g<<2)>>2]|0))break;else g=g+1|0;c[m+176>>2]=0;g=$p((g+j<<2)+16|0)|0;A=c[n>>2]|0;c[A+172>>2]=g;c[A+184>>2]=0;A=$p(16)|0;g=c[n>>2]|0;c[g+180>>2]=A;g=c[g+164>>2]|0}while((g|0)!=0);g=c[K>>2]|0}A=c[g+196>>2]|0;z=(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1)==0;j=c[g+248>>2]|0;c[B>>2]=j;c[B+4>>2]=z?j:5;j=b[g+236>>1]|0;if(j<<16>>16<=(b[g+238>>1]|0)){z=j<<16>>16;while(1){x=A+(z<<6)+4|0;j=c[x>>2]|0;k=c[j>>2]|0;c[(c[k+16>>2]|0)+232>>2]=0;y=A+(z<<6)|0;if((c[y>>2]|0)>0){p=+(c[B+((z&1)<<2)>>2]|0);q=0;o=0.0;while(1){w=k+16|0;g=c[w>>2]|0;l=+h[g+96>>3];h[g+240>>3]=l;if((c[g+208>>2]|0)>0){m=c[c[g+204>>2]>>2]|0;if(!m)m=0;else{n=0;j=0;do{u=c[m>>2]&3;if((c[((u|0)==3?m:m+48|0)+40>>2]|0)==(c[((u|0)==2?m:m+-48|0)+40>>2]|0)){j=(es(m)|0)+j|0;g=c[w>>2]|0}n=n+1|0;m=c[(c[g+204>>2]|0)+(n<<2)>>2]|0}while((m|0)!=0);n=g;m=j;g=n;j=c[x>>2]|0;l=+h[n+96>>3]}l=l+ +(m|0);h[g+96>>3]=l}u=q+1|0;j=c[j+(u<<2)>>2]|0;if(j){g=j+16|0;v=p+(l+ +h[(c[g>>2]|0)+88>>3]);ch(k,j,v,0)|0;s=~~(o+v);c[(c[g>>2]|0)+232>>2]=s;g=c[w>>2]|0;o=+(s|0)}j=c[g+112>>2]|0;if(j){m=c[g+256>>2]|0;n=c[m>>2]|0;m=c[m+4>>2]|0;g=(c[(c[(c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0);k=g?m:n;m=g?n:m;n=j+16|0;g=c[n>>2]|0;l=+((_(c[(c[K>>2]|0)+248>>2]|0,e[g+170>>1]|0)|0)/2|0|0);s=c[k>>2]&3;j=c[((s|0)==2?k:k+-48|0)+40>>2]|0;k=c[((s|0)==3?k:k+48|0)+40>>2]|0;if(!(gh(k,j)|0))ch(j,k,+(~~(+h[(c[k+16>>2]|0)+88>>3]+(l+ +h[(c[j+16>>2]|0)+96>>3]))|0),c[g+156>>2]|0)|0;g=c[m>>2]&3;j=c[((g|0)==3?m:m+48|0)+40>>2]|0;g=c[((g|0)==2?m:m+-48|0)+40>>2]|0;if(!(gh(g,j)|0))ch(j,g,+(~~(+h[(c[g+16>>2]|0)+88>>3]+(l+ +h[(c[j+16>>2]|0)+96>>3]))|0),c[(c[n>>2]|0)+156>>2]|0)|0}g=c[w>>2]|0;if((c[g+192>>2]|0)>0){s=0;do{n=c[(c[g+188>>2]|0)+(s<<2)>>2]|0;m=c[n>>2]&3;k=c[((m|0)==3?n:n+48|0)+40>>2]|0;m=c[((m|0)==2?n:n+-48|0)+40>>2]|0;q=(c[(c[k+16>>2]|0)+236>>2]|0)<(c[(c[m+16>>2]|0)+236>>2]|0);j=q?k:m;k=q?m:k;l=+h[(c[j+16>>2]|0)+96>>3]+ +h[(c[k+16>>2]|0)+88>>3];n=n+16|0;m=~~(l+ +(_(c[(c[K>>2]|0)+248>>2]|0,e[(c[n>>2]|0)+170>>1]|0)|0));q=$f(j,k)|0;do if(!q){g=c[n>>2]|0;if(c[g+96>>2]|0)break;ch(j,k,+(m|0),c[g+156>>2]|0)|0}else{M=+(m|0);j=c[n>>2]|0;v=+h[j+136>>3];v=l+ +(c[(c[K>>2]|0)+248>>2]|0)+ +(~~(v+(v>=0.0?.5:-.5))|0);g=~~(M>v?M:v);if((g|0)>65535){h[C>>3]=+(g|0);c[C+8>>2]=65535;dj(1,117926,C)|0;j=c[n>>2]|0;g=65535}q=c[q+16>>2]|0;m=q+170|0;n=e[m>>1]|0;b[m>>1]=(n|0)>(g|0)?n:g;q=q+156|0;m=c[q>>2]|0;n=c[j+156>>2]|0;c[q>>2]=(m|0)>(n|0)?m:n}while(0);s=s+1|0;g=c[w>>2]|0}while((s|0)<(c[g+192>>2]|0))}if((u|0)>=(c[y>>2]|0))break;k=c[x>>2]|0;j=k;k=c[k+(u<<2)>>2]|0;q=u}g=c[K>>2]|0}if((z|0)<(b[g+238>>1]|0))z=z+1|0;else break}}j=c[g+192>>2]|0;if(j){g=j;do{m=g+16|0;g=c[m>>2]|0;j=c[g+256>>2]|0;if((j|0)!=0?(D=c[j>>2]|0,(D|0)!=0):0){j=D;k=0;do{x=lg(d)|0;g=x+16|0;a[(c[g>>2]|0)+156>>0]=2;z=j+16|0;A=c[z>>2]|0;B=~~(+h[A+56>>3]-+h[A+16>>3]);y=(B|0)>0;C=y?0:0-B|0;B=y?B:0;y=j+48|0;ch(x,c[((c[j>>2]&3|0)==3?j:y)+40>>2]|0,+(B+1|0),c[A+156>>2]|0)|0;A=j+-48|0;ch(x,c[((c[j>>2]&3|0)==2?j:A)+40>>2]|0,+(C+1|0),c[(c[z>>2]|0)+156>>2]|0)|0;z=c[j>>2]&3;B=(c[(c[(c[((z|0)==3?j:y)+40>>2]|0)+16>>2]|0)+232>>2]|0)-B|0;C=(c[(c[(c[((z|0)==2?j:A)+40>>2]|0)+16>>2]|0)+232>>2]|0)-C|0;c[(c[g>>2]|0)+232>>2]=((B|0)<(C|0)?B:C)+-1;k=k+1|0;g=c[m>>2]|0;j=c[(c[g+256>>2]|0)+(k<<2)>>2]|0}while((j|0)!=0)}g=c[g+164>>2]|0}while((g|0)!=0);g=c[K>>2]|0}if((c[g+180>>2]|0)>0){hh(d);ih(d);jh(d);kh(d);g=c[K>>2]|0}g=c[g+8>>2]|0;if((c[g+84>>2]|0)==3?(r=+h[g+64>>3],t=+h[g+72>>3],!(r*t<=1.0)):0){lh(d);D=c[K>>2]|0;M=(c[D+116>>2]&1|0)==0?r:t;ch(c[D+256>>2]|0,c[D+260>>2]|0,M<65535.0?M:65535.0,1e3)|0}if(eq(d,2,mh(d)|0)|0){g=c[K>>2]|0;k=b[g+236>>1]|0;j=b[g+238>>1]|0;a:do if(k<<16>>16<=j<<16>>16){A=k<<16>>16;b:while(1){z=c[g+196>>2]|0;w=c[z+(A<<6)>>2]|0;c:do if((w|0)>0){y=c[z+(A<<6)+4>>2]|0;x=0;do{k=c[y+(x<<2)>>2]|0;s=c[k+16>>2]|0;u=c[s+256>>2]|0;do if(u){m=c[u>>2]|0;if(!m)break;else q=0;do{n=c[m>>2]&3;if((c[(c[(c[((n|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;q=q+1|0;if((c[(c[(c[((n|0)==3?m:m+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;m=c[u+(q<<2)>>2]|0}while((m|0)!=0)}while(0);s=c[s+248>>2]|0;do if(s){m=c[s>>2]|0;if(!m)break;else q=0;do{n=c[m>>2]&3;if((c[(c[(c[((n|0)==3?m:m+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;q=q+1|0;if((c[(c[(c[((n|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;m=c[s+(q<<2)>>2]|0}while((m|0)!=0)}while(0);x=x+1|0}while((x|0)<(w|0));if(k){k=c[y>>2]|0;g=c[c[z+(((A|0)<(j<<16>>16|0)?1:-1)+A<<6)+4>>2]>>2]|0;if(!g)break b;D=lg(d)|0;j=D+16|0;a[(c[j>>2]|0)+156>>0]=2;ch(D,k,0.0,0)|0;ch(D,g,0.0,0)|0;D=c[(c[k+16>>2]|0)+232>>2]|0;g=c[(c[g+16>>2]|0)+232>>2]|0;c[(c[j>>2]|0)+232>>2]=(D|0)<(g|0)?D:g;g=c[K>>2]|0;j=b[g+238>>1]|0}}while(0);if((A|0)<(j<<16>>16|0))A=A+1|0;else break a}Ia(118002,118005,111,118016)}while(0);if(eq(d,2,mh(d)|0)|0)Ia(118029,118005,134,118057)}g=c[K>>2]|0;q=c[g+196>>2]|0;j=b[g+236>>1]|0;g=b[g+238>>1]|0;if(j<<16>>16<=g<<16>>16){n=g<<16>>16;k=j<<16>>16;while(1){g=c[q+(k<<6)>>2]|0;if((g|0)>0){j=c[q+(k<<6)+4>>2]|0;m=0;do{C=c[(c[j+(m<<2)>>2]|0)+16>>2]|0;D=C+232|0;h[C+16>>3]=+(c[D>>2]|0);c[D>>2]=k;m=m+1|0}while((m|0)!=(g|0))}if((k|0)<(n|0))k=k+1|0;else break}}nh(d,d);m=c[K>>2]|0;d:do if((b[m+238>>1]|0)>0?(G=c[m+8>>2]|0,E=c[G+84>>2]|0,(E|0)!=0):0){t=+h[m+32>>3];D=~~(t-+h[m+16>>3]);v=+h[m+40>>3];g=~~(v-+h[m+24>>3]);k=(c[m+116>>2]&1|0)==0;j=k?g:D;g=k?D:g;e:do switch(E|0){case 4:{l=+h[G+48>>3];o=+h[G+56>>3];if(l<.001|o<.001)break d;r=+h[G+32>>3];p=+h[G+40>>3];r=l-r-r;l=o-p-p;o=r/t;p=l/v;if(o>=1.0&p>=1.0)break d;p=o<p?o:p;p=p>.5?p:.5;M=l*+Z(+(v*p/l))/v;l=t*(r*+Z(+(t*p/r))/t);h[G+64>>3]=l;h[G+72>>3]=v*M;F=113;break}case 2:{l=+h[G+64>>3];F=113;break}case 5:{l=+h[G+64>>3];if(l<=0.0)break d;o=l/t;l=+h[G+72>>3]/v;if(!(o>1.0&l>1.0))break d;l=o<l?o:l;p=l;break}case 1:{o=+h[G+16>>3];l=+(j|0)/+(g|0);if(l<o){p=1.0;l=o/l;break e}else{p=l/o;l=1.0;break e}}default:break d}while(0);do if((F|0)==113){if(l<=0.0)break d;o=l/+(g|0);l=+h[G+72>>3]/+(j|0);if(o<1.0|l<1.0)if(o<l){p=1.0;l=l/o;break}else{p=o/l;l=1.0;break}else p=o}while(0);o=k?l:p;l=k?p:l;g=c[m+192>>2]|0;if(g)do{G=c[g+16>>2]|0;F=G+16|0;M=l*+h[F>>3];h[F>>3]=+(~~(M+(M>=0.0?.5:-.5))|0);F=G+24|0;M=o*+h[F>>3];h[F>>3]=+(~~(M+(M>=0.0?.5:-.5))|0);g=c[G+164>>2]|0}while((g|0)!=0);oh(d,l,o)}while(0);f:do if(f){G=c[K>>2]|0;l=+h[G+32>>3]-+h[G+16>>3];o=+h[G+40>>3]-+h[G+24>>3];p=l/o;if(a[124827]|0){G=c[22667]|0;h[H>>3]=p;h[H+8>>3]=l*o/1.0e4;Bz(G,118070,H)|0;c[I>>2]=$h(d)|0;Bz(G,118095,I)|0}l=+h[f>>3];do if(p>l*1.1)c[f+24>>2]=~~(l*+((c[f+20>>2]|0)-(c[f+16>>2]|0)|0)/p);else{g=f+24|0;if(!(p<=l*.8)){c[g>>2]=0;break}c[g>>2]=-1;if(!(a[124827]|0))break f;Mz(118105,34,1,c[22667]|0)|0}while(0);if(a[124827]|0){I=c[22667]|0;c[J>>2]=c[f+24>>2];Bz(I,118140,J)|0}}while(0);g=c[(c[K>>2]|0)+192>>2]|0;g:do if(g){do{n=g+16|0;g=c[n>>2]|0;j=c[g+180>>2]|0;k=c[j>>2]|0;if(k){m=0;do{pB(c[k+16>>2]|0);pB(k);m=m+1|0;g=c[n>>2]|0;j=c[g+180>>2]|0;k=c[j+(m<<2)>>2]|0}while((k|0)!=0)}if(j){pB(j);g=c[n>>2]|0}j=c[g+172>>2]|0;if(j){pB(j);g=c[n>>2]|0}J=g+256|0;f=c[J+4>>2]|0;g=g+180|0;c[g>>2]=c[J>>2];c[g+4>>2]=f;g=c[n>>2]|0;f=g+248|0;J=c[f+4>>2]|0;g=g+172|0;c[g>>2]=c[f>>2];c[g+4>>2]=J;g=c[(c[n>>2]|0)+164>>2]|0}while((g|0)!=0);g=c[(c[K>>2]|0)+192>>2]|0;if(g){j=0;do{n=(j|0)==0;m=j+16|0;while(1){k=c[g+16>>2]|0;j=g;g=c[k+164>>2]|0;if((a[k+156>>0]|0)!=2)break;if(n)c[(c[K>>2]|0)+192>>2]=g;else c[(c[m>>2]|0)+164>>2]=g;pB(k);pB(j);if(!g)break g}}while((g|0)!=0)}}while(0);c[(c[(c[(c[K>>2]|0)+192>>2]|0)+16>>2]|0)+168>>2]=0}i=L;return}function ch(a,d,e,f){a=a|0;d=d|0;e=+e;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;j=m;l=$p(96)|0;n=l+48|0;c[n>>2]=c[n>>2]|3;c[l>>2]=c[l>>2]&-4|2;g=$p(176)|0;k=l+16|0;c[k>>2]=g;c[((c[l>>2]&3|0)==3?l:n)+40>>2]=a;c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2]=d;if(e>65535.0){h[j>>3]=e;c[j+8>>2]=65535;dj(1,117926,j)|0;e=65535.0;g=c[k>>2]|0}b[g+170>>1]=~~(e+(e>=0.0?.5:-.5));c[g+156>>2]=f;bg(l)|0;i=m;return l|0}function dh(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+16>>2]|0;f=a[e+84>>0]|0;b=c[d+16>>2]|0;do if(f<<24>>24==(a[b+84>>0]|0)){if(+h[e+56>>3]==+h[b+56>>3]){if(!(f<<24>>24==0?1:+h[e+64>>3]==+h[b+64>>3])){b=0;break}}else if(f<<24>>24){b=0;break}if(+h[e+16>>3]==+h[b+16>>3]?+h[e+24>>3]==+h[b+24>>3]:0){b=1;break}b=(a[e+44>>0]|0)==0}else b=0;while(0);return b&1|0}function eh(d){d=d|0;var e=0,f=0,g=0,i=0.0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0;x=d+16|0;u=c[x>>2]|0;A=c[u+196>>2]|0;e=b[u+236>>1]|0;if(e<<16>>16<=(b[u+238>>1]|0)){u=e<<16>>16;while(1){n=A+(u<<6)|0;if((c[n>>2]|0)>0){o=A+(u<<6)+4|0;p=A+(u<<6)+40|0;q=A+(u<<6)+24|0;r=A+(u<<6)+32|0;s=A+(u<<6)+16|0;t=0;do{m=(c[(c[o>>2]|0)+(t<<2)>>2]|0)+16|0;e=c[m>>2]|0;i=+h[e+80>>3]*.5;g=c[e+204>>2]|0;if((g|0)!=0?(v=c[g>>2]|0,(v|0)!=0):0){k=v;f=0;do{B=c[k>>2]&3;if((c[((B|0)==3?k:k+48|0)+40>>2]|0)==(c[((B|0)==2?k:k+-48|0)+40>>2]|0)?(w=c[(c[k+16>>2]|0)+96>>2]|0,(w|0)!=0):0){l=+h[w+32>>3]*.5;i=i>l?i:l}f=f+1|0;k=c[g+(f<<2)>>2]|0}while((k|0)!=0)}if(+h[p>>3]<i){h[q>>3]=i;h[p>>3]=i}if(+h[r>>3]<i){h[s>>3]=i;h[r>>3]=i}k=c[e+212>>2]|0;if(k){if((k|0)==(d|0))g=0;else{g=Gs(k,c[13375]|0,8,0)|0;e=c[m>>2]|0}f=c[e+232>>2]|0;e=c[k+16>>2]|0;if((f|0)==(b[e+236>>1]|0)){B=e+128|0;j=+h[B>>3];l=i+ +(g|0);h[B>>3]=j>l?j:l}if((f|0)==(b[e+238>>1]|0)){B=e+120|0;j=+h[B>>3];l=i+ +(g|0);h[B>>3]=j>l?j:l}}t=t+1|0}while((t|0)<(c[n>>2]|0))}if((u|0)<(b[(c[x>>2]|0)+238>>1]|0))u=u+1|0;else break}}m=th(d)|0;k=c[x>>2]|0;B=b[k+238>>1]|0;f=B<<16>>16;h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+h[A+(f<<6)+16>>3];e=b[k+236>>1]|0;if(B<<16>>16>e<<16>>16){g=e<<16>>16;l=+(c[k+252>>2]|0);i=0.0;do{e=f;f=f+-1|0;C=+h[A+(e<<6)+40>>3]+ +h[A+(f<<6)+32>>3]+l;j=+h[A+(e<<6)+24>>3]+ +h[A+(f<<6)+16>>3]+8.0;j=C>j?C:j;if((c[A+(f<<6)>>2]|0)>0)h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=j+ +h[(c[(c[c[A+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];i=i>j?i:j}while((f|0)>(g|0))}else i=0.0;if((m|0)!=0?(c[k+116>>2]&1|0)!=0:0){uh(d,0);k=c[x>>2]|0;if(a[k+276>>0]|0){B=b[k+238>>1]|0;f=B<<16>>16;e=b[k+236>>1]|0;if(B<<16>>16>e<<16>>16){g=e<<16>>16;e=f;j=+h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];i=0.0;do{e=e+-1|0;C=j;j=+h[(c[(c[c[A+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];C=j-C;i=i>C?i:C}while((e|0)>(g|0))}else i=0.0}}if((a[k+276>>0]|0)!=0?(z=b[k+238>>1]|0,y=b[k+236>>1]|0,z<<16>>16>y<<16>>16):0){g=y<<16>>16;e=z<<16>>16;do{f=e;e=e+-1|0;if((c[A+(e<<6)>>2]|0)>0)h[(c[(c[c[A+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=i+ +h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]}while((e|0)>(g|0))}e=c[k+192>>2]|0;if(e)do{B=c[e+16>>2]|0;h[B+24>>3]=+h[(c[(c[c[A+(c[B+232>>2]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];e=c[B+164>>2]|0}while((e|0)!=0);return}function fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;n=o+32|0;m=o+24|0;d=o+16|0;l=o+8|0;k=o;e=b+16|0;f=c[e>>2]|0;do if((c[f+216>>2]|0)>=2){c[m>>2]=~~(+h[f+16>>3]-+h[f+88>>3]);c[m+4>>2]=~~+h[f+24>>3];c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];rh(d,b,n);g=d;j=c[g+4>>2]|0;d=m;c[d>>2]=c[g>>2];c[d+4>>2]=j;d=c[e>>2]|0;if((c[d+184>>2]|0)>0){k=c[c[d+180>>2]>>2]|0;e=c[d+236>>2]|0;d=Oj(a,c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)|0;if(!d)break;e=e+1|0;do{k=(c[d>>2]&3|0)==2?d:d+-48|0;f=k+48|0;g=c[((c[k>>2]&3|0)==3?k:f)+40>>2]|0;if((g|0)!=(b|0)?(Ms(g)|0)==(b|0):0){f=c[((c[k>>2]&3|0)==3?k:f)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];sh(l,a,f,n,e);f=l;g=c[f+4>>2]|0;j=m;c[j>>2]=c[f>>2];c[j+4>>2]=g;pg(k);j=k+-48|0;g=c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0;f=c[g+172>>2]|0;g=c[g+176>>2]|0;if(!f)f=aq((g<<2)+8|0)|0;else f=cq(f,(g<<2)+8|0)|0;c[(c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0)+172>>2]=f;f=(c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0)+176|0;g=c[f>>2]|0;c[f>>2]=g+1;c[(c[(c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0)+172>>2]|0)+(g<<2)>>2]=k;k=c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0;c[(c[k+172>>2]|0)+(c[k+176>>2]<<2)>>2]=0;e=e+1|0}d=Pj(a,d)|0}while((d|0)!=0)}else{l=c[c[d+172>>2]>>2]|0;e=c[d+236>>2]|0;d=Lj(a,c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)|0;if(!d)break;e=e+1|0;do{f=d+-48|0;g=c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0;if((g|0)!=(b|0)?(Ms(g)|0)==(b|0):0){f=c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];sh(k,a,f,n,e);f=k;g=c[f+4>>2]|0;j=m;c[j>>2]=c[f>>2];c[j+4>>2]=g;pg(d);j=d+48|0;g=c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0;f=c[g+180>>2]|0;g=c[g+184>>2]|0;if(!f)f=aq((g<<2)+8|0)|0;else f=cq(f,(g<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0)+180>>2]=f;g=(c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0)+184|0;l=c[g>>2]|0;c[g>>2]=l+1;c[(c[(c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0)+180>>2]|0)+(l<<2)>>2]=d;l=c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0;c[(c[l+180>>2]|0)+(c[l+184>>2]<<2)>>2]=0;e=e+1|0}d=Nj(a,d)|0}while((d|0)!=0)}}while(0);i=o;return}function gh(a,b){a=a|0;b=b|0;var d=0,e=0;a:do if((a|0)!=(b|0)){e=c[(c[a+16>>2]|0)+180>>2]|0;a=c[e>>2]|0;if(!a)a=0;else{d=0;while(1){d=d+1|0;if(gh(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0,b)|0){a=1;break a}a=c[e+(d<<2)>>2]|0;if(!a){a=0;break}}}}else a=1;while(0);return a|0}function hh(a){a=a|0;var b=0,d=0;do if((wf(a)|0)!=(a|0)){lh(a);a=a+16|0;b=c[a>>2]|0;b=$f(c[b+256>>2]|0,c[b+260>>2]|0)|0;if(!b){d=c[a>>2]|0;ch(c[d+256>>2]|0,c[d+260>>2]|0,1.0,128)|0;break}else{d=(c[b+16>>2]|0)+156|0;c[d>>2]=(c[d>>2]|0)+128;break}}else a=a+16|0;while(0);b=c[a>>2]|0;if((c[b+180>>2]|0)>=1){d=1;while(1){hh(c[(c[b+184>>2]|0)+(d<<2)>>2]|0);b=c[a>>2]|0;if((d|0)>=(c[b+180>>2]|0))break;else d=d+1|0}}return}function ih(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0;f=Gs(d,c[13375]|0,8,0)|0;o=d+16|0;e=c[o>>2]|0;g=b[e+236>>1]|0;if(g<<16>>16<=(b[e+238>>1]|0)){l=+(f|0);k=g<<16>>16;while(1){e=c[e+196>>2]|0;a:do if((c[e+(k<<6)>>2]|0)!=0?(m=c[c[e+(k<<6)+4>>2]>>2]|0,(m|0)!=0):0){j=m+16|0;i=c[(c[j>>2]|0)+236>>2]|0;while(1){if((i|0)<=0)break;i=i+-1|0;f=c[(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(i<<2)>>2]|0;e=f+16|0;g=c[e>>2]|0;if(!(a[g+156>>0]|0)){e=f;n=11;break}if(qh(d,f)|0){n=10;break}}if((n|0)==10){g=c[e>>2]|0;e=f;n=11}if((n|0)==11){n=0;ch(e,c[(c[o>>2]|0)+256>>2]|0,l+ +h[g+96>>3],0)|0}e=(c[(c[(c[o>>2]|0)+196>>2]|0)+(k<<6)>>2]|0)+(c[(c[j>>2]|0)+236>>2]|0)|0;if((e|0)<(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)>>2]|0)){while(1){f=c[(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(e<<2)>>2]|0;i=f+16|0;g=c[i>>2]|0;if(!(a[g+156>>0]|0)){e=f;break}e=e+1|0;if(qh(d,f)|0){e=i;n=16;break}if((e|0)>=(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)>>2]|0))break a}if((n|0)==16){n=0;g=c[e>>2]|0;e=f}ch(c[(c[o>>2]|0)+260>>2]|0,e,l+ +h[g+88>>3],0)|0}}while(0);e=c[o>>2]|0;if((k|0)<(b[e+238>>1]|0))k=k+1|0;else break}}if((c[e+180>>2]|0)>=1){f=1;while(1){ih(c[(c[e+184>>2]|0)+(f<<2)>>2]|0);e=c[o>>2]|0;if((f|0)>=(c[e+180>>2]|0))break;else f=f+1|0}}return}function jh(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,i=0;b=Gs(a,c[13375]|0,8,0)|0;ph(a);e=a+16|0;a=c[e>>2]|0;if((c[a+180>>2]|0)>=1){d=+(b|0);b=1;while(1){f=c[(c[a+184>>2]|0)+(b<<2)>>2]|0;ph(f);g=c[e>>2]|0;i=f+16|0;ch(c[g+256>>2]|0,c[(c[i>>2]|0)+256>>2]|0,d+ +h[g+96>>3],0)|0;g=c[e>>2]|0;ch(c[(c[i>>2]|0)+260>>2]|0,c[g+260>>2]|0,d+ +h[g+64>>3],0)|0;jh(f);a=c[e>>2]|0;if((b|0)>=(c[a+180>>2]|0))break;else b=b+1|0}}return}function kh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0;f=Gs(a,c[13375]|0,8,0)|0;m=a+16|0;a=c[m>>2]|0;if((c[a+180>>2]|0)>=1){e=1;while(1){ph(c[(c[a+184>>2]|0)+(e<<2)>>2]|0);a=c[m>>2]|0;d=c[a+180>>2]|0;if((e|0)<(d|0))e=e+1|0;else break}if((d|0)>=1){l=+(f|0);j=1;do{k=j;j=j+1|0;e=c[a+184>>2]|0;f=c[e+(k<<2)>>2]|0;if((k|0)<(d|0)){d=f;i=j;while(1){e=c[e+(i<<2)>>2]|0;f=(b[(c[d+16>>2]|0)+236>>1]|0)>(b[(c[e+16>>2]|0)+236>>1]|0);h=f?e:d;d=f?d:e;e=c[h+16>>2]|0;f=c[d+16>>2]|0;n=b[f+236>>1]|0;g=n<<16>>16;if((b[e+238>>1]|0)>=n<<16>>16){a=(c[(c[(c[c[(c[e+196>>2]|0)+(g<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[c[(c[f+196>>2]|0)+(g<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0);ch(c[(c[(a?h:d)+16>>2]|0)+260>>2]|0,c[(c[(a?d:h)+16>>2]|0)+256>>2]|0,l,0)|0;a=c[m>>2]|0}e=c[a+184>>2]|0;d=c[e+(k<<2)>>2]|0;if((i|0)>=(c[a+180>>2]|0)){a=d;break}else i=i+1|0}}else a=f;kh(a);a=c[m>>2]|0;d=c[a+180>>2]|0}while((k|0)<(d|0))}}return}function lh(a){a=a|0;var d=0,e=0,f=0,g=0.0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;m=n;d=Gs(a,c[13375]|0,8,0)|0;ph(a);j=a+16|0;e=c[j>>2]|0;k=c[e+256>>2]|0;l=c[e+260>>2]|0;f=b[e+236>>1]|0;if(f<<16>>16<=(b[e+238>>1]|0)){g=+(d|0);f=f<<16>>16;while(1){d=c[e+196>>2]|0;do if(c[d+(f<<6)>>2]|0){d=c[c[d+(f<<6)+4>>2]>>2]|0;if(!d){c[m>>2]=ok(a)|0;c[m+4>>2]=f;dj(1,118162,m)|0;break}else{ch(k,d,g+ +h[(c[d+16>>2]|0)+88>>3]+ +h[e+96>>3],0)|0;e=c[j>>2]|0;d=c[e+196>>2]|0;d=c[(c[d+(f<<6)+4>>2]|0)+((c[d+(f<<6)>>2]|0)+-1<<2)>>2]|0;ch(d,l,g+ +h[(c[d+16>>2]|0)+96>>3]+ +h[e+64>>3],0)|0;break}}while(0);e=c[j>>2]|0;if((f|0)>=(b[e+238>>1]|0))break;else f=f+1|0}}i=n;return}function mh(a){a=a|0;var b=0,c=0.0;b=zj(a,118154)|0;if(!b)b=2147483647;else{c=+Xz(b);b=~~(c*+(ek(a)|0))}return b|0}function nh(d,e){d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0;t=d+16|0;f=c[t>>2]|0;if((c[f+180>>2]|0)>=1){i=1;while(1){nh(c[(c[f+184>>2]|0)+(i<<2)>>2]|0,e);f=c[t>>2]|0;if((i|0)>=(c[f+180>>2]|0))break;else i=i+1|0}}p=(wf(d)|0)==(d|0);s=c[t>>2]|0;if(p){f=b[s+236>>1]|0;i=b[s+238>>1]|0;if(f<<16>>16>i<<16>>16){j=2147483647.0;g=-2147483647.0}else{o=i<<16>>16;n=c[s+196>>2]|0;j=2147483647.0;g=-2147483647.0;p=f<<16>>16;while(1){m=c[n+(p<<6)>>2]|0;if((m|0)!=0?(q=c[n+(p<<6)+4>>2]|0,r=c[q>>2]|0,(r|0)!=0):0){k=c[r+16>>2]|0;d=a[k+156>>0]|0;if((m|0)>1&d<<24>>24!=0){l=1;do{k=c[(c[q+(l<<2)>>2]|0)+16>>2]|0;l=l+1|0;d=a[k+156>>0]|0}while((l|0)<(m|0)&d<<24>>24!=0)}if(!(d<<24>>24)){u=+h[k+16>>3]-+h[k+88>>3];j=j<u?j:u;d=c[(c[q+(m+-1<<2)>>2]|0)+16>>2]|0;if(a[d+156>>0]|0){k=m+-2|0;while(1){d=c[(c[q+(k<<2)>>2]|0)+16>>2]|0;if(!(a[d+156>>0]|0))break;else k=k+-1|0}}u=+h[d+16>>3]+ +h[d+96>>3];g=g>u?g:u}}if((p|0)<(o|0))p=p+1|0;else break}}l=c[s+180>>2]|0;if((l|0)>=1){k=c[s+184>>2]|0;d=1;while(1){r=c[(c[k+(d<<2)>>2]|0)+16>>2]|0;u=+h[r+16>>3]+-8.0;j=j<u?j:u;u=+h[r+32>>3]+8.0;g=g>u?g:u;if((d|0)==(l|0))break;else d=d+1|0}}}else{i=b[s+238>>1]|0;f=b[s+236>>1]|0;j=+(c[(c[(c[s+256>>2]|0)+16>>2]|0)+232>>2]|0);g=+(c[(c[(c[s+260>>2]|0)+16>>2]|0)+232>>2]|0)}e=c[(c[e+16>>2]|0)+196>>2]|0;v=+h[(c[(c[c[e+(i<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[s+120>>3];u=+h[(c[(c[c[e+(f<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[s+128>>3];h[s+16>>3]=j;h[s+24>>3]=v;e=c[t>>2]|0;h[e+32>>3]=g;h[e+40>>3]=u;return}function oh(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0;f=a+16|0;a=c[f>>2]|0;if((c[a+180>>2]|0)>=1){e=1;while(1){oh(c[(c[a+184>>2]|0)+(e<<2)>>2]|0,b,d);a=c[f>>2]|0;if((e|0)<(c[a+180>>2]|0))e=e+1|0;else break}}f=a+16|0;h[f>>3]=+h[f>>3]*b;f=a+24|0;h[f>>3]=+h[f>>3]*d;f=a+32|0;h[f>>3]=+h[f>>3]*b;f=a+40|0;h[f>>3]=+h[f>>3]*d;return}function ph(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;d=b+16|0;if(!(c[(c[d>>2]|0)+256>>2]|0)){f=lg(wf(b)|0)|0;a[(c[f+16>>2]|0)+156>>0]=2;e=lg(wf(b)|0)|0;a[(c[e+16>>2]|0)+156>>0]=2;if(((c[(c[d>>2]|0)+12>>2]|0)!=0?(wf(b)|0)!=(b|0):0)?(c[(c[(hl(b)|0)+16>>2]|0)+116>>2]&1|0)==0:0){b=c[d>>2]|0;i=+h[b+48>>3];g=+h[b+80>>3];ch(f,e,+(~~(i>g?i:g)|0),0)|0}b=c[d>>2]|0;c[b+256>>2]=f;c[b+260>>2]=e}return}function qh(b,d){b=b|0;d=d|0;var e=0;d=c[d+16>>2]|0;if((a[d+156>>0]|0)==1){d=c[c[d+256>>2]>>2]|0;while(1){e=c[(c[d+16>>2]|0)+116>>2]|0;if(!e)break;else d=e}if(!(ql(b,c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0))d=(ql(b,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0)==0&1;else d=0}else d=0;return d|0}function rh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0;qt(b,c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1);e=c[b+16>>2]|0;h[e+24>>3]=+(c[d+4>>2]|0);f=+(c[d>>2]|0)+ +h[e+88>>3];h[e+16>>3]=f;f=f+ +h[e+96>>3];c[d>>2]=~~(f+ +(c[(c[(gl(b)|0)+16>>2]|0)+248>>2]|0));e=d;d=c[e+4>>2]|0;b=a;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function sh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;j=i;i=i+16|0;h=j;b=wf(b)|0;g=Ms(d)|0;if((g|0)!=(d|0))jg(g,d);k=c[d+16>>2]|0;c[k+236>>2]=f;g=c[(c[g+16>>2]|0)+232>>2]|0;c[k+232>>2]=g;c[(c[(c[(c[b+16>>2]|0)+196>>2]|0)+(g<<6)+4>>2]|0)+(f<<2)>>2]=d;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];rh(a,d,h);i=j;return}function th(a){a=a|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0.0,l=0,m=0,n=0.0;l=c[(c[(wf(a)|0)+16>>2]|0)+196>>2]|0;if((wf(a)|0)==(a|0))k=8.0;else k=+(Gs(a,c[13375]|0,8,0)|0);m=a+16|0;e=c[m>>2]|0;f=+h[e+120>>3];d=+h[e+128>>3];if((c[e+180>>2]|0)<1)e=0;else{j=1;i=0;while(1){g=c[(c[e+184>>2]|0)+(j<<2)>>2]|0;i=th(g)|0|i;g=c[g+16>>2]|0;e=c[m>>2]|0;if((b[g+238>>1]|0)==(b[e+238>>1]|0)){n=k+ +h[g+120>>3];f=f>n?f:n}if((b[g+236>>1]|0)==(b[e+236>>1]|0)){n=k+ +h[g+128>>3];d=d>n?d:n}if((j|0)>=(c[e+180>>2]|0)){e=i;break}else j=j+1|0}}if((wf(a)|0)!=(a|0)?(c[(c[m>>2]|0)+12>>2]|0)!=0:0)if(!(c[(c[(hl(a)|0)+16>>2]|0)+116>>2]&1)){j=c[m>>2]|0;e=1;f=f+ +h[j+56>>3];d=d+ +h[j+88>>3]}else e=1;j=c[m>>2]|0;h[j+120>>3]=f;h[j+128>>3]=d;if((wf(a)|0)!=(a|0)){a=c[m>>2]|0;m=l+(b[a+236>>1]<<6)+24|0;n=+h[m>>3];h[m>>3]=n>d?n:d;a=l+(b[a+238>>1]<<6)+16|0;n=+h[a>>3];h[a>>3]=n>f?n:f}return e|0}function uh(a,d){a=a|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0;v=c[(c[(wf(a)|0)+16>>2]|0)+196>>2]|0;if((wf(a)|0)==(a|0))g=0;else g=Gs(a,c[13375]|0,8,0)|0;w=a+16|0;i=c[w>>2]|0;f=+h[i+120>>3];e=+h[i+128>>3];if((c[i+180>>2]|0)>=1){k=g+d|0;l=+(g|0);j=1;while(1){g=c[(c[i+184>>2]|0)+(j<<2)>>2]|0;uh(g,k);g=c[g+16>>2]|0;i=c[w>>2]|0;if((b[g+238>>1]|0)==(b[i+238>>1]|0)){x=l+ +h[g+120>>3];f=f>x?f:x}if((b[g+236>>1]|0)==(b[i+236>>1]|0)){x=l+ +h[g+128>>3];e=e>x?e:x}if((j|0)<(c[i+180>>2]|0))j=j+1|0;else break}}h[i+120>>3]=f;h[i+128>>3]=e;if(((wf(a)|0)!=(a|0)?(m=c[w>>2]|0,(c[m+12>>2]|0)!=0):0)?(x=+h[m+104>>3],o=+h[m+72>>3],o=(x>o?x:o)-(e+(f+(+h[(c[(c[c[v+(b[m+236>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[(c[(c[c[v+(b[m+238>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]))),o>0.0):0){r=~~o;n=c[(wf(a)|0)+16>>2]|0;s=c[n+196>>2]|0;t=c[w>>2]|0;k=b[t+238>>1]|0;i=k<<16>>16;m=b[t+236>>1]|0;g=m<<16>>16;p=(r+1|0)/2|0;q=t+120|0;o=+h[q>>3]+ +(p|0);f=+(d|0);j=~~(o-(+h[s+(i<<6)+16>>3]-f));if((j|0)>0){e=+(j|0);if(k<<16>>16>=m<<16>>16)while(1){if((c[s+(i<<6)>>2]|0)>0){d=(c[(c[c[s+(i<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[d>>3]=e+ +h[d>>3]}if((i|0)>(g|0))i=i+-1|0;else break}x=+h[t+128>>3];l=x;e=e+(+(r-p|0)+x)-(+h[s+(g<<6)+24>>3]-f)}else{e=+h[t+128>>3];l=e;e=+(r-p|0)+e-(+h[s+(g<<6)+24>>3]-f)}i=~~e;if((i|0)>0?(u=b[n+236>>1]|0,m<<16>>16>u<<16>>16):0){e=+(i|0);i=u<<16>>16;do{g=g+-1|0;if((c[s+(g<<6)>>2]|0)>0){u=(c[(c[c[s+(g<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[u>>3]=e+ +h[u>>3]}}while((g|0)>(i|0))}h[t+128>>3]=+(r-p|0)+l;h[q>>3]=o}if((wf(a)|0)!=(a|0)){w=c[w>>2]|0;a=v+(b[w+236>>1]<<6)+24|0;x=+h[a>>3];o=+h[w+128>>3];h[a>>3]=x>o?x:o;a=v+(b[w+238>>1]<<6)+16|0;o=+h[a>>3];x=+h[w+120>>3];h[a>>3]=o>x?o:x}return}function vh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+16|0;f=c[i>>2]|0;b[f+236>>1]=32767;b[f+238>>1]=-1;f=Rk(a)|0;e=c[i>>2]|0;if(!f)d=0;else{d=0;do{g=e+238|0;h=c[(c[f+16>>2]|0)+232>>2]|0;if((b[g>>1]|0)<(h|0))b[g>>1]=h;e=e+236|0;if((b[e>>1]|0)>(h|0))b[e>>1]=h;if(!d)d=f;else d=(h|0)<(c[(c[d+16>>2]|0)+232>>2]|0)?f:d;f=Sk(a,f)|0;e=c[i>>2]|0}while((f|0)!=0)}c[e+264>>2]=d;return}function wh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0;b=zj(a,118207)|0;if(!b)f=2147483647;else{g=+Xz(b);f=~~(g*+(ek(a)|0))}e=a+16|0;b=c[e>>2]|0;if((c[b+220>>2]|0)>0){d=0;do{c[b+192>>2]=c[(c[b+216>>2]|0)+(d<<2)>>2];eq(a,(c[b+180>>2]|0)==0&1,f)|0;d=d+1|0;b=c[e>>2]|0}while((d|0)<(c[b+220>>2]|0))}return}function xh(d,f){d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0;F=i;i=i+128|0;x=F+16|0;E=F+8|0;y=F;if(!(zj(d,118216)|0))Ih(d,f);else{C=d+16|0;D=(c[C>>2]|0)+136|0;b[D>>1]=e[D>>1]|16;c[12502]=0;c[x>>2]=c[12648];D=ak(118224,x,0)|0;xl(D,118253,280,1)|0;ol(D,50012,49996);zh(d);g=zj(d,118207)|0;if(!g)B=2147483647;else{G=+Xz(g);B=~~(G*+(ek(d)|0))}Ah(d,0);c[12502]=0;g=Rk(d)|0;if(g)do{if((Bh(g)|0)==(g|0)){v=Ch(D,ok(g)|0)|0;c[(c[g+16>>2]|0)+148>>2]=v}g=Sk(d,g)|0}while((g|0)!=0);g=Rk(d)|0;if(g)do{h=g+16|0;if(!(c[(c[h>>2]|0)+148>>2]|0)){v=c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0;c[(c[h>>2]|0)+148>>2]=v}g=Sk(d,g)|0}while((g|0)!=0);g=Rk(d)|0;if(g)do{h=c[(c[g+16>>2]|0)+148>>2]|0;k=Lj(d,g)|0;if(k)do{l=c[13435]|0;if(!((((l|0)!=0?(w=Aj(k,l)|0,(w|0)!=0):0)?(a[w>>0]|0)!=0:0)?(Ls(w)|0)<<24>>24==0:0))z=19;do if((z|0)==19){z=0;t=k+-48|0;v=c[(c[(Bh(c[((c[k>>2]&3|0)==2?k:t)+40>>2]|0)|0)+16>>2]|0)+148>>2]|0;if((h|0)!=(v|0)){s=c[k>>2]&3;u=k+48|0;q=c[((s|0)==3?k:u)+40>>2]|0;r=c[(c[q+16>>2]|0)+212>>2]|0;s=c[(c[(c[((s|0)==2?k:t)+40>>2]|0)+16>>2]|0)+212>>2]|0;if((r|0)!=(s|0)){m=s;l=r;a:while(1){p=c[l+16>>2]|0;o=c[p+204>>2]|0;while(1){n=c[m+16>>2]|0;if((o|0)>=(c[n+204>>2]|0))break;m=c[n+200>>2]|0;if((l|0)==(m|0))break a}l=c[p+200>>2]|0;if((l|0)==(m|0)){l=m;break}}if(!((l|0)==(r|0)|(l|0)==(s|0))){if((Vs(zj(r,118269)|0,0)|0)<<24>>24==0?(Vs(zj(s,118269)|0,0)|0)<<24>>24==0:0){Dh(D,h,v,k);break}l=Oj(D,h)|0;b:do if(!l)z=36;else while(1){u=Lj(D,c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)|0;if((u|0)!=0?(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)==(v|0):0)break b;l=Pj(D,l)|0;if(!l){z=36;break}}while(0);if((z|0)==36){z=0;s=c[12512]|0;c[12512]=s+1;c[y>>2]=s;Oz(x,118277,y)|0;s=Ch(D,x)|0;t=Sj(D,s,h,0,1)|0;v=Sj(D,s,v,0,1)|0;s=c[k+16>>2]|0;u=s+156|0;t=(c[t+16>>2]|0)+156|0;c[t>>2]=(c[t>>2]|0)+((c[u>>2]|0)*1e3|0);v=c[v+16>>2]|0;t=v+170|0;r=b[t>>1]|0;s=b[s+170>>1]|0;b[t>>1]=(r&65535)>(s&65535)?r:s;v=v+156|0;c[v>>2]=(c[v>>2]|0)+(c[u>>2]|0)}break}}s=Bh(q)|0;l=c[k>>2]&3;if((s|0)!=(c[(c[(c[(c[(c[((l|0)==3?k:u)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+212>>2]|0)?(u=Bh(c[((l|0)==2?k:t)+40>>2]|0)|0,(u|0)!=(c[(c[(c[(c[(c[((c[k>>2]&3|0)==2?k:t)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+208>>2]|0)):0)l=v;else{l=h;h=v}Dh(D,h,l,k)}}while(0);k=Nj(d,k)|0}while((k|0)!=0);g=Sk(d,g)|0}while((g|0)!=0);Eh(d,D,0,0);g=Rk(D)|0;if(g)do{z=c[g+16>>2]|0;a[z+158>>0]=0;a[z+157>>0]=0;g=Sk(D,g)|0}while((g|0)!=0);g=Rk(D)|0;if(g)do{Fh(D,g);g=Sk(D,g)|0}while((g|0)!=0);g=Rk(D)|0;if(g)do{c[(c[g+16>>2]|0)+128>>2]=0;g=Sk(D,g)|0}while((g|0)!=0);g=Rk(D)|0;if(g){h=0;do{if(!(c[(c[g+16>>2]|0)+128>>2]|0)){h=h+1|0;Gh(D,g,h)}g=Sk(D,g)|0}while((g|0)!=0);if((h|0)>1?(A=Ch(D,118286)|0,j=Rk(D)|0,(j|0)!=0):0){g=1;do{if((c[(c[j+16>>2]|0)+128>>2]|0)==(g|0)){Sj(D,A,j,0,1)|0;g=g+1|0}j=Sk(D,j)|0}while((j|0)!=0);n=h}else n=h}else n=0;g=Rk(D)|0;if(g)do{h=Lj(D,g)|0;if(h){m=g+16|0;do{k=c[m>>2]|0;j=c[k+180>>2]|0;k=c[k+184>>2]|0;if(!j)j=aq((k<<2)+8|0)|0;else j=cq(j,(k<<2)+8|0)|0;k=c[m>>2]|0;c[k+180>>2]=j;k=k+184|0;l=c[k>>2]|0;c[k>>2]=l+1;c[j+(l<<2)>>2]=h;l=c[m>>2]|0;c[(c[l+180>>2]|0)+(c[l+184>>2]<<2)>>2]=0;l=h+-48|0;k=c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0;j=c[k+172>>2]|0;k=c[k+176>>2]|0;if(!j)j=aq((k<<2)+8|0)|0;else j=cq(j,(k<<2)+8|0)|0;c[(c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0)+172>>2]=j;z=(c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0)+176|0;A=c[z>>2]|0;c[z>>2]=A+1;c[(c[(c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0)+172>>2]|0)+(A<<2)>>2]=h;A=c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0;c[(c[A+172>>2]|0)+(c[A+176>>2]<<2)>>2]=0;h=Nj(D,h)|0}while((h|0)!=0)}g=Sk(D,g)|0}while((g|0)!=0);if(f){ci(D);ai(D)}g=zj(d,126106)|0;if(!g)g=-1;else g=Yz(g)|0;dq(D,1,B,g)|0;B=c[C>>2]|0;b[B+236>>1]=32767;b[B+238>>1]=-1;if((n|0)>1){g=$p((n<<2)+4|0)|0;h=1;while(1){c[g+(h<<2)>>2]=32767;if((h|0)==(n|0)){o=g;break}else h=h+1|0}}else o=0;g=Rk(d)|0;if(g){n=(o|0)==0;do{k=c[(c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0)+16>>2]|0;l=c[k+232>>2]|0;m=c[g+16>>2]|0;c[m+232>>2]=l;h=c[C>>2]|0;j=h+238|0;if((b[j>>1]|0)<(l|0))b[j>>1]=l;h=h+236|0;if((b[h>>1]|0)>(l|0))b[h>>1]=l;if(!n){B=c[k+128>>2]|0;c[m+128>>2]=B;B=o+(B<<2)|0;f=c[B>>2]|0;c[B>>2]=(f|0)<(l|0)?f:l}g=Sk(d,g)|0}while((g|0)!=0)}l=(o|0)!=0;if(l){g=Rk(d)|0;if(!g)g=1;else{do{B=c[g+16>>2]|0;C=B+232|0;c[C>>2]=(c[C>>2]|0)-(c[o+(c[B+128>>2]<<2)>>2]|0);g=Sk(d,g)|0}while((g|0)!=0);g=1}}else{B=b[(c[C>>2]|0)+236>>1]|0;h=B<<16>>16;if(B<<16>>16>0){g=Rk(d)|0;if(g)do{B=(c[g+16>>2]|0)+232|0;c[B>>2]=(c[B>>2]|0)-h;g=Sk(d,g)|0}while((g|0)!=0);g=c[C>>2]|0;C=g+236|0;b[C>>1]=(e[C>>1]|0)-h;g=g+238|0;b[g>>1]=(e[g>>1]|0)-h;g=0}else g=0}Hh(d,g);g=Rk(D)|0;if(g)do{j=g+16|0;h=c[j>>2]|0;k=c[h+172>>2]|0;if(k){pB(k);h=c[j>>2]|0}h=c[h+180>>2]|0;if(h)pB(h);g=Sk(D,g)|0}while((g|0)!=0);pB(c[(c[(Rk(d)|0)+16>>2]|0)+112>>2]|0);g=Rk(d)|0;if(g)do{c[(c[g+16>>2]|0)+112>>2]=0;g=Sk(d,g)|0}while((g|0)!=0);if(l)pB(o);dk(D)|0}if(a[124827]|0){D=c[22667]|0;C=c[d+16>>2]|0;d=b[C+236>>1]|0;c[E>>2]=b[C+238>>1];c[E+4>>2]=d;Bz(D,118292,E)|0}i=F;return}function yh(a){a=a|0;return (rA(ok(a)|0,131620,7)|0)==0|0}function zh(d){d=d|0;var f=0,g=0,h=0;if(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1){f=Rk(d)|0;if(f)do{g=Lj(d,f)|0;if(g)do{h=(c[g+16>>2]|0)+170|0;b[h>>1]=(e[h>>1]|0)<<1;g=Nj(d,g)|0}while((g|0)!=0);f=Sk(d,f)|0}while((f|0)!=0);h=(c[d+16>>2]|0)+252|0;c[h>>2]=((c[h>>2]|0)+1|0)/2|0}return}function Ah(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(Rk(b)|0){do if(at(b)|0)if(!d){c[(c[b+16>>2]|0)+204>>2]=0;f=b;break}else{f=c[b+16>>2]|0;c[f+204>>2]=(c[(c[d+16>>2]|0)+204>>2]|0)+1;c[f+200>>2]=d;Ph(d,b);Oh(d,b);f=b;break}else f=d;while(0);d=bm(b)|0;if(d)do{Ah(d,f);d=cm(d)|0}while((d|0)!=0);if((at(b)|0)!=0?(e=Rk(b)|0,(e|0)!=0):0)do{d=(c[e+16>>2]|0)+212|0;if(!(c[d>>2]|0))c[d>>2]=b;e=Sk(b,e)|0}while((e|0)!=0);d=zj(b,118472)|0;a:do if((d|0)!=0?(a[d>>0]|0)!=0:0){do if(!(lA(d,118482)|0))d=f+16|0;else{if(!(lA(d,118486)|0)){d=f+16|0;a[(c[d>>2]|0)+241>>0]=1;break}do if(!(lA(d,118493)|0))d=f+16|0;else{if(!(lA(d,118497)|0)){d=f+16|0;a[(c[d>>2]|0)+242>>0]=1;break}if(lA(d,118477)|0)break a;Qh(b)|0;break a}while(0);f=Qh(b)|0;f=Rh(f,c[(c[d>>2]|0)+212>>2]|0)|0;c[(c[d>>2]|0)+212>>2]=f;break a}while(0);f=Qh(b)|0;f=Rh(f,c[(c[d>>2]|0)+208>>2]|0)|0;c[(c[d>>2]|0)+208>>2]=f}while(0);if(((at(b)|0)!=0?(g=b+16|0,h=c[g>>2]|0,i=c[h+208>>2]|0,(i|0)!=0):0)?(i|0)==(c[h+212>>2]|0):0){i=Qh(b)|0;b=c[g>>2]|0;c[b+208>>2]=i;c[b+212>>2]=i}}return}function Bh(a){a=a|0;var b=0,d=0,e=0;b=a+16|0;d=(c[b>>2]|0)+152|0;e=c[d>>2]|0;if(e){if((e|0)!=(a|0)){a=Bh(e)|0;c[(c[b>>2]|0)+152>>2]=a;return a|0}}else c[d>>2]=a;return a|0}function Ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;b=Xk(a,b,1)|0;d=b+16|0;c[(c[d>>2]|0)+176>>2]=0;f=$p(20)|0;e=c[d>>2]|0;c[e+172>>2]=f;c[e+184>>2]=0;e=$p(20)|0;f=c[d>>2]|0;c[f+180>>2]=e;e=c[12502]|0;f=f+168|0;if(!e){c[f>>2]=0;c[(c[a+16>>2]|0)+192>>2]=b}else{c[f>>2]=e;c[(c[(c[12502]|0)+16>>2]|0)+164>>2]=b}c[12502]=b;c[(c[d>>2]|0)+164>>2]=0;return b|0}function Dh(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;h=Sj(a,d,f,0,0)|0;if(!h){h=Sj(a,f,d,0,0)|0;if(!h){h=Sj(a,d,f,0,1)|0;if(!h){d=ok(d)|0;g=ok(f)|0;c[j>>2]=d;c[j+4>>2]=g;dj(1,118512,j)|0}else k=4}else k=4}else k=4;if((k|0)==4){g=c[g+16>>2]|0;d=e[g+170>>1]|0;g=c[g+156>>2]|0;k=c[h+16>>2]|0;j=k+170|0;f=e[j>>1]|0;b[j>>1]=f>>>0>d>>>0?f:d;k=k+156|0;c[k>>2]=(c[k>>2]|0)+g}i=l;return}function Eh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((at(a)|0)!=0?(Vs(zj(a,118269)|0,0)|0)<<24>>24!=0:0){f=Rk(a)|0;if(f){g=f;do{if(!(Oj(a,g)|0)){f=c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0;if(!d)d=Ch(b,118502)|0;Sj(b,d,f,0,1)|0}if(!(Lj(a,g)|0)){f=c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0;if(!e)e=Ch(b,118507)|0;Sj(b,f,e,0,1)|0}g=Sk(a,g)|0}while((g|0)!=0)}if((e|0)!=0&(d|0)!=0){f=(c[(Sj(b,d,e,0,1)|0)+16>>2]|0)+156|0;c[f>>2]=(c[f>>2]|0)+1e3;f=e}else f=e}else f=e;e=bm(a)|0;if(e)do{Eh(e,b,d,f);e=cm(e)|0}while((e|0)!=0);return}function Fh(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=f+16|0;g=c[m>>2]|0;h=g+157|0;if(!(a[h>>0]|0)){a[h>>0]=1;a[g+158>>0]=1;g=Lj(d,f)|0;if(g)do{l=g;g=Nj(d,g)|0;f=c[l>>2]&3;k=l+-48|0;i=c[((f|0)==2?l:k)+40>>2]|0;h=c[i+16>>2]|0;if(!(a[h+158>>0]|0)){if(!(a[h+157>>0]|0))Fh(d,i)}else{j=l+48|0;h=Sj(d,i,c[((f|0)==3?l:j)+40>>2]|0,0,0)|0;if(!h){h=c[l>>2]&3;h=Sj(d,c[((h|0)==2?l:k)+40>>2]|0,c[((h|0)==3?l:j)+40>>2]|0,0,1)|0}j=c[l+16>>2]|0;f=e[j+170>>1]|0;j=c[j+156>>2]|0;k=c[h+16>>2]|0;i=k+170|0;h=e[i>>1]|0;b[i>>1]=h>>>0>f>>>0?h:f;k=k+156|0;c[k>>2]=(c[k>>2]|0)+j;fl(d,l)|0}}while((g|0)!=0);a[(c[m>>2]|0)+158>>0]=0}return}function Gh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[b+16>>2]|0)+128|0;if(!(c[e>>2]|0)){c[e>>2]=d;e=Lj(a,b)|0;if(e)do{Gh(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,d);e=Nj(a,e)|0}while((e|0)!=0);e=Oj(a,b)|0;if(e)do{Gh(a,c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,d);e=Pj(a,e)|0}while((e|0)!=0)}return}function Hh(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=a+16|0;e=c[i>>2]|0;if((c[e+180>>2]|0)>=1){f=1;while(1){Hh(c[(c[e+184>>2]|0)+(f<<2)>>2]|0,0);e=c[i>>2]|0;if((f|0)<(c[e+180>>2]|0))f=f+1|0;else break}}if((d|0)!=0|(c[e+200>>2]|0)!=0){b[e+236>>1]=32767;b[e+238>>1]=-1;f=Rk(a)|0;if(!f)e=0;else{e=0;do{h=c[(c[f+16>>2]|0)+232>>2]|0;d=c[i>>2]|0;g=d+238|0;if((b[g>>1]|0)<(h|0))b[g>>1]=h;d=d+236|0;if((b[d>>1]|0)>(h|0)){b[d>>1]=h;e=f}f=Sk(a,f)|0}while((f|0)!=0)}c[(c[i>>2]|0)+264>>2]=e}return}function Ih(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+16|0;f=r;zh(d);do if(!e){Jh(d,d);ki(d);Kh(f,d);g=c[f>>2]|0;f=c[f+4>>2]|0;Ji(d,0);m=0;p=d+16|0}else{ci(d);ai(d);Jh(d,d);ki(d);Kh(f,d);g=c[f>>2]|0;f=c[f+4>>2]|0;Ji(d,0);h=d+16|0;p=c[h>>2]|0;if((c[p+220>>2]|0)<=1?(c[p+180>>2]|0)<=0:0){m=e;p=h;break}c[e+32>>2]=1;m=0;p=h}while(0);Zh(d);k=c[p>>2]|0;if(!((c[k+228>>2]|0)==0?(c[k+224>>2]|0)==0:0))j=9;if((j|0)==9?(l=Rk(d)|0,(l|0)!=0):0){k=f&65535;j=g&65535;f=0;h=l;do{if((h|0)==(Ms(h)|0)){g=h+16|0;e=c[g>>2]|0;if((c[e+184>>2]|0)==0?(n=c[(c[p>>2]|0)+228>>2]|0,!((n|0)==0|(h|0)==(n|0))):0){f=hg(h,n,0)|0;e=c[f+16>>2]|0;b[e+170>>1]=k;c[e+156>>2]=0;e=c[g>>2]|0}if((c[e+176>>2]|0)==0?(o=c[(c[p>>2]|0)+224>>2]|0,!((o|0)==0|(h|0)==(o|0))):0){f=hg(o,h,0)|0;l=c[f+16>>2]|0;b[l+170>>1]=j;c[l+156>>2]=0}}h=Sk(d,h)|0}while((h|0)!=0);if(f)Ji(d,0)}k=(m|0)==0;if(k)wh(d);else bi(d,m);f=Rk(d)|0;g=c[p>>2]|0;do if(f){b[g+236>>1]=32767;b[g+238>>1]=-1;do{e=Ms(f)|0;j=c[f+16>>2]|0;g=c[j+232>>2]|0;do if((e|0)!=(f|0)){if(!k)if(!g)g=0;else break;g=g+(c[(c[e+16>>2]|0)+232>>2]|0)|0;c[j+232>>2]=g}while(0);e=c[p>>2]|0;h=e+238|0;if((b[h>>1]|0)<(g|0))b[h>>1]=g;e=e+236|0;if((b[e>>1]|0)>(g|0))b[e>>1]=g;switch(a[j+159>>0]|0){case 6:case 0:break;default:Os(f)}f=Sk(d,f)|0}while((f|0)!=0);if((wf(d)|0)==(d|0)){if((c[13360]|0)!=100){Mh(d);break}f=c[p>>2]|0;if((c[f+180>>2]|0)>=1){g=1;while(1){Lh(c[(c[f+184>>2]|0)+(g<<2)>>2]|0);f=c[p>>2]|0;if((g|0)>=(c[f+180>>2]|0))break;else g=g+1|0}}}}else{b[g+238>>1]=0;b[g+236>>1]=0}while(0);f=c[p>>2]|0;if((c[f+220>>2]|0)>0){k=0;do{g=c[(c[f+216>>2]|0)+(k<<2)>>2]|0;c[f+192>>2]=g;if(g){f=g;do{j=f+16|0;f=c[j>>2]|0;h=f+176|0;g=c[h>>2]|0;if((g|0)>-1){e=f+172|0;f=g;while(1){c[(c[e>>2]|0)+(f<<2)>>2]=0;if((f|0)>0)f=f+-1|0;else break}f=c[j>>2]|0}c[h>>2]=0;h=f+184|0;g=c[h>>2]|0;if((g|0)>-1){e=f+180|0;f=g;while(1){c[(c[e>>2]|0)+(f<<2)>>2]=0;if((f|0)>0)f=f+-1|0;else break}f=c[j>>2]|0}c[h>>2]=0;a[f+157>>0]=0;f=c[f+164>>2]|0}while((f|0)!=0);f=c[p>>2]|0}k=k+1|0}while((k|0)<(c[f+220>>2]|0))}f=Rk(d)|0;if(f)do{g=Lj(d,f)|0;if(g)do{k=g+16|0;e=c[k>>2]|0;l=c[e+172>>2]|0;if((l|0)!=0?(q=l+16|0,(g|0)==(c[(c[q>>2]|0)+116>>2]|0)):0){e=Rk(d)|0;if(e)do{h=Lj(d,e)|0;if(h)do{do if((g|0)!=(h|0)){j=(c[h+16>>2]|0)+172|0;o=c[j>>2]|0;if(!((o|0)!=0&(l|0)==(o|0)))break;c[j>>2]=0}while(0);h=Nj(d,h)|0}while((h|0)!=0);e=Sk(d,e)|0}while((e|0)!=0);pB(c[q>>2]|0);pB(l);e=c[k>>2]|0}c[e+172>>2]=0;g=Nj(d,g)|0}while((g|0)!=0);f=Sk(d,f)|0}while((f|0)!=0);pB(c[(c[p>>2]|0)+216>>2]|0);d=c[p>>2]|0;c[d+216>>2]=0;c[d+220>>2]=0;i=r;return}function Jh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=bm(d)|0;if(d){k=b+16|0;do{if(rA(ok(d)|0,131620,7)|0){e=Us(zj(d,118472)|0,50052,50076)|0;a[(c[d+16>>2]|0)+274>>0]=e;if(!e)Jh(b,d);else l=5}else{e=7;l=5}a:do if((l|0)==5){l=0;if((e|0)==7&(c[13360]|0)==100){Nh(b,d);break}i=Rk(d)|0;if(i){j=e&255;g=i+16|0;a[(c[g>>2]|0)+159>>0]=j;f=Sk(d,i)|0;if(f)do{Ns(i,f)|0;a[(c[f+16>>2]|0)+159>>0]=a[(c[g>>2]|0)+159>>0]|0;f=Sk(d,f)|0}while((f|0)!=0);b:do switch(e|0){case 3:case 2:{f=c[k>>2]|0;g=f+224|0;h=c[g>>2]|0;if(!h){c[g>>2]=i;break b}else{i=Ns(h,i)|0;f=c[k>>2]|0;c[f+224>>2]=i;break b}}case 5:case 4:{f=c[k>>2]|0;g=f+228|0;h=c[g>>2]|0;if(!h){c[g>>2]=i;break b}else{i=Ns(h,i)|0;f=c[k>>2]|0;c[f+228>>2]=i;break b}}default:break a}while(0);switch(e|0){case 3:{a[(c[(c[f+224>>2]|0)+16>>2]|0)+159>>0]=j;break a}case 5:{a[(c[(c[f+228>>2]|0)+16>>2]|0)+159>>0]=j;break a}default:break a}}}while(0);d=cm(d)|0}while((d|0)!=0)}return}function Kh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=d+16|0;e=c[i>>2]|0;d=c[e+228>>2]|0;e=c[e+224>>2]|0;f=(e|0)==0;if(!d)if(f){c[b>>2]=0;c[b+4>>2]=0}else h=5;else if(f)h=6;else h=5;if((h|0)==5){d=Ms(e)|0;e=c[i>>2]|0;c[e+224>>2]=d;d=c[e+228>>2]|0;if(!d){g=0;h=12}else h=6}do if((h|0)==6){d=Ms(d)|0;e=c[i>>2]|0;c[e+228>>2]=d;if(d){f=d+16|0;d=c[f>>2]|0;g=(a[d+159>>0]|0)==5&1;d=c[c[d+180>>2]>>2]|0;if(d){while(1){h=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;if((h|0)!=(Ms(h)|0)){h=9;break}Yh(d);d=c[c[(c[f>>2]|0)+180>>2]>>2]|0;if(!d){h=11;break}}if((h|0)==9)Ia(118395,118335,346,118427);else if((h|0)==11){e=c[i>>2]|0;h=12;break}}else h=12}else{g=0;h=12}}while(0);if((h|0)==12){d=c[e+224>>2]|0;a:do if(d){e=d+16|0;d=c[e>>2]|0;f=(a[d+159>>0]|0)==3&1;d=c[c[d+172>>2]>>2]|0;if(!d)j=f;else{while(1){i=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((i|0)!=(Ms(i)|0))break;Yh(d);d=c[c[(c[e>>2]|0)+172>>2]>>2]|0;if(!d){j=f;break a}}Ia(118440,118335,353,118427)}}else j=0;while(0);c[b>>2]=j;c[b+4>>2]=g}return}function Lh(a){a=a|0;var d=0,f=0,g=0;f=a+16|0;a=c[f>>2]|0;g=c[(c[(c[a+264>>2]|0)+16>>2]|0)+232>>2]|0;d=a+236|0;b[d>>1]=(e[d>>1]|0)+g;d=a+238|0;b[d>>1]=(e[d>>1]|0)+g;if((c[a+180>>2]|0)>=1){d=1;while(1){Lh(c[(c[a+184>>2]|0)+(d<<2)>>2]|0);a=c[f>>2]|0;if((d|0)>=(c[a+180>>2]|0))break;else d=d+1|0}}return}function Mh(b){b=b|0;var d=0;d=bm(wf(b)|0)|0;if(d)do{if((a[(c[d+16>>2]|0)+274>>0]|0)==7)Nh(b,d);d=cm(d)|0}while((d|0)!=0);return}function Nh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=d+16|0;f=(c[e>>2]|0)+200|0;a:do if((c[f>>2]|0)==0?(c[f>>2]=b,Oh(b,d),(Rk(d)|0)!=0):0){Ph(b,d);if((c[13360]|0)!=100){vh(d);break}Ih(d,0);g=c[e>>2]|0;e=c[g+192>>2]|0;if(e){f=0;do{b=c[e+16>>2]|0;if(!(c[b+232>>2]|0))f=(a[b+156>>0]|0)==0?e:f;e=c[b+164>>2]|0}while((e|0)!=0);b=f;if(b){c[g+264>>2]=b;e=Rk(d)|0;if(!e)break;while(1){f=e+16|0;if(!((e|0)==(b|0)?1:(c[(c[f>>2]|0)+216>>2]|0)<2))break;Ns(e,b)|0;a[(c[f>>2]|0)+159>>0]=7;e=Sk(d,e)|0;if(!e)break a}Ia(118357,118335,242,118342)}}Ia(118320,118335,238,118342)}while(0);return}function Oh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Rk(d)|0;if(e){j=b+16|0;do{i=e;e=Sk(d,e)|0;h=i+16|0;if(!(a[(c[h>>2]|0)+159>>0]|0)){f=c[j>>2]|0;b=c[f+180>>2]|0;a:do if((b|0)>1){b=1;while(1){if(ql(c[(c[f+184>>2]|0)+(b<<2)>>2]|0,i)|0){f=b;break}g=b+1|0;f=c[j>>2]|0;b=c[f+180>>2]|0;if((g|0)>=(b|0)){f=g;break a}else b=g}b=c[(c[j>>2]|0)+180>>2]|0}else f=1;while(0);if((f|0)<(b|0))fl(d,i)|0;c[(c[h>>2]|0)+212>>2]=0}else fl(d,i)|0}while((e|0)!=0)}b=Rk(d)|0;if(b)do{e=Lj(wf(d)|0,b)|0;if(e)do{if(ql(d,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0)Vj(d,e,1)|0;e=Nj(wf(d)|0,e)|0}while((e|0)!=0);b=Sk(d,b)|0}while((b|0)!=0);return}function Ph(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+16|0;d=c[e>>2]|0;g=d+180|0;a=c[g>>2]|0;f=a+1|0;c[g>>2]=f;d=c[d+184>>2]|0;if(!d)a=$p((a<<2)+8|0)|0;else a=bq(d,a+2|0,4,f)|0;c[(c[e>>2]|0)+184>>2]=a;c[a+(f<<2)>>2]=b;Mp(b);return}function Qh(a){a=a|0;var b=0,c=0;c=Rk(a)|0;if(c){b=Bh(c)|0;c=Sk(a,c)|0;if(c)do{Rh(b,c)|0;c=Sk(a,c)|0}while((c|0)!=0)}else b=0;return b|0}function Rh(a,b){a=a|0;b=b|0;if(b){a=Bh(a)|0;c[(c[(Bh(b)|0)+16>>2]|0)+152>>2]=a}return a|0}function Sh(a,b,d){a=a|0;b=b|0;d=d|0;xl(b,118253,c[d>>2]|0,1)|0;return}function Th(a,b,d){a=a|0;b=b|0;d=d|0;xl(b,118602,c[d+4>>2]|0,1)|0;return}function Uh(a,b,d){a=a|0;b=b|0;d=d|0;xl(b,118587,c[d+8>>2]|0,1)|0;return}function Vh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+240|0;n=p+120|0;o=p;c[13439]=rj(b,2,118617,0)|0;l=rj(b,2,118626,0)|0;c[13440]=l;if((l|0)!=0|(c[13439]|0)!=0?(d=Rk(b)|0,(d|0)!=0):0)do{e=Qj(b,d)|0;if(e){f=0;l=0;while(1){g=c[e>>2]|0;j=g&3;h=c[((j|0)==2?e:e+-48|0)+40>>2]|0;k=e+48|0;a:do if((h|0)!=(c[((j|0)==3?e:k)+40>>2]|0)){j=c[13439]|0;do if((h|0)==(d|0)&(j|0)!=0){g=Aj(e,j)|0;if(!(a[g>>0]|0)){g=c[e>>2]|0;break}else{f=Wh(n,f,d,e,g)|0;g=l;break a}}while(0);h=c[13440]|0;if(((h|0)!=0?(c[((g&3|0)==3?e:k)+40>>2]|0)==(d|0):0)?(m=Aj(e,h)|0,(a[m>>0]|0)!=0):0)g=Wh(o,l,d,e,m)|0;else g=l}else g=l;while(0);e=Rj(b,e,d)|0;if(!e){h=g;break}else l=g}if((f|0)>0){g=0;do{e=n+(g*24|0)+4|0;if((c[n+(g*24|0)+8>>2]|0)>1)Xh(d,e);e=c[e>>2]|0;if(e)pB(e);g=g+1|0}while((g|0)!=(f|0))}if((h|0)>0){f=0;do{e=o+(f*24|0)+4|0;if((c[o+(f*24|0)+8>>2]|0)>1)Xh(d,e);e=c[e>>2]|0;if(e)pB(e);f=f+1|0}while((f|0)!=(h|0))}}d=Sk(b,d)|0}while((d|0)!=0);i=p;return}function Wh(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+16|0;n=r;q=r+12|0;p=r+8|0;do if((d|0)>0){m=a[g>>0]|0;k=0;while(1){l=c[b+(k*24|0)>>2]|0;if((a[l>>0]|0)==m<<24>>24?(lA(l,g)|0)==0:0)break;k=k+1|0;if((k|0)>=(d|0)){o=10;break}}if((o|0)==10){if((d|0)<=4){o=12;break}b=ok(e)|0;c[n>>2]=5;c[n+4>>2]=b;dj(1,118635,n)|0;break}g=b+(k*24|0)+4|0;m=c[g>>2]|0;n=b+(k*24|0)+8|0;l=c[n>>2]|0;if(!m)l=aq((l<<2)+8|0)|0;else l=cq(m,(l<<2)+8|0)|0;c[g>>2]=l;m=c[n>>2]|0;o=m+1|0;c[n>>2]=o;c[l+(m<<2)>>2]=f;c[(c[g>>2]|0)+(o<<2)>>2]=0;l=k;o=13}else{k=0;o=12}while(0);if((o|0)==12){t=b+(k*24|0)+8|0;c[t>>2]=0;s=$p(8)|0;n=b+(k*24|0)+4|0;c[n>>2]=s;m=c[t>>2]|0;l=m+1|0;c[t>>2]=l;c[s+(m<<2)>>2]=f;c[(c[n>>2]|0)+(l<<2)>>2]=0;c[b+(k*24|0)>>2]=g;c[b+(k*24|0)+12>>2]=0;h[b+(k*24|0)+16>>3]=0.0;d=d+1|0;l=k;o=13}if((o|0)==13){Ao(f,q,p);k=(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(e|0)?c[p>>2]|0:c[q>>2]|0;if(k){s=b+(l*24|0)+12|0;t=c[s>>2]|0;c[s>>2]=t+1;if(!t)j=+Bo(f,k);else j=0.0;h[b+(l*24|0)+16>>3]=j}}i=r;return d|0}function Xh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=i;i=i+80|0;y=z+68|0;x=z+64|0;u=z;w=d+4|0;j=c[w>>2]|0;if((j|0)>0){m=c[d>>2]|0;p=b+16|0;t=c[p>>2]|0;r=+h[t+16>>3];q=+h[t+24>>3];s=0;o=0.0;n=0.0;do{f=c[m+(s<<2)>>2]|0;g=c[f>>2]&3;e=c[((g|0)==2?f:f+-48|0)+40>>2]|0;if((e|0)==(b|0))e=c[((g|0)==3?f:f+48|0)+40>>2]|0;v=c[e+16>>2]|0;A=+h[v+16>>3]-r;k=+h[v+24>>3]-q;l=+Ky(A,k);o=o+A/l;n=n+k/l;s=s+1|0}while((s|0)<(j|0));v=p;e=t}else{v=b+16|0;t=c[v>>2]|0;e=t;r=+h[t+16>>3];q=+h[t+24>>3];o=0.0;n=0.0}l=+Ky(o,n);k=+h[e+88>>3]+ +h[e+96>>3];A=+h[e+80>>3];t=k>A+ +(c[(c[(gl(b)|0)+16>>2]|0)+252>>2]|0);e=c[v>>2]|0;if(t)k=+h[e+88>>3]+ +h[e+96>>3];else{k=+h[e+80>>3];k=k+ +(c[(c[(gl(b)|0)+16>>2]|0)+252>>2]|0);e=c[v>>2]|0}A=o/l*k+ +h[e+16>>3];k=n/l*k+ +h[e+24>>3];h[u>>3]=r;t=u+8|0;h[t>>3]=q;h[u+16>>3]=(r*2.0+A)/3.0;h[u+24>>3]=(q*2.0+k)/3.0;h[u+32>>3]=(r+A*2.0)/3.0;h[u+40>>3]=(q+k*2.0)/3.0;h[u+48>>3]=A;h[u+56>>3]=k;_r(b,u);e=c[v>>2]|0;k=+h[u>>3]-+h[e+16>>3];l=+h[t>>3]-+h[e+24>>3];k=+(~~(k+(k>=0.0?.5:-.5))|0);l=+(~~(l+(l>=0.0?.5:-.5))|0);A=+h[e+88>>3];t=~~((A+k)*256.0/(A+ +h[e+96>>3]))&255;if((c[w>>2]|0)>0){s=0;do{e=c[(c[d>>2]|0)+(s<<2)>>2]|0;Ao(e,y,x);if(e)do{p=(e|0)==0;a:do if(!p){m=e;do{f=c[m>>2]|0;j=m+-48|0;if((c[((f&3|0)==2?m:j)+40>>2]|0)==(b|0)){f=c[m+16>>2]|0;h[f+56>>3]=k;h[f+64>>3]=l;h[f+72>>3]=0.0;c[f+80>>2]=0;a[f+84>>0]=1;a[f+85>>0]=0;a[f+86>>0]=0;a[f+87>>0]=0;a[f+88>>0]=t;a[f+89>>0]=0;c[f+92>>2]=0;f=c[m>>2]|0}g=m+16|0;if((c[((f&3|0)==3?m:m+48|0)+40>>2]|0)==(b|0)){u=c[g>>2]|0;h[u+16>>3]=k;h[u+24>>3]=l;h[u+32>>3]=0.0;c[u+40>>2]=0;a[u+44>>0]=1;a[u+45>>0]=0;a[u+46>>0]=0;a[u+47>>0]=0;a[u+48>>0]=t;a[u+49>>0]=0;c[u+52>>2]=0}if((a[(c[g>>2]|0)+112>>0]|0)!=1)break;f=c[(c[((c[m>>2]&3|0)==2?m:j)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break;if((c[f+184>>2]|0)!=1)break;m=c[c[f+180>>2]>>2]|0}while((m|0)!=0);if(!p){m=e;do{f=c[m>>2]|0;if((c[((f&3|0)==2?m:m+-48|0)+40>>2]|0)==(b|0)){f=c[m+16>>2]|0;h[f+56>>3]=k;h[f+64>>3]=l;h[f+72>>3]=0.0;c[f+80>>2]=0;a[f+84>>0]=1;a[f+85>>0]=0;a[f+86>>0]=0;a[f+87>>0]=0;a[f+88>>0]=t;a[f+89>>0]=0;c[f+92>>2]=0;f=c[m>>2]|0}g=m+48|0;j=m+16|0;if((c[((f&3|0)==3?m:g)+40>>2]|0)==(b|0)){u=c[j>>2]|0;h[u+16>>3]=k;h[u+24>>3]=l;h[u+32>>3]=0.0;c[u+40>>2]=0;a[u+44>>0]=1;a[u+45>>0]=0;a[u+46>>0]=0;a[u+47>>0]=0;a[u+48>>0]=t;a[u+49>>0]=0;c[u+52>>2]=0}if((a[(c[j>>2]|0)+112>>0]|0)!=1)break a;f=c[(c[((c[m>>2]&3|0)==3?m:g)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break a;if((c[f+176>>2]|0)!=1)break a;m=c[c[f+172>>2]>>2]|0}while((m|0)!=0)}}while(0);e=c[(c[e+16>>2]|0)+172>>2]|0}while((e|0)!=0);s=s+1|0}while((s|0)<(c[w>>2]|0));e=c[v>>2]|0}a[e+145>>0]=1;i=z;return}function Yh(a){a=a|0;var b=0,d=0,e=0;dg(a);b=c[a>>2]&3;d=a+-48|0;e=a+48|0;b=$f(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0)|0;if(!b){b=c[a>>2]&3;hg(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0,a)|0}else og(a,b);return}function Zh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=b+16|0;b=c[g>>2]|0;if((c[b+220>>2]|0)>0){f=0;do{d=c[(c[b+216>>2]|0)+(f<<2)>>2]|0;e=b+192|0;c[e>>2]=d;if(d){do{h=c[d+16>>2]|0;a[h+157>>0]=0;d=c[h+164>>2]|0}while((d|0)!=0);d=c[e>>2]|0;if(d){b=d;do{_h(b);b=c[(c[b+16>>2]|0)+164>>2]|0}while((b|0)!=0);b=c[g>>2]|0}}f=f+1|0}while((f|0)<(c[b+220>>2]|0))}return}function _h(b){b=b|0;var d=0,e=0,f=0,g=0;g=b+16|0;b=c[g>>2]|0;d=b+157|0;if(!(a[d>>0]|0)){a[d>>0]=1;a[b+158>>0]=1;d=c[c[b+180>>2]>>2]|0;if(d){f=0;do{b=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;e=c[b+16>>2]|0;if(!(a[e+158>>0]|0))if(!(a[e+157>>0]|0)){_h(b);b=f}else b=f;else{Yh(d);b=f+-1|0}f=b+1|0;b=c[g>>2]|0;d=c[(c[b+180>>2]|0)+(f<<2)>>2]|0}while((d|0)!=0)}a[b+158>>0]=0}return}function $h(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=Rk(a)|0;if(!d)b=0;else{b=0;do{e=Lj(a,d)|0;if(e)do{g=c[e>>2]&3;f=c[(c[(c[((g|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;g=c[(c[(c[((g|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;if((f|0)!=(g|0)){g=f-g|0;b=b+-1+((g|0)>-1?g:0-g|0)|0}e=Nj(a,e)|0}while((e|0)!=0);d=Sk(a,d)|0}while((d|0)!=0)}return b|0}function ai(b){b=b|0;var d=0,e=0,f=0,g=0;d=Rk(b)|0;if(d)do{e=c[d+16>>2]|0;g=c[e+176>>2]|0;if((g|0)>0){e=c[e+172>>2]|0;f=0;do{a[(c[(c[e+(f<<2)>>2]|0)+16>>2]|0)+112>>0]=0;f=f+1|0}while((f|0)<(g|0))}d=Sk(b,d)|0}while((d|0)!=0);return}function bi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+16|0;H=J;G=c[d+24>>2]|0;c[12525]=aq((ek(b)|0)*24|0)|0;c[12526]=0;e=Rk(b)|0;if(e)do{c[(c[e+16>>2]|0)+120>>2]=-1;e=Sk(b,e)|0}while((e|0)!=0);e=Rk(b)|0;if(e)do{m=e+16|0;do if(!(c[(c[m>>2]|0)+216>>2]|0)){D=$p(4)|0;F=c[12526]|0;c[(c[12525]|0)+(F*24|0)>>2]=D;c[c[(c[12525]|0)+(F*24|0)>>2]>>2]=e;D=c[12525]|0;c[D+(F*24|0)+4>>2]=1;F=c[m>>2]|0;E=c[12526]|0;h[D+(E*24|0)+8>>3]=+h[F+32>>3];h[D+(E*24|0)+16>>3]=+h[F+40>>3];c[F+120>>2]=E;c[12526]=(c[12526]|0)+1}else{j=Ms(e)|0;l=j+16|0;f=c[l>>2]|0;g=c[f+120>>2]|0;if((g|0)>-1){E=c[12525]|0;D=E+(g*24|0)+4|0;F=c[D>>2]|0;c[D>>2]=F+1;c[(c[E+(g*24|0)>>2]|0)+(F<<2)>>2]=e;F=c[m>>2]|0;E=c[12525]|0;D=E+(g*24|0)+8|0;h[D>>3]=+h[F+32>>3]+ +h[D>>3];E=E+(g*24|0)+16|0;y=+h[E>>3];u=+h[F+40>>3];h[E>>3]=y<u?u:y;c[F+120>>2]=g;break}g=$p(c[f+216>>2]<<2)|0;f=c[12526]|0;c[(c[12525]|0)+(f*24|0)>>2]=g;c[c[(c[12525]|0)+(f*24|0)>>2]>>2]=j;g=c[12525]|0;if((j|0)==(e|0)){c[g+(f*24|0)+4>>2]=1;f=c[l>>2]|0;j=c[12526]|0;h[g+(j*24|0)+8>>3]=+h[f+32>>3];h[g+(j*24|0)+16>>3]=+h[f+40>>3];g=f;f=c[m>>2]|0}else{c[(c[g+(f*24|0)>>2]|0)+4>>2]=e;F=c[12525]|0;c[F+(f*24|0)+4>>2]=2;g=c[l>>2]|0;f=c[m>>2]|0;j=c[12526]|0;h[F+(j*24|0)+8>>3]=+h[g+32>>3]+ +h[f+32>>3];y=+h[g+40>>3];u=+h[f+40>>3];h[F+(j*24|0)+16>>3]=y<u?u:y}c[g+120>>2]=j;c[f+120>>2]=c[12526];c[12526]=(c[12526]|0)+1}while(0);e=Sk(b,e)|0}while((e|0)!=0);C=(G|0)==-1;a:do if(C|(G|0)>0){D=d+8|0;B=C^1;E=b+16|0;F=c[22667]|0;e=0;n=1797693134862315708145274.0e284;while(1){f=Rk(b)|0;if(f)do{c[(c[f+16>>2]|0)+232>>2]=0;f=Sk(b,f)|0}while((f|0)!=0);wh(b);k=+ei(b);h[D>>3]=k;if(a[124827]|0){h[H>>3]=k;Bz(F,118687,H)|0;k=+h[D>>3]}if(!(!(k<=+h[d>>3])&(!(n<=k)|B)))break;c[12527]=$p((ek(b)|0)<<2)|0;if((ek(b)|0)>0){f=0;do{c[(c[12527]|0)+(f<<2)>>2]=f;f=f+1|0}while((f|0)<(ek(b)|0))}fi(b);m=c[12527]|0;_z(m,ek(b)|0,4,15);m=c[12528]|0;l=c[12527]|0;o=c[12529]|0;g=0;while(1){if((g|0)>=(m|0)){f=0;q=0.0;break}f=c[l+(g<<2)>>2]|0;j=g+1|0;if((c[o+(f*40|0)+12>>2]|0)<2)g=j;else{I=26;break}}if((I|0)==26){I=0;if((m|0)>(j|0))q=+h[o+((c[l+(j<<2)>>2]|0)*40|0)+24>>3];else q=0.0}if((g|0)!=(m|0)){_z(c[o+(f*40|0)+4>>2]|0,c[o+(f*40|0)+12>>2]|0,4,16);g=c[12529]|0;n=+h[g+(f*40|0)+24>>3];if(!(!(q<=n*.25)?!(q>=n*3.0*.25):0))q=n*.5;A=c[g+(f*40|0)+12>>2]|0;if((A|0)>0){w=0;x=0;z=0;l=0;y=0.0;while(1){m=c[g+(f*40|0)+8>>2]|0;do if(!(c[m+(z<<2)>>2]|0)){s=c[(c[g+(f*40|0)+4>>2]|0)+(z<<2)>>2]|0;v=s+8|0;n=+h[v>>3];t=n*72.0;j=c[E>>2]|0;u=y>0.0?+(c[j+248>>2]|0):0.0;o=(w|0)!=0;if(!(o&!(y+t+u<=q))){m=o?w:1;j=o?x:s;n=y+(t+u);break}r=x+4|0;o=c[r>>2]|0;if((o|0)>0){p=s+4|0;g=c[p>>2]|0;j=o;m=0;do{if((g|0)>0){j=0;do{a[(c[(hg(c[(c[x>>2]|0)+(m<<2)>>2]|0,c[(c[s>>2]|0)+(j<<2)>>2]|0,0)|0)+16>>2]|0)+112>>0]=1;j=j+1|0;g=c[p>>2]|0}while((j|0)<(g|0));j=c[r>>2]|0}m=m+1|0}while((m|0)<(j|0));g=c[12529]|0;m=c[g+(f*40|0)+8>>2]|0;n=+h[v>>3];j=c[E>>2]|0}c[m+(z<<2)>>2]=1;m=g+(f*40|0)+12|0;c[m>>2]=(c[m>>2]|0)+-1;m=g+(f*40|0)+16|0;c[m>>2]=(c[m>>2]|0)+1;m=g+(f*40|0)+24|0;h[m>>3]=+h[m>>3]-(n*72.0+ +(c[j+248>>2]|0));m=w;j=x;n=y}else{m=w;j=x;l=l+1|0;n=y}while(0);z=z+1|0;if((z|0)>=(l+A|0))break;else{w=m;x=j;y=n}}}}e=e+1|0;if(!(C|(e|0)<(G|0)))break a;else n=k}I=d+20|0;c[d+16>>2]=c[I>>2];c[I>>2]=e}while(0);wh(b);fi(b);e=c[12528]|0;if((e|0)>0){s=c[12529]|0;p=0;r=0;f=0;while(1){g=s+(r*40|0)|0;o=c[s+(r*40|0)+12>>2]|0;j=(p|0)==0;if(o)if(!j)if((o|0)>0?(c[g>>2]|0)>(f|0):0){j=c[s+(r*40|0)+4>>2]|0;m=0;do{e=c[j+(m<<2)>>2]|0;l=c[e+4>>2]|0;if((l|0)>0){e=c[e>>2]|0;g=0;do{I=(c[(c[e+(g<<2)>>2]|0)+16>>2]|0)+232|0;c[I>>2]=(c[I>>2]|0)-p;g=g+1|0}while((g|0)!=(l|0))}m=m+1|0}while((m|0)!=(o|0));e=c[12528]|0;g=p}else g=p;else g=0;else{if(j)f=c[g>>2]|0;g=p+1|0}r=r+1|0;if((r|0)>=(e|0))break;else p=g}}h[d+8>>3]=+ei(b);i=J;return}function ci(a){a=a|0;var b=0;b=Rk(a)|0;if(b)do{c[(c[b+16>>2]|0)+216>>2]=0;b=Sk(a,b)|0}while((b|0)!=0);return}function di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+16|0;e=g+8|0;d=g+20|0;c[d>>2]=5;a=zj(a,122869)|0;if((a|0)!=0?(c[e>>2]=g,c[e+4>>2]=d,(Pz(a,118702,e)|0)>=1):0){dj(0,118709,f)|0;c[b+24>>2]=0;c[b+32>>2]=0}else{c[b+24>>2]=0;c[b+32>>2]=0}i=g;return 0}function ei(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,g=0,i=0.0;fi(a);g=c[12528]|0;a=c[a+16>>2]|0;d=+(_(c[a+252>>2]|0,g+-1|0)|0);if((g|0)>0){f=c[12529]|0;a=c[a+248>>2]|0;e=0;b=0.0;do{i=+h[f+(e*40|0)+24>>3]+ +(_(a,c[f+(e*40|0)+16>>2]|0)|0);b=b<i?i:b;d=d+ +h[f+(e*40|0)+32>>3];e=e+1|0}while((e|0)<(g|0))}else b=0.0;return +(b/d)}function fi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0.0,j=0;c[12528]=0;b=c[12529]|0;if(b){if((c[12526]|0)>0){d=0;while(1){e=c[b+(d*40|0)+4>>2]|0;if(e){pB(e);b=c[12529]|0}b=c[b+(d*40|0)+8>>2]|0;if(b)pB(b);d=d+1|0;if((d|0)>=(c[12526]|0))break;b=c[12529]|0}b=c[12529]|0}pB(b)}c[12529]=$p((c[12526]|0)*40|0)|0;b=c[12526]|0;if((b|0)>0){d=0;do{j=$p(b<<2)|0;c[(c[12529]|0)+(d*40|0)+4>>2]=j;j=$p(c[12526]<<2)|0;c[(c[12529]|0)+(d*40|0)+8>>2]=j;j=c[12529]|0;c[j+(d*40|0)>>2]=d;c[j+(d*40|0)+12>>2]=0;c[j+(d*40|0)+16>>2]=0;j=j+(d*40|0)+24|0;d=d+1|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;b=c[12526]|0}while((d|0)<(b|0))}b=Rk(a)|0;if(b)do{d=Lj(a,b)|0;if(d)do{j=c[d>>2]&3;e=(c[(c[(c[((j|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)+1|0;g=d+-48|0;if((e|0)<(c[(c[(c[((j|0)==2?d:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)){f=c[12529]|0;do{j=f+(e*40|0)+16|0;c[j>>2]=(c[j>>2]|0)+1;e=e+1|0}while((e|0)<(c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+232>>2]|0))}d=Nj(a,d)|0}while((d|0)!=0);b=Sk(a,b)|0}while((b|0)!=0);if((c[12526]|0)>0){f=a+16|0;j=0;do{g=c[12525]|0;a=(c[c[g+(j*24|0)>>2]>>2]|0)+16|0;b=(c[a>>2]|0)+232|0;d=c[b>>2]|0;if((d|0)>=(c[12528]|0)){c[12528]=d+1;d=c[b>>2]|0}e=c[12529]|0;b=e+(d*40|0)+24|0;i=+h[b>>3];h[b>>3]=i+(+h[g+(j*24|0)+8>>3]*72.0+(i>0.0?+(c[(c[f>>2]|0)+248>>2]|0):0.0));b=e+(d*40|0)+32|0;i=+h[g+(j*24|0)+16>>3]*72.0;if(+h[b>>3]<i)h[b>>3]=i;c[(c[e+(d*40|0)+4>>2]|0)+(c[e+(d*40|0)+12>>2]<<2)>>2]=g+(j*24|0);a=(c[12529]|0)+((c[(c[a>>2]|0)+232>>2]|0)*40|0)+12|0;c[a>>2]=(c[a>>2]|0)+1;j=j+1|0}while((j|0)<(c[12526]|0))}return}function gi(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[12529]|0;e=+h[f+((c[b>>2]|0)*40|0)+24>>3];d=+h[f+((c[a>>2]|0)*40|0)+24>>3];return (e>d&1)-(e<d&1)|0}function hi(a,b){a=a|0;b=b|0;a=ii(c[a>>2]|0)|0;b=ii(c[b>>2]|0)|0;return ((b|0)<(a|0)&1)-((b|0)>(a|0)&1)|0}function ii(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+4|0;if((c[f>>2]|0)>0){b=0;g=0;do{d=c[(c[a>>2]|0)+(g<<2)>>2]|0;e=gl(d)|0;d=Lj(e,d)|0;if(d)do{b=b+1|0;d=Nj(e,d)|0}while((d|0)!=0);g=g+1|0}while((g|0)<(c[f>>2]|0))}else b=0;return b|0}function ji(b){b=b|0;var d=0,e=0;d=c[13435]|0;if((((d|0)!=0?(e=Aj(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0)?(Ls(e)|0)<<24>>24==0:0)d=1;else d=0;return d|0}function ki(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;si(b);d=Rk(b)|0;if(d)do{f=Lj(b,d)|0;if(f)do{j=f+16|0;do if(((c[(c[j>>2]|0)+172>>2]|0)==0?(ji(f)|0)==0:0)?(m=f+48|0,n=Ms(c[((c[f>>2]&3|0)==3?f:m)+40>>2]|0)|0,o=f+-48|0,p=Ms(c[((c[f>>2]&3|0)==2?f:o)+40>>2]|0)|0,(n|0)!=(p|0)):0){if((c[(c[n+16>>2]|0)+212>>2]|0)==0?(c[(c[p+16>>2]|0)+212>>2]|0)==0:0){g=$f(n,p)|0;if(!g){hg(n,p,f)|0;break}else{og(f,g);break}}l=c[f>>2]&3;k=c[((l|0)==3?f:m)+40>>2]|0;l=c[((l|0)==2?f:o)+40>>2]|0;g=c[k+16>>2]|0;h=c[g+212>>2]|0;if(!h)i=0;else i=(c[g+232>>2]|0)-(c[(c[(c[(c[h+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;g=c[l+16>>2]|0;h=c[g+212>>2]|0;if(!h)g=0;else g=(c[g+232>>2]|0)-(c[(c[(c[(c[h+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;i=(e[(c[j>>2]|0)+170>>1]|0)+(i-g)|0;h=(i|0)>0;g=lg(b)|0;a[(c[g+16>>2]|0)+156>>0]=2;q=Ms(k)|0;k=Ms(l)|0;l=ch(g,q,h?0.0:+(0-i|0),(c[(c[j>>2]|0)+156>>2]|0)*10|0)|0;c[(c[(ch(g,k,h?+(i|0):0.0,c[(c[j>>2]|0)+156>>2]|0)|0)+16>>2]|0)+116>>2]=f;c[(c[l+16>>2]|0)+116>>2]=f}while(0);f=Nj(b,f)|0}while((f|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);return}function li(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;n=c[d>>2]&3;i=c[(c[(c[((n|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;n=c[(c[(c[((n|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;n=(i|0)>(n|0)?i:n;i=c[d+16>>2]|0;d=i+172|0;if(c[d>>2]|0)Ia(118798,118820,148,118829);c[d>>2]=f;m=a+16|0;j=(g|0)==0;k=i+154|0;l=i+156|0;i=i+168|0;g=f;do{if(j)d=c[g+16>>2]|0;else{d=c[g+16>>2]|0;f=d+168|0;b[f>>1]=(e[f>>1]|0)+(e[i>>1]|0)}a=d+154|0;b[a>>1]=(e[a>>1]|0)+(e[k>>1]|0);d=d+156|0;c[d>>2]=(c[d>>2]|0)+(c[l>>2]|0);d=g+-48|0;a=c[(c[((c[g>>2]&3|0)==2?g:d)+40>>2]|0)+16>>2]|0;if((c[a+232>>2]|0)==(n|0))break;o=+((c[(c[m>>2]|0)+248>>2]|0)/2|0|0);f=a+88|0;h[f>>3]=o+ +h[f>>3];f=a+96|0;h[f>>3]=o+ +h[f>>3];g=c[c[(c[(c[((c[g>>2]&3|0)==2?g:d)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((g|0)!=0);return}function mi(a,b){a=a|0;b=b|0;var d=0,e=0;if(((((a|0)!=0&(b|0)!=0?(e=c[a>>2]&3,d=c[b>>2]&3,(c[((e|0)==3?a:a+48|0)+40>>2]|0)==(c[((d|0)==3?b:b+48|0)+40>>2]|0)):0)?(c[((e|0)==2?a:a+-48|0)+40>>2]|0)==(c[((d|0)==2?b:b+-48|0)+40>>2]|0):0)?(c[(c[a+16>>2]|0)+96>>2]|0)==(c[(c[b+16>>2]|0)+96>>2]|0):0)?(dh(a,b)|0)!=0:0)d=1;else d=0;return d|0}function ni(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b+16|0;d=c[q>>2]|0;c[d+192>>2]=0;c[d+232>>2]=0;si(b);d=c[q>>2]|0;if((c[d+180>>2]|0)>=1){e=1;while(1){ti(b,c[(c[d+184>>2]|0)+(e<<2)>>2]|0);d=c[q>>2]|0;if((e|0)>=(c[d+180>>2]|0))break;else e=e+1|0}}d=Rk(b)|0;if(d)do{e=Lj(b,d)|0;if(e)do{f=c[e>>2]|0;g=(c[(c[((f&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+160|0;h=a[g>>0]|0;if(h<<24>>24<3){a[g>>0]=h+1<<24>>24;f=c[e>>2]|0}f=(c[(c[((f&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+160|0;g=a[f>>0]|0;if(g<<24>>24<3)a[f>>0]=g+1<<24>>24;e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);d=Rk(b)|0;if(d)do{if((c[(c[d+16>>2]|0)+212>>2]|0)==0?(d|0)==(Ms(d)|0):0){ig(b,d);l=(c[q>>2]|0)+232|0;c[l>>2]=(c[l>>2]|0)+1}e=Lj(b,d)|0;if(e){f=0;do{l=e+16|0;h=c[l>>2]|0;a:do if(!(c[h+172>>2]|0)){g=c[e>>2]|0;i=g&3;k=e+48|0;j=c[((i|0)==3?e:k)+40>>2]|0;if((a[(c[j+16>>2]|0)+159>>0]|0)!=7?(n=e+-48|0,o=c[((i|0)==2?e:n)+40>>2]|0,(a[(c[o+16>>2]|0)+159>>0]|0)!=7):0){do if(((f|0)!=0?(m=c[f>>2]&3,(j|0)==(c[((m|0)==3?f:f+48|0)+40>>2]|0)):0)?(o|0)==(c[((m|0)==2?f:f+-48|0)+40>>2]|0):0){if((c[(c[j+16>>2]|0)+232>>2]|0)==(c[(c[o+16>>2]|0)+232>>2]|0)){og(e,f);eg(e);break a}if(!(c[h+96>>2]|0)){h=f+16|0;if(c[(c[h>>2]|0)+96>>2]|0)break;if(!(dh(e,f)|0)){g=c[e>>2]|0;break}if(!(a[124828]|0)){li(b,e,c[(c[h>>2]|0)+172>>2]|0,1);eg(e);break a}else{a[(c[l>>2]|0)+112>>0]=6;break a}}}while(0);j=g&3;g=c[((j|0)==3?e:k)+40>>2]|0;if((g|0)==(c[((j|0)==2?e:n)+40>>2]|0)){eg(e);f=e;break}i=Ms(g)|0;j=Ms(c[((c[e>>2]&3|0)==2?e:n)+40>>2]|0)|0;g=c[e>>2]&3;if((c[((g|0)==3?e:k)+40>>2]|0)!=(i|0))break;if((c[((g|0)==2?e:n)+40>>2]|0)!=(j|0))break;g=c[(c[i+16>>2]|0)+232>>2]|0;h=c[(c[j+16>>2]|0)+232>>2]|0;if((g|0)==(h|0)){mg(b,e);f=e;break}if((h|0)>(g|0)){pi(b,i,j,e);f=e;break}g=Sj(b,j,i,0,0)|0;do if(g){h=c[g>>2]&3;i=c[((h|0)==2?g:g+-48|0)+40>>2]|0;if((i|0)==(c[((c[e>>2]&3|0)==2?e:n)+40>>2]|0))break;j=g+16|0;if(!(c[(c[j>>2]|0)+172>>2]|0))pi(b,c[((h|0)==3?g:g+48|0)+40>>2]|0,i,g);if(c[(c[l>>2]|0)+96>>2]|0)break;if(c[(c[j>>2]|0)+96>>2]|0)break;if(!(dh(e,g)|0))break;if(!(a[124828]|0)){eg(e);li(b,e,c[(c[j>>2]|0)+172>>2]|0,1);break a}else{a[(c[l>>2]|0)+112>>0]=6;a[(c[j>>2]|0)+153>>0]=1;break a}}while(0);f=c[e>>2]&3;pi(b,c[((f|0)==2?e:n)+40>>2]|0,c[((f|0)==3?e:k)+40>>2]|0,e);f=e;break}if(mi(f,e)|0){g=c[(c[f+16>>2]|0)+172>>2]|0;if(g){li(b,e,g,0);eg(e);break}l=c[e>>2]&3;if((c[(c[(c[((l|0)==3?e:k)+40>>2]|0)+16>>2]|0)+232>>2]|0)!=(c[(c[(c[((l|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;og(e,f);eg(e);break}g=oi(c[((c[e>>2]&3|0)==3?e:k)+40>>2]|0)|0;h=oi(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;i=(c[(c[g+16>>2]|0)+232>>2]|0)>(c[(c[h+16>>2]|0)+232>>2]|0);f=i?g:h;g=i?h:g;h=g+16|0;i=f+16|0;if((c[(c[h>>2]|0)+212>>2]|0)!=(c[(c[i>>2]|0)+212>>2]|0)){j=$f(g,f)|0;if(j){li(b,e,j,1);f=e;break}if((c[(c[h>>2]|0)+232>>2]|0)!=(c[(c[i>>2]|0)+232>>2]|0)?(pi(b,g,f,e),p=c[(c[l>>2]|0)+172>>2]|0,(p|0)!=0):0){f=c[(c[i>>2]|0)+232>>2]|0;h=p;while(1){g=h+-48|0;if((c[(c[(c[((c[h>>2]&3|0)==2?h:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(f|0)){f=e;break a}a[(c[h+16>>2]|0)+112>>0]=5;h=c[c[(c[(c[((c[h>>2]&3|0)==2?h:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;if(!h){f=e;break}}}else f=e}else f=e}else f=e;while(0);e=Nj(b,e)|0}while((e|0)!=0)}d=Sk(b,d)|0}while((d|0)!=0);if((wf(b)|0)!=(b|0)){d=c[(c[q>>2]|0)+216>>2]|0;if(!d)d=aq(4)|0;else d=cq(d,4)|0;q=c[q>>2]|0;c[q+216>>2]=d;c[d>>2]=c[q+192>>2]}return}function oi(b){b=b|0;var d=0;d=c[b+16>>2]|0;if((a[d+159>>0]|0)==7)d=c[(c[(c[(c[d+212>>2]|0)+16>>2]|0)+268>>2]|0)+(c[d+232>>2]<<2)>>2]|0;else d=Ms(b)|0;return d|0}function pi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;p=f+16|0;g=c[p>>2]|0;if(!(c[g+96>>2]|0))q=-1;else q=((c[(c[e+16>>2]|0)+232>>2]|0)+(c[(c[d+16>>2]|0)+232>>2]|0)|0)/2|0;if(c[g+172>>2]|0)Ia(118841,118820,89,118866);i=c[(c[d+16>>2]|0)+232>>2]|0;n=e+16|0;g=c[(c[n>>2]|0)+232>>2]|0;if((i|0)<(g|0)){o=b+16|0;m=d;while(1){i=i+1|0;if((i|0)<(g|0)){do if((i|0)==(q|0)){g=c[(c[p>>2]|0)+96>>2]|0;k=+h[g+24>>3];l=+h[g+32>>3];g=lg(b)|0;j=g+16|0;c[(c[j>>2]|0)+104>>2]=c[(c[p>>2]|0)+96>>2];r=+(c[(c[(hl(g)|0)+16>>2]|0)+248>>2]|0);d=c[j>>2]|0;h[d+88>>3]=r;if(!(a[(c[p>>2]|0)+114>>0]|0)){s=(c[(c[(hl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;d=c[j>>2]|0;j=d+80|0;if(s){h[j>>3]=l;h[d+96>>3]=k;break}else{h[j>>3]=k;h[d+96>>3]=l;break}}}else{g=lg(b)|0;r=+((c[(c[o>>2]|0)+248>>2]|0)/2|0|0);d=c[g+16>>2]|0;s=d+88|0;h[s>>3]=r+ +h[s>>3];s=d+96|0;h[s>>3]=r+ +h[s>>3]}while(0);c[d+232>>2]=i;d=g}else d=e;Cg(hg(m,d,f)|0);g=c[(c[n>>2]|0)+232>>2]|0;if((i|0)>=(g|0))break;else m=d}if(c[(c[p>>2]|0)+172>>2]|0)return}Ia(118877,118820,103,118866)}function qi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=wf(a)|0;b=Rk(a)|0;if(b)do{d=Qj(l,b)|0;if(d){k=0;while(1){e=d;d=Rj(l,d,b)|0;do if(!(ql(a,e)|0)){e=(c[e>>2]&3|0)==2?e:e+-48|0;m=(mi(k,e)|0)==0;h=c[e>>2]&3;f=c[((h|0)==3?e:e+48|0)+40>>2]|0;g=c[(c[f+16>>2]|0)+232>>2]|0;h=c[((h|0)==2?e:e+-48|0)+40>>2]|0;i=c[(c[h+16>>2]|0)+232>>2]|0;j=(g|0)==(i|0);if(!m){c[(c[e+16>>2]|0)+172>>2]=j?k:0;f=c[(c[k+16>>2]|0)+172>>2]|0;if(!f){e=k;break}li(a,e,f,0);fg(e);e=k;break}if(!j)if((i|0)>(g|0)){wi(f,h,e);break}else{wi(h,f,e);break}f=ag(f,h)|0;if(!f){mg(l,e);break}if((e|0)!=(f|0)?(fg(e),(c[(c[e+16>>2]|0)+172>>2]|0)==0):0){og(e,f);e=k}else e=k}else e=k;while(0);if(!d)break;else k=e}}b=Sk(a,b)|0}while((b|0)!=0);return}function ri(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;ni(d);n=d+16|0;m=c[n>>2]|0;c[m+220>>2]=1;c[c[m+216>>2]>>2]=c[m+192>>2];xg(d);zg(d,0);m=wf(d)|0;g=c[n>>2]|0;f=b[g+236>>1]|0;e=f<<16>>16;if(f<<16>>16>0){l=m+16|0;a[(c[(c[l>>2]|0)+196>>2]|0)+(e+-1<<6)+49>>0]=0}else l=m+16|0;if(f<<16>>16>(b[g+238>>1]|0)){h=c[l>>2]|0;f=g}else{f=g;while(1){k=c[(c[(c[(c[f+268>>2]|0)+(e<<2)>>2]|0)+16>>2]|0)+236>>2]|0;xi(m,e,k,c[(c[f+196>>2]|0)+(e<<6)>>2]|0);f=c[n>>2]|0;g=c[f+196>>2]|0;h=c[l>>2]|0;if((c[g+(e<<6)>>2]|0)>0){i=0;j=k;while(1){f=c[(c[g+(e<<6)+4>>2]|0)+(i<<2)>>2]|0;c[(c[(c[h+196>>2]|0)+(e<<6)+4>>2]|0)+(j<<2)>>2]=f;h=c[f+16>>2]|0;c[h+236>>2]=j;if((a[h+156>>0]|0)==1)c[f+24>>2]=hl(m)|0;kg(d,f);ig(m,f);h=c[l>>2]|0;f=h+232|0;c[f>>2]=(c[f>>2]|0)+1;i=i+1|0;f=c[n>>2]|0;g=c[f+196>>2]|0;if((i|0)>=(c[g+(e<<6)>>2]|0))break;else j=j+1|0}}j=c[h+196>>2]|0;c[g+(e<<6)+4>>2]=(c[j+(e<<6)+4>>2]|0)+(k<<2);a[j+(e<<6)+49>>0]=0;g=e+1|0;if((e|0)<(b[f+238>>1]|0))e=g;else{e=g;break}}}if((e|0)<(b[h+238>>1]|0))a[(c[h+196>>2]|0)+(e<<6)+49>>0]=0;a[f+272>>0]=1;qi(d);e=c[n>>2]|0;f=b[e+236>>1]|0;if(f<<16>>16<=(b[e+238>>1]|0)){i=f<<16>>16;while(1){g=c[(c[e+268>>2]|0)+(i<<2)>>2]|0;h=g+16|0;e=c[h>>2]|0;f=c[c[e+180>>2]>>2]|0;if(f)do{dg(f);e=c[h>>2]|0;f=c[c[e+180>>2]>>2]|0}while((f|0)!=0);e=c[c[e+172>>2]>>2]|0;if(e)do{dg(e);e=c[c[(c[h>>2]|0)+172>>2]>>2]|0}while((e|0)!=0);kg(wf(d)|0,g);c[(c[(c[n>>2]|0)+268>>2]|0)+(i<<2)>>2]=0;e=c[n>>2]|0;if((i|0)>=(b[e+238>>1]|0))break;else i=i+1|0}}return}function si(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;n=o;d=Rk(b)|0;if(d)do{f=d+16|0;e=c[f>>2]|0;if((a[e+159>>0]|0)==7){Os(d);e=c[f>>2]|0}c[e+212>>2]=0;d=Sk(b,d)|0}while((d|0)!=0);m=b+16|0;d=c[m>>2]|0;if((c[d+180>>2]|0)>=1){l=1;while(1){j=c[(c[d+184>>2]|0)+(l<<2)>>2]|0;d=Rk(j)|0;if(d){k=j+16|0;do{f=d;d=Sk(j,d)|0;e=f+16|0;if(!(a[(c[e>>2]|0)+159>>0]|0)){Ps(f,c[(c[k>>2]|0)+264>>2]|0);e=c[e>>2]|0;c[e+212>>2]=j;a[e+159>>0]=7;e=Lj(j,f)|0;if(e)do{f=c[(c[e+16>>2]|0)+172>>2]|0;a:do if(f)do{g=f+-48|0;h=c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0;if((a[h+156>>0]|0)!=1)break a;c[h+212>>2]=j;f=c[c[(c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((f|0)!=0);while(0);e=Nj(j,e)|0}while((e|0)!=0)}else{g=ok(f)|0;h=ok(b)|0;c[n>>2]=g;c[n+4>>2]=h;dj(0,118902,n)|0;fl(j,f)|0}}while((d|0)!=0)}d=c[m>>2]|0;if((l|0)>=(c[d+180>>2]|0))break;else l=l+1|0}}i=o;return}function ti(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=e+16|0;f=$p((b[(c[l>>2]|0)+238>>1]<<2)+8|0)|0;k=c[l>>2]|0;c[k+268>>2]=f;f=b[k+236>>1]|0;if(f<<16>>16<=(b[k+238>>1]|0)){h=0;g=f<<16>>16;while(1){f=h;h=lg(d)|0;c[(c[(c[l>>2]|0)+268>>2]|0)+(g<<2)>>2]=h;k=c[h+16>>2]|0;c[k+232>>2]=g;a[k+159>>0]=7;c[k+212>>2]=e;if(f){k=(c[(hg(f,h,0)|0)+16>>2]|0)+154|0;b[k>>1]=(b[k>>1]|0)*1e3}if((g|0)>=(b[(c[l>>2]|0)+238>>1]|0))break;else g=g+1|0}}f=Rk(e)|0;if(f)do{k=(c[(c[(c[l>>2]|0)+268>>2]|0)+(c[(c[f+16>>2]|0)+232>>2]<<2)>>2]|0)+16|0;g=(c[k>>2]|0)+216|0;c[g>>2]=(c[g>>2]|0)+1;g=Lj(e,f)|0;if(g)do{j=c[g>>2]&3;d=c[(c[(c[((j|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;i=g+-48|0;if((d|0)<(c[(c[(c[((j|0)==2?g:i)+40>>2]|0)+16>>2]|0)+232>>2]|0)){h=(c[(c[c[(c[k>>2]|0)+180>>2]>>2]|0)+16>>2]|0)+168|0;j=b[h>>1]|0;do{j=j+1<<16>>16;b[h>>1]=j;d=d+1|0}while((d|0)<(c[(c[(c[((c[g>>2]&3|0)==2?g:i)+40>>2]|0)+16>>2]|0)+232>>2]|0))}g=Nj(e,g)|0}while((g|0)!=0);f=Sk(e,f)|0}while((f|0)!=0);g=c[l>>2]|0;d=b[g+236>>1]|0;f=b[g+238>>1]|0;if(d<<16>>16<=f<<16>>16){i=f<<16>>16;h=c[g+268>>2]|0;d=d<<16>>16;while(1){f=(c[(c[h+(d<<2)>>2]|0)+16>>2]|0)+216|0;g=c[f>>2]|0;if((g|0)>1)c[f>>2]=g+-1;if((d|0)<(i|0))d=d+1|0;else break}}return}function ui(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=(c[(c[e+16>>2]|0)+212>>2]|0)+16|0;e=c[j>>2]|0;k=f+1|0;if((a[e+273>>0]|0)!=(k|0)){i=b[e+236>>1]|0;h=b[e+238>>1]|0;if(i<<16>>16<=h<<16>>16){i=i<<16>>16;while(1){yg(d,c[(c[e+268>>2]|0)+(i<<2)>>2]|0);e=c[j>>2]|0;h=b[e+238>>1]|0;if((i|0)<(h<<16>>16|0))i=i+1|0;else break}i=b[e+236>>1]|0}if(i<<16>>16<=h<<16>>16){h=i<<16>>16;while(1){Ag(g,c[(c[e+268>>2]|0)+(h<<2)>>2]|0,f);e=c[j>>2]|0;if((h|0)<(b[e+238>>1]|0))h=h+1|0;else break}}a[e+273>>0]=k}return}function vi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Rk(b)|0;if(d)do{c[(c[d+16>>2]|0)+212>>2]=0;e=Lj(b,d)|0;if(e)do{f=c[(c[e+16>>2]|0)+172>>2]|0;a:do if(f)do{g=f+-48|0;h=c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0;if((a[h+156>>0]|0)!=1)break a;c[h+212>>2]=0;f=c[c[(c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((f|0)!=0);while(0);e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);yi(b);return}function wi(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=c[d+16>>2]|0;i=c[g+212>>2]|0;if((i|0)!=0?(j=c[i+16>>2]|0,(a[j+272>>0]|0)==0):0)p=c[(c[j+268>>2]|0)+(c[g+232>>2]<<2)>>2]|0;else p=d;g=c[e+16>>2]|0;i=c[g+212>>2]|0;if((i|0)!=0?(k=c[i+16>>2]|0,(a[k+272>>0]|0)==0):0){q=c[(c[k+268>>2]|0)+(c[g+232>>2]<<2)>>2]|0;i=c[q+16>>2]|0}else{i=g;q=e}o=(p|0)==(d|0)&(q|0)==(e|0)?1:5;e=f+16|0;j=(c[e>>2]|0)+172|0;g=c[j>>2]|0;d=p+16|0;k=c[(c[d>>2]|0)+232>>2]|0;n=q+16|0;i=c[i+232>>2]|0;if((i|0)<=(k|0))Ia(118956,118984,81,118994);r=c[g>>2]&3;if(!((c[((r|0)==3?g:g+48|0)+40>>2]|0)==(p|0)?(c[((r|0)==2?g:g+-48|0)+40>>2]|0)==(q|0):0))m=11;a:do if((m|0)==11){if((b[(c[g+16>>2]|0)+168>>1]|0)>1){c[j>>2]=0;if(((i-k|0)==1?(l=$f(p,q)|0,(l|0)!=0):0)?(dh(f,l)|0)!=0:0){og(f,l);if(a[(c[d>>2]|0)+156>>0]|0)break;if(a[(c[n>>2]|0)+156>>0]|0)break;eg(f);break}j=c[(c[d>>2]|0)+232>>2]|0;i=c[(c[n>>2]|0)+232>>2]|0;if((j|0)>=(i|0))break;m=o&255;e=p;while(1){if((j|0)<(i+-1|0)){o=wf(p)|0;d=g+-48|0;k=(c[((c[g>>2]&3|0)==2?g:d)+40>>2]|0)+16|0;l=c[k>>2]|0;r=c[l+232>>2]|0;xi(o,r,c[l+236>>2]|0,2);l=lg(o)|0;k=c[k>>2]|0;i=c[l+16>>2]|0;h[i+88>>3]=+h[k+88>>3];h[i+96>>3]=+h[k+96>>3];c[i+232>>2]=c[k+232>>2];k=(c[k+236>>2]|0)+1|0;c[i+236>>2]=k;c[(c[(c[(c[o+16>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(k<<2)>>2]=l;k=g}else{k=g;d=g+-48|0;l=q}a[(c[(hg(e,l,f)|0)+16>>2]|0)+112>>0]=m;i=(c[g+16>>2]|0)+168|0;b[i>>1]=(b[i>>1]|0)+-1<<16>>16;j=j+1|0;i=c[(c[n>>2]|0)+232>>2]|0;if((j|0)>=(i|0))break a;else{g=c[c[(c[(c[((c[k>>2]&3|0)==2?g:d)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;e=l}}}do if((i-k|0)==1){g=$f(p,q)|0;if((g|0)!=0?(dh(f,g)|0)!=0:0){c[(c[e>>2]|0)+172>>2]=g;r=c[g+16>>2]|0;a[r+112>>0]=o;r=r+168|0;b[r>>1]=(b[r>>1]|0)+1<<16>>16;if(a[(c[d>>2]|0)+156>>0]|0)break;if(a[(c[n>>2]|0)+156>>0]|0)break;eg(f);break}c[(c[e>>2]|0)+172>>2]=0;g=hg(p,q,f)|0;a[(c[g+16>>2]|0)+112>>0]=o}while(0);j=c[(c[n>>2]|0)+232>>2]|0;if((j-(c[(c[d>>2]|0)+232>>2]|0)|0)>1){i=c[g>>2]|0;if((c[((i&3|0)==3?g:g+48|0)+40>>2]|0)==(p|0))d=j;else{c[(c[e>>2]|0)+172>>2]=0;r=hg(p,c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0,f)|0;c[(c[e>>2]|0)+172>>2]=r;dg(g);i=c[r>>2]|0;d=c[(c[n>>2]|0)+232>>2]|0;g=r}j=i&3;i=c[((j|0)==2?g:g+-48|0)+40>>2]|0;k=c[i+16>>2]|0;if((c[k+232>>2]|0)!=(d|0))do{g=c[c[k+180>>2]>>2]|0;j=c[g>>2]&3;i=c[((j|0)==2?g:g+-48|0)+40>>2]|0;k=c[i+16>>2]|0}while((c[k+232>>2]|0)!=(d|0));if((i|0)!=(q|0)){a[(c[(hg(c[((j|0)==3?g:g+48|0)+40>>2]|0,q,f)|0)+16>>2]|0)+112>>0]=o;dg(g)}}}while(0);return}function xi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+16|0;a=c[i>>2]|0;f=c[a+196>>2]|0;h=c[f+(b<<6)+4>>2]|0;if((e|0)<1){d=d-e|0;g=d+1|0;f=c[f+(b<<6)>>2]|0;if((g|0)<(f|0)){a=d;while(1){f=c[h+(g<<2)>>2]|0;d=a+e|0;c[(c[f+16>>2]|0)+236>>2]=d;c[h+(d<<2)>>2]=f;d=g+1|0;a=c[i>>2]|0;f=c[(c[a+196>>2]|0)+(b<<6)>>2]|0;if((d|0)<(f|0)){a=g;g=d}else{g=f;break}}}else g=f;f=e+-1|0;d=f+g|0;if((d|0)<(g|0))do{c[h+(d<<2)>>2]=0;d=d+1|0;a=c[i>>2]|0}while((d|0)<(c[(c[a+196>>2]|0)+(b<<6)>>2]|0))}else{a=(c[f+(b<<6)>>2]|0)+-1|0;if((a|0)>(d|0)){f=e+-1|0;do{j=c[h+(a<<2)>>2]|0;g=f+a|0;c[(c[j+16>>2]|0)+236>>2]=g;c[h+(g<<2)>>2]=j;a=a+-1|0}while((a|0)>(d|0))}a=d+1|0;if((a|0)<(e+d|0))CB(h+(a<<2)|0,0,(e<<2)+-4|0)|0;f=e+-1|0;a=c[i>>2]|0}j=(c[a+196>>2]|0)+(b<<6)|0;c[j>>2]=f+(c[j>>2]|0);return}function yi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=b+16|0;d=c[f>>2]|0;if((c[d+180>>2]|0)>=1){e=1;while(1){yi(c[(c[d+184>>2]|0)+(e<<2)>>2]|0);d=c[f>>2]|0;if((e|0)>=(c[d+180>>2]|0))break;else e=e+1|0}}d=Rk(b)|0;if(d)do{e=(c[d+16>>2]|0)+212|0;if(!(c[e>>2]|0))c[e>>2]=b;e=Lj(b,d)|0;if(e)do{f=c[(c[e+16>>2]|0)+172>>2]|0;a:do if(f)do{g=c[f>>2]|0;i=f+-48|0;h=c[(c[((g&3|0)==2?f:i)+40>>2]|0)+16>>2]|0;if((a[h+156>>0]|0)!=1)break a;h=h+212|0;if(!(c[h>>2]|0)){c[h>>2]=b;g=c[f>>2]|0}f=c[c[(c[(c[((g&3|0)==2?f:i)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((f|0)!=0);while(0);e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);return}function zi(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0.0,R=0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0,ca=0.0;aa=i;i=i+240|0;C=aa+216|0;B=aa+200|0;Y=aa+184|0;X=aa+168|0;_=aa+152|0;Z=aa+136|0;W=aa+128|0;V=aa+64|0;D=aa+48|0;E=aa+32|0;H=aa+16|0;N=aa;O=bt(b)|0;d=Rk(b)|0;a:do if(d){P=D+8|0;R=V+16|0;U=V+32|0;F=V+48|0;G=H+8|0;b:while(1){e=Lj(b,d)|0;if(e)do{f=Ai(zj(e,119003)|0,O)|0;q=Ai(zj(e,119009)|0,O)|0;r=(q|0)!=0;g=(f|0)!=0;do if(g|r?(I=e+16|0,M=c[(c[I>>2]|0)+8>>2]|0,(M|0)!=0):0){if((c[M+4>>2]|0)>1){z=ok(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;A=ok(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;c[W>>2]=z;c[W+4>>2]=A;dj(0,119015,W)|0;break}z=c[M>>2]|0;j=c[z+4>>2]|0;s=c[e>>2]&3;u=e+-48|0;v=c[((s|0)==2?e:u)+40>>2]|0;w=e+48|0;s=c[((s|0)==3?e:w)+40>>2]|0;A=aq(48)|0;x=z+12|0;c[A+12>>2]=c[x>>2];y=z+8|0;c[A+8>>2]=c[y>>2];do if(g){f=c[f+16>>2]|0;p=f+16|0;t=c[v+16>>2]|0;l=t+16|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];m=+h[k>>3];t=t+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];o=+h[p>>3];if(((o<=m?(Q=+h[f+32>>3],m<=Q):0)?(S=+h[f+24>>3],S<=n):0)?(T=+h[f+40>>3],n<=T):0){f=c[z>>2]|0;a[k>>0]=a[f>>0];a[k+1>>0]=a[f+1>>0];a[k+2>>0]=a[f+2>>0];a[k+3>>0]=a[f+3>>0];a[k+4>>0]=a[f+4>>0];a[k+5>>0]=a[f+5>>0];a[k+6>>0]=a[f+6>>0];a[k+7>>0]=a[f+7>>0];m=+h[k>>3];t=f+8|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];if(!(!(n<=T)|(!(o<=m)|!(m<=Q)|!(S<=n)))){t=c[s+16>>2]|0;l=t+16|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];m=+h[k>>3];t=t+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];if(!(!(n<=T)|(!(o<=m)|!(m<=Q)|!(S<=n)))){p=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;t=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119003)|0;c[_>>2]=p;c[_+4>>2]=t;c[_+8>>2]=$;dj(0,119099,_)|0;$=33;break}if(!(c[y>>2]|0)){$=20;break b}t=z+16|0;c[B>>2]=c[f>>2];c[B+4>>2]=c[f+4>>2];c[B+8>>2]=c[f+8>>2];c[B+12>>2]=c[f+12>>2];c[C>>2]=c[t>>2];c[C+4>>2]=c[t+4>>2];c[C+8>>2]=c[t+8>>2];c[C+12>>2]=c[t+12>>2];Ci(D,B,C,p);m=+h[D>>3];o=+h[P>>3];f=c[z>>2]|0;h[f+48>>3]=m;h[f+56>>3]=o;f=c[z>>2]|0;p=z+16|0;a[k>>0]=a[p>>0];a[k+1>>0]=a[p+1>>0];a[k+2>>0]=a[p+2>>0];a[k+3>>0]=a[p+3>>0];a[k+4>>0]=a[p+4>>0];a[k+5>>0]=a[p+5>>0];a[k+6>>0]=a[p+6>>0];a[k+7>>0]=a[p+7>>0];n=+h[k>>3];t=z+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ca=(o+ +h[k>>3])*.5;h[f+16>>3]=(m+n)*.5;h[f+24>>3]=ca;f=c[z>>2]|0;a[k>>0]=a[p>>0];a[k+1>>0]=a[p+1>>0];a[k+2>>0]=a[p+2>>0];a[k+3>>0]=a[p+3>>0];a[k+4>>0]=a[p+4>>0];a[k+5>>0]=a[p+5>>0];a[k+6>>0]=a[p+6>>0];a[k+7>>0]=a[p+7>>0];ca=+h[k>>3];a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];t=f+16|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ba=+h[k>>3];t=f+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=(n+ +h[k>>3])*.5;h[f>>3]=(ca+ba)*.5;h[f+8>>3]=n;f=c[z>>2]|0;t=f+16|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];t=f+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];o=(o+ +h[k>>3])*.5;h[f+32>>3]=(m+n)*.5;h[f+40>>3]=o;f=c[x>>2]|0;if(!f)f=0;else f=Co(e,c[z>>2]|0,0,0,A,f)|0;t=f+3|0;break}l=j+-1|0;c:do if((j|0)>1){if(!(Bi(f,p)|0))f=0;else{f=0;break}do{f=f+3|0;if((f|0)>=(l|0))break c}while((Bi((c[z>>2]|0)+(f<<4)|0,p)|0)==0)}else f=0;while(0);g=c[x>>2]|0;j=(g|0)!=0;if((f|0)==(l|0)){if(!j){$=28;break b}t=A+32|0;g=z+32|0;j=(c[z>>2]|0)+(l<<4)|0;c[B>>2]=c[g>>2];c[B+4>>2]=c[g+4>>2];c[B+8>>2]=c[g+8>>2];c[B+12>>2]=c[g+12>>2];c[C>>2]=c[j>>2];c[C+4>>2]=c[j+4>>2];c[C+8>>2]=c[j+8>>2];c[C+12>>2]=c[j+12>>2];Ci(E,B,C,p);c[t>>2]=c[E>>2];c[t+4>>2]=c[E+4>>2];c[t+8>>2]=c[E+8>>2];c[t+12>>2]=c[E+12>>2];t=l;break}if(j)f=Co(e,c[z>>2]|0,0,f,A,g)|0;t=f+3|0;break}p=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;t=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119003)|0;c[Z>>2]=p;c[Z+4>>2]=t;c[Z+8>>2]=$;dj(0,119056,Z)|0;$=33}else $=33;while(0);if(($|0)==33){$=0;f=j+-1|0;if(!(c[x>>2]|0))t=f;else{t=A+32|0;p=z+32|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];t=f}}do if(r){f=c[q+16>>2]|0;p=f+16|0;s=c[s+16>>2]|0;r=s+16|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];m=+h[k>>3];s=s+24|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];n=+h[k>>3];o=+h[p>>3];if(((o<=m?(J=+h[f+32>>3],m<=J):0)?(K=+h[f+24>>3],K<=n):0)?(L=+h[f+40>>3],n<=L):0){g=c[z>>2]|0;s=g+(t<<4)|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];ba=+h[k>>3];s=g+(t<<4)+8|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];ca=+h[k>>3];if(!(!(ca<=L)|(!(o<=ba)|!(ba<=J)|!(K<=ca)))){v=c[v+16>>2]|0;s=v+16|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];ba=+h[k>>3];v=v+24|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];ca=+h[k>>3];if(!(!(ca<=L)|(!(o<=ba)|!(ba<=J)|!(K<=ca)))){w=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;x=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119009)|0;c[Y>>2]=w;c[Y+4>>2]=x;c[Y+8>>2]=$;dj(0,119234,Y)|0;$=59;break}if(!(c[x>>2]|0)){$=46;break b}g=g+(t<<4)|0;v=A+32|0;c[B>>2]=c[g>>2];c[B+4>>2]=c[g+4>>2];c[B+8>>2]=c[g+8>>2];c[B+12>>2]=c[g+12>>2];c[C>>2]=c[v>>2];c[C+4>>2]=c[v+4>>2];c[C+8>>2]=c[v+8>>2];c[C+12>>2]=c[v+12>>2];Ci(H,B,C,p);o=+h[H>>3];ca=+h[G>>3];g=t+-3|0;w=c[z>>2]|0;h[w+(g<<4)>>3]=o;h[w+(g<<4)+8>>3]=ca;w=t+-1|0;f=c[z>>2]|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];ba=+h[k>>3];x=A+40|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];m=(ca+ +h[k>>3])*.5;h[f+(w<<4)>>3]=(o+ba)*.5;h[f+(w<<4)+8>>3]=m;f=c[z>>2]|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];m=+h[k>>3];a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];ba=+h[k>>3];x=f+(w<<4)|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];n=+h[k>>3];x=f+(w<<4)+8|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];ba=(ba+ +h[k>>3])*.5;h[f+(t<<4)>>3]=(m+n)*.5;h[f+(t<<4)+8>>3]=ba;f=t+-2|0;x=c[z>>2]|0;v=x+(w<<4)|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];ba=+h[k>>3];w=x+(w<<4)+8|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];ca=(ca+ +h[k>>3])*.5;h[x+(f<<4)>>3]=(o+ba)*.5;h[x+(f<<4)+8>>3]=ca;f=c[y>>2]|0;if(!f)break;g=Do(e,c[z>>2]|0,g,g,A,f)|0;break}d:do if((t|0)>0){j=t;while(1){g=g+(j<<4)|0;c[V>>2]=c[g>>2];c[V+4>>2]=c[g+4>>2];c[V+8>>2]=c[g+8>>2];c[V+12>>2]=c[g+12>>2];g=j+-1|0;l=(c[z>>2]|0)+(g<<4)|0;c[R>>2]=c[l>>2];c[R+4>>2]=c[l+4>>2];c[R+8>>2]=c[l+8>>2];c[R+12>>2]=c[l+12>>2];l=j+-2|0;f=(c[z>>2]|0)+(l<<4)|0;c[U>>2]=c[f>>2];c[U+4>>2]=c[f+4>>2];c[U+8>>2]=c[f+8>>2];c[U+12>>2]=c[f+12>>2];f=j+-3|0;x=(c[z>>2]|0)+(f<<4)|0;c[F>>2]=c[x>>2];c[F+4>>2]=c[x+4>>2];c[F+8>>2]=c[x+8>>2];c[F+12>>2]=c[x+12>>2];if(Bi(V,p)|0)break;if((j|0)<=3)break d;g=c[z>>2]|0;j=f}x=(c[z>>2]|0)+(j<<4)|0;c[x>>2]=c[V>>2];c[x+4>>2]=c[V+4>>2];c[x+8>>2]=c[V+8>>2];c[x+12>>2]=c[V+12>>2];x=(c[z>>2]|0)+(g<<4)|0;c[x>>2]=c[R>>2];c[x+4>>2]=c[R+4>>2];c[x+8>>2]=c[R+8>>2];c[x+12>>2]=c[R+12>>2];x=(c[z>>2]|0)+(l<<4)|0;c[x>>2]=c[U>>2];c[x+4>>2]=c[U+4>>2];c[x+8>>2]=c[U+8>>2];c[x+12>>2]=c[U+12>>2];f=(c[z>>2]|0)+(f<<4)|0;c[f>>2]=c[F>>2];c[f+4>>2]=c[F+4>>2];c[f+8>>2]=c[F+8>>2];c[f+12>>2]=c[F+12>>2];f=j}else f=t;while(0);if(!f){if(!(c[y>>2]|0)){$=55;break b}g=A+16|0;x=z+16|0;y=c[z>>2]|0;c[B>>2]=c[x>>2];c[B+4>>2]=c[x+4>>2];c[B+8>>2]=c[x+8>>2];c[B+12>>2]=c[x+12>>2];c[C>>2]=c[y>>2];c[C+4>>2]=c[y+4>>2];c[C+8>>2]=c[y+8>>2];c[C+12>>2]=c[y+12>>2];Ci(N,B,C,p);c[g>>2]=c[N>>2];c[g+4>>2]=c[N+4>>2];c[g+8>>2]=c[N+8>>2];c[g+12>>2]=c[N+12>>2];g=0;break}else{g=f+-3|0;f=c[y>>2]|0;if(!f)break;g=Do(e,c[z>>2]|0,g,t+-3|0,A,f)|0;break}}w=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;x=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119009)|0;c[X>>2]=w;c[X+4>>2]=x;c[X+8>>2]=$;dj(0,119191,X)|0;$=59}else $=59;while(0);if(($|0)==59){$=0;if(!(c[y>>2]|0))g=0;else{g=A+16|0;y=z+16|0;c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[g+12>>2]=c[y+12>>2];g=0}}f=t-g+1|0;l=A+4|0;c[l>>2]=f;f=aq(f<<4)|0;c[A>>2]=f;if((c[l>>2]|0)>0?(y=(c[z>>2]|0)+(g<<4)|0,c[f>>2]=c[y>>2],c[f+4>>2]=c[y+4>>2],c[f+8>>2]=c[y+8>>2],c[f+12>>2]=c[y+12>>2],(c[l>>2]|0)>1):0){j=1;f=g;do{f=f+1|0;y=(c[A>>2]|0)+(j<<4)|0;x=(c[z>>2]|0)+(f<<4)|0;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];j=j+1|0}while((j|0)<(c[l>>2]|0))}pB(c[z>>2]|0);pB(z);c[c[(c[I>>2]|0)+8>>2]>>2]=A}while(0);e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0;if(!d)break a}if(($|0)==20)Ia(119141,119152,369,119163);else if(($|0)==28)Ia(119180,119152,387,119163);else if(($|0)==46)Ia(119180,119152,429,119163);else if(($|0)==55)Ia(119141,119152,452,119163)}while(0);Pi(O)|0;i=aa;return}function Ai(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;if((b|0)!=0?(a[b>>0]|0)!=0:0){d=rt(d,b)|0;if(!d){c[e>>2]=b;dj(0,119354,e)|0;d=0}}else d=0;i=f;return d|0}function Bi(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,j=0,k=0,l=0;l=i;i=i+128|0;k=l+64|0;c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];f=k+16|0;j=a+16|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];f=k+32|0;j=a+32|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];f=k+48|0;j=a+48|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];f=b+8|0;j=b+24|0;d=+Di(a,0.0,1.0,+h[b>>3],+h[f>>3],+h[j>>3]);if(d>=0.0&d<2.0)Rs(l+48|0,k,3,d,a,0);else d=2.0;g=b+16|0;e=+Di(a,0.0,d>1.0?1.0:d,+h[g>>3],+h[f>>3],+h[j>>3]);if(e>=0.0&e<d){Rs(l+32|0,k,3,e,a,0);d=e}e=+Ei(a,0.0,d>1.0?1.0:d,+h[f>>3],+h[b>>3],+h[g>>3]);if(e>=0.0&e<d)Rs(l+16|0,k,3,e,a,0);else e=d;d=+Ei(a,0.0,e>1.0?1.0:e,+h[j>>3],+h[b>>3],+h[g>>3]);if(d>=0.0&d<e)Rs(l,k,3,d,a,0);else d=e;i=l;return d<2.0|0}function Ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+480|0;z=D+64|0;y=D+48|0;B=D+32|0;A=D+16|0;x=D;v=D+380|0;t=D+280|0;u=D+180|0;w=D+80|0;o=+h[b>>3];m=+h[b+8>>3];n=+h[d>>3];j=+h[d+8>>3];k=+h[e>>3];l=+h[e+8>>3];g=+h[e+16>>3];f=+h[e+24>>3];if(n<k?(p=m+ +(~~((m-j)*(k-o)/(o-n))|0),!(!(p>=l)|!(p<=f))):0){h[a>>3]=k;h[a+8>>3]=p}else C=4;do if((C|0)==4){if(n>g?(q=m+ +(~~((m-j)*(g-o)/(o-n))|0),!(!(q>=l)|!(q<=f))):0){h[a>>3]=g;h[a+8>>3]=q;break}if(j<l?(r=o+ +(~~((o-n)*(l-m)/(m-j))|0),!(!(r>=k)|!(r<=g))):0){h[a>>3]=r;h[a+8>>3]=l;break}if(j>f?(s=o+ +(~~((o-n)*(f-m)/(m-j))|0),!(!(s>=k)|!(s<=g))):0){h[a>>3]=s;h[a+8>>3]=f;break}h[x>>3]=o;h[x+8>>3]=m;Oz(v,119276,x)|0;h[A>>3]=n;h[A+8>>3]=j;Oz(t,119276,A)|0;h[B>>3]=k;h[B+8>>3]=l;Oz(u,119276,B)|0;h[y>>3]=g;h[y+8>>3]=f;Oz(w,119276,y)|0;c[z>>2]=v;c[z+4>>2]=t;c[z+8>>2]=u;c[z+12>>2]=w;dj(1,119288,z)|0;Ia(161945,119152,78,119340)}while(0);i=D;return}function Di(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+144|0;k=m+80|0;l=m+16|0;j=m;a:do if(!(b==c)){g=+h[a>>3];p=g<d?-1:g>d&1;g=+h[a+16>>3];o=g<d?-1:g>d&1;g=+h[a+32>>3];n=g<d?-1:g>d&1;g=+h[a+48>>3];switch(((p|0)!=0&(o|0)!=(p|0)&1)+((p|0)==0&1)+((o|0)!=0&(n|0)!=(o|0)&1)+(((n|0)!=0?((g<d?-1:g>d&1)|0)!=(n|0):0)&1)|0){case 0:{b=-1.0;break a}case 1:{if(+N(+(g-d))<=.005){b=+h[a+56>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}Rs(j,a,3,.5,k,l);g=(b+c)*.5;b=+Di(k,b,g,d,e,f);if(!(b>=0.0))b=+Di(l,g,c,d,e,f)}while(0);i=m;return +b}function Ei(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+144|0;k=m+80|0;l=m+16|0;j=m;a:do if(!(b==c)){g=+h[a+8>>3];p=g<d?-1:g>d&1;g=+h[a+24>>3];o=g<d?-1:g>d&1;g=+h[a+40>>3];n=g<d?-1:g>d&1;g=+h[a+56>>3];switch(((p|0)!=0&(o|0)!=(p|0)&1)+((p|0)==0&1)+((o|0)!=0&(n|0)!=(o|0)&1)+(((n|0)!=0?((g<d?-1:g>d&1)|0)!=(n|0):0)&1)|0){case 0:{b=-1.0;break a}case 1:{if(+N(+(g-d))<=.005){b=+h[a+48>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}Rs(j,a,3,.5,k,l);g=(b+c)*.5;b=+Ei(k,b,g,d,e,f);if(!(b>=0.0))b=+Ei(l,g,c,d,e,f)}while(0);i=m;return +b}function Fi(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+96|0;t=z+48|0;s=z+8|0;w=z;y=4;x=oB(40)|0;c[x>>2]=0;v=d+16|0;e=c[v>>2]|0;a:do if(((b[e+238>>1]|0)-(b[e+236>>1]|0)|0)>=2){f=c[e+196>>2]|0;b:do if(c[f+128>>2]|0){q=2;r=1;while(1){if((c[f+(r<<6)>>2]|0)>0){p=0;do{m=(c[(c[f+(r<<6)+4>>2]|0)+(p<<2)>>2]|0)+16|0;l=c[m>>2]|0;if((((a[l+156>>0]|0)==1?(c[l+176>>2]|0)==1:0)?(c[l+184>>2]|0)==1:0)?(c[l+104>>2]|0)==0:0){h=p+1|0;e=c[e+196>>2]|0;c:do if((h|0)<(c[e+(r<<6)>>2]|0)){g=e;f=p;l=h;while(1){k=c[c[(c[m>>2]|0)+172>>2]>>2]|0;e=c[(c[(c[g+(r<<6)+4>>2]|0)+(l<<2)>>2]|0)+16>>2]|0;j=c[c[e+172>>2]>>2]|0;if((a[e+156>>0]|0)!=1){e=l;break c}if((c[e+176>>2]|0)!=1){e=l;break c}if((c[e+184>>2]|0)!=1){e=l;break c}if(c[e+104>>2]|0){e=l;break c}if((c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)!=(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)){e=l;break c}n=0;e=ua(17,k|0,j|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break b}if(!(e<<24>>24)){e=l;break c}e=(c[j+16>>2]|0)+16|0;n=0;j=s;g=(c[k+16>>2]|0)+16|0;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));j=t;g=e;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));e=ua(18,s|0,t|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break b}if(e){e=l;break c}e=l+1|0;g=c[(c[v>>2]|0)+196>>2]|0;if((e|0)>=(c[g+(r<<6)>>2]|0)){f=l;break}else{f=l;l=e}}}else{f=p;e=h}while(0);if((e-p|0)>1){n=0;ga(6,d|0,r|0,p|0,f|0,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;break b}}}p=p+1|0;e=c[v>>2]|0;f=c[e+196>>2]|0}while((p|0)<(c[f+(r<<6)>>2]|0))}g=q+1|0;if(!(c[f+(g<<6)>>2]|0))break;else{r=q;q=g}}if((q|0)>0)u=25;else u=46}else{q=1;u=25}while(0);d:do if((u|0)==25)while(1){u=0;f=c[e+196>>2]|0;if((c[f+(q<<6)>>2]|0)>0){p=0;do{m=(c[(c[f+(q<<6)+4>>2]|0)+(p<<2)>>2]|0)+16|0;r=c[m>>2]|0;if((((a[r+156>>0]|0)==1?(c[r+184>>2]|0)==1:0)?(c[r+176>>2]|0)==1:0)?(c[r+104>>2]|0)==0:0){h=p+1|0;e=c[e+196>>2]|0;e:do if((h|0)<(c[e+(q<<6)>>2]|0)){g=e;f=p;l=h;while(1){k=c[c[(c[m>>2]|0)+180>>2]>>2]|0;e=c[(c[(c[g+(q<<6)+4>>2]|0)+(l<<2)>>2]|0)+16>>2]|0;j=c[c[e+180>>2]>>2]|0;if((a[e+156>>0]|0)!=1){e=l;break e}if((c[e+184>>2]|0)!=1){e=l;break e}if((c[e+176>>2]|0)!=1){e=l;break e}if(c[e+104>>2]|0){e=l;break e}if((c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)!=(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)){e=l;break e}n=0;e=ua(17,k|0,j|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break d}if(!(e<<24>>24)){e=l;break e}e=(c[j+16>>2]|0)+56|0;n=0;j=s;g=(c[k+16>>2]|0)+56|0;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));j=t;g=e;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));e=ua(18,s|0,t|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break d}if(e){e=l;break e}e=l+1|0;g=c[(c[v>>2]|0)+196>>2]|0;if((e|0)>=(c[g+(q<<6)>>2]|0)){f=l;break}else{f=l;l=e}}}else{f=p;e=h}while(0);if((e-p|0)>1){n=0;ga(6,d|0,q|0,p|0,f|0,0);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;break d}}}p=p+1|0;e=c[v>>2]|0;f=c[e+196>>2]|0}while((p|0)<(c[f+(q<<6)>>2]|0))}if((q|0)>1){q=q+-1|0;u=25}else{u=46;break}}while(0);if((u|0)==46){x=xB(50120,1,x|0,y|0)|0;y=C;n=0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1)e=C;else e=0}f:while(1){if(e){n=0;da(11,3,119382,w|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else break}e=c[v>>2]|0;if((c[e+180>>2]|0)<1)break a;else g=1;while(1){n=0;ia(85,c[(c[e+184>>2]|0)+(g<<2)>>2]|0);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue f}e=c[v>>2]|0;if((g|0)>=(c[e+180>>2]|0))break a;else g=g+1|0}}}while(0);pB(x|0);i=z;return}function Gi(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+16>>2]|0;if(!(a[e+112>>0]|0))f=b;else{do{b=c[e+116>>2]|0;e=c[b+16>>2]|0}while((a[e+112>>0]|0)!=0);f=b}b=c[d+16>>2]|0;if(a[b+112>>0]|0)do{d=c[b+116>>2]|0;b=c[d+16>>2]|0}while((a[b+112>>0]|0)!=0);if((a[e+153>>0]|0)==0?(a[b+153>>0]|0)==0:0){e=c[d>>2]&3;b=c[f>>2]&3;e=(_((c[(c[(c[((b|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((b|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0,(c[(c[(c[((e|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((e|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)|0)>0&1}else e=0;return e|0}function Hi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=a+16|0;j=c[(c[v>>2]|0)+196>>2]|0;h=c[j+(b<<6)+4>>2]|0;t=c[h+(d<<2)>>2]|0;g=d+1|0;do if((d|0)<(e|0)){r=(f|0)==1;s=t+16|0;q=g;while(1){p=c[h+(q<<2)>>2]|0;o=p+16|0;h=c[o>>2]|0;if(r){j=c[c[h+180>>2]>>2]|0;if(j)do{k=c[(c[s>>2]|0)+180>>2]|0;f=c[k>>2]|0;n=c[j>>2]|0;a:do if(!f){h=j+-48|0;u=13}else{l=j+-48|0;m=c[((n&3|0)==2?j:l)+40>>2]|0;d=0;while(1){d=d+1|0;if((c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(m|0))break a;f=c[k+(d<<2)>>2]|0;if(!f){h=l;u=13;break}}}while(0);if((u|0)==13){u=0;f=hg(t,c[((n&3|0)==2?j:h)+40>>2]|0,j)|0;h=c[o>>2]|0}h=c[c[h+172>>2]>>2]|0;if(h)do{og(h,f);dg(h);h=c[c[(c[o>>2]|0)+172>>2]>>2]|0}while((h|0)!=0);dg(j);h=c[o>>2]|0;j=c[c[h+180>>2]>>2]|0}while((j|0)!=0)}else{j=c[c[h+172>>2]>>2]|0;if(j)do{k=c[(c[s>>2]|0)+172>>2]|0;f=c[k>>2]|0;n=c[j>>2]|0;b:do if(!f){h=j+48|0;u=22}else{l=j+48|0;m=c[((n&3|0)==3?j:l)+40>>2]|0;d=0;while(1){d=d+1|0;if((c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)==(m|0))break b;f=c[k+(d<<2)>>2]|0;if(!f){h=l;u=22;break}}}while(0);if((u|0)==22){u=0;f=hg(c[((n&3|0)==3?j:h)+40>>2]|0,t,j)|0;h=c[o>>2]|0}h=c[c[h+180>>2]>>2]|0;if(h)do{og(h,f);dg(h);h=c[c[(c[o>>2]|0)+180>>2]>>2]|0}while((h|0)!=0);dg(j);h=c[o>>2]|0;j=c[c[h+172>>2]>>2]|0}while((j|0)!=0)}if((c[h+176>>2]|0)!=(0-(c[h+184>>2]|0)|0)){u=27;break}kg(a,p);if((q|0)>=(e|0)){u=3;break}h=c[(c[(c[v>>2]|0)+196>>2]|0)+(b<<6)+4>>2]|0;q=q+1|0}if((u|0)==3){i=c[(c[v>>2]|0)+196>>2]|0;break}else if((u|0)==27)Ia(119518,119562,115,119569)}else i=j;while(0);j=e+1|0;h=i+(b<<6)|0;if((j|0)<(c[h>>2]|0))do{h=c[i+(b<<6)+4>>2]|0;i=c[h+(j<<2)>>2]|0;c[h+(g<<2)>>2]=i;c[(c[i+16>>2]|0)+236>>2]=g;g=g+1|0;j=j+1|0;i=c[(c[v>>2]|0)+196>>2]|0;h=i+(b<<6)|0}while((j|0)<(c[h>>2]|0));c[h>>2]=g;c[(c[i+(b<<6)+4>>2]|0)+(g<<2)>>2]=0;return}function Ii(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+32|0;s=w+16|0;u=w;v=d+16|0;f=c[v>>2]|0;g=b[f+236>>1]|0;if(g<<16>>16<=(b[f+238>>1]|0)){g=g<<16>>16;while(1){c[(c[f+268>>2]|0)+(g<<2)>>2]=0;f=c[v>>2]|0;if((g|0)>=(b[f+238>>1]|0))break;else g=g+1|0}}vh(d);f=Rk(d)|0;if(f)do{r=c[f+16>>2]|0;g=(c[(c[v>>2]|0)+268>>2]|0)+(c[r+232>>2]<<2)|0;q=c[g>>2]|0;if(!((q|0)!=0?(c[(c[q+16>>2]|0)+236>>2]|0)<=(c[r+236>>2]|0):0))c[g>>2]=f;g=Lj(d,f)|0;if(g)do{j=g;while(1){h=c[(c[j+16>>2]|0)+172>>2]|0;if(!h)break;else j=h}h=c[j>>2]|0;o=j+-48|0;n=c[((h&3|0)==2?j:o)+40>>2]|0;m=c[n+16>>2]|0;l=c[m+232>>2]|0;k=c[g>>2]|0;r=g+-48|0;if((l|0)<(c[(c[(c[((k&3|0)==2?g:r)+40>>2]|0)+16>>2]|0)+232>>2]|0)){q=j;p=o;o=j;while(1){j=(c[(c[v>>2]|0)+268>>2]|0)+(l<<2)|0;l=c[j>>2]|0;if(!((l|0)!=0?(c[(c[l+16>>2]|0)+236>>2]|0)<=(c[m+236>>2]|0):0)){c[j>>2]=n;k=c[g>>2]|0;h=c[q>>2]|0}o=c[c[(c[(c[((h&3|0)==2?o:p)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;h=c[o>>2]|0;p=o+-48|0;n=c[((h&3|0)==2?o:p)+40>>2]|0;m=c[n+16>>2]|0;j=c[m+232>>2]|0;if((j|0)<(c[(c[(c[((k&3|0)==2?g:r)+40>>2]|0)+16>>2]|0)+232>>2]|0)){l=j;q=o}else break}}g=Nj(d,g)|0}while((g|0)!=0);f=Sk(d,f)|0}while((f|0)!=0);f=c[v>>2]|0;g=b[f+236>>1]|0;a:do if(g<<16>>16>(b[f+238>>1]|0))e=f;else{h=f;f=g<<16>>16;while(1){h=c[(c[h+268>>2]|0)+(f<<2)>>2]|0;g=h+16|0;r=c[(c[g>>2]|0)+236>>2]|0;if((c[(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(f<<6)+4>>2]|0)+(r<<2)>>2]|0)!=(h|0))break;g=c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(f<<6)+4>>2]|0;r=c[v>>2]|0;g=g+(c[(c[(c[(c[r+268>>2]|0)+(f<<2)>>2]|0)+16>>2]|0)+236>>2]<<2)|0;r=c[r+196>>2]|0;c[r+(f<<6)+4>>2]=g;if((c[r+(f<<6)>>2]|0)>0){g=c[g>>2]|0;b:do if(!g)g=-1;else{k=0;j=-1;while(1){h=c[g+16>>2]|0;c:do if(!(a[h+156>>0]|0))if(!(ql(d,g)|0)){g=j;break b}else h=k;else{g=c[c[h+172>>2]>>2]|0;while(1){if(!g){h=j;break c}h=c[(c[g+16>>2]|0)+116>>2]|0;if(!h)break;else g=h}if(!(ql(d,c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)|0))h=j;else{h=(ql(d,c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0)|0)==0;h=h?j:k}}while(0);k=k+1|0;g=c[(c[v>>2]|0)+196>>2]|0;if((k|0)>=(c[g+(f<<6)>>2]|0)){g=h;break b}g=c[(c[g+(f<<6)+4>>2]|0)+(k<<2)>>2]|0;if(!g){g=h;break}else j=h}}while(0);if((g|0)==-1)t=35}else t=35;if((t|0)==35){t=0;c[s>>2]=ok(d)|0;c[s+4>>2]=f;dj(0,119482,s)|0;g=-1}h=c[v>>2]|0;c[(c[h+196>>2]|0)+(f<<6)>>2]=g+1;if((f|0)<(b[h+238>>1]|0))f=f+1|0;else{e=h;break a}}s=ok(h)|0;t=c[(c[g>>2]|0)+236>>2]|0;c[u>>2]=s;c[u+4>>2]=t;c[u+8>>2]=f;dj(1,119424,u)|0;Ka(50120,1)}while(0);if((c[e+180>>2]|0)>=1){f=1;while(1){Ii(c[(c[e+184>>2]|0)+(f<<2)>>2]|0);e=c[v>>2]|0;if((f|0)>=(c[e+180>>2]|0))break;else f=f+1|0}}i=w;return}function Ji(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+576|0;y=z;w=z+48|0;e=z+32|0;q=z+64|0;c[e>>2]=q;c[e+4>>2]=q+512;c[e+12>>2]=0;c[e+8>>2]=0;c[w>>2]=e;u=w+4|0;c[u>>2]=e;v=w+8|0;c[v>>2]=q;q=(a[119582]|0)+1<<24>>24;a[119582]=q<<24>>24==0?1:q;q=b+16|0;f=c[q>>2]|0;c[f+220>>2]=0;c[f+232>>2]=0;f=Rk(b)|0;if(f){m=(d|0)>0;n=y+8|0;o=y+16|0;p=y+24|0;while(1){if(m?(s=c[f+16>>2]|0,t=c[s+212>>2]|0,(t|0)!=0):0){x=c[(c[(c[t+16>>2]|0)+268>>2]|0)+(c[s+232>>2]<<2)>>2]|0;e=7}else e=6;if((e|0)==6?(e=0,(f|0)==(Ms(f)|0)):0){x=f;e=7}if((e|0)==7?(0,(a[(c[x+16>>2]|0)+157>>0]|0)!=(a[119582]|0)):0){c[(c[q>>2]|0)+192>>2]=0;c[12569]=0;Ki(w,x);a:while(1){e=c[v>>2]|0;d=c[u>>2]|0;if((e|0)==(c[d>>2]|0)){if((d|0)==(c[w>>2]|0))break;e=c[d+8>>2]|0;c[u>>2]=e;e=c[e+4>>2]|0;c[v>>2]=e}l=e+-4|0;c[v>>2]=l;l=c[l>>2]|0;if(!l)break;h=l+16|0;g=c[h>>2]|0;e=g+157|0;d=a[119582]|0;if((a[e>>0]|0)==d<<24>>24)continue;j=c[q>>2]|0;k=j+232|0;c[k>>2]=(c[k>>2]|0)+1;a[e>>0]=d;d=c[12569]|0;e=g+168|0;if(!d){c[e>>2]=0;c[j+192>>2]=l}else{c[e>>2]=d;c[(c[(c[12569]|0)+16>>2]|0)+164>>2]=l}c[12569]=l;h=c[h>>2]|0;c[h+164>>2]=0;g=h+180|0;k=c[g+4>>2]|0;j=y;c[j>>2]=c[g>>2];c[j+4>>2]=k;j=h+172|0;k=c[j+4>>2]|0;g=n;c[g>>2]=c[j>>2];c[g+4>>2]=k;g=h+188|0;k=c[g+4>>2]|0;j=o;c[j>>2]=c[g>>2];c[j+4>>2]=k;h=h+196|0;j=c[h+4>>2]|0;k=p;c[k>>2]=c[h>>2];c[k+4>>2]=j;k=3;while(1){e=c[y+(k<<3)>>2]|0;if((e|0)!=0?(j=c[y+(k<<3)+4>>2]|0,r=j+-1|0,(j|0)>0):0){h=e+(r<<2)|0;j=r;while(1){d=c[h>>2]|0;g=c[d>>2]&3;e=c[((g|0)==2?d:d+-48|0)+40>>2]|0;if((e|0)==(l|0))e=c[((g|0)==3?d:d+48|0)+40>>2]|0;if((a[(c[e+16>>2]|0)+157>>0]|0)!=(a[119582]|0)?(e|0)==(Ms(e)|0):0)Ki(w,e);if((j|0)>0){h=h+-4|0;j=j+-1|0}else break}}if((k|0)>0)k=k+-1|0;else continue a}}d=c[q>>2]|0;l=d+220|0;g=c[l>>2]|0;e=g+1|0;c[l>>2]=e;d=c[d+216>>2]|0;if(!d)e=aq(e<<2)|0;else e=cq(d,e<<2)|0;l=c[q>>2]|0;c[l+216>>2]=e;c[e+(g<<2)>>2]=c[l+192>>2]}f=Sk(b,f)|0;if(!f)break}e=c[w>>2]|0}e=c[e+12>>2]|0;if(e)do{y=e;e=c[e+12>>2]|0;pB(c[y>>2]|0);pB(y)}while((e|0)!=0);i=z;return}function Ki(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+8|0;g=l;k=b+8|0;f=c[k>>2]|0;j=b+4|0;b=c[j>>2]|0;if((f|0)==(c[b+4>>2]|0)){f=c[b+12>>2]|0;if(!f){f=$p(16)|0;if(!f)dj(1,122642,g)|0;c[f+8>>2]=c[j>>2];c[f+12>>2]=0;b=$p(4e6)|0;c[f>>2]=b;if(!b){dj(1,119583,h)|0;b=c[f>>2]|0}c[f+4>>2]=b+4e6;c[(c[j>>2]|0)+12>>2]=f}c[j>>2]=f;f=c[f>>2]|0;c[k>>2]=f}a[(c[e+16>>2]|0)+157>>0]=(d[119582]|0)+1;c[k>>2]=f+4;c[f>>2]=e;i=l;return}-function Dx(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d+12|0;a=b[h>>1]|0;if(a<<16>>16){i=d+8|0;if(a<<16>>16>0){f=0;g=c[i>>2]|0;while(1){e=c[g>>2]|0;if(e){pB(e);a=b[h>>1]|0}f=f+1|0;if((f|0)>=(a<<16>>16|0))break;else g=g+56|0}}pB(c[i>>2]|0)}pB(d);return}function Ex(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;if(!(a[164138]|0)){a[164138]=1;c[d>>2]=b;c[d+4>>2]=0;dj(1,164139,d)|0;pb()}else{i=e;return}}function Fx(a,b,d){a=a|0;b=b|0;d=d|0;d=i;i=i+16|0;if(!(c[22505]|0)){dj(0,164155,d)|0;c[22505]=(c[22505]|0)+1}i=d;return 1}function Gx(){return 1}function Hx(){return -1}function Ix(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,l=0.0,m=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+32|0;w=B+16|0;y=B;z=4;v=oB(40)|0;c[v>>2]=0;x=c[e>>2]|0;u=c[e+4>>2]|0;z=xB(90024,1,v|0,z|0)|0;v=C;n=0;e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1)e=C;else e=0;while(1){if(e){e=-1;break}a[k>>0]=a[f>>0];a[k+1>>0]=a[f+1>>0];a[k+2>>0]=a[f+2>>0];a[k+3>>0]=a[f+3>>0];a[k+4>>0]=a[f+4>>0];a[k+5>>0]=a[f+5>>0];a[k+6>>0]=a[f+6>>0];a[k+7>>0]=a[f+7>>0];r=+h[k>>3];m=f+8|0;a[k>>0]=a[m>>0];a[k+1>>0]=a[m+1>>0];a[k+2>>0]=a[m+2>>0];a[k+3>>0]=a[m+3>>0];a[k+4>>0]=a[m+4>>0];a[k+5>>0]=a[m+5>>0];a[k+6>>0]=a[m+6>>0];a[k+7>>0]=a[m+7>>0];l=+h[k>>3];p=r*r+l*l;if(p>1.0e-06){n=0;q=+ja(1,+p);e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}p=r/q;l=l/q}else p=r;h[f>>3]=p;h[m>>3]=l;t=f+16|0;m=f+16|0;a[k>>0]=a[m>>0];a[k+1>>0]=a[m+1>>0];a[k+2>>0]=a[m+2>>0];a[k+3>>0]=a[m+3>>0];a[k+4>>0]=a[m+4>>0];a[k+5>>0]=a[m+5>>0];a[k+6>>0]=a[m+6>>0];a[k+7>>0]=a[m+7>>0];q=+h[k>>3];s=f+24|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];l=+h[k>>3];p=q*q+l*l;if(p>1.0e-06){n=0;r=+ja(1,+p);e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}p=q/r;l=l/r}else p=q;h[m>>3]=p;h[s>>3]=l;c[22545]=0;n=0;ia(97,4);e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}e=c[22545]|0;c[22545]=e+1;e=(c[22546]|0)+(e<<4)|0;c[e>>2]=c[x>>2];c[e+4>>2]=c[x+4>>2];c[e+8>>2]=c[x+8>>2];c[e+12>>2]=c[x+12>>2];n=0;c[y>>2]=c[f>>2];c[y+4>>2]=c[f+4>>2];c[y+8>>2]=c[f+8>>2];c[y+12>>2]=c[f+12>>2];c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];e=la(1,b|0,d|0,x|0,u|0,y|0,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){m=zB(c[j>>2]|0,z|0,v|0)|0;if(!m)Ka(j|0,o|0);C=o}else m=-1;if((m|0)==1)e=C;else{A=12;break}}if((A|0)==12)if((e|0)==-1)e=-1;else{c[g+4>>2]=c[22545];c[g>>2]=c[22546];e=0}pB(z|0);i=B;return e|0}function Jx(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+32|0;e=f+16|0;d=f;if((c[22549]|0)<(a|0)){b=c[22546]|0;if(!b){e=oB(a<<4)|0;c[22546]=e;if(!e){e=c[22667]|0;c[d>>2]=164216;c[d+4>>2]=531;c[d+8>>2]=164497;Bz(e,164224,d)|0;Ka(90024,1)}}else{d=rB(b,a<<4)|0;c[22546]=d;if(!d){d=c[22667]|0;c[e>>2]=164216;c[e+4>>2]=537;c[e+8>>2]=164515;Bz(d,164224,e)|0;Ka(90024,1)}}c[22549]=a}i=f;return}function Kx(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0.0,ra=0.0;pa=i;i=i+128|0;ma=pa+96|0;oa=pa+72|0;ka=pa+32|0;ja=pa;na=pa+56|0;l=c[22548]|0;do if((c[22547]|0)<(f|0)){if(!l){l=oB(f*40|0)|0;c[22548]=l;if(!l){l=-1;break}}else{l=rB(l,f*40|0)|0;c[22548]=l;if(!l){l=-1;break}}c[22547]=f;la=6}else la=6;while(0);do if((la|0)==6){h[l>>3]=0.0;ca=(f|0)>1;if(ca){m=+h[l>>3];r=1;do{Z=r+-1|0;Y=e+(Z<<4)|0;a[k>>0]=a[Y>>0];a[k+1>>0]=a[Y+1>>0];a[k+2>>0]=a[Y+2>>0];a[k+3>>0]=a[Y+3>>0];a[k+4>>0]=a[Y+4>>0];a[k+5>>0]=a[Y+5>>0];a[k+6>>0]=a[Y+6>>0];a[k+7>>0]=a[Y+7>>0];$=+h[k>>3];Z=e+(Z<<4)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];ba=+h[k>>3];Z=e+(r<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=+h[k>>3];Z=e+(r<<4)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=$-aa;ba=ba-+h[k>>3];m=m+ +O(+(aa*aa+ba*ba));h[l+(r*40|0)>>3]=m;r=r+1|0}while((r|0)!=(f|0));if(ca){r=l+((f+-1|0)*40|0)|0;s=1;do{Z=l+(s*40|0)|0;h[Z>>3]=+h[Z>>3]/+h[r>>3];s=s+1|0}while((s|0)!=(f|0))}}u=(f|0)>0;a:do if(u){m=+h[g>>3];t=g+8|0;n=+h[t>>3];o=+h[j>>3];s=j+8|0;p=+h[s>>3];r=0;do{aa=+h[l+(r*40|0)>>3];ba=1.0-aa;ba=ba*(aa*3.0*ba);h[l+(r*40|0)+8>>3]=m*ba;h[l+(r*40|0)+16>>3]=n*ba;ba=+h[l+(r*40|0)>>3];ba=(1.0-ba)*(ba*(ba*3.0));h[l+(r*40|0)+24>>3]=o*ba;h[l+(r*40|0)+32>>3]=p*ba;r=r+1|0}while((r|0)!=(f|0));D=+h[j>>3];E=+h[s>>3];B=+h[g>>3];C=+h[t>>3];if(u){a[k>>0]=a[e>>0];a[k+1>>0]=a[e+1>>0];a[k+2>>0]=a[e+2>>0];a[k+3>>0]=a[e+3>>0];a[k+4>>0]=a[e+4>>0];a[k+5>>0]=a[e+5>>0];a[k+6>>0]=a[e+6>>0];a[k+7>>0]=a[e+7>>0];x=+h[k>>3];r=e+8|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];y=+h[k>>3];r=f+-1|0;Z=e+(r<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];z=+h[k>>3];r=e+(r<<4)+8|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];A=+h[k>>3];m=x;n=y;w=0.0;v=0.0;q=0.0;r=0;p=0.0;o=0.0;while(1){Z=l+(r*40|0)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];W=+h[k>>3];Z=l+(r*40|0)+16|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];X=+h[k>>3];w=w+(W*W+X*X);Z=l+(r*40|0)+24|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];_=+h[k>>3];Z=l+(r*40|0)+32|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=+h[k>>3];q=q+(W*_+X*aa);v=v+(_*_+aa*aa);$=+h[l+(r*40|0)>>3];ba=1.0-$;V=ba*ba*(ba+$*3.0);ba=$*$*($+ba*3.0);$=m-(x*V+z*ba);ba=n-(y*V+A*ba);p=p+(W*$+X*ba);o=o+(_*$+aa*ba);r=r+1|0;if((r|0)==(f|0)){x=D;y=E;break a}Z=e+(r<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];m=+h[k>>3];Z=e+(r<<4)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];n=+h[k>>3]}}else{x=D;y=E;w=0.0;v=0.0;q=0.0;p=0.0;o=0.0}}else{B=+h[g>>3];C=+h[g+8>>3];x=+h[j>>3];y=+h[j+8>>3];w=0.0;v=0.0;q=0.0;p=0.0;o=0.0}while(0);m=v*w-q*q;n=m>=0.0?m:-m;if(n>=1.0e-06?(H=(v*p-q*o)/m,I=(w*o-q*p)/m,!(n<1.0e-06|H<=0.0|I<=0.0)):0){P=f+-1|0;N=e+8|0;Y=N;Z=e;_=+h[e>>3];$=+h[N>>3];aa=+h[e+(P<<4)>>3];ba=+h[e+(P<<4)+8>>3];m=H;n=I}else{Y=f+-1|0;Z=e+(Y<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=+h[k>>3];Y=e+(Y<<4)+8|0;a[k>>0]=a[Y>>0];a[k+1>>0]=a[Y+1>>0];a[k+2>>0]=a[Y+2>>0];a[k+3>>0]=a[Y+3>>0];a[k+4>>0]=a[Y+4>>0];a[k+5>>0]=a[Y+5>>0];a[k+6>>0]=a[Y+6>>0];a[k+7>>0]=a[Y+7>>0];ba=+h[k>>3];a[k>>0]=a[e>>0];a[k+1>>0]=a[e+1>>0];a[k+2>>0]=a[e+2>>0];a[k+3>>0]=a[e+3>>0];a[k+4>>0]=a[e+4>>0];a[k+5>>0]=a[e+5>>0];a[k+6>>0]=a[e+6>>0];a[k+7>>0]=a[e+7>>0];_=+h[k>>3];Y=e+8|0;a[k>>0]=a[Y>>0];a[k+1>>0]=a[Y+1>>0];a[k+2>>0]=a[Y+2>>0];a[k+3>>0]=a[Y+3>>0];a[k+4>>0]=a[Y+4>>0];a[k+5>>0]=a[Y+5>>0];a[k+6>>0]=a[Y+6>>0];a[k+7>>0]=a[Y+7>>0];$=+h[k>>3];m=aa-_;n=ba-$;n=+O(+(m*m+n*n))/3.0;Z=e;m=n}X=B*m;V=C*m;W=x*n;U=y*n;K=(f|0)==2;L=(d|0)>0;M=ma+24|0;N=ma+16|0;P=ma+8|0;Q=_*3.0;R=$*3.0;S=4.0;T=4.0;l=1;b:while(1){p=_+X*S/3.0;o=$+V*S/3.0;n=aa-W*T/3.0;m=ba-U*T/3.0;if(l){C=p-_;D=o-$;E=n-p;H=m-o;I=aa-n;x=ba-m;x=+O(+(C*C+D*D))+0.0+ +O(+(E*E+H*H))+ +O(+(I*I+x*x));if(ca){v=+h[Z>>3];w=+h[Y>>3];l=1;q=0.0;do{H=v;v=+h[e+(l<<4)>>3];H=v-H;I=w;w=+h[e+(l<<4)+8>>3];I=w-I;q=q+ +O(+(H*H+I*I));l=l+1|0}while((l|0)!=(f|0))}else q=0.0;if(x<q+-.001)break}if(!L){la=71;break}y=n*3.0;x=aa+p*3.0-(_+y);y=Q+y-p*6.0;z=(p-_)*3.0;B=m*3.0;A=ba+o*3.0-($+B);B=R+B-o*6.0;C=(o-$)*3.0;J=0;c:while(1){D=+h[b+(J<<5)>>3];E=+h[b+(J<<5)+8>>3];H=+h[b+(J<<5)+16>>3];I=+h[b+(J<<5)+24>>3];v=H-D;w=I-E;d:do if(v==0.0){h[M>>3]=x;h[N>>3]=y;h[P>>3]=z;h[ma>>3]=_-D;G=Sx(ma,oa)|0;if(!(w==0.0)){if((G|0)==4){l=4;break}if((G|0)>0){l=0;r=0}else{l=0;break}while(1){q=+h[oa+(r<<3)>>3];if(q>=0.0&q<=1.0?(h[M>>3]=A,h[N>>3]=B,h[P>>3]=C,h[ma>>3]=$,v=($+q*(C+q*(B+A*q))-E)/w,v>=0.0&v<=1.0):0){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0;if((r|0)==(G|0))break d}}h[M>>3]=A;h[N>>3]=B;h[P>>3]=C;h[ma>>3]=$-E;F=Sx(ma,ka)|0;l=(F|0)==4;if((G|0)==4){if(l){l=4;break}if((F|0)>0){l=0;r=0}else{l=0;break}while(1){q=+h[ka+(r<<3)>>3];if(q>=0.0&q<=1.0){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0;if((r|0)==(F|0))break d}}r=(G|0)>0;if(l){if(r){l=0;r=0}else{l=0;break}while(1){q=+h[oa+(r<<3)>>3];if(q>=0.0&q<=1.0){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0;if((r|0)==(G|0))break d}}if(r){t=(F|0)>0;l=0;u=0;do{if(t){q=+h[oa+(u<<3)>>3];s=!(q<=1.0)|!(q>=0.0);r=0;do{if(!(s|q!=+h[ka+(r<<3)>>3])){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0}while((r|0)!=(F|0))}u=u+1|0}while((u|0)!=(G|0))}else l=0}else{q=w/v;w=$-_*q;qa=o-p*q;ra=(m-n*q)*3.0;h[M>>3]=ba-aa*q+qa*3.0-(w+ra);h[N>>3]=w*3.0+ra-qa*6.0;h[P>>3]=(qa-w)*3.0;h[ma>>3]=D*q-E+w;r=Sx(ma,oa)|0;if((r|0)!=4)if((r|0)>0){l=0;s=0;do{q=+h[oa+(s<<3)>>3];if(q>=0.0&q<=1.0?(h[M>>3]=x,h[N>>3]=y,h[P>>3]=z,h[ma>>3]=_,ra=(_+q*(z+q*(y+x*q))-D)/v,ra>=0.0&ra<=1.0):0){h[ja+(l<<3)>>3]=q;l=l+1|0}s=s+1|0}while((s|0)!=(r|0))}else l=0;else l=4}while(0);if((l|0)!=4&(l|0)>0){r=0;do{q=+h[ja+(r<<3)>>3];if((!(q<1.0e-06|q>.999999)?(w=q*(q*q),ia=q*3.0,qa=1.0-q,ra=qa*(q*ia),ia=qa*(ia*qa),qa=qa*(qa*qa),ha=aa*w+(n*ra+(_*qa+p*ia)),ia=ba*w+(m*ra+($*qa+o*ia)),qa=ha-D,ra=ia-E,!(qa*qa+ra*ra<.001)):0)?(qa=ha-H,ra=ia-I,!(qa*qa+ra*ra<.001)):0)break c;r=r+1|0}while((r|0)<(l|0))}J=J+1|0;if((J|0)>=(d|0)){la=71;break b}}if(S==0.0&T==0.0){da=p;ea=o;fa=n;ga=m;la=73;break}l=S>.01;S=l?S*.5:0.0;T=l?T*.5:0.0;l=0}if((la|0)==71){Jx((c[22545]|0)+4|0);na=c[22546]|0;l=c[22545]|0;h[na+(l<<4)>>3]=p;e=l+1|0;h[na+(l<<4)+8>>3]=o;h[na+(e<<4)>>3]=n;oa=l+2|0;h[na+(e<<4)+8>>3]=m;h[na+(oa<<4)>>3]=aa;h[na+(oa<<4)+8>>3]=ba;c[22545]=l+3;l=0;break}if((la|0)==73?K:0){Jx((c[22545]|0)+4|0);na=c[22546]|0;l=c[22545]|0;h[na+(l<<4)>>3]=da;e=l+1|0;h[na+(l<<4)+8>>3]=ea;h[na+(e<<4)>>3]=fa;oa=l+2|0;h[na+(e<<4)+8>>3]=ga;h[na+(oa<<4)>>3]=aa;h[na+(oa<<4)+8>>3]=ba;c[22545]=l+3;l=0;break}v=X*.3333333333333333+_;q=V*.3333333333333333+$;p=aa-W*.3333333333333333;m=ba-U*.3333333333333333;r=f+-1|0;if((r|0)>1){s=c[22548]|0;u=1;o=-1.0;l=-1;while(1){ha=+h[s+(u*40|0)>>3];ra=1.0-ha;qa=ra*(ra*ra);ia=ha*3.0;n=ra*(ia*ra);ia=ra*(ha*ia);ha=ha*(ha*ha);t=e+(u<<4)|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ra=+h[k>>3];t=e+(u<<4)+8|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ra=ra-(aa*ha+(p*ia+(_*qa+v*n)));n=+h[k>>3]-(ba*ha+(m*ia+($*qa+q*n)));n=+O(+(ra*ra+n*n));t=n>o;l=t?u:l;u=u+1|0;if((u|0)==(r|0))break;else o=t?n:o}}else l=-1;s=e+(l<<4)|0;la=l+-1|0;ka=e+(la<<4)|0;a[k>>0]=a[ka>>0];a[k+1>>0]=a[ka+1>>0];a[k+2>>0]=a[ka+2>>0];a[k+3>>0]=a[ka+3>>0];a[k+4>>0]=a[ka+4>>0];a[k+5>>0]=a[ka+5>>0];a[k+6>>0]=a[ka+6>>0];a[k+7>>0]=a[ka+7>>0];m=+h[k>>3];la=e+(la<<4)+8|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];o=+h[k>>3];a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];p=+h[k>>3];la=e+(l<<4)+8|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];q=+h[k>>3];m=p-m;o=q-o;n=m*m+o*o;if(n>1.0e-06){ra=+O(+n);m=m/ra;o=o/ra}r=l+1|0;la=e+(r<<4)|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];n=+h[k>>3];la=e+(r<<4)+8|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];p=n-p;q=+h[k>>3]-q;n=p*p+q*q;if(n>1.0e-06){ra=+O(+n);n=p/ra;q=q/ra}else n=p;p=m+n;m=o+q;n=m*m+p*p;if(n>1.0e-06){ra=+O(+n);n=p/ra;m=m/ra}else n=p;h[na>>3]=n;h[na+8>>3]=m;c[oa>>2]=c[g>>2];c[oa+4>>2]=c[g+4>>2];c[oa+8>>2]=c[g+8>>2];c[oa+12>>2]=c[g+12>>2];c[ma>>2]=c[na>>2];c[ma+4>>2]=c[na+4>>2];c[ma+8>>2]=c[na+8>>2];c[ma+12>>2]=c[na+12>>2];Kx(b,d,e,r,oa,ma)|0;c[oa>>2]=c[na>>2];c[oa+4>>2]=c[na+4>>2];c[oa+8>>2]=c[na+8>>2];c[oa+12>>2]=c[na+12>>2];c[ma>>2]=c[j>>2];c[ma+4>>2]=c[j+4>>2];c[ma+8>>2]=c[j+8>>2];c[ma+12>>2]=c[j+12>>2];Kx(b,d,s,f-l|0,oa,ma)|0;l=0}while(0);i=pa;return l|0}function Lx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0.0,m=0.0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,D=0.0,E=0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ga=0,ha=0,ja=0;ja=i;i=i+176|0;ea=ja+144|0;ca=ja+128|0;ba=ja+112|0;aa=ja+96|0;$=ja+80|0;_=ja+64|0;Z=ja+48|0;Y=ja+32|0;X=ja+16|0;W=ja;ha=4;fa=oB(40)|0;c[fa>>2]=0;V=ja+160|0;ha=xB(90200,1,fa|0,ha|0)|0;fa=C;n=0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1)e=C;else e=0;a:while(1){if(e){e=-2;break}q=a+4|0;j=c[q>>2]|0;if((c[22589]|0)<(j|0)){e=c[22590]|0;if(!e){n=0;e=na(27,j<<3|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22590]=e;if(!e){e=c[22667]|0;n=0;c[W>>2]=164243;c[W+4>>2]=523;c[W+8>>2]=164254;da(13,e|0,164224,W|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}n=0;e=na(27,j<<2|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22591]=e;if(!e){e=c[22667]|0;n=0;c[X>>2]=164243;c[X+4>>2]=527;c[X+8>>2]=164273;da(13,e|0,164224,X|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}}else{n=0;e=ua(38,e|0,j<<3|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22590]=e;if(!e){e=c[22667]|0;n=0;c[Y>>2]=164243;c[Y+4>>2]=533;c[Y+8>>2]=164293;da(13,e|0,164224,Y|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}n=0;e=ua(38,c[22591]|0,j<<2|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22591]=e;if(!e){e=c[22667]|0;n=0;c[Z>>2]=164243;c[Z+4>>2]=539;c[Z+8>>2]=164313;da(13,e|0,164224,Z|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}}c[22589]=j}c[22592]=0;c[22593]=0;e=c[q>>2]|0;k=e<<1;f=c[22594]|0;if((f|0)<(k|0)){f=c[22595]|0;do if(!f){n=0;f=na(27,e<<3|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}c[22595]=f;if(!f){e=c[22667]|0;n=0;c[_>>2]=164243;c[_+4>>2]=573;c[_+8>>2]=164334;da(13,e|0,164224,_|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue a}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue a}}else{n=0;e=ua(38,f|0,e<<3|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue a}c[22595]=e;if(e){e=c[q>>2]|0;break}e=c[22667]|0;n=0;c[$>>2]=164243;c[$+4>>2]=580;c[$+8>>2]=164356;da(13,e|0,164224,$|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue a}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue a}while(0);c[22594]=k;f=k}p=(f|0)/2|0;c[22596]=p;c[22597]=p+-1;p=(e|0)>0;k=c[a>>2]|0;if(p){f=-1;m=s;j=0;while(1){l=+h[k+(j<<4)>>3];g=m>l;f=g?j:f;j=j+1|0;if((j|0)>=(e|0))break;else m=g?l:m}}else f=-1;H=+h[k+(f<<4)>>3];J=+h[k+(f<<4)+8>>3];N=((f|0)==0?e:f)+-1|0;G=+h[k+(N<<4)>>3];M=(f|0)==(e+-1|0)?0:f+1|0;F=+h[k+(M<<4)>>3];I=+h[k+(M<<4)+8>>3];if(!(G==H&H==F&I>J)?(F-H)*(+h[k+(N<<4)+8>>3]-J)-(G-H)*(I-J)>0.0:0){if(p){f=e;j=0;do{g=c[a>>2]|0;if(!(((j|0)>0?(O=j+-1|0,+h[g+(j<<4)>>3]==+h[g+(O<<4)>>3]):0)?+h[g+(j<<4)+8>>3]==+h[g+(O<<4)+8>>3]:0)){N=c[22592]|0;c[(c[22590]|0)+(N<<3)>>2]=g+(j<<4);M=c[22590]|0;c[M+(N<<3)+4>>2]=M+(((N|0)%(f|0)|0)<<3);c[(c[22591]|0)+(N<<2)>>2]=(c[22590]|0)+(N<<3);c[22592]=N+1;f=c[q>>2]|0}j=j+1|0}while((j|0)<(f|0))}}else ga=40;b:do if((ga|0)==40?(ga=0,p):0){j=e;g=e;while(1){f=g+-1|0;e=c[a>>2]|0;if(!(((g|0)<=(j+-1|0)?+h[e+(f<<4)>>3]==+h[e+(g<<4)>>3]:0)?+h[e+(f<<4)+8>>3]==+h[e+(g<<4)+8>>3]:0)){N=c[22592]|0;c[(c[22590]|0)+(N<<3)>>2]=e+(f<<4);M=c[22590]|0;c[M+(N<<3)+4>>2]=M+(((N|0)%(j|0)|0)<<3);c[(c[22591]|0)+(N<<2)>>2]=(c[22590]|0)+(N<<3);c[22592]=N+1}if((g|0)<=1)break b;j=c[q>>2]|0;g=f}}while(0);N=c[22591]|0;e=c[22592]|0;c:do if((e|0)>3){d:while(1){K=e;e=e+-1|0;L=0;e:while(1){M=L;L=L+1|0;f=(L|0)%(K|0)|0;t=(M+2|0)%(K|0)|0;x=c[c[N+(((M+e|0)%(K|0)|0)<<2)>>2]>>2]|0;u=c[N+(M<<2)>>2]|0;v=c[u>>2]|0;w=c[N+(f<<2)>>2]|0;E=c[w>>2]|0;m=+h[x+8>>3];F=+h[v+8>>3];y=+h[E>>3];G=+h[v>>3];z=y-G;A=+h[E+8>>3];B=A-F;D=+h[x>>3];x=c[N+(t<<2)>>2]|0;E=c[x>>2]|0;H=+h[E+8>>3];I=F-H;J=+h[E>>3];if((m-F)*z-B*(D-G)>0.0){l=G-J;if(I*(D-J)-(m-H)*l>0.0?z*(H-F)-B*(J-G)>0.0:0)ga=60}else{l=G-J;D=I*(y-J)-(A-H)*l;if(D<0.0&!(D>0.0))ga=60}f:do if((ga|0)==60){ga=0;r=0;while(1){g=r;r=r+1|0;j=(r|0)==(K|0)?0:r;g:do if(!((j|0)==(t|0)|((g|0)==(t|0)|((g|0)==(M|0)|(j|0)==(M|0))))){q=c[c[N+(g<<2)>>2]>>2]|0;p=c[c[N+(j<<2)>>2]>>2]|0;m=+h[q>>3];y=+h[q+8>>3];D=I*(m-J)-l*(y-H);j=D>0.0;do if((!(!(D<0.0)&(j^1))?(P=+h[p>>3],Q=+h[p+8>>3],D=I*(P-J)-l*(Q-H),R=D>0.0,!(!(D<0.0)&(R^1))):0)?(S=y-Q,T=m-P,D=(G-P)*S-T*(F-Q),U=D>0.0,!(!(D<0.0)&(U^1))):0){D=(J-P)*S-T*(H-Q);g=D>0.0;if(!(D<0.0)&(g^1))break;if((j^R)&(U^g))break f;else break g}while(0);n=0;g=da(19,v|0,E|0,q|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f;n=0;g=da(19,v|0,E|0,p|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f;n=0;g=da(19,q|0,p|0,v|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f;n=0;g=da(19,q|0,p|0,E|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f}while(0);if((r|0)>=(K|0))break e}}while(0);if((L|0)>=(K|0))break d}n=0;pa(66,u|0,w|0,x|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}if((f|0)<(e|0))do{M=f;f=f+1|0;c[N+(M<<2)>>2]=c[N+(f<<2)>>2]}while((f|0)!=(e|0));if((e|0)<=3){ga=81;break c}}e=c[22667]|0;n=0;c[aa>>2]=164243;c[aa+4>>2]=324;c[aa+8>>2]=164379;da(13,e|0,164224,aa|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue a}}else ga=81;while(0);if((ga|0)==81){ga=0;n=0;pa(66,c[N>>2]|0,c[N+4>>2]|0,c[N+8>>2]|0);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}}E=c[22593]|0;x=(E|0)>0;h:do if(x){u=0;do{v=u;u=u+1|0;f=(u|0)<(E|0);if(f)w=u;else break;do{r=0;do{t=0;do{g=c[22598]|0;j=g+(v*52|0)|0;k=g+(w*52|0)|0;p=c[c[g+(v*52|0)+4+(r<<4)>>2]>>2]|0;q=c[c[g+(w*52|0)+4+(t<<4)>>2]>>2]|0;if((p|0)==(q|0)){e=c[c[g+(w*52|0)+4+(t<<4)+4>>2]>>2]|0;if((c[c[g+(v*52|0)+4+(r<<4)+4>>2]>>2]|0)==(e|0))ga=94;else ga=92}else{e=c[c[g+(w*52|0)+4+(t<<4)+4>>2]>>2]|0;ga=92}if(((ga|0)==92?(ga=0,(p|0)==(e|0)):0)?(c[c[g+(v*52|0)+4+(r<<4)+4>>2]>>2]|0)==(q|0):0)ga=94;if((ga|0)==94){ga=0;c[g+(v*52|0)+4+(r<<4)+12>>2]=k;c[g+(w*52|0)+4+(t<<4)+12>>2]=j}t=t+1|0}while((t|0)!=3);r=r+1|0}while((r|0)!=3);w=w+1|0}while((w|0)!=(E|0))}while(f);if(x){e=0;while(1){n=0;f=ua(43,e|0,b|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}if(f){K=e;break h}e=e+1|0;if((e|0)>=(E|0)){K=e;break}}}else K=0}else K=0;while(0);if((K|0)==(E|0)){e=c[22667]|0;n=0;c[ba>>2]=164243;c[ba+4>>2]=192;c[ba+8>>2]=164400;da(13,e|0,164224,ba|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=104;break}}L=b+16|0;i:do if(x){e=0;while(1){n=0;f=ua(43,e|0,L|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}if(f)break i;e=e+1|0;if((e|0)>=(E|0))break}}else e=0;while(0);if((e|0)==(E|0)){e=c[22667]|0;n=0;c[ca>>2]=164243;c[ca+4>>2]=200;c[ca+8>>2]=164433;da(13,e|0,164224,ca|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=110;break}}n=0;f=ua(44,K|0,e|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}if(!f){e=c[22667]|0;n=0;c[ea>>2]=164243;c[ea+4>>2]=207;c[ea+8>>2]=164471;da(13,e|0,164224,ea|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ia(98,2);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=115;break}}if((K|0)==(e|0)){n=0;ia(98,2);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=118;break}}c[V>>2]=b;f=V+4|0;c[f>>2]=0;e=V+8|0;c[e>>2]=L;c[V+12>>2]=0;k=c[22597]|0;g=c[22596]|0;j=c[22595]|0;if((k|0)>=(g|0))c[f>>2]=c[j+(g<<2)>>2];f=g+-1|0;c[22596]=f;c[j+(f<<2)>>2]=V;c[22600]=f;j:do if((K|0)==-1){f=0;g=e}else{x=b+24|0;q=f;t=f;w=K;while(1){v=c[22598]|0;c[v+(w*52|0)>>2]=2;u=v+(w*52|0)+16|0;ga=c[u>>2]|0;if((ga|0)!=0?(c[ga>>2]|0)==1:0){f=0;ga=127}else ga=125;do if((ga|0)==125){ga=0;N=c[v+(w*52|0)+32>>2]|0;if((N|0)!=0?(c[N>>2]|0)==1:0){f=1;ga=127;break}N=c[v+(w*52|0)+48>>2]|0;if((N|0)!=0?(c[N>>2]|0)==1:0){f=2;ga=127;break}g=c[22595]|0;p=c[c[g+(q<<2)>>2]>>2]|0;g=c[g+(k<<2)>>2]|0;N=c[g>>2]|0;I=+h[p+8>>3];J=+h[p>>3];N=(+h[x>>3]-I)*(+h[N>>3]-J)-(+h[N+8>>3]-I)*(+h[L>>3]-J)>0.0;p=N?g:e;g=N?e:g}while(0);do if((ga|0)==127){ga=0;g=c[v+(w*52|0)+4+(f<<4)>>2]|0;j=c[v+(w*52|0)+4+(f<<4)+4>>2]|0;N=c[g>>2]|0;E=c[c[v+(w*52|0)+4+((((f+1|0)>>>0)%3|0)<<4)+4>>2]>>2]|0;M=c[j>>2]|0;I=+h[E+8>>3];J=+h[E>>3];if((+h[N+8>>3]-I)*(+h[M>>3]-J)-(+h[M+8>>3]-I)*(+h[N>>3]-J)>0.0){p=j;break}p=g;g=j}while(0);k:do if((w|0)==(K|0)){f=c[22595]|0;if((k|0)>=(q|0))c[p+4>>2]=c[f+(k<<2)>>2];k=k+1|0;c[22597]=k;c[f+(k<<2)>>2]=p;f=c[22595]|0;if((k|0)>=(q|0))c[g+4>>2]=c[f+(q<<2)>>2];q=q+-1|0;c[22596]=q;c[f+(q<<2)>>2]=g;g=t}else{r=c[22595]|0;do if((c[r+(q<<2)>>2]|0)!=(g|0)){if((c[r+(k<<2)>>2]|0)==(g|0))break;n=0;p=na(28,g|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){j=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!j)Ka(f|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}c[22596]=p;if((k|0)>=(p|0))c[g+4>>2]=c[r+(p<<2)>>2];f=p+-1|0;c[22596]=f;c[r+(f<<2)>>2]=g;if((p|0)<=(t|0)){q=f;g=t;break k}c[22600]=p;q=f;g=p;break k}while(0);n=0;j=na(28,p|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue a}c[22597]=j;if((j|0)>=(q|0))c[p+4>>2]=c[r+(j<<2)>>2];k=j+1|0;c[22597]=k;c[r+(k<<2)>>2]=p;if((j|0)>=(t|0)){g=t;break}c[22600]=j;g=j}while(0);f=c[u>>2]|0;if(!((f|0)!=0?(c[f>>2]|0)==1:0))ga=150;do if((ga|0)==150){ga=0;f=c[v+(w*52|0)+32>>2]|0;if((f|0)!=0?(c[f>>2]|0)==1:0)break;f=c[v+(w*52|0)+48>>2]|0;if(!f){f=0;g=e;break j}if((c[f>>2]|0)!=1){f=0;g=e;break j}}while(0);f=f-(c[22598]|0)|0;if((f|0)==-52){f=0;g=e;break}else{t=g;w=(f|0)/52|0}}}while(0);while(1){k=f+1|0;g=c[g+4>>2]|0;if(!g)break;else f=k}n=0;ia(98,k|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1)e=C;else{ga=153;break}}if((ga|0)==104)e=-1;else if((ga|0)==110)e=-1;else if((ga|0)==115){c[d+4>>2]=2;e=c[22599]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];ga=e+16|0;c[ga>>2]=c[L>>2];c[ga+4>>2]=c[L+4>>2];c[ga+8>>2]=c[L+8>>2];c[ga+12>>2]=c[L+12>>2];c[d>>2]=e;e=0}else if((ga|0)==118){c[d+4>>2]=2;e=c[22599]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];ga=e+16|0;c[ga>>2]=c[L>>2];c[ga+4>>2]=c[L+4>>2];c[ga+8>>2]=c[L+8>>2];c[ga+12>>2]=c[L+12>>2];c[d>>2]=e;e=0}else if((ga|0)==153){c[d+4>>2]=k;g=c[22599]|0;j=g;while(1){ga=g+(f<<4)|0;fa=c[e>>2]|0;c[ga>>2]=c[fa>>2];c[ga+4>>2]=c[fa+4>>2];c[ga+8>>2]=c[fa+8>>2];c[ga+12>>2]=c[fa+12>>2];e=c[e+4>>2]|0;if(!e)break;else f=f+-1|0}c[d>>2]=j;e=0}pB(ha|0);i=ja;return e|0}function Mx(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;k=+h[b>>3];l=+h[a>>3];g=k-l;i=+h[b+8>>3];n=+h[a+8>>3];e=i-n;m=+h[c>>3];f=m-l;j=+h[c+8>>3];d=j-n;i=(n-i)*(m-k)-(l-k)*(j-i);if(!(i>0.0)&!(i<0.0)){if(!(g*f+e*d>=0.0))a=0;else a=f*f+d*d<=g*g+e*e;a=a&1}else a=0;return a|0}function Nx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m+16|0;k=m;h=c[22593]|0;g=c[22602]|0;if((h|0)<(g|0)){f=h;e=c[22598]|0}else{j=g+20|0;g=c[22598]|0;do if(!g){g=oB(j*52|0)|0;c[22598]=g;if(!g){l=c[22667]|0;c[k>>2]=164243;c[k+4>>2]=552;c[k+8>>2]=164534;Bz(l,164224,k)|0;Ka(90200,1)}else{e=g;f=h}}else{g=rB(g,j*52|0)|0;c[22598]=g;if(!g){k=c[22667]|0;c[l>>2]=164243;c[l+4>>2]=558;c[l+8>>2]=164553;Bz(k,164224,l)|0;Ka(90200,1)}else{e=g;f=c[22593]|0;break}}while(0);c[22602]=j}c[22593]=f+1;l=e+(f*52|0)|0;c[l>>2]=0;c[e+(f*52|0)+4>>2]=a;c[e+(f*52|0)+8>>2]=b;c[e+(f*52|0)+16>>2]=0;c[e+(f*52|0)+20>>2]=b;c[e+(f*52|0)+24>>2]=d;c[e+(f*52|0)+32>>2]=0;c[e+(f*52|0)+36>>2]=d;c[e+(f*52|0)+40>>2]=a;c[e+(f*52|0)+48>>2]=0;c[e+(f*52|0)+12>>2]=l;c[e+(f*52|0)+28>>2]=l;c[e+(f*52|0)+44>>2]=l;i=m;return}function Ox(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0.0,i=0.0,j=0,k=0.0,l=0;f=c[22598]|0;g=+h[b>>3];d=+h[b+8>>3];e=0;b=0;do{j=c[c[f+(a*52|0)+4+(e<<4)>>2]>>2]|0;l=c[c[f+(a*52|0)+4+(e<<4)+4>>2]>>2]|0;k=+h[l+8>>3];i=+h[l>>3];i=(+h[j+8>>3]-k)*(g-i)-(d-k)*(+h[j>>3]-i);b=(i<0.0&!(i>0.0)&1^1)+b|0;e=e+1|0}while((e|0)!=3);return ((b|0)==3|(b|0)==0)&1|0}function Px(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[22598]|0;e=d+(a*52|0)|0;do if(!(c[e>>2]|0)){c[e>>2]=1;if((a|0)==(b|0))d=1;else{e=c[d+(a*52|0)+16>>2]|0;if(e){if(Px((e-d|0)/52|0,b)|0){d=1;break}d=c[22598]|0}e=c[d+(a*52|0)+32>>2]|0;if(e){if(Px((e-d|0)/52|0,b)|0){d=1;break}d=c[22598]|0}e=c[d+(a*52|0)+48>>2]|0;if(e){if(Px((e-d|0)/52|0,b)|0){d=1;break}d=c[22598]|0}c[d+(a*52|0)>>2]=0;d=0}}else d=0;while(0);return d|0}function Qx(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+32|0;e=f+16|0;d=f;if((c[22601]|0)<(a|0)){b=c[22599]|0;if(!b){e=oB(a<<4)|0;c[22599]=e;if(!e){e=c[22667]|0;c[d>>2]=164243;c[d+4>>2]=593;c[d+8>>2]=164497;Bz(e,164224,d)|0;Ka(90200,1)}}else{d=rB(b,a<<4)|0;c[22599]=d;if(!d){d=c[22667]|0;c[e>>2]=164243;c[e+4>>2]=599;c[e+8>>2]=164515;Bz(d,164224,e)|0;Ka(90200,1)}}c[22601]=a}i=f;return}function Rx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0.0,j=0,k=0.0,l=0,m=0;b=c[22600]|0;g=c[22595]|0;e=c[22596]|0;while(1){if((e|0)>=(b|0)){f=4;break}d=e+1|0;j=c[c[g+(d<<2)>>2]>>2]|0;m=c[c[g+(e<<2)>>2]>>2]|0;l=c[a>>2]|0;k=+h[m+8>>3];i=+h[m>>3];if((+h[j+8>>3]-k)*(+h[l>>3]-i)-(+h[l+8>>3]-k)*(+h[j>>3]-i)>0.0){b=e;break}else e=d}a:do if((f|0)==4){e=c[22597]|0;while(1){if((e|0)<=(b|0))break a;d=e+-1|0;m=c[c[g+(d<<2)>>2]>>2]|0;j=c[c[g+(e<<2)>>2]>>2]|0;l=c[a>>2]|0;i=+h[j+8>>3];k=+h[j>>3];k=(+h[m+8>>3]-i)*(+h[l>>3]-k)-(+h[l+8>>3]-i)*(+h[m>>3]-k);if(k<0.0&!(k>0.0)){b=e;break}else e=d}}while(0);return b|0}function Sx(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,f=0.0,g=0.0,i=0.0;c=+h[a+24>>3];if(!(c<1.0e-07&c>-1.0e-07)){g=+h[a+16>>3]/(c*3.0);e=+h[a+8>>3]/c;f=g*g;c=+h[a>>3]/c+(g*2.0*f-g*e);f=e/3.0-f;e=c*c;f=e+f*(f*(f*4.0));if(!(f<0.0)){e=(+O(+f)-c)*.5;i=+Dy(e);c=i+ +Dy(-c-e);h[b>>3]=c;if(f>0.0)a=1;else{i=c*-.5;h[b+16>>3]=i;h[b+8>>3]=i;a=3}}else{i=+W(+(+O(+-f)),+-c);f=+Dy(+O(+(e-f))*.5)*2.0;c=f*+Q(+(i/3.0));h[b>>3]=c;h[b+8>>3]=f*+Q(+((i+3.141592653589793+3.141592653589793)/3.0));h[b+16>>3]=f*+Q(+((i+-3.141592653589793+-3.141592653589793)/3.0));a=3}h[b>>3]=c-g;if((a|0)!=1){d=1;do{h[b+(d<<3)>>3]=+h[b+(d<<3)>>3]-g;d=d+1|0}while((d|0)<(a|0))}}else a=Tx(a,b)|0;return a|0}function Tx(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+16>>3];do if(c<1.0e-07&c>-1.0e-07){d=+h[a+8>>3];c=+h[a>>3];if(d<1.0e-07&d>-1.0e-07){a=c<1.0e-07&c>-1.0e-07?4:0;break}else{h[b>>3]=-c/d;a=1;break}}else{d=+h[a+8>>3]/(c*2.0);c=d*d-+h[a>>3]/c;if(!(c<0.0))if(c==0.0){h[b>>3]=-d;a=1;break}else{c=+O(+c)-d;h[b>>3]=c;h[b+8>>3]=d*-2.0-c;a=2;break}else a=0}while(0);return a|0}function Ux(a){a=a|0;pB(c[a>>2]|0);pB(a);return}function Vx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=c[a+4>>2]|0;k=(e*3|0)+-2|0;d=c[22604]|0;if((k|0)>(c[22603]|0)){if(!d)d=oB(k<<4)|0;else d=rB(d,k<<4)|0;c[22604]=d;c[22603]=k;j=d;i=d}else{j=d;i=d}h=c[a>>2]|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];BB(j+16|0,h|0,16)|0;d=e+-1|0;if((d|0)>1){a=(d|0)>2?d:2;g=a*3|0;e=1;f=2;while(1){l=j+(f+2<<4)|0;m=j+(f+1<<4)|0;o=j+(f<<4)|0;n=h+(e<<4)|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];BB(m|0,n|0,16)|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];e=e+1|0;if((e|0)>=(d|0))break;else f=f+3|0}d=g+-1|0}else{a=1;d=2}n=j+(d<<4)|0;o=h+(a<<4)|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];BB(j+(d+1<<4)|0,o|0,16)|0;c[b+4>>2]=k;c[b>>2]=i;return}function Wx(a){a=a|0;return ((a+-48|0)>>>0<10|(Xx(a)|0)!=0)&1|0}function Xx(a){a=a|0;return ((a|32)+-97|0)>>>0<26|0}function Yx(a){a=a|0;return ((a|0)==32|(a|0)==9)&1|0}function Zx(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function _x(a){a=a|0;return (a+-65|0)>>>0<26|0}function $x(a){a=a|0;if(!(fy(a)|0))a=(ay(a)|0)!=0;else a=1;return a&1|0}function ay(a){a=a|0;if(a>>>0<131072)a=(d[164573+((d[164573+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=a>>>0<196606&1;return a|0}function by(a){a=a|0;return Yx(a)|0}function cy(a){a=a|0;if((a&-2|0)==8232|(a>>>0<32|(a+-127|0)>>>0<33))a=1;else a=(a+-65529|0)>>>0<3;return a&1|0}function dy(a,b){a=a|0;b=b|0;do switch(b|0){case 1:{b=$x(a)|0;break}case 2:{b=ay(a)|0;break}case 3:{b=by(a)|0;break}case 4:{b=cy(a)|0;break}case 5:{b=fy(a)|0;break}case 6:{b=gy(a)|0;break}case 7:{b=hy(a)|0;break}case 8:{b=iy(a)|0;break}case 9:{b=jy(a)|0;break}case 10:{b=ky(a)|0;break}case 11:{b=ly(a)|0;break}case 12:{b=my(a)|0;break}default:b=0}while(0);return b|0}function ey(b){b=b|0;var c=0,d=0,e=0,f=0;d=a[b>>0]|0;e=97;c=1;f=167549;while(1){if(d<<24>>24==e<<24>>24?(lA(b,f)|0)==0:0)break;f=f+6|0;e=a[f>>0]|0;if(!(e<<24>>24)){c=0;break}else c=c+1|0}return c|0}function fy(a){a=a|0;return (a+-48|0)>>>0<10|0}function gy(a){a=a|0;if(!(ky(a)|0))a=(iy(a)|0)!=0;else a=0;return a&1|0}function hy(a){a=a|0;return ((a|0)==223|(oy(a)|0)!=(a|0))&1|0}function iy(a){a=a|0;if(a>>>0>=255)if((a+-57344|0)>>>0<8185|(a>>>0<8232|(a+-8234|0)>>>0<47062))a=1;else return ((a+-65532|0)>>>0>1048579|(a&65534|0)==65534)&1^1|0;else a=(a+1&127)>>>0>32&1;return a|0}function jy(a){a=a|0;if(a>>>0<131072)a=(d[167622+((d[167622+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=0;return a|0}function ky(a){a=a|0;if(!a)a=0;else a=(zA(90684,a)|0)!=0;return a&1|0}function ly(a){a=a|0;return (py(a)|0)!=(a|0)|0}function my(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function ny(a){a=a|0;var b=0;b=(_x(a)|0)==0;return (b?a:a|32)|0}function oy(a){a=a|0;return CA(a,0)|0}function py(a){a=a|0;return CA(a,1)|0}function qy(){var a=0;if(!(c[22605]|0))a=90772;else a=c[(Ya()|0)+60>>2]|0;return a|0}function ry(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[170790+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=170878;e=5;break}}if((e|0)==2)if(!c)b=170878;else{b=170878;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function sy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+512|0;H=L;switch(e|0){case 0:{K=24;J=-149;A=4;break}case 1:{K=53;J=-1074;A=4;break}case 2:{K=53;J=-1074;A=4;break}default:g=0.0}a:do if((A|0)==4){E=b+4|0;D=b+100|0;do{e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0}while((Zx(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;I=h;break b}else{e=wy(b)|0;I=h;break b}}default:I=1}while(0);h=e;e=0;do{if((h|32|0)!=(a[172682+e>>0]|0))break;do if(e>>>0<7){h=c[E>>2]|0;if(h>>>0<(c[D>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=wy(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{A=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{A=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[175620+e>>0]|0))break d;do if(e>>>0<2){h=c[E>>2]|0;if(h>>>0<(c[D>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=wy(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==40)e=1;else{if(!(c[D>>2]|0)){g=r;break a}c[E>>2]=(c[E>>2]|0)+-1;g=r;break a}while(1){h=c[E>>2]|0;if(h>>>0<(c[D>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0}else h=wy(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=r;break a}h=(c[D>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!k){c[(qy()|0)>>2]=22;vy(b,0);g=0.0;break a}if(!e){g=r;break a}while(1){e=e+-1|0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!e){g=r;break a}}}case 0:{do if((h|0)==48){e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|32|0)!=120){if(!(c[D>>2]|0)){e=48;break}c[E>>2]=(c[E>>2]|0)+-1;e=48;break}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=0}else{e=wy(b)|0;k=0}e:while(1){switch(e|0){case 46:{A=74;break e}case 48:break;default:{y=0;l=0;x=0;h=0;n=k;o=0;w=0;m=1.0;k=0;g=0.0;break e}}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=wy(b)|0;k=1;continue}}if((A|0)==74){e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==48){k=0;h=0;do{e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;k=wB(k|0,h|0,-1,-1)|0;h=C}while((e|0)==48);y=0;l=0;x=k;n=1;o=1;w=0;m=1.0;k=0;g=0.0}else{y=0;l=0;x=0;h=0;n=k;o=1;w=0;m=1.0;k=0;g=0.0}}while(1){u=e+-48|0;p=e|32;if(u>>>0>=10){v=(e|0)==46;if(!(v|(p+-97|0)>>>0<6)){p=x;u=y;break}if(v)if(!o){v=l;h=y;u=y;o=1;p=w;j=m}else{p=x;u=y;e=46;break}else A=86}else A=86;if((A|0)==86){A=0;e=(e|0)>57?p+-87|0:u;do if(!((y|0)<0|(y|0)==0&l>>>0<8)){if((y|0)<0|(y|0)==0&l>>>0<14){t=m*.0625;p=w;j=t;g=g+t*+(e|0);break}if((w|0)!=0|(e|0)==0){p=w;j=m}else{p=1;j=m;g=g+m*.5}}else{p=w;j=m;k=e+(k<<4)|0}while(0);l=wB(l|0,y|0,1,0)|0;v=x;u=C;n=1}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;y=u;x=v;e=d[e>>0]|0;w=p;m=j;continue}else{y=u;x=v;e=wy(b)|0;w=p;m=j;continue}}if(!n){e=(c[D>>2]|0)==0;if(!e)c[E>>2]=(c[E>>2]|0)+-1;if(f){if(!e?(z=c[E>>2]|0,c[E>>2]=z+-1,(o|0)!=0):0)c[E>>2]=z+-2}else vy(b,0);g=+(I|0)*0.0;break a}n=(o|0)==0;o=n?l:p;n=n?u:h;if((u|0)<0|(u|0)==0&l>>>0<8){h=u;do{k=k<<4;l=wB(l|0,h|0,1,0)|0;h=C}while((h|0)<0|(h|0)==0&l>>>0<8)}if((e|32|0)==112){h=DA(b,f)|0;e=C;if((h|0)==0&(e|0)==-2147483648){if(!f){vy(b,0);g=0.0;break a}if(!(c[D>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}}}else if(!(c[D>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}H=DB(o|0,n|0,2)|0;H=wB(H|0,C|0,-32,-1)|0;e=wB(H|0,C|0,h|0,e|0)|0;h=C;if(!k){g=+(I|0)*0.0;break a}if((h|0)>0|(h|0)==0&e>>>0>(0-J|0)>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}H=J+-106|0;G=((H|0)<0)<<31>>31;if((h|0)<(G|0)|(h|0)==(G|0)&e>>>0<H>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((k|0)>-1){do{G=!(g>=.5);H=G&1|k<<1;k=H^1;g=g+(G?g:g+-1.0);e=wB(e|0,h|0,-1,-1)|0;h=C}while((H|0)>-1);l=e;m=g}else{l=e;m=g}e=vB(32,0,J|0,((J|0)<0)<<31>>31|0)|0;e=wB(l|0,h|0,e|0,C|0)|0;J=C;if(0>(J|0)|0==(J|0)&K>>>0>e>>>0)if((e|0)<0){e=0;A=127}else A=125;else{e=K;A=125}if((A|0)==125)if((e|0)<53)A=127;else{h=e;j=+(I|0);g=0.0}if((A|0)==127){g=+(I|0);h=e;j=g;g=+Fy(+Ny(1.0,84-e|0),g)}K=(k&1|0)==0&(m!=0.0&(h|0)<32);g=j*(K?0.0:m)+(g+j*+(((K&1)+k|0)>>>0))-g;if(!(g!=0.0))c[(qy()|0)>>2]=34;g=+Oy(g,l);break a}else e=h;while(0);F=J+K|0;G=0-F|0;k=0;f:while(1){switch(e|0){case 46:{A=138;break f}case 48:break;default:{h=0;p=0;o=0;break f}}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=wy(b)|0;k=1;continue}}if((A|0)==138){e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==48){h=0;e=0;while(1){h=wB(h|0,e|0,-1,-1)|0;k=C;e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==48)e=k;else{p=k;k=1;o=1;break}}}else{h=0;p=0;o=1}}c[H>>2]=0;n=e+-48|0;l=(e|0)==46;g:do if(l|n>>>0<10){B=H+496|0;y=0;v=0;w=l;A=p;u=k;z=o;k=0;l=0;o=0;h:while(1){do if(w)if(!z){h=y;p=v;z=1}else{p=A;e=y;n=v;break h}else{w=wB(y|0,v|0,1,0)|0;v=C;x=(e|0)!=48;if((l|0)>=125){if(!x){p=A;y=w;break}c[B>>2]=c[B>>2]|1;p=A;y=w;break}p=H+(l<<2)|0;if(k)n=e+-48+((c[p>>2]|0)*10|0)|0;c[p>>2]=n;k=k+1|0;n=(k|0)==9;p=A;y=w;u=1;k=n?0:k;l=(n&1)+l|0;o=x?w:o}while(0);e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;n=e+-48|0;w=(e|0)==46;if(!(w|n>>>0<10)){n=z;A=161;break g}else A=p}u=(u|0)!=0;A=169}else{y=0;v=0;u=k;n=o;k=0;l=0;o=0;A=161}while(0);do if((A|0)==161){B=(n|0)==0;h=B?y:h;p=B?v:p;u=(u|0)!=0;if(!((e|32|0)==101&u))if((e|0)>-1){e=y;n=v;A=169;break}else{e=y;n=v;A=171;break}n=DA(b,f)|0;e=C;if((n|0)==0&(e|0)==-2147483648){if(!f){vy(b,0);g=0.0;break}if(!(c[D>>2]|0)){n=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;n=0;e=0}}h=wB(n|0,e|0,h|0,p|0)|0;u=y;p=C;n=v;A=173}while(0);if((A|0)==169)if(c[D>>2]|0){c[E>>2]=(c[E>>2]|0)+-1;if(u){u=e;A=173}else A=172}else A=171;if((A|0)==171)if(u){u=e;A=173}else A=172;do if((A|0)==172){c[(qy()|0)>>2]=22;vy(b,0);g=0.0}else if((A|0)==173){e=c[H>>2]|0;if(!e){g=+(I|0)*0.0;break}if(((n|0)<0|(n|0)==0&u>>>0<10)&((h|0)==(u|0)&(p|0)==(n|0))?K>>>0>30|(e>>>K|0)==0:0){g=+(I|0)*+(e>>>0);break}b=(J|0)/-2|0;E=((b|0)<0)<<31>>31;if((p|0)>(E|0)|(p|0)==(E|0)&h>>>0>b>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}b=J+-106|0;E=((b|0)<0)<<31>>31;if((p|0)<(E|0)|(p|0)==(E|0)&h>>>0<b>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(k){if((k|0)<9){n=H+(l<<2)|0;e=c[n>>2]|0;do{e=e*10|0;k=k+1|0}while((k|0)!=9);c[n>>2]=e}l=l+1|0}if((o|0)<9?(o|0)<=(h|0)&(h|0)<18:0){if((h|0)==9){g=+(I|0)*+((c[H>>2]|0)>>>0);break}if((h|0)<9){g=+(I|0)*+((c[H>>2]|0)>>>0)/+(c[90776+(8-h<<2)>>2]|0);break}b=K+27+(_(h,-3)|0)|0;e=c[H>>2]|0;if((b|0)>30|(e>>>b|0)==0){g=+(I|0)*+(e>>>0)*+(c[90776+(h+-10<<2)>>2]|0);break}}e=(h|0)%9|0;if(!e){k=0;e=0}else{u=(h|0)>-1?e:e+9|0;n=c[90776+(8-u<<2)>>2]|0;if(l){o=1e9/(n|0)|0;k=0;e=0;p=0;do{D=H+(p<<2)|0;E=c[D>>2]|0;b=((E>>>0)/(n>>>0)|0)+e|0;c[D>>2]=b;e=_((E>>>0)%(n>>>0)|0,o)|0;b=(p|0)==(k|0)&(b|0)==0;p=p+1|0;h=b?h+-9|0:h;k=b?p&127:k}while((p|0)!=(l|0));if(e){c[H+(l<<2)>>2]=e;l=l+1|0}}else{k=0;l=0}e=0;h=9-u+h|0}i:while(1){v=(h|0)<18;w=(h|0)==18;x=H+(k<<2)|0;do{if(!v){if(!w)break i;if((c[x>>2]|0)>>>0>=9007199){h=18;break i}}n=0;o=l+127|0;while(1){u=o&127;p=H+(u<<2)|0;o=DB(c[p>>2]|0,0,29)|0;o=wB(o|0,C|0,n|0,0)|0;n=C;if(n>>>0>0|(n|0)==0&o>>>0>1e9){b=KB(o|0,n|0,1e9,0)|0;o=LB(o|0,n|0,1e9,0)|0;n=b}else n=0;c[p>>2]=o;b=(u|0)==(k|0);l=(u|0)!=(l+127&127|0)|b?l:(o|0)==0?u:l;if(b)break;else o=u+-1|0}e=e+-29|0}while((n|0)==0);k=k+127&127;if((k|0)==(l|0)){b=l+127&127;l=H+((l+126&127)<<2)|0;c[l>>2]=c[l>>2]|c[H+(b<<2)>>2];l=b}c[H+(k<<2)>>2]=n;h=h+9|0}j:while(1){y=l+1&127;x=H+((l+127&127)<<2)|0;while(1){v=(h|0)==18;w=(h|0)>27?9:1;u=v^1;while(1){o=k&127;p=(o|0)==(l|0);do if(!p){n=c[H+(o<<2)>>2]|0;if(n>>>0<9007199){A=219;break}if(n>>>0>9007199)break;n=k+1&127;if((n|0)==(l|0)){A=219;break}n=c[H+(n<<2)>>2]|0;if(n>>>0<254740991){A=219;break}if(!(n>>>0>254740991|u)){h=o;break j}}else A=219;while(0);if((A|0)==219?(A=0,v):0){A=220;break j}e=e+w|0;if((k|0)==(l|0))k=l;else break}u=(1<<w)+-1|0;v=1e9>>>w;o=k;n=0;p=k;while(1){E=H+(p<<2)|0;b=c[E>>2]|0;k=(b>>>w)+n|0;c[E>>2]=k;n=_(b&u,v)|0;k=(p|0)==(o|0)&(k|0)==0;p=p+1&127;h=k?h+-9|0:h;k=k?p:o;if((p|0)==(l|0))break;else o=k}if(!n)continue;if((y|0)!=(k|0))break;c[x>>2]=c[x>>2]|1}c[H+(l<<2)>>2]=n;l=y}if((A|0)==220)if(p){c[H+(y+-1<<2)>>2]=0;h=l;l=y}else h=o;g=+((c[H+(h<<2)>>2]|0)>>>0);h=k+1&127;if((h|0)==(l|0)){l=k+2&127;c[H+(l+-1<<2)>>2]=0}t=+(I|0);j=t*(g*1.0e9+ +((c[H+(h<<2)>>2]|0)>>>0));v=e+53|0;p=v-J|0;u=(p|0)<(K|0);h=u&1;o=u?((p|0)<0?0:p):K;if((o|0)<53){M=+Fy(+Ny(1.0,105-o|0),j);m=+Hy(j,+Ny(1.0,53-o|0));q=M;g=m;m=M+(j-m)}else{q=0.0;g=0.0;m=j}n=k+2&127;do if((n|0)==(l|0))j=g;else{n=c[H+(n<<2)>>2]|0;do if(n>>>0>=5e8){if(n>>>0>5e8){g=t*.75+g;break}if((k+3&127|0)==(l|0)){g=t*.5+g;break}else{g=t*.75+g;break}}else{if((n|0)==0?(k+3&127|0)==(l|0):0)break;g=t*.25+g}while(0);if((53-o|0)<=1){j=g;break}if(+Hy(g,1.0)!=0.0){j=g;break}j=g+1.0}while(0);g=m+j-q;do if((v&2147483647|0)>(-2-F|0)){if(+N(+g)>=9007199254740992.0){h=u&(o|0)==(p|0)?0:h;e=e+1|0;g=g*.5}if((e+50|0)<=(G|0)?!(j!=0.0&(h|0)!=0):0)break;c[(qy()|0)>>2]=34}while(0);g=+Oy(g,e)}while(0);break a}default:{if(c[D>>2]|0)c[E>>2]=(c[E>>2]|0)+-1;c[(qy()|0)>>2]=22;vy(b,0);g=0.0;break a}}}}while(0);if((A|0)==23){h=(c[D>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[E>>2]=(c[E>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(I|0)*s}while(0);i=L;return +g}function ty(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(qy()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0}while((Zx(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=wy(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e&-17|0)==0&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=wy(b)|0;if((d[172691+(i+1)>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){vy(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[172691+(i+1)>>0]|0)>>>0<e>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;vy(b,0);c[(qy()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;while(1){j=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=wy(b)|0;e=i+-48|0;if(!(e>>>0<10&j>>>0<429496729)){e=j;break}else i=j}j=0}else{e=0;j=0}f=i+-48|0;if(f>>>0<10){while(1){k=JB(e|0,j|0,10,0)|0;l=C;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;break}e=wB(k|0,l|0,f|0,m|0)|0;j=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;f=i+-48|0;if(!(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378))){k=e;break}}if(f>>>0>9){i=k;e=p}else{e=10;n=72}}else{i=e;e=p}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[172948+((e*23|0)>>>5&7)>>0]|0;j=a[172691+(i+1)>>0]|0;f=j&255;if(f>>>0<e>>>0){i=0;while(1){k=f|i<<n;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;f=j&255;if(!(k>>>0<134217728&f>>>0<e>>>0))break;else i=k}f=0}else{f=0;k=0}l=yB(-1,-1,n|0)|0;m=C;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break}else i=f;while(1){k=DB(k|0,i|0,n|0)|0;f=C;k=j&255|k;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break c}else i=f}}j=a[172691+(i+1)>>0]|0;f=j&255;if(f>>>0<e>>>0){i=0;while(1){k=f+(_(i,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;f=j&255;if(!(k>>>0<119304647&f>>>0<e>>>0))break;else i=k}f=0}else{k=0;f=0}if((j&255)>>>0<e>>>0){n=KB(-1,-1,e|0,0)|0;o=C;m=f;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&k>>>0>n>>>0){j=m;n=72;break c}f=JB(k|0,m|0,e|0,0)|0;l=C;j=j&255;if(l>>>0>4294967295|(l|0)==-1&f>>>0>~j>>>0){j=m;n=72;break c}k=wB(j|0,0,f|0,l|0)|0;f=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0){j=f;n=72;break}else m=f}}else{j=f;n=72}}while(0);if((n|0)==72)if((d[172691+(i+1)>>0]|0)>>>0<e>>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0}while((d[172691+(i+1)>>0]|0)>>>0<e>>>0);c[(qy()|0)>>2]=34;j=h;i=g;e=(g&1|0)==0&0==0?p:0}else{i=k;e=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0<h>>>0|(j|0)==(h|0)&i>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(e|0)!=0)){c[(qy()|0)>>2]=34;g=wB(g|0,h|0,-1,-1)|0;h=C;break}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c[(qy()|0)>>2]=34;break}}g=((e|0)<0)<<31>>31;g=vB(i^e|0,j^g|0,e|0,g|0)|0;h=C}while(0);C=h;return g|0}function uy(b,c){b=b|0;c=c|0;var d=0,e=0;d=0;while(1){a[b+d>>0]=a[172957+d>>0]|0;if((d|0)==14)break;else d=d+1|0}if(!c){a[b+14>>0]=48;a[b+15>>0]=0}else{d=14;e=c;while(1){d=d+1|0;if(e>>>0<10)break;else e=(e>>>0)/10|0}a[b+d>>0]=0;while(1){d=d+-1|0;a[b+d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}}return}function vy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=e-d|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=d+b;else c[a+100>>2]=e;return}function wy(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=tz(b)|0;if((e|0)>=0){h=c[f>>2]|0;f=b+8|0;if(h){g=c[f>>2]|0;i=c[b+4>>2]|0;f=g;h=h-(c[b+108>>2]|0)+-1|0;if((f-i|0)>(h|0))c[b+100>>2]=i+h;else j=9}else{g=c[f>>2]|0;f=g;j=9}if((j|0)==9)c[b+100>>2]=f;f=c[b+4>>2]|0;if(g){b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function xy(a){a=a|0;if(a>>>0>4294963200){c[(qy()|0)>>2]=0-a;a=-1}return a|0}function yy(a,b){a=a|0;b=b|0;return 172972}function zy(a,b){a=+a;b=+b;var c=0.0,d=0.0,e=0.0,f=0.0;c=a*a;d=c*c;e=c*.5;f=1.0-e;return +(f+(1.0-f-e+(c*(c*(c*(c*2.480158728947673e-05+-.001388888888887411)+.0416666666666666)+d*d*(c*(2.087572321298175e-09-c*1.1359647557788195e-11)+-2.7557314351390663e-07))-a*b)))}function Ay(a,b){a=+a;b=b|0;var d=0,e=0.0,f=0.0,g=0,j=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;l=r+16|0;n=r;h[k>>3]=a;d=c[k>>2]|0;g=c[k+4>>2]|0;o=yB(d|0,g|0,63)|0;q=g&2147483647;do if(q>>>0<1074752123)if((g&1048575|0)!=598523){d=(o|0)!=0;if(q>>>0<1073928573)if(d){j=a+1.5707963267341256;m=j+6.077100506506192e-11;h[b>>3]=m;h[b+8>>3]=j-m+6.077100506506192e-11;d=-1;break}else{j=a+-1.5707963267341256;m=j+-6.077100506506192e-11;h[b>>3]=m;h[b+8>>3]=j-m+-6.077100506506192e-11;d=1;break}else if(d){j=a+3.1415926534682512;m=j+1.2154201013012384e-10;h[b>>3]=m;h[b+8>>3]=j-m+1.2154201013012384e-10;d=-2;break}else{j=a+-3.1415926534682512;m=j+-1.2154201013012384e-10;h[b>>3]=m;h[b+8>>3]=j-m+-1.2154201013012384e-10;d=2;break}}else p=21;else{if(q>>>0>=1075594812){if(q>>>0<1094263291){p=21;break}if(q>>>0>2146435071){m=a-a;h[b+8>>3]=m;h[b>>3]=m;d=0;break}c[k>>2]=d;c[k+4>>2]=g&1048575|1096810496;m=+h[k>>3];j=+(~~m|0);h[l>>3]=j;j=(m-j)*16777216.0;m=+(~~j|0);h[l+8>>3]=m;m=(j-m)*16777216.0;h[l+16>>3]=m;if(m==0.0){d=1;while(1)if(+h[l+(d<<3)>>3]==0.0)d=d+-1|0;else break}else d=2;d=By(l,n,(q>>>20)+-1046|0,d+1|0,1)|0;e=+h[n>>3];a=+h[n+8>>3];if(!o){h[b>>3]=e;h[b+8>>3]=a;break}else{h[b>>3]=-e;h[b+8>>3]=-a;d=0-d|0;break}}if(q>>>0<1075183037){if((q|0)==1074977148){p=21;break}if(!o){j=a+-4.712388980202377;m=j+-1.8231301519518578e-10;h[b>>3]=m;h[b+8>>3]=j-m+-1.8231301519518578e-10;d=3;break}else{j=a+4.712388980202377;m=j+1.8231301519518578e-10;h[b>>3]=m;h[b+8>>3]=j-m+1.8231301519518578e-10;d=-3;break}}else{if((q|0)==1075388923){p=21;break}if(!o){j=a+-6.2831853069365025;m=j+-2.430840202602477e-10;h[b>>3]=m;h[b+8>>3]=j-m+-2.430840202602477e-10;d=4;break}else{j=a+6.2831853069365025;m=j+2.430840202602477e-10;h[b>>3]=m;h[b+8>>3]=j-m+2.430840202602477e-10;d=-4;break}}}while(0);if((p|0)==21){m=a*.6366197723675814+6755399441055744.0+-6755399441055744.0;d=~~m;f=a-m*1.5707963267341256;a=m*6.077100506506192e-11;e=f-a;h[b>>3]=e;h[k>>3]=e;p=yB(c[k>>2]|0,c[k+4>>2]|0,52)|0;g=q>>>20;if((g-(p&2047)|0)>16){a=m*6.077100506303966e-11;j=f-a;a=m*2.0222662487959506e-21-(f-j-a);e=j-a;h[b>>3]=e;h[k>>3]=e;q=yB(c[k>>2]|0,c[k+4>>2]|0,52)|0;if((g-(q&2047)|0)>49){a=m*2.0222662487111665e-21;f=j-a;a=m*8.4784276603689e-32-(j-f-a);e=f-a;h[b>>3]=e}else f=j}h[b+8>>3]=f-e-a}i=r;return d|0}function By(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+560|0;B=E+480|0;y=E+320|0;D=E+160|0;C=E;A=c[90808+(f<<2)>>2]|0;q=e+-1|0;x=(d+-3|0)/24|0;x=(x|0)<0?0:x;r=(x*24|0)+24|0;l=d-r|0;if((A+q|0)>=0){m=A+e|0;n=0;o=x-q|0;while(1){if((o|0)<0)g=0.0;else g=+(c[90824+(o<<2)>>2]|0);h[y+(n<<3)>>3]=g;n=n+1|0;if((n|0)==(m|0))break;else o=o+1|0}}o=(e|0)<1;p=0;while(1){if(o)g=0.0;else{m=p+q|0;g=0.0;n=0;do{g=g+ +h[a+(n<<3)>>3]*+h[y+(m-n<<3)>>3];n=n+1|0}while((n|0)!=(e|0))}h[C+(p<<3)>>3]=g;if((p|0)<(A|0))p=p+1|0;else break}t=(l|0)>0;u=24-l|0;v=23-l|0;w=(e|0)<1;s=(r|0)==(d|0);m=A;a:while(1){g=+h[C+(m<<3)>>3];p=(m|0)>0;if(p){n=0;o=m;while(1){k=+(~~(g*5.9604644775390625e-08)|0);c[B+(n<<2)>>2]=~~(g-k*16777216.0);d=o;o=o+-1|0;g=k+ +h[C+(o<<3)>>3];if((d|0)<=1)break;else n=n+1|0}}g=+Ny(g,l);g=g-+M(+(g*.125))*8.0;o=~~g;g=g-+(o|0);do if(!t)if(!s)if(!(g>=.5)){n=0;break}else{n=2;z=20;break}else{n=c[B+(m+-1<<2)>>2]>>23;z=19;break}else{d=B+(m+-1<<2)|0;n=c[d>>2]|0;z=n>>u;n=n-(z<<u)|0;c[d>>2]=n;n=n>>v;o=z+o|0;z=19}while(0);if((z|0)==19){z=0;if((n|0)>0)z=20}if((z|0)==20){z=0;o=o+1|0;if(p){p=0;d=0;do{q=B+(d<<2)|0;r=c[q>>2]|0;if(!p)if(!r)p=0;else{c[q>>2]=16777216-r;p=1}else c[q>>2]=16777215-r;d=d+1|0}while((d|0)!=(m|0))}else p=0;b:do if(t)switch(l|0){case 1:{d=B+(m+-1<<2)|0;c[d>>2]=c[d>>2]&8388607;break b}case 2:{d=B+(m+-1<<2)|0;c[d>>2]=c[d>>2]&4194303;break b}default:break b}while(0);if((n|0)==2){g=1.0-g;if(!p)n=2;else{n=2;g=g-+Ny(1.0,l)}}}if(!(g==0.0)){z=44;break}if((m|0)>(A|0)){q=m;p=0;do{q=q+-1|0;p=c[B+(q<<2)>>2]|p}while((q|0)>(A|0));if(p){z=37;break}else n=1}else n=1;while(1)if(!(c[B+(A-n<<2)>>2]|0))n=n+1|0;else break;p=n+m|0;if((n|0)<=0){m=p;continue}while(1){o=m+1|0;m=m+e|0;h[y+(m<<3)>>3]=+(c[90824+(o+x<<2)>>2]|0);if(w)g=0.0;else{g=0.0;n=0;do{g=g+ +h[a+(n<<3)>>3]*+h[y+(m-n<<3)>>3];n=n+1|0}while((n|0)!=(e|0))}h[C+(o<<3)>>3]=g;if((o|0)<(p|0))m=o;else{m=p;continue a}}}do if((z|0)==37){do{l=l+-24|0;m=m+-1|0}while((c[B+(m<<2)>>2]|0)==0);t=m}else if((z|0)==44){g=+Ny(g,0-l|0);if(!(g>=16777216.0)){c[B+(m<<2)>>2]=~~g;t=m;break}else{z=~~(g*5.9604644775390625e-08);c[B+(m<<2)>>2]=~~(g-+(z|0)*16777216.0);t=m+1|0;c[B+(t<<2)>>2]=z;l=l+24|0;break}}while(0);s=(t|0)>-1;if(s){g=+Ny(1.0,l);l=t;while(1){h[C+(l<<3)>>3]=g*+(c[B+(l<<2)>>2]|0);if((l|0)>0){g=g*5.9604644775390625e-08;l=l+-1|0}else break}if(s){p=~A;r=t;d=-1;while(1){l=0-(d>>>0>p>>>0?d:p)|0;q=t-r|0;g=0.0;m=0;do{g=g+ +h[43192+(m<<3)>>3]*+h[C+(m+r<<3)>>3];m=m+1|0}while((m|0)!=(l|0));h[D+(q<<3)>>3]=g;if((r|0)>0){r=r+-1|0;d=d+-1|0}else break}}}c:do switch(f|0){case 0:{if(s){g=0.0;l=t;while(1){g=g+ +h[D+(l<<3)>>3];if((l|0)>0)l=l+-1|0;else break}}else g=0.0;h[b>>3]=(n|0)==0?g:-g;break}case 2:case 1:{if(s){g=0.0;l=t;while(1){g=g+ +h[D+(l<<3)>>3];if((l|0)>0)l=l+-1|0;else break}}else g=0.0;m=(n|0)==0;h[b>>3]=m?g:-g;g=+h[D>>3]-g;if((t|0)>=1){l=1;while(1){g=g+ +h[D+(l<<3)>>3];if((l|0)==(t|0))break;else l=l+1|0}}h[b+8>>3]=m?g:-g;break}case 3:{if((t|0)>0){g=+h[D+(t<<3)>>3];l=t;do{C=l;l=l+-1|0;f=D+(l<<3)|0;k=+h[f>>3];j=g;g=k+g;h[D+(C<<3)>>3]=j+(k-g);h[f>>3]=g}while((C|0)>1);l=(t|0)>1;if(l){g=+h[D+(t<<3)>>3];m=t;do{f=m;m=m+-1|0;C=D+(m<<3)|0;k=+h[C>>3];j=g;g=k+g;h[D+(f<<3)>>3]=j+(k-g);h[C>>3]=g}while((m|0)>1);if(l){g=0.0;l=t;do{g=g+ +h[D+(l<<3)>>3];l=l+-1|0}while((l|0)>1)}else g=0.0}else g=0.0}else g=0.0;k=+h[D>>3];j=+h[D+8>>3];if(!n){h[b>>3]=k;h[b+8>>3]=j;h[b+16>>3]=g;break c}else{h[b>>3]=-k;h[b+8>>3]=-j;h[b+16>>3]=-g;break c}}default:{}}while(0);i=E;return o&7|0}function Cy(a,b,c){a=+a;b=+b;c=c|0;var d=0.0,e=0.0,f=0.0;d=a*a;e=d*(d*d)*(d*1.58969099521155e-10+-2.5050760253406863e-08)+(d*(d*2.7557313707070068e-06+-1.984126982985795e-04)+.00833333333332249);f=d*a;if(!c)d=f*(d*e+-.16666666666666632)+a;else d=a-(f*.16666666666666632+(d*(b*.5-f*e)-b));return +d}function Dy(a){a=+a;var b=0,d=0,e=0.0,f=0.0;h[k>>3]=a;b=c[k+4>>2]|0;d=b&2147483647;do if(d>>>0>2146435071)a=a+a;else{if(d>>>0<1048576){h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;d=b&2147483647;if(!d)break;d=((d>>>0)/3|0)+696219795|0}else d=((d>>>0)/3|0)+715094163|0;c[k>>2]=0;c[k+4>>2]=d|b&-2147483648;f=+h[k>>3];e=f/a*(f*f);h[k>>3]=f*(e*(e*e)*(e*.14599619288661245+-.758397934778766)+(e*(e*1.6214297201053545+-1.8849797954337717)+1.87595182427177));b=wB(c[k>>2]|0,c[k+4>>2]|0,-2147483648,0)|0;d=C;c[k>>2]=b&-1073741824;c[k+4>>2]=d;e=+h[k>>3];a=a/(e*e);a=e+(a-e)/(a+(e+e))*e}while(0);return +a}function Ey(a,b){a=+a;b=+b;var d=0,e=0;h[k>>3]=a;e=c[k>>2]|0;d=c[k+4>>2]|0;h[k>>3]=b;d=c[k+4>>2]&-2147483648|d&2147483647;c[k>>2]=e;c[k+4>>2]=d;return +(+h[k>>3])}function Fy(a,b){a=+a;b=+b;return +(+Ey(a,b))}function Gy(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;h[k>>3]=a;d=c[k>>2]|0;m=c[k+4>>2]|0;h[k>>3]=b;n=c[k>>2]|0;o=c[k+4>>2]|0;e=yB(d|0,m|0,52)|0;e=e&2047;j=yB(n|0,o|0,52)|0;j=j&2047;p=m&-2147483648;i=DB(n|0,o|0,1)|0;l=C;a:do if(!((i|0)==0&(l|0)==0)?(g=o&2147483647,!(g>>>0>2146435072|(g|0)==2146435072&n>>>0>0|(e|0)==2047)):0){f=DB(d|0,m|0,1)|0;g=C;if(!(g>>>0>l>>>0|(g|0)==(l|0)&f>>>0>i>>>0))return +((f|0)==(i|0)&(g|0)==(l|0)?a*0.0:a);if(!e){e=DB(d|0,m|0,12)|0;f=C;if((f|0)>-1|(f|0)==-1&e>>>0>4294967295){g=e;e=0;do{e=e+-1|0;g=DB(g|0,f|0,1)|0;f=C}while((f|0)>-1|(f|0)==-1&g>>>0>4294967295)}else e=0;d=DB(d|0,m|0,1-e|0)|0;f=C}else f=m&1048575|1048576;if(!j){g=DB(n|0,o|0,12)|0;i=C;if((i|0)>-1|(i|0)==-1&g>>>0>4294967295){j=0;do{j=j+-1|0;g=DB(g|0,i|0,1)|0;i=C}while((i|0)>-1|(i|0)==-1&g>>>0>4294967295)}else j=0;n=DB(n|0,o|0,1-j|0)|0;m=C}else m=o&1048575|1048576;l=vB(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;b:do if((e|0)>(j|0)){while(1){if(g)if((d|0)==(n|0)&(f|0)==(m|0))break;else{d=l;f=i}d=DB(d|0,f|0,1)|0;f=C;e=e+-1|0;l=vB(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;if((e|0)<=(j|0))break b}b=a*0.0;break a}while(0);if(g)if((d|0)==(n|0)&(f|0)==(m|0)){b=a*0.0;break}else{f=i;d=l}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=DB(d|0,f|0,1)|0;f=C;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=wB(d|0,f|0,0,-1048576)|0;d=C;e=DB(e|0,0,52)|0;d=d|C;e=o|e}else{e=yB(d|0,f|0,1-e|0)|0;d=C}c[k>>2]=e;c[k+4>>2]=d|p;b=+h[k>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function Hy(a,b){a=+a;b=+b;return +(+Gy(a,b))}function Iy(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=yB(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+Iy(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function Jy(a,b){a=+a;b=b|0;return +(+Iy(a,b))}function Ky(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;h[k>>3]=a;m=c[k>>2]|0;g=c[k+4>>2]|0;h[k>>3]=b;e=c[k>>2]|0;g=g&2147483647;f=c[k+4>>2]&2147483647;i=g>>>0<f>>>0|(g|0)==(f|0)&m>>>0<e>>>0;l=i?e:m;j=i?f:g;e=i?m:e;f=i?g:f;g=yB(l|0,j|0,52)|0;i=yB(e|0,f|0,52)|0;c[k>>2]=l;c[k+4>>2]=j;a=+h[k>>3];c[k>>2]=e;c[k+4>>2]=f;b=+h[k>>3];do if((i|0)!=2047){if(!((e|0)==0&(f|0)==0|(g|0)==2047)){if((g-i|0)>64){a=a+b;break}if(g>>>0<=1533)if(i>>>0<573){a=a*5260135901548373507240989.0e186;b=b*5260135901548373507240989.0e186;d=1.90109156629516e-211}else d=1.0;else{a=a*1.90109156629516e-211;b=b*1.90109156629516e-211;d=5260135901548373507240989.0e186}o=a*134217729.0;o=o+(a-o);n=a-o;a=a*a;q=b*134217729.0;q=q+(b-q);p=b-q;b=b*b;a=d*+O(+(a+(b+(p*p+(q*q-b+q*2.0*p)+(n*n+(o*o-a+o*2.0*n))))))}}else a=b;while(0);return +a}function Ly(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){if((d|0)==0&(b&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;m=+h[k>>3]+-1.0;a=m*(m*.5);j=m/(m+2.0);l=j*j;i=l*l;h[k>>3]=m-a;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=j*(a+(i*(i*(i*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(i*(i*(i*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(m-g-a);m=g*.4342944818781689;i=+(d+(f>>>20)|0);l=i*.30102999566361177;j=l+m;a=j+(m+(l-j)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function My(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){if((d|0)==0&(b&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;l=+h[k>>3]+-1.0;a=l*(l*.5);m=l/(l+2.0);i=m*m;j=i*i;h[k>>3]=l-a;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=m*(a+(j*(j*(j*.15313837699209373+.22222198432149784)+.3999999999940942)+i*(j*(j*(j*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(l-g-a);l=g*1.4426950407214463;j=+(d+(f>>>20)|0);i=j+l;a=i+(l+(j-i)+(a*1.4426950407214463+(g+a)*1.6751713164886512e-10))}return +a}function Ny(a,b){a=+a;b=b|0;var d=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;d=b+-1023|0;if((d|0)>1023){d=b+-2046|0;d=(d|0)>1023?1023:d;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;if((d|0)<-1022){d=b+2044|0;d=(d|0)<-1022?-1022:d;a=a*2.2250738585072014e-308}}else d=b;d=DB(d+1023|0,0,52)|0;b=C;c[k>>2]=d;c[k+4>>2]=b;return +(a*+h[k>>3])}function Oy(a,b){a=+a;b=b|0;return +(+Ny(a,b))}function Py(a,b,d){a=+a;b=b|0;d=d|0;var e=0.0,f=0,g=0,j=0,l=0;j=i;i=i+16|0;g=j;h[k>>3]=a;f=c[k+4>>2]&2147483647;a:do if(f>>>0<1072243196)if(f>>>0<1044816030){h[b>>3]=a;h[d>>3]=1.0;break}else{h[b>>3]=+Cy(a,0.0,0);h[d>>3]=+zy(a,0.0);break}else{if(f>>>0>2146435071){e=a-a;h[d>>3]=e;h[b>>3]=e;break}f=Ay(a,g)|0;l=g+8|0;e=+Cy(+h[g>>3],+h[l>>3],1);a=+zy(+h[g>>3],+h[l>>3]);switch(f&3|0){case 0:{h[b>>3]=e;h[d>>3]=a;break a}case 1:{h[b>>3]=a;h[d>>3]=-e;break a}case 2:{h[b>>3]=-e;h[d>>3]=-a;break a}default:{h[b>>3]=-a;h[d>>3]=e;break a}}}while(0);i=j;return}function Qy(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+32|0;h=k;do if((g&4095|0)==0&(((g|0)<0)<<31>>31&-4096|0)==0){if(b>>>0>2147483646){c[(qy()|0)>>2]=12;f=-1;break}j=(e&16|0)!=0;if(j)bB(-1);c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=d;c[h+12>>2]=e;c[h+16>>2]=f;c[h+20>>2]=g>>12;f=xy(Qa(192,h|0)|0)|0;if(j)cB()}else{c[(qy()|0)>>2]=22;f=-1}while(0);i=k;return f|0}function Ry(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;bB(-1);c[e>>2]=a;c[e+4>>2]=b;a=xy(La(91,e|0)|0)|0;cB();i=d;return a|0}function Sy(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;g=l;j=(f|0)==0?91088:f;f=c[j>>2]|0;a:do if(!d)if(!f)f=0;else k=15;else{h=(b|0)==0?g:b;if(!e)f=-2;else{if(!f){f=a[d>>0]|0;g=f&255;if(f<<24>>24>-1){c[h>>2]=g;f=f<<24>>24!=0&1;break}f=g+-194|0;if(f>>>0>50){k=15;break}f=c[90464+(f<<2)>>2]|0;g=e+-1|0;if(g){d=d+1|0;k=9}}else{g=e;k=9}b:do if((k|0)==9){b=a[d>>0]|0;m=(b&255)>>>3;if((m+-16|m+(f>>26))>>>0>7){k=15;break a}while(1){d=d+1|0;f=(b&255)+-128|f<<6;g=g+-1|0;if((f|0)>=0)break;if(!g)break b;b=a[d>>0]|0;if((b&-64)<<24>>24!=-128){k=15;break a}}c[j>>2]=0;c[h>>2]=f;f=e-g|0;break a}while(0);c[j>>2]=f;f=-2}}while(0);if((k|0)==15){c[j>>2]=0;c[(qy()|0)>>2]=84;f=-1}i=l;return f|0}function Ty(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0;return a&1|0}function Uy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k;a:do if(!e)g=0;else{do if(f){j=(b|0)==0?g:b;g=a[e>>0]|0;b=g&255;if(g<<24>>24>-1){c[j>>2]=b;g=g<<24>>24!=0&1;break a}g=b+-194|0;if(g>>>0<=50){b=e+1|0;h=c[90464+(g<<2)>>2]|0;if(f>>>0<4?(h&-2147483648>>>((f*6|0)+-6|0)|0)!=0:0)break;g=d[b>>0]|0;f=g>>>3;if((f+-16|f+(h>>26))>>>0<=7){g=g+-128|h<<6;if((g|0)>=0){c[j>>2]=g;g=2;break a}b=d[e+2>>0]|0;if((b&192|0)==128){b=b+-128|g<<6;if((b|0)>=0){c[j>>2]=b;g=3;break a}g=d[e+3>>0]|0;if((g&192|0)==128){c[j>>2]=g+-128|b<<6;g=4;break a}}}}}while(0);c[(qy()|0)>>2]=84;g=-1}while(0);i=k;return g|0}function Vy(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(qy()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function Wy(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Vy(a,b,0)|0;return a|0}function Xy(a,c){a=a|0;c=c|0;var d=0,f=0,g=0;g=a+2|0;f=a+4|0;d=JB((e[c+2>>1]|0)<<16|(e[c>>1]|0)|0,e[c+4>>1]|0|0,(e[g>>1]|0)<<16|(e[a>>1]|0)|0,e[f>>1]|0|0)|0;c=wB(d|0,C|0,e[c+6>>1]|0|0,0)|0;d=C;b[a>>1]=c;a=yB(c|0,d|0,16)|0;b[g>>1]=a;b[f>>1]=d;C=d&65535;return c|0}function Yy(){var a=0,b=0;b=Xy(97208,97214)|0;b=DB(b|0,C|0,4)|0;a=C|1072693248;c[k>>2]=b;c[k+4>>2]=a;return +(+h[k>>3]+-1.0)}function Zy(a){a=a|0;b[48611]=b[48604]|0;b[48612]=b[48605]|0;b[48613]=b[48606]|0;b[48604]=b[a>>1]|0;b[48605]=b[a+2>>1]|0;b[48606]=b[a+4>>1]|0;return 97222}function _y(a){a=a|0;var c=0,d=0;c=i;i=i+16|0;d=c;b[d>>1]=13070;b[d+2>>1]=a;b[d+4>>1]=a>>>16;Zy(d)|0;i=c;return}function $y(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+80|0;B=J+68|0;A=J+64|0;C=J+60|0;z=J+56|0;w=J+52|0;u=J+48|0;v=J+44|0;j=J;G=oB(20)|0;a:do if(!G)b=12;else{I=oB(2048)|0;H=G+16|0;c[H>>2]=I;if(!I){pB(G);b=12;break}c[G>>2]=512;c[G+4>>2]=10240;c[G+8>>2]=128;y=G+12|0;c[y>>2]=0;I=cz(0,0)|0;if(!I){pB(c[H>>2]|0);pB(G);b=12;break}e=j;f=e+44|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[j>>2]=I;c[j+4>>2]=G;c[j+12>>2]=b;c[j+36>>2]=d;e=j+28|0;c[e>>2]=-1;b=EA(j)|0;b:do if(!b){h=j+20|0;g=c[h>>2]|0;b=g+-1|0;c[a>>2]=b;x=c[j+8>>2]|0;f=c[e>>2]|0;if((f|0)>-1?(c[j+32>>2]|0)!=0:0){g=0;b=2;f=0;e=0;break}if((f|0)<=(b|0)){e=qB(1,68)|0;if(e){E=f>>>31;c[e+60>>2]=E^1;c[e+64>>2]=c[j+32>>2];c[e+28>>2]=g;if((d&8|0)==0|(E|0)!=1){b=FA(0,G,x,e)|0;if(b){g=0;f=0;break}g=c[e+40>>2]|0;if((g|0)>0){b=(g<<2)+4|0;f=oB(b)|0;if(!f){g=0;b=12;f=0;break}c[e+32>>2]=f;CB(f|0,-1,b|0)|0}else f=0;E=qB(g<<1|1,4)|0;c[e+36>>2]=E;if(!E){g=0;b=12;f=0;break}b=qB(c[h>>2]|0,12)|0;if(!b){g=0;b=12;f=0;break}c[e+16>>2]=b;b=FA(I,G,x,e)|0;if(b){g=0;f=0;break}}else f=0;E=j+24|0;t=c[y>>2]|0;c[C>>2]=0;c[z>>2]=0;c[A>>2]=x;c[B>>2]=c[A>>2];b=GA(G,B)|0;c:do if(!b){c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b){b=c[y>>2]|0;d:do if((b|0)>(t|0)){h=0;s=0;j=0;while(1){q=b+-1|0;c[y>>2]=q;g=c[H>>2]|0;q=c[g+(q<<2)>>2]|0;r=b+-2|0;c[y>>2]=r;r=c[g+(r<<2)>>2]|0;e:do switch(q|0){case 0:{switch(c[r>>2]|0){case 0:{b=c[r+4>>2]|0;r=c[b>>2]|0;if(!((r|0)>-1|(r|0)==-4)){g=s;break e}r=b+8|0;b=(c[r>>2]|0)+h|0;c[r>>2]=b;if((b|0)<=(c[z>>2]|0)){g=s;break e}c[z>>2]=b;g=s;break e}case 3:{g=c[r+4>>2]|0;c[A>>2]=c[g+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=c[g>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;break}case 1:{g=c[r+4>>2]|0;c[A>>2]=c[g+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=c[g>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;break}case 2:{g=c[r+4>>2]|0;c[A>>2]=h;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=r;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=1;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=c[g>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;if((c[g+4>>2]|0)<=1?(c[g+8>>2]|0)<=1:0)b=h;else{c[C>>2]=0;b=0}h=b;g=s+1|0;break e}default:{g=s;break e}}if(!b)g=s;else break d;break}case 1:{p=r+4|0;n=c[p>>2]|0;q=b+-3|0;c[y>>2]=q;q=c[g+(q<<2)>>2]|0;c[C>>2]=q;l=n+4|0;b=c[l>>2]|0;if((b|0)<=1)if((c[n+8>>2]|0)>1){c[w>>2]=0;if((b|0)>0){m=n;D=50}else{m=n;h=q;o=0;D=56}}else h=q;else{c[w>>2]=0;m=n;D=50}f:do if((D|0)==50){D=0;b=HA(I,G,c[m>>2]|0,(b|0)>1?1:2,C,f,u,z)|0;if(!b){k=1;h=q;g=0}else break c;while(1){b=c[u>>2]|0;if(!g)g=b;else g=IA(I,g,b)|0;if(!g){b=12;break c}b=c[l>>2]|0;if((k|0)>=(b|0)){o=g;D=56;break f}h=c[C>>2]|0;k=k+1|0;b=HA(I,G,c[m>>2]|0,(k|0)<(b|0)?1:2,C,f,u,z)|0;if(b)break c}}while(0);if((D|0)==56){D=0;l=n+8|0;g=c[l>>2]|0;do if((g|0)==-1){h=c[C>>2]|0;b=HA(I,G,c[m>>2]|0,0,C,0,w,z)|0;if(b)break c;b=JA(I,c[w>>2]|0,0,-1,0)|0;c[w>>2]=b;if(!b){b=12;break c}}else{if((b|0)<(g|0)){g=0;k=b}else{b=0;break}while(1){h=c[C>>2]|0;b=HA(I,G,c[m>>2]|0,0,C,0,v,z)|0;if(b)break c;if(!g){b=c[v>>2]|0;c[w>>2]=b}else{b=IA(I,c[v>>2]|0,g)|0;c[w>>2]=b}if(!b){b=12;break c}g=KA(I,0,20)|0;if(!g){b=12;break c}n=c[g+4>>2]|0;c[n>>2]=-1;c[n+4>>2]=-1;c[n+8>>2]=-1;b=LA(I,g,b)|0;c[w>>2]=b;k=k+1|0;if(!b){b=12;break c}if((k|0)>=(c[l>>2]|0))break;else g=b}}while(0);c[C>>2]=h;do if(!o)D=71;else{if(!b){b=o;break}b=IA(I,o,b)|0;D=71}while(0);if((D|0)==71){D=0;if(!b){b=12;break c}}c[p>>2]=c[b+4>>2];c[r>>2]=c[b>>2]}g=s+-1|0;b=h-q+j|0;if(!g){c[C>>2]=b;h=b;g=0;j=b}else j=b;break}default:g=s}while(0);b=c[y>>2]|0;if((b|0)<=(t|0)){b=0;break d}else s=g}}else{j=0;b=0}while(0);w=(c[E>>2]|0)+j|0;v=c[z>>2]|0;c[E>>2]=(v|0)>(w|0)?v:w}}while(0);if(!b){b=c[E>>2]|0;c[E>>2]=b+1;f=KA(I,0,20)|0;if((f|0)!=0?(F=c[f+4>>2]|0,c[F>>2]=0,c[F+4>>2]=0,c[F+8>>2]=b,F=IA(I,x,f)|0,(F|0)!=0):0){l=c[y>>2]|0;c[A>>2]=F;c[B>>2]=c[A>>2];b=GA(G,B)|0;g:do if(!b){c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b){b=c[y>>2]|0;h:do if((b|0)>(l|0)){i:while(1){x=b+-1|0;c[y>>2]=x;w=c[H>>2]|0;x=c[w+(x<<2)>>2]|0;k=b+-2|0;c[y>>2]=k;k=c[w+(k<<2)>>2]|0;j:do switch(x|0){case 0:switch(c[k>>2]|0){case 0:{h=c[k+4>>2]|0;g=c[h>>2]|0;if((g|0)==-4){c[k+8>>2]=0;b=h+8|0;x=MA(I,c[b>>2]|0,0,1114111,0,0,-1)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=MA(I,c[b>>2]|0,0,1114111,0,0,c[h+4>>2]|0)|0;c[k+28>>2]=x;if(!x){b=12;break g}else break j}b=k+8|0;if((g|0)<0){c[b>>2]=1;x=NA(I)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=NA(I)|0;c[k+28>>2]=x;if(!x){b=12;break g}else break j}else{c[b>>2]=0;b=h+8|0;f=h+4|0;x=MA(I,c[b>>2]|0,g,c[f>>2]|0,0,0,-1)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=MA(I,c[b>>2]|0,c[h>>2]|0,c[f>>2]|0,c[h+12>>2]|0,c[h+16>>2]|0,-1)|0;c[k+28>>2]=x;if(!x){b=12;break g}else break j}}case 3:{c[A>>2]=k;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=1;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;f=k+4|0;c[A>>2]=c[(c[f>>2]|0)+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=c[c[f>>2]>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b)break j;else break g}case 1:{c[A>>2]=k;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=2;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;f=k+4|0;c[A>>2]=c[(c[f>>2]|0)+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=c[c[f>>2]>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b)break j;else break g}case 2:{c[A>>2]=k;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=3;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=c[c[k+4>>2]>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b)break j;else break g}default:break j}case 1:{b=c[k+4>>2]|0;f=c[b>>2]|0;g=b+4|0;h=c[g>>2]|0;if(!(c[f+8>>2]|0))j=(c[h+8>>2]|0)!=0;else j=1;c[k+8>>2]=j&1;x=OA(I,c[f+24>>2]|0,c[h+24>>2]|0,0,0)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=OA(I,c[(c[b>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+28>>2]|0,0,0)|0;c[k+28>>2]=x;if(!x){b=12;break g}break}case 3:{x=c[k+4>>2]|0;b=c[x>>2]|0;do if(!(c[x+4>>2]|0))D=116;else{if(c[b+8>>2]|0){D=116;break}c[k+8>>2]=0}while(0);if((D|0)==116){D=0;c[k+8>>2]=1}c[k+24>>2]=c[b+24>>2];c[k+28>>2]=c[b+28>>2];break}case 2:{h=c[k+4>>2]|0;b=c[h>>2]|0;f=b+8|0;if(!(c[f>>2]|0))g=0;else g=(c[(c[h+4>>2]|0)+8>>2]|0)!=0;c[k+8>>2]=g&1;if(c[f>>2]|0){b=PA(G,b,0,0,C)|0;if(b)break g;f=oB((c[C>>2]<<2)+4|0)|0;if(!f){b=12;break g}c[f>>2]=-1;c[z>>2]=0;b=PA(G,c[h>>2]|0,f,z,0)|0;if(b){D=125;break i}b=h+4|0;x=k+24|0;c[x>>2]=OA(I,c[(c[b>>2]|0)+24>>2]|0,c[(c[h>>2]|0)+24>>2]|0,f,c[z>>2]|0)|0;pB(f);if(!(c[x>>2]|0)){b=12;break g}else g=b}else{c[k+24>>2]=c[b+24>>2];g=h+4|0}b=c[g>>2]|0;if(!(c[b+8>>2]|0)){c[k+28>>2]=c[b+28>>2];break j}b=PA(G,b,0,0,C)|0;if(b)break g;f=oB((c[C>>2]<<2)+4|0)|0;if(!f){b=12;break g}c[f>>2]=-1;c[z>>2]=0;b=PA(G,c[g>>2]|0,f,z,0)|0;if(b){D=132;break i}x=k+28|0;c[x>>2]=OA(I,c[(c[h>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+28>>2]|0,f,c[z>>2]|0)|0;pB(f);if(!(c[x>>2]|0)){b=12;break g}break}default:{}}while(0);b=c[y>>2]|0;if((b|0)<=(l|0))break h}if((D|0)==125){pB(f);break g}else if((D|0)==132){pB(f);break g}}while(0);g=c[E>>2]|0;b=g<<2;r=oB(b)|0;if(!r){g=r;b=12;f=0;break b}f=oB(b)|0;if(!f){g=r;b=12;break b}if((g|0)>0)CB(r|0,0,((g|0)>1?g<<2:4)|0)|0;QA(F,0,r,0)|0;g=c[E>>2]|0;if((g|0)>0){b=0;h=0;do{c[f+(h<<2)>>2]=b;D=r+(h<<2)|0;b=b+1+(c[D>>2]|0)|0;c[D>>2]=0;h=h+1|0}while((h|0)<(g|0));q=b}else q=0;o=qB(q+1|0,32)|0;if(!o){g=r;b=12;break b}c[e>>2]=o;p=e+4|0;c[p>>2]=q;b=QA(F,o,r,f)|0;if(b){g=r;break b}c[e+20>>2]=0;h=F+24|0;b=0;g=c[h>>2]|0;while(1){b=b+1|0;if((c[g>>2]|0)>-1)g=g+32|0;else break}n=qB(b,32)|0;if(!n){g=r;b=12;break b}c[e+8>>2]=n;g=c[h>>2]|0;b=c[g>>2]|0;if((b|0)>-1){h=b;b=0;do{c[n+(b<<5)+8>>2]=o+(c[f+(h<<2)>>2]<<5);c[n+(b<<5)+12>>2]=h;l=n+(b<<5)+16|0;c[l>>2]=0;m=g+12|0;j=c[m>>2]|0;if(j){k=0;while(1){h=k+1|0;if((c[j+(k<<2)>>2]|0)>-1)k=h;else break}h=h<<2;j=oB(h)|0;c[l>>2]=j;if(!j){g=r;b=12;break b}AB(j|0,c[m>>2]|0,h|0)|0}c[n+(b<<5)+20>>2]=c[g+16>>2];b=b+1|0;g=g+32|0;h=c[g>>2]|0}while((h|0)>-1)}else b=0;c[n+(b<<5)+8>>2]=0;c[p>>2]=q;c[e+12>>2]=o+(c[f+(c[c[F+28>>2]>>2]<<2)>>2]<<5);c[e+52>>2]=c[E>>2];c[e+56>>2]=d;dz(I);pB(c[H>>2]|0);pB(G);pB(r);pB(f);c[a+4>>2]=e;b=0;break a}}while(0);g=0;f=0}else{g=0;b=12;f=0}}else{g=0;f=0}}else{g=0;b=12;f=0}}else{g=0;b=6;f=0;e=0}}else{g=0;f=0;e=0}while(0);dz(I);pB(c[H>>2]|0);pB(G);if(g)pB(g);if(f)pB(f);c[a+4>>2]=e;az(a)}while(0);i=J;return b|0}function az(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=c[a+4>>2]|0;if(g){e=g+4|0;a=c[g>>2]|0;if(c[e>>2]|0){d=0;do{if(c[a+(d<<5)+8>>2]|0){b=c[a+(d<<5)+16>>2]|0;if(b){pB(b);a=c[g>>2]|0}b=c[a+(d<<5)+28>>2]|0;if(b){pB(b);a=c[g>>2]|0}}d=d+1|0}while(d>>>0<(c[e>>2]|0)>>>0)}if(a)pB(a);d=g+8|0;a=c[d>>2]|0;if(a){if(c[a+8>>2]|0){while(1){b=c[a+16>>2]|0;if(b)pB(b);if(!(c[a+40>>2]|0))break;else a=a+32|0}a=c[d>>2]|0}pB(a)}e=g+16|0;a=c[e>>2]|0;if(a){f=g+28|0;b=c[f>>2]|0;if(b){d=0;while(1){a=c[a+(d*12|0)+8>>2]|0;if(a){pB(a);b=c[f>>2]|0}d=d+1|0;if(d>>>0>=b>>>0)break;a=c[e>>2]|0}a=c[e>>2]|0}pB(a)}a=c[g+32>>2]|0;if(a)pB(a);a=c[g+20>>2]|0;if(a)pB(a);a=c[g+36>>2]|0;if(a)pB(a);pB(g)}return}function bz(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+16|0;R=X;V=c[a+4>>2]|0;W=V+56|0;U=(c[W>>2]&8|0)==0?d:0;M=V+40|0;a=c[M>>2]|0;if((a|0)>0&(U|0)!=0){a=oB(a<<2)|0;if(!a)a=12;else{T=a;S=3}}else{T=0;S=3}if((S|0)==3){if(!(c[V+60>>2]|0)){c[R>>2]=0;k=f&1;P=f&2;j=c[W>>2]&4;if(!T)O=0;else O=c[M>>2]|0;N=O<<2;h=c[V+52>>2]|0;f=h<<3;d=f+8|0;a=N+12+f+(d+(_(N,h)|0)<<1)|0;Q=oB(a)|0;if(!Q){a=12;d=0}else{CB(Q|0,0,a|0)|0;a=Q+N&3;a=((a|0)==0?0:4-a|0)+N|0;m=Q+a|0;a=a+d|0;l=Q+a&3;a=((l|0)==0?0:4-l|0)+a|0;l=Q+a|0;a=a+d|0;M=Q+a&3;a=((M|0)==0?0:4-M|0)+a|0;M=Q+a|0;a=a+f|0;d=Q+a&3;if((h|0)>0){f=O<<3;g=0;a=Q+(((d|0)==0?0:4-d|0)+a)|0;while(1){c[l+(g<<3)+4>>2]=a;c[m+(g<<3)+4>>2]=a+N;g=g+1|0;if((g|0)==(h|0)){a=0;break}else a=a+f|0}do{c[M+(a<<3)>>2]=-1;a=a+1|0}while((a|0)!=(h|0))}a=Uy(R,b,4)|0;if((a|0)<1)if((a|0)<0){d=0;a=1}else{h=1;S=198}else{h=a;S=198}a:do if((S|0)==198){L=V+8|0;K=(j|0)!=0;D=(k|0)!=0;E=(O|0)>0;F=V+12|0;G=V+44|0;H=V+32|0;I=V+36|0;J=(O|0)==0;C=E^1;a=-1;g=0;v=0;f=h;d=0;y=l;w=m;k=m;u=b+h|0;B=Q;while(1){if((a|0)<0){j=c[L>>2]|0;h=j+8|0;b:do if(!(c[h>>2]|0))d=k;else{p=(v|0)!=0;q=(d|0)==95;r=(v|0)==0;t=K&(d|0)==10;s=(D|(v|0)>0)^1;o=k;while(1){c:while(1){n=j+12|0;if((c[M+(c[n>>2]<<3)>>2]|0)>=(v|0)){k=o;break}m=j+20|0;k=c[m>>2]|0;if(!k){m=n;S=233;break}d:do if(t|((k&1|0)==0|s)){if((k&2|0)!=0?(b=c[R>>2]|0,!((b|P|0)==0|K&(b|0)==10)):0)break;do if(k&16){if(q)break d;if($x(d)|0)break d;k=c[R>>2]|0;if((k|0)==95)break;if(!($x(k)|0))break d}while(0);k=c[m>>2]|0;if(k&32){if(q){k=c[R>>2]|0;if((k|0)==95)break}else{b=($x(d)|0)==0;k=c[R>>2]|0;if(b|(k|0)==95)break}if($x(k)|0)break;k=c[m>>2]|0}l=c[R>>2]|0;do if((l|0)!=0&(p&(k&64|0)!=0)){if(q)k=1;else{k=($x(d)|0)!=0;l=c[R>>2]|0}if((l|0)==95)if(k)break d;else break;else if(k^($x(l)|0)!=0)break;else break d}while(0);if(!(c[m>>2]&128)){m=n;S=233;break c}k=c[R>>2]|0;if(r|(k|0)==0)break;if(q)l=1;else{l=($x(d)|0)!=0;k=c[R>>2]|0}if((k|0)==95)if(l){m=n;S=233;break c}else break;else if(l^($x(k)|0)!=0)break;else{m=n;S=233;break c}}while(0);h=j+40|0;if(!(c[h>>2]|0)){d=o;break b}else j=j+32|0}if((S|0)==233){S=0;c[o>>2]=c[h>>2];if(E)CB(c[o+4>>2]|0,-1,N|0)|0;k=c[j+16>>2]|0;do if(k){h=c[k>>2]|0;if((h|0)<=-1)break;l=o+4|0;do{if((h|0)<(O|0))c[(c[l>>2]|0)+(h<<2)>>2]=v;k=k+4|0;h=c[k>>2]|0}while((h|0)>-1)}while(0);h=(c[o>>2]|0)!=(c[F>>2]|0);if(h|C){k=o+4|0;a=h?a:v;g=h?g:1}else{a=o+4|0;g=c[a>>2]|0;h=0;do{c[T+(h<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(O|0));k=a;a=v;g=1}b=c[m>>2]|0;c[M+(b<<3)>>2]=v;c[M+(b<<3)+4>>2]=k;k=o+8|0}h=j+40|0;if(!(c[h>>2]|0)){d=k;break}else{o=k;j=j+32|0}}}while(0);c[d>>2]=0;d=c[R>>2]|0;if(!d)break}else{if(J)break;d=c[R>>2]|0;if(!((k|0)!=(w|0)&(d|0)!=0))break}z=v+f|0;f=Uy(R,u,4)|0;if((f|0)<1)if((f|0)<0){d=0;a=1;break a}else f=1;A=u+f|0;if((g|0)!=0&(c[G>>2]|0)!=0){if(!(c[w>>2]|0))g=y;else{n=c[I>>2]|0;o=c[n>>2]|0;p=(o|0)>-1;q=w;g=y;do{m=q+4|0;e:do if(p){k=o;l=0;do{j=c[n+((l|1)<<2)>>2]|0;if((k|0)>=(O|0))break e;h=c[m>>2]|0;if((c[h+(j<<2)>>2]|0)==(c[T+(j<<2)>>2]|0)?(c[h+(k<<2)>>2]|0)<(c[T+(k<<2)>>2]|0):0)break e;l=l+2|0;k=c[n+(l<<2)>>2]|0}while((k|0)>-1);j=m;S=262}else{j=m;h=c[m>>2]|0;S=262}while(0);if((S|0)==262){S=0;c[g>>2]=c[q>>2];x=g+4|0;b=c[x>>2]|0;c[x>>2]=h;c[j>>2]=b;g=g+8|0}q=q+8|0}while((c[q>>2]|0)!=0)}c[g>>2]=0;g=0;x=y}else{x=w;w=y}h=c[x>>2]|0;if(!h){h=w;j=B}else{r=(z|0)!=0;s=(d|0)==95;t=(z|0)==0;v=K&(d|0)==10;u=(D|(z|0)>0)^1;q=x;l=w;j=B;while(1){k=h+8|0;if(!(c[k>>2]|0))k=l;else{p=q+4|0;o=l;while(1){f:do if((c[h>>2]|0)>>>0>d>>>0)l=o;else{if((c[h+4>>2]|0)>>>0<d>>>0){l=o;break}n=h+20|0;l=c[n>>2]|0;do if(l){if(!(v|((l&1|0)==0|u))){l=o;break f}if((l&2|0)!=0?(b=c[R>>2]|0,!((b|P|0)==0|K&(b|0)==10)):0){l=o;break f}do if(l&16){if(s){l=o;break f}if($x(d)|0){l=o;break f}l=c[R>>2]|0;if((l|0)==95)break;if(!($x(l)|0)){l=o;break f}}while(0);l=c[n>>2]|0;if(l&32){if(s){l=c[R>>2]|0;if((l|0)==95){l=o;break f}}else{b=($x(d)|0)==0;l=c[R>>2]|0;if(b|(l|0)==95){l=o;break f}}if($x(l)|0){l=o;break f}l=c[n>>2]|0}m=c[R>>2]|0;do if((m|0)!=0&(r&(l&64|0)!=0)){if(s)l=1;else{l=($x(d)|0)!=0;m=c[R>>2]|0}if((m|0)==95)if(l){l=o;break f}else break;else if(l^($x(m)|0)!=0)break;else{l=o;break f}}while(0);do if(c[n>>2]&128){l=c[R>>2]|0;if(t|(l|0)==0){l=o;break f}if(s)m=1;else{m=($x(d)|0)!=0;l=c[R>>2]|0}if((l|0)==95)if(m)break;else{l=o;break f}else if(m^($x(l)|0)!=0){l=o;break f}else break}while(0);l=c[n>>2]|0;do if(l&4){if(c[W>>2]&2)break;if(!(dy(d,c[h+24>>2]|0)|0)){l=o;break f}l=c[n>>2]|0}while(0);do if(l&4){if(!(c[W>>2]&2))break;b=py(d)|0;l=h+24|0;if(dy(b,c[l>>2]|0)|0)break;b=oy(d)|0;if(!(dy(b,c[l>>2]|0)|0)){l=o;break f}}while(0);if(!(c[n>>2]&8))break;if(TA(c[h+28>>2]|0,d,c[W>>2]&2)|0){l=o;break f}}while(0);if(E){l=c[p>>2]|0;m=0;do{c[j+(m<<2)>>2]=c[l+(m<<2)>>2];m=m+1|0}while((m|0)!=(O|0))}m=c[h+16>>2]|0;do if(m){l=c[m>>2]|0;if((l|0)<=-1)break;do{if((l|0)<(O|0))c[j+(l<<2)>>2]=z;m=m+4|0;l=c[m>>2]|0}while((l|0)>-1)}while(0);l=c[h+12>>2]|0;m=M+(l<<3)|0;if((c[m>>2]|0)>=(z|0)){l=c[M+(l<<3)+4>>2]|0;m=c[l>>2]|0;if(!(RA(O,c[H>>2]|0,j,m)|0)){l=o;break}c[l>>2]=j;if((c[k>>2]|0)!=(c[F>>2]|0)){l=o;j=m;break}if(E)a=0;else{a=z;g=1;l=o;j=m;break}while(1){c[T+(a<<2)>>2]=c[j+(a<<2)>>2];a=a+1|0;if((a|0)==(O|0)){a=z;g=1;l=o;j=m;break f}}}b=c[k>>2]|0;c[o>>2]=b;B=o+4|0;k=c[B>>2]|0;c[B>>2]=j;c[m>>2]=z;c[M+(l<<3)+4>>2]=B;do if((b|0)==(c[F>>2]|0)){if((a|0)==-1)if(E)a=0;else{a=z;g=1;break}else{if(!E)break;if((c[j>>2]|0)>(c[T>>2]|0))break;else a=0}do{c[T+(a<<2)>>2]=c[j+(a<<2)>>2];a=a+1|0}while((a|0)!=(O|0));a=z;g=1}while(0);l=o+8|0;j=k}while(0);k=h+40|0;if(!(c[k>>2]|0)){k=l;break}else{o=l;h=h+32|0}}}q=q+8|0;h=c[q>>2]|0;if(!h){h=k;break}else l=k}}c[h>>2]=0;v=z;y=x;k=h;u=A;B=j}d=a;a=a>>>31}while(0);pB(Q)}}else{c[R>>2]=0;k=f&1;K=f&2;d=c[W>>2]&4;L=cz(0,0)|0;g:do if(L){l=ez(L,0,0,0,32)|0;if(!l){dz(L);a=12;d=0;break}c[l+24>>2]=0;c[l+28>>2]=0;j=c[M>>2]|0;if(j){f=oB(j<<2)|0;if(!f){d=0;h=0;a=12;g=0}else S=9}else{f=0;S=9}h:do if((S|0)==9){a=c[V+28>>2]|0;if(a){h=oB(a<<3)|0;if(!h){d=0;a=12;g=0;break}}else h=0;J=V+52|0;a=c[J>>2]|0;if(a){g=oB(a<<2)|0;if(!g){d=0;a=12;break}}else g=0;E=V+8|0;F=V+12|0;G=(T|0)==0;H=(T|0)!=0;I=V+32|0;D=(d|0)!=0;C=(k|0)!=0;x=0;a=-1;d=1;m=-1;n=b;i:while(1){if((j|0)>0){k=0;do{c[f+(k<<2)>>2]=-1;if(!G){c[T+(k<<2)>>2]=-1;j=c[M>>2]|0}k=k+1|0}while((k|0)<(j|0))}j=c[J>>2]|0;if((j|0)>0)CB(g|0,0,((j|0)>1?j<<2:4)|0)|0;B=d+m|0;d=Uy(R,n,4)|0;if((d|0)<1)if((d|0)<0){d=0;a=1;break h}else d=1;n=n+d|0;A=c[R>>2]|0;o=c[E>>2]|0;j=o+8|0;if(c[j>>2]|0){s=(B|0)!=0;t=(x|0)==95;u=(B|0)==0;w=D&(x|0)==10;v=(C|(B|0)>0)^1;k=0;m=0;r=o;while(1){q=r+20|0;o=c[q>>2]|0;j:do if(o){if(!(w|((o&1|0)==0|v)))break;if((o&2|0)!=0?(Q=c[R>>2]|0,!((Q|K|0)==0|D&(Q|0)==10)):0)break;do if(o&16){if(t)break j;if($x(x)|0)break j;o=c[R>>2]|0;if((o|0)==95)break;if(!($x(o)|0))break j}while(0);o=c[q>>2]|0;if(o&32){if(t){o=c[R>>2]|0;if((o|0)==95)break}else{Q=($x(x)|0)==0;o=c[R>>2]|0;if(Q|(o|0)==95)break}if($x(o)|0)break;o=c[q>>2]|0}p=c[R>>2]|0;do if((p|0)!=0&(s&(o&64|0)!=0)){if(t)o=1;else{o=($x(x)|0)!=0;p=c[R>>2]|0}if((p|0)==95)if(o)break j;else break;else if(o^($x(p)|0)!=0)break;else break j}while(0);if(!(c[q>>2]&128)){S=52;break}o=c[R>>2]|0;if(u|(o|0)==0)break;if(t)p=1;else{p=($x(x)|0)!=0;o=c[R>>2]|0}if((o|0)==95)if(p){S=52;break}else break;else if(p^($x(o)|0)!=0)break;else{S=52;break}}else S=52;while(0);do if((S|0)==52){S=0;if(!m){k=c[r+16>>2]|0;m=c[j>>2]|0;break}p=l+28|0;o=c[p>>2]|0;if(!o){o=ez(L,0,0,0,32)|0;if(!o){S=56;break i}c[o+24>>2]=l;c[o+28>>2]=0;Q=ez(L,0,0,0,c[M>>2]<<2)|0;c[o+20>>2]=Q;if(!Q){S=63;break i}c[p>>2]=o;l=o}else l=o;c[l>>2]=B;c[l+4>>2]=n;c[l+8>>2]=c[j>>2];c[l+12>>2]=c[r+12>>2];c[l+16>>2]=c[R>>2];if((c[M>>2]|0)>0){j=c[l+20>>2]|0;o=0;do{c[j+(o<<2)>>2]=c[f+(o<<2)>>2];o=o+1|0}while((o|0)<(c[M>>2]|0))}o=c[r+16>>2]|0;if(!o)break;j=c[o>>2]|0;if((j|0)<=-1)break;p=c[l+20>>2]|0;do{o=o+4|0;c[p+(j<<2)>>2]=B;j=c[o>>2]|0}while((j|0)>-1)}while(0);j=r+40|0;if(!(c[j>>2]|0)){o=l;break}else r=r+32|0}if(k){j=c[k>>2]|0;if((j|0)>-1)do{c[f+(j<<2)>>2]=B;k=k+4|0;j=c[k>>2]|0}while((j|0)>-1)}else k=0;if(!m){l=o;S=173}else{l=B;j=o;o=n}}else{k=0;S=173}k:while(1){if((S|0)==173){S=0;j=c[l+24>>2]|0;if(!j)break;q=c[l+8>>2]|0;if(c[q+20>>2]&256)c[g+(c[l+12>>2]<<2)>>2]=0;p=c[l>>2]|0;r=c[l+4>>2]|0;c[R>>2]=c[l+16>>2];o=c[M>>2]|0;if((o|0)<=0){l=p;m=q;o=r;continue}m=c[l+20>>2]|0;l=0;while(1){c[f+(l<<2)>>2]=c[m+(l<<2)>>2];l=l+1|0;if((l|0)==(o|0)){l=p;m=q;o=r;continue k}}}if((m|0)!=(c[F>>2]|0)){r=d;s=m;while(1){q=s+8|0;do if(!(c[q>>2]|0))S=97;else{if(!(c[s+20>>2]&256)){S=97;break}m=c[s+24>>2]|0;SA(m+1|0,h,c[W>>2]&-9,V,f,l);d=c[h+(m<<3)>>2]|0;m=c[h+(m<<3)+4>>2]|0;p=m-d|0;if(rA(b+d|0,o+-1|0,p)|0){d=r;l=j;S=173;continue k}Q=(m|0)==(d|0);d=Q&1;m=g+(c[s+12>>2]<<2)|0;if(Q?(c[m>>2]|0)!=0:0){d=r;l=j;S=173;continue k}c[m>>2]=d;p=p+-1|0;l=p+l|0;m=c[R>>2]|0;d=Uy(R,o+p|0,4)|0;if((d|0)<1)if((d|0)<0){d=0;a=1;break h}else d=1;p=d+p|0}while(0);do if((S|0)==97){S=0;m=c[R>>2]|0;if(!m){d=r;l=j;S=173;continue k}d=Uy(R,o,4)|0;if((d|0)>=1){p=d;break}if((d|0)<0){d=0;a=1;break h}else{p=1;d=1}}while(0);o=o+p|0;l=l+r|0;if(!(c[q>>2]|0)){l=j;S=173;continue k}v=(l|0)!=0;w=(m|0)==95;x=(l|0)==0;z=D&(m|0)==10;y=(C|(l|0)>0)^1;t=q;u=0;while(1){l:do if((c[s>>2]|0)>>>0>m>>>0)p=u;else{if((c[s+4>>2]|0)>>>0<m>>>0){p=u;break}r=s+20|0;p=c[r>>2]|0;do if(p){if(!(z|((p&1|0)==0|y))){p=u;break l}if((p&2|0)!=0?(Q=c[R>>2]|0,!((Q|K|0)==0|D&(Q|0)==10)):0){p=u;break l}do if(p&16){if(w){p=u;break l}if($x(m)|0){p=u;break l}p=c[R>>2]|0;if((p|0)==95)break;if(!($x(p)|0)){p=u;break l}}while(0);p=c[r>>2]|0;if(p&32){if(w){p=c[R>>2]|0;if((p|0)==95){p=u;break l}}else{Q=($x(m)|0)==0;p=c[R>>2]|0;if(Q|(p|0)==95){p=u;break l}}if($x(p)|0){p=u;break l}p=c[r>>2]|0}q=c[R>>2]|0;do if((q|0)!=0&(v&(p&64|0)!=0)){if(w)p=1;else{p=($x(m)|0)!=0;q=c[R>>2]|0}if((q|0)==95)if(p){p=u;break l}else break;else if(p^($x(q)|0)!=0)break;else{p=u;break l}}while(0);do if(c[r>>2]&128){p=c[R>>2]|0;if(x|(p|0)==0){p=u;break l}if(w)q=1;else{q=($x(m)|0)!=0;p=c[R>>2]|0}if((p|0)==95)if(q)break;else{p=u;break l}else if(q^($x(p)|0)!=0){p=u;break l}else break}while(0);p=c[r>>2]|0;do if(p&4){if(c[W>>2]&2)break;if(!(dy(m,c[s+24>>2]|0)|0)){p=u;break l}p=c[r>>2]|0}while(0);do if(p&4){if(!(c[W>>2]&2))break;Q=py(m)|0;p=s+24|0;if(dy(Q,c[p>>2]|0)|0)break;Q=oy(m)|0;if(!(dy(Q,c[p>>2]|0)|0)){p=u;break l}}while(0);if(!(c[r>>2]&8))break;if(TA(c[s+28>>2]|0,m,c[W>>2]&2)|0){p=u;break l}}while(0);if(!u){p=c[t>>2]|0;k=c[s+16>>2]|0;break}q=j+28|0;p=c[q>>2]|0;if(!p){p=ez(L,0,0,0,32)|0;if(!p){S=146;break i}c[p+24>>2]=j;c[p+28>>2]=0;Q=ez(L,0,0,0,c[M>>2]<<2)|0;c[p+20>>2]=Q;if(!Q){S=153;break i}c[q>>2]=p;j=p}else j=p;c[j>>2]=l;c[j+4>>2]=o;c[j+8>>2]=c[t>>2];c[j+12>>2]=c[s+12>>2];c[j+16>>2]=c[R>>2];if((c[M>>2]|0)>0){p=c[j+20>>2]|0;q=0;do{c[p+(q<<2)>>2]=c[f+(q<<2)>>2];q=q+1|0}while((q|0)<(c[M>>2]|0))}q=c[s+16>>2]|0;if(!q){p=u;break}p=c[q>>2]|0;if((p|0)<=-1){p=u;break}r=c[j+20>>2]|0;do{c[r+(p<<2)>>2]=l;q=q+4|0;p=c[q>>2]|0}while((p|0)>-1);p=u}while(0);t=s+40|0;if(!(c[t>>2]|0)){m=j;break}else{u=p;s=s+32|0}}if(!p){l=m;S=173;continue k}do if(!k)k=0;else{j=c[k>>2]|0;if((j|0)<=-1)break;do{k=k+4|0;c[f+(j<<2)>>2]=l;j=c[k>>2]|0}while((j|0)>-1)}while(0);if((p|0)==(c[F>>2]|0)){j=m;break}else{r=d;j=m;s=p}}}if((a|0)>=(l|0)){if(!(H&(a|0)==(l|0))){l=j;S=173;continue}if(!(RA(c[M>>2]|0,c[I>>2]|0,f,T)|0)){l=j;S=173;continue}}if(G){a=l;l=j;S=173;continue}if((c[M>>2]|0)>0)a=0;else{a=l;l=j;S=173;continue}while(1){c[T+(a<<2)>>2]=c[f+(a<<2)>>2];a=a+1|0;if((a|0)>=(c[M>>2]|0)){a=l;l=j;S=173;continue k}}}if((a|0)>-1|(c[R>>2]|0)==0){S=181;break}c[R>>2]=A;j=c[M>>2]|0;x=A;m=B}if((S|0)==56){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==63){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==146){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==153){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==181){d=a;a=a>>>31;break}}while(0);dz(L);if(f)pB(f);if(h)pB(h);if(g)pB(g)}else{a=12;d=0}while(0)}if(!a)SA(U,e,c[W>>2]|0,V,T,d);if(T)pB(T)}i=X;return a|0}function cz(a,b){a=a|0;b=b|0;if(!a)b=qB(1,24)|0;else{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0}return b|0}function dz(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b)do{pB(c[b>>2]|0);d=b;b=c[b+4>>2]|0;pB(d)}while((b|0)!=0);pB(a);return}function ez(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=a+16|0;a:do if(!(c[h>>2]|0)){j=a+12|0;g=c[j>>2]|0;do if(g>>>0<f>>>0){if(b)if(!d){c[h>>2]=1;d=0;break a}else{h=a+8|0;c[h>>2]=d;c[j>>2]=1024;g=1024;break}g=f<<3;g=g>>>0>1024?g:1024;i=oB(8)|0;if(!i){c[h>>2]=1;d=0;break a}d=oB(g)|0;c[i>>2]=d;if(!d){pB(i);c[h>>2]=1;d=0;break a}c[i+4>>2]=0;b=a+4|0;h=c[b>>2]|0;if(h)c[h+4>>2]=i;if(!(c[a>>2]|0))c[a>>2]=i;c[b>>2]=i;h=a+8|0;c[h>>2]=d;c[j>>2]=g}else{d=a+8|0;h=d;d=c[d>>2]|0}while(0);b=d+f&3;b=((b|0)==0?0:4-b|0)+f|0;c[h>>2]=d+b;c[j>>2]=g-b;if(e)CB(d|0,0,b|0)|0}else d=0;while(0);return d|0}function fz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+64|0;g=h+16|0;f=h+8|0;d=h;e=h+24|0;c[d>>2]=a;c[d+4>>2]=b;d=Ra(197,d|0)|0;if((d|0)==-9?(c[f>>2]=a,c[f+4>>2]=1,(Va(221,f|0)|0)>=0):0){uy(e,a);c[g>>2]=e;c[g+4>>2]=b;d=xy(Sa(195,g|0)|0)|0}else d=xy(d)|0;i=h;return d|0}function gz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+112|0;n=o+40|0;l=o+24|0;k=o+16|0;g=o;m=o+52|0;f=a[d>>0]|0;if(cA(172980,f<<24>>24,4)|0){e=oB(1144)|0;if(!e)e=0;else{h=e;j=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));if(!(jA(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(jA(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;Va(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[k>>2]=b;c[k+4>>2]=3;f=Va(221,k|0)|0;if(!(f&1024)){c[l>>2]=b;c[l+4>>2]=4;c[l+8>>2]=f|1024;Va(221,l|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21505,c[n+8>>2]=m,(ab(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=9;c[e+36>>2]=7;c[e+40>>2]=8;c[e+12>>2]=15;if(!(c[22606]|0))c[e+76>>2]=-1;hb(90448);f=c[22611]|0;c[e+56>>2]=f;if(f)c[f+52>>2]=e;c[22611]=e;bb(90448)}}else{c[(qy()|0)>>2]=22;e=0}i=o;return e|0}function hz(b){b=b|0;var c=0,d=0,e=0;d=(jA(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(jA(b,120)|0)==0;d=e?d:d|128;b=(jA(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function iz(a){a=a|0;return 0}function jz(a){a=a|0;return}function kz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;k=e&255;a[l>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(sz(b)|0)){h=c[g>>2]|0;j=4}else f=-1;else j=4;do if((j|0)==4){g=b+20|0;j=c[g>>2]|0;if(j>>>0<h>>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[g>>2]=j+1;a[j>>0]=k;break}if((ub[c[b+36>>2]&31](b,l,1)|0)==1)f=d[l>>0]|0;else f=-1}while(0);i=m;return f|0}function lz(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=xy(ib(6,d|0)|0)|0;i=b;return a|0}function mz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;h=m+16|0;g=m;f=m+32|0;c[f>>2]=d;j=f+4|0;l=b+48|0;n=c[l>>2]|0;c[j>>2]=e-((n|0)!=0&1);k=b+44|0;c[f+8>>2]=c[k>>2];c[f+12>>2]=n;if(!(c[22605]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=xy(kb(145,h|0)|0)|0}else{Da(99,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=xy(kb(145,g|0)|0)|0;xa(0)}if((f|0)>=1){j=c[j>>2]|0;if(f>>>0>j>>>0){h=c[k>>2]|0;g=b+4|0;c[g>>2]=h;c[b+8>>2]=h+(f-j);if(!(c[l>>2]|0))f=e;else{c[g>>2]=h+1;a[d+(e+-1)>>0]=a[h>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=m;return f|0}function nz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((xy(ob(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function oz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;e=q+32|0;o=a+28|0;f=c[o>>2]|0;c[e>>2]=f;p=a+20|0;f=(c[p>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;k=a+60|0;l=a+44|0;b=2;f=f+d|0;while(1){if(!(c[22605]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=xy(sb(146,n|0)|0)|0}else{Da(100,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=e;c[m+8>>2]=b;h=xy(sb(146,m|0)|0)|0;xa(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[o>>2]=(c[o>>2]|0)+h;j=g;b=2}else j=g;else{j=c[l>>2]|0;c[o>>2]=j;c[p>>2]=j;j=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=j-h}if((f|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=q;return d|0}function pz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=7;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,(ab(54,f|0)|0)!=0):0)a[b+75>>0]=-1;f=oz(b,d,e)|0;i=g;return f|0}function qz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=cA(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0<d>>>0?f:d;AB(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function rz(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)ub[c[b+36>>2]&31](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function sz(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function tz(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;if((c[a+8>>2]|0)==0?(rz(a)|0)!=0:0)b=-1;else if((ub[c[a+32>>2]&31](a,b,1)|0)==1)b=d[b>>0]|0;else b=-1;i=e;return b|0}function uz(a){a=a|0;var b=0,d=0,e=0;e=(c[a>>2]&1|0)!=0;if(!e){hb(90448);d=c[a+52>>2]|0;b=a+56|0;if(d)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b)c[b+52>>2]=d;if((c[22611]|0)==(a|0))c[22611]=b;bb(90448)}b=wz(a)|0;b=Eb[c[a+12>>2]&31](a)|0|b;d=c[a+92>>2]|0;if(d)pB(d);if(!e)pB(a);return b|0}function vz(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(iz(a)|0)==0;a=(c[a>>2]|0)>>>4&1}else a=(c[a>>2]|0)>>>4&1;return a|0}function wz(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=WA(a)|0;break}d=(iz(a)|0)==0;b=WA(a)|0;if(!d)jz(a)}else{if(!(c[22670]|0))b=0;else b=wz(c[22670]|0)|0;hb(90448);a=c[22611]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=iz(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=WA(a)|0|b;if(d)jz(a);a=c[a+56>>2]|0}while((a|0)!=0);bb(90448)}while(0);return b|0}function xz(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(iz(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0}else b=tz(a)|0}else f=3;do if((f|0)==3){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0;break}else{b=tz(a)|0;break}}while(0);return b|0}function yz(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((c[f+76>>2]|0)>-1)o=iz(f)|0;else o=0;g=e+-1|0;if((e|0)<2){p=f+74|0;n=a[p>>0]|0;a[p>>0]=n+255|n;if(o)jz(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){m=f+4|0;n=f+8|0;h=b;while(1){i=c[m>>2]|0;q=i;k=(c[n>>2]|0)-q|0;j=cA(i,10,k)|0;r=(j|0)==0;j=r?k:1-q+j|0;q=j>>>0<g>>>0;j=q?j:g;AB(h|0,i|0,j|0)|0;i=c[m>>2]|0;k=i+j|0;c[m>>2]=k;e=h+j|0;l=g-j|0;if(!(r&q)){p=18;break a}if(k>>>0<(c[n>>2]|0)>>>0){j=j+1|0;c[m>>2]=i+j;i=d[k>>0]|0}else{g=tz(f)|0;if((g|0)<0)break;j=j+1|0;i=g}g=l+-1|0;h=h+j|0;a[e>>0]=i;if(!((g|0)!=0&(i&255|0)!=10)){e=h;p=18;break a}}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)p=18;else b=0}else{e=b;p=18}while(0);if((p|0)==18)if(!b)b=0;else a[e>>0]=0;if(o)jz(f)}return b|0}function zz(a){a=a|0;(c[a+76>>2]|0)>-1?(iz(a)|0)!=0:0;return c[a+60>>2]|0}function Az(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g+16|0;e=g;if(cA(172980,a[d>>0]|0,4)|0){h=hz(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=xy(eb(5,e|0)|0)|0;if((e|0)>=0){b=gz(e,d)|0;if(!b){c[f>>2]=e;ib(6,f|0)|0;b=0}}else b=0}else{c[(qy()|0)>>2]=22;b=0}i=g;return b|0}function Bz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Sz(a,b,f)|0;i=e;return d|0}function Cz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((c[d+76>>2]|0)>=0?(iz(d)|0)!=0:0){if((a[d+75>>0]|0)!=(b|0)?(f=d+20|0,g=c[f>>2]|0,g>>>0<(c[d+16>>2]|0)>>>0):0){c[f>>2]=g+1;a[g>>0]=b;e=b&255}else e=kz(d,b)|0;jz(d)}else i=3;do if((i|0)==3){if((a[d+75>>0]|0)!=(b|0)?(h=d+20|0,e=c[h>>2]|0,e>>>0<(c[d+16>>2]|0)>>>0):0){c[h>>2]=e+1;a[e>>0]=b;e=b&255;break}e=kz(d,b)|0}while(0);return e|0}function Dz(a,b){a=a|0;b=b|0;return (Mz(a,pA(a)|0,1,b)|0)+-1|0}function Ez(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;j=_(e,d)|0;if((c[f+76>>2]|0)>-1)k=iz(f)|0;else k=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;i=(c[f+8>>2]|0)-h|0;if((i|0)>0){i=i>>>0<j>>>0?i:j;AB(b|0,h|0,i|0)|0;c[g>>2]=h+i;b=b+i|0;g=j-i|0}else g=j;a:do if(!g)l=13;else{i=f+32|0;h=g;while(1){if(rz(f)|0){e=h;break}g=ub[c[i>>2]&31](f,b,h)|0;if((g+1|0)>>>0<2){e=h;break}if((h|0)==(g|0)){l=13;break a}else{b=b+g|0;h=h-g|0}}if(k)jz(f);e=((j-e|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(k)jz(f);return e|0}function Fz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((d|0)==1)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;f=a+20|0;e=a+28|0;if((c[f>>2]|0)>>>0>(c[e>>2]|0)>>>0?(ub[c[a+36>>2]&31](a,0,0)|0,(c[f>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[e>>2]=0;c[f>>2]=0;if((ub[c[a+40>>2]&31](a,b,d)|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function Gz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+76>>2]|0)>-1){e=(iz(a)|0)==0;b=Fz(a,b,d)|0;if(!e)jz(a)}else b=Fz(a,b,d)|0;return b|0}function Hz(a,b,c){a=a|0;b=b|0;c=c|0;return Gz(a,b,c)|0}function Iz(a){a=a|0;var b=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=ub[c[a+40>>2]&31](a,0,b)|0;if((b|0)>=0)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)+(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;return b|0}function Jz(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(iz(a)|0)==0;a=Iz(a)|0}else a=Iz(a)|0;return a|0}function Kz(a){a=a|0;return Jz(a)|0}function Lz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(sz(e)|0)){g=c[f>>2]|0;h=4}else f=0;else h=4;a:do if((h|0)==4){i=e+20|0;h=c[i>>2]|0;if((g-h|0)>>>0<d>>>0){f=ub[c[e+36>>2]&31](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((ub[c[e+36>>2]&31](e,b,f)|0)>>>0<f>>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);AB(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function Mz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=_(d,b)|0;if((c[e+76>>2]|0)>-1){g=(iz(e)|0)==0;a=Lz(a,f,e)|0;if(!g)jz(e)}else a=Lz(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function Nz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=Uz(a,b,d,g)|0;i=f;return e|0}function Oz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Vz(a,b,f)|0;i=e;return d|0}function Pz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Wz(a,b,f)|0;i=e;return d|0}function Qz(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+48|0;g=j+16|0;f=j;d=j+20|0;e=0;while(1){a=Rz(d)|0;if(!a){a=0;break}c[f>>2]=a;c[f+4>>2]=32962;c[f+8>>2]=384;b=xy(eb(5,f|0)|0)|0;e=e+1|0;if((b|0)>-1){h=5;break}if((e|0)>=100){a=0;break}}if((h|0)==5){h=gz(b,172984)|0;c[g>>2]=a;db(10,g|0)|0;a=h}i=j;return a|0}function Rz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+64|0;g=l+32|0;j=l+24|0;h=l+8|0;e=l;k=l+48|0;f=l+40|0;c[k>>2]=(a|0)==0?172987:a;c[e>>2]=173007;c[e+4>>2]=7;if(!($a(33,e|0)|0)){b=f+4|0;d=k;e=0;while(1){c[h>>2]=0;c[h+4>>2]=f;c[h+8>>2]=0;jb(265,h|0)|0;a=c[k>>2]|0;m=c[b>>2]^d^a;n=c[22773]|0;c[22773]=n+1;c[j>>2]=n;c[j+4>>2]=m;Nz(a,20,173012,j)|0;c[g>>2]=c[k>>2];c[g+4>>2]=0;if($a(33,g|0)|0){a=e;break}a=e+1|0;if((e|0)<100)e=a;else break}a=(a|0)>99?0:c[k>>2]|0}else a=0;i=l;return a|0}function Sz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+224|0;o=s+80|0;r=s+96|0;q=s;p=s+136|0;f=r;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[o>>2]=c[e>>2];if((XA(0,d,o,q,r)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)m=iz(b)|0;else m=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=p;j=b+28|0;c[j>>2]=p;k=b+20|0;c[k>>2]=p;c[e>>2]=80;l=b+16|0;c[l>>2]=p+80;f=XA(b,d,o,q,r)|0;if(h){ub[c[b+36>>2]&31](b,0,0)|0;f=(c[k>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[l>>2]=0;c[j>>2]=0;c[k>>2]=0}}else f=XA(b,d,o,q,r)|0;e=c[b>>2]|0;c[b>>2]=e|n;if(m)jz(b);e=(e&32|0)==0?f:-1}i=s;return e|0}-function Tz(e,f,j){e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;P=i;i=i+304|0;H=P+16|0;J=P+8|0;I=P+33|0;K=P;y=P+32|0;if((c[e+76>>2]|0)>-1)O=iz(e)|0;else O=0;k=a[f>>0]|0;a:do if(k<<24>>24){L=e+4|0;M=e+100|0;G=e+108|0;z=e+8|0;A=I+10|0;B=I+33|0;D=J+4|0;E=I+46|0;F=I+94|0;m=k;k=0;n=f;s=0;l=0;f=0;b:while(1){c:do if(!(Zx(m&255)|0)){m=(a[n>>0]|0)==37;d:do if(m){q=n+1|0;o=a[q>>0]|0;e:do switch(o<<24>>24){case 37:break d;case 42:{x=0;o=n+2|0;break}default:{o=(o&255)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[H>>2]=c[j>>2];while(1){x=(c[H>>2]|0)+(4-1)&~(4-1);m=c[x>>2]|0;c[H>>2]=x+4;if(o>>>0>1)o=o+-1|0;else break}x=m;o=n+3|0;break e}o=(c[j>>2]|0)+(4-1)&~(4-1);x=c[o>>2]|0;c[j>>2]=o+4;o=q}}while(0);m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0<10){m=0;while(1){q=(m*10|0)+-48+n|0;o=o+1|0;m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0>=10)break;else m=q}}else q=0;if(m<<24>>24==109){o=o+1|0;r=a[o>>0]|0;m=(x|0)!=0&1;l=0;f=0}else{r=m;m=0}n=o+1|0;switch(r&255|0){case 104:{w=(a[n>>0]|0)==104;n=w?o+2|0:n;o=w?-2:-1;break}case 108:{w=(a[n>>0]|0)==108;n=w?o+2|0:n;o=w?3:1;break}case 106:{o=3;break}case 116:case 122:{o=1;break}case 76:{o=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{n=o;o=0;break}default:{N=152;break b}}r=d[n>>0]|0;t=(r&47|0)==3;r=t?r|32:r;t=t?1:o;switch(r|0){case 99:{w=s;v=(q|0)<1?1:q;break}case 91:{w=s;v=q;break}case 110:{if(!x){o=s;break c}switch(t|0){case -2:{a[x>>0]=s;o=s;break c}case -1:{b[x>>1]=s;o=s;break c}case 0:{c[x>>2]=s;o=s;break c}case 1:{c[x>>2]=s;o=s;break c}case 3:{o=x;c[o>>2]=s;c[o+4>>2]=((s|0)<0)<<31>>31;o=s;break c}default:{o=s;break c}}}default:{vy(e,0);do{o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=wy(e)|0}while((Zx(o)|0)!=0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}w=(c[G>>2]|0)+s+o-(c[z>>2]|0)|0;v=q}}vy(e,v);o=c[L>>2]|0;q=c[M>>2]|0;if(o>>>0<q>>>0)c[L>>2]=o+1;else{if((wy(e)|0)<0){N=152;break b}q=c[M>>2]|0}if(q)c[L>>2]=(c[L>>2]|0)+-1;f:do switch(r|0){case 91:case 99:case 115:{u=(r|0)==99;g:do if((r&239|0)==99){CB(I|0,-1,257)|0;a[I>>0]=0;if((r|0)==115){a[B>>0]=0;a[A>>0]=0;a[A+1>>0]=0;a[A+2>>0]=0;a[A+3>>0]=0;a[A+4>>0]=0}}else{Q=n+1|0;s=(a[Q>>0]|0)==94;o=s&1;r=s?Q:n;n=s?n+2|0:Q;CB(I|0,s&1|0,257)|0;a[I>>0]=0;switch(a[n>>0]|0){case 45:{s=(o^1)&255;a[E>>0]=s;n=r+2|0;break}case 93:{s=(o^1)&255;a[F>>0]=s;n=r+2|0;break}default:s=(o^1)&255}while(1){o=a[n>>0]|0;h:do switch(o<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{r=n+1|0;o=a[r>>0]|0;switch(o<<24>>24){case 93:case 0:{o=45;break h}default:{}}n=a[n+-1>>0]|0;if((n&255)<(o&255)){n=n&255;do{n=n+1|0;a[I+n>>0]=s;o=a[r>>0]|0}while((n|0)<(o&255|0));n=r}else n=r;break}default:{}}while(0);a[I+((o&255)+1)>>0]=s;n=n+1|0}}while(0);r=u?v+1|0:31;s=(t|0)==1;t=(m|0)!=0;i:do if(s){if(t){f=oB(r<<2)|0;if(!f){l=0;N=152;break b}}else f=x;c[J>>2]=0;c[D>>2]=0;l=0;j:while(1){q=(f|0)==0;do{k:while(1){o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=wy(e)|0;if(!(a[I+(o+1)>>0]|0))break j;a[y>>0]=o;switch(Sy(K,y,1,J)|0){case -1:{l=0;N=152;break b}case -2:break;default:break k}}if(!q){c[f+(l<<2)>>2]=c[K>>2];l=l+1|0}}while(!(t&(l|0)==(r|0)));l=r<<1|1;o=rB(f,l<<2)|0;if(!o){l=0;N=152;break b}Q=r;r=l;f=o;l=Q}if(!(Ty(J)|0)){l=0;N=152;break b}else{q=l;l=0}}else{if(t){l=oB(r)|0;if(!l){l=0;f=0;N=152;break b}else o=0;while(1){do{f=c[L>>2]|0;if(f>>>0<(c[M>>2]|0)>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=wy(e)|0;if(!(a[I+(f+1)>>0]|0)){q=o;f=0;break i}a[l+o>>0]=f;o=o+1|0}while((o|0)!=(r|0));f=r<<1|1;o=rB(l,f)|0;if(!o){f=0;N=152;break b}else{Q=r;r=f;l=o;o=Q}}}if(!x){l=q;while(1){f=c[L>>2]|0;if(f>>>0<l>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=wy(e)|0;if(!(a[I+(f+1)>>0]|0)){q=0;l=0;f=0;break i}l=c[M>>2]|0}}else{l=0;while(1){f=c[L>>2]|0;if(f>>>0<q>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=wy(e)|0;if(!(a[I+(f+1)>>0]|0)){q=l;l=x;f=0;break i}a[x+l>>0]=f;q=c[M>>2]|0;l=l+1|0}}}while(0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}o=o-(c[z>>2]|0)+(c[G>>2]|0)|0;if(!o)break b;if(!((o|0)==(v|0)|u^1))break b;do if(t)if(s){c[x>>2]=f;break}else{c[x>>2]=l;break}while(0);if(!u){if(f)c[f+(q<<2)>>2]=0;if(!l){l=0;break f}a[l+q>>0]=0}break}case 120:case 88:case 112:{o=16;N=134;break}case 111:{o=8;N=134;break}case 117:case 100:{o=10;N=134;break}case 105:{o=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{p=+sy(e,t,0);if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if(x)switch(t|0){case 0:{g[x>>2]=p;break f}case 1:{h[x>>3]=p;break f}case 2:{h[x>>3]=p;break f}default:break f}break}default:{}}while(0);l:do if((N|0)==134){N=0;o=ty(e,o,0,-1,-1)|0;if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if((x|0)!=0&(r|0)==112){c[x>>2]=o;break}if(x)switch(t|0){case -2:{a[x>>0]=o;break l}case -1:{b[x>>1]=o;break l}case 0:{c[x>>2]=o;break l}case 1:{c[x>>2]=o;break l}case 3:{Q=x;c[Q>>2]=o;c[Q+4>>2]=C;break l}default:break l}}while(0);k=((x|0)!=0&1)+k|0;o=(c[G>>2]|0)+w+(c[L>>2]|0)-(c[z>>2]|0)|0;break c}while(0);n=n+(m&1)|0;vy(e,0);m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=wy(e)|0;if((m|0)!=(d[n>>0]|0)){N=21;break b}o=s+1|0}else{while(1){m=n+1|0;if(!(Zx(d[m>>0]|0)|0))break;else n=m}vy(e,0);do{m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=wy(e)|0}while((Zx(m)|0)!=0);m=c[L>>2]|0;if(c[M>>2]|0){m=m+-1|0;c[L>>2]=m}o=(c[G>>2]|0)+s+m-(c[z>>2]|0)|0}while(0);n=n+1|0;m=a[n>>0]|0;if(!(m<<24>>24))break a;else s=o}if((N|0)==21){if(c[M>>2]|0)c[L>>2]=(c[L>>2]|0)+-1;if((k|0)!=0|(m|0)>-1)break;else{k=0;N=153}}else if((N|0)==152)if(!k){k=m;N=153}if((N|0)==153){m=k;k=-1}if(m){pB(l);pB(f)}}else k=0;while(0);if(O)jz(e);i=P;return k|0}function Uz(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;g=n+112|0;m=n;h=m;j=91096;k=h+112|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;l=4}else{c[(qy()|0)>>2]=75;d=-1}else{g=b;l=4}if((l|0)==4){l=-2-g|0;l=d>>>0>l>>>0?l:d;c[m+48>>2]=l;b=m+20|0;c[b>>2]=g;c[m+44>>2]=g;d=g+l|0;g=m+16|0;c[g>>2]=d;c[m+28>>2]=d;d=Sz(m,e,f)|0;if(l){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=n;return d|0}function Vz(a,b,c){a=a|0;b=b|0;c=c|0;return Uz(a,2147483647,b,c)|0}function Wz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+112|0;e=g;f=e;h=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));c[e+32>>2]=20;c[e+44>>2]=a;c[e+76>>2]=-1;c[e+84>>2]=a;h=Tz(e,b,d)|0;i=g;return h|0}function Xz(a){a=a|0;return +(+$z(a,0))}function Yz(b){b=b|0;var c=0,d=0,e=0,f=0;while(1){c=b+1|0;if(!(Zx(a[b>>0]|0)|0))break;else b=c}d=a[b>>0]|0;switch(d<<24>>24|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:e=0}if((f|0)==5){b=c;d=a[c>>0]|0}c=(d<<24>>24)+-48|0;if(c>>>0<10){d=b;b=0;do{d=d+1|0;b=(b*10|0)-c|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10)}else b=0;return ((e|0)!=0?b:0-b|0)|0}function Zz(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!c)b=0;else{h=b;while(1){g=c>>>1;b=h+(_(g,d)|0)|0;f=Lb[e&63](a,b)|0;if(!f)break a;if((c|0)==1){b=0;break a}f=(f|0)<0;c=f?g:c-g|0;if(!c){b=0;break}else h=f?h:b}}while(0);return b|0}function _z(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+208|0;o=r+8|0;p=r;f=_(d,b)|0;n=p;c[n>>2]=1;c[n+4>>2]=0;if(f){j=f-d|0;c[o+4>>2]=d;c[o>>2]=d;g=d;b=d;h=2;while(1){b=b+d+g|0;c[o+(h<<2)>>2]=b;if(b>>>0<f>>>0){n=g;g=b;h=h+1|0;b=n}else break}n=0-d|0;k=a+j|0;m=p+4|0;if((j|0)>0){j=k;f=1;h=1;while(1){do if((f&3|0)==3){ZA(a,d,e,h,o);l=c[m>>2]|0;b=l<<30|(c[p>>2]|0)>>>2;c[p>>2]=b;c[m>>2]=l>>>2;h=h+2|0}else{b=h+-1|0;if((c[o+(b<<2)>>2]|0)>>>0<(j-a|0)>>>0)ZA(a,d,e,h,o);else _A(a,d,e,p,h,0,o);if((h|0)==1){b=c[p>>2]|0;c[m>>2]=b>>>31|c[m>>2]<<1;b=b<<1;c[p>>2]=b;h=0;break}if(b>>>0>31){f=c[p>>2]|0;c[m>>2]=f;c[p>>2]=0;b=h+-33|0;g=0}else{f=c[m>>2]|0;g=c[p>>2]|0}c[m>>2]=g>>>(32-b|0)|f<<b;b=g<<b;c[p>>2]=b;h=1}while(0);f=b|1;c[p>>2]=f;b=a+d|0;if(b>>>0>=k>>>0){f=b;break}else a=b}}else{f=a;h=1}_A(f,d,e,p,h,0,o);l=p+4|0;b=c[p>>2]|0;if(!((h|0)==1&(b|0)==1&(c[l>>2]|0)==0)){g=f;while(1){if((h|0)<2){f=b+-1|0;do if(f){if(!(f&1)){j=f;f=0;do{f=f+1|0;j=j>>>1}while((j&1|0)==0);if(!f)q=24}else q=24;if((q|0)==24){q=0;k=c[m>>2]|0;if(!k){f=64;q=30;break}if(!(k&1)){j=k;f=0}else{a=0;j=k;f=0;break}while(1){a=f+1|0;j=j>>>1;if(j&1){j=a;break}else f=a}if(!j){a=0;j=k;f=0;break}else f=f+33|0}if(f>>>0>31)q=30;else{a=f;j=c[m>>2]|0}}else{f=32;q=30}while(0);if((q|0)==30){q=0;b=c[m>>2]|0;c[p>>2]=b;c[m>>2]=0;a=f+-32|0;j=0}c[p>>2]=j<<32-a|b>>>a;c[m>>2]=j>>>a;g=g+n|0;f=f+h|0}else{a=b>>>30;k=a|c[m>>2]<<2;f=h+-2|0;c[p>>2]=(b<<1&2147483646|a<<31)^3;c[m>>2]=k>>>1;_A(g+(0-((c[o+(f<<2)>>2]|0)+d))|0,d,e,p,h+-1|0,1,o);k=c[p>>2]|0;c[m>>2]=k>>>31|c[m>>2]<<1;c[p>>2]=k<<1|1;g=g+n|0;_A(g,d,e,p,f,1,o)}b=c[p>>2]|0;if((f|0)==1&(b|0)==1&(c[l>>2]|0)==0)break;else h=f}}}i=r;return}function $z(a,b){a=a|0;b=b|0;return +(+$A(a,b,1))}function aA(a,b,c){a=a|0;b=b|0;c=c|0;a=aB(a,b,c,-1,0)|0;return a|0}function bA(a,b,c){a=a|0;b=b|0;c=c|0;a=aB(a,b,c,-2147483648,0)|0;return a|0}function cA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=_(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return ((e|0)!=0?b:0)|0}function dA(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)d=0;else{f=d;e=b;while(1){b=a[e>>0]|0;d=a[c>>0]|0;if(b<<24>>24!=d<<24>>24)break;f=f+-1|0;if(!f){d=0;break a}else{e=e+1|0;c=c+1|0}}d=(b&255)-(d&255)|0}while(0);return d|0}function eA(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=c&255;do{if(!d){c=0;break}d=d+-1|0;c=b+d|0}while((a[c>>0]|0)!=e<<24>>24);return c|0}function fA(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function gA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);CB(b|0,0,e|0)|0;return b|0}function hA(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;e=a[b>>0]|0;a:do if(!(e<<24>>24))b=0;else{g=e;f=e&255;while(1){e=a[c>>0]|0;if(!(e<<24>>24)){b=g;break a}if(g<<24>>24!=e<<24>>24?(g=ny(f)|0,(g|0)!=(ny(d[c>>0]|0)|0)):0)break;b=b+1|0;c=c+1|0;e=a[b>>0]|0;if(!(e<<24>>24)){b=0;break a}else{g=e;f=e&255}}b=a[b>>0]|0}while(0);g=ny(b&255)|0;return g-(ny(d[c>>0]|0)|0)|0}function iA(a,b){a=a|0;b=b|0;mA(a+(pA(a)|0)|0,b)|0;return a|0}function jA(b,c){b=b|0;c=c|0;b=kA(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function kA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(pA(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=_(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009)break b;b=b+4|0;e=c[b>>2]|0}while(((e&-2139062144^-2139062144)&e+-16843009|0)==0);while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function lA(b,c){b=b|0;c=c|0;var d=0,e=0;e=a[b>>0]|0;d=a[c>>0]|0;if(e<<24>>24==0?1:e<<24>>24!=d<<24>>24)c=e;else{do{b=b+1|0;c=c+1|0;e=a[b>>0]|0;d=a[c>>0]|0}while(!(e<<24>>24==0?1:e<<24>>24!=d<<24>>24));c=e}return (c&255)-(d&255)|0}function mA(a,b){a=a|0;b=b|0;fA(a,b)|0;return a|0}function nA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g;e=a[d>>0]|0;if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;do{h=f+(((e&255)>>>5&255)<<2)|0;c[h>>2]=c[h>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);d=a[b>>0]|0;a:do if(!(d<<24>>24))e=b;else{e=b;do{if(c[f+(((d&255)>>>5&255)<<2)>>2]&1<<(d&31))break a;e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0)}while(0);e=e-b|0}else e=(kA(b,e<<24>>24)|0)-b|0;i=g;return e|0}function oA(a){a=a|0;var b=0,c=0;c=(pA(a)|0)+1|0;b=oB(c)|0;if(!b)b=0;else AB(b|0,a|0,c|0)|0;return b|0}function pA(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function qA(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;if(!e)c=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))b=0;else{h=f;g=f&255;while(1){e=e+-1|0;f=a[c>>0]|0;if(!((e|0)!=0&f<<24>>24!=0)){b=h;break a}if(h<<24>>24!=f<<24>>24?(h=ny(g)|0,(h|0)!=(ny(d[c>>0]|0)|0)):0)break;b=b+1|0;c=c+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){b=0;break a}else{h=f;g=f&255}}b=a[b>>0]|0}while(0);h=ny(b&255)|0;c=h-(ny(d[c>>0]|0)|0)|0}return c|0}function rA(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(!e)c=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))f=0;else while(1){e=e+-1|0;g=a[c>>0]|0;if(!(f<<24>>24==g<<24>>24&((e|0)!=0&g<<24>>24!=0)))break a;b=b+1|0;c=c+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){f=0;break}}while(0);c=(f&255)-(d[c>>0]|0)|0}return c|0}function sA(a,b,c){a=a|0;b=b|0;c=c|0;gA(a,b,c)|0;return a|0}function tA(b,c){b=b|0;c=c|0;b=b+(nA(b,c)|0)|0;return ((a[b>>0]|0)!=0?b:0)|0}function uA(a,b){a=a|0;b=b|0;return eA(a,b,(pA(a)|0)+1|0)|0}function vA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;f=a[d>>0]|0;do if(!(f<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==f<<24>>24)d=d+1|0;else break;d=d-b|0;break}else{e=d;d=f}do{f=g+(((d&255)>>>5&255)<<2)|0;c[f>>2]=c[f>>2]|1<<(d&31);e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{if(!(c[g+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);i=h;return d|0}function wA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+1056|0;u=w+1024|0;v=w;k=a[e>>0]|0;do if(k<<24>>24){t=jA(b,k<<24>>24)|0;if(t){j=a[e+1>>0]|0;if(j<<24>>24){f=t+1|0;m=a[f>>0]|0;if(m<<24>>24){h=a[e+2>>0]|0;if(!(h<<24>>24)){k=j&255|(k&255)<<8;b=m;j=t;g=d[t>>0]<<8|m&255;while(1){h=g&65535;if((h|0)==(k|0)){f=j;break}b=f+1|0;g=a[b>>0]|0;if(!(g<<24>>24)){b=0;break}else{j=f;f=b;b=g;g=g&255|h<<8}}b=b<<24>>24!=0?f:0;break}f=t+2|0;l=a[f>>0]|0;if(l<<24>>24){g=a[e+3>>0]|0;if(!(g<<24>>24)){h=(j&255)<<16|(k&255)<<24|(h&255)<<8;b=(l&255)<<8|(m&255)<<16|d[t>>0]<<24;if((b|0)==(h|0))b=l;else{g=b;do{f=f+1|0;b=a[f>>0]|0;g=(b&255|g)<<8}while(!(b<<24>>24==0|(g|0)==(h|0)))}b=b<<24>>24!=0?f+-2|0:0;break}f=t+3|0;b=a[f>>0]|0;if(b<<24>>24){if(!(a[e+4>>0]|0)){h=(j&255)<<16|(k&255)<<24|(h&255)<<8|g&255;g=(l&255)<<8|(m&255)<<16|b&255|d[t>>0]<<24;if((g|0)!=(h|0))do{f=f+1|0;b=a[f>>0]|0;g=b&255|g<<8}while(!(b<<24>>24==0|(g|0)==(h|0)));b=b<<24>>24!=0?f+-3|0:0;break};c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;b=k;g=0;while(1){if(!(a[t+g>>0]|0)){b=0;break}f=u+(((b&255)>>>5&255)<<2)|0;c[f>>2]=c[f>>2]|1<<(b&31);f=g+1|0;c[v+((b&255)<<2)>>2]=f;b=a[e+f>>0]|0;if(!(b<<24>>24)){n=23;break}else g=f}a:do if((n|0)==23){b:do if(f>>>0>1){h=1;n=-1;b=0;c:while(1){m=1;while(1){d:while(1){j=1;while(1){k=a[e+(j+n)>>0]|0;l=a[e+h>>0]|0;if(k<<24>>24!=l<<24>>24){m=h;j=k;h=l;break d}if((j|0)==(m|0))break;j=j+1|0;h=j+b|0;if(h>>>0>=f>>>0){b=n;p=m;break c}}b=b+m|0;h=b+1|0;if(h>>>0>=f>>>0){b=n;p=m;break c}}k=m-n|0;if((j&255)<=(h&255))break;b=m+1|0;if(b>>>0<f>>>0){h=b;b=m;m=k}else{b=n;p=k;break c}}h=b+2|0;if(h>>>0>=f>>>0){p=1;break}else{n=b;b=b+1|0}}j=1;k=-1;h=0;while(1){l=h;h=1;while(1){o=l;e:while(1){l=1;while(1){n=a[e+(l+k)>>0]|0;m=a[e+j>>0]|0;if(n<<24>>24!=m<<24>>24){l=j;j=o;break e}if((l|0)==(h|0))break;l=l+1|0;j=l+o|0;if(j>>>0>=f>>>0){j=p;break b}}o=o+h|0;j=o+1|0;if(j>>>0>=f>>>0){j=p;break b}}h=l-k|0;if((n&255)>=(m&255)){h=j;break}j=l+1|0;if(j>>>0>=f>>>0){j=p;break b}}j=h+2|0;if(j>>>0>=f>>>0){k=h;j=p;h=1;break}else{k=h;h=h+1|0}}}else{b=-1;k=-1;j=1;h=1}while(0);r=(k+1|0)>>>0>(b+1|0)>>>0;h=r?h:j;r=r?k:b;q=r+1|0;if(!(dA(e,e+h|0,q)|0))s=f-h|0;else{h=f-r+-1|0;s=0;h=(r>>>0>h>>>0?r:h)+1|0}n=f|63;o=(s|0)!=0;p=f-h|0;b=t;m=0;l=t;f:while(1){j=b;do if((l-j|0)>>>0<f>>>0){k=cA(l,0,n)|0;if(k)if((k-j|0)>>>0<f>>>0){b=0;break a}else break;else{k=l+n|0;break}}else k=l;while(0);j=a[b+g>>0]|0;if(!(1<<(j&31)&c[u+(((j&255)>>>5&255)<<2)>>2])){b=b+f|0;m=0;l=k;continue}t=c[v+((j&255)<<2)>>2]|0;j=f-t|0;if((f|0)!=(t|0)){b=b+(o&(m|0)!=0&j>>>0<h>>>0?p:j)|0;m=0;l=k;continue}j=q>>>0>m>>>0?q:m;l=a[e+j>>0]|0;g:do if(!(l<<24>>24))j=q;else{while(1){if(l<<24>>24!=(a[b+j>>0]|0))break;j=j+1|0;l=a[e+j>>0]|0;if(!(l<<24>>24)){j=q;break g}}b=b+(j-r)|0;m=0;l=k;continue f}while(0);do{if(j>>>0<=m>>>0)break a;j=j+-1|0}while((a[e+j>>0]|0)==(a[b+j>>0]|0));b=b+h|0;m=s;l=k}}while(0)}else b=0}else b=0}else b=0}else b=t}else b=0}while(0);i=w;return b|0}function xA(b,d){b=b|0;d=d|0;var e=0,f=0;if(!b){b=c[22802]|0;if(!b)b=0;else{f=b;e=3}}else{f=b;e=3}do if((e|0)==3){e=vA(f,d)|0;b=f+e|0;if(!(a[b>>0]|0)){c[22802]=0;b=0;break}e=(nA(b,d)|0)+e|0;d=f+e|0;c[22802]=d;if(!(a[d>>0]|0)){c[22802]=0;break}else{c[22802]=f+(e+1);a[d>>0]=0;break}}while(0);return b|0}function yA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(!b){b=c[e>>2]|0;if(!b)b=0;else{g=b;f=3}}else{g=b;f=3}do if((f|0)==3){f=vA(g,d)|0;b=g+f|0;if(!(a[b>>0]|0)){c[e>>2]=0;b=0;break}f=(nA(b,d)|0)+f|0;d=g+f|0;c[e>>2]=d;if(!(a[d>>0]|0)){c[e>>2]=0;break}else{c[e>>2]=g+(f+1);a[d>>0]=0;break}}while(0);return b|0}function zA(a,b){a=a|0;b=b|0;var d=0;if(!b)a=a+((AA(a)|0)<<2)|0;else{d=a;while(1){a=c[d>>2]|0;if((a|0)==0|(a|0)==(b|0))break;else d=d+4|0}a=(a|0)!=0?d:0}return a|0}function AA(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function BA(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;a=xy($a(33,e|0)|0)|0;i=d;return a|0}function CA(c,f){c=c|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=(f<<1)+-1|0;k=f+-1|0;a:do if(!((c+-43008|0)>>>0<22272|((c+-11776|0)>>>0<30784|((c+-1536|0)>>>0<2560|(ay(c)|0)==0)))){g=(f|0)!=0;if(g&(c+-4256|0)>>>0<46){if((c|0)>4293)switch(c|0){case 4295:case 4301:break;default:break a}c=c+7264|0;break}if((c+-11520|0)>>>0<38&(g^1)){if((c|0)>11557)switch(c|0){case 11559:case 11565:break;default:break a}c=c+-7264|0;break}else j=0;do{i=a[97720+(j<<2)+2>>0]|0;h=i<<24>>24;g=c-(e[97720+(j<<2)>>1]|0)|0;if((g-(h&k)|0)>>>0<(d[97720+(j<<2)+3>>0]|0)>>>0){m=13;break}j=j+1|0}while((j|0)!=61);if((m|0)==13)if(i<<24>>24==1){c=f+c-(g&1)|0;break}else{c=(_(h,l)|0)+c|0;break}i=1-f|0;g=b[97228+(i<<1)>>1]|0;b:do if(g<<16>>16){h=0;while(1){if((g&65535|0)==(c|0)){c=h;break}h=h+1|0;g=b[97228+(h<<2)+(i<<1)>>1]|0;if(!(g<<16>>16))break b}c=e[97228+(c<<2)+(f<<1)>>1]|0;break a}while(0);if((c+-66600+(f*40|0)|0)>>>0<40)c=c+-40+(f*80|0)|0}while(0);return c|0}function DA(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0){c[i>>2]=(c[i>>2]|0)+-1;h=f}else h=f;break}default:h=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}else{f=0;do{f=e+-48+(f*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0}while((e+-48|0)>>>0<10&(f|0)<214748364);b=((f|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=JB(f|0,b|0,10,0)|0;f=C;e=wB(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=wB(e|0,C|0,b|0,f|0)|0;b=C;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&f>>>0<2061584302));g=f}else g=f;if((e+-48|0)>>>0<10)do{e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0}while((e+-48|0)>>>0<10);if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;a=(h|0)!=0;e=vB(0,0,g|0,b|0)|0;f=a?C:b;e=a?e:g}C=f;return e|0}function EA(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;Y=i;i=i+432|0;Q=Y+272|0;P=Y+264|0;X=Y+260|0;V=Y+320|0;R=Y+256|0;S=Y;W=Y+268|0;T=Y+416|0;U=Y+384|0;G=c[b+4>>2]|0;J=G+12|0;L=c[J>>2]|0;if(!(c[b+40>>2]|0)){I=b+20|0;c[P>>2]=c[I>>2];c[Q>>2]=c[P>>2];GA(G,Q)|0;c[P>>2]=2;c[Q>>2]=c[P>>2];GA(G,Q)|0;c[I>>2]=(c[I>>2]|0)+1}c[P>>2]=0;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;H=b+12|0;I=b+16|0;c[I>>2]=c[H>>2];e=c[J>>2]|0;f=(d|0)==0;a:do if(!((d|0)!=0|f&(e|0)>(L|0)^1)){u=G+16|0;v=b+36|0;w=b+24|0;x=b+20|0;y=b+28|0;z=T+1|0;A=Q+12|0;B=Q+40|0;C=Q+24|0;D=Q+8|0;h=e;g=0;e=0;b:while(1){t=h+-1|0;c[J>>2]=t;d=c[u>>2]|0;c:do switch(c[d+(t<<2)>>2]|0){case 0:{if((c[v>>2]&1|0)!=0?(c[P>>2]=7,c[Q>>2]=c[P>>2],M=GA(G,Q)|0,(M|0)!=0):0){d=M;break c}c[P>>2]=3;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break}case 3:{c[P>>2]=5;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=4;c[Q>>2]=c[P>>2];d=GA(G,Q)|0}break}case 4:{c[P>>2]=9;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=1;c[Q>>2]=c[P>>2];d=GA(G,Q)|0}break}case 5:{f=c[H>>2]|0;d=a[f>>0]|0;if(d<<24>>24!=0?(N=c[v>>2]&1,O=(N|0)!=0,!(d<<24>>24==124&O)):0){do if(!((e|0)>0&(d<<24>>24==41&O))){if(d<<24>>24==92&(N|0)==0?(a[f+1>>0]|0)==41:0)break;c[P>>2]=5;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=g;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=6;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=4;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break c}while(0);d=(N|e|0)==0?8:0;e=e+-1|0;if(!N)c[H>>2]=f+2}else d=0;break}case 6:{t=h+-2|0;c[J>>2]=t;g=IA(c[b>>2]|0,c[d+(t<<2)>>2]|0,g)|0;if(!g){d=12;break a}d=0;break}case 7:{d=c[H>>2]|0;switch(a[d>>0]|0){case 124:break;case 41:{c[H>>2]=d+1;d=0;break c}default:{d=0;break c}}c[P>>2]=7;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=g;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=8;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=3;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[H>>2]=(c[H>>2]|0)+1;d=0}}}}break}case 8:{t=h+-2|0;c[J>>2]=t;g=LA(c[b>>2]|0,c[d+(t<<2)>>2]|0,g)|0;if(!g){d=12;break a}d=0;break}case 9:{h=c[H>>2]|0;d=a[h>>0]|0;switch(d<<24>>24|0){case 63:case 43:{if(!(c[v>>2]&1)){d=0;break c}else E=38;break}case 42:{E=38;break}case 92:{f=c[v>>2]|0;if(f&1){d=0;break c}d=h+1|0;if((a[d>>0]|0)!=123){d=0;break c}c[H>>2]=d;break}case 123:{f=c[v>>2]|0;if(!(f&1)){d=0;break c}else d=h;break}default:{d=0;break c}}if((E|0)==38){E=0;c[H>>2]=h+1;g=JA(c[b>>2]|0,g,d<<24>>24==43&1,d<<24>>24==63?1:-1,0)|0;if(!g){d=12;break a}c[P>>2]=9;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break c}m=d+1|0;c[H>>2]=m;h=a[m>>0]|0;if((h+-48&255)<10){d=h<<24>>24;if((d+-48|0)>>>0<10){k=d;h=-1;d=m}else{d=10;break a}while(1){l=((h|0)<0?-48:(h*10|0)+-48|0)+k|0;j=d+1|0;h=a[j>>0]|0;k=h<<24>>24;if((k+-48|0)>>>0>=10)break;else{h=l;d=j}}}else{j=m;l=-1}if(h<<24>>24==44){j=d+2|0;h=a[j>>0]|0;d=h<<24>>24;if((d+-48|0)>>>0<10){k=-1;h=j;while(1){k=((k|0)<0?-48:(k*10|0)+-48|0)+d|0;j=h+1|0;h=a[j>>0]|0;d=h<<24>>24;if((d+-48|0)>>>0>=10){E=50;break}else h=j}}else k=-1}else{k=l;E=50}if((E|0)==50){E=0;if((k|0)>-1?(l|0)>(k|0)|(k|0)>255:0){d=10;break a}}if(!(h<<24>>24)){d=9;break a}if((j|0)==(m|0)){d=10;break a}if(!(f&1)){if(h<<24>>24!=92){d=10;break a}if((a[j+1>>0]|0)!=125){d=10;break a}d=j+2|0}else{if(h<<24>>24!=125){d=10;break a}d=j+1|0}if(k|l){t=(k&l|0)<0;g=JA(c[b>>2]|0,g,t?1:l,t?1:k,0)|0;if(!g){d=12;break a}}else{g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=-1;c[t+4>>2]=-1;c[t+8>>2]=-1}c[H>>2]=d;c[P>>2]=9;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break}case 1:{d=c[H>>2]|0;d:do switch(a[d>>0]|0){case 40:{if(c[v>>2]&1)E=67;break}case 91:{f=d+1|0;c[H>>2]=f;t=oB(128)|0;c[R>>2]=t;if(!t){E=72;break b}if((a[f>>0]|0)==94){f=d+2|0;c[H>>2]=f;t=1}else t=0;c[Q>>2]=0;c[P>>2]=32;l=0;e:while(1){switch(a[f>>0]|0){case 0:{s=l;d=7;break e}case 93:{if(f>>>0>(c[H>>2]|0)>>>0){d=l;E=79;break e}break}default:{}}d=Uy(X,f,-1)|0;if((d|0)<0){c[X>>2]=-1;d=1}h=f+d|0;if((a[h>>0]|0)==45?(F=d+1|0,K=f+F|0,(a[K>>0]|0)!=93):0){j=c[X>>2]|0;d=Uy(X,K,-1)|0;if((d|0)<0){c[X>>2]=-1;h=-1;d=1}else h=c[X>>2]|0;f=f+(d+F)|0;if(j>>>0>h>>>0){s=l;d=11;break}else{g=0;E=102}}else{f:do switch(a[f>>0]|0){case 91:{switch(a[f+1>>0]|0){case 61:case 46:{s=l;d=3;break e}case 58:break;default:{d=0;E=97;break f}}d=f+2|0;h=d;while(1){s=a[h>>0]|0;g=s<<24>>24==0;if(s<<24>>24!=58&(g^1))h=h+1|0;else break}if(g){g=0;d=4}else{g=h-f+-2|0;g=(g|0)>63?63:g;sA(V,d,g)|0;a[V+g>>0]=0;d=ey(V)|0;g=d;f=h+2|0;d=(d|0)==0?4:0}k=1114111;j=0;break}case 45:{if((a[f+1>>0]|0)==93){d=0;E=97}else{d=(c[H>>2]|0)==(f|0)?0:11;E=97}break}default:{d=0;E=97}}while(0);if((E|0)==97){E=0;j=c[X>>2]|0;g=0;k=j;f=h}if(d){s=l;break}if(t&(g|0)!=0)if((l|0)>63){h=k;d=12}else{c[S+(l<<2)>>2]=g;l=l+1|0;h=k;d=0}else{h=k;E=102}}if((E|0)==102){E=0;d=mB(c[b>>2]|0,j,h,Q,P,R)|0;if(d){s=l;break}c[(c[(c[(c[R>>2]|0)+((c[Q>>2]|0)+-1<<2)>>2]|0)+4>>2]|0)+12>>2]=g;d=0}if((d|g|0)!=0|(c[v>>2]&2|0)==0)if(!d)continue;else{s=l;break}while(1){if(j>>>0>h>>>0)break;if(!(hy(j)|0)){g=j+1|0;if(ly(j)|0){k=py(j)|0;g:do if(!(ly(g)|0))d=k;else{d=k;while(1){if(g>>>0>h>>>0|(py(g)|0)!=(d+1|0))break g;j=g+1|0;d=py(g)|0;if(!(ly(j)|0)){g=j;break}else g=j}}while(0);d=mB(c[b>>2]|0,k,d,Q,P,R)|0}}else{k=oy(j)|0;d=j+1|0;h:do if(!(hy(d)|0))j=k;else{g=k;while(1){if(d>>>0>h>>>0|(oy(d)|0)!=(g+1|0)){j=g;break h}g=oy(d)|0;d=d+1|0;if(!(hy(d)|0)){j=g;break}}}while(0);g=d;d=mB(c[b>>2]|0,k,j,Q,P,R)|0}if(!d){j=g;d=0}else{s=l;break e}}if(d){s=l;break}}if((E|0)==79){E=0;s=d;f=f+1|0;d=0}r=c[Q>>2]|0;c[H>>2]=f;i:do if(!d){if(t)_z(c[R>>2]|0,r,4,45);if((r|0)>0){n=(s|0)>0;o=s<<2;p=o+4|0;m=c[R>>2]|0;l=0;f=0;q=0;g=0;while(1){d=c[(c[m+(q<<2)>>2]|0)+4>>2]|0;h=c[d>>2]|0;j=d+4|0;k=c[j>>2]|0;do if(t){if((h|0)<(l|0)){h=k+1|0;j=m;h=(h|0)>=(l|0)?h:l;d=0;break}if((h|0)>(f|0)){c[d>>2]=f;c[j>>2]=h+-1}else d=0;f=k+1|0;l=f;E=129}else E=129;while(0);do if((E|0)==129){E=0;if(d){c[d+8>>2]=c[w>>2];if(n){h=ez(c[b>>2]|0,0,0,0,p)|0;d=d+16|0;c[d>>2]=h;if(!h){d=12;break i}AB(h|0,S|0,o|0)|0;c[(c[d>>2]|0)+(s<<2)>>2]=0}else c[d+16>>2]=0;if(!g){g=c[R>>2]|0;j=g;h=l;g=c[g+(q<<2)>>2]|0;d=0;break}else{j=c[R>>2]|0;d=LA(c[b>>2]|0,g,c[j+(q<<2)>>2]|0)|0;h=l;g=d;d=(d|0)==0?12:0;break}}else{j=m;h=l;d=0}}while(0);q=q+1|0;if(!((q|0)<(r|0)&(d|0)==0)){k=g;break}else{m=j;l=h}}}else{f=0;k=0;d=0}if(t&(d|0)==0){d=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(g){j=c[g+4>>2]|0;c[j>>2]=f;c[j+4>>2]=1114111;c[j+8>>2]=d;if((s|0)>0){f=s<<2;h=ez(c[b>>2]|0,0,0,0,f+4|0)|0;d=j+16|0;c[d>>2]=h;if(!h){g=k;d=12;break}AB(h|0,S|0,f|0)|0;c[(c[d>>2]|0)+(s<<2)>>2]=0}else c[j+16>>2]=0;if(!k)d=0;else{d=LA(c[b>>2]|0,k,g)|0;g=d;d=(d|0)==0?12:0}}else{g=k;d=12}}else g=k}else g=0;while(0);pB(c[R>>2]|0);c[w>>2]=(c[w>>2]|0)+1;if(!d){d=0;break c}else break a}case 92:{f=d+1|0;h=a[f>>0]|0;do if(!(c[v>>2]&1))if(h<<24>>24!=40){f=d+1|0;g=a[f>>0]|0;if(g<<24>>24==41){E=210;break d}else{h=g;break}}else{c[H>>2]=f;d=f;E=67;break d}while(0);k=h<<24>>24==0;if(k){d=5;break a}else{g=91552;j=0}do{if((a[91548+(j<<3)>>0]|0)==h<<24>>24)break;j=j+1|0;g=91548+(j<<3)+4|0}while((j|0)!=12);h=c[g>>2]|0;if(h){d=Q;f=b;g=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(g|0));c[A>>2]=h;c[B>>2]=1;d=EA(Q)|0;if(d){E=156;break b}c[H>>2]=(c[H>>2]|0)+2;c[w>>2]=c[C>>2];g=c[D>>2]|0;d=0;break c}if(k){d=5;break a}c[H>>2]=f;f=a[f>>0]|0;j:do switch(f|0){case 98:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=64;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 66:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=128;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 60:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=16;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 62:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=32;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 120:{f=d+2|0;c[H>>2]=f;f=a[f>>0]|0;if(f<<24>>24==123){d=d+3|0;c[H>>2]=d;g=0;k:while(1){f=a[d>>0]|0;switch(f<<24>>24){case 0:case 125:{f=g;break k}default:{}}if(!(my(f<<24>>24)|0)){d=9;break a}d=c[H>>2]|0;a[U+g>>0]=a[d>>0]|0;f=g+1|0;d=d+1|0;c[H>>2]=d;if(f>>>0>31)break;else g=f}c[H>>2]=d+1;a[U+f>>0]=0;d=bA(U,0,16)|0;f=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=d;c[t+4>>2]=d;c[t+8>>2]=f}c[w>>2]=(c[w>>2]|0)+1;break j}else{a[T>>0]=0;a[T+1>>0]=0;a[T+2>>0]=0;t=(my(f<<24>>24)|0)==0;d=c[H>>2]|0;if(!t){a[T>>0]=a[d>>0]|0;d=d+1|0;c[H>>2]=d}if(my(a[d>>0]|0)|0){t=c[H>>2]|0;a[z>>0]=a[t>>0]|0;c[H>>2]=t+1}d=bA(T,0,16)|0;f=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=d;c[t+4>>2]=d;c[t+8>>2]=f}c[w>>2]=(c[w>>2]|0)+1;break j}}default:{t=(fy(f)|0)==0;d=c[H>>2]|0;if(t)break d;d=(a[d>>0]|0)+-48|0;f=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=-4;c[t+4>>2]=d;c[t+8>>2]=f;c[w>>2]=(c[w>>2]|0)+1;t=c[y>>2]|0;c[y>>2]=(d|0)<(t|0)?t:d;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}}while(0);if(!g){d=12;break a}else{d=0;break c}}case 46:{t=(c[v>>2]&4|0)==0;d=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;f=(g|0)==0;if(t){if(f){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=0;c[t+4>>2]=1114111;c[t+8>>2]=d;d=(c[w>>2]|0)+1|0}else{if(f){d=12;break a}f=c[g+4>>2]|0;c[f>>2]=0;c[f+4>>2]=9;c[f+8>>2]=d;d=c[w>>2]|0;f=KA(c[b>>2]|0,0,20)|0;if(!f){d=12;break a}t=c[f+4>>2]|0;c[t>>2]=11;c[t+4>>2]=1114111;c[t+8>>2]=d+1;g=LA(c[b>>2]|0,g,f)|0;if(!g){d=12;break a}d=(c[w>>2]|0)+2|0}c[w>>2]=d;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}case 94:{if(!(c[v>>2]&1)){if((d|0)!=(c[I>>2]|0))break d;c[P>>2]=5;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c}g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}d=c[g+4>>2]|0;c[d>>2]=-2;c[d+4>>2]=1;c[d+8>>2]=-1;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}case 36:{if((c[v>>2]&1|0)==0?(a[d+1>>0]|0)!=0:0)break d;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}d=c[g+4>>2]|0;c[d>>2]=-2;c[d+4>>2]=2;c[d+8>>2]=-1;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}case 41:{if(e)E=209;break}case 63:case 43:case 123:case 124:case 42:{E=209;break}case 0:{E=210;break}default:{}}while(0);if((E|0)==67){E=0;e=e+1|0;c[H>>2]=d+1;c[P>>2]=c[x>>2];c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=2;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=0;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[x>>2]=(c[x>>2]|0)+1;d=0;break c}else if((E|0)==209){E=0;if(c[v>>2]&1)E=210}if((E|0)==210){E=0;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}d=c[g+4>>2]|0;c[d>>2]=-1;c[d+4>>2]=-1;c[d+8>>2]=-1;d=0;break c}d=Uy(W,d,-1)|0;if((d|0)<0){c[W>>2]=-1;d=1}do if(c[v>>2]&2){if((ly(c[W>>2]|0)|0)==0?(hy(c[W>>2]|0)|0)==0:0){E=220;break}k=c[b>>2]|0;f=oy(c[W>>2]|0)|0;g=oy(c[W>>2]|0)|0;h=c[w>>2]|0;k=KA(k,0,20)|0;if(!k){d=12;break a}j=c[k+4>>2]|0;c[j>>2]=f;c[j+4>>2]=g;c[j+8>>2]=h;j=c[b>>2]|0;f=py(c[W>>2]|0)|0;g=py(c[W>>2]|0)|0;h=c[w>>2]|0;j=KA(j,0,20)|0;if(!j){d=12;break a}t=c[j+4>>2]|0;c[t>>2]=f;c[t+4>>2]=g;c[t+8>>2]=h;g=LA(c[b>>2]|0,k,j)|0;if(!g){d=12;break a}}else E=220;while(0);if((E|0)==220){E=0;f=c[W>>2]|0;h=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=f;c[t+4>>2]=f;c[t+8>>2]=h}c[w>>2]=(c[w>>2]|0)+1;c[H>>2]=(c[H>>2]|0)+d;d=0;break}case 2:{h=h+-2|0;c[J>>2]=h;h=c[d+(h<<2)>>2]|0;f=g;if((c[f+12>>2]|0)>-1){d=KA(c[b>>2]|0,0,20)|0;if(!d){d=12;break a}g=c[d+4>>2]|0;c[g>>2]=-1;c[g+4>>2]=-1;c[g+8>>2]=-1;g=IA(c[b>>2]|0,d,f)|0;if(!g){d=12;break a}c[g+16>>2]=c[f+16>>2]}d=g;c[d+12>>2]=h;d=d+16|0;c[d>>2]=(c[d>>2]|0)+1;d=0;break}case 10:{t=h+-2|0;c[J>>2]=t;c[v>>2]=c[d+(t<<2)>>2];d=0;break}default:d=0}while(0);h=c[J>>2]|0;f=(d|0)==0;if((d|0)!=0|f&(h|0)>(L|0)^1){E=229;break a}}if((E|0)==72){d=12;break}else if((E|0)==156)break}else{g=0;e=0;E=229}while(0);if((E|0)==229){e=(e|0)>0;if(e|f^1)d=e?8:d;else c[b+8>>2]=g}i=Y;return d|0}function FA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+16|0;C=G+4|0;B=G;z=d+12|0;A=c[z>>2]|0;D=(b|0)==0|(f|0)==0;if(!D){c[f+48>>2]=0;c[c[f+36>>2]>>2]=-1}g=c[f+28>>2]|0;E=oB((g<<3)+8|0)|0;do if(!E)g=12;else{c[E>>2]=-1;F=oB((g<<2)+4|0)|0;if(!F){pB(E);g=12;break}c[F>>2]=-1;h=0;while(1)if(h>>>0>g>>>0)break;else h=h+1|0;c[B>>2]=e;c[C>>2]=c[B>>2];GA(d,C)|0;c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;h=c[z>>2]|0;a:do if((g|0)!=0|(h|0)<=(A|0)){o=-1;h=0;n=0;e=E;m=0}else{v=d+16|0;w=f+32|0;x=f+36|0;y=f+16|0;r=h;t=0;j=-1;u=1;h=0;n=0;e=E;m=0;while(1){s=r+-1|0;c[z>>2]=s;q=c[v>>2]|0;b:do switch(c[q+(s<<2)>>2]|0){case 6:{l=r+-2|0;c[z>>2]=l;l=c[q+(l<<2)>>2]|0;g=0;do{k=e+(g<<2)|0;g=g+1|0}while((c[k>>2]|0)>-1);c[k>>2]=l<<1|1;c[e+(g<<2)>>2]=-1;g=0;while(1)if((c[F+(g<<2)>>2]|0)>-1)g=g+1|0;else break;c[F+(g+-1<<2)>>2]=-1;l=t;k=u;g=0;break}case 0:{r=r+-2|0;c[z>>2]=r;r=c[q+(r<<2)>>2]|0;s=r+12|0;l=c[s>>2]|0;if((l|0)>-1){g=0;do{k=e+(g<<2)|0;g=g+1|0}while((c[k>>2]|0)>-1);c[k>>2]=l<<1;c[e+(g<<2)>>2]=-1;if(!D){g=0;while(1)if((c[F+(g<<2)>>2]|0)>-1)g=g+1|0;else break;k=(c[y>>2]|0)+(l*12|0)+8|0;c[k>>2]=0;if((g|0)>0){g=oB((g<<2)+4|0)|0;if(!g){o=j;g=12;break a}c[k>>2]=g;k=c[F>>2]|0;if((k|0)>-1){l=g;o=0;do{c[l>>2]=k;o=o+1|0;k=c[F+(o<<2)>>2]|0;l=g+(o<<2)|0}while((k|0)>-1);g=l}c[g>>2]=-1}}c[B>>2]=c[s>>2];c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){o=j;break a}c[B>>2]=6;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){o=j;break a}}c:do switch(c[r>>2]|0){case 0:{q=c[c[r+4>>2]>>2]|0;if((q|0)>-1|(q|0)==-4?(c[e>>2]|0)>-1:0){if(D){c[r+20>>2]=1;g=0}else{g=jB(b,r,m)|0;c[(c[w>>2]|0)+(m<<2)>>2]=t;if((j|0)>-1){p=c[x>>2]|0;l=0;while(1){k=p+(l<<2)|0;o=l+1|0;if((c[k>>2]|0)>-1)l=o;else break}c[k>>2]=m;c[p+(o<<2)>>2]=j;c[p+(l+2<<2)>>2]=-1;j=-1;h=h+1|0}kB(e,f,m)}c[e>>2]=-1;q=t;p=u+1|0;n=n+1|0;m=u}else{q=t;p=u;g=0}break}case 1:{l=c[r+4>>2]|0;o=c[l>>2]|0;l=c[l+4>>2]|0;c[B>>2]=r;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=5;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=l;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){k=o+20|0;c[B>>2]=(c[k>>2]|0)+u;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){if((c[k>>2]|0)>0){g=(c[l+20>>2]|0)>0;k=(g&1)+u|0;g=g?u:-1}else{k=u;g=-1}c[B>>2]=g;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=4;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=o;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];q=t;p=k;g=GA(d,C)|0}else{q=t;p=k}}else{q=t;p=k}}else{q=t;p=k}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}break}case 2:{k=c[r+4>>2]|0;if(D){if((c[e>>2]|0)>-1)g=1;else g=(a[k+12>>0]&1)!=0;c[B>>2]=g&1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}}else{c[B>>2]=m;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}c[B>>2]=a[k+12>>0]&1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}}c[B>>2]=r;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=c[k>>2];c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){if((c[e>>2]|0)<=-1?(a[k+12>>0]&1)==0:0){q=0;p=u;g=0;break c}if(D)g=0;else{g=jB(b,r,m)|0;c[(c[w>>2]|0)+(m<<2)>>2]=(a[k+12>>0]&1)==0?t:1;if((j|0)>-1){p=c[x>>2]|0;l=0;while(1){k=p+(l<<2)|0;o=l+1|0;if((c[k>>2]|0)>-1)l=o;else break}c[k>>2]=m;c[p+(o<<2)>>2]=j;c[p+(l+2<<2)>>2]=-1;j=-1;h=h+1|0}kB(e,f,m)}c[e>>2]=-1;q=0;p=u+1|0;n=n+1|0;m=u}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}break}case 3:{l=c[r+4>>2]|0;o=c[l>>2]|0;l=c[l+4>>2]|0;k=(c[e>>2]|0)>-1;q=u+1|0;c[B>>2]=k?q:u;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=k?u:m;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=e;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=(c[e>>2]|0)>>>31^1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=r;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=l;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=o;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=3;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=l;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=2;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}c[B>>2]=o;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}if((c[e>>2]|0)>-1){if(D)g=0;else{g=jB(b,r,m)|0;c[(c[w>>2]|0)+(m<<2)>>2]=t;if((j|0)>-1){p=c[x>>2]|0;l=0;while(1){k=p+(l<<2)|0;o=l+1|0;if((c[k>>2]|0)>-1)l=o;else break}c[k>>2]=m;c[p+(o<<2)>>2]=j;c[p+(l+2<<2)>>2]=-1;j=-1;h=h+1|0}kB(e,f,m)}c[e>>2]=-1;k=q;n=n+1|0;m=u}else{k=u;g=0}if((c[r+16>>2]|0)<=0){q=t;p=k;break c}q=t;p=k+2|0;m=k+1|0}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}break}default:{q=t;p=u;g=0}}while(0);o=c[s>>2]|0;if((o|0)>-1){k=0;do{l=F+(k<<2)|0;k=k+1|0}while((c[l>>2]|0)>-1);c[l>>2]=o;c[F+(k<<2)>>2]=-1;l=q;k=p}else{l=q;k=p}break}case 1:{g=r+-2|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;if(D){l=c[(c[c[g+4>>2]>>2]|0)+20>>2]|0;j=r+-3|0;c[z>>2]=j;c[g+20>>2]=(c[q+(j<<2)>>2]|0)+l;l=t;j=-1;k=u;g=0;break b}else{g=r+-3|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;k=r+-4|0;c[z>>2]=k;g=(g|0)==0;l=g&1;j=g?j:c[q+(k<<2)>>2]|0;k=u;g=0;break b}}case 4:{u=r+-2|0;c[z>>2]=u;u=c[q+(u<<2)>>2]|0;k=r+-3|0;c[z>>2]=k;l=t;k=c[q+(k<<2)>>2]|0;g=0;m=(u|0)>-1?u:m;break}case 5:{g=r+-2|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;if(D){l=c[g+4>>2]|0;c[g+20>>2]=(c[(c[l+4>>2]|0)+20>>2]|0)+(c[(c[l>>2]|0)+20>>2]|0);l=t;k=u;g=0}else{l=t;k=u;g=0}break}case 2:{while(1)if((c[e>>2]|0)>-1)e=e+4|0;else{l=t;k=u;g=0;break}break}case 3:{o=c[q+(r+-2<<2)>>2]|0;p=c[q+(r+-3<<2)>>2]|0;g=c[q+(r+-4<<2)>>2]|0;e=r+-5|0;c[z>>2]=e;if(D){t=c[g+4>>2]|0;l=c[g+16>>2]|0;c[g+20>>2]=(c[(c[t>>2]|0)+20>>2]|0)+(c[q+(e<<2)>>2]|0)+(c[(c[t+4>>2]|0)+20>>2]|0)+((l|0)>0?2:0)}else l=c[g+16>>2]|0;e=c[q+(r+-6<<2)>>2]|0;k=r+-7|0;c[z>>2]=k;k=c[q+(k<<2)>>2]|0;g=r+-8|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;if((l|0)>0){if(D)g=0;else{lB(b,o,k)|0;c[(c[w>>2]|0)+(k<<2)>>2]=1;t=lB(b,p,g)|0;c[(c[w>>2]|0)+(g<<2)>>2]=1;g=t}l=1;k=u;n=n+2|0}else{l=1;k=u;g=0}break}default:{l=t;k=u;g=0}}while(0);r=c[z>>2]|0;if((g|0)!=0|(r|0)<=(A|0)){o=j;break a}else{t=l;u=k}}}while(0);if(!D?(kB(e,f,m),(o|0)>-1):0){l=c[f+36>>2]|0;j=0;while(1){e=l+(j<<2)|0;k=j+1|0;if((c[e>>2]|0)>-1)j=k;else break}c[e>>2]=m;c[l+(k<<2)>>2]=o;c[l+(j+2<<2)>>2]=-1;h=h+1|0}c[f+48>>2]=n;c[f+40>>2]=n;c[f+44>>2]=h;pB(E);pB(F)}while(0);i=G;return g|0}function GA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l;d=a+12|0;e=c[d>>2]|0;h=c[a>>2]|0;if((e|0)>=(h|0)){d=c[a+4>>2]|0;if((h|0)<(d|0)?(f=(c[a+8>>2]|0)+h|0,f=(f|0)>(d|0)?d:f,g=a+16|0,j=rB(c[g>>2]|0,f<<2)|0,(j|0)!=0):0){c[a>>2]=f;c[g>>2]=j;c[k>>2]=c[b>>2];GA(a,k)|0;d=0}else d=12}else{c[(c[a+16>>2]|0)+(e<<2)>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+1;d=0}i=l;return d|0}function HA(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=i;i=i+16|0;x=y+4|0;w=y;u=d+12|0;v=c[u>>2]|0;c[w>>2]=e;c[x>>2]=c[w>>2];GA(d,x)|0;c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;a:do if(!e){s=d+16|0;t=(f&1|0)==0;r=(f&2|0)!=0;o=1;q=0;f=j;while(1){e=c[u>>2]|0;if((e|0)>(v|0))j=f;else{f=q;e=0;break a}b:while(1){f=c[s>>2]|0;c:while(1){p=e+-1|0;c[u>>2]=p;switch(c[f+(p<<2)>>2]|0){case 1:{m=7;break c}case 0:{e=e+-2|0;c[u>>2]=e;e=c[f+(e<<2)>>2]|0;switch(c[e>>2]|0){case 0:{p=j;m=10;break b}case 3:{m=21;break b}case 1:{m=28;break b}case 2:{m=35;break c}default:{}}break}default:{}}e=c[u>>2]|0;if((e|0)<=(v|0)){f=q;e=0;break a}}if((m|0)==7){p=e+-2|0;c[u>>2]=p;f=c[f+(p<<2)>>2]|0}else if((m|0)==35){f=c[e+4>>2]|0;c[w>>2]=c[f>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}e=JA(b,c[f>>2]|0,c[f+4>>2]|0,c[f+8>>2]|0,a[f+12>>0]&1)|0;c[j>>2]=e;if(!e){f=q;e=12;break a}f=c[e+4>>2]|0}e=c[u>>2]|0;if((e|0)<=(v|0)){f=q;e=0;break a}else j=f}if((m|0)==10){n=c[e+4>>2]|0;l=c[n+8>>2]|0;f=c[n>>2]|0;e=c[n+4>>2]|0;if(!((f|0)>-1|(f|0)==-4))if(t|(f|0)!=-3)if((f|0)==-3)if(r&(o|0)!=0){c[h+(e<<2)>>2]=1;o=0;m=-3;f=q}else{m=-3;f=q}else{m=f;f=q}else{e=-1;m=-1;f=q;l=-1}else{m=f;f=q+1|0;l=(c[g>>2]|0)+l|0}j=KA(b,0,20)|0;if(!j){c[p>>2]=0;e=12}else{q=j+4|0;z=c[q>>2]|0;c[z>>2]=m;c[z+4>>2]=e;c[z+8>>2]=l;c[p>>2]=j;e=c[q>>2]|0;c[e+12>>2]=c[n+12>>2];c[e+16>>2]=c[n+16>>2];e=0}if((l|0)>(c[k>>2]|0)){c[k>>2]=l;l=o;j=p}else{l=o;j=p}}else if((m|0)==21){l=c[e+4>>2]|0;f=l+4|0;e=LA(b,c[l>>2]|0,c[f>>2]|0)|0;c[j>>2]=e;if(!e){f=q;e=12;break a}j=c[e+4>>2]|0;c[w>>2]=c[f>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=j+4;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=1;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=c[l>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];l=o;f=q;e=GA(d,x)|0}else if((m|0)==28){l=c[e+4>>2]|0;f=l+4|0;e=IA(b,c[l>>2]|0,c[f>>2]|0)|0;c[j>>2]=e;if(!e){f=q;e=12;break a}m=c[e+4>>2]|0;c[m>>2]=0;j=m+4|0;c[j>>2]=0;c[w>>2]=c[f>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=j;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=1;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=c[l>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];l=o;f=q;j=m;e=GA(d,x)|0}if(!e){o=l;q=f;f=j}else break}}else f=0;while(0);c[g>>2]=(c[g>>2]|0)+f;i=y;return e|0}function IA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=KA(a,1,8)|0;if(!a)a=0;else{e=c[a+4>>2]|0;c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0)}return a|0}function JA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;b=KA(b,2,16)|0;if(!b)b=0;else{h=c[b+4>>2]|0;c[h>>2]=d;c[h+4>>2]=e;c[h+8>>2]=f;e=h+12|0;a[e>>0]=a[e>>0]&-2|g&1;c[b+16>>2]=c[d+16>>2]}return b|0}function KA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ez(a,0,0,1,32)|0;if((e|0)!=0?(d=ez(a,0,0,1,d)|0,c[e+4>>2]=d,(d|0)!=0):0){c[e>>2]=b;c[e+8>>2]=-1;c[e+12>>2]=-1}else e=0;return e|0}function LA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=KA(a,3,8)|0;if(!a)a=0;else{e=c[a+4>>2]|0;c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0)}return a|0}function MA(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;a=ez(a,0,0,1,64)|0;if(!a)a=0;else{c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;c[a+20>>2]=f;c[a+24>>2]=g;c[a+28>>2]=h;c[a+32>>2]=-1;c[a+36>>2]=-1;c[a+40>>2]=-1}return a|0}function NA(a){a=a|0;a=ez(a,0,0,1,32)|0;if(!a)a=0;else{c[a>>2]=-1;c[a+4>>2]=-1;c[a+8>>2]=-1}return a|0}function OA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(e|0)==0;if(o)n=0;else{g=0;while(1)if((c[e+(g<<2)>>2]|0)>-1)g=g+1|0;else{n=g;break}}g=0;while(1)if((c[b+(g<<5)>>2]|0)>-1)g=g+1|0;else break;h=0;while(1)if((c[d+(h<<5)>>2]|0)>-1)h=h+1|0;else break;g=ez(a,0,0,1,(h+g<<5)+32|0)|0;a:do if(!g)g=0;else{h=c[b>>2]|0;if((h|0)>-1){m=(n|0)>0;i=0;while(1){c[g+(i<<5)>>2]=h;c[g+(i<<5)+4>>2]=c[b+(i<<5)+4>>2];c[g+(i<<5)+8>>2]=c[b+(i<<5)+8>>2];c[g+(i<<5)+16>>2]=c[b+(i<<5)+16>>2]|f;c[g+(i<<5)+20>>2]=c[b+(i<<5)+20>>2];c[g+(i<<5)+24>>2]=c[b+(i<<5)+24>>2];c[g+(i<<5)+28>>2]=c[b+(i<<5)+28>>2];k=b+(i<<5)+12|0;j=c[k>>2]|0;h=(j|0)==0;if(o&h)c[g+(i<<5)+12>>2]=0;else{if(h)h=0;else{h=0;while(1)if((c[j+(h<<2)>>2]|0)>-1)h=h+1|0;else break}l=ez(a,0,0,0,(h+n<<2)+4|0)|0;if(!l){g=0;break a}if((h|0)>0){j=c[k>>2]|0;k=0;do{c[l+(k<<2)>>2]=c[j+(k<<2)>>2];k=k+1|0}while((k|0)!=(h|0))}else h=0;if(m){j=0;do{c[l+(j+h<<2)>>2]=c[e+(j<<2)>>2];j=j+1|0}while((j|0)!=(n|0));j=n}else j=0;c[l+(j+h<<2)>>2]=-1;c[g+(i<<5)+12>>2]=l}i=i+1|0;h=c[b+(i<<5)>>2]|0;if((h|0)<=-1){n=i;break}}}else n=0;i=c[d>>2]|0;h=g+(n<<5)|0;if((i|0)>-1){l=n;m=0;do{c[h>>2]=i;c[g+(l<<5)+4>>2]=c[d+(m<<5)+4>>2];c[g+(l<<5)+8>>2]=c[d+(m<<5)+8>>2];c[g+(l<<5)+16>>2]=c[d+(m<<5)+16>>2];c[g+(l<<5)+20>>2]=c[d+(m<<5)+20>>2];c[g+(l<<5)+24>>2]=c[d+(m<<5)+24>>2];c[g+(l<<5)+28>>2]=c[d+(m<<5)+28>>2];j=d+(m<<5)+12|0;i=c[j>>2]|0;if(!i)c[g+(l<<5)+12>>2]=0;else{h=0;while(1)if((c[i+(h<<2)>>2]|0)>-1)h=h+1|0;else break;k=ez(a,0,0,0,(h<<2)+4|0)|0;if(!k){g=0;break a}if((h|0)>0){i=c[j>>2]|0;j=0;do{c[k+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0))}else h=0;c[k+(h<<2)>>2]=-1;c[g+(l<<5)+12>>2]=k}m=m+1|0;i=c[d+(m<<5)>>2]|0;l=m+n|0;h=g+(l<<5)|0}while((i|0)>-1)}c[h>>2]=-1}while(0);return g|0}function PA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+16|0;s=u+4|0;t=u;p=a+12|0;q=c[p>>2]|0;r=(f|0)!=0;if(r)c[f>>2]=0;c[t>>2]=b;c[s>>2]=c[t>>2];b=GA(a,s)|0;a:do if(!b){k=a+16|0;l=(d|0)==0;m=(e|0)==0;b=c[p>>2]|0;if((b|0)>(q|0))while(1){b=b+-1|0;c[p>>2]=b;b=c[(c[k>>2]|0)+(b<<2)>>2]|0;b:do switch(c[b>>2]|0){case 0:{b=c[b+4>>2]|0;switch(c[b>>2]|0){case -3:break;case -2:{if(m)break b;c[e>>2]=c[e>>2]|c[b+4>>2];break b}default:break b}j=c[b+4>>2]|0;if((j|0)>-1){c:do if(!l){b=c[d>>2]|0;d:do if((b|0)>-1){g=d;h=0;while(1){if((b|0)==(j|0)){b=h;break}h=h+1|0;g=d+(h<<2)|0;b=c[g>>2]|0;if((b|0)<=-1){b=h;break d}}if((j|0)>=0)break c}else{g=d;b=0}while(0);c[g>>2]=j;c[d+(b+1<<2)>>2]=-1}while(0);if(r)c[f>>2]=(c[f>>2]|0)+1}break}case 3:{b=c[b+4>>2]|0;g=c[b>>2]|0;if(c[g+8>>2]|0){c[t>>2]=g;c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6;break b}b=c[b+4>>2]|0;if(c[b+8>>2]|0){c[t>>2]=b;c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6}break}case 1:{g=c[b+4>>2]|0;c[t>>2]=c[g>>2];c[s>>2]=c[t>>2];b=GA(a,s)|0;if(b)break a;c[t>>2]=c[g+4>>2];c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6;break}case 2:{b=c[c[b+4>>2]>>2]|0;if(c[b+8>>2]|0){c[t>>2]=b;c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6}break}default:{}}while(0);if((o|0)==6?(o=0,(n|0)!=0):0){b=n;break a}b=c[p>>2]|0;if((b|0)<=(q|0)){b=0;break a}}else b=0}while(0);i=u;return b|0}function QA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:while(1){switch(c[a>>2]|0){case 2:{a=c[a+4>>2]|0;if((c[a+8>>2]|0)==-1?(h=c[a>>2]|0,h=iB(c[h+28>>2]|0,c[h+24>>2]|0,b,d,e)|0,(h|0)!=0):0){a=h;break a}break}case 3:{f=c[a+4>>2]|0;a=QA(c[f>>2]|0,b,d,e)|0;if(a)break a;a=f+4|0;break}case 1:{f=c[a+4>>2]|0;g=f+4|0;a=iB(c[(c[f>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+24>>2]|0,b,d,e)|0;if(a)break a;a=QA(c[f>>2]|0,b,d,e)|0;if(!a)a=g;else break a;break}default:{a=0;break a}}a=c[a>>2]|0}return a|0}function RA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if((a|0)>0){h=0;while(1){f=c[d+(h<<2)>>2]|0;g=c[e+(h<<2)>>2]|0;if(!(c[b+(h<<2)>>2]|0)){if((f|0)<(g|0)){f=1;break a}if((f|0)>(g|0)){f=0;break a}}else{if((f|0)>(g|0)){f=1;break a}if((f|0)<(g|0)){f=0;break a}}h=h+1|0;if((h|0)>=(a|0)){f=0;break}}}else f=0;while(0);return f|0}function SA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((d&8|0)==0&(g|0)>-1){n=c[e+16>>2]|0;l=e+28|0;d=c[l>>2]|0;m=(a|0)!=0;if(m&(d|0)!=0){j=e+48|0;k=0;do{d=c[n+(k*12|0)>>2]|0;if((d|0)==(c[j>>2]|0))i=g;else i=c[f+(d<<2)>>2]|0;h=b+(k<<3)|0;c[h>>2]=i;d=c[n+(k*12|0)+4>>2]|0;if((d|0)==(c[j>>2]|0))e=g;else e=c[f+(d<<2)>>2]|0;d=b+(k<<3)+4|0;c[d>>2]=e;if((i|0)==-1|(e|0)==-1){c[d>>2]=-1;c[h>>2]=-1}k=k+1|0;d=c[l>>2]|0}while(k>>>0<a>>>0&k>>>0<d>>>0);g=d}else g=d;if(m&(g|0)!=0){d=0;do{h=b+(d<<3)+4|0;i=c[n+(d*12|0)+8>>2]|0;if((i|0)!=0?(o=c[i>>2]|0,(o|0)>-1):0){j=b+(d<<3)|0;k=o;e=c[j>>2]|0;l=0;do{if(!((e|0)>=(c[b+(k<<3)>>2]|0)?(c[h>>2]|0)<=(c[b+(k<<3)+4>>2]|0):0)){c[h>>2]=-1;c[j>>2]=-1;e=-1}l=l+1|0;k=c[i+(l<<2)>>2]|0}while((k|0)>-1)}d=d+1|0}while(d>>>0<a>>>0&d>>>0<g>>>0)}else d=0}else d=0;if(d>>>0<a>>>0)do{c[b+(d<<3)>>2]=-1;c[b+(d<<3)+4>>2]=-1;d=d+1|0}while((d|0)!=(a|0));return}function TA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;a:do if(!e)e=0;else{f=(d|0)==0;d=a;while(1){if(f){if(dy(b,e)|0){e=1;break a}}else{a=oy(b)|0;if(dy(a,c[d>>2]|0)|0){e=1;break a}a=py(b)|0;if(dy(a,c[d>>2]|0)|0){e=1;break a}}d=d+4|0;e=c[d>>2]|0;if(!e){e=0;break}}}while(0);return e|0}function UA(a){a=a|0;if(!(c[a+68>>2]|0))jz(a);return}function VA(a){a=a|0;if(!(c[a+68>>2]|0))jz(a);return}function WA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(ub[c[a+36>>2]&31](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0<f>>>0)ub[c[a+40>>2]&31](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function XA(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+624|0;ca=ha+24|0;ea=ha+16|0;da=ha+588|0;Y=ha+576|0;ba=ha;V=ha+536|0;ga=ha+8|0;fa=ha+528|0;M=(e|0)!=0;N=V+40|0;U=N;V=V+39|0;W=ga+4|0;X=Y+12|0;Y=Y+11|0;Z=da;$=X;aa=$-Z|0;O=-2-Z|0;P=$+2|0;Q=ca+288|0;R=da+9|0;S=R;T=da+8|0;m=0;w=f;n=0;f=0;a:while(1){do if((m|0)>-1)if((n|0)>(2147483647-m|0)){c[(qy()|0)>>2]=75;m=-1;break}else{m=n+m|0;break}while(0);n=a[w>>0]|0;if(!(n<<24>>24)){L=245;break}else o=w;b:while(1){switch(n<<24>>24){case 37:{n=o;L=9;break b}case 0:{n=o;break b}default:{}}K=o+1|0;n=a[K>>0]|0;o=K}c:do if((L|0)==9)while(1){L=0;if((a[n+1>>0]|0)!=37)break c;o=o+1|0;n=n+2|0;if((a[n>>0]|0)==37)L=9;else break}while(0);y=o-w|0;if(M?(c[e>>2]&32|0)==0:0)Lz(w,y,e)|0;if((o|0)!=(w|0)){w=n;n=y;continue}r=n+1|0;o=a[r>>0]|0;p=(o<<24>>24)+-48|0;if(p>>>0<10){K=(a[n+2>>0]|0)==36;r=K?n+3|0:r;o=a[r>>0]|0;u=K?p:-1;f=K?1:f}else u=-1;n=o<<24>>24;d:do if((n&-32|0)==32){p=0;while(1){if(!(1<<n+-32&75913)){s=p;n=r;break d}p=1<<(o<<24>>24)+-32|p;r=r+1|0;o=a[r>>0]|0;n=o<<24>>24;if((n&-32|0)!=32){s=p;n=r;break}}}else{s=0;n=r}while(0);do if(o<<24>>24==42){p=n+1|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[l+(o<<2)>>2]=10;f=1;n=n+3|0;o=c[j+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(f){m=-1;break a}if(!M){x=s;n=p;f=0;K=0;break}f=(c[g>>2]|0)+(4-1)&~(4-1);o=c[f>>2]|0;c[g>>2]=f+4;f=0;n=p}if((o|0)<0){x=s|8192;K=0-o|0}else{x=s;K=o}}else{p=(o<<24>>24)+-48|0;if(p>>>0<10){o=0;do{o=(o*10|0)+p|0;n=n+1|0;p=(a[n>>0]|0)+-48|0}while(p>>>0<10);if((o|0)<0){m=-1;break a}else{x=s;K=o}}else{x=s;K=0}}while(0);e:do if((a[n>>0]|0)==46){p=n+1|0;o=a[p>>0]|0;if(o<<24>>24!=42){r=(o<<24>>24)+-48|0;if(r>>>0<10){n=p;o=0}else{n=p;r=0;break}while(1){o=(o*10|0)+r|0;n=n+1|0;r=(a[n>>0]|0)+-48|0;if(r>>>0>=10){r=o;break e}}}p=n+2|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+3>>0]|0)==36:0){c[l+(o<<2)>>2]=10;n=n+4|0;r=c[j+((a[p>>0]|0)+-48<<3)>>2]|0;break}if(f){m=-1;break a}if(M){n=(c[g>>2]|0)+(4-1)&~(4-1);r=c[n>>2]|0;c[g>>2]=n+4;n=p}else{n=p;r=0}}else r=-1;while(0);t=0;while(1){o=(a[n>>0]|0)+-65|0;if(o>>>0>57){m=-1;break a}p=n+1|0;o=a[175096+(t*58|0)+o>>0]|0;s=o&255;if((s+-1|0)>>>0<8){n=p;t=s}else{J=p;break}}if(!(o<<24>>24)){m=-1;break}p=(u|0)>-1;do if(o<<24>>24==19)if(p){m=-1;break a}else L=52;else{if(p){c[l+(u<<2)>>2]=s;H=j+(u<<3)|0;I=c[H+4>>2]|0;L=ba;c[L>>2]=c[H>>2];c[L+4>>2]=I;L=52;break}if(!M){m=0;break a}fB(ba,s,g)}while(0);if((L|0)==52?(L=0,!M):0){w=J;n=y;continue}u=a[n>>0]|0;u=(t|0)!=0&(u&15|0)==3?u&-33:u;p=x&-65537;I=(x&8192|0)==0?x:p;f:do switch(u|0){case 110:switch(t|0){case 0:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 1:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 2:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}case 3:{b[c[ba>>2]>>1]=m;w=J;n=y;continue a}case 4:{a[c[ba>>2]>>0]=m;w=J;n=y;continue a}case 6:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 7:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}default:{w=J;n=y;continue a}}case 112:{t=I|8;r=r>>>0>8?r:8;u=120;L=64;break}case 88:case 120:{t=I;L=64;break}case 111:{p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;if((o|0)==0&(p|0)==0)n=N;else{n=N;do{n=n+-1|0;a[n>>0]=o&7|48;o=yB(o|0,p|0,3)|0;p=C}while(!((o|0)==0&(p|0)==0))}if(!(I&8)){o=I;t=0;s=175576;L=77}else{t=U-n+1|0;o=I;r=(r|0)<(t|0)?t:r;t=0;s=175576;L=77}break}case 105:case 100:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;if((o|0)<0){n=vB(0,0,n|0,o|0)|0;o=C;p=ba;c[p>>2]=n;c[p+4>>2]=o;p=1;s=175576;L=76;break f}if(!(I&2048)){s=I&1;p=s;s=(s|0)==0?175576:175578;L=76}else{p=1;s=175577;L=76}break}case 117:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;p=0;s=175576;L=76;break}case 99:{a[V>>0]=c[ba>>2];w=V;o=1;t=0;u=175576;n=N;break}case 109:{n=ry(c[(qy()|0)>>2]|0)|0;L=82;break}case 115:{n=c[ba>>2]|0;n=(n|0)!=0?n:175586;L=82;break}case 67:{c[ga>>2]=c[ba>>2];c[W>>2]=0;c[ba>>2]=ga;r=-1;L=86;break}case 83:{if(!r){hB(e,32,K,0,I);n=0;L=98}else L=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{q=+h[ba>>3];c[ea>>2]=0;h[k>>3]=q;if((c[k+4>>2]|0)>=0)if(!(I&2048)){H=I&1;G=H;H=(H|0)==0?175594:175599}else{G=1;H=175596}else{q=-q;G=1;H=175593}h[k>>3]=q;F=c[k+4>>2]&2146435072;do if(F>>>0<2146435072|(F|0)==2146435072&0<0){v=+Jy(q,ea)*2.0;o=v!=0.0;if(o)c[ea>>2]=(c[ea>>2]|0)+-1;D=u|32;if((D|0)==97){w=u&32;y=(w|0)==0?H:H+9|0;x=G|2;n=12-r|0;do if(!(r>>>0>11|(n|0)==0)){q=8.0;do{n=n+-1|0;q=q*16.0}while((n|0)!=0);if((a[y>>0]|0)==45){q=-(q+(-v-q));break}else{q=v+q-q;break}}else q=v;while(0);o=c[ea>>2]|0;n=(o|0)<0?0-o|0:o;n=gB(n,((n|0)<0)<<31>>31,X)|0;if((n|0)==(X|0)){a[Y>>0]=48;n=Y}a[n+-1>>0]=(o>>31&2)+43;t=n+-2|0;a[t>>0]=u+15;s=(r|0)<1;p=(I&8|0)==0;o=da;while(1){H=~~q;n=o+1|0;a[o>>0]=d[175560+H>>0]|w;q=(q-+(H|0))*16.0;do if((n-Z|0)==1){if(p&(s&q==0.0))break;a[n>>0]=46;n=o+2|0}while(0);if(!(q!=0.0))break;else o=n}r=(r|0)!=0&(O+n|0)<(r|0)?P+r-t|0:aa-t+n|0;p=r+x|0;hB(e,32,K,p,I);if(!(c[e>>2]&32))Lz(y,x,e)|0;hB(e,48,K,p,I^65536);n=n-Z|0;if(!(c[e>>2]&32))Lz(da,n,e)|0;o=$-t|0;hB(e,48,r-(n+o)|0,0,0);if(!(c[e>>2]&32))Lz(t,o,e)|0;hB(e,32,K,p,I^8192);n=(p|0)<(K|0)?K:p;break}n=(r|0)<0?6:r;if(o){o=(c[ea>>2]|0)+-28|0;c[ea>>2]=o;q=v*268435456.0}else{q=v;o=c[ea>>2]|0}F=(o|0)<0?ca:Q;E=F;o=F;do{B=~~q>>>0;c[o>>2]=B;o=o+4|0;q=(q-+(B>>>0))*1.0e9}while(q!=0.0);p=o;o=c[ea>>2]|0;if((o|0)>0){s=F;while(1){t=(o|0)>29?29:o;r=p+-4|0;do if(r>>>0<s>>>0)r=s;else{o=0;do{B=DB(c[r>>2]|0,0,t|0)|0;B=wB(B|0,C|0,o|0,0)|0;o=C;A=LB(B|0,o|0,1e9,0)|0;c[r>>2]=A;o=KB(B|0,o|0,1e9,0)|0;r=r+-4|0}while(r>>>0>=s>>>0);if(!o){r=s;break}r=s+-4|0;c[r>>2]=o}while(0);while(1){if(p>>>0<=r>>>0)break;o=p+-4|0;if(!(c[o>>2]|0))p=o;else break}o=(c[ea>>2]|0)-t|0;c[ea>>2]=o;if((o|0)>0)s=r;else break}}else r=F;if((o|0)<0){y=((n+25|0)/9|0)+1|0;z=(D|0)==102;w=r;while(1){x=0-o|0;x=(x|0)>9?9:x;do if(w>>>0<p>>>0){o=(1<<x)+-1|0;s=1e9>>>x;r=0;t=w;do{B=c[t>>2]|0;c[t>>2]=(B>>>x)+r;r=_(B&o,s)|0;t=t+4|0}while(t>>>0<p>>>0);o=(c[w>>2]|0)==0?w+4|0:w;if(!r){r=o;break}c[p>>2]=r;r=o;p=p+4|0}else r=(c[w>>2]|0)==0?w+4|0:w;while(0);o=z?F:r;p=(p-o>>2|0)>(y|0)?o+(y<<2)|0:p;o=(c[ea>>2]|0)+x|0;c[ea>>2]=o;if((o|0)>=0){w=r;break}else w=r}}else w=r;do if(w>>>0<p>>>0){o=(E-w>>2)*9|0;s=c[w>>2]|0;if(s>>>0<10)break;else r=10;do{r=r*10|0;o=o+1|0}while(s>>>0>=r>>>0)}else o=0;while(0);A=(D|0)==103;B=(n|0)!=0;r=n-((D|0)!=102?o:0)+((B&A)<<31>>31)|0;if((r|0)<(((p-E>>2)*9|0)+-9|0)){t=r+9216|0;z=(t|0)/9|0;r=F+(z+-1023<<2)|0;t=((t|0)%9|0)+1|0;if((t|0)<9){s=10;do{s=s*10|0;t=t+1|0}while((t|0)!=9)}else s=10;x=c[r>>2]|0;y=(x>>>0)%(s>>>0)|0;if((y|0)==0?(F+(z+-1022<<2)|0)==(p|0):0)s=w;else L=163;do if((L|0)==163){L=0;v=(((x>>>0)/(s>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;t=(s|0)/2|0;do if(y>>>0<t>>>0)q=.5;else{if((y|0)==(t|0)?(F+(z+-1022<<2)|0)==(p|0):0){q=1.0;break}q=1.5}while(0);do if(G){if((a[H>>0]|0)!=45)break;v=-v;q=-q}while(0);t=x-y|0;c[r>>2]=t;if(!(v+q!=v)){s=w;break}D=t+s|0;c[r>>2]=D;if(D>>>0>999999999){o=w;while(1){s=r+-4|0;c[r>>2]=0;if(s>>>0<o>>>0){o=o+-4|0;c[o>>2]=0}D=(c[s>>2]|0)+1|0;c[s>>2]=D;if(D>>>0>999999999)r=s;else{w=o;r=s;break}}}o=(E-w>>2)*9|0;t=c[w>>2]|0;if(t>>>0<10){s=w;break}else s=10;do{s=s*10|0;o=o+1|0}while(t>>>0>=s>>>0);s=w}while(0);D=r+4|0;w=s;p=p>>>0>D>>>0?D:p}y=0-o|0;while(1){if(p>>>0<=w>>>0){z=0;D=p;break}r=p+-4|0;if(!(c[r>>2]|0))p=r;else{z=1;D=p;break}}do if(A){n=(B&1^1)+n|0;if((n|0)>(o|0)&(o|0)>-5){u=u+-1|0;n=n+-1-o|0}else{u=u+-2|0;n=n+-1|0}p=I&8;if(p)break;do if(z){p=c[D+-4>>2]|0;if(!p){r=9;break}if(!((p>>>0)%10|0)){s=10;r=0}else{r=0;break}do{s=s*10|0;r=r+1|0}while(((p>>>0)%(s>>>0)|0|0)==0)}else r=9;while(0);p=((D-E>>2)*9|0)+-9|0;if((u|32|0)==102){p=p-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}else{p=p+o-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}}else p=I&8;while(0);x=n|p;s=(x|0)!=0&1;t=(u|32|0)==102;if(t){o=(o|0)>0?o:0;u=0}else{r=(o|0)<0?y:o;r=gB(r,((r|0)<0)<<31>>31,X)|0;if(($-r|0)<2)do{r=r+-1|0;a[r>>0]=48}while(($-r|0)<2);a[r+-1>>0]=(o>>31&2)+43;E=r+-2|0;a[E>>0]=u;o=$-E|0;u=E}y=G+1+n+s+o|0;hB(e,32,K,y,I);if(!(c[e>>2]&32))Lz(H,G,e)|0;hB(e,48,K,y,I^65536);do if(t){r=w>>>0>F>>>0?F:w;o=r;do{p=gB(c[o>>2]|0,0,R)|0;do if((o|0)==(r|0)){if((p|0)!=(R|0))break;a[T>>0]=48;p=T}else{if(p>>>0<=da>>>0)break;do{p=p+-1|0;a[p>>0]=48}while(p>>>0>da>>>0)}while(0);if(!(c[e>>2]&32))Lz(p,S-p|0,e)|0;o=o+4|0}while(o>>>0<=F>>>0);do if(x){if(c[e>>2]&32)break;Lz(175628,1,e)|0}while(0);if((n|0)>0&o>>>0<D>>>0){p=o;while(1){o=gB(c[p>>2]|0,0,R)|0;if(o>>>0>da>>>0)do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0);if(!(c[e>>2]&32))Lz(o,(n|0)>9?9:n,e)|0;p=p+4|0;o=n+-9|0;if(!((n|0)>9&p>>>0<D>>>0)){n=o;break}else n=o}}hB(e,48,n+9|0,9,0)}else{t=z?D:w+4|0;if((n|0)>-1){s=(p|0)==0;r=w;do{o=gB(c[r>>2]|0,0,R)|0;if((o|0)==(R|0)){a[T>>0]=48;o=T}do if((r|0)==(w|0)){p=o+1|0;if(!(c[e>>2]&32))Lz(o,1,e)|0;if(s&(n|0)<1){o=p;break}if(c[e>>2]&32){o=p;break}Lz(175628,1,e)|0;o=p}else{if(o>>>0<=da>>>0)break;do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0)}while(0);p=S-o|0;if(!(c[e>>2]&32))Lz(o,(n|0)>(p|0)?p:n,e)|0;n=n-p|0;r=r+4|0}while(r>>>0<t>>>0&(n|0)>-1)}hB(e,48,n+18|0,18,0);if(c[e>>2]&32)break;Lz(u,$-u|0,e)|0}while(0);hB(e,32,K,y,I^8192);n=(y|0)<(K|0)?K:y}else{t=(u&32|0)!=0;s=q!=q|0.0!=0.0;o=s?0:G;r=o+3|0;hB(e,32,K,r,p);n=c[e>>2]|0;if(!(n&32)){Lz(H,o,e)|0;n=c[e>>2]|0}if(!(n&32))Lz(s?(t?175620:175624):t?175612:175616,3,e)|0;hB(e,32,K,r,I^8192);n=(r|0)<(K|0)?K:r}while(0);w=J;continue a}default:{p=I;o=r;t=0;u=175576;n=N}}while(0);g:do if((L|0)==64){p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;s=u&32;if(!((o|0)==0&(p|0)==0)){n=N;do{n=n+-1|0;a[n>>0]=d[175560+(o&15)>>0]|s;o=yB(o|0,p|0,4)|0;p=C}while(!((o|0)==0&(p|0)==0));L=ba;if((t&8|0)==0|(c[L>>2]|0)==0&(c[L+4>>2]|0)==0){o=t;t=0;s=175576;L=77}else{o=t;t=2;s=175576+(u>>4)|0;L=77}}else{n=N;o=t;t=0;s=175576;L=77}}else if((L|0)==76){n=gB(n,o,N)|0;o=I;t=p;L=77}else if((L|0)==82){L=0;I=cA(n,0,r)|0;H=(I|0)==0;w=n;o=H?r:I-n|0;t=0;u=175576;n=H?n+r|0:I}else if((L|0)==86){L=0;o=0;n=0;s=c[ba>>2]|0;while(1){p=c[s>>2]|0;if(!p)break;n=Wy(fa,p)|0;if((n|0)<0|n>>>0>(r-o|0)>>>0)break;o=n+o|0;if(r>>>0>o>>>0)s=s+4|0;else break}if((n|0)<0){m=-1;break a}hB(e,32,K,o,I);if(!o){n=0;L=98}else{p=0;r=c[ba>>2]|0;while(1){n=c[r>>2]|0;if(!n){n=o;L=98;break g}n=Wy(fa,n)|0;p=n+p|0;if((p|0)>(o|0)){n=o;L=98;break g}if(!(c[e>>2]&32))Lz(fa,n,e)|0;if(p>>>0>=o>>>0){n=o;L=98;break}else r=r+4|0}}}while(0);if((L|0)==98){L=0;hB(e,32,K,n,I^8192);w=J;n=(K|0)>(n|0)?K:n;continue}if((L|0)==77){L=0;p=(r|0)>-1?o&-65537:o;o=ba;o=(c[o>>2]|0)!=0|(c[o+4>>2]|0)!=0;if((r|0)!=0|o){o=(o&1^1)+(U-n)|0;w=n;o=(r|0)>(o|0)?r:o;u=s;n=N}else{w=N;o=0;u=s;n=N}}s=n-w|0;o=(o|0)<(s|0)?s:o;r=t+o|0;n=(K|0)<(r|0)?r:K;hB(e,32,n,r,p);if(!(c[e>>2]&32))Lz(u,t,e)|0;hB(e,48,n,r,p^65536);hB(e,48,o,s,0);if(!(c[e>>2]&32))Lz(w,s,e)|0;hB(e,32,n,r,p^8192);w=J}h:do if((L|0)==245)if(!e)if(f){m=1;while(1){f=c[l+(m<<2)>>2]|0;if(!f)break;fB(j+(m<<3)|0,f,g);m=m+1|0;if((m|0)>=10){m=1;break h}}if((m|0)<10)while(1){if(c[l+(m<<2)>>2]|0){m=-1;break h}m=m+1|0;if((m|0)>=10){m=1;break}}else m=1}else m=0;while(0);i=ha;return m|0}function YA(a,b,c){a=a|0;b=b|0;c=c|0;return qz(a,b,c)|0}function ZA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+240|0;o=p;c[o>>2]=a;a:do if((e|0)>1){n=0-b|0;g=e;h=a;k=a;l=1;while(1){a=h+n|0;m=g+-2|0;j=h+(0-((c[f+(m<<2)>>2]|0)+b))|0;if((Lb[d&63](k,j)|0)>-1?(Lb[d&63](k,a)|0)>-1:0){e=l;break a}e=l+1|0;h=o+(l<<2)|0;if((Lb[d&63](j,a)|0)>-1){c[h>>2]=j;a=j;g=g+-1|0}else{c[h>>2]=a;g=m}if((g|0)<=1)break a;h=a;k=c[o>>2]|0;l=e}}else e=1;while(0);dB(b,o,e);i=p;return}function _A(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+240|0;p=r;k=c[e>>2]|0;e=c[e+4>>2]|0;c[p>>2]=a;o=0-b|0;a:do if((e|0)!=0|(k|0)!=1?(j=a+(0-(c[h+(f<<2)>>2]|0))|0,(Lb[d&63](j,a)|0)>=1):0){g=(g|0)==0;n=j;l=k;m=e;j=1;while(1){if(g&(f|0)>1){e=c[h+(f+-2<<2)>>2]|0;if((Lb[d&63](a+o|0,n)|0)>-1){g=f;e=j;q=20;break a}if((Lb[d&63](a+(0-(e+b))|0,n)|0)>-1){g=f;e=j;q=20;break a}}e=j+1|0;c[p+(j<<2)>>2]=n;g=l+-1|0;do if(g){if(!(g&1)){a=g;g=0;do{g=g+1|0;a=a>>>1}while((a&1|0)==0);if(!g)q=11}else q=11;if((q|0)==11){q=0;if(!m){g=64;q=16;break}if(!(m&1)){a=m;g=0}else{k=0;a=l;j=m;g=0;break}while(1){j=g+1|0;a=a>>>1;if(a&1){a=j;break}else g=j}if(!a){k=0;a=l;j=m;g=0;break}else g=g+33|0}if(g>>>0>31)q=16;else{k=g;a=l;j=m}}else{g=32;q=16}while(0);if((q|0)==16){q=0;k=g+-32|0;a=m;j=0}l=j<<32-k|a>>>k;m=j>>>k;g=g+f|0;if(!((m|0)!=0|(l|0)!=1)){a=n;q=20;break a}a=n+(0-(c[h+(g<<2)>>2]|0))|0;if((Lb[d&63](a,c[p>>2]|0)|0)<1){a=n;f=g;g=0;q=19;break}else{k=n;f=g;g=1;n=a;j=e;a=k}}}else{e=1;q=19}while(0);if((q|0)==19?(g|0)==0:0){g=f;q=20}if((q|0)==20){dB(b,p,e);ZA(a,b,d,g,h)}i=r;return}function $A(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,j=0;j=i;i=i+112|0;h=j;f=h;g=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;vy(h,0);e=+sy(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b)c[b>>2]=(d|0)!=0?a+d|0:a;i=j;return +e}function aB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+112|0;j=k;c[j>>2]=0;g=j+4|0;c[g>>2]=a;c[j+44>>2]=a;h=j+8|0;c[h>>2]=(a|0)<0?-1:a+2147483647|0;c[j+76>>2]=-1;vy(j,0);e=ty(j,d,1,e,f)|0;if(b)c[b>>2]=a+((c[g>>2]|0)+(c[j+108>>2]|0)-(c[h>>2]|0));i=k;return e|0}function bB(a){a=a|0;return}function cB(){return}function dB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,(a|0)!=0):0)while(1){f=a>>>0>256?256:a;AB(e|0,c[b>>2]|0,f|0)|0;e=0;do{j=b+(e<<2)|0;e=e+1|0;AB(c[j>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[j>>2]=(c[j>>2]|0)+f}while((e|0)!=(d|0));if((a|0)==(f|0))break a;a=a-f|0;e=c[g>>2]|0}while(0);i=h;return}function eB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;AB(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function fB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function gB(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=LB(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=KB(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=C}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function hB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+256|0;h=j;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;CB(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){Lz(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;Lz(h,f,a)|0}while(0);i=j;return}function iB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=c[a>>2]|0;h=(g|0)>-1;a:do if(!d)if(h){j=b+32|0;i=a;h=a;while(1){if((c[b>>2]|0)>-1?(z=e+(g<<2)|0,c[z>>2]=(c[z>>2]|0)+1,(c[j>>2]|0)>-1):0){g=j;do{z=e+(c[i>>2]<<2)|0;c[z>>2]=(c[z>>2]|0)+1;g=g+32|0}while((c[g>>2]|0)>-1)}h=h+32|0;g=c[h>>2]|0;if((g|0)>-1)i=h;else{g=0;break}}}else g=0;else if(h){w=a;t=a;while(1){g=c[b>>2]|0;b:do if((g|0)>-1){s=t+4|0;u=t+8|0;v=t+16|0;o=t+20|0;p=t+24|0;q=t+28|0;r=t+12|0;h=b;i=-1;while(1){while(1){if((g|0)!=(i|0)){n=g;break}h=h+32|0;g=c[h>>2]|0;if((g|0)<=-1)break b}i=d+(c[f+(c[w>>2]<<2)>>2]<<5)|0;while(1){g=i+8|0;if(!(c[g>>2]|0)){k=i;break}else i=i+32|0}c[k+40>>2]=0;c[k>>2]=c[s>>2];c[k+4>>2]=c[u>>2];c[g>>2]=d+(c[f+(n<<2)>>2]<<5);c[k+12>>2]=n;g=c[o>>2]|0;i=c[h+16>>2]|c[v>>2]|((g|0)!=0?4:0)|((c[p>>2]|0)!=0?8:0);j=k+20|0;c[j>>2]=i;a=c[q>>2]|0;if((a|0)>-1){c[j>>2]=i|256;g=a}c[k+24>>2]=g;i=c[p>>2]|0;if(!i)c[k+28>>2]=0;else{j=0;while(1){g=j+1|0;if(!(c[i+(j<<2)>>2]|0))break;else j=g}g=oB(g<<2)|0;c[k+28>>2]=g;if(!g){g=12;break a}e=c[p>>2]|0;i=c[e>>2]|0;if(i){j=g;a=0;do{c[j>>2]=i;a=a+1|0;i=c[e+(a<<2)>>2]|0;j=g+(a<<2)|0}while((i|0)!=0);g=j}c[g>>2]=0}g=c[r>>2]|0;if(!g)i=0;else{i=0;while(1)if((c[g+(i<<2)>>2]|0)>-1)i=i+1|0;else break}e=h+12|0;g=c[e>>2]|0;if(!g)j=0;else{j=0;while(1)if((c[g+(j<<2)>>2]|0)>-1)j=j+1|0;else break}a=k+16|0;g=c[a>>2]|0;if(g)pB(g);c[a>>2]=0;g=j+i|0;if((g|0)>0){m=oB((g<<2)+4|0)|0;c[a>>2]=m;if(!m){g=12;break a}j=c[r>>2]|0;if((j|0)!=0?(y=c[j>>2]|0,(y|0)>-1):0){i=y;g=0;do{c[m+(g<<2)>>2]=i;g=g+1|0;i=c[j+(g<<2)>>2]|0}while((i|0)>-1)}else g=0;a=c[e>>2]|0;if((a|0)!=0?(x=c[a>>2]|0,(x|0)>-1):0){e=(g|0)>0;k=x;l=0;i=g;while(1){c:do if(e){j=0;while(1){if((c[m+(j<<2)>>2]|0)==(k|0))break c;j=j+1|0;if((j|0)>=(g|0)){z=39;break}}}else z=39;while(0);if((z|0)==39){z=0;c[m+(i<<2)>>2]=k;i=i+1|0}l=l+1|0;k=c[a+(l<<2)>>2]|0;if((k|0)<=-1){g=i;break}}}c[m+(g<<2)>>2]=-1}h=h+32|0;g=c[h>>2]|0;if((g|0)>-1)i=n;else break}}while(0);g=t+32|0;if((c[g>>2]|0)>-1){w=g;t=g}else{g=0;break}}}else g=0;while(0);return g|0}function jB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=ez(a,0,0,0,8)|0;do if(f){e=KA(a,0,20)|0;if(!e){c[f>>2]=0;e=12;break}g=c[e+4>>2]|0;c[g>>2]=-3;c[g+4>>2]=d;c[g+8>>2]=-1;c[f>>2]=e;e=ez(a,0,0,0,32)|0;c[f+4>>2]=e;if(e){g=b+4|0;c[e+4>>2]=c[g>>2];c[e>>2]=c[b>>2];c[e+8>>2]=-1;c[e+12>>2]=-1;c[e+24>>2]=0;c[e+28>>2]=0;c[e+20>>2]=0;c[g>>2]=f;c[b>>2]=1;e=0}else e=12}else e=12;while(0);return e|0}function kB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;if((e|0)>-1){g=c[b+16>>2]|0;f=0;do{b=(e|0)/2|0;if(!(e&1))c[g+(b*12|0)>>2]=d;else c[g+(b*12|0)+4>>2]=d;f=f+1|0;e=c[a+(f<<2)>>2]|0}while((e|0)>-1)}c[a>>2]=-1;return}function lB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=ez(a,0,0,0,8)|0;do if(f){e=KA(a,0,20)|0;if(!e){c[f+4>>2]=0;e=12;break}g=c[e+4>>2]|0;c[g>>2]=-3;c[g+4>>2]=d;c[g+8>>2]=-1;c[f+4>>2]=e;e=ez(a,0,0,0,32)|0;c[f>>2]=e;if(e){g=b+4|0;c[e+4>>2]=c[g>>2];c[e>>2]=c[b>>2];c[e+8>>2]=-1;c[e+12>>2]=-1;c[e+24>>2]=0;c[e+28>>2]=0;c[e+20>>2]=0;c[g>>2]=f;c[b>>2]=1;e=0}else e=12}else e=12;while(0);return e|0}function mB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;i=c[g>>2]|0;h=c[f>>2]|0;if((c[e>>2]|0)>=(h|0))if((h|0)<=1024?(c[f>>2]=h<<1,j=rB(i,h<<3)|0,(j|0)!=0):0){c[g>>2]=j;i=j;k=5}else h=12;else k=5;if((k|0)==5){h=KA(a,0,20)|0;if(!h)h=0;else{k=c[h+4>>2]|0;c[k>>2]=b;c[k+4>>2]=d;c[k+8>>2]=-1}k=c[e>>2]|0;c[i+(k<<2)>>2]=h;c[e>>2]=k+1;h=(h|0)==0?12:0}return h|0}function nB(a,b){a=a|0;b=b|0;a=c[c[(c[a>>2]|0)+4>>2]>>2]|0;b=c[c[(c[b>>2]|0)+4>>2]>>2]|0;return ((a|0)<(b|0)?-1:(a|0)>(b|0)&1)|0}function oB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;i=c[22913]|0;d=i>>>a;if(d&3){a=(d&1^1)+a|0;e=a<<1;d=91692+(e<<2)|0;e=91692+(e+2<<2)|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else Ea()}else c[22913]=i&~(1<<a);while(0);M=a<<3;c[f+4>>2]=M|3;M=f+(M|4)|0;c[M>>2]=c[M>>2]|1;M=g;return M|0}h=c[22915]|0;if(o>>>0>h>>>0){if(d){e=2<<a;e=d<<a&(e|0-e);e=(e&0-e)+-1|0;j=e>>>12&16;e=e>>>j;f=e>>>5&8;e=e>>>f;g=e>>>2&4;e=e>>>g;d=e>>>1&2;e=e>>>d;a=e>>>1&1;a=(f|j|g|d|a)+(e>>>a)|0;e=a<<1;d=91692+(e<<2)|0;e=91692+(e+2<<2)|0;g=c[e>>2]|0;j=g+8|0;f=c[j>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[22917]|0)>>>0)Ea();b=f+12|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;c[e>>2]=f;k=c[22915]|0;break}else Ea()}else{c[22913]=i&~(1<<a);k=h}while(0);M=a<<3;h=M-o|0;c[g+4>>2]=o|3;i=g+o|0;c[g+(o|4)>>2]=h|1;c[g+M>>2]=h;if(k){f=c[22918]|0;d=k>>>3;b=d<<1;e=91692+(b<<2)|0;a=c[22913]|0;d=1<<d;if(a&d){a=91692+(b+2<<2)|0;b=c[a>>2]|0;if(b>>>0<(c[22917]|0)>>>0)Ea();else{l=a;m=b}}else{c[22913]=a|d;l=91692+(b+2<<2)|0;m=e}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=e}c[22915]=h;c[22918]=i;M=j;return M|0}a=c[22914]|0;if(a){d=(a&0-a)+-1|0;L=d>>>12&16;d=d>>>L;K=d>>>5&8;d=d>>>K;M=d>>>2&4;d=d>>>M;a=d>>>1&2;d=d>>>a;e=d>>>1&1;e=c[91956+((K|L|M|a|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;a=e;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b){j=d;break}}a=(c[b+4>>2]&-8)-o|0;M=a>>>0<d>>>0;d=M?a:d;a=b;e=M?b:e}g=c[22917]|0;if(e>>>0<g>>>0)Ea();i=e+o|0;if(e>>>0>=i>>>0)Ea();h=c[e+24>>2]|0;d=c[e+12>>2]|0;do if((d|0)==(e|0)){a=e+20|0;b=c[a>>2]|0;if(!b){a=e+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;f=c[d>>2]|0;if(f){b=f;a=d;continue}d=b+16|0;f=c[d>>2]|0;if(!f)break;else{b=f;a=d}}if(a>>>0<g>>>0)Ea();else{c[a>>2]=0;n=b;break}}else{f=c[e+8>>2]|0;if(f>>>0<g>>>0)Ea();b=f+12|0;if((c[b>>2]|0)!=(e|0))Ea();a=d+8|0;if((c[a>>2]|0)==(e|0)){c[b>>2]=d;c[a>>2]=f;n=d;break}else Ea()}while(0);do if(h){b=c[e+28>>2]|0;a=91956+(b<<2)|0;if((e|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[22914]=c[22914]&~(1<<b);break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+16|0;if((c[b>>2]|0)==(e|0))c[b>>2]=n;else c[h+20>>2]=n;if(!n)break}a=c[22917]|0;if(n>>>0<a>>>0)Ea();c[n+24>>2]=h;b=c[e+16>>2]|0;do if(b)if(b>>>0<a>>>0)Ea();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[e+20>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(j>>>0<16){M=j+o|0;c[e+4>>2]=M|3;M=e+(M+4)|0;c[M>>2]=c[M>>2]|1}else{c[e+4>>2]=o|3;c[e+(o|4)>>2]=j|1;c[e+(j+o)>>2]=j;b=c[22915]|0;if(b){g=c[22918]|0;d=b>>>3;b=d<<1;f=91692+(b<<2)|0;a=c[22913]|0;d=1<<d;if(a&d){b=91692+(b+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[22917]|0)>>>0)Ea();else{p=b;q=a}}else{c[22913]=a|d;p=91692+(b+2<<2)|0;q=f}c[p>>2]=g;c[q+12>>2]=g;c[g+8>>2]=q;c[g+12>>2]=f}c[22915]=j;c[22918]=i}M=e+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=c[22914]|0;if(l){d=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)k=31;else{q=(a+1048320|0)>>>16&8;v=a<<q;p=(v+520192|0)>>>16&4;v=v<<p;k=(v+245760|0)>>>16&2;k=14-(p|q|k)+(v<<k>>>15)|0;k=m>>>(k+7|0)&1|k<<1}else k=0;a=c[91956+(k<<2)>>2]|0;a:do if(!a){f=0;a=0;v=86}else{h=d;f=0;i=m<<((k|0)==31?0:25-(k>>>1)|0);j=a;a=0;while(1){g=c[j+4>>2]&-8;d=g-m|0;if(d>>>0<h>>>0)if((g|0)==(m|0)){g=j;a=j;v=90;break a}else a=j;else d=h;v=c[j+20>>2]|0;j=c[j+16+(i>>>31<<2)>>2]|0;f=(v|0)==0|(v|0)==(j|0)?f:v;if(!j){v=86;break}else{h=d;i=i<<1}}}while(0);if((v|0)==86){if((f|0)==0&(a|0)==0){a=2<<k;a=l&(a|0-a);if(!a){q=m;break}a=(a&0-a)+-1|0;n=a>>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;f=a>>>1&1;f=c[91956+((l|n|p|q|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;j=a}else{g=f;v=90}}if((v|0)==90)while(1){v=0;q=(c[g+4>>2]&-8)-m|0;f=q>>>0<d>>>0;d=f?q:d;a=f?g:a;f=c[g+16>>2]|0;if(f){g=f;v=90;continue}g=c[g+20>>2]|0;if(!g){i=d;j=a;break}else v=90}if((j|0)!=0?i>>>0<((c[22915]|0)-m|0)>>>0:0){f=c[22917]|0;if(j>>>0<f>>>0)Ea();h=j+m|0;if(j>>>0>=h>>>0)Ea();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){o=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)Ea();else{c[a>>2]=0;o=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)Ea();b=e+12|0;if((c[b>>2]|0)!=(j|0))Ea();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;o=d;break}else Ea()}while(0);do if(g){b=c[j+28>>2]|0;a=91956+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=o;if(!o){c[22914]=c[22914]&~(1<<b);break}}else{if(g>>>0<(c[22917]|0)>>>0)Ea();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=o;else c[g+20>>2]=o;if(!o)break}a=c[22917]|0;if(o>>>0<a>>>0)Ea();c[o+24>>2]=g;b=c[j+16>>2]|0;do if(b)if(b>>>0<a>>>0)Ea();else{c[o+16>>2]=b;c[b+24>>2]=o;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[o+20>>2]=b;c[b+24>>2]=o;break}}while(0);b:do if(i>>>0>=16){c[j+4>>2]=m|3;c[j+(m|4)>>2]=i|1;c[j+(i+m)>>2]=i;b=i>>>3;if(i>>>0<256){a=b<<1;e=91692+(a<<2)|0;d=c[22913]|0;b=1<<b;if(d&b){b=91692+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[22917]|0)>>>0)Ea();else{s=b;t=a}}else{c[22913]=d|b;s=91692+(a+2<<2)|0;t=e}c[s>>2]=h;c[t+12>>2]=h;c[j+(m+8)>>2]=t;c[j+(m+12)>>2]=e;break}b=i>>>8;if(b)if(i>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<<L;K=(M+520192|0)>>>16&4;M=M<<K;e=(M+245760|0)>>>16&2;e=14-(K|L|e)+(M<<e>>>15)|0;e=i>>>(e+7|0)&1|e<<1}else e=0;b=91956+(e<<2)|0;c[j+(m+28)>>2]=e;c[j+(m+20)>>2]=0;c[j+(m+16)>>2]=0;a=c[22914]|0;d=1<<e;if(!(a&d)){c[22914]=a|d;c[b>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(i|0)){y=d;break c}else{e=e<<1;b=d}}if(a>>>0<(c[22917]|0)>>>0)Ea();else{c[a>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break b}}else y=b;while(0);b=y+8|0;a=c[b>>2]|0;M=c[22917]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[j+(m+8)>>2]=a;c[j+(m+12)>>2]=y;c[j+(m+24)>>2]=0;break}else Ea()}else{M=i+m|0;c[j+4>>2]=M|3;M=j+(M+4)|0;c[M>>2]=c[M>>2]|1}while(0);M=j+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);d=c[22915]|0;if(d>>>0>=q>>>0){b=d-q|0;a=c[22918]|0;if(b>>>0>15){c[22918]=a+q;c[22915]=b;c[a+(q+4)>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=q|3}else{c[22915]=0;c[22918]=0;c[a+4>>2]=d|3;M=a+(d+4)|0;c[M>>2]=c[M>>2]|1}M=a+8|0;return M|0}a=c[22916]|0;if(a>>>0>q>>>0){L=a-q|0;c[22916]=L;M=c[22919]|0;c[22919]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(c[23031]|0)){a=Ta(30)|0;if(!(a+-1&a)){c[23033]=a;c[23032]=a;c[23034]=-1;c[23035]=-1;c[23036]=0;c[23024]=0;c[23031]=(lb(0)|0)&-16^1431655768;break}else Ea()}while(0);j=q+48|0;i=c[23033]|0;k=q+47|0;h=i+k|0;i=0-i|0;l=h&i;if(l>>>0<=q>>>0){M=0;return M|0}a=c[23023]|0;if((a|0)!=0?(t=c[23021]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(c[23024]&4)){a=c[22919]|0;e:do if(a){f=92100;while(1){d=c[f>>2]|0;if(d>>>0<=a>>>0?(r=f+4|0,(d+(c[r>>2]|0)|0)>>>0>a>>>0):0){g=f;a=r;break}f=c[f+8>>2]|0;if(!f){v=174;break e}}d=h-(c[22916]|0)&i;if(d>>>0<2147483647){f=Pa(d|0)|0;y=(f|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=y?d:0;if(y){if((f|0)!=(-1|0)){w=f;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){g=Pa(0)|0;if((g|0)!=(-1|0)){a=g;d=c[23032]|0;f=d+-1|0;if(!(f&a))d=l;else d=l-a+(f+a&0-d)|0;a=c[23021]|0;f=a+d|0;if(d>>>0>q>>>0&d>>>0<2147483647){y=c[23023]|0;if((y|0)!=0?f>>>0<=a>>>0|f>>>0>y>>>0:0){a=0;break}f=Pa(d|0)|0;y=(f|0)==(g|0);a=y?d:0;if(y){w=g;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){g=0-d|0;do if(j>>>0>d>>>0&(d>>>0<2147483647&(f|0)!=(-1|0))?(u=c[23033]|0,u=k-d+u&0-u,u>>>0<2147483647):0)if((Pa(u|0)|0)==(-1|0)){Pa(g|0)|0;break f}else{d=u+d|0;break}while(0);if((f|0)!=(-1|0)){w=f;p=d;v=194;break d}}while(0);c[23024]=c[23024]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Pa(l|0)|0,x=Pa(0)|0,w>>>0<x>>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(c[23021]|0)+p|0;c[23021]=a;if(a>>>0>(c[23022]|0)>>>0)c[23022]=a;h=c[22919]|0;g:do if(h){g=92100;do{a=c[g>>2]|0;d=g+4|0;f=c[d>>2]|0;if((w|0)==(a+f|0)){B=a;C=d;D=f;E=g;v=204;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((v|0)==204?(c[E+12>>2]&8|0)==0:0)?h>>>0<w>>>0&h>>>0>=B>>>0:0){c[C>>2]=D+p;M=(c[22916]|0)+p|0;L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;c[22919]=h+L;c[22916]=K;c[h+(L+4)>>2]=K|1;c[h+(M+4)>>2]=40;c[22920]=c[23035];break}a=c[22917]|0;if(w>>>0<a>>>0){c[22917]=w;a=w}d=w+p|0;g=92100;while(1){if((c[g>>2]|0)==(d|0)){f=g;d=g;v=212;break}g=c[g+8>>2]|0;if(!g){d=92100;break}}if((v|0)==212)if(!(c[d+12>>2]&8)){c[f>>2]=w;n=d+4|0;c[n>>2]=(c[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;k=w+(p+8)|0;k=(k&7|0)==0?0:0-k&7;b=w+(k+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;c[w+(n+4)>>2]=q|3;h:do if((b|0)!=(h|0)){if((b|0)==(c[22918]|0)){M=(c[22915]|0)+l|0;c[22915]=M;c[22918]=o;c[w+(m+4)>>2]=M|1;c[w+(M+m)>>2]=M;break}i=p+4|0;d=c[w+(i+k)>>2]|0;if((d&3|0)==1){j=d&-8;g=d>>>3;i:do if(d>>>0>=256){h=c[w+((k|24)+p)>>2]|0;e=c[w+(p+12+k)>>2]|0;do if((e|0)==(b|0)){f=k|16;e=w+(i+f)|0;d=c[e>>2]|0;if(!d){e=w+(f+p)|0;d=c[e>>2]|0;if(!d){J=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<a>>>0)Ea();else{c[e>>2]=0;J=d;break}}else{f=c[w+((k|8)+p)>>2]|0;if(f>>>0<a>>>0)Ea();a=f+12|0;if((c[a>>2]|0)!=(b|0))Ea();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;J=e;break}else Ea()}while(0);if(!h)break;a=c[w+(p+28+k)>>2]|0;d=91956+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(h>>>0<(c[22917]|0)>>>0)Ea();a=h+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=J;else c[h+20>>2]=J;if(!J)break i}else{c[d>>2]=J;if(J)break;c[22914]=c[22914]&~(1<<a);break i}while(0);d=c[22917]|0;if(J>>>0<d>>>0)Ea();c[J+24>>2]=h;b=k|16;a=c[w+(b+p)>>2]|0;do if(a)if(a>>>0<d>>>0)Ea();else{c[J+16>>2]=a;c[a+24>>2]=J;break}while(0);b=c[w+(i+b)>>2]|0;if(!b)break;if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{e=c[w+((k|8)+p)>>2]|0;f=c[w+(p+12+k)>>2]|0;d=91692+(g<<1<<2)|0;do if((e|0)!=(d|0)){if(e>>>0<a>>>0)Ea();if((c[e+12>>2]|0)==(b|0))break;Ea()}while(0);if((f|0)==(e|0)){c[22913]=c[22913]&~(1<<g);break}do if((f|0)==(d|0))F=f+8|0;else{if(f>>>0<a>>>0)Ea();a=f+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}Ea()}while(0);c[e+12>>2]=f;c[F>>2]=e}while(0);b=w+((j|k)+p)|0;f=j+l|0}else f=l;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[w+(m+4)>>2]=f|1;c[w+(f+m)>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;e=91692+(a<<2)|0;d=c[22913]|0;b=1<<b;do if(!(d&b)){c[22913]=d|b;K=91692+(a+2<<2)|0;L=e}else{b=91692+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0>=(c[22917]|0)>>>0){K=b;L=a;break}Ea()}while(0);c[K>>2]=o;c[L+12>>2]=o;c[w+(m+8)>>2]=L;c[w+(m+12)>>2]=e;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}K=(b+1048320|0)>>>16&8;L=b<<K;J=(L+520192|0)>>>16&4;L=L<<J;e=(L+245760|0)>>>16&2;e=14-(J|K|e)+(L<<e>>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=91956+(e<<2)|0;c[w+(m+28)>>2]=e;c[w+(m+20)>>2]=0;c[w+(m+16)>>2]=0;a=c[22914]|0;d=1<<e;if(!(a&d)){c[22914]=a|d;c[b>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break}b=c[b>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(f|0)){M=d;break j}else{e=e<<1;b=d}}if(a>>>0<(c[22917]|0)>>>0)Ea();else{c[a>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=c[b>>2]|0;L=c[22917]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){c[a+12>>2]=o;c[b>>2]=o;c[w+(m+8)>>2]=a;c[w+(m+12)>>2]=M;c[w+(m+24)>>2]=0;break}else Ea()}else{M=(c[22916]|0)+l|0;c[22916]=M;c[22919]=o;c[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else d=92100;while(1){a=c[d>>2]|0;if(a>>>0<=h>>>0?(b=c[d+4>>2]|0,e=a+b|0,e>>>0>h>>>0):0)break;d=c[d+8>>2]|0}f=a+(b+-39)|0;a=a+(b+-47+((f&7|0)==0?0:0-f&7))|0;f=h+16|0;a=a>>>0<f>>>0?h:a;b=a+8|0;d=w+8|0;d=(d&7|0)==0?0:0-d&7;M=p+-40-d|0;c[22919]=w+d;c[22916]=M;c[w+(d+4)>>2]=M|1;c[w+(p+-36)>>2]=40;c[22920]=c[23035];d=a+4|0;c[d>>2]=27;c[b>>2]=c[23025];c[b+4>>2]=c[23026];c[b+8>>2]=c[23027];c[b+12>>2]=c[23028];c[23025]=w;c[23026]=p;c[23028]=0;c[23027]=b;b=a+28|0;c[b>>2]=7;if((a+32|0)>>>0<e>>>0)do{M=b;b=b+4|0;c[b>>2]=7}while((M+8|0)>>>0<e>>>0);if((a|0)!=(h|0)){g=a-h|0;c[d>>2]=c[d>>2]&-2;c[h+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){a=b<<1;e=91692+(a<<2)|0;d=c[22913]|0;b=1<<b;if(d&b){b=91692+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[22917]|0)>>>0)Ea();else{G=b;H=a}}else{c[22913]=d|b;G=91692+(a+2<<2)|0;H=e}c[G>>2]=h;c[H+12>>2]=h;c[h+8>>2]=H;c[h+12>>2]=e;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<<L;K=(M+520192|0)>>>16&4;M=M<<K;e=(M+245760|0)>>>16&2;e=14-(K|L|e)+(M<<e>>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=91956+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[f>>2]=0;b=c[22914]|0;a=1<<e;if(!(b&a)){c[22914]=b|a;c[d>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}b=c[d>>2]|0;k:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(g|0)){I=d;break k}else{e=e<<1;b=d}}if(a>>>0<(c[22917]|0)>>>0)Ea();else{c[a>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;break g}}else I=b;while(0);b=I+8|0;a=c[b>>2]|0;M=c[22917]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=I;c[h+24>>2]=0;break}else Ea()}}else{M=c[22917]|0;if((M|0)==0|w>>>0<M>>>0)c[22917]=w;c[23025]=w;c[23026]=p;c[23028]=0;c[22922]=c[23031];c[22921]=-1;b=0;do{M=b<<1;L=91692+(M<<2)|0;c[91692+(M+3<<2)>>2]=L;c[91692+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;c[22919]=w+M;c[22916]=L;c[w+(M+4)>>2]=L|1;c[w+(p+-36)>>2]=40;c[22920]=c[23035]}while(0);b=c[22916]|0;if(b>>>0>q>>>0){L=b-q|0;c[22916]=L;M=c[22919]|0;c[22919]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}}c[(qy()|0)>>2]=12;M=0;return M|0}function pB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;i=c[22917]|0;if(b>>>0<i>>>0)Ea();d=c[a+-4>>2]|0;e=d&3;if((e|0)==1)Ea();o=d&-8;q=a+(o+-8)|0;do if(!(d&1)){b=c[b>>2]|0;if(!e)return;j=-8-b|0;l=a+j|0;m=b+o|0;if(l>>>0<i>>>0)Ea();if((l|0)==(c[22918]|0)){b=a+(o+-4)|0;d=c[b>>2]|0;if((d&3|0)!=3){u=l;g=m;break}c[22915]=m;c[b>>2]=d&-2;c[a+(j+4)>>2]=m|1;c[q>>2]=m;return}f=b>>>3;if(b>>>0<256){e=c[a+(j+8)>>2]|0;d=c[a+(j+12)>>2]|0;b=91692+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<i>>>0)Ea();if((c[e+12>>2]|0)!=(l|0))Ea()}if((d|0)==(e|0)){c[22913]=c[22913]&~(1<<f);u=l;g=m;break}if((d|0)!=(b|0)){if(d>>>0<i>>>0)Ea();b=d+8|0;if((c[b>>2]|0)==(l|0))h=b;else Ea()}else h=d+8|0;c[e+12>>2]=d;c[h>>2]=e;u=l;g=m;break}h=c[a+(j+24)>>2]|0;e=c[a+(j+12)>>2]|0;do if((e|0)==(l|0)){d=a+(j+20)|0;b=c[d>>2]|0;if(!b){d=a+(j+16)|0;b=c[d>>2]|0;if(!b){k=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<i>>>0)Ea();else{c[d>>2]=0;k=b;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0<i>>>0)Ea();b=f+12|0;if((c[b>>2]|0)!=(l|0))Ea();d=e+8|0;if((c[d>>2]|0)==(l|0)){c[b>>2]=e;c[d>>2]=f;k=e;break}else Ea()}while(0);if(h){b=c[a+(j+28)>>2]|0;d=91956+(b<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=k;if(!k){c[22914]=c[22914]&~(1<<b);u=l;g=m;break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+16|0;if((c[b>>2]|0)==(l|0))c[b>>2]=k;else c[h+20>>2]=k;if(!k){u=l;g=m;break}}d=c[22917]|0;if(k>>>0<d>>>0)Ea();c[k+24>>2]=h;b=c[a+(j+16)>>2]|0;do if(b)if(b>>>0<d>>>0)Ea();else{c[k+16>>2]=b;c[b+24>>2]=k;break}while(0);b=c[a+(j+20)>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[k+20>>2]=b;c[b+24>>2]=k;u=l;g=m;break}else{u=l;g=m}}else{u=l;g=m}}else{u=b;g=o}while(0);if(u>>>0>=q>>>0)Ea();b=a+(o+-4)|0;d=c[b>>2]|0;if(!(d&1))Ea();if(!(d&2)){if((q|0)==(c[22919]|0)){t=(c[22916]|0)+g|0;c[22916]=t;c[22919]=u;c[u+4>>2]=t|1;if((u|0)!=(c[22918]|0))return;c[22918]=0;c[22915]=0;return}if((q|0)==(c[22918]|0)){t=(c[22915]|0)+g|0;c[22915]=t;c[22918]=u;c[u+4>>2]=t|1;c[u+t>>2]=t;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=c[a+(o+16)>>2]|0;b=c[a+(o|4)>>2]|0;do if((b|0)==(q|0)){d=a+(o+12)|0;b=c[d>>2]|0;if(!b){d=a+(o+8)|0;b=c[d>>2]|0;if(!b){p=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[d>>2]=0;p=b;break}}else{d=c[a+o>>2]|0;if(d>>>0<(c[22917]|0)>>>0)Ea();e=d+12|0;if((c[e>>2]|0)!=(q|0))Ea();f=b+8|0;if((c[f>>2]|0)==(q|0)){c[e>>2]=b;c[f>>2]=d;p=b;break}else Ea()}while(0);if(h){b=c[a+(o+20)>>2]|0;d=91956+(b<<2)|0;if((q|0)==(c[d>>2]|0)){c[d>>2]=p;if(!p){c[22914]=c[22914]&~(1<<b);break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+16|0;if((c[b>>2]|0)==(q|0))c[b>>2]=p;else c[h+20>>2]=p;if(!p)break}d=c[22917]|0;if(p>>>0<d>>>0)Ea();c[p+24>>2]=h;b=c[a+(o+8)>>2]|0;do if(b)if(b>>>0<d>>>0)Ea();else{c[p+16>>2]=b;c[b+24>>2]=p;break}while(0);b=c[a+(o+12)>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[p+20>>2]=b;c[b+24>>2]=p;break}}}else{e=c[a+o>>2]|0;d=c[a+(o|4)>>2]|0;b=91692+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<(c[22917]|0)>>>0)Ea();if((c[e+12>>2]|0)!=(q|0))Ea()}if((d|0)==(e|0)){c[22913]=c[22913]&~(1<<f);break}if((d|0)!=(b|0)){if(d>>>0<(c[22917]|0)>>>0)Ea();b=d+8|0;if((c[b>>2]|0)==(q|0))n=b;else Ea()}else n=d+8|0;c[e+12>>2]=d;c[n>>2]=e}while(0);c[u+4>>2]=g|1;c[u+g>>2]=g;if((u|0)==(c[22918]|0)){c[22915]=g;return}}else{c[b>>2]=d&-2;c[u+4>>2]=g|1;c[u+g>>2]=g}b=g>>>3;if(g>>>0<256){d=b<<1;f=91692+(d<<2)|0;e=c[22913]|0;b=1<<b;if(e&b){b=91692+(d+2<<2)|0;d=c[b>>2]|0;if(d>>>0<(c[22917]|0)>>>0)Ea();else{r=b;s=d}}else{c[22913]=e|b;r=91692+(d+2<<2)|0;s=f}c[r>>2]=u;c[s+12>>2]=u;c[u+8>>2]=s;c[u+12>>2]=f;return}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{r=(b+1048320|0)>>>16&8;s=b<<r;q=(s+520192|0)>>>16&4;s=s<<q;f=(s+245760|0)>>>16&2;f=14-(q|r|f)+(s<<f>>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;b=91956+(f<<2)|0;c[u+28>>2]=f;c[u+20>>2]=0;c[u+16>>2]=0;d=c[22914]|0;e=1<<f;a:do if(d&e){b=c[b>>2]|0;b:do if((c[b+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=b+16+(f>>>31<<2)|0;e=c[d>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){t=e;break b}else{f=f<<1;b=e}}if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[d>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;d=c[b>>2]|0;s=c[22917]|0;if(d>>>0>=s>>>0&t>>>0>=s>>>0){c[d+12>>2]=u;c[b>>2]=u;c[u+8>>2]=d;c[u+12>>2]=t;c[u+24>>2]=0;break}else Ea()}else{c[22914]=d|e;c[b>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u}while(0);u=(c[22921]|0)+-1|0;c[22921]=u;if(!u)b=92108;else return;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[22921]=-1;return}function qB(a,b){a=a|0;b=b|0;var d=0;if(a){d=_(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=oB(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;CB(b|0,0,d|0)|0;return b|0}function rB(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=oB(b)|0;return a|0}if(b>>>0>4294967231){c[(qy()|0)>>2]=12;a=0;return a|0}d=sB(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d){a=d+8|0;return a|0}d=oB(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;AB(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;pB(a);a=d;return a|0}function sB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=c[o>>2]|0;j=p&-8;l=a+j|0;i=c[22917]|0;d=p&3;if(!((d|0)!=1&a>>>0>=i>>>0&a>>>0<l>>>0))Ea();e=a+(j|4)|0;f=c[e>>2]|0;if(!(f&1))Ea();if(!d){if(b>>>0<256){a=0;return a|0}if(j>>>0>=(b+4|0)>>>0?(j-b|0)>>>0<=c[23033]<<1>>>0:0)return a|0;a=0;return a|0}if(j>>>0>=b>>>0){d=j-b|0;if(d>>>0<=15)return a|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|3;c[e>>2]=c[e>>2]|1;tB(a+b|0,d);return a|0}if((l|0)==(c[22919]|0)){d=(c[22916]|0)+j|0;if(d>>>0<=b>>>0){a=0;return a|0}n=d-b|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|1;c[22919]=a+b;c[22916]=n;return a|0}if((l|0)==(c[22918]|0)){e=(c[22915]|0)+j|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|1;c[a+e>>2]=d;e=a+(e+4)|0;c[e>>2]=c[e>>2]&-2;e=a+b|0}else{c[o>>2]=p&1|e|2;e=a+(e+4)|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[22915]=d;c[22918]=e;return a|0}if(f&2){a=0;return a|0}m=(f&-8)+j|0;if(m>>>0<b>>>0){a=0;return a|0}n=m-b|0;g=f>>>3;do if(f>>>0>=256){h=c[a+(j+24)>>2]|0;g=c[a+(j+12)>>2]|0;do if((g|0)==(l|0)){e=a+(j+20)|0;d=c[e>>2]|0;if(!d){e=a+(j+16)|0;d=c[e>>2]|0;if(!d){k=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)Ea();else{c[e>>2]=0;k=d;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0<i>>>0)Ea();d=f+12|0;if((c[d>>2]|0)!=(l|0))Ea();e=g+8|0;if((c[e>>2]|0)==(l|0)){c[d>>2]=g;c[e>>2]=f;k=g;break}else Ea()}while(0);if(h){d=c[a+(j+28)>>2]|0;e=91956+(d<<2)|0;if((l|0)==(c[e>>2]|0)){c[e>>2]=k;if(!k){c[22914]=c[22914]&~(1<<d);break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();d=h+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=k;else c[h+20>>2]=k;if(!k)break}e=c[22917]|0;if(k>>>0<e>>>0)Ea();c[k+24>>2]=h;d=c[a+(j+16)>>2]|0;do if(d)if(d>>>0<e>>>0)Ea();else{c[k+16>>2]=d;c[d+24>>2]=k;break}while(0);d=c[a+(j+20)>>2]|0;if(d)if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[k+20>>2]=d;c[d+24>>2]=k;break}}}else{f=c[a+(j+8)>>2]|0;e=c[a+(j+12)>>2]|0;d=91692+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<i>>>0)Ea();if((c[f+12>>2]|0)!=(l|0))Ea()}if((e|0)==(f|0)){c[22913]=c[22913]&~(1<<g);break}if((e|0)!=(d|0)){if(e>>>0<i>>>0)Ea();d=e+8|0;if((c[d>>2]|0)==(l|0))h=d;else Ea()}else h=e+8|0;c[f+12>>2]=e;c[h>>2]=f}while(0);if(n>>>0<16){c[o>>2]=m|p&1|2;b=a+(m|4)|0;c[b>>2]=c[b>>2]|1;return a|0}else{c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|3;p=a+(m|4)|0;c[p>>2]=c[p>>2]|1;tB(a+b|0,n);return a|0}return 0}function tB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){k=c[a>>2]|0;if(!(d&3))return;n=a+(0-k)|0;m=k+b|0;j=c[22917]|0;if(n>>>0<j>>>0)Ea();if((n|0)==(c[22918]|0)){e=a+(b+4)|0;d=c[e>>2]|0;if((d&3|0)!=3){t=n;h=m;break}c[22915]=m;c[e>>2]=d&-2;c[a+(4-k)>>2]=m|1;c[q>>2]=m;return}g=k>>>3;if(k>>>0<256){f=c[a+(8-k)>>2]|0;e=c[a+(12-k)>>2]|0;d=91692+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<j>>>0)Ea();if((c[f+12>>2]|0)!=(n|0))Ea()}if((e|0)==(f|0)){c[22913]=c[22913]&~(1<<g);t=n;h=m;break}if((e|0)!=(d|0)){if(e>>>0<j>>>0)Ea();d=e+8|0;if((c[d>>2]|0)==(n|0))i=d;else Ea()}else i=e+8|0;c[f+12>>2]=e;c[i>>2]=f;t=n;h=m;break}i=c[a+(24-k)>>2]|0;f=c[a+(12-k)>>2]|0;do if((f|0)==(n|0)){f=16-k|0;e=a+(f+4)|0;d=c[e>>2]|0;if(!d){e=a+f|0;d=c[e>>2]|0;if(!d){l=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<j>>>0)Ea();else{c[e>>2]=0;l=d;break}}else{g=c[a+(8-k)>>2]|0;if(g>>>0<j>>>0)Ea();d=g+12|0;if((c[d>>2]|0)!=(n|0))Ea();e=f+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=f;c[e>>2]=g;l=f;break}else Ea()}while(0);if(i){d=c[a+(28-k)>>2]|0;e=91956+(d<<2)|0;if((n|0)==(c[e>>2]|0)){c[e>>2]=l;if(!l){c[22914]=c[22914]&~(1<<d);t=n;h=m;break}}else{if(i>>>0<(c[22917]|0)>>>0)Ea();d=i+16|0;if((c[d>>2]|0)==(n|0))c[d>>2]=l;else c[i+20>>2]=l;if(!l){t=n;h=m;break}}f=c[22917]|0;if(l>>>0<f>>>0)Ea();c[l+24>>2]=i;d=16-k|0;e=c[a+d>>2]|0;do if(e)if(e>>>0<f>>>0)Ea();else{c[l+16>>2]=e;c[e+24>>2]=l;break}while(0);d=c[a+(d+4)>>2]|0;if(d)if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[l+20>>2]=d;c[d+24>>2]=l;t=n;h=m;break}else{t=n;h=m}}else{t=n;h=m}}else{t=a;h=b}while(0);j=c[22917]|0;if(q>>>0<j>>>0)Ea();d=a+(b+4)|0;e=c[d>>2]|0;if(!(e&2)){if((q|0)==(c[22919]|0)){s=(c[22916]|0)+h|0;c[22916]=s;c[22919]=t;c[t+4>>2]=s|1;if((t|0)!=(c[22918]|0))return;c[22918]=0;c[22915]=0;return}if((q|0)==(c[22918]|0)){s=(c[22915]|0)+h|0;c[22915]=s;c[22918]=t;c[t+4>>2]=s|1;c[t+s>>2]=s;return}h=(e&-8)+h|0;g=e>>>3;do if(e>>>0>=256){i=c[a+(b+24)>>2]|0;f=c[a+(b+12)>>2]|0;do if((f|0)==(q|0)){e=a+(b+20)|0;d=c[e>>2]|0;if(!d){e=a+(b+16)|0;d=c[e>>2]|0;if(!d){p=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<j>>>0)Ea();else{c[e>>2]=0;p=d;break}}else{g=c[a+(b+8)>>2]|0;if(g>>>0<j>>>0)Ea();d=g+12|0;if((c[d>>2]|0)!=(q|0))Ea();e=f+8|0;if((c[e>>2]|0)==(q|0)){c[d>>2]=f;c[e>>2]=g;p=f;break}else Ea()}while(0);if(i){d=c[a+(b+28)>>2]|0;e=91956+(d<<2)|0;if((q|0)==(c[e>>2]|0)){c[e>>2]=p;if(!p){c[22914]=c[22914]&~(1<<d);break}}else{if(i>>>0<(c[22917]|0)>>>0)Ea();d=i+16|0;if((c[d>>2]|0)==(q|0))c[d>>2]=p;else c[i+20>>2]=p;if(!p)break}e=c[22917]|0;if(p>>>0<e>>>0)Ea();c[p+24>>2]=i;d=c[a+(b+16)>>2]|0;do if(d)if(d>>>0<e>>>0)Ea();else{c[p+16>>2]=d;c[d+24>>2]=p;break}while(0);d=c[a+(b+20)>>2]|0;if(d)if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[p+20>>2]=d;c[d+24>>2]=p;break}}}else{f=c[a+(b+8)>>2]|0;e=c[a+(b+12)>>2]|0;d=91692+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<j>>>0)Ea();if((c[f+12>>2]|0)!=(q|0))Ea()}if((e|0)==(f|0)){c[22913]=c[22913]&~(1<<g);break}if((e|0)!=(d|0)){if(e>>>0<j>>>0)Ea();d=e+8|0;if((c[d>>2]|0)==(q|0))o=d;else Ea()}else o=e+8|0;c[f+12>>2]=e;c[o>>2]=f}while(0);c[t+4>>2]=h|1;c[t+h>>2]=h;if((t|0)==(c[22918]|0)){c[22915]=h;return}}else{c[d>>2]=e&-2;c[t+4>>2]=h|1;c[t+h>>2]=h}d=h>>>3;if(h>>>0<256){e=d<<1;g=91692+(e<<2)|0;f=c[22913]|0;d=1<<d;if(f&d){d=91692+(e+2<<2)|0;e=c[d>>2]|0;if(e>>>0<(c[22917]|0)>>>0)Ea();else{r=d;s=e}}else{c[22913]=f|d;r=91692+(e+2<<2)|0;s=g}c[r>>2]=t;c[s+12>>2]=t;c[t+8>>2]=s;c[t+12>>2]=g;return}d=h>>>8;if(d)if(h>>>0>16777215)g=31;else{r=(d+1048320|0)>>>16&8;s=d<<r;q=(s+520192|0)>>>16&4;s=s<<q;g=(s+245760|0)>>>16&2;g=14-(q|r|g)+(s<<g>>>15)|0;g=h>>>(g+7|0)&1|g<<1}else g=0;d=91956+(g<<2)|0;c[t+28>>2]=g;c[t+20>>2]=0;c[t+16>>2]=0;e=c[22914]|0;f=1<<g;if(!(e&f)){c[22914]=e|f;c[d>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}d=c[d>>2]|0;a:do if((c[d+4>>2]&-8|0)!=(h|0)){g=h<<((g|0)==31?0:25-(g>>>1)|0);while(1){e=d+16+(g>>>31<<2)|0;f=c[e>>2]|0;if(!f)break;if((c[f+4>>2]&-8|0)==(h|0)){d=f;break a}else{g=g<<1;d=f}}if(e>>>0<(c[22917]|0)>>>0)Ea();c[e>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}while(0);e=d+8|0;f=c[e>>2]|0;s=c[22917]|0;if(!(f>>>0>=s>>>0&d>>>0>=s>>>0))Ea();c[f+12>>2]=t;c[e>>2]=t;c[t+8>>2]=f;c[t+12>>2]=d;c[t+24>>2]=0;return}function uB(){}function vB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function wB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function xB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;p=p+1|0;c[a>>2]=p;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=p;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;C=e;return d|0}f=f+1|0}e=e*2|0;d=rB(d|0,8*(e+1|0)|0)|0;d=xB(a|0,b|0,d|0,e|0)|0;C=e;return d|0}function yB(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=0;return b>>>c-32|0}function zB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((f|0)<(d|0)){e=c[b+(f<<3)>>2]|0;if(!e)break;if((e|0)==(a|0))return c[b+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function AB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Ua(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function BB(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else AB(b,c,d)|0;return b|0}function CB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function DB(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}C=a<<c-32;return 0}function EB(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function FB(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function GB(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function HB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=vB(j^a,i^b,j,i)|0;g=C;a=f^j;b=e^i;return vB((MB(h,g,vB(f^c,e^d,f,e)|0,C,0)|0)^a,C^b,a,b)|0}function IB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=vB(h^a,g^b,h,g)|0;b=C;MB(a,b,vB(l^d,k^e,l,k)|0,C,j)|0;e=vB(c[j>>2]^h,c[j+4>>2]^g,h,g)|0;d=C;i=f;return (C=d,e)|0}-function JB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=GB(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function KB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return MB(a,b,c,d,0)|0}function LB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;MB(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function MB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=FB(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((FB(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (C=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=wB(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;vB(k,d,e,n)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=vB(e,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function NB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ub[a&31](b|0,c|0,d|0)|0}function OB(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;vb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function PB(a){a=a|0;return +wb[a&1]()}function QB(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;xb[a&7](b|0,c|0,d|0,e|0,f|0)}function RB(a){a=a|0;return yb[a&1]()|0}function SB(a,b){a=a|0;b=b|0;zb[a&127](b|0)}function TB(a,b){a=a|0;b=+b;return +Ab[a&1](+b)}function UB(a,b,c){a=a|0;b=b|0;c=c|0;Bb[a&31](b|0,c|0)}function VB(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Cb[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function WB(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=g|0;Db[a&15](b|0,c|0,d|0,+e,+f,g|0)}function XB(a,b){a=a|0;b=b|0;return Eb[a&31](b|0)|0}function YB(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return +Fb[a&7](+b,+c,+d)}function ZB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Gb[a&127](b|0,c|0,d|0)}function _B(a){a=a|0;Hb[a&7]()}function $B(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Ib[a&1](b|0,c|0,+d)}function aC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Jb[a&31](b|0,c|0,d|0,e|0)|0}function bC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Kb[a&31](b|0,c|0,d|0,e|0)}function cC(a,b,c){a=a|0;b=b|0;c=c|0;return Lb[a&63](b|0,c|0)|0}function dC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return Mb[a&1](b|0,c|0,d|0,+e)|0}function eC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Nb[a&3](b|0,c|0,d|0,e|0,f|0)|0}function fC(a,b,c){a=a|0;b=b|0;c=c|0;ba(0);return 0}function gC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(1)}function hC(){ba(2);return 0.0}function iC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(3)}function jC(){ba(4);return 0}function kC(a){a=a|0;ba(5)}function lC(a){a=+a;ba(6);return 0.0}function mC(a){a=+a;return +_a(+a)}function nC(a,b){a=a|0;b=b|0;ba(7)}function oC(a,b){a=a|0;b=b|0;mb(a|0,b|0)}function pC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(8);return 0}function qC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;ba(9)}function rC(a){a=a|0;ba(10);return 0}function sC(a,b,c){a=+a;b=+b;c=+c;ba(11);return 0.0}function tC(a,b,c){a=a|0;b=b|0;c=c|0;ba(12)}function uC(){ba(13)}function vC(a,b,c){a=a|0;b=b|0;c=+c;ba(14)}function wC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(15);return 0}function xC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(16)}function yC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ia(a|0,b|0,c|0,d|0)}function zC(a,b){a=a|0;b=b|0;ba(17);return 0}function AC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;ba(18);return 0}function BC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(19);return 0}--// EMSCRIPTEN_END_FUNCS-var ub=[fC,Ui,_i,Hk,Kk,tw,eB,oz,nz,mz,pz,dj,aj,Bz,iq,mq,xs,Iq,ru,Mx,YA,fC,fC,fC,fC,fC,fC,fC,fC,fC,fC,fC];var vb=[gC,kc,Oc,fd,zd,Xd,ke,ze,We,ff,gC,gC,gC,gC,gC,gC];var wb=[hC,Bs];var xb=[iC,Uc,vd,Cd,Sd,ue,Hi,as];var yb=[jC,Dq];var zb=[kC,cc,dc,ec,fc,gc,sc,tc,Dc,Ec,Fc,Gc,Hc,Ic,Jc,Sc,Tc,Wc,Xc,Yc,Zc,_c,$c,ad,jd,kd,ld,nd,od,pd,qd,rd,sd,td,ud,Fd,Gd,Hd,Jd,Kd,Ld,Md,Nd,Od,Pd,Qd,Rd,Td,de,ee,fe,ge,re,se,te,ve,Ge,He,Ie,Ke,Le,Me,Ne,Oe,Pe,Qe,Re,Se,_e,$e,af,bf,vf,uf,vk,qr,xr,sr,rr,Ir,Uq,Vq,nv,sv,pf,Ii,tj,Ds,lq,pB,ww,lu,Nt,Ot,Qt,Eq,Hw,Jx,Qx,UA,VA,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC];var Ab=[lC,mC];var Bb=[nC,Lc,Qc,cd,hd,Bd,Zd,me,Be,Ye,hf,Qk,Br,Ur,Mr,Hr,vr,wr,Qr,Rr,qv,uv,ej,Sn,Es,hq,nq,pq,oC,Ht,Pt,nC];var Cb=[pC,Kx];var Db=[qC,Jo,Ko,Lo,Mo,No,Oo,Po,Qo,qC,qC,qC,qC,qC,qC,qC];var Eb=[rC,Zf,_f,Jk,Nk,Rt,St,fv,gv,hv,iv,jv,kv,lv,mv,lz,Xb,an,aq,$p,Cs,Fs,ok,jq,oq,fk,Rk,oB,Rx,rC,rC,rC];var Fb=[sC,xp,yp,zp,Ap,sC,sC,sC];var Gb=[tC,hc,ic,lc,Cc,Kc,Mc,Pc,bd,dd,gd,wd,xd,Ad,Ud,Vd,Yd,he,ie,le,we,xe,Ae,Te,Ue,Xe,cf,df,gf,Sh,Th,Uh,Jj,wk,el,vl,hm,Hn,sp,Mq,_q,Ft,bu,$t,ov,pv,rv,tv,vv,uw,Ax,zx,Fj,Tj,Yk,El,Fl,kq,ys,Gq,Jt,Kt,Fw,Bx,Cx,Dx,Nx,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC];var Hb=[uC,As,fq,rq,xw,uC,uC,uC];var Ib=[vC,Lt];var Jb=[wC,Xj,gm,Wj,kk,sk,uk,Fk,Ek,Pk,_k,$k,Lq,cu,au,Gv,vw,Kw,Jw,Ri,qq,Mz,zs,wC,wC,wC,wC,wC,wC,wC,wC,wC];var Kb=[xC,jc,Nc,ed,md,yd,Id,Wd,je,ye,Je,Ve,ef,sf,rf,qf,of,nf,kf,_b,mf,lf,tk,yr,Jr,yC,_z,xC,xC,xC,xC,xC];var Lb=[zC,qk,Ik,Ok,Sr,Tr,Kr,Gr,zr,_m,Jf,Wf,Eg,Yg,ah,gi,hi,Gi,Df,Im,Hm,Gm,Wn,ko,oo,po,Io,cq,gq,Cz,ws,Bt,zj,Gw,Lj,Nj,Sk,It,rB,Vi,Mt,lA,Ov,Ox,Px,nB,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC];var Mb=[AC,pu];var Nb=[BC,rk,Ar,Lr];return{_saveSetjmp:xB,_vizRenderFromString:Zb,_i64Subtract:vB,_fflush:wz,_realloc:rB,_dtextract:Si,_memmove:BB,_dtopen:Vi,_vizLastErrorMessage:Yb,_memset:CB,_malloc:oB,_i64Add:wB,_memcpy:AB,_bitshift64Shl:DB,_bitshift64Lshr:yB,_free:pB,_dtdisc:Qi,___errno_location:qy,_testSetjmp:zB,runPostSets:uB,stackAlloc:Ob,stackSave:Pb,stackRestore:Qb,establishStackSpace:Rb,setThrew:Sb,setTempRet0:Vb,getTempRet0:Wb,dynCall_iiii:NB,dynCall_viiiiii:OB,dynCall_d:PB,dynCall_viiiii:QB,dynCall_i:RB,dynCall_vi:SB,dynCall_dd:TB,dynCall_vii:UB,dynCall_iiiiiii:VB,dynCall_viiiddi:WB,dynCall_ii:XB,dynCall_dddd:YB,dynCall_viii:ZB,dynCall_v:_B,dynCall_viid:$B,dynCall_iiiii:aC,dynCall_viiii:bC,dynCall_iii:cC,dynCall_iiiid:dC,dynCall_iiiiii:eC}})---// EMSCRIPTEN_END_ASM-(e.Sa,e.Ta,buffer);e._vizRenderFromString=X._vizRenderFromString;var kc=e._saveSetjmp=X._saveSetjmp;e._fflush=X._fflush;var wc=e._memset=X._memset,jc=e._realloc=X._realloc;e._dtextract=X._dtextract;var vc=e._memmove=X._memmove;e._dtopen=X._dtopen;var hb=e._i64Subtract=X._i64Subtract,oc=e._testSetjmp=X._testSetjmp;e._vizLastErrorMessage=X._vizLastErrorMessage;var xa=e._malloc=X._malloc,jb=e._i64Add=X._i64Add,tc=e._memcpy=X._memcpy;-e.runPostSets=X.runPostSets;var mc=e._bitshift64Lshr=X._bitshift64Lshr,Ea=e._free=X._free;e._dtdisc=X._dtdisc;e.___errno_location=X.___errno_location;var xc=e._bitshift64Shl=X._bitshift64Shl;e.dynCall_iiii=X.dynCall_iiii;e.dynCall_viiiiii=X.dynCall_viiiiii;e.dynCall_d=X.dynCall_d;e.dynCall_viiiii=X.dynCall_viiiii;e.dynCall_i=X.dynCall_i;e.dynCall_vi=X.dynCall_vi;e.dynCall_dd=X.dynCall_dd;e.dynCall_vii=X.dynCall_vii;e.dynCall_iiiiiii=X.dynCall_iiiiiii;e.dynCall_viiiddi=X.dynCall_viiiddi;-e.dynCall_ii=X.dynCall_ii;e.dynCall_dddd=X.dynCall_dddd;e.dynCall_viii=X.dynCall_viii;e.dynCall_v=X.dynCall_v;e.dynCall_viid=X.dynCall_viid;e.dynCall_iiiii=X.dynCall_iiiii;e.dynCall_viiii=X.dynCall_viiii;e.dynCall_iii=X.dynCall_iii;e.dynCall_iiiid=X.dynCall_iiiid;e.dynCall_iiiiii=X.dynCall_iiiiii;n.ia=X.stackAlloc;n.ya=X.stackSave;n.ja=X.stackRestore;n.vd=X.establishStackSpace;n.lb=X.setTempRet0;n.Za=X.getTempRet0;-function ja(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}ja.prototype=Error();ja.prototype.constructor=ja;var od=null;-e.callMain=e.sd=function(a){function b(){for(var a=0;3>a;a++)d.push(0)}assert(!0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(0==Ra.length,"cannot call main when preRun functions remain to be called");a=a||[];Va||(Va=!0,Qa(Sa));var c=a.length+1,d=[B(Xa(e.thisProgram),"i8",0)];b();for(var f=0;f<c-1;f+=1)d.push(B(Xa(a[f]),"i8",0)),b();d.push(0);d=B(d,"i32",0);try{var g=e._main(c,d,0);pd(g,!0)}catch(k){if(!(k instanceof ja))if("SimulateInfiniteLoop"==k)e.noExitRuntime=-!0;else throw k&&"object"===typeof k&&k.stack&&e.X("exception thrown: "+[k,k.stack]),k;}finally{}};-function qd(a){function b(){if(!e.calledRun&&(e.calledRun=!0,!w)){Va||(Va=!0,Qa(Sa));Qa(Ta);if(e.onRuntimeInitialized)e.onRuntimeInitialized();e._main&&rd&&e.callMain(a);if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();Ua.unshift(b)}Qa(Ua)}}a=a||e.arguments;null===od&&(od=Date.now());if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)Wa();Qa(Ra);e.calledRun||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},-1);b()},1)):b())}e.run=e.run=qd;function pd(a,b){if(!b||!e.noExitRuntime){if(!e.noExitRuntime&&(w=!0,m=void 0,Qa(H),e.onExit))e.onExit(a);da?(process.stdout.once("drain",function(){process.exit(a)}),console.log(" "),setTimeout(function(){process.exit(a)},500)):fa&&"function"===typeof quit&&quit(a);throw new ja(a);}}e.exit=e.exit=pd;var sd=[];-function v(a){void 0!==a?(e.print(a),e.X(a),a=JSON.stringify(a)):a="";w=!0;var b="abort("+a+") at "+Fa()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";sd&&sd.forEach(function(c){b=c(b,a)});throw b;}e.abort=e.abort=v;if(e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();var rd=!0;e.noInitialRun&&(rd=!1);qd();--- return Module;-};- function Viz(src) {- var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];- var format = options.format === undefined ? "svg" : options.format;- var engine = options.engine === undefined ? "dot" : options.engine;- var scale = options.scale;- var totalMemory = options.totalMemory;- - if (format == "png-image-element") {- return Viz.svgXmlToPngImageElement(render(src, "svg", engine, totalMemory), scale);- } else {- return render(src, format, engine, totalMemory);- }- }- - function render(src, format, engine, totalMemory) {- var graphviz = Module({ TOTAL_MEMORY: totalMemory });- - var resultPointer = graphviz["ccall"]("vizRenderFromString", "number", ["string", "string", "string"], [src, format, engine]);- var resultString = graphviz["Pointer_stringify"](resultPointer);-- var errorMessagePointer = graphviz["ccall"]("vizLastErrorMessage", "number", [], []);- var errorMessageString = graphviz["Pointer_stringify"](errorMessagePointer);- - if (errorMessageString != "") {- throw new Error(errorMessageString);- }- - return resultString;- }- - Viz.svgXmlToPngImageElement = function(svgXml, scale, callback) {- if (scale === undefined) {- if ("devicePixelRatio" in window && window.devicePixelRatio > 1) {- scale = window.devicePixelRatio;- } else {- scale = 1;- }- }- - var pngImage = new Image();- - if (typeof fabric === "object" && fabric.loadSVGFromString) {- try {- fabric.loadSVGFromString(svgXml, function(objects, options) {- // If there's something wrong with the SVG, Fabric may return an empty array of objects. Graphviz appears to give us at least one <g> element back even given an empty graph, so we will assume an error in this case.- if (objects.length == 0) {- if (callback !== undefined) {- callback(new Error("Error loading SVG with Fabric"));- return;- } else {- throw new Error("Error loading SVG with Fabric");- }- }- - var element = document.createElement("canvas");- element.width = options.width;- element.height = options.height;- - var canvas = new fabric.Canvas(element, { enableRetinaScaling: false });- var obj = fabric.util.groupSVGElements(objects, options);- canvas.add(obj).renderAll();- - pngImage.src = canvas.toDataURL({ multiplier: scale });- pngImage.width = options.width;- pngImage.height = options.height;- - if (callback !== undefined) {- callback(null, pngImage);- }- });- } catch (e) {- if (callback !== undefined) {- callback(e);- } else {- throw e;- }- }- } else {- var svgImage = new Image();-- svgImage.onload = function() {- var canvas = document.createElement("canvas");- canvas.width = svgImage.width * scale;- canvas.height = svgImage.height * scale;-- var context = canvas.getContext("2d");- context.drawImage(svgImage, 0, 0, canvas.width, canvas.height);-- pngImage.src = canvas.toDataURL("image/png");- pngImage.width = svgImage.width;- pngImage.height = svgImage.height;- - if (callback !== undefined) {- callback(null, pngImage);- }- }- - svgImage.onerror = function(e) {- if (callback !== undefined) {- callback(e);- }- }- - svgImage.src = "data:image/svg+xml;base64," + btoa(svgXml);- }- - if (callback === undefined) {- return pngImage;- }- }- - Viz.svgXmlToPngBase64 = function(svgXml, scale, callback) {- Viz.svgXmlToPngImageElement(svgXml, scale, function(err, image) {- if (err) {- callback(err);- } else {- callback(null, image.src.slice("data:image/png;base64,".length));- }- });- }- - if (typeof module === "object" && module.exports) {- module.exports = Viz;- } else {- global.Viz = Viz;- }- +Viz.js 1.8.2 (Graphviz 2.40.1, Emscripten 1.37.33)+Copyright (c) 2014-2018 Michael Daines+Licensed under MIT license++This distribution contains other software in object code form:++Graphviz+Licensed under Eclipse Public License - v 1.0+http://www.graphviz.org++zlib+Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler+http://www.zlib.net/zlib_license.html+*/+(function(global) {+var Module = function(Module) {+ Module = Module || {};+var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}Module["setWindowTitle"]=(function(title){document.title=title})}Module["print"]=typeof console!=="undefined"?console.log:typeof print!=="undefined"?print:null;Module["printErr"]=typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn||Module["print"];Module.print=Module["print"];Module.printErr=Module["printErr"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;Module.printErr(text)}}var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}var JSfuncs={"stackSave":(function(){stackSave()}),"stackRestore":(function(){stackRestore()}),"arrayToC":(function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){stackRestore(stack)}return ret}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:staticAlloc,stackAlloc,staticAlloc,dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var PAGE_SIZE=16384;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}Module["buffer"]=buffer}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_max=Math.max;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var ASM_CONSTS=[(function($0,$1){var path=Pointer_stringify($0);var data=Pointer_stringify($1);FS.createPath("/",PATH.dirname(path));FS.writeFile(PATH.join("/",path),data)})];function _emscripten_asm_const_iii(code,a0,a1){return ASM_CONSTS[code](a0,a1)}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+176352;__ATINIT__.push();memoryInitializer="data:application/octet-stream;base64,AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAIMEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSQAAAAAAAAFJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkAAIMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSQAAAAAAAAFJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkACEAAAAAAAAAAAAAAAABBAWC8AAAgAAAABAAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICWQAAAAAAAgJZABJDDAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWEAAAAAAAABYQAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYQAAAAAAAAFhAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkAAAAAAAABSQAAgAwIAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAABCQAAAAAAAAEJAAAAAAAAgg0AAAAAAAMCIQAAAAAAAAFJAAAAAAAAAUkAAAAAAAAAAAAAAAAAAAEJAAAAAAAAAQkAAAAAAACCDQAAAAAAAwIhAAAAAAAAAUkAAAAAAAABSQACwwQAAAAAAAAAAAAAAEED4NQAAkwAAAAEAAAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkAAEAACAAAAAAAAAAAAABBAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYQAAAAAAAAFhAALDBAAAAAAAAAAAAAAAAANQ5AAAQAAAAAQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWEAAAAAAAABYQEAgPgMAAAAAAAAAAAAAEEDcOgAAegAAAAEAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJAAAAAAAAAUkAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSQAAAAAAAAFJAAQAAAAAAAAABAAAAAAAAAAAAAAAAAPA/AQAAAAAAAAACAAAAAAAAAAAAAAAAAPA/AgAAAAAAAAADAAAAAAAAAAAAAAAAAOA/AwAAAAAAAAAEAAAAAAAAAAAAAAAAAPA/BAAAAAAAAAAFAAAAAAAAADMzMzMzM/M/BQAAAAAAAAAGAAAAAAAAAJqZmZmZmek/BgAAAAAAAAAHAAAAAAAAAAAAAAAAAPA/BwAAAAAAAAAIAAAAAAAAAAAAAAAAAOA/CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAzMzMzMzPTvwAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAACARkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAACamZmZmZnZvwAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMzMzM+M/AAAAAAAAAAAAAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAB7FK5H4XrkvwAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiRSAAABAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAACAZkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAACAZkCamZmZmZnZvwAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAAAAAAAAAAAACAZkB7FK5H4XrkvwAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAACARkAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAABAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAAAAAAQAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAAABAAAAAAAAAAAAAAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/WKg1zTtO1T8ldQKaCBvaPwAAAAAAAOA/AAAAAAAA4D8s1JrmHafqP2recYqO5Og/WKg1zTtO1T9YqDXNO07VP1ioNc07TtU/AAAAAAAA4D9d3EYDeAviPwAAAAAAANA/WKg1zTtO1T8AAAAAAADQP9O84xQdydE/AAAAAAAA4D8AAAAAAADgPwAAAAAAAOA/AAAAAAAA4D8AAAAAAADgPwAAAAAAAOA/AAAAAAAA4D8AAAAAAADgPwAAAAAAAOA/AAAAAAAA4D/TvOMUHcnRP9O84xQdydE/XdxGA3gL4j9d3EYDeAviP13cRgN4C+I/DXGsi9to3D9kXdxGA3jtP9JvXwfOGec/EHo2qz5X5T8QejarPlflP9JvXwfOGec/eAskKH6M4z+1FfvL7snhP9JvXwfOGec/0m9fB84Z5z9YqDXNO07VP4iFWtO849g/0m9fB84Z5z94CyQofozjP8RCrWnecew/0m9fB84Z5z/Sb18HzhnnP7UV+8vuyeE/0m9fB84Z5z8QejarPlflP7UV+8vuyeE/eAskKH6M4z/Sb18HzhnnP9JvXwfOGec/hjjWxW007j/Sb18HzhnnP9JvXwfOGec/eAskKH6M4z9YqDXNO07VP9O84xQdydE/WKg1zTtO1T+mCkYldQLePwAAAAAAAOA/WKg1zTtO1T8NcayL22jcPwAAAAAAAOA/DXGsi9to3D8AAAAAAADgPw1xrIvbaNw/WKg1zTtO1T8AAAAAAADgPwAAAAAAAOA/07zjFB3J0T/TvOMUHcnRPwAAAAAAAOA/07zjFB3J0T9q3nGKjuToPwAAAAAAAOA/AAAAAAAA4D8AAAAAAADgPwAAAAAAAOA/WKg1zTtO1T+IhVrTvOPYP9O84xQdydE/AAAAAAAA4D8AAAAAAADgP9JvXwfOGec/AAAAAAAA4D8AAAAAAADgPw1xrIvbaNw/9GxWfa623j8RNjy9UpbJP/RsVn2utt4/OwFNhA1P4T8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQP1ioNc07TtU/AAAAAAAA4D8AAAAAAADgPz7o2az6XMU/AAAAAAAA4D8AAAAAAADgPwAAAAAAAOA/AAAAAAAA4D+Cc0aU9gbHPw1xrIvbaNw/AAAAAAAA4D9YqDXNO07VP1ioNc07TtU/tRX7y+7J4T+1FfvL7snhPwAAAAAAANA/AAAAAAAA4D8AAAAAAADgPwAAAAAAAOA/AAAAAAAA0D8AAAAAAADQPwfwFkhQ/Nw/orQ3+MJk1j9YqDXNO07VPw1xrIvbaNw/DXGsi9to3D8AAAAAAADgPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADQPw1xrIvbaNw/AAAAAAAA0D9YqDXNO07VP1ioNc07TtU/WKg1zTtO1T9YqDXNO07VP1ioNc07TtU/WKg1zTtO1T9YqDXNO07VP1ioNc07TtU/AAAAAAAA0D9YqDXNO07VP1ioNc07TtU/AAAAAAAA0D9YqDXNO07VP1ioNc07TtU/WKg1zTtO1T8AAAAAAADwPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/xEKtad5x7D8AAAAAAADQP3/ZPXlYqNE/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D94CyQofozjP9JvXwfOGec/xEKtad5x7D8T8kHPZtXTPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D8QejarPlflPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQP9O84xQdydE/AAAAAAAA0D8AAAAAAADQP9O84xQdydE/AAAAAAAA4D/Sb18HzhnnPwAAAAAAAOA/AAAAAAAA0D8AAAAAAADQPwAAAAAAANA/AAAAAAAA0D9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP1HaG3xhMuM/UdobfGEy4z9R2ht8YTLjP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/9GxWfa621j+1FfvL7snhP7UV+8vuyeE/xEKtad5x7D8QejarPlflP/Xb14FzRsw/WKg1zTtO1T9YqDXNO07VP4iFWtO849g/AU2EDU+v4j/TvOMUHcnRP1ioNc07TtU/07zjFB3J0T/TvOMUHcnRP7UV+8vuyeE/tRX7y+7J4T+1FfvL7snhP7UV+8vuyeE/tRX7y+7J4T+1FfvL7snhP7UV+8vuyeE/tRX7y+7J4T+1FfvL7snhP7UV+8vuyeE/07zjFB3J0T/TvOMUHcnRPwFNhA1Pr+I/AU2EDU+v4j8BTYQNT6/iP7UV+8vuyeE/zF1LyAc98D8QejarPlflPxB6Nqs+V+U/0m9fB84Z5z/Sb18HzhnnPxB6Nqs+V+U/eAskKH6M4z9q3nGKjuToP9JvXwfOGec/07zjFB3J0T8AAAAAAADgPxB6Nqs+V+U/tRX7y+7J4T8s1JrmHafqP9JvXwfOGec/at5xio7k6D8QejarPlflP2recYqO5Og/0m9fB84Z5z8QejarPlflP3gLJCh+jOM/0m9fB84Z5z8QejarPlflP4Y41sVtNO4/EHo2qz5X5T8QejarPlflP3gLJCh+jOM/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/pgpGJXUC3j+1FfvL7snhP0i/fR04Z8w/tRX7y+7J4T+1FfvL7snhPwAAAAAAAOA/tRX7y+7J4T+1FfvL7snhP9O84xQdydE/tRX7y+7J4T+1FfvL7snhP0i/fR04Z8w/SL99HThnzD8AAAAAAADgP0i/fR04Z8w/LNSa5h2n6j+1FfvL7snhP7UV+8vuyeE/tRX7y+7J4T+1FfvL7snhP1ioNc07TtU/AAAAAAAA4D/TvOMUHcnRP7UV+8vuyeE/AAAAAAAA4D/Sb18HzhnnPwAAAAAAAOA/AAAAAAAA4D8AAAAAAADgPwKaCBueXtU/4L4OnDOi0D8Cmggbnl7VPwFNhA1Pr+I/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T9YqDXNO07VP7UV+8vuyeE/tRX7y+7J4T8+6Nms+lzFP7UV+8vuyeE/tRX7y+7J4T+1FfvL7snhP7UV+8vuyeE/HThnRGlvyD9YqDXNO07VP7UV+8vuyeE/WKg1zTtO1T9YqDXNO07VPwAAAAAAAOA/AAAAAAAA4D/TvOMUHcnRP7UV+8vuyeE/tRX7y+7J4T+1FfvL7snhP9O84xQdydE/07zjFB3J0T/nHafoSC7hP6K0N/jCZNY/SL99HThnzD9YqDXNO07VP1ioNc07TtU/tRX7y+7J4T8AAAAAAADwPwAAAAAAAPA/07zjFB3J0T94CyQofozjP9O84xQdydE/WKg1zTtO1T9YqDXNO07VP1ioNc07TtU/WKg1zTtO1T9YqDXNO07VP1ioNc07TtU/WKg1zTtO1T9YqDXNO07VP9O84xQdydE/WKg1zTtO1T9YqDXNO07VP9O84xQdydE/WKg1zTtO1T9YqDXNO07VP1ioNc07TtU/AAAAAAAA8D/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRPwAAAAAAAPA/07zjFB3J0T/qlbIMcazXP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/tRX7y+7J4T9q3nGKjuToPwAAAAAAAPA/mN2Th4Va1z/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/xEKtad5x7D/TvOMUHcnRP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/07zjFB3J0T9Iv30dOGfMP3gLJCh+jOM/hjjWxW007j94CyQofozjP9O84xQdydE/07zjFB3J0T/TvOMUHcnRP9O84xQdydE/UaBP5EnSDkC0yHa+nzo1wDoi36XUJdW/84I+R5ouij+f5Xlwd9b5v379EBssnOY/luzYCMTrzD/NzqJ3KuDQP7Djv0AQIO2/raHUXkTb2D87oXzmUZZ2P9NucPl6hHs/gczOoncq5L/Rrdf0oKDIP2rfNxmwP4Q/vsqQGV7/hD8clgZ+VMPEv6VJKej24iNAqdkDrcCQwT8IxJBBk2mJP/pEniRdM9C/AfCZNi3CXj8NnH0vz5SXP4m1+BQA44k/5alYRjTLsb+PAMnPoWemv1y1xvvMtIg/TaSPVDqzkD/mxwShYdagv8dpZxwT94K/Kn9r5S1wXL/kV2JUCJp1P9Hxh1VyBLc/ldQJaCI8M8BkIxCv63cQwKchqvBneMc/2v8Aa9WuwT9OKETAIVT3v6pIhbGFIPU/nWhXIeUn9j9NLsbAOo7NP1lrKLUX0dy/Az+qYb8nzD+mR1M9mX/aP7aBO1CnPK4/UUzeADPfub/1dpX/2gumP9SlNbwP9pQ/H60gvCzckD8oLPGAsskjQCNa4UwCirc/SKNlUZYpfz+7tIb3wZ6TPxeoe1NHfaC/ISuu4G2Uiz8zc9yE1h61v6B4hIn1/I8/aTUk7rH0kb+4zTN6Xr9qP5I+raI/NM2/frDnxk8+mL8HI5tQLcekPz4YwntYuZG/LXx9rUuNxj8AAABA+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1tOgAAKAqAAADAAAAyCwAAAMAAACgLwAAAwAAAGgwAAADAAAAuDEAAAMAAAAwNQAAAwAAAGw4AAADAAAAfC4AAAMAAAA0OQAAAwAAADw6AAADAAAAyD4AAAMAAADsPAAAAAAAAIwsAAAAAAAAeC8AAAAAAADILwAAAAAAAJAxAAAAAAAA4DEAAAAAAABEOAAAAAAAABguAAAAAAAADDkAAAAAAAAUOgAAAAAAAKA+AAAAAAAAxDwAAAQAAADwPgAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAQAAAAEAAAADAAAAAAAAAAAAAADQjQIA4I0CAPCNAgAAjgIAEI4CACCOAgAwjgIAQI4CAOCNAgDgjQIAII4CACCOAgAfAAAAPwAAAH8AAAAAAAAA5UoBAAEAAABgKwAAaAAAAAQAAADW7AAAAQAAANgrAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbukAAAEAAAAAAAAA4AAAAAAAAAB26QAAAQAAAAAAAADgAAAAAQAAAH3pAAABAAAAAAAAAKgAAAACAAAAh+kAAAEAAAAAAAAA4AAAAAMAAACR6QAAAQAAAAAAAADgAAAABAAAAJ/pAAABAAAAAAAAAOAAAAAFAAAAqekAAAEAAAAAAAAA4AAAAAYAAAC26QAAAQAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAA/////wAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2+wAAAEAAAB8LQAAGAEAAAEAAADg7AAAAQAAAHwtAAAYAQAAAgAAAObsAAABAAAAfC0AABgBAAADAAAA7+wAAAEAAAB8LQAAGAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnsAAABAAAAAAAAAHABAAABAAAAA+0AAAEAAAAAAAAAcAEAAAIAAAAO7QAAAQAAAAAAAAA4AQAAAwAAABztAAABAAAAAAAAADgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAkAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAwAAAANAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAYAAAACAAAAAgAAAAcAAAACAAAAAAAAAPrcAQD/xQEAkMcBANDNAQDH1AEABtkBAIbcAQCX3AEAAAAAAGPtAAABAAAA4C4AAKgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn7QAAAQAAAAAAAADIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAb+0AAAEAAADwLwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAKfuAAABAAAAAAAAACACAAACAAAAse4AAAEAAAAAAAAAWAIAAAAAAAC67gAAAQAAAAAAAABYAgAAAwAAAMPuAAABAAAAAAAAAFgCAAAAAAAAze4AAAEAAAAAAAAAIAIAAAMAAADZ7gAAAQAAAAAAAAAgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAASAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAVAAAAFgAAABcAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAMAAAAJAAAAAwAAAAMAAAAKAAAABAAAAAAAAAD63AEA/8UBANDNAQCQxwEABtkBAMfUAQCX3AEAhtwBAAAAAAAAAAAAlvAAAP/////0MAAAkAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJnwAAD/////AAAAALACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkUwEAAQAAAAgyAADoAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGQAAABoAAAAAAAAABAAAAAAAAAAbAAAAHAAAAB0AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAgAAAAIQAAACIAAAACAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAMAAAABQAAAAQAAAANAAAABQAAAAMAAACW9AAApPQAALr0AABhqAIAyPQAANf0AADc9AAA+vQAAGGoAgAM9QAAPPUAAGGoAgBa9QAAgvUAAJD1AAC/9QAA8/UAAAT2AAAp9gAATPYAAFL2AABu9gAAi/YAAKb2AADH9gAA4fYAAAP3AAAi9wAASPcAAGD3AACA9wAAnfcAAMH3AADN9wAAYagCANj3AAD+9wAAIvgAAEj4AABhqAIAfvgAAJb4AACj+AAA0vgAAM33AABhqAIA3/gAAOj4AAAJ+QAARPkAAI/5AADj+QAABfoAABr6AAAx+gAAR/oAAF/6AABhqAIAdfoAAJD6AAC0+gAA2PoAAP36AABhqAIAHvsAADj7AABK+wAAV/sAAGT7AAB4+wAAh/sAAI/7AACk+wAAsvsAAPD7AAD7+wAAzfcAAGGoAgAB/AAADfwAABz8AABM9gAAYagCAC/8AABY/AAAdvwAAIb8AACX/AAAnvwAAK38AAC9/AAAAf0AAAj9AABM9gAAYagCABL9AAA+/QAASf0AAFL9AABb/QAAbP0AAH39AACR/QAAzfcAAGGoAgCd/QAArf0AALv9AADJ/QAA1v0AAOP9AAD5/QAAAv4AABH+AAAe/gAAL/4AAM33AABhqAIAOv4AAFn+AABhqAIAa/4AAHr+AACq/gAAtP4AAMH+AADO/gAA2/4AAOj+AADr/gAAYagCAO/+AABhqAIAEv8AAEP/AABy/wAAif8AAKT/AAC//wAAzfcAAGGoAgDb/wAAYagCAAMAAQAPAAEAIgABADUAAQBKAAEAXwABAGMAAQBM9gAAYagCAG8AAQBhqAIAfwABAI0AAQCZAAEApgABAMYAAQDcAAEAYagCAPAAAQA5AQEAfwEBAK8BAQDiAQEA6QEBABACAQA3AgEAYagCADwCAQAAAAAAAAAAAPorAQABAAAAAAAAAAgDAAABAAAAsAIBAAEAAAAAAAAACAMAAAIAAADzKwEAAQAAAAAAAABAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAACQAAAAlAAAABgAAACYAAAAnAAAAKAAAACkAAAAqAAAAAAAAAAAAAAAAAAAAAAAAACsAAAAsAAAALQAAAC4AAAAEAAAALwAAAAAAAAAAAAAADgAAAAAAAAAPAAAABwAAAAUAAAAQAAAABgAAAAAAAAAXxQEAIcUBAHoVAQBmxQEAocUBAMPFAQDJxQEA+twBAPDFAQD/xQEAHMYBACfGAQBJxgEAf8YBALXGAQDwxgEAJscBAEjHAQBXxwEAiMcBAJDHAQBACQEASQkBAK3HAQBSCQEA98cBAFsJAQAByAEAZAkBAAvIAQBayAEAlcgBAHAJAQDQyAEA28gBACDJAQAuyQEAeMkBAIbJAQCUyQEAn8kBANDJAQAQygEAGMoBACDKAQBbygEAkcoBAJ3KAQB/FQEAqcoBALPKAQC+ygEA28oBABHLAQDQzQEA8s0BAP7NAQC90AEA7tABABrRAQBQ0QEAXdEBAH/RAQCh0QEAqtEBAPTRAQD+0QEAQ9IBAHnSAQCE0gEACdMBAB7TAQB4CQEAKNMBADLTAQBo0wEAqNMBALbTAQAK1AEAGdQBACjUAQB31AEAhxUBALfUAQDB1AEAx9QBAPPUAQAa1QEAK9UBADbVAQB71QEAwNUBAM/VAQDf1QEA8dUBAAHWAQAR1gEAHtYBACjWAQBe1gEAZ9YBAKfWAQC61gEAjBUBAMLWAQD41gEAH9cBAFXXAQB81wEAitcBAMDXAQAK2AEAVNgBAF/YAQCV2AEAmtgBALfYAQDU2AEA39gBAAbZAQAe2QEAVNkBAIrZAQCW2QEAvdkBAMjZAQD52QEAKtoBAHkgAQBR2gEAfdoBALPaAQDp2gEA89oBABDbAQBQ2wEAhtsBAJIVAQCe2wEAytsBAPHbAQAn3AEAZNwBAIbcAQCM3AEAl9wBAL7cAQAAAAAAJ1MBAAEAAACANQAAeAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEsAQABAAAAAAAAAJgDAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAAAAAAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAABIAAAAIAAAABgAAABMAAAAHAAAAAAAAAAAAAACuCgEAAQAAAJQ4AADQAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsQoBAAEAAAAAAAAA8AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAA1AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAADcAAAAAAAAAAAAAABQAAAAAAAAAFQAAAAkAAAAHAAAAFgAAAAgAAAAAAAAAehUBAPrcAQD/xQEAfxUBABHLAQDQzQEAhxUBAPPUAQCn1gEAjBUBAN/YAQAG2QEAeSABAJIVAQCG3AEAl9wBAAAAAACXFQEAAQAAAFw5AAAoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmxUBAAEAAAAAAAAASAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAA5AAAAOgAAAAoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQQAAAEIAAABDAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAGAAAAAsAAAAIAAAAGQAAAAkAAAAAAAAAZsUBAA8fAQD63AEA/8UBABzGAQAaHwEAIB8BACsfAQAyHwEAJ8YBAH/GAQA6HwEAQB8BAEsfAQAmxwEASMcBAJDHAQBSHwEA98cBAAvIAQCVyAEAXB8BACDJAQAuyQEAeMkBAGcfAQCGyQEAbx8BAHgfAQCGHwEAkB8BAFvKAQCZHwEAncoBAL7KAQDbygEAnx8BACLLAQBNywEAdssBAJnLAQDCywEA5csBAA7MAQAxzAEAWswBAH3MAQCmzAEAycwBAPLMAQAVzQEAPs0BAGHNAQCKzQEArc0BANDNAQCmHwEA8s0BALIfAQAa0QEAf9EBAEPSAQC/HwEAKNQBAMwfAQC31AEAx9QBANYfAQDz1AEAGtUBACvVAQDlHwEA9x8BADbVAQDA1QEAz9UBAN/VAQDx1QEAAdYBAAcgAQASIAEAHSABABHWAQCn1gEArNYBACIgAQArIAEANCABAEQgAQBLIAEA+NYBAB/XAQBV1wEAitcBAJrYAQC32AEAUyABAAbZAQBaIAEAltkBAGMgAQDI2QEAayABACraAQB5IAEAUdoBAH3aAQCAIAEAENsBAFDbAQCKIAEAhtsBAJ7bAQDx2wEAlCABAKIgAQAn3AEALtwBAGTcAQCG3AEAl9wBAL7cAQAAAAAAtCABAAEAAABkOgAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALggAQABAAAAAAAAAKAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEUAAAAAAAAAAAAAAEYAAABHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAAABsAAAAMAAAACQAAABwAAAAKAAAAAAAAAEFCAAAMZwEAQUkAAOZmAQBBUgAAuWYBAEFYAAAhZwEAQiAAAF1pAQBCSQAAbmkBAENCAACmZwEAQ08AAJRnAQBDWAAAs2cBAEggAADXZwEASEIAAOFnAQBISQAAbWgBAEhYAADwZwEASGIAACFoAQBIaQAAVGgBAEhyAAAGaAEASHgAADdoAQBJIAAAf2kBAEtCAAA4ZwEAS0kAAIBnAQBLUgAAbGcBAEtYAABZZwEATkIAAH9oAQBOSQAAxmgBAE5SAADeaAEATlgAAKpoAQBQQQAAP2kBAFBCAAD7aAEAUEkAAC9pAQBQWAAAG2kBAFIgAAArawEAUyAAAE5pAQBaRAAAvGkBAAAAAAAAAAAAAQAAAAAAAABnKwEA/////xQ9AADYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaysBAP////8AAAAA+AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAHMrAQABAAAA2EIAAAAAAAAQAAAAeysBAAEAAADYQgAAAAAAABEAAACDKwEAAQAAANhCAAAAAAAAEQAAAIwrAQABAAAA2EIAAAAAAAARAAAAlCsBAAEAAADYQgAAAAAAABMAAACcKwEAAQAAANxCAAAAAAAAFAAAAKQrAQABAAAA3EIAAAAAAAAVAAAArCsBAAEAAADcQgAAAAAAABUAAAC1KwEAAQAAANxCAAAAAAAAFQAAAL0rAQABAAAA3EIAAAAAAAAWAAAAxSsBAAEAAADgQgAAAAAAABcAAADOKwEAAQAAAOBCAAAAAAAAGAAAANcrAQABAAAA4EIAAAAAAAAYAAAA4SsBAAEAAADgQgAAAAAAABgAAADqKwEAAQAAAOBCAAAAAAAAGQAAAPMrAQABAAAA5EIAAAAAAAAZAAAA+isBAAEAAADkQgAAAAAAABoAAAAALAEAAQAAAOhCAAAAAAAACgAAAAksAQABAAAA7EIAAAAAAAALAAAAESwBAAEAAADsQgAAAAAAAAwAAAAZLAEAAQAAAOxCAAAAAAAADAAAACIsAQABAAAA7EIAAAAAAAAMAAAAKiwBAAEAAADsQgAAAAAAAA4AAAAyLAEAAQAAAOxCAAAAAAAADgAAADksAQABAAAA7EIAAAAAAAANAAAAQSwBAAEAAADsQgAAAAAAAAUAAABJLAEAAQAAAOxCAAAAAAAABgAAAFEsAQABAAAA7EIAAAAAAAAHAAAAWSwBAAEAAADsQgAAAAAAAAcAAABiLAEAAQAAAOxCAAAAAAAABwAAAGosAQABAAAA7EIAAAAAAAAJAAAAciwBAAEAAADsQgAAAAAAAAkAAAB5LAEAAQAAAOxCAAAAAAAACAAAAIEsAQABAAAA7EIAAAAAAAAAAAAAiSwBAAEAAADwQgAAAAAAAAEAAACSLAEAAQAAAPBCAAAAAAAAAgAAAJssAQABAAAA8EIAAAAAAAACAAAApSwBAAEAAADwQgAAAAAAAAIAAACuLAEAAQAAAPBCAAAAAAAABAAAALcsAQABAAAA8EIAAAAAAAAEAAAAvywBAAEAAADwQgAAAAAAAAMAAADILAEAAQAAAPBCAAAAAAAAEgAAANEsAQABAAAA2EIAAAAAAAAbAAAA2SwBAAEAAAD0QgAAAAAAABwAAADhLAEAAQAAAPRCAAAAAAAAHQAAAOksAQABAAAA9EIAAAAAAAAdAAAA8iwBAAEAAAD0QgAAAAAAAB0AAAD6LAEAAQAAAPRCAAAAAAAAHgAAAAItAQABAAAA+EIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAAG0wAQAEQwAAAQAAACBDAAAAAAAAAAAAAEgAAABJAAAAAQAAAAAAAADlSgEAAAAAABRDAAAcQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAgAAAAQAAAAYAQAAMAEAALAAAACXOAEAnDgBAKA4AQCnOAEAqzgBAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAdAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAABAAAAQAAAANhDAADoQwAAAgAAAAQAAAD0QwAAAgAAAAgAAAACAAAABAAAAPxDAAAABAAACAAAAP////8AAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANQAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAwAAAAAAAAACAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAwAAAAAAAAACAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAABAAAAAAAAAACAAAAAAAAAAkAAAALAAAACAAAAAoAAACARQAABEUAAGhFAAABAAAAAQAAAAUAAAAWAAAABgAAAEoAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAIAAAAAAAAAAwAAAAIAAAADAAAABAAAAAAAAAAAAAAABAAAAAMAAAAJAAAACwAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAoAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAsAAAAAAAAAAgAAAAAAAAAIAAAACAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA/////wAAAAAAAAAAJAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAgAAAAMAAAABAAAAAQAAAAIAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAQAAAAQAAAAFAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAABgAAAAEAAAABAAAABwAAAAgAAAAJAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAEAAAABAAAACwAAAAEAAAAMAAAAAQAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAATAAAAEwAAABMAAAATAAAAFwAAABgAAAAZAAAAEwAAABoAAAAbAAAAHAAAAB0AAAATAAAAEwAAABMAAAATAAAAEwAAAAEAAAAeAAAAAQAAAAEAAAATAAAAAQAAAB8AAAAgAAAAIQAAACIAAAAjAAAAEwAAACQAAAAlAAAAJgAAABMAAAATAAAAEwAAABMAAAAnAAAAKAAAACkAAAATAAAAKgAAACsAAAAsAAAALQAAABMAAAATAAAAEwAAABMAAAATAAAAAQAAAAEAAAABAAAAAQAAAAEAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAAC4AAAATAAAAEwAAABMAAAAvAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAAwAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAAAAAAAABAAAAAQAAAAIAAAADAAAAAQAAAAQAAAABAAAABQAAAAEAAAAGAAAABwAAAAcAAAABAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAMAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAACAAAAAEXgBAO13AQBjQQEAHngBABZ4AQAkeAEAAAAAAGlFAQByRQEAeUUBAIdFAQAFdwEAOngBAI5FAQCVRQEAAQAAAAgAAAD/////AAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAADNHAQAIAAAAAwAAADxHAQBARwEACwAAAAYAAAAkUwEATEcBAAIAAAABAAAAT0cBAFNHAQAEAAAAAgAAAFhHAQBcRwEABAAAAAQAAABhRwEAZkcBAAUAAAAFAAAAbEcBAHBHAQAEAAAABwAAAHVHAQB5RwEABQAAAAkAAAB/RwEAg0cBAAQAAAAKAAAAiEcBAI1HAQAEAAAADAAAAJJHAQAiTAEAAAAAAAEAAAAqTAEAAQAAAAAAAAAAdwEAAQAAAAEAAAC11gEAAAAAAAAAAAAAAAAAAAAAAAAAAAAOSwEAMQAAAAAAAAAAAAAAIXIBABAAAADw4gEAgAAAAAdLAQBAAAAAamUBABAAAAAJSwEAQAAAAAAAAAAAAAAA1UoBAAEAAADcSgEAAgAAAOFKAQADAAAAUWIBAAQAAACMYgEABQAAAOVKAQAGAAAAtdYBAAgAAADpSgEAIQAAAO1KAQAiAAAA8UoBACIAAAD1SgEAAQAAAPpKAQAHAAAAAEsBACcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAP////8AAAAAJgAAAAAAAAAAAAAAAAAAAAAAAABMUAEAU1ABAAAAAAAhUwEAJFMBACdTAQAAAAAAAAAAAAEAAAACAAAA/////+RSAQDqUgEAtdYBAAAAAABkAAAAZQAAAGYAAABkAAAACAAAAAgAAAAAAAAAAAAAACcAAAAMAAAAAAAAAAAAAAAAAAAACAAAAP////8AAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAUWIBAIxRAABABgAAAAAAAFViAQCMUQAAcAYAAAAAAAAjawEAjFEAAKAGAAAAAAAAXWIBAIxRAACgBgAAAAAAAGJiAQCMUQAA0AYAAAAAAABpYgEApFEAANAGAAAAAAAAb2IBAIxRAAAABwAAAAAAAHNiAQCMUQAAMAcAAAAAAAC11gEAjFEAAGAHAAAAAAAAfGIBAIxRAABgBwAAAAAAAIZiAQCMUQAAEAYAAAAAAACMYgEAjFEAAJAHAAAAAAAAlGIBAIxRAADABwAAAAAAAJ5iAQCMUQAA8AcAAAAAAACsYgEAjFEAACAIAAAAAAAAsmIBAIxRAABQCAAAAAAAALtiAQCMUQAAgAgAAAAAAADDYgEAjFEAALAIAAAAAAAAzGIBAIxRAADgCAAAAAAAANRiAQCMUQAAEAkAAAAAAADZYgEAjFEAAEAJAAAAAAAA3WIBAIxRAABwCQAAAAAAAORiAQCMUQAAoAkAAAAAAADqYgEAjFEAANAJAAAAAAAA9GIBALxRAAAACgAAAAAAAP1iAQCMUQAAQAYAAAAAAAACYwEAjFEAAEAGAAAAAAAADGMBAIxRAAAwCgAAAAAAABNjAQCMUQAAYAoAAAAAAAAgYwEAjFEAAJAKAAAAAAAALmMBAIxRAADACgAAAAAAADxjAQCMUQAA8AoAAAAAAABIYwEAjFEAACALAAAAAAAAVWMBAIxRAABQCwAAAAAAAF5jAQCMUQAAgAsAAAAAAABoYwEAjFEAALALAAAAAAAAcWMBAIxRAADgCwAAAAAAAHljAQCMUQAAEAwAAAAAAACBYwEAjFEAAEAMAAAAAAAAimMBAIxRAABwDAAAAAAAAI5jAQCMUQAAoAwAAAAAAACZYwEAjFEAANAMAAAAAAAAnWMBAIxRAAAADQAAAAAAAKdjAQCMUQAAMA0AAAAAAACwYwEAjFEAAGANAAAAAAAAuGMBAIxRAACQDQAAAAAAAMVjAQCMUQAAwA0AAAAAAADRYwEAjFEAAPANAAAAAAAA3GMBAIxRAAAgDgAAAAAAAOxjAQCMUQAAUA4AAAAAAAD6YwEAjFEAAIAOAAAAAAAACWQBAIxRAACwDgAAAAAAABNkAQCMUQAA4A4AAAAAAAAcZAEAjFEAABAPAAAAAAAAJmQBAIxRAABADwAAAAAAADBkAQCMUQAAcA8AAAAAAAA3ZAEAjFEAAKAPAAAAAAAAPmQBAIxRAADQDwAAAAAAAEhkAQDUUQAAAAAAAAAAAABPZAEA1FEAAAAAAAAAAAAALWIBAOxRAAAAAAAAAAAAAFdkAQAEUgAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASwAAAEwAAAAXAAAABAAAAAIAAAAMAAAATQAAAEwAAAAXAAAABQAAAAAAAAANAAAASwAAAEwAAAAXAAAABAAAAAIAAAAMAAAATgAAAE8AAAAYAAAABgAAAAMAAAAOAAAAUAAAAFEAAAAXAAAABwAAAAAAAAAPAAAASwAAAEwAAAAXAAAACAAAAAIAAAAMAAAAEAAAABEAAAASAAAAEwAAAFllAQBgZQEAAAAAAGhlAQBqZQEAKuMBAGxlAQAMAAAABAAAAAYAAAACAAAAAwAAAAEAAAAJAAAACAAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAAC5ZgEAyWYBANZmAQAAAAAAAAAAAAQAAADbZgEAAAAAAAAAAADmZgEAyWYBANZmAQAAAAAA/WYBAAUAAADbZgEAAAAAAAVnAQAMZwEAyWYBABxnAQAAAAAAAAAAAAYAAADbZgEAaXYBAAAAAAAhZwEAyWYBABxnAQAAAAAA/WYBAAcAAADbZgEAaXYBAAVnAQA4ZwEARWcBABxnAQAAAAAAAAAAAAoAAABTZwEAaXYBAAAAAABZZwEARWcBABxnAQAAAAAABWcBAAsAAABTZwEAaXYBAAVnAQBsZwEARWcBAHpnAQAAAAAAAAAAAAgAAABTZwEAAAAAAAAAAACAZwEARWcBAHpnAQAAAAAABWcBAAkAAABTZwEAAAAAAAVnAQCUZwEAlGcBAAAAAAAAAAAAAAAAAAwAAACcZwEAAAAAAAAAAACmZwEAlGcBAGl2AQAAAAAAAAAAAA4AAACcZwEAaXYBAAAAAACzZwEAlGcBAGl2AQAAAAAA/WYBAA8AAACcZwEAaXYBAAVnAQDHZwEAlGcBAAAAAAAAAAAA/WYBAA0AAACcZwEAAAAAAAVnAQDXZwEA12cBAAAAAAAAAAAAAAAAABAAAADbZgEAAAAAAAAAAADhZwEA12cBAGl2AQAAAAAAAAAAABIAAADbZgEAaXYBAAAAAADwZwEA12cBAGl2AQAAAAAA/WYBABMAAADbZgEAaXYBAAVnAQAGaAEA12cBAAAAAAAXaAEAAAAAABQAAADbZgEAAAAAAAAAAAAhaAEA12cBAGl2AQAXaAEAAAAAABYAAADbZgEAaXYBAAAAAAA3aAEA12cBAGl2AQAXaAEA/WYBABcAAADbZgEAaXYBAAVnAQBUaAEA12cBAAAAAAAXaAEA/WYBABUAAADbZgEAAAAAAAVnAQBtaAEA12cBAAAAAAAAAAAA/WYBABEAAADbZgEAAAAAAAVnAQB/aAEAlWgBAGl2AQAAAAAAAAAAABoAAABTZwEAaXYBAAAAAACqaAEAlWgBAGl2AQAAAAAABWcBABsAAABTZwEAaXYBAAVnAQDGaAEAlWgBAAAAAAAAAAAABWcBABkAAABTZwEAAAAAAAVnAQDeaAEAlWgBAPVoAQAAAAAAAAAAABgAAABTZwEAAAAAAAAAAAD7aAEACWkBAGl2AQAAAAAAAAAAAB4AAABTZwEAaXYBAAAAAAAbaQEACWkBAGl2AQAAAAAABWcBAB8AAABTZwEAaXYBAAVnAQAvaQEACWkBAAAAAAAAAAAABWcBAB0AAABTZwEAAAAAAAVnAQA/aQEACWkBAPVoAQAAAAAAAAAAABwAAABTZwEAAAAAAAAAAABOaQEATmkBAAAAAAAAAAAAAAAAACAAAABVaQEAAAAAAAAAAABdaQEAaGkBAGl2AQAAAAAAAAAAAAIAAABTZwEAaXYBAAAAAABuaQEAaGkBAGl2AQAAAAAABWcBAAMAAABTZwEAaXYBAAVnAQB/aQEAaGkBAAAAAAAAAAAABWcBAAEAAABTZwEAAAAAAAVnAQArawEAaGkBAAAAAAAAAAAAAAAAAAAAAABTZwEAAAAAAAAAAACMaQEApmkBALVpAQAAAAAABWcBACEAAABTZwEAAAAAAAVnAQC8aQEAyWkBAAAAAAAAAAAAAAAAACIAAABVaQEAAAAAAAAAAAAIAAAA/////wAAAAAAAAAAKQAAAAAAAAAAAAAAAAAAAAAAAACHawEAxgAAAI1rAQDBAAAAlGsBAMIAAACaawEAwAAAAKFrAQCRAwAAp2sBAMUAAACtawEAwwAAALRrAQDEAAAAuWsBAJIDAAC+awEAxwAAAMVrAQCnAwAAyWsBACEgAADQawEAlAMAANZrAQDQAAAA2msBAMkAAADhawEAygAAAOdrAQDIAAAA7msBAJUDAAD2awEAlwMAAPprAQDLAAAA/2sBAJMDAAAFbAEAzQAAAAxsAQDOAAAAEmwBAMwAAAAZbAEAmQMAAB5sAQDPAAAAI2wBAJoDAAApbAEAmwMAADBsAQCcAwAAM2wBANEAAAA6bAEAnQMAAD1sAQBSAQAAQ2wBANMAAABKbAEA1AAAAFBsAQDSAAAAV2wBAKkDAABdbAEAnwMAAGVsAQDYAAAAbGwBANUAAABzbAEA1gAAAHhsAQCmAwAAfGwBAKADAAB/bAEAMyAAAIVsAQCoAwAAiWwBAKEDAACNbAEAYAEAAJRsAQCjAwAAmmwBAN4AAACgbAEApAMAAKRsAQCYAwAAqmwBANoAAACxbAEA2wAAALdsAQDZAAAAvmwBAKUDAADGbAEA3AAAAMtsAQCeAwAAzmwBAN0AAADVbAEAeAEAANpsAQCWAwAA32wBAOEAAADmbAEA4gAAAOxsAQC0AAAA8mwBAOYAAAD4bAEA4AAAAP9sAQA1IQAAB20BALEDAAANbQEAJgAAABFtAQAnIgAAFW0BACAiAAAZbQEA5QAAAB9tAQBIIgAAJW0BAOMAAAAsbQEA5AAAADFtAQAeIAAAN20BALIDAAA8bQEApgAAAENtAQAiIAAASG0BACkiAABMbQEA5wAAAFNtAQC4AAAAWW0BAKIAAABebQEAxwMAAGJtAQDGAgAAZ20BAGMmAABtbQEARSIAAHJtAQCpAAAAd20BALUhAAB9bQEAKiIAAIFtAQCkAAAAiG0BANMhAACNbQEAICAAAJRtAQCTIQAAmW0BALAAAACdbQEAtAMAAKNtAQBmJgAAqW0BAPcAAACwbQEA6QAAALdtAQDqAAAAvW0BAOgAAADEbQEABSIAAMptAQADIAAAz20BAAIgAADUbQEAtQMAANxtAQBhIgAA4m0BALcDAADmbQEA8AAAAOptAQDrAAAA720BAKwgAAD0bQEAAyIAAPptAQCSAQAA/20BAAAiAAAGbgEAvQAAAA1uAQC8AAAAFG4BAL4AAAAbbgEARCAAACFuAQCzAwAAJ24BAGUiAAAqbgEAPgAAAC1uAQDUIQAAMm4BAJQhAAA3bgEAZSYAAD5uAQAmIAAARW4BAO0AAABMbgEA7gAAAFJuAQChAAAAWG4BAOwAAABfbgEAESEAAGVuAQAeIgAAa24BACsiAABvbgEAuQMAAHRuAQC/AAAAe24BAAgiAACAbgEA7wAAAIVuAQC6AwAAi24BANAhAACQbgEAuwMAAJduAQApIwAAnG4BAKsAAACibgEAkCEAAKduAQAIIwAArW4BABwgAACzbgEAZCIAALZuAQAKIwAAvW4BABciAADEbgEAyiUAAMhuAQAOIAAAzG4BADkgAADTbgEAGCAAANluAQA8AAAA3G4BAK8AAADhbgEAFCAAAOduAQC1AAAA7W4BALcAAADRdwEAEiIAAPRuAQC8AwAA924BAAciAAD9bgEAoAAAAAJvAQATIAAACG8BAGAiAAALbwEACyIAAA5vAQCsAAAAEm8BAAkiAAAYbwEAhCIAAB1vAQDxAAAAJG8BAL0DAAAnbwEA8wAAAC5vAQD0AAAANG8BAFMBAAA6bwEA8gAAAEFvAQA+IAAAR28BAMkDAABNbwEAvwMAAFVvAQCVIgAAW28BACgiAABebwEAqgAAAGNvAQC6AAAAaG8BAPgAAABvbwEA9QAAAHZvAQCXIgAAfW8BAPYAAACCbwEAtgAAAIdvAQACIgAAjG8BADAgAACTbwEApSIAAJhvAQDGAwAAnG8BAMADAACfbwEA1gMAAKNvAQCxAAAAqm8BAKMAAACwbwEAMiAAALZvAQAPIgAAu28BAB0iAADAbwEAyAMAAMRvAQAiAAAAyW8BANIhAADObwEAGiIAANRvAQAqIwAA2W8BALsAAADfbwEAkiEAAORvAQAJIwAA6m8BAB0gAADwbwEAHCEAAPVvAQCuAAAA+W8BAAsjAAAAcAEAwQMAAARwAQAPIAAACHABADogAAAPcAEAGSAAABVwAQAaIAAAG3ABAGEBAAAicAEAxSIAACdwAQCnAAAALHABAK0AAAAwcAEAwwMAADZwAQDCAwAAPXABADwiAABBcAEAYCYAAEhwAQCCIgAATHABAIYiAABRcAEAESIAAFVwAQCDIgAAWXABALkAAABecAEAsgAAAGNwAQCzAAAAaHABAIciAABtcAEA3wAAAHNwAQDEAwAAd3ABADQiAAB+cAEAuAMAAIRwAQDRAwAAjXABAAkgAACUcAEA/gAAAJpwAQDcAgAAoHABANcAAACmcAEAIiEAAKxwAQDRIQAAsXABAPoAAAC4cAEAkSEAAL1wAQD7AAAAw3ABAPkAAADKcAEAqAAAAM5wAQDSAwAA1HABAMUDAADccAEA/AAAAOFwAQAYIQAA6HABAL4DAADrcAEA/QAAAPJwAQClAAAA9nABAP8AAAD7cAEAtgMAAABxAQANIAAABHEBAAwgAAAFAAAABgAAAAEBAAAIAAAACAAAAAAAAAAAAAAAKgAAAA0AAAAAAAAAAAAAAAAAAAAIAAAAEAAAAAAAAAAAAAAAKwAAAA4AAAAAAAAAAAAAAAAAAACRdwEABwAAAJN3AQAIAAAAmHcBAAgAAACgdwEACQAAAKZ3AQAJAAAAr3cBAAoAAACydwEACgAAALh3AQALAAAAvXcBAAsAAADFdwEADAAAAMp3AQAMAAAA0XcBAA0AAADXdwEADQAAAON3AQAOAAAAUgAAACwAAAAtAAAAFAAAAC4AAABTAAAALwAAABUAAAAwAAAACAAAAAQAAAD/////AAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAO3kBAFVdyX/Jf/8ARnkBALst1L6u1P8AUXkBABR3/f3Ahv8AXHkBAFVdyX/Jf/8AZ3kBALst1L6u1P8AcnkBABR3/f3Ahv8AfXkBACpm////mf8AiHkBAFVdyX/Jf/8Ak3kBALst1L6u1P8AnnkBABR3/f3Ahv8AqXkBACpm////mf8AtHkBAJetsDhssP8Av3kBAFVdyX/Jf/8AynkBALst1L6u1P8A1XkBABR3/f3Ahv8A4HkBACpm////mf8A63kBAJetsDhssP8A9nkBAOj88PACf/8AAXoBAFVdyX/Jf/8ADHoBALst1L6u1P8AF3oBABR3/f3Ahv8AInoBACpm////mf8ALXoBAJetsDhssP8AOHoBAOj88PACf/8AQ3oBABHgv79bF/8ATnoBAFVdyX/Jf/8AWXoBALst1L6u1P8AZHoBABR3/f3Ahv8Ab3oBACpm////mf8AenoBAJetsDhssP8AhXoBAOj88PACf/8AkHoBABHgv79bF/8Am3oBAAAAZmZmZv8ApnoBAJMZ997r9/8AsHoBAI5L4Z7K4f8AunoBAJG8vTGCvf8AxHoBAJ8Q/+/z//8AznoBAI8u573X5/8A2HoBAI9/1muu1v8A4noBAJPQtSFxtf8A7HoBAJ8Q/+/z//8A9noBAI8u573X5/8AAHsBAI9/1muu1v8ACnsBAJG8vTGCvf8AFHsBAJXxnAhRnP8AHnsBAJ8Q/+/z//8AKHsBAJQr78bb7/8AMnsBAI5L4Z7K4f8APHsBAI9/1muu1v8ARnsBAJG8vTGCvf8AUHsBAJXxnAhRnP8AWnsBAJ8Q/+/z//8AZHsBAJQr78bb7/8AbnsBAI5L4Z7K4f8AeHsBAI9/1muu1v8AgnsBAJCpxkKSxv8AjHsBAJPQtSFxtf8AlnsBAJfxlAhFlP8AoHsBAJQI//f7//8AqnsBAJMZ997r9/8AtHsBAJQr78bb7/8AvnsBAI5L4Z7K4f8AyHsBAI9/1muu1v8A0nsBAJCpxkKSxv8A3HsBAJPQtSFxtf8A5nsBAJfxlAhFlP8A8HsBAJQI//f7//8A+nsBAJMZ997r9/8ABHwBAJQr78bb7/8ADnwBAI5L4Z7K4f8AGHwBAI9/1muu1v8AInwBAJCpxkKSxv8ALHwBAJPQtSFxtf8ANnwBAJXxnAhRnP8AQHwBAJjrawgwa/8ASnwBABfvVFQwBf8AVHwBAHf/PAA8MP8AX3wBABfsjIxRCv8AaXwBABjCv7+BLf8Ac3wBAB1w39/Cff8AfXwBAB409vbow/8Ah3wBAHkm6sfq5f8AkXwBAHhfzYDNwf8Am3wBAHyllzWXj/8ApXwBAHz8ZgFmXv8Ar3wBABfvVFQwBf8AuXwBAHz8ZgFmXv8AxHwBAHf/PAA8MP8Az3wBABfsjIxRCv8A2XwBABjCv7+BLf8A43wBAB1w39/Cff8A7XwBAB409vbow/8A93wBAAAA9fX19f8AAX0BAHkm6sfq5f8AC30BAHhfzYDNwf8AFX0BAHyllzWXj/8AH30BAByH2NizZf8AKH0BAAAA9fX19f8AMX0BAHt/tFq0rP8AOn0BABXXpqZhGv8AQ30BAB1w39/Cff8ATH0BAHhfzYDNwf8AVX0BAHn9hQGFcf8AXn0BABXXpqZhGv8AZ30BAB1w39/Cff8AcH0BAAAA9fX19f8AeX0BAHhfzYDNwf8Agn0BAHn9hQGFcf8Ai30BABfsjIxRCv8AlH0BAByH2NizZf8AnX0BAB409vbow/8Apn0BAHkm6sfq5f8Ar30BAHt/tFq0rP8AuH0BAHz8ZgFmXv8AwX0BABfsjIxRCv8Ayn0BAByH2NizZf8A030BAB409vbow/8A3H0BAAAA9fX19f8A5X0BAHkm6sfq5f8A7n0BAHt/tFq0rP8A930BAHz8ZgFmXv8AAH4BABfsjIxRCv8ACX4BABjCv7+BLf8AEn4BAB1w39/Cff8AG34BAB409vbow/8AJH4BAHkm6sfq5f8ALX4BAHhfzYDNwf8ANn4BAHyllzWXj/8AP34BAHz8ZgFmXv8ASH4BABfsjIxRCv8AUX4BABjCv7+BLf8AWn4BAB1w39/Cff8AY34BAB409vbow/8AbH4BAAAA9fX19f8AdX4BAHkm6sfq5f8Afn4BAHhfzYDNwf8Ah34BAHyllzWXj/8AkH4BAHz8ZgFmXv8AmX4BAIcU+eX1+f8Aon4BAHVK2JnYyf8Aq34BAGe5oiyiX/8AtH4BAIgO++34+/8AvX4BAH824rLi4v8Axn4BAHF4wmbCpP8Az34BAGK+iyOLRf8A2H4BAIgO++34+/8A4X4BAH824rLi4v8A6n4BAHF4wmbCpP8A834BAGe5oiyiX/8A/H4BAGb/bQBtLP8ABX8BAIgO++34+/8ADn8BAHci7Mzs5v8AF38BAHVK2JnYyf8AIH8BAHF4wmbCpP8AKX8BAGe5oiyiX/8AMn8BAGb/bQBtLP8AO38BAIgO++34+/8ARH8BAHci7Mzs5v8ATX8BAHVK2JnYyf8AVn8BAHF4wmbCpP8AX38BAGmfrkGudv8AaH8BAGK+iyOLRf8AcX8BAGb/WABYJP8Aen8BAIYG/ff8/f8Ag38BAIcU+eX1+f8AjH8BAHci7Mzs5v8AlX8BAHVK2JnYyf8Ann8BAHF4wmbCpP8Ap38BAGmfrkGudv8AsH8BAGK+iyOLRf8AuX8BAGb/WABYJP8Awn8BAIYG/ff8/f8Ay38BAIcU+eX1+f8A1H8BAHci7Mzs5v8A3X8BAHVK2JnYyf8A5n8BAHF4wmbCpP8A738BAGmfrkGudv8A+H8BAGK+iyOLRf8AAYABAGb/bQBtLP8ACoABAGX/RABEG/8AE4ABAJAU9ODs9P8AHIABAJRG2p682v8AJYABAMR7p4hWp/8ALoABAIgO++34+/8AN4ABAJI147PN4/8AQIABAKJKxoyWxv8ASYABAMqVnYhBnf8AUoABAIgO++34+/8AW4ABAJI147PN4/8AZIABAKJKxoyWxv8AbYABAMR7p4hWp/8AdoABANbhgYEPfP8Af4ABAIgO++34+/8AiIABAJQr5r/T5v8AkYABAJRG2p682v8AmoABAKJKxoyWxv8Ao4ABAMR7p4hWp/8ArIABANbhgYEPfP8AtYABAIgO++34+/8AvoABAJQr5r/T5v8Ax4ABAJRG2p682v8A0IABAKJKxoyWxv8A2YABAL5ksYxrsf8A4oABAMqVnYhBnf8A64ABANX8bm4Ba/8A9IABAIYG/ff8/f8A/YABAJAU9ODs9P8ABoEBAJQr5r/T5v8AD4EBAJRG2p682v8AGIEBAKJKxoyWxv8AIYEBAL5ksYxrsf8AKoEBAMqVnYhBnf8AM4EBANX8bm4Ba/8APIEBAIYG/ff8/f8ARYEBAJAU9ODs9P8AToEBAJQr5r/T5v8AV4EBAJRG2p682v8AYIEBAKJKxoyWxv8AaYEBAL5ksYxrsf8AcoEBAMqVnYhBnf8Ae4EBANbhgYEPfP8AhIEBANX/TU0AS/8AjYEBAHLTnhued/8Al4EBABL82dlfAv8AoYEBAK1fs3Vws/8Aq4EBAHLTnhued/8AtYEBABL82dlfAv8Av4EBAK1fs3Vws/8AyYEBAOnR5+cpiv8A04EBAHLTnhued/8A3YEBABL82dlfAv8A54EBAK1fs3Vws/8A8YEBAOnR5+cpiv8A+4EBAD7QpmamHv8ABYIBAHLTnhued/8AD4IBABL82dlfAv8AGYIBAK1fs3Vws/8AI4IBAOnR5+cpiv8ALYIBAD7QpmamHv8AN4IBAB/85uarAv8AQYIBAHLTnhued/8AS4IBABL82dlfAv8AVYIBAK1fs3Vws/8AX4IBAOnR5+cpiv8AaYIBAD7QpmamHv8Ac4IBAB/85uarAv8AfYIBABvSpqZ2Hf8Ah4IBAHLTnhued/8AkYIBABL82dlfAv8Am4IBAK1fs3Vws/8ApYIBAOnR5+cpiv8Ar4IBAD7QpmamHv8AuYIBAB/85uarAv8Aw4IBABvSpqZ2Hf8AzYIBAAAAZmZmZv8A14IBAEwZ8+Dz2/8A4IIBAF893ajdtf8A6YIBAIyqykOiyv8A8oIBAEER+fD56P8A+4IBAFcu5LrkvP8ABIMBAHtlzHvMxP8ADYMBAI3FviuMvv8AFoMBAEER+fD56P8AH4MBAFcu5LrkvP8AKIMBAHtlzHvMxP8AMYMBAIyqykOiyv8AOoMBAJHzrAhorP8AQ4MBAEER+fD56P8ATIMBAE0p68zrxf8AVYMBAF893ajdtf8AXoMBAHtlzHvMxP8AZ4MBAIyqykOiyv8AcIMBAJHzrAhorP8AeYMBAEER+fD56P8AgoMBAE0p68zrxf8Ai4MBAF893ajdtf8AlIMBAHtlzHvMxP8AnYMBAImg006z0/8ApoMBAI3FviuMvv8Ar4MBAJPynghYnv8AuIMBADwM/Pf88P8AwYMBAEwZ8+Dz2/8AyoMBAE0p68zrxf8A04MBAF893ajdtf8A3IMBAHtlzHvMxP8A5YMBAImg006z0/8A7oMBAI3FviuMvv8A94MBAJPynghYnv8AAIQBADwM/Pf88P8ACYQBAEwZ8+Dz2/8AEoQBAE0p68zrxf8AG4QBAF893ajdtf8AJIQBAHtlzHvMxP8ALYQBAImg006z0/8ANoQBAI3FviuMvv8AP4QBAJHzrAhorP8ASIQBAJbvgQhAgf8AUYQBAEoV9eX14P8AXIQBAFBI2aHZm/8AZ4QBAGKyozGjVP8AcoQBAEkP+O346f8AfYQBAE425Lrks/8AiIQBAFZoxHTEdv8Ak4QBAGK+iyOLRf8AnoQBAEkP+O346f8AqYQBAE425Lrks/8AtIQBAFZoxHTEdv8Av4QBAGKyozGjVP8AyoQBAGb/bQBtLP8A1YQBAEkP+O346f8A4IQBAE0s6cfpwP8A64QBAFBI2aHZm/8A9oQBAFZoxHTEdv8AAYUBAGKyozGjVP8ADIUBAGb/bQBtLP8AF4UBAEkP+O346f8AIoUBAE0s6cfpwP8ALYUBAFBI2aHZm/8AOIUBAFZoxHTEdv8AQ4UBAGCeq0GrXf8AToUBAGK+iyOLRf8AWYUBAGz/WgBaMv8AZIUBAEgH/Pf89f8Ab4UBAEoV9eX14P8AeoUBAE0s6cfpwP8AhYUBAFBI2aHZm/8AkIUBAFZoxHTEdv8Am4UBAGCeq0GrXf8ApoUBAGK+iyOLRf8AsYUBAGz/WgBaMv8AvIUBAEgH/Pf89f8Ax4UBAEoV9eX14P8A0oUBAE0s6cfpwP8A3YUBAFBI2aHZm/8A6IUBAFZoxHTEdv8A84UBAGCeq0GrXf8A/oUBAGK+iyOLRf8ACYYBAGb/bQBtLP8AFIYBAGX/RABEG/8AH4YBAAAA8PDw8P8AKYYBAAAAvb29vf8AM4YBAAAAY2NjY/8APYYBAAAA9/f39/8AR4YBAAAAzMzMzP8AUYYBAAAAlpaWlv8AW4YBAAAAUlJSUv8AZYYBAAAA9/f39/8Ab4YBAAAAzMzMzP8AeYYBAAAAlpaWlv8Ag4YBAAAAY2NjY/8AjYYBAAAAJSUlJf8Al4YBAAAA9/f39/8AoYYBAAAA2dnZ2f8Aq4YBAAAAvb29vf8AtYYBAAAAlpaWlv8Av4YBAAAAY2NjY/8AyYYBAAAAJSUlJf8A04YBAAAA9/f39/8A3YYBAAAA2dnZ2f8A54YBAAAAvb29vf8A8YYBAAAAlpaWlv8A+4YBAAAAc3Nzc/8ABYcBAAAAUlJSUv8AD4cBAAAAJSUlJf8AGYcBAAAA//////8AI4cBAAAA8PDw8P8ALYcBAAAA2dnZ2f8AN4cBAAAAvb29vf8AQYcBAAAAlpaWlv8AS4cBAAAAc3Nzc/8AVYcBAAAAUlJSUv8AX4cBAAAAJSUlJf8AaYcBAAAA//////8Ac4cBAAAA8PDw8P8AfYcBAAAA2dnZ2f8Ah4cBAAAAvb29vf8AkYcBAAAAlpaWlv8Am4cBAAAAc3Nzc/8ApYcBAAAAUlJSUv8Ar4cBAAAAJSUlJf8AuYcBAAAAAAAAAP8Aw4cBABUw/v7mzv8Az4cBABOT/f2ua/8A24cBAA7w5uZVDf8A54cBABMg/v7t3v8A84cBABR4/f2+hf8A/4cBABHC/f2NPP8AC4gBAA392dlHAf8AF4gBABMg/v7t3v8AI4gBABR4/f2+hf8AL4gBABHC/f2NPP8AO4gBAA7w5uZVDf8AR4gBAA36pqY2A/8AU4gBABMg/v7t3v8AX4gBABVb/f3Qov8Aa4gBABOT/f2ua/8Ad4gBABHC/f2NPP8Ag4gBAA7w5uZVDf8Aj4gBAA36pqY2A/8Am4gBABMg/v7t3v8Ap4gBABVb/f3Qov8As4gBABOT/f2ua/8Av4gBABHC/f2NPP8Ay4gBABDq8fFpE/8A14gBAA392dlIAf8A44gBAAz3jIwtBP8A74gBABUU///16/8A+4gBABUw/v7mzv8AB4kBABVb/f3Qov8AE4kBABOT/f2ua/8AH4kBABHC/f2NPP8AK4kBABDq8fFpE/8AN4kBAA392dlIAf8AQ4kBAAz3jIwtBP8AT4kBABUU///16/8AW4kBABUw/v7mzv8AZ4kBABVb/f3Qov8Ac4kBABOT/f2ua/8Af4kBABHC/f2NPP8Ai4kBABDq8fFpE/8Al4kBAA392dlIAf8Ao4kBAA36pqY2A/8Ar4kBAAz2f38nBP8Au4kBABk2/v7oyP8AxIkBABN5/f27hP8AzYkBAAXF4+NKM/8A1okBABol/v7w2f8A34kBABhz/f3Miv8A6IkBAA2k/PyNWf8A8YkBAAPa19cwH/8A+okBABol/v7w2f8AA4oBABhz/f3Miv8ADIoBAA2k/PyNWf8AFYoBAAXF4+NKM/8AHooBAAD/s7MAAP8AJ4oBABol/v7w2f8AMIoBABhf/f3Unv8AOYoBABN5/f27hP8AQooBAA2k/PyNWf8AS4oBAAXF4+NKM/8AVIoBAAD/s7MAAP8AXYoBABol/v7w2f8AZooBABhf/f3Unv8Ab4oBABN5/f27hP8AeIoBAA2k/PyNWf8AgYoBAAey7+9lSP8AiooBAAPa19cwH/8Ak4oBAAD/mZkAAP8AnIoBABgS///37P8ApYoBABk2/v7oyP8ArooBABhf/f3Unv8At4oBABN5/f27hP8AwIoBAA2k/PyNWf8AyYoBAAey7+9lSP8A0ooBAAPa19cwH/8A24oBAAD/mZkAAP8A5IoBABgS///37P8A7YoBABk2/v7oyP8A9ooBABhf/f3Unv8A/4oBABN5/f27hP8ACIsBAA2k/PyNWf8AEYsBAAey7+9lSP8AGosBAAPa19cwH/8AI4sBAAD/s7MAAP8ALIsBAAD/f38AAP8ANYsBAI5E46bO4/8AQYsBAL6Zmmo9mv8ATosBAJDTtB94tP8AWosBAEFh37Lfiv8AZosBAFK4oDOgLP8AcosBAABj+/uamf8AfosBAP7h4+MaHP8AiosBABeP/f2/b/8AlosBABX///9/AP8AoosBAMYq1sqy1v8ArosBAI5E46bO4/8AuosBAL6Zmmo9mv8Ax4sBACpm////mf8A1IsBAJDTtB94tP8A4IsBAEFh37Lfiv8A7IsBAFK4oDOgLP8A+IsBAABj+/uamf8ABIwBAP7h4+MaHP8AEIwBABeP/f2/b/8AHIwBABX///9/AP8AKIwBAMYq1sqy1v8ANIwBAI5E46bO4/8AQIwBAL6Zmmo9mv8ATYwBACpm////mf8AWowBAA/FsbFZKP8AZ4wBAJDTtB94tP8Ac4wBAEFh37Lfiv8Af4wBAFK4oDOgLP8Ai4wBAABj+/uamf8Al4wBAP7h4+MaHP8Ao4wBABeP/f2/b/8Ar4wBABX///9/AP8Au4wBAMYq1sqy1v8Ax4wBAI5E46bO4/8A0owBAJDTtB94tP8A3YwBAEFh37Lfiv8A6IwBAI5E46bO4/8A84wBAJDTtB94tP8A/owBAEFh37Lfiv8ACY0BAFK4oDOgLP8AFI0BAI5E46bO4/8AH40BAJDTtB94tP8AKo0BAEFh37Lfiv8ANY0BAFK4oDOgLP8AQI0BAABj+/uamf8AS40BAI5E46bO4/8AVo0BAJDTtB94tP8AYY0BAEFh37Lfiv8AbI0BAFK4oDOgLP8Ad40BAABj+/uamf8Ago0BAP7h4+MaHP8AjY0BAI5E46bO4/8AmI0BAJDTtB94tP8Ao40BAEFh37Lfiv8Aro0BAFK4oDOgLP8AuY0BAABj+/uamf8AxI0BAP7h4+MaHP8Az40BABeP/f2/b/8A2o0BAI5E46bO4/8A5Y0BAJDTtB94tP8A8I0BAEFh37Lfiv8A+40BAFK4oDOgLP8ABo4BAABj+/uamf8AEY4BAP7h4+MaHP8AHI4BABeP/f2/b/8AJ44BABX///9/AP8AMo4BAI5E46bO4/8APY4BAJDTtB94tP8ASI4BAEFh37Lfiv8AU44BAFK4oDOgLP8AXo4BAABj+/uamf8AaY4BAP7h4+MaHP8AdI4BABeP/f2/b/8Af44BABX///9/AP8Aio4BAMYq1sqy1v8AlY4BAANO+/u0rv8AoY4BAJI147PN4/8ArY4BAE0p68zrxf8AuY4BAANO+/u0rv8AxY4BAJI147PN4/8A0Y4BAE0p68zrxf8A3Y4BAMob5N7L5P8A6Y4BAANO+/u0rv8A9Y4BAJI147PN4/8AAY8BAE0p68zrxf8ADY8BAMob5N7L5P8AGY8BABhY/v7Zpv8AJY8BAANO+/u0rv8AMY8BAJI147PN4/8APY8BAE0p68zrxf8ASY8BAMob5N7L5P8AVY8BABhY/v7Zpv8AYY8BACoy////zP8AbY8BAANO+/u0rv8AeY8BAJI147PN4/8AhY8BAE0p68zrxf8AkY8BAMob5N7L5P8AnY8BABhY/v7Zpv8AqY8BACoy////zP8AtY8BABws5eXYvf8AwY8BAANO+/u0rv8AzY8BAJI147PN4/8A2Y8BAE0p68zrxf8A5Y8BAMob5N7L5P8A8Y8BABhY/v7Zpv8A/Y8BACoy////zP8ACZABABws5eXYvf8AFZABAOkj/f3a7P8AIZABAANO+/u0rv8ALZABAJI147PN4/8AOZABAE0p68zrxf8ARZABAMob5N7L5P8AUZABABhY/v7Zpv8AXZABACoy////zP8AaZABABws5eXYvf8AdZABAOkj/f3a7P8AgZABAAAA8vLy8v8AjZABAGw14rPizf8AmZABABFR/f3NrP8ApZABAJsf6MvV6P8AsZABAGw14rPizf8AvZABABFR/f3NrP8AyZABAJsf6MvV6P8A1ZABAOQr9PTK5P8A4ZABAGw14rPizf8A7ZABABFR/f3NrP8A+ZABAJsf6MvV6P8ABZEBAOQr9PTK5P8AEZEBADgt9eb1yf8AHZEBAGw14rPizf8AKZEBABFR/f3NrP8ANZEBAJsf6MvV6P8AQZEBAOQr9PTK5P8ATZEBADgt9eb1yf8AWZEBACNR///yrv8AZZEBAGw14rPizf8AcZEBABFR/f3NrP8AfZEBAJsf6MvV6P8AiZEBAOQr9PTK5P8AlZEBADgt9eb1yf8AoZEBACNR///yrv8ArZEBABkn8fHizP8AuZEBAGw14rPizf8AxZEBABFR/f3NrP8A0ZEBAJsf6MvV6P8A3ZEBAOQr9PTK5P8A6ZEBADgt9eb1yf8A9ZEBACNR///yrv8AAZIBABkn8fHizP8ADZIBAAAAzMzMzP8AGZIBAOb9jo4BUv8AI5IBAE2/ZCdkGf8ALpIBAObcxcUbff8AOJIBAOh23t53rv8AQpIBAOU+8fG22v8ATJIBAOkd/f3g7/8AVpIBADsm9eb10P8AYJIBAD1n4bjhhv8AapIBAD+mvH+8Qf8AdJIBAETFkk2SIf8AfpIBAOb9jo4BUv8AiJIBAETFkk2SIf8Ak5IBAE2/ZCdkGf8AnpIBAObcxcUbff8AqJIBAOh23t53rv8AspIBAOU+8fG22v8AvJIBAOkd/f3g7/8AxpIBAAAA9/f39/8A0JIBADsm9eb10P8A2pIBAD1n4bjhhv8A5JIBAD+mvH+8Qf8A7pIBAOdM6emjyf8A95IBAAAA9/f39/8AAJMBAD+B16HXav8ACZMBAOTc0NAci/8AEpMBAOU+8fG22v8AG5MBAD1n4bjhhv8AJJMBAEjGrE2sJv8ALZMBAOTc0NAci/8ANpMBAOU+8fG22v8AP5MBAAAA9/f39/8ASJMBAD1n4bjhhv8AUZMBAEjGrE2sJv8AWpMBAObcxcUbff8AY5MBAOdM6emjyf8AbJMBAOkd/f3g7/8AdZMBADsm9eb10P8AfpMBAD+B16HXav8Ah5MBAETFkk2SIf8AkJMBAObcxcUbff8AmZMBAOdM6emjyf8AopMBAOkd/f3g7/8Aq5MBAAAA9/f39/8AtJMBADsm9eb10P8AvZMBAD+B16HXav8AxpMBAETFkk2SIf8Az5MBAObcxcUbff8A2JMBAOh23t53rv8A4ZMBAOU+8fG22v8A6pMBAOkd/f3g7/8A85MBADsm9eb10P8A/JMBAD1n4bjhhv8ABZQBAD+mvH+8Qf8ADpQBAETFkk2SIf8AF5QBAObcxcUbff8AIJQBAOh23t53rv8AKZQBAOU+8fG22v8AMpQBAOkd/f3g7/8AO5QBAAAA9/f39/8ARJQBADsm9eb10P8ATZQBAD1n4bjhhv8AVpQBAD+mvH+8Qf8AX5QBAETFkk2SIf8AaJQBAM7/S0AAS/8AcpQBAGX/RABEG/8AfZQBAM6tg3Yqg/8Ah5QBAMdXq5lwq/8AkZQBAMczz8Klz/8Am5QBANIV6OfU6P8ApZQBAEwe8Nnw0/8Ar5QBAFBE26bboP8AuZQBAFh7rlquYf8Aw5QBAGHFeBt4N/8AzZQBAM7/S0AAS/8A15QBAGHFeBt4N/8A4pQBAGX/RABEG/8A7ZQBAM6tg3Yqg/8A95QBAMdXq5lwq/8AAZUBAMczz8Klz/8AC5UBANIV6OfU6P8AFZUBAAAA9/f39/8AH5UBAEwe8Nnw0/8AKZUBAFBE26bboP8AM5UBAFh7rlquYf8APZUBAMRGw6+Nw/8ARpUBAAAA9/f39/8AT5UBAFJav3+/e/8AWJUBAMmolHsylP8AYZUBAMczz8Klz/8AapUBAFBE26bboP8Ac5UBAGb/iACIN/8AfJUBAMmolHsylP8AhZUBAMczz8Klz/8AjpUBAAAA9/f39/8Al5UBAFBE26bboP8AoJUBAGb/iACIN/8AqZUBAM6tg3Yqg/8AspUBAMRGw6+Nw/8Au5UBANIV6OfU6P8AxJUBAEwe8Nnw0/8AzZUBAFJav3+/e/8A1pUBAGHFeBt4N/8A35UBAM6tg3Yqg/8A6JUBAMRGw6+Nw/8A8ZUBANIV6OfU6P8A+pUBAAAA9/f39/8AA5YBAEwe8Nnw0/8ADJYBAFJav3+/e/8AFZYBAGHFeBt4N/8AHpYBAM6tg3Yqg/8AJ5YBAMdXq5lwq/8AMJYBAMczz8Klz/8AOZYBANIV6OfU6P8AQpYBAEwe8Nnw0/8AS5YBAFBE26bboP8AVJYBAFh7rlquYf8AXZYBAGHFeBt4N/8AZpYBAM6tg3Yqg/8Ab5YBAMdXq5lwq/8AeJYBAMczz8Klz/8AgZYBANIV6OfU6P8AipYBAAAA9/f39/8Ak5YBAEwe8Nnw0/8AnJYBAFBE26bboP8ApZYBAFh7rlquYf8ArpYBAGHFeBt4N/8At5YBAL0L8uzn8v8AwJYBAJc926a92/8AyZYBAI3FviuMvv8A0pYBALkI9vHu9v8A25YBAJso4b3J4f8A5JYBAJFwz3Spz/8A7ZYBAI/3sAVwsP8A9pYBALkI9vHu9v8A/5YBAJso4b3J4f8ACJcBAJFwz3Spz/8AEZcBAI3FviuMvv8AGpcBAI/3jQRajf8AI5cBALkI9vHu9v8ALJcBAKgY5tDR5v8ANZcBAJc926a92/8APpcBAJFwz3Spz/8AR5cBAI3FviuMvv8AUJcBAI/3jQRajf8AWZcBALkI9vHu9v8AYpcBAKgY5tDR5v8Aa5cBAJc926a92/8AdJcBAJFwz3Spz/8AfZcBAI63wDaQwP8AhpcBAI/3sAVwsP8Aj5cBAI/4ewNOe/8AmJcBAOkI///3+/8AoZcBAL0L8uzn8v8AqpcBAKgY5tDR5v8As5cBAJc926a92/8AvJcBAJFwz3Spz/8AxZcBAI63wDaQwP8AzpcBAI/3sAVwsP8A15cBAI/4ewNOe/8A4JcBAOkI///3+/8A6ZcBAL0L8uzn8v8A8pcBAKgY5tDR5v8A+5cBAJc926a92/8ABJgBAJFwz3Spz/8ADZgBAI63wDaQwP8AFpgBAI/3sAVwsP8AH5gBAI/3jQRajf8AKJgBAI/5WAI4WP8AMZgBAMgO8Ozi8P8APJgBAJc926a92/8AR5gBAILQmRyQmf8AUpgBAM8I9/bv9/8AXZgBAJso4b3J4f8AaJgBAI+Az2epz/8Ac5gBAIL7igKBiv8AfpgBAM8I9/bv9/8AiZgBAJso4b3J4f8AlJgBAI+Az2epz/8An5gBAILQmRyQmf8AqpgBAHf8bAFsWf8AtZgBAM8I9/bv9/8AwJgBAKgY5tDR5v8Ay5gBAJc926a92/8A1pgBAI+Az2epz/8A4ZgBAILQmRyQmf8A7JgBAHf8bAFsWf8A95gBAM8I9/bv9/8AApkBAKgY5tDR5v8ADZkBAJc926a92/8AGJkBAI+Az2epz/8AI5kBAI63wDaQwP8ALpkBAIL7igKBiv8AOZkBAHb8ZAFkUP8ARJkBAOkI///3+/8AT5kBAMgO8Ozi8P8AWpkBAKgY5tDR5v8AZZkBAJc926a92/8AcJkBAI+Az2epz/8Ae5kBAI63wDaQwP8AhpkBAIL7igKBiv8AkZkBAHb8ZAFkUP8AnJkBAOkI///3+/8Ap5kBAMgO8Ozi8P8AspkBAKgY5tDR5v8AvZkBAJc926a92/8AyJkBAI+Az2epz/8A05kBAI63wDaQwP8A3pkBAIL7igKBiv8A6ZkBAHf8bAFsWf8A9JkBAHX7RgFGNv8A/5kBABLuf387CP8ACZoBAMP/Sy0AS/8AFJoBABT2s7NYBv8AHpoBABbo4OCCFP8AKJoBABeb/f24Y/8AMpoBABhI/v7gtv8APJoBAKUU69ja6/8ARpoBALEv0rKr0v8AUJoBALNUrIBzrP8AWpoBAL21iFQniP8AZJoBABLuf387CP8AbpoBAL21iFQniP8AeZoBAMP/Sy0AS/8AhJoBABT2s7NYBv8AjpoBABbo4OCCFP8AmJoBABeb/f24Y/8AopoBABhI/v7gtv8ArJoBAAAA9/f39/8AtpoBAKUU69ja6/8AwJoBALEv0rKr0v8AypoBALNUrIBzrP8A1JoBABe78fGjQP8A3ZoBAAAA9/f39/8A5poBALJFw5mOw/8A75oBABH95uZhAf8A+JoBABeb/f24Y/8AAZsBALEv0rKr0v8ACpsBALmbmV48mf8AE5sBABH95uZhAf8AHJsBABeb/f24Y/8AJZsBAAAA9/f39/8ALpsBALEv0rKr0v8AN5sBALmbmV48mf8AQJsBABT2s7NYBv8ASZsBABe78fGjQP8AUpsBABhI/v7gtv8AW5sBAKUU69ja6/8AZJsBALJFw5mOw/8AbZsBAL21iFQniP8AdpsBABT2s7NYBv8Af5sBABe78fGjQP8AiJsBABhI/v7gtv8AkZsBAAAA9/f39/8AmpsBAKUU69ja6/8Ao5sBALJFw5mOw/8ArJsBAL21iFQniP8AtZsBABT2s7NYBv8AvpsBABbo4OCCFP8Ax5sBABeb/f24Y/8A0JsBABhI/v7gtv8A2ZsBAKUU69ja6/8A4psBALEv0rKr0v8A65sBALNUrIBzrP8A9JsBAL21iFQniP8A/ZsBABT2s7NYBv8ABpwBABbo4OCCFP8AD5wBABeb/f24Y/8AGJwBABhI/v7gtv8AIZwBAAAA9/f39/8AKpwBAKUU69ja6/8AM5wBALEv0rKr0v8APJwBALNUrIBzrP8ARZwBAL21iFQniP8ATpwBALwO7+fh7/8AV5wBANZDycmUx/8AYJwBAOre3d0cd/8AaZwBALkI9vHu9v8AcpwBANMp2Ne12P8Ae5wBAOSL399lsP8AhJwBAO/ozs4SVv8AjZwBALkI9vHu9v8AlpwBANMp2Ne12P8An5wBAOSL399lsP8AqJwBAOre3d0cd/8AsZwBAOz/mJgAQ/8AupwBALkI9vHu9v8Aw5wBAMwm2tS52v8AzJwBANZDycmUx/8A1ZwBAOSL399lsP8A3pwBAOre3d0cd/8A55wBAOz/mJgAQ/8A8JwBALkI9vHu9v8A+ZwBAMwm2tS52v8AAp0BANZDycmUx/8AC50BAOSL399lsP8AFJ0BAOnR5+cpiv8AHZ0BAO/ozs4SVv8AJp0BAOz/kZEAP/8AL50BAMMF+ff0+f8AOJ0BALwO7+fh7/8AQZ0BAMwm2tS52v8ASp0BANZDycmUx/8AU50BAOSL399lsP8AXJ0BAOnR5+cpiv8AZZ0BAO/ozs4SVv8Abp0BAOz/kZEAP/8Ad50BAMMF+ff0+f8AgJ0BALwO7+fh7/8AiZ0BAMwm2tS52v8Akp0BANZDycmUx/8Am50BAOSL399lsP8ApJ0BAOnR5+cpiv8ArZ0BAO/ozs4SVv8Atp0BAOz/mJgAQ/8Av50BAPL/Z2cAH/8AyJ0BALQI9e/t9f8A1J0BAKgl3Ly93P8A4J0BALBksXVrsf8A7J0BALYH9/Lw9/8A+J0BAK0c4svJ4v8ABJ4BAK06yJ6ayP8AEJ4BALaAo2pRo/8AHJ4BALYH9/Lw9/8AKJ4BAK0c4svJ4v8ANJ4BAK06yJ6ayP8AQJ4BALBksXVrsf8ATJ4BALy5j1Qnj/8AWJ4BALYH9/Lw9/8AZJ4BAKoS69ra6/8AcJ4BAKgl3Ly93P8AfJ4BAK06yJ6ayP8AiJ4BALBksXVrsf8AlJ4BALy5j1Qnj/8AoJ4BALYH9/Lw9/8ArJ4BAKoS69ra6/8AuJ4BAKgl3Ly93P8AxJ4BAK06yJ6ayP8A0J4BAKxTuoB9uv8A3J4BALaAo2pRo/8A6J4BAL7YhkoUhv8A9J4BAL8C/fz7/f8AAJ8BALQI9e/t9f8ADJ8BAKoS69ra6/8AGJ8BAKgl3Ly93P8AJJ8BAK06yJ6ayP8AMJ8BAKxTuoB9uv8APJ8BALaAo2pRo/8ASJ8BAL7YhkoUhv8AVJ8BAL8C/fz7/f8AYJ8BALQI9e/t9f8AbJ8BAKoS69ra6/8AeJ8BAKgl3Ly93P8AhJ8BAK06yJ6ayP8AkJ8BAKxTuoB9uv8AnJ8BALaAo2pRo/8AqJ8BALy5j1Qnj/8AtJ8BAL//fT8Aff8AwJ8BAPL/Z2cAH/8Ayp8BAJbxYQUwYf8A1Z8BAPncsrIYK/8A358BAAWj1tZgTf8A6Z8BAA139PSlgv8A858BAA82/f3bx/8A/Z8BAI4g8NHl8P8AB6ABAI1X3pLF3v8AEaABAI+nw0OTw/8AG6ABAJTOrCFmrP8AJaABAPL/Z2cAH/8AL6ABAJTOrCFmrP8AOqABAJbxYQUwYf8ARaABAPncsrIYK/8AT6ABAAWj1tZgTf8AWaABAA139PSlgv8AY6ABAA82/f3bx/8AbaABAAAA9/f39/8Ad6ABAI4g8NHl8P8AgaABAI1X3pLF3v8Ai6ABAI+nw0OTw/8AlaABAAyW7++KYv8AnqABAAAA9/f39/8Ap6ABAI+Az2epz/8AsKABAPj/ysoAIP8AuaABAA139PSlgv8AwqABAI1X3pLF3v8Ay6ABAI/3sAVxsP8A1KABAPj/ysoAIP8A3aABAA139PSlgv8A5qABAAAA9/f39/8A76ABAI1X3pLF3v8A+KABAI/3sAVxsP8AAaEBAPncsrIYK/8ACqEBAAyW7++KYv8AE6EBAA82/f3bx/8AHKEBAI4g8NHl8P8AJaEBAI+Az2epz/8ALqEBAJTOrCFmrP8AN6EBAPncsrIYK/8AQKEBAAyW7++KYv8ASaEBAA82/f3bx/8AUqEBAAAA9/f39/8AW6EBAI4g8NHl8P8AZKEBAI+Az2epz/8AbaEBAJTOrCFmrP8AdqEBAPncsrIYK/8Af6EBAAWj1tZgTf8AiKEBAA139PSlgv8AkaEBAA82/f3bx/8AmqEBAI4g8NHl8P8Ao6EBAI1X3pLF3v8ArKEBAI+nw0OTw/8AtaEBAJTOrCFmrP8AvqEBAPncsrIYK/8Ax6EBAAWj1tZgTf8A0KEBAA139PSlgv8A2aEBAA82/f3bx/8A4qEBAAAA9/f39/8A66EBAI4g8NHl8P8A9KEBAI1X3pLF3v8A/aEBAI+nw0OTw/8ABqIBAJTOrCFmrP8AD6IBAPL/Z2cAH/8AGaIBAAAAGhoaGv8AJKIBAPncsrIYK/8ALqIBAAWj1tZgTf8AOKIBAA139PSlgv8AQqIBAA82/f3bx/8ATKIBAAAA4ODg4P8AVqIBAAAAurq6uv8AYKIBAAAAh4eHh/8AaqIBAAAATU1NTf8AdKIBAPL/Z2cAH/8AfqIBAAAATU1NTf8AiaIBAAAAGhoaGv8AlKIBAPncsrIYK/8AnqIBAAWj1tZgTf8AqKIBAA139PSlgv8AsqIBAA82/f3bx/8AvKIBAAAA//////8AxqIBAAAA4ODg4P8A0KIBAAAAurq6uv8A2qIBAAAAh4eHh/8A5KIBAAyW7++KYv8A7aIBAAAA//////8A9qIBAAAAmZmZmf8A/6IBAPj/ysoAIP8ACKMBAA139PSlgv8AEaMBAAAAurq6uv8AGqMBAAAAQEBAQP8AI6MBAPj/ysoAIP8ALKMBAA139PSlgv8ANaMBAAAA//////8APqMBAAAAurq6uv8AR6MBAAAAQEBAQP8AUKMBAPncsrIYK/8AWaMBAAyW7++KYv8AYqMBAA82/f3bx/8Aa6MBAAAA4ODg4P8AdKMBAAAAmZmZmf8AfaMBAAAATU1NTf8AhqMBAPncsrIYK/8Aj6MBAAyW7++KYv8AmKMBAA82/f3bx/8AoaMBAAAA//////8AqqMBAAAA4ODg4P8As6MBAAAAmZmZmf8AvKMBAAAATU1NTf8AxaMBAPncsrIYK/8AzqMBAAWj1tZgTf8A16MBAA139PSlgv8A4KMBAA82/f3bx/8A6aMBAAAA4ODg4P8A8qMBAAAAurq6uv8A+6MBAAAAh4eHh/8ABKQBAAAATU1NTf8ADaQBAPncsrIYK/8AFqQBAAWj1tZgTf8AH6QBAA139PSlgv8AKKQBAA82/f3bx/8AMaQBAAAA//////8AOqQBAAAA4ODg4P8AQ6QBAAAAurq6uv8ATKQBAAAAh4eHh/8AVaQBAAAATU1NTf8AXqQBAAMg/f3g3f8AZ6QBAPRc+vqftf8AcKQBAOPcxcUbiv8AeaQBAA0c/v7r4v8AgqQBAPxI+/u0uf8Ai6QBAO6T9/doof8AlKQBAOD9rq4Bfv8AnaQBAA0c/v7r4v8ApqQBAPxI+/u0uf8Ar6QBAO6T9/doof8AuKQBAOPcxcUbiv8AwaQBANX8enoBd/8AyqQBAA0c/v7r4v8A06QBAAM8/PzFwP8A3KQBAPRc+vqftf8A5aQBAO6T9/doof8A7qQBAOPcxcUbiv8A96QBANX8enoBd/8AAKUBAA0c/v7r4v8ACaUBAAM8/PzFwP8AEqUBAPRc+vqftf8AG6UBAO6T9/doof8AJKUBAObD3d00l/8ALaUBAOD9rq4Bfv8ANqUBANX8enoBd/8AP6UBAA4M///38/8ASKUBAAMg/f3g3f8AUaUBAAM8/PzFwP8AWqUBAPRc+vqftf8AY6UBAO6T9/doof8AbKUBAObD3d00l/8AdaUBAOD9rq4Bfv8AfqUBANX8enoBd/8Ah6UBAA4M///38/8AkKUBAAMg/f3g3f8AmaUBAAM8/PzFwP8AoqUBAPRc+vqftf8Aq6UBAO6T9/doof8AtKUBAObD3d00l/8AvaUBAOD9rq4Bfv8AxqUBANX8enoBd/8Az6UBAMf/akkAav8A2KUBAPX/paUAJv8A5KUBAKerlTE2lf8A8aUBAALQ19cwJ/8A/aUBAAq49PRtQ/8ACaYBABSd/f2uYf8AFaYBAB5u/v7gkP8AIaYBAIgY+ODz+P8ALaYBAIpD6avZ6f8AOaYBAI9x0XSt0f8ARaYBAJedtEV1tP8AUaYBAPX/paUAJv8AXaYBAJedtEV1tP8AaqYBAKerlTE2lf8Ad6YBAALQ19cwJ/8Ag6YBAAq49PRtQ/8Aj6YBABSd/f2uYf8Am6YBAB5u/v7gkP8Ap6YBACpA////v/8As6YBAIgY+ODz+P8Av6YBAIpD6avZ6f8Ay6YBAI9x0XSt0f8A16YBAA2k/PyNWf8A4qYBACpA////v/8A7aYBAI9W25G/2/8A+KYBAP7h19cZHP8AA6cBABSd/f2uYf8ADqcBAIpD6avZ6f8AGacBAJHBtix7tv8AJKcBAP7h19cZHP8AL6cBABSd/f2uYf8AOqcBACpA////v/8ARacBAIpD6avZ6f8AUKcBAJHBtix7tv8AW6cBAALQ19cwJ/8AZqcBAA2k/PyNWf8AcacBAB5u/v7gkP8AfKcBAIgY+ODz+P8Ah6cBAI9W25G/2/8AkqcBAJedtEV1tP8AnacBAALQ19cwJ/8AqKcBAA2k/PyNWf8As6cBAB5u/v7gkP8AvqcBACpA////v/8AyacBAIgY+ODz+P8A1KcBAI9W25G/2/8A36cBAJedtEV1tP8A6qcBAALQ19cwJ/8A9acBAAq49PRtQ/8AAKgBABSd/f2uYf8AC6gBAB5u/v7gkP8AFqgBAIgY+ODz+P8AIagBAIpD6avZ6f8ALKgBAI9x0XSt0f8AN6gBAJedtEV1tP8AQqgBAALQ19cwJ/8ATagBAAq49PRtQ/8AWKgBABSd/f2uYf8AY6gBAB5u/v7gkP8AbqgBACpA////v/8AeagBAIgY+ODz+P8AhKgBAIpD6avZ6f8Aj6gBAI9x0XSt0f8AmqgBAJedtEV1tP8ApagBAPX/paUAJv8AsagBAGv/aABoN/8AvqgBAALQ19cwJ/8AyqgBAAq49PRtQ/8A1qgBABSd/f2uYf8A4qgBAB9z/v7gi/8A7qgBADNq79nvi/8A+qgBAD6C2abZav8ABqkBAFN5vWa9Y/8AEqkBAGfTmBqYUP8AHqkBAPX/paUAJv8AKqkBAGfTmBqYUP8AN6kBAGv/aABoN/8ARKkBAALQ19cwJ/8AUKkBAAq49PRtQ/8AXKkBABSd/f2uYf8AaKkBAB9z/v7gi/8AdKkBACpA////v/8AgKkBADNq79nvi/8AjKkBAD6C2abZav8AmKkBAFN5vWa9Y/8ApKkBAA2k/PyNWf8Ar6kBACpA////v/8AuqkBAEKIz5HPYP8AxakBAP7h19cZHP8A0KkBABSd/f2uYf8A26kBAD6C2abZav8A5qkBAGLSlhqWQf8A8akBAP7h19cZHP8A/KkBABSd/f2uYf8AB6oBACpA////v/8AEqoBAD6C2abZav8AHaoBAGLSlhqWQf8AKKoBAALQ19cwJ/8AM6oBAA2k/PyNWf8APqoBAB9z/v7gi/8ASaoBADNq79nvi/8AVKoBAEKIz5HPYP8AX6oBAGfTmBqYUP8AaqoBAALQ19cwJ/8AdaoBAA2k/PyNWf8AgKoBAB9z/v7gi/8Ai6oBACpA////v/8AlqoBADNq79nvi/8AoaoBAEKIz5HPYP8ArKoBAGfTmBqYUP8At6oBAALQ19cwJ/8AwqoBAAq49PRtQ/8AzaoBABSd/f2uYf8A2KoBAB9z/v7gi/8A46oBADNq79nvi/8A7qoBAD6C2abZav8A+aoBAFN5vWa9Y/8ABKsBAGfTmBqYUP8AD6sBAALQ19cwJ/8AGqsBAAq49PRtQ/8AJasBABSd/f2uYf8AMKsBAB9z/v7gi/8AO6sBACpA////v/8ARqsBADNq79nvi/8AUasBAD6C2abZav8AXKsBAFN5vWa9Y/8AZ6sBAGfTmBqYUP8AcqsBAA0s/v7g0v8Ae6sBAAmL/PyScv8AhKsBAAHT3t4tJv8AjasBAA0l/v7l2f8AlqsBAAts/Pyukf8An6sBAAez+/tqSv8AqKsBAP3gy8sYHf8AsasBAA0l/v7l2f8AuqsBAAts/Pyukf8Aw6sBAAez+/tqSv8AzKsBAAHT3t4tJv8A1asBAP3npaUPFf8A3qsBAA0l/v7l2f8A56sBAAxc/Py7of8A8KsBAAmL/PyScv8A+asBAAez+/tqSv8AAqwBAAHT3t4tJv8AC6wBAP3npaUPFf8AFKwBAA0l/v7l2f8AHawBAAxc/Py7of8AJqwBAAmL/PyScv8AL6wBAAez+/tqSv8AOKwBAAPQ7+87LP8AQawBAP3gy8sYHf8ASqwBAPv/mZkADf8AU6wBAA4P///18P8AXKwBAA0s/v7g0v8AZawBAAxc/Py7of8AbqwBAAmL/PyScv8Ad6wBAAez+/tqSv8AgKwBAAPQ7+87LP8AiawBAP3gy8sYHf8AkqwBAPv/mZkADf8Am6wBAA4P///18P8ApKwBAA0s/v7g0v8ArawBAAxc/Py7of8AtqwBAAmL/PyScv8Av6wBAAez+/tqSv8AyKwBAAPQ7+87LP8A0awBAP3gy8sYHf8A2qwBAP3npaUPFf8A46wBAPn/Z2cADf8A7KwBAP7h5OQaHP8A9awBAJKyuDd+uP8A/qwBAFOTr02vSv8AB60BAP7h5OQaHP8AEK0BAJKyuDd+uP8AGa0BAFOTr02vSv8AIq0BAM+Eo5hOo/8AK60BAP7h5OQaHP8ANK0BAJKyuDd+uP8APa0BAFOTr02vSv8ARq0BAM+Eo5hOo/8AT60BABX///9/AP8AWK0BAP7h5OQaHP8AYa0BAJKyuDd+uP8Aaq0BAFOTr02vSv8Ac60BAM+Eo5hOo/8AfK0BABX///9/AP8Aha0BACrM////M/8Ajq0BAP7h5OQaHP8Al60BAJKyuDd+uP8AoK0BAFOTr02vSv8Aqa0BAM+Eo5hOo/8Asq0BABX///9/AP8Au60BACrM////M/8AxK0BAA/BpqZWKP8Aza0BAP7h5OQaHP8A1q0BAJKyuDd+uP8A360BAFOTr02vSv8A6K0BAM+Eo5hOo/8A8a0BABX///9/AP8A+q0BACrM////M/8AA64BAA/BpqZWKP8ADK4BAOh59/eBv/8AFa4BAP7h5OQaHP8AHq4BAJKyuDd+uP8AJ64BAFOTr02vSv8AMK4BAM+Eo5hOo/8AOa4BABX///9/AP8AQq4BACrM////M/8AS64BAA/BpqZWKP8AVK4BAOh59/eBv/8AXa4BAAAAmZmZmf8AZq4BAHJ4wmbCpf8Ab64BAAub/PyNYv8AeK4BAJxNy42gy/8Aga4BAHJ4wmbCpf8Aiq4BAAub/PyNYv8Ak64BAJxNy42gy/8AnK4BAORm5+eKw/8Apa4BAHJ4wmbCpf8Arq4BAAub/PyNYv8At64BAJxNy42gy/8AwK4BAORm5+eKw/8Aya4BADqb2KbYVP8A0q4BAHJ4wmbCpf8A264BAAub/PyNYv8A5K4BAJxNy42gy/8A7a4BAORm5+eKw/8A9q4BADqb2KbYVP8A/64BACLQ///ZL/8ACK8BAHJ4wmbCpf8AEa8BAAub/PyNYv8AGq8BAJxNy42gy/8AI68BAORm5+eKw/8ALK8BADqb2KbYVP8ANa8BACLQ///ZL/8APq8BABla5eXElP8AR68BAHJ4wmbCpf8AUK8BAAub/PyNYv8AWa8BAJxNy42gy/8AYq8BAORm5+eKw/8Aa68BADqb2KbYVP8AdK8BACLQ///ZL/8Afa8BABla5eXElP8Ahq8BAAAAs7Ozs/8Aj68BAHhU043Tx/8Ama8BANNSvbyAvf8ApK8BACpM////s/8Arq8BAK8l2r662v8AuK8BAASL+/uAcv8Awq8BAJBk04Cx0/8AzK8BABac/f20Yv8A1q8BADqG3rPeaf8A4K8BAOkv/PzN5f8A6q8BAAAA2dnZ2f8A9K8BAHhU043Tx/8A/q8BANNSvbyAvf8ACbABAE0p68zrxf8AFLABACpM////s/8AHrABAK8l2r662v8AKLABAASL+/uAcv8AMrABAJBk04Cx0/8APLABABac/f20Yv8ARrABADqG3rPeaf8AULABAOkv/PzN5f8AWrABAAAA2dnZ2f8AZLABAHhU043Tx/8AbrABANNSvbyAvf8AebABAE0p68zrxf8AhLABACWQ///tb/8Aj7ABACpM////s/8AmbABAK8l2r662v8Ao7ABAASL+/uAcv8ArbABAJBk04Cx0/8At7ABABac/f20Yv8AwbABADqG3rPeaf8Ay7ABAOkv/PzN5f8A1bABAAAA2dnZ2f8A37ABAHhU043Tx/8A6LABACpM////s/8A8bABAK8l2r662v8A+rABAHhU043Tx/8AA7EBACpM////s/8ADLEBAK8l2r662v8AFbEBAASL+/uAcv8AHrEBAHhU043Tx/8AJ7EBACpM////s/8AMLEBAK8l2r662v8AObEBAASL+/uAcv8AQrEBAJBk04Cx0/8AS7EBAHhU043Tx/8AVLEBACpM////s/8AXbEBAK8l2r662v8AZrEBAASL+/uAcv8Ab7EBAJBk04Cx0/8AeLEBABac/f20Yv8AgbEBAHhU043Tx/8AirEBACpM////s/8Ak7EBAK8l2r662v8AnLEBAASL+/uAcv8ApbEBAJBk04Cx0/8ArrEBABac/f20Yv8At7EBADqG3rPeaf8AwLEBAHhU043Tx/8AybEBACpM////s/8A0rEBAK8l2r662v8A27EBAASL+/uAcv8A5LEBAJBk04Cx0/8A7bEBABac/f20Yv8A9rEBADqG3rPeaf8A/7EBAOkv/PzN5f8ACLIBAHhU043Tx/8AEbIBACpM////s/8AGrIBAK8l2r662v8AI7IBAASL+/uAcv8ALLIBAJBk04Cx0/8ANbIBABac/f20Yv8APrIBADqG3rPeaf8AR7IBAOkv/PzN5f8AULIBAAAA2dnZ2f8AWbIBAO39np4BQv8AZ7IBALGCol5Pov8AdrIBAPq01dU+T/8AhLIBAAq49PRtQ/8AkrIBABSd/f2uYf8AoLIBAB9z/v7gi/8ArrIBADFg9eb1mP8AvLIBAE9B3avdpP8AyrIBAHJ4wmbCpf8A2LIBAI+7vTKIvf8A5rIBAO39np4BQv8A9LIBAI+7vTKIvf8AA7MBALGCol5Pov8AErMBAPq01dU+T/8AILMBAAq49PRtQ/8ALrMBABSd/f2uYf8APLMBAB9z/v7gi/8ASrMBACpA////v/8AWLMBADFg9eb1mP8AZrMBAE9B3avdpP8AdLMBAHJ4wmbCpf8AgrMBAA2k/PyNWf8Aj7MBACpA////v/8AnLMBAFFN1ZnVlP8AqbMBAP7h19cZHP8AtrMBABSd/f2uYf8Aw7MBAE9B3avdpP8A0LMBAI/EuiuDuv8A3bMBAP7h19cZHP8A6rMBABSd/f2uYf8A97MBACpA////v/8ABLQBAE9B3avdpP8AEbQBAI/EuiuDuv8AHrQBAPq01dU+T/8AK7QBAA2k/PyNWf8AOLQBAB9z/v7gi/8ARbQBADFg9eb1mP8AUrQBAFFN1ZnVlP8AX7QBAI+7vTKIvf8AbLQBAPq01dU+T/8AebQBAA2k/PyNWf8AhrQBAB9z/v7gi/8Ak7QBACpA////v/8AoLQBADFg9eb1mP8ArbQBAFFN1ZnVlP8AurQBAI+7vTKIvf8Ax7QBAPq01dU+T/8A1LQBAAq49PRtQ/8A4bQBABSd/f2uYf8A7rQBAB9z/v7gi/8A+7QBADFg9eb1mP8ACLUBAE9B3avdpP8AFbUBAHJ4wmbCpf8AIrUBAI+7vTKIvf8AL7UBAPq01dU+T/8APLUBAAq49PRtQ/8ASbUBABSd/f2uYf8AVrUBAB9z/v7gi/8AY7UBACpA////v/8AcLUBADFg9eb1mP8AfbUBAE9B3avdpP8AirUBAHJ4wmbCpf8Al7UBAI+7vTKIvf8ApLUBAJMP//D4//8As7UBABgj+vrr1/8AxbUBAH///wD///8Az7UBAHGA/3//1P8A37UBAH8P//D///8A6rUBACoa9fX13P8A9bUBABc6///kxP8AAbYBAAAAAAAAAP8ADLYBABkx///rzf8AILYBAKr//wAA//8AKrYBAMDO4oor4v8AOrYBAAC+paUqKv8ARbYBABdj3t64h/8AVLYBAIBnoF+eoP8AY7YBAD///3//AP8Ac7YBABHa0tJpHv8AgrYBAAuv//9/UP8AjbYBAJqT7WSV7f8AobYBACEi///43P8Ar7YBAPbn3NwUPP8AvLYBAH///wD///8AxrYBAKr/iwAAi/8A1LYBAH//iwCLi/8A4rYBAB7vuLiGC/8A9bYBAAAAqampqf8AA7cBAFX/ZABkAP8AErcBAAAAqampqf8AILcBACduvb23a/8AL7cBANT/i4sAi/8AQLcBADqOa1VrL/8AVLcBABf///+MAP8AZLcBAMbAzJkyzP8AdLcBAAD/i4sAAP8AgbcBAAp56emWev8AkbcBAFU9vI+8j/8Ao7cBAK+Pi0g9i/8AtrcBAH9nTy9PT/8AybcBAH9nTy9PT/8A3LcBAID/0QDO0f8A77cBAMf/05QA0/8A/7cBAOjr//8Uk/8ADbgBAIr//wC///8AHrgBAAAAaWlpaf8AK7gBAAAAaWlpaf8AOLgBAJTh/x6Q//8ASLgBAADOsrIiIv8AV7gBABwP///68P8AaLgBAFXAiyKLIv8AebgBANT///8A//8AhrgBAAAA3Nzc3P8AlbgBAKoH//j4//8ApbgBACP////XAP8Ar7gBAB7Z2tqlIP8AvrgBAAAAgICAgP8AyLgBAFX/gACAAP8A07gBADvQ/63/L/8A5LgBAAAAgICAgP8A7rgBAFUP//D/8P8A/LgBAOmW//9ptP8ACbkBAACMzc1cXP8AGLkBAML/gksAgv8AJLkBACoP////8P8AL7kBACZq8PDmjP8AOrkBAKoU+ubm+v8ASLkBAPAP///w9f8AW7kBAED//Hz8AP8AarkBACYx///6zf8AfLkBAIk/5q3Y5v8Ai7kBAAB38PCAgP8Am7kBAH8f/+D///8AqrkBACoo+vr60v8AxLkBAAAA09PT0/8A07kBAFVk7pDukP8A47kBAAAA09PT0/8A8rkBAPhJ//+2wf8AAboBAAyE//+gev8AEroBAH3RsiCyqv8AJboBAI91+ofO+v8AN7oBAJQ4mXeImf8AS7oBAJQ4mXeImf8AX7oBAJc03rDE3v8Ac7oBACof////4P8AhLoBAFX//wD/AP8AjroBAFXAzTLNMv8AnboBABUU+vrw5v8AqLoBANT///8A//8AtboBAAD/gIAAAP8AwboBAHGAzWbNqv8A17oBAKr/zQAAzf8A57oBAMyY07pV0/8A+boBALd825Nw2/8AC7sBAGepszyzcf8AH7sBALCP7nto7v8ANLsBAG//+gD6mv8AS7sBAH2n0UjRzP8AYLsBAOTkx8cVhf8AdbsBAKrGcBkZcP8Ah7sBAGoJ//X/+v8AlrsBAAQe///k4f8ApbsBABpJ///ktf8As7sBABlR///erf8AxLsBAKr/gAAAgP8AzrsBABsX/f315v8A27sBACr/gICAAP8A5rsBADjAjmuOI/8A9bsBABv///+lAP8AAbwBAAv///9FAP8AELwBANZ72tpw1v8AHLwBACZI7u7oqv8AL7wBAFVk+5j7mP8APrwBAH9D7q/u7v8AUbwBAPF829twk/8AZLwBABop///v1f8AdLwBABRG///auf8Ag7wBABSwzc2FP/8AjbwBAPc////Ay/8Al7wBANRG3d2g3f8AobwBAIQ75rDg5v8AsbwBANT/gIAAgP8AvbwBAAD///8AAP8AxrwBAAA9vLyPj/8A1bwBAJ+14UFp4f8A5LwBABHci4tFE/8A9bwBAASK+vqAcv8AAb0BABOa9PSkYP8AEb0BAGeqiy6LV/8AH70BABEQ///17v8ALb0BAA23oKBSLf8AOb0BAAAAwMDAwP8ARb0BAIts64fO6/8AUr0BAK+PzWpazf8AYb0BAJQ4kHCAkP8AcL0BAJQ4kHCAkP8Af70BAAAF///6+v8Aib0BAGr//wD/f/8Amr0BAJKbtEaCtP8Aqb0BABhU0tK0jP8Asr0BAH//gACAgP8AvL0BANQd2Ni/2P8Ayb0BAAa4//9jR/8A1b0BAHu24EDg0P8A5L0BANRz7u6C7v8A8L0BABtE9fXes/8A+70BAAAA//////8ABr4BAAAA9fX19f8AFr4BACr/////AP8AIr4BADjAzZrNMv8AM74BAC1D/Pf8uf8APL4BAERb3a3djv8ARb4BAGKyozGjVP8ATr4BACoy////zP8AV74BAD5V5sLmmf8AYL4BAFVkxnjGef8Aab4BAGO7hCOEQ/8Acr4BACoy////zP8Ae74BAD5V5sLmmf8AhL4BAFVkxnjGef8Ajb4BAGKyozGjVP8Alr4BAGv/aABoN/8An74BACoy////zP8AqL4BADdR8Nnwo/8Asb4BAERb3a3djv8Aur4BAFVkxnjGef8Aw74BAGKyozGjVP8AzL4BAGv/aABoN/8A1b4BACoy////zP8A3r4BADdR8Nnwo/8A574BAERb3a3djv8A8L4BAFVkxnjGef8A+b4BAGCeq0GrXf8AAr8BAGO7hCOEQ/8AC78BAGz/WgBaMv8AFL8BACoZ////5f8AHb8BAC1D/Pf8uf8AJr8BADdR8Nnwo/8AL78BAERb3a3djv8AOL8BAFVkxnjGef8AQb8BAGCeq0GrXf8ASr8BAGO7hCOEQ/8AU78BAGz/WgBaMv8AXL8BACoZ////5f8AZb8BAC1D/Pf8uf8Abr8BADdR8Nnwo/8Ad78BAERb3a3djv8AgL8BAFVkxnjGef8Aib8BAGCeq0GrXf8Akr8BAGO7hCOEQ/8Am78BAGv/aABoN/8ApL8BAG7/RQBFKf8Arb8BADFJ+O34sf8AuL8BAHVhzX/Nu/8Aw78BAJDCuCx/uP8Azr8BACoy////zP8A2b8BAGNC2qHatP8A5L8BAISqxEG2xP8A778BAJbLqCJeqP8A+r8BACoy////zP8ABcABAGNC2qHatP8AEMABAISqxEG2xP8AG8ABAJDCuCx/uP8AJsABAKS/lCU0lP8AMcABACoy////zP8APMABAEU66cfptP8AR8ABAHVhzX/Nu/8AUsABAISqxEG2xP8AXcABAJDCuCx/uP8AaMABAKS/lCU0lP8Ac8ABACoy////zP8AfsABAEU66cfptP8AicABAHVhzX/Nu/8AlMABAISqxEG2xP8An8ABAIvYwB2RwP8AqsABAJbLqCJeqP8AtcABAJ7nhAwshP8AwMABACom////2f8Ay8ABADFJ+O34sf8A1sABAEU66cfptP8A4cABAHVhzX/Nu/8A7MABAISqxEG2xP8A98ABAIvYwB2RwP8AAsEBAJbLqCJeqP8ADcEBAJ7nhAwshP8AGMEBACom////2f8AI8EBADFJ+O34sf8ALsEBAEU66cfptP8AOcEBAHVhzX/Nu/8ARMEBAISqxEG2xP8AT8EBAIvYwB2RwP8AWsEBAJbLqCJeqP8AZcEBAKS/lCU0lP8AcMEBAJ7nWAgdWP8Ae8EBACVC///3vP8AhsEBAByv/v7ET/8AkcEBABDu2dlfDv8AnMEBACoq////1P8Ap8EBABxw/v7Zjv8AssEBABbV/v6ZKf8AvcEBAA/8zMxMAv8AyMEBACoq////1P8A08EBABxw/v7Zjv8A3sEBABbV/v6ZKf8A6cEBABDu2dlfDv8A9MEBAA34mZk0BP8A/8EBACoq////1P8ACsIBAB9t/v7jkf8AFcIBAByv/v7ET/8AIMIBABbV/v6ZKf8AK8IBABDu2dlfDv8ANsIBAA34mZk0BP8AQcIBACoq////1P8ATMIBAB9t/v7jkf8AV8IBAByv/v7ET/8AYsIBABbV/v6ZKf8AbcIBABLp7OxwFP8AeMIBAA/8zMxMAv8Ag8IBAAz3jIwtBP8AjsIBACoZ////5f8AmcIBACVC///3vP8ApMIBAB9t/v7jkf8Ar8IBAByv/v7ET/8AusIBABbV/v6ZKf8AxcIBABLp7OxwFP8A0MIBAA/8zMxMAv8A28IBAAz3jIwtBP8A5sIBACoZ////5f8A8cIBACVC///3vP8A/MIBAB9t/v7jkf8AB8MBAByv/v7ET/8AEsMBABbV/v6ZKf8AHcMBABLp7OxwFP8AKMMBAA/8zMxMAv8AM8MBAA34mZk0BP8APsMBAA3wZmYlBv8AScMBACJf///toP8AVMMBABiy/v6yTP8AX8MBAAXd8PA7IP8AasMBACpN////sv8AdcMBAB2i/v7MXP8AgMMBABHC/f2NPP8Ai8MBAP7h4+MaHP8AlsMBACpN////sv8AocMBAB2i/v7MXP8ArMMBABHC/f2NPP8At8MBAAXd8PA7IP8AwsMBAPb/vb0AJv8AzcMBACpN////sv8A2MMBAB6I/v7Zdv8A48MBABiy/v6yTP8A7sMBABHC/f2NPP8A+cMBAAXd8PA7IP8ABMQBAPb/vb0AJv8AD8QBACpN////sv8AGsQBAB6I/v7Zdv8AJcQBABiy/v6yTP8AMMQBABHC/f2NPP8AO8QBAAfU/PxOKv8ARsQBAP7h4+MaHP8AUcQBAPX/sbEAJv8AXMQBACoy////zP8AZ8QBACJf///toP8AcsQBAB6I/v7Zdv8AfcQBABiy/v6yTP8AiMQBABHC/f2NPP8Ak8QBAAfU/PxOKv8AnsQBAP7h4+MaHP8AqcQBAPX/sbEAJv8AtMQBACoy////zP8Av8QBACJf///toP8AysQBAB6I/v7Zdv8A1cQBABiy/v6yTP8A4MQBABHC/f2NPP8A68QBAAfU/PxOKv8A9sQBAP7h4+MaHP8AAcUBAPb/vb0AJv8ADMUBAPL/gIAAJv8AF8UBAJMP//D4//8AIcUBABgj+vrr1/8ALsUBABck///v2/8APMUBABck7u7fzP8ASsUBABckzc3AsP8AWMUBABgii4uDeP8AZsUBAHGA/3//1P8AccUBAHGA/3//1P8AfcUBAHGA7nbuxv8AicUBAHGAzWbNqv8AlcUBAHGAi0WLdP8AocUBAH8P//D///8Ap8UBAH8P//D///8ArsUBAH8P7uDu7v8AtcUBAH8OzcHNzf8AvMUBAH8Oi4OLi/8Aw8UBACoa9fX13P8AycUBABc6///kxP8A0MUBABc6///kxP8A2MUBABc67u7Vt/8A4MUBABY6zc23nv8A6MUBABc6i4t9a/8A+twBAAAAAAAAAP8A8MUBABkx///rzf8A/8UBAKr//wAA//8ABMYBAKr//wAA//8ACsYBAKr/7gAA7v8AEMYBAKr/zQAAzf8AFsYBAKr/iwAAi/8AHMYBAMDO4oor4v8AJ8YBAAC+paUqKv8ALcYBAAC///9AQP8ANMYBAAC/7u47O/8AO8YBAAC/zc0zM/8AQsYBAAC+i4sjI/8AScYBABdj3t64h/8AU8YBABdk///Tm/8AXsYBABdj7u7Fkf8AacYBABdjzc2qff8AdMYBABdji4tzVf8Af8YBAIBnoF+eoP8AicYBAINn/5j1//8AlMYBAINm7o7l7v8An8YBAINnzXrFzf8AqsYBAINmi1OGi/8AtcYBAD///3//AP8AwMYBAD///3//AP8AzMYBAD//7nbuAP8A2MYBAD//zWbNAP8A5MYBAD//i0WLAP8A8MYBABHa0tJpHv8A+sYBABHb//9/JP8ABccBABHb7u52If8AEMcBABHazc1mHf8AG8cBABHci4tFE/8AJscBAAuv//9/UP8ALMcBAAep//9yVv8AM8cBAAap7u5qUP8AOscBAAapzc1bRf8AQccBAAaoi4s+L/8ASMcBAJqT7WSV7f8AV8cBACEi///43P8AYMcBACEi///43P8AascBACIj7u7ozf8AdMcBACIizc3Isf8AfscBACMii4uIeP8AiMcBAPbn3NwUPP8AkMcBAH///wD///8AlccBAH///wD///8Am8cBAH//7gDu7v8AoccBAH//zQDNzf8Ap8cBAH//iwCLi/8ArccBAB7vuLiGC/8Au8cBAB7w//+5D/8AyscBAB7w7u6tDv8A2ccBAB7wzc2VDP8A6McBAB7wi4tlCP8A98cBAFX/ZABkAP8AAcgBACduvb23a/8AC8gBADqOa1VrL/8AGsgBADqP/8r/cP8AKsgBADqP7rzuaP8AOsgBADqPzaLNWv8ASsgBADqPi26LPf8AWsgBABf///+MAP8AZcgBABX///9/AP8AccgBABX/7u52AP8AfcgBABX/zc1mAP8AicgBABX/i4tFAP8AlcgBAMbAzJkyzP8AoMgBAMbB/78+//8ArMgBAMbA7rI67v8AuMgBAMbAzZoyzf8AxMgBAMbAi2gii/8A0MgBAAp56emWev8A28gBAFU9vI+8j/8A6MgBAFU+/8H/wf8A9sgBAFU+7rTutP8ABMkBAFU+zZvNm/8AEskBAFU+i2mLaf8AIMkBAK+Pi0g9i/8ALskBAH9nTy9PT/8APMkBAH9o/5f///8AS8kBAH9n7o3u7v8AWskBAH9ozXnNzf8AackBAH9oi1KLi/8AeMkBAH9nTy9PT/8AhskBAID/0QDO0f8AlMkBAMf/05QA0/8An8kBAOjr//8Uk/8AqMkBAOjr//8Uk/8AsskBAOjr7u4Sif8AvMkBAOjrzc0Qdv8AxskBAOfsi4sKUP8A0MkBAIr//wC///8A3MkBAIr//wC///8A6ckBAIr/7gCy7v8A9skBAIr/zQCazf8AA8oBAIr/iwBoi/8AEMoBAAAAaWlpaf8AGMoBAAAAaWlpaf8AIMoBAJTh/x6Q//8AK8oBAJTh/x6Q//8AN8oBAJTh7hyG7v8AQ8oBAJThzRh0zf8AT8oBAJThixBOi/8AW8oBAADOsrIiIv8AZcoBAADP//8wMP8AcMoBAADP7u4sLP8Ae8oBAADPzc0mJv8AhsoBAADPi4saGv8AkcoBABwP///68P8AncoBAFXAiyKLIv8AqcoBAAAA3Nzc3P8As8oBAKoH//j4//8AvsoBACP////XAP8Aw8oBACP////XAP8AycoBACP/7u7JAP8Az8oBACP/zc2tAP8A1coBACP/i4t1AP8A28oBAB7Z2tqlIP8A5coBAB7a///BJf8A8MoBAB7a7u60Iv8A+8oBAB7azc2bHf8ABssBAB7ai4tpFP8AEcsBAAAAwMDAwP8AFssBAAAAAAAAAP8AHMsBAAAAAwMDA/8AIssBAAAAGhoaGv8AKcsBAAAA//////8AMcsBAAAAHBwcHP8AOMsBAAAAHx8fH/8AP8sBAAAAISEhIf8ARssBAAAAJCQkJP8ATcsBAAAAJiYmJv8AVMsBAAAAKSkpKf8AW8sBAAAAKysrK/8AYssBAAAALi4uLv8AacsBAAAAMDAwMP8AcMsBAAAABQUFBf8AdssBAAAAMzMzM/8AfcsBAAAANjY2Nv8AhMsBAAAAODg4OP8Ai8sBAAAAOzs7O/8AkssBAAAAPT09Pf8AmcsBAAAAQEBAQP8AoMsBAAAAQkJCQv8Ap8sBAAAARUVFRf8ArssBAAAAR0dHR/8AtcsBAAAASkpKSv8AvMsBAAAACAgICP8AwssBAAAATU1NTf8AycsBAAAAT09PT/8A0MsBAAAAUlJSUv8A18sBAAAAVFRUVP8A3ssBAAAAV1dXV/8A5csBAAAAWVlZWf8A7MsBAAAAXFxcXP8A88sBAAAAXl5eXv8A+ssBAAAAYWFhYf8AAcwBAAAAY2NjY/8ACMwBAAAACgoKCv8ADswBAAAAZmZmZv8AFcwBAAAAaWlpaf8AHMwBAAAAa2tra/8AI8wBAAAAbm5ubv8AKswBAAAAcHBwcP8AMcwBAAAAc3Nzc/8AOMwBAAAAdXV1df8AP8wBAAAAeHh4eP8ARswBAAAAenp6ev8ATcwBAAAAfX19ff8AVMwBAAAADQ0NDf8AWswBAAAAf39/f/8AYcwBAAAAgoKCgv8AaMwBAAAAhYWFhf8Ab8wBAAAAh4eHh/8AdswBAAAAioqKiv8AfcwBAAAAjIyMjP8AhMwBAAAAj4+Pj/8Ai8wBAAAAkZGRkf8AkswBAAAAlJSUlP8AmcwBAAAAlpaWlv8AoMwBAAAADw8PD/8ApswBAAAAmZmZmf8ArcwBAAAAnJycnP8AtMwBAAAAnp6env8Au8wBAAAAoaGhof8AwswBAAAAo6Ojo/8AycwBAAAApqampv8A0MwBAAAAqKioqP8A18wBAAAAq6urq/8A3swBAAAAra2trf8A5cwBAAAAsLCwsP8A7MwBAAAAEhISEv8A8swBAAAAs7Ozs/8A+cwBAAAAtbW1tf8AAM0BAAAAuLi4uP8AB80BAAAAurq6uv8ADs0BAAAAvb29vf8AFc0BAAAAv7+/v/8AHM0BAAAAwsLCwv8AI80BAAAAxMTExP8AKs0BAAAAx8fHx/8AMc0BAAAAycnJyf8AOM0BAAAAFBQUFP8APs0BAAAAzMzMzP8ARc0BAAAAz8/Pz/8ATM0BAAAA0dHR0f8AU80BAAAA1NTU1P8AWs0BAAAA1tbW1v8AYc0BAAAA2dnZ2f8AaM0BAAAA29vb2/8Ab80BAAAA3t7e3v8Ads0BAAAA4ODg4P8Afc0BAAAA4+Pj4/8AhM0BAAAAFxcXF/8Ais0BAAAA5eXl5f8Akc0BAAAA6Ojo6P8AmM0BAAAA6+vr6/8An80BAAAA7e3t7f8Aps0BAAAA8PDw8P8Arc0BAAAA8vLy8v8AtM0BAAAA9fX19f8Au80BAAAA9/f39/8Aws0BAAAA+vr6+v8Ayc0BAAAA/Pz8/P8A0M0BAFX//wD/AP8A1s0BAFX//wD/AP8A3c0BAFX/7gDuAP8A5M0BAFX/zQDNAP8A680BAFX/iwCLAP8A8s0BADvQ/63/L/8A/s0BAAAAwMDAwP8AA84BAAAAAAAAAP8ACc4BAAAAAwMDA/8AD84BAAAAGhoaGv8AFs4BAAAA//////8AHs4BAAAAHBwcHP8AJc4BAAAAHx8fH/8ALM4BAAAAISEhIf8AM84BAAAAJCQkJP8AOs4BAAAAJiYmJv8AQc4BAAAAKSkpKf8ASM4BAAAAKysrK/8AT84BAAAALi4uLv8AVs4BAAAAMDAwMP8AXc4BAAAABQUFBf8AY84BAAAAMzMzM/8Aas4BAAAANjY2Nv8Acc4BAAAAODg4OP8AeM4BAAAAOzs7O/8Af84BAAAAPT09Pf8Ahs4BAAAAQEBAQP8Ajc4BAAAAQkJCQv8AlM4BAAAARUVFRf8Am84BAAAAR0dHR/8Aos4BAAAASkpKSv8Aqc4BAAAACAgICP8Ar84BAAAATU1NTf8Ats4BAAAAT09PT/8Avc4BAAAAUlJSUv8AxM4BAAAAVFRUVP8Ay84BAAAAV1dXV/8A0s4BAAAAWVlZWf8A2c4BAAAAXFxcXP8A4M4BAAAAXl5eXv8A584BAAAAYWFhYf8A7s4BAAAAY2NjY/8A9c4BAAAACgoKCv8A+84BAAAAZmZmZv8AAs8BAAAAaWlpaf8ACc8BAAAAa2tra/8AEM8BAAAAbm5ubv8AF88BAAAAcHBwcP8AHs8BAAAAc3Nzc/8AJc8BAAAAdXV1df8ALM8BAAAAeHh4eP8AM88BAAAAenp6ev8AOs8BAAAAfX19ff8AQc8BAAAADQ0NDf8AR88BAAAAf39/f/8ATs8BAAAAgoKCgv8AVc8BAAAAhYWFhf8AXM8BAAAAh4eHh/8AY88BAAAAioqKiv8Aas8BAAAAjIyMjP8Acc8BAAAAj4+Pj/8AeM8BAAAAkZGRkf8Af88BAAAAlJSUlP8Ahs8BAAAAlpaWlv8Ajc8BAAAADw8PD/8Ak88BAAAAmZmZmf8Ams8BAAAAnJycnP8Aoc8BAAAAnp6env8AqM8BAAAAoaGhof8Ar88BAAAAo6Ojo/8Ats8BAAAApqampv8Avc8BAAAAqKioqP8AxM8BAAAAq6urq/8Ay88BAAAAra2trf8A0s8BAAAAsLCwsP8A2c8BAAAAEhISEv8A388BAAAAs7Ozs/8A5s8BAAAAtbW1tf8A7c8BAAAAuLi4uP8A9M8BAAAAurq6uv8A+88BAAAAvb29vf8AAtABAAAAv7+/v/8ACdABAAAAwsLCwv8AENABAAAAxMTExP8AF9ABAAAAx8fHx/8AHtABAAAAycnJyf8AJdABAAAAFBQUFP8AK9ABAAAAzMzMzP8AMtABAAAAz8/Pz/8AOdABAAAA0dHR0f8AQNABAAAA1NTU1P8AR9ABAAAA1tbW1v8ATtABAAAA2dnZ2f8AVdABAAAA29vb2/8AXNABAAAA3t7e3v8AY9ABAAAA4ODg4P8AatABAAAA4+Pj4/8AcdABAAAAFxcXF/8Ad9ABAAAA5eXl5f8AftABAAAA6Ojo6P8AhdABAAAA6+vr6/8AjNABAAAA7e3t7f8Ak9ABAAAA8PDw8P8AmtABAAAA8vLy8v8AodABAAAA9fX19f8AqNABAAAA9/f39/8Ar9ABAAAA+vr6+v8AttABAAAA/Pz8/P8AvdABAFUP//D/8P8AxtABAFUP//D/8P8A0NABAFUP7uDu4P8A2tABAFUOzcHNwf8A5NABAFUOi4OLg/8A7tABAOmW//9ptP8A9tABAOqR//9utP8A/9ABAOuN7u5qp/8ACNEBAOyHzc1gkP8AEdEBAOqUi4s6Yv8AGtEBAACMzc1cXP8AJNEBAACU//9qav8AL9EBAACU7u5jY/8AOtEBAACVzc1VVf8ARdEBAACUi4s6Ov8AUNEBAML/gksAgv8AV9EBACoA/////gAAXdEBACoP////8P8AY9EBACoP////8P8AatEBACoP7u7u4P8AcdEBACoOzc3Nwf8AeNEBACoOi4uLg/8Af9EBACZq8PDmjP8AhdEBACdw///2j/8AjNEBACdw7u7mhf8Ak9EBACdvzc3Gc/8AmtEBACdvi4uGTv8AodEBAKoU+ubm+v8AqtEBAPAP///w9f8AuNEBAPAP///w9f8Ax9EBAO8P7u7g5f8A1tEBAPAOzc3Bxf8A5dEBAO8Oi4uDhv8A9NEBAED//Hz8AP8A/tEBACYx///6zf8AC9IBACYx///6zf8AGdIBACUy7u7pv/8AJ9IBACYxzc3Jpf8ANdIBACcxi4uJcP8AQ9IBAIk/5q3Y5v8ATdIBAIpA/7/v//8AWNIBAIpA7rLf7v8AY9IBAIo/zZrAzf8AbtIBAIlAi2iDi/8AedIBAAB38PCAgP8AhNIBAH8f/+D///8AjtIBAH8f/+D///8AmdIBAH8f7tHu7v8ApNIBAH8fzbTNzf8Ar9IBAH8fi3qLi/8AutIBACNz7u7dgv8AydIBACN0///si/8A2dIBACNz7u7cgv8A6dIBACNzzc2+cP8A+dIBACNzi4uBTP8ACdMBACoo+vr60v8AHtMBAAAA09PT0/8AKNMBAAAA09PT0/8AMtMBAPhJ//+2wf8APNMBAPlR//+uuf8AR9MBAPhR7u6irf8AUtMBAPlQzc2Mlf8AXdMBAPlQi4tfZf8AaNMBAAyE//+gev8AdNMBAAyE//+gev8AgdMBAAuE7u6Vcv8AjtMBAAyFzc2BYv8Am9MBAAyFi4tXQv8AqNMBAH3RsiCyqv8AttMBAI91+ofO+v8Aw9MBAI9P/7Di//8A0dMBAI9P7qTT7v8A39MBAI5PzY22zf8A7dMBAI9Oi2B7i/8A+9MBAK+P/4Rw//8ACtQBAJQ4mXeImf8AGdQBAJQ4mXeImf8AKNQBAJc03rDE3v8AN9QBAJc1/8rh//8AR9QBAJc17rzS7v8AV9QBAJc1zaK1zf8AZ9QBAJY1i257i/8Ad9QBACof////4P8Ag9QBACof////4P8AkNQBACof7u7u0f8AndQBACofzc3NtP8AqtQBACofi4uLev8At9QBAFXAzTLNMv8AwdQBABUU+vrw5v8Ax9QBANT///8A//8Az9QBANT///8A//8A2NQBANT/7u4A7v8A4dQBANT/zc0Azf8A6tQBANT/i4sAi/8A89QBAO+5sLAwYP8A+tQBAOTL//80s/8AAtUBAOTL7u4wp/8ACtUBAOTMzc0pkP8AEtUBAOTLi4scYv8AGtUBAHGAzWbNqv8AK9UBAKr/zQAAzf8ANtUBAMyY07pV0/8AQ9UBAMuZ/+Bm//8AUdUBAMuZ7tFf7v8AX9UBAMuZzbRSzf8AbdUBAMuai3o3i/8Ae9UBALd825Nw2/8AiNUBALd9/6uC//8AltUBALd97p957v8ApNUBALd9zYlozf8AstUBALd8i11Hi/8AwNUBAGepszyzcf8Az9UBALCP7nto7v8A39UBAG//+gD6mv8A8dUBAH2n0UjRzP8AAdYBAOTkx8cVhf8AEdYBAKrGcBkZcP8AHtYBAGoJ//X/+v8AKNYBAAQe///k4f8AMtYBAAQe///k4f8APdYBAAQe7u7V0v8ASNYBAAMdzc23tf8AU9YBAAUdi4t9e/8AXtYBABpJ///ktf8AZ9YBABlR///erf8Ac9YBABlR///erf8AgNYBABlS7u7Pof8AjdYBABlSzc2zi/8AmtYBABlSi4t5Xv8Ap9YBAKr/gAAAgP8ArNYBAKr/gAAAgP8AtdYBACoA/////gAAutYBABsX/f315v8AwtYBADjAjmuOI/8AzNYBADjB/8D/Pv8A19YBADjA7rPuOv8A4tYBADjAzZrNMv8A7dYBADjAi2mLIv8A+NYBABv///+lAP8A/9YBABv///+lAP8AB9cBABv/7u6aAP8AD9cBABv/zc2FAP8AF9cBABv/i4taAP8AH9cBAAv///9FAP8AKdcBAAv///9FAP8ANNcBAAv/7u5AAP8AP9cBAAv/zc03AP8AStcBAAv/i4slAP8AVdcBANZ72tpw1v8AXNcBANZ8//+D+v8AZNcBANZ87u566f8AbNcBANZ8zc1pyf8AdNcBANV8i4tHif8AfNcBACZI7u7oqv8AitcBAFVk+5j7mP8AlNcBAFVl/5r/mv8An9cBAFVk7pDukP8AqtcBAFVkzXzNfP8AtdcBAFVki1SLVP8AwNcBAH9D7q/u7v8AztcBAH9E/7v///8A3dcBAH9E7q7u7v8A7NcBAH9EzZbNzf8A+9cBAH9Di2aLi/8ACtgBAPF829twk/8AGNgBAPF9//+Cq/8AJ9gBAPF97u55n/8ANtgBAPF9zc1oif8ARdgBAPF8i4tHXf8AVNgBABop///v1f8AX9gBABRG///auf8AadgBABRG///auf8AdNgBABNF7u7Lrf8Af9gBABNFzc2vlf8AitgBABRFi4t3Zf8AldgBABSwzc2FP/8AmtgBAPc////Ay/8An9gBAPVJ//+1xf8ApdgBAPVJ7u6puP8Aq9gBAPVKzc2Rnv8AsdgBAPVJi4tjbP8At9gBANRG3d2g3f8AvNgBANRE//+7//8AwtgBANRE7u6u7v8AyNgBANREzc2Wzf8AztgBANRDi4tmi/8A1NgBAIQ75rDg5v8A39gBAMTd8KAg8P8A5tgBAL/P/5sw//8A7tgBAMDP7pEs7v8A9tgBAMDPzX0mzf8A/tgBAMDPi1Uai/8ABtkBAAD///8AAP8ACtkBAAD///8AAP8AD9kBAAD/7u4AAP8AFNkBAAD/zc0AAP8AGdkBAAD/i4sAAP8AHtkBAAA9vLyPj/8AKNkBAAA+///Bwf8AM9kBAAA+7u60tP8APtkBAAA+zc2bm/8ASdkBAAA+i4tpaf8AVNkBAJ+14UFp4f8AXtkBAJ+3/0h2//8AadkBAJ+37kNu7v8AdNkBAJ+2zTpfzf8Af9kBAJ+3iydAi/8AitkBABHci4tFE/8AltkBAASK+vqAcv8AndkBAAmW//+Maf8ApdkBAAmW7u6CYv8ArdkBAAmWzc1wVP8AtdkBAAmWi4tMOf8AvdkBABOa9PSkYP8AyNkBAGeqiy6LV/8A0dkBAGer/1T/n/8A29kBAGer7k7ulP8A5dkBAGerzUPNgP8A79kBAGeqiy6LV/8A+dkBABEQ///17v8AAtoBABEQ///17v8ADNoBABIR7u7l3v8AFtoBABIRzc3Fv/8AINoBABIQi4uGgv8AKtoBAA23oKBSLf8AMdoBAA24//+CR/8AOdoBAA247u55Qv8AQdoBAA24zc1oOf8ASdoBAA25i4tHJv8AUdoBAIts64fO6/8AWdoBAJB4/4fO//8AYtoBAJB47n7A7v8Aa9oBAJB4zWymzf8AdNoBAJF3i0pwi/8AfdoBAK+PzWpazf8Ah9oBAK+Q/4Nv//8AktoBAK+Q7npn7v8AndoBAK+QzWlZzf8AqNoBAK+Qi0c8i/8As9oBAJQ4kHCAkP8AvdoBAJU4/8bi//8AyNoBAJU47rnT7v8A09oBAJQ5zZ+2zf8A3toBAJU4i2x7i/8A6doBAJQ4kHCAkP8A89oBAAAF///6+v8A+NoBAAAF///6+v8A/toBAAAF7u7p6f8ABNsBAAAEzc3Jyf8ACtsBAAADi4uJif8AENsBAGr//wD/f/8AHNsBAGr//wD/f/8AKdsBAGr/7gDudv8ANtsBAGr/zQDNZv8AQ9sBAGr/iwCLRf8AUNsBAJKbtEaCtP8AWtsBAJKc/2O4//8AZdsBAJKc7lys7v8AcNsBAJKczU+Uzf8Ae9sBAJObizZki/8AhtsBABhU0tK0jP8AitsBABSw//+lT/8Aj9sBABSw7u6aSf8AlNsBABSwzc2FP/8AmdsBABSwi4taK/8AntsBANQd2Ni/2P8AptsBANQe///h//8Ar9sBANQe7u7S7v8AuNsBANQdzc21zf8AwdsBANQdi4t7i/8AytsBAAa4//9jR/8A0dsBAAa4//9jR/8A2dsBAAa47u5cQv8A4dsBAAa4zc1POf8A6dsBAAa5i4s2Jv8AO90BACoA/////gAA8dsBAHu24EDg0P8A+9sBAIH//wD1//8ABtwBAIH/7gDl7v8AEdwBAIH/zQDFzf8AHNwBAIH/iwCGi/8AJ9wBANRz7u6C7v8ALtwBAOPX0NAgkP8AONwBAOvB//8+lv8AQ9wBAOvA7u46jP8ATtwBAOvAzc0yeP8AWdwBAOvAi4siUv8AZNwBABtE9fXes/8AatwBABtF///nuv8AcdwBABtE7u7Yrv8AeNwBABtEzc26lv8Af9wBABtDi4t+Zv8AhtwBAAAA//////8AjNwBAAAA9fX19f8Al9wBACr/////AP8AntwBACr/////AP8AptwBACr/7u7uAP8ArtwBACr/zc3NAP8AttwBACr/i4uLAP8AvtwBADjAzZrNMv8AReEBAE7dAQBQ3QEAUt0BAFTdAQBW3QEAWN0BAFrdAQBc3QEAXt0BAGDdAQBj3QEAZt0BAGndAQBs3QEAb90BAHLdAQB13QEAeN0BAHvdAQB+3QEAAAAAAAQAAAAEAAAABQAAADEAAAAQAAAAAAAAAAAAAAAAAAAACAAAABAAAAAYAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAACAAAABAAAAAYAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAAAAAAAAAAAAAAAAAAAAAAAlNcAABQAAABDLlVURi04AAAAAAAAAAAAAAAAAN4SBJUAAAAA////////////////AgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzTeNgAAAkAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAHAAAAaqgCAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD42AAABQAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAcAAAByrAIAAAQAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPjYAAB82QAABQAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAcAAAB6sAIAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8JoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAIAAAAAkAAAAKAAAADQAAAAsAAAAMAAAAhQAAAAAgAAABIAAAAiAAAAMgAAAEIAAABSAAAAYgAAAIIAAACSAAAAogAAAoIAAAKSAAAF8gAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BV9wiQD/CS8PdAAAAPMOAgBuAAAA9Q4CAHIAAAD3DgIAZgAAAPkOAgBhAAAA+w4CAGUAAAD9DgIAdwAAAP8OAgBXAAAADA8CAHMAAAAaDwIAUwAAACYPAgBkAAAAMw8CAEQAAAA/DwIAAAAAAAAAAAAAAAAAAAAEAAQAGwAbACAAIAAjACEACgACABYACQAhACEAIQAVABwAAQAUABQAFAAUABQAFAAUAAgABAAFABsAAgAXABsAIAAfAB4AHQAJABMAAAAVABIAFQADAAcAFQAVABQAFAAUABQAFAAUABQAFAAIAAQABQAFAAYAGwAaABgAGQAgAAcAFQAUABQAFAAUABQAFAALABQADQAUAAwAFAAUABQADgAUABQAFAAQABQADwAUABEAAAAAAAAArgAuAC8AMwA1ADAANwCqANsA2wDbANsAAAA9AIcANwA3ANsA2wAAACgANQAuADIALwBiAAAAAABHAAAAAADbAFEAAADbANsA2wAAANsAhABVANsAggDbAAAAgQDbAAAAPgBCAEEASABEAFIAWwAAAAAAXgBfANsAAADbANsA2wAAAAAAewBJAFcAUgBaAFoAXQAAAF8AAABfAAAAZQBdAF8AAABdAG4AagAAAGkAAABuAAAA2wCTAJoAoQCoAKsAcACxALgAvwDGAM0A0wAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMABAAHAAMABAAFAAUABgAGAAgABwAHABEAFgASABEAEgAIAAgADwAPABcADwAYAA8AGQAaABoAHgAWADQAHgAFADIABgAiACIAMwAXABgANQAZABoAGgAqADYAKgA0ADcAMgBFADsAPAAzADsAPABGADUARwBIAEwANgAiAEkASgA3AEUATgBQAGIAUQBSAFQARgBHAFUASABMAFYASQBKAFgAWgBOAEQAUABRAFIAVAA4AC8ALABVACkAVgAbABAAWABaAF0AXQBdAF0AXQBdAF0AXgBeAF4AXgBeAF4AXgBfAF8AXwBfAF8AXwBfAGAACQBgAGAAYABgAGAAYQBhAGMAAgBjAGMAYwBjAGMAZAAAAGQAAABkAGQAZABlAAAAZQBlAGUAZQBlAGYAZgAAAGYAZgBmAGYAZwAAAGcAZwBnAGcAaAAAAGgAaABoAGgAaABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAAAAXAABAF0AXQBeAF4AXwBfAFwAXABcAFwAXABgAFwAXABcAGEAXABcAGIAYgBiAGIAYgBiAGIAYwBkAGUAZgBmAFwAXABnAFwAXABcAGAAXABcAGEAXABhAFwAaABhAFwAYgBiAGIAYgBiAGIAYgBiAGMAZABlAGUAXABmAFwAXABcAGcAaABhAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgBiAGIAYgAAAFwAXABcAFwAXABcAFwAXABcAFwAXABcAAAACgALAAwADQAOAAoADwAQABEAEgATAAoAFAAVABUAFQAWABcAFQAYABUAFQAZABUAFQAVABoAFQAVAAoAFQAVABUAFgAXABgAFQAVABkAFQAVABUAGgAVABUAFQAVABsADAAMACQAHgAeACAAIQAgACEAJAAlACYALQAyAC8ALgAqACUAJgAoACkAMwAqADQAKwA1ADYANwA8ADIARwA9ACIARQAiAD8AQABGADMANABIADUANgA3AC8ASQAqAEcASgBFAEwAXAA8AEYAXAA9AE0ASABOAE8AUgBJAEEAUABRAEoATABTAFQAMQBVAFYAVwBNAE4AWABPAFIAWQBQAFEAWgBbAFMARABUAFUAVgBXAEsARAAsAFgALABZADgALABaAFsAHQAdAB0AHQAdAB0AHQAfAB8AHwAfAB8AHwAfACMAIwAjACMAIwAjACMAJwBcACcAJwAnACcAJwAwADAAOQAcADkAOQA5ADkAOQA6AFwAOgBcADoAOgA6ADsAXAA7ADsAOwA7ADsAPgA+AFwAPgA+AD4APgBCAFwAQgBCAEIAQgBDAFwAQwBDAEMAQwBDAAkAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwACACu/9EACgCu/67/CwCu/67/rv+u/67/rv+u/67/BQDRAK7/0QDRANEA0QDRANEA0QDRAK7/+/+u/w4A7P+u/67/rv+u/9EA0QDRANEA0QANACUADABCABAAUAATAG0AewAUAJgADwCmAMMArv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/rv+u/67/FwCu/3cArv8HAC4Arv8mAK7/FwARACMArv8NAK7/rv+u/67/OgCu/67/NQCu/67/rv8oAK7/BwCu/zsARQCu/0gArv+u/67/rv+u/67/rv/8/+gA9v///xoAAAAnAAEAMgCu/67/AgAkAAMALwCu/67/rv+u/67//v+UAK7/CQAbAK7/vP+u/67/r/+u/67/rv+u/67/rv+u/wAAAAAAAG3m7N4FAAsASQAxAVMAfwEwAWkAeAH/AIEBUwKCAYMBhAGFAYYBVAKHAYgBiQFWAooBVwKLAYwBjgHdAY8BWQKQAVsCkQGSAZMBYAKUAWMClgFpApcBaAKYAZkBnAFvAp0BcgKfAXUCpgGAAqcBqAGpAYMCrAGtAa4BiAKvAbABsQGKArIBiwK3AZICuAG5AbwBvQHEAcYBxAHFAcUBxgHHAckBxwHIAcgByQHKAcwBygHLAcsBzAHxAfMB8QHyAfIB8wH0AfUB9gGVAfcBvwEgAp4BhgOsA4gDrQOJA64DigOvA4wDzAOOA80DjwPOA5kDRQOZA74fowPCA/cD+AP6A/sDYB6bHp4e3wBZH1EfWx9TH10fVR9fH1cfvB+zH8wfwx/sH+Uf/B/zHzoCZSw7AjwCPQKaAT4CZixBAkICQwKAAUQCiQJFAowC9AO4A/kD8gP9A3sD/gN8A/8DfQPABM8EJiHJAyohawArIeUAMiFOIYMhhCFgLGEsYixrAmMsfR1kLH0CbSxRAm4scQJvLFACcCxSAnIscyx1LHYsfiw/An8sQALyLPMsfad5HYunjKeNp2UCqqdmAscQJy3NEC0tdgN3A5wDtQCSA9ADmAPRA6YD1QOgA9YDmgPwA6ED8QOVA/UDzwPXAwAAAABBACAawAAgHwABAS8yAQEFOQEBD0oBAS15AQEFcAMBA5EDIBGjAyAJAARQEBAEICBgBAEhigQBNcEEAQ3QBAE/FAUBEzEFMCagAQEFswEBA80BAQ/eAQER+AEBJyICARHYAwEXAB4BlaAeAV8IH/gIGB/4Bigf+Ag4H/gISB/4Bmgf+AiIH/gImB/4CKgf+Ai4H/gCuh+2AsgfqgTYH/gC2h+cAugf+ALqH5AC+B+AAvofggJGAgEJEAUBA2AhEBAALDAvZywBBYAsAWPrLAEDQKYBLYCmARcipwENMqcBPXmnAQN+pwEJkKcBA6CnAQkh/yAaAAAAAHsgdmFyIHBhdGggPSBQb2ludGVyX3N0cmluZ2lmeSgkMCk7IHZhciBkYXRhID0gUG9pbnRlcl9zdHJpbmdpZnkoJDEpOyBGUy5jcmVhdGVQYXRoKCIvIiwgUEFUSC5kaXJuYW1lKHBhdGgpKTsgRlMud3JpdGVGaWxlKFBBVEguam9pbigiLyIsIHBhdGgpLCBkYXRhKTsgfQBjb3JlAHhkb3R2ZXJzaW9uADEuNwAxLjQAMS4yAF9sZHJhd18AX2hkcmF3XwBfdGRyYXdfAF9obGRyYXdfAF90bGRyYXdfAHhkb3QgdmVyc2lvbiAiJXMiIHRvbyBsb25nACAlZCAAJS4wMmYAJXMlZCAtACMlMDJ4JTAyeCUwMnglMDJ4AHNldGxpbmV3aWR0aCgAJS4zZgBTIABDIAAyIAAlLjAzZgBFIABlIABGIAB0ICV1IABUIABkb3Q6ZG90AGd2OmRvdABjYW5vbjpkb3QAcGxhaW46ZG90AHBsYWluLWV4dDpkb3QAeGRvdDp4ZG90AHhkb3QxLjI6eGRvdAB4ZG90MS40Onhkb3QASSAAIl9zdWJncmFwaF9jbnQiOiAlZAAiX2d2aWQiOiAlZAAiZWRnZXMiOiBbCgAiX2d2aWQiOiAlZCwKACJ0YWlsIjogJWQsCgAiaGVhZCI6ICVkACJvYmplY3RzIjogWwoAIm5vZGVzIjogWwoAIm5hbWUiOiAiJXMiAFwiAFwvAFxiAFxmAFxuAFxyAFx0ACJzdWJncmFwaHMiOiBbCgAiJXMiOiAAIiVzIgBDb3VsZCBub3QgcGFyc2UgeGRvdCAiJXMiCgBbCgAib3AiOiAiJWMiLAoAInJlY3QiOiBbJS4wM2YsJS4wM2YsJS4wM2YsJS4wM2ZdCgAib3AiOiAiTCIsCgAib3AiOiAiVCIsCgAicHQiOiBbJS4wM2YsJS4wM2ZdLAoAImFsaWduIjogIiVjIiwKACJ3aWR0aCI6ICUuMDNmLAoAInRleHQiOiAiJXMiCgAiZ3JhZCI6ICJub25lIiwKACJjb2xvciI6ICIlcyIKACJncmFkIjogImxpbmVhciIsCgAiZ3JhZCI6ICJyYWRpYWwiLAoAIm9wIjogIkYiLAoAInNpemUiOiAlLjAzZiwKACJmYWNlIjogIiVzIgoAIm9wIjogIlMiLAoAInN0eWxlIjogIiVzIgoAIm9wIjogInQiLAoAImZvbnRjaGFyIjogJWQKACJwMCI6IFslLjAzZiwlLjAzZiwlLjAzZl0sCgAicDEiOiBbJS4wM2YsJS4wM2YsJS4wM2ZdLAoAInN0b3BzIjogWwB7ImZyYWMiOiAlLjAzZiwgImNvbG9yIjogIiVzIn0AXQoAInAwIjogWyUuMDNmLCUuMDNmXSwKACJwMSI6IFslLjAzZiwlLjAzZl0sCgAicG9pbnRzIjogWwBbJS4wM2YsJS4wM2ZdAGRyYXdfAGxkcmF3XwBoZHJhd18AdGRyYXdfAGhsZHJhd18AdGxkcmF3XwAiZGlyZWN0ZWQiOiAlcywKACJzdHJpY3QiOiAlcwAgIABEdXBsaWNhdGUgY2x1c3RlciBuYW1lICIlcyIKAHhkb3QAanNvbgBqc29uMABkb3RfanNvbgB4ZG90X2pzb24AanNvbjpqc29uAGpzb24wOmpzb24AZG90X2pzb246anNvbgB4ZG90X2pzb246anNvbgBuID49IDQAZ3ZyZW5kZXJfY29yZV9maWcuYwBmaWdfYmV6aWVyAGZpZ19yZXNvbHZlX2NvbG9yAGZpZwBmaWc6ZmlnAG1hcAByZWN0ICVzICVkLCVkICVkLCVkCgBjaXJjbGUgJXMgJWQsJWQsJWQKAHBvbHkgJXMAICVkLCVkAGd2cmVuZGVyX2NvcmVfbWFwLmMAbWFwX291dHB1dF9zaGFwZQByZWN0YW5nbGUgKCVkLCVkKSAoJWQsJWQpICVzICVzCgA8YXJlYSBzaGFwZT0iY2lyY2xlIgA8YXJlYSBzaGFwZT0icmVjdCIAPGFyZWEgc2hhcGU9InBvbHkiACBocmVmPSIAIHRpdGxlPSIAIGFsdD0iIgAgY29vcmRzPSIAJWQsJWQsJWQAJWQsJWQsJWQsJWQAJWQsJWQALCVkLCVkACI+CgA8L21hcD4KAGJhc2UgcmVmZXJlcgoAZGVmYXVsdCAAPG1hcCBpZD0iACIgbmFtZT0iAGlzbWFwOm1hcABjbWFwOm1hcABpbWFwOm1hcABjbWFweDptYXAAaW1hcF9ucDptYXAAY21hcHhfbnA6bWFwACMgJXMKACVkICVkICVkICVkICVkICVkICVkICVkICVkICUuMWYgJWQgJWQgJWQgJWQgJWQgJWQKACVkICVkICVkICVkICVkICVkICVkICVkICVkICUuMWYgJWQgJWQgJWQgJWQKACVkICVkICVkICVkICVkICVkICVkICVkICVkICUuM2YgJWQgJS40ZiAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAoAJWQgJWQgIyUwMnglMDJ4JTAyeAoAZ3ZyZW5kZXJfY29yZV9tcC5jAG1wX3Jlc29sdmVfY29sb3IAJWQgJWQgJWQgJWQgJWQgJWQgJS4xZiAlLjRmICVkICUuMWYgJS4xZiAlZCAlZCAlc1wwMDEKACMgZW5kIG9mIEZJRyBmaWxlCgAjRklHIDMuMgoAIyBHZW5lcmF0ZWQgYnkgJXMgdmVyc2lvbiAlcyAoJXMpCgAjIFRpdGxlOiAlcwoAIyBQYWdlczogJWQKAFBvcnRyYWl0CgBDZW50ZXIKAEluY2hlcwoATGV0dGVyCgAxMDAuMDAKAFNpbmdsZQoALTIKADEyMDAAIDIKAG1wAG1wOm1wACBdICAlZCB0cnVlICVzCgAgXSAgJWQgZmFsc2UgJXMKACBzZXRsaW5ld2lkdGgKACVzIABzZXRoc2IAJS41ZyAlLjVnICUuNWcgJXNjb2xvcgoAJSAAbmV3cGF0aCAAIG1vdmV0bwoAIGxpbmV0bwoAc3Ryb2tlCgAgY3VydmV0bwoAY2xvc2VwYXRoIGZpbGwKAGNsb3NlcGF0aCBzdHJva2UKACBlbGxpcHNlX3BhdGggZmlsbAoAIGVsbGlwc2VfcGF0aCBzdHJva2UKACAvJXMgc2V0X2ZvbnQKACBtb3ZldG8gACAlcyBhbGlnbmVkdGV4dAoAWyAvUmVjdCBbIAAgXQoAICAvQm9yZGVyIFsgMCAwIDAgXQogIC9BY3Rpb24gPDwgL1N1YnR5cGUgL1VSSSAvVVJJICVzID4+CiAgL1N1YnR5cGUgL0xpbmsKL0FOTiBwZGZtYXJrCgBnc2F2ZQoAJSUgJXMKADAgMCAwIGVkZ2Vjb2xvcgoAZW5kcGFnZQpzaG93cGFnZQpncmVzdG9yZQoAJSVQYWdlVHJhaWxlcgoAJSUlJUVuZFBhZ2U6ICVkCgAlJSUlUGFnZTogJWQgJWQKACUlJSVQYWdlQm91bmRpbmdCb3g6ICVkICVkICVkICVkCgBMYW5kc2NhcGUAUG9ydHJhaXQAJSUlJVBhZ2VPcmllbnRhdGlvbjogJXMKADw8IC9QYWdlU2l6ZSBbJWQgJWRdID4+IHNldHBhZ2VkZXZpY2UKACVkICVkICVkIGJlZ2lucGFnZQoAZ3NhdmUKJWQgJWQgJWQgJWQgYm94cHJpbSBjbGlwIG5ld3BhdGgKACVnICVnIHNldF9zY2FsZSAlZCByb3RhdGUgJWcgJWcgdHJhbnNsYXRlCgBjYW52YXMgc2l6ZSAoJWQsJWQpIGV4Y2VlZHMgUERGIGxpbWl0ICglZCkKCShzdWdnZXN0IHNldHRpbmcgYSBib3VuZGluZyBib3ggc2l6ZSwgc2VlIGRvdCgxKSkKAFsgL0Nyb3BCb3ggWyVkICVkICVkICVkXSAvUEFHRVMgcGRmbWFyawoAJWQgJWQgc2V0bGF5ZXIKACUlJSVUaXRsZTogJXMKACUlUGFnZXM6IChhdGVuZCkKACUlUGFnZXM6IDEKACUlQm91bmRpbmdCb3g6IChhdGVuZCkKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKACUlRW5kQ29tbWVudHMKc2F2ZQoAc2V0dXBMYXRpbjEKAFsge0NhdGFsb2d9IDw8IC9VUkkgPDwgL0Jhc2UgJXMgPj4gPj4KL1BVVCBwZGZtYXJrCgAlJUJlZ2luUHJvbG9nAC9Eb3REaWN0IDIwMCBkaWN0IGRlZgBEb3REaWN0IGJlZ2luAC9zZXR1cExhdGluMSB7AG1hcmsAL0VuY29kaW5nVmVjdG9yIDI1NiBhcnJheSBkZWYAIEVuY29kaW5nVmVjdG9yIDAASVNPTGF0aW4xRW5jb2RpbmcgMCAyNTUgZ2V0aW50ZXJ2YWwgcHV0aW50ZXJ2YWwARW5jb2RpbmdWZWN0b3IgNDUgL2h5cGhlbiBwdXQAJSBTZXQgdXAgSVNPIExhdGluIDEgY2hhcmFjdGVyIGVuY29kaW5nAC9zdGFybmV0SVNPIHsAICAgICAgICBkdXAgZHVwIGZpbmRmb250IGR1cCBsZW5ndGggZGljdCBiZWdpbgAgICAgICAgIHsgMSBpbmRleCAvRklEIG5lIHsgZGVmIH17IHBvcCBwb3AgfSBpZmVsc2UAICAgICAgICB9IGZvcmFsbAAgICAgICAgIC9FbmNvZGluZyBFbmNvZGluZ1ZlY3RvciBkZWYAICAgICAgICBjdXJyZW50ZGljdCBlbmQgZGVmaW5lZm9udAB9IGRlZgAvVGltZXMtUm9tYW4gc3Rhcm5ldElTTyBkZWYAL1RpbWVzLUl0YWxpYyBzdGFybmV0SVNPIGRlZgAvVGltZXMtQm9sZCBzdGFybmV0SVNPIGRlZgAvVGltZXMtQm9sZEl0YWxpYyBzdGFybmV0SVNPIGRlZgAvSGVsdmV0aWNhIHN0YXJuZXRJU08gZGVmAC9IZWx2ZXRpY2EtT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgAvSGVsdmV0aWNhLUJvbGQgc3Rhcm5ldElTTyBkZWYAL0hlbHZldGljYS1Cb2xkT2JsaXF1ZSBzdGFybmV0SVNPIGRlZgAvQ291cmllciBzdGFybmV0SVNPIGRlZgAvQ291cmllci1PYmxpcXVlIHN0YXJuZXRJU08gZGVmAC9Db3VyaWVyLUJvbGQgc3Rhcm5ldElTTyBkZWYAL0NvdXJpZXItQm9sZE9ibGlxdWUgc3Rhcm5ldElTTyBkZWYAY2xlYXJ0b21hcmsAfSBiaW5kIGRlZgAlJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JhcGh2aXogMCAwAC9jb29yZC1mb250LWZhbWlseSAvVGltZXMtUm9tYW4gZGVmAC9kZWZhdWx0LWZvbnQtZmFtaWx5IC9UaW1lcy1Sb21hbiBkZWYAL2Nvb3JkZm9udCBjb29yZC1mb250LWZhbWlseSBmaW5kZm9udCA4IHNjYWxlZm9udCBkZWYAL0ludlNjYWxlRmFjdG9yIDEuMCBkZWYAL3NldF9zY2FsZSB7ACAgICAgICBkdXAgMSBleGNoIGRpdiAvSW52U2NhbGVGYWN0b3IgZXhjaCBkZWYAICAgICAgIHNjYWxlACUgc3R5bGVzAC9zb2xpZCB7IFtdIDAgc2V0ZGFzaCB9IGJpbmQgZGVmAC9kYXNoZWQgeyBbOSBJbnZTY2FsZUZhY3RvciBtdWwgZHVwIF0gMCBzZXRkYXNoIH0gYmluZCBkZWYAL2RvdHRlZCB7IFsxIEludlNjYWxlRmFjdG9yIG11bCA2IEludlNjYWxlRmFjdG9yIG11bF0gMCBzZXRkYXNoIH0gYmluZCBkZWYAL2ludmlzIHsvZmlsbCB7bmV3cGF0aH0gZGVmIC9zdHJva2Uge25ld3BhdGh9IGRlZiAvc2hvdyB7cG9wIG5ld3BhdGh9IGRlZn0gYmluZCBkZWYAL2JvbGQgeyAyIHNldGxpbmV3aWR0aCB9IGJpbmQgZGVmAC9maWxsZWQgeyB9IGJpbmQgZGVmAC91bmZpbGxlZCB7IH0gYmluZCBkZWYAL3JvdW5kZWQgeyB9IGJpbmQgZGVmAC9kaWFnb25hbHMgeyB9IGJpbmQgZGVmAC90YXBlcmVkIHsgfSBiaW5kIGRlZgAlIGhvb2tzIGZvciBzZXR0aW5nIGNvbG9yIAAvbm9kZWNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgAvZWRnZWNvbG9yIHsgc2V0aHNiY29sb3IgfSBiaW5kIGRlZgAvZ3JhcGhjb2xvciB7IHNldGhzYmNvbG9yIH0gYmluZCBkZWYAL25vcGNvbG9yIHtwb3AgcG9wIHBvcH0gYmluZCBkZWYAL2JlZ2lucGFnZSB7CSUgaSBqIG5wYWdlcwAJL25wYWdlcyBleGNoIGRlZgAJL2ogZXhjaCBkZWYACS9pIGV4Y2ggZGVmAAkvc3RyIDEwIHN0cmluZyBkZWYACW5wYWdlcyAxIGd0IHsACQlnc2F2ZQAJCQljb29yZGZvbnQgc2V0Zm9udAAJCQkwIDAgbW92ZXRvAAkJCShcKCkgc2hvdyBpIHN0ciBjdnMgc2hvdyAoLCkgc2hvdyBqIHN0ciBjdnMgc2hvdyAoXCkpIHNob3cACQlncmVzdG9yZQAJfSBpZgAvc2V0X2ZvbnQgewAJZmluZGZvbnQgZXhjaAAJc2NhbGVmb250IHNldGZvbnQAJSBkcmF3IHRleHQgZml0dGVkIHRvIGl0cyBleHBlY3RlZCB3aWR0aAAvYWxpZ25lZHRleHQgewkJCSUgd2lkdGggdGV4dAAJL3RleHQgZXhjaCBkZWYACS93aWR0aCBleGNoIGRlZgAJZ3NhdmUACQl3aWR0aCAwIGd0IHsACQkJW10gMCBzZXRkYXNoAAkJCXRleHQgc3RyaW5nd2lkdGggcG9wIHdpZHRoIGV4Y2ggc3ViIHRleHQgbGVuZ3RoIGRpdiAwIHRleHQgYXNob3cACQl9IGlmAAlncmVzdG9yZQAvYm94cHJpbSB7CQkJCSUgeGNvcm5lciB5Y29ybmVyIHhzaXplIHlzaXplAAkJNCAyIHJvbGwACQltb3ZldG8ACQkyIGNvcHkACQlleGNoIDAgcmxpbmV0bwAJCTAgZXhjaCBybGluZXRvAAkJcG9wIG5lZyAwIHJsaW5ldG8ACQljbG9zZXBhdGgAL2VsbGlwc2VfcGF0aCB7AAkvcnkgZXhjaCBkZWYACS9yeCBleGNoIGRlZgAJL3kgZXhjaCBkZWYACS94IGV4Y2ggZGVmAAltYXRyaXggY3VycmVudG1hdHJpeAAJbmV3cGF0aAAJeCB5IHRyYW5zbGF0ZQAJcnggcnkgc2NhbGUACTAgMCAxIDAgMzYwIGFyYwAJc2V0bWF0cml4AC9lbmRwYWdlIHsgc2hvd3BhZ2UgfSBiaW5kIGRlZgAvc2hvd3BhZ2UgeyB9IGRlZgAvbGF5ZXJjb2xvcnNlcQAJWwklIGxheWVyIGNvbG9yIHNlcXVlbmNlIC0gZGFya2VzdCB0byBsaWdodGVzdAAJCVswIDAgMF0ACQlbLjIgLjggLjhdAAkJWy40IC44IC44XQAJCVsuNiAuOCAuOF0ACQlbLjggLjggLjhdAAldAGRlZgAvbGF5ZXJsZW4gbGF5ZXJjb2xvcnNlcSBsZW5ndGggZGVmAC9zZXRsYXllciB7L21heGxheWVyIGV4Y2ggZGVmIC9jdXJsYXllciBleGNoIGRlZgAJbGF5ZXJjb2xvcnNlcSBjdXJsYXllciAxIHN1YiBsYXllcmxlbiBtb2QgZ2V0AAlhbG9hZCBwb3Agc2V0aHNiY29sb3IACS9ub2RlY29sb3Ige25vcGNvbG9yfSBkZWYACS9lZGdlY29sb3Ige25vcGNvbG9yfSBkZWYACS9ncmFwaGNvbG9yIHtub3Bjb2xvcn0gZGVmAC9vbmxheWVyIHsgY3VybGF5ZXIgbmUge2ludmlzfSBpZiB9IGRlZgAvb25sYXllcnMgewAJL215dXBwZXIgZXhjaCBkZWYACS9teWxvd2VyIGV4Y2ggZGVmAAljdXJsYXllciBteWxvd2VyIGx0AAljdXJsYXllciBteXVwcGVyIGd0AAlvcgAJe2ludmlzfSBpZgAvY3VybGF5ZXIgMCBkZWYAJSVFbmRSZXNvdXJjZQAlJUVuZFByb2xvZwAlJUJlZ2luU2V0dXAAMTQgZGVmYXVsdC1mb250LWZhbWlseSBzZXRfZm9udAAlIC9hcnJvd2xlbmd0aCAxMCBkZWYAJSAvYXJyb3d3aWR0aCA1IGRlZgAlIG1ha2Ugc3VyZSBwZGZtYXJrIGlzIGhhcm1sZXNzIGZvciBQUy1pbnRlcnByZXRlcnMgb3RoZXIgdGhhbiBEaXN0aWxsZXIAL3BkZm1hcmsgd2hlcmUge3BvcH0ge3VzZXJkaWN0IC9wZGZtYXJrIC9jbGVhcnRvbWFyayBsb2FkIHB1dH0gaWZlbHNlACUgbWFrZSAnPDwnIGFuZCAnPj4nIHNhZmUgb24gUFMgTGV2ZWwgMSBkZXZpY2VzAC9sYW5ndWFnZWxldmVsIHdoZXJlIHtwb3AgbGFuZ3VhZ2VsZXZlbH17MX0gaWZlbHNlADIgbHQgewAgICAgdXNlcmRpY3QgKDw8KSBjdm4gKFspIGN2biBsb2FkIHB1dAAgICAgdXNlcmRpY3QgKD4+KSBjdm4gKFspIGN2biBsb2FkIHB1dAB9IGlmACUlRW5kU2V0dXAAJSVUcmFpbGVyCgAlJSUlUGFnZXM6ICVkCgBlbmQKcmVzdG9yZQoAJSVFT0YKACUhUFMtQWRvYmUtMy4wACBFUFNGLTMuMAoAJSUlJUNyZWF0b3I6ICVzIHZlcnNpb24gJXMgKCVzKQoAcHMyOnBzADwhLS0gADxwb2x5bGluZQAgcG9pbnRzPSIAIi8+CgAgZmlsbD0iAHVybCgjbF8lZCkAdXJsKCNyXyVkKQAiIGZpbGwtb3BhY2l0eT0iJWYAIiBzdHJva2U9IgAiIHN0cm9rZS13aWR0aD0iACIgc3Ryb2tlLWRhc2hhcnJheT0iJXMANSwyADEsNQAiIHN0cm9rZS1vcGFjaXR5PSIlZgBndnJlbmRlcl9jb3JlX3N2Zy5jAHN2Z19wcmludF9jb2xvcgA8cGF0aAAgaWQ9IgBfcCIgACBkPSIAJWMAPGRlZnM+CjxyYWRpYWxHcmFkaWVudCBpZD0icl8lZCIgY3g9IjUwJSUiIGN5PSI1MCUlIiByPSI3NSUlIiBmeD0iJWQlJSIgZnk9IiVkJSUiPgoAPHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjoAO3N0b3Atb3BhY2l0eToAMS4AOyIvPgoAPHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjoAOyIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8L2RlZnM+CgA8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJsXyVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgAHgxPSIAIiB5MT0iACIgeDI9IgAiIHkyPSIAIiA+CgA8c3RvcCBvZmZzZXQ9IiUuMDNmIiBzdHlsZT0ic3RvcC1jb2xvcjoAOyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+CgA8cG9seWdvbgA8ZWxsaXBzZQAgY3g9IgAiIGN5PSIAIiByeD0iACIgcnk9IgA8dGV4dAAgdGV4dC1hbmNob3I9InN0YXJ0IgAgdGV4dC1hbmNob3I9ImVuZCIAIHRleHQtYW5jaG9yPSJtaWRkbGUiACB4PSIAIiB5PSIAIGZvbnQtZmFtaWx5PSIlcwAsJXMAIGZvbnQtd2VpZ2h0PSIlcyIAIGZvbnQtc3RyZXRjaD0iJXMiACBmb250LXN0eWxlPSIlcyIAIGZvbnQtZmFtaWx5PSIlcyIAIGZvbnQtd2VpZ2h0PSJib2xkIgAgZm9udC1zdHlsZT0iaXRhbGljIgAgdGV4dC1kZWNvcmF0aW9uPSIAJXNvdmVybGluZQAlc2xpbmUtdGhyb3VnaAAgYmFzZWxpbmUtc2hpZnQ9InN1cGVyIgAgYmFzZWxpbmUtc2hpZnQ9InN1YiIAIGZvbnQtc2l6ZT0iJS4yZiIAIGZpbGw9IiVzIgAgZmlsbD0iIyUwMnglMDJ4JTAyeCIAc3ZnX3RleHRzcGFuAD4APHRleHRQYXRoIHhsaW5rOmhyZWY9IiMlc19wIiBzdGFydE9mZnNldD0iNTAlJSI+ADx0c3BhbiB4PSIwIiBkeT0iACI+ADwvdHNwYW4+PC90ZXh0UGF0aD4APC90ZXh0PgoAPC9nPgoAPGcAIGlkPSJhXwAgeGxpbms6aHJlZj0iACB4bGluazp0aXRsZT0iACB0YXJnZXQ9IgA8dGl0bGU+ADwvdGl0bGU+CgA8ZyBpZD0iAF8lcwAiIGNsYXNzPSIlcwBjbGFzcwAgdHJhbnNmb3JtPSJzY2FsZSgAKSByb3RhdGUoJWQpIHRyYW5zbGF0ZSgAKSI+CgA8L3N2Zz4KADwhLS0AIFBhZ2VzOiAlZCAtLT4KADxzdmcgd2lkdGg9IiVkcHQiIGhlaWdodD0iJWRwdCIKACB2aWV3Qm94PSIlLjJmICUuMmYgJS4yZiAlLjJmIgAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiADw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgoAc3R5bGVzaGVldAA8P3htbC1zdHlsZXNoZWV0IGhyZWY9IgAiIHR5cGU9InRleHQvY3NzIj8+CgA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iCgAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CgA8IS0tIEdlbmVyYXRlZCBieSAAZGFya2JsdWUAZGFya2N5YW4AZGFya2dyYXkAZGFya2dyZXkAZGFya21hZ2VudGEAZGFya3JlZABsaWdodGdyZWVuACMgACBjcmVhdGUgbGluZSAAIC1maWxsIAAgLWRhc2ggNQAgLWRhc2ggMgBndnJlbmRlcl9jb3JlX3RrLmMAdGtnZW5fcHJpbnRfdGFncwBncmFwaCBsYWJlbAAgLXRhZ3MgeyVkJXMlcH0AdGtnZW5fcHJpbnRfY29sb3IAJGMAIC13aWR0aCAAIC1zbW9vdGggYmV6aWVyIAAgY3JlYXRlIHBvbHlnb24gACAtb3V0bGluZSAAIGNyZWF0ZSBvdmFsIAAgY3JlYXRlIHRleHQgACAtdGV4dCB7AH0AIC1mb250IHsAICVkfQAgLWFuY2hvciB3ACAtYW5jaG9yIGUAIwAgVGl0bGU6IAAgUGFnZXM6ICVkCgAjIEdlbmVyYXRlZCBieSAAKQoAdGsAdGs6dGsAICAgICAgPCEtLSAAIC0tPgoARXJyb3IgZHVyaW5nIGNvbnZlcnNpb24gdG8gIlVURi04Ii4gIFF1aXRpbmcuCgAgPHY6c2hhcGUgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyAAIHdpZHRoOiAlZDsgaGVpZ2h0OiAlZCIgZmlsbGVkPSJmYWxzZSI+ADx2OnBhdGggdj0iACBtIAAlLjBmLCUuMGYgACBsIAAgZSAAIi8+ADwvdjpzaGFwZT4KADx2OnN0cm9rZSBjb2xvcj0iACIgd2VpZ2h0PSIlLjBmcHQAIiBkYXNoc3R5bGU9ImRhc2gAIiBkYXNoc3R5bGU9ImRvdAAiIC8+ACMlMDJ4JTAyeCUwMngAZ3ZyZW5kZXJfY29yZV92bWwuYwB2bWxfcHJpbnRfY29sb3IAIHdpZHRoOiAlZDsgaGVpZ2h0OiAlZCIAID4APHY6cGF0aCAgdj0iAC8+PC92OnNoYXBlPgoAbSAAJXMlLjBmLCUuMGYgAGMgACBmaWxsZWQ9InRydWUiIGZpbGxjb2xvcj0iACIgACBmaWxsZWQ9ImZhbHNlIiAAJS4wZiAlLjBmIABsIAB4IGUgIi8+ACAgPHY6b3ZhbCBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ACBsZWZ0OiAlLjJmOyB0b3A6ICUuMmY7ACB3aWR0aDogJS4yZjsgaGVpZ2h0OiAlLjJmIgA8L3Y6b3ZhbD4KADx2OnJlY3Qgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyAAIHN0cm9rZWQ9ImZhbHNlIiBmaWxsZWQ9ImZhbHNlIj4KADx2OnRleHRib3ggaW5zZXQ9IjAsMCwwLDAiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdi10ZXh0LXdyYXBwaW5nOidmYWxzZSc7cGFkZGluZzonMCc7AGZvbnQtZmFtaWx5OiAnJXMnOwBmb250LXdlaWdodDogJXM7AGZvbnQtc3RyZXRjaDogJXM7AGZvbnQtc3R5bGU6ICVzOwAgZm9udC1zaXplOiAlLjJmcHQ7AGNvbG9yOiVzOwBjb2xvcjojJTAyeCUwMnglMDJ4OwB2bWxfdGV4dHNwYW4AIj48Y2VudGVyPgA8L2NlbnRlcj48L3Y6dGV4dGJveD4KADwvdjpyZWN0PgoAPC9hPgoAPGEAIGhyZWY9IiVzIgAgdGl0bGU9IiVzIgAgdGFyZ2V0PSIlcyIAPgoAPC92Omdyb3VwPgoAPC9ESVY+CgA8RElWIGlkPSdfVk1MMl8nIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt2aXNpYmlsaXR5OmhpZGRlbiI+CgA8IS0tIGluc2VydCBhbnkgb3RoZXIgaHRtbCBjb250ZW50IGhlcmUgLS0+CgA8RElWIGlkPSdfbm90Vk1MMV8nIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsiPgoAPCEtLSB0aGlzIHNob3VsZCBvbmx5IGRpc3BsYXkgb24gTk9OLUlFIGJyb3dzZXJzIC0tPgoAPEgyPlNvcnJ5LCB0aGlzIGRpYWdyYW0gd2lsbCBvbmx5IGRpc3BsYXkgY29ycmVjdGx5IG9uIEludGVybmV0IEV4cGxvcmVyIDUgKGFuZCB1cCkgYnJvd3NlcnMuPC9IMj4KADxESVYgaWQ9J19ub3RWTUwyXycgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyI+CgA8IS0tIGluc2VydCBhbnkgb3RoZXIgTk9OLUlFIGh0bWwgY29udGVudCBoZXJlIC0tPgoAPC9CT0RZPgo8L0hUTUw+CgA8SEVBRD4APE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgoAPFRJVExFPgA8L1RJVExFPgA8IS0tIFBhZ2VzOiAlZCAtLT4KACAgIDxTQ1JJUFQgTEFOR1VBR0U9J0phdmFzY3JpcHQnPgoAICAgZnVuY3Rpb24gYnJvd3NlcmNoZWNrKCkKACAgIHsKACAgICAgIHZhciB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50CgAgICAgICB2YXIgbXNpZSA9IHVhLmluZGV4T2YgKCAnTVNJRSAnICkKACAgICAgIHZhciBpZXZlcnM7CgAgICAgICB2YXIgaXRlbTsKACAgICAgIHZhciBWTUx5ZXM9bmV3IEFycmF5KCdfVk1MMV8nLCdfVk1MMl8nKTsKACAgICAgIHZhciBWTUxubz1uZXcgQXJyYXkoJ19ub3RWTUwxXycsJ19ub3RWTUwyXycpOwoAICAgICAgaWYgKCBtc2llID4gMCApeyAgICAgIC8vIElmIEludGVybmV0IEV4cGxvcmVyLCByZXR1cm4gdmVyc2lvbiBudW1iZXIKACAgICAgICAgIGlldmVycz0gcGFyc2VJbnQgKHVhLnN1YnN0cmluZyAobXNpZSs1LCB1YS5pbmRleE9mICgnLicsIG1zaWUgKSkpCgAgICAgICB9CgAgICAgICBpZiAoaWV2ZXJzPj01KXsKACAgICAgICBmb3IgKHggaW4gVk1MeWVzKXsKACAgICAgICAgIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWTUx5ZXNbeF0pOwoAICAgICAgICAgaWYgKGl0ZW0pIHsKACAgICAgICAgICAgaXRlbS5zdHlsZS52aXNpYmlsaXR5PSd2aXNpYmxlJzsKACAgICAgICAgIH0KACAgICAgICB9CgAgICAgICAgZm9yICh4IGluIFZNTG5vKXsKACAgICAgICAgIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWTUxub1t4XSk7CgAgICAgICAgICAgIGl0ZW0uc3R5bGUudmlzaWJpbGl0eT0naGlkZGVuJzsKACAgICAgfWVsc2V7CgAgICAgIH0KACAgIH0KACAgIDwvU0NSSVBUPgoAPC9IRUFEPgA8Qk9EWSBvbmxvYWQ9J2Jyb3dzZXJjaGVjaygpOyc+CgA8RElWIGlkPSdfVk1MMV8nIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmU7IHZpc2liaWxpdHk6aGlkZGVuACB3aWR0aDogJWRwdDsgaGVpZ2h0OiAlZHB0Ij4KADxTVFlMRT4KAHZcOiogeyBiZWhhdmlvcjogdXJsKCNkZWZhdWx0I1ZNTCk7ZGlzcGxheTppbmxpbmUtYmxvY2t9CgA8L1NUWUxFPgoAPHhtbDpuYW1lc3BhY2UgbnM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIiBwcmVmaXg9InYiIC8+CgAgPHY6Z3JvdXAgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyAAIHdpZHRoOiAlZHB0OyBoZWlnaHQ6ICVkcHQiACBjb29yZG9yaWdpbj0iMCwwIiBjb29yZHNpemU9IiVkLCVkIiA+ADxIVE1MPgoACjwhLS0gR2VuZXJhdGVkIGJ5IAAgdmVyc2lvbiAAICgAKQotLT4KAGFxdWEAZnVjaHNpYQBsaW1lAG9saXZlAHRlYWwAdm1sAHZtbDp2bWwALy8qKiogY29tbWVudDogJXMKAC8vKioqIHBvbHlsaW5lCgBzY2FsZSAgICA8JTkuM2YsICU5LjNmLCAlOS4zZj4KAHJvdGF0ZSAgIDwlOS4zZiwgJTkuM2YsICU5LjNmPgoAdHJhbnNsYXRlPCU5LjNmLCAlOS4zZiwgJTkuM2Y+CgBzcGhlcmVfc3dlZXAgewogICAgJXMKICAgICVkLAoAbGluZWFyX3NwbGluZQA8JTkuM2YsICU5LjNmLCAlOS4zZj4sICUuM2YKACVzICAgICVzACAgICB0b2xlcmFuY2UgMC4wMQogICAgJXMgICAgJXMgICAgJXMgICAgJXN9CgAlcyVzACVzIHRyYW5zbWl0ICUuM2YAUmVkAEdyZWVuAEJsdWUAcmdiPCU5LjNmLCAlOS4zZiwgJTkuM2Y+IHRyYW5zbWl0ICUuM2YAb29wcywgaW50ZXJuYWwgZXJyb3I6IHVuaGFuZGxlZCBjb2xvciB0eXBlPSVkICVzCgBndnJlbmRlcl9jb3JlX3Bvdi5jAHBvdl9jb2xvcl9hc19zdHIAcGlnbWVudCB7IGNvbG9yICVzIH0KAHBvdiByZW5kZXJlcjplbCAtICVzCgAvLyoqKiBiZXppZXIKAGJfc3BsaW5lACAgICAgICAgdG9sZXJhbmNlIDAuMDEKICAgICVzICAgICVzICAgICVzICAgICVzfQoALy8qKiogcG9seWdvbgoAICAgIHRvbGVyYW5jZSAwLjEKICAgICVzICAgICVzICAgICVzICAgICVzfQoAcG9seWdvbiB7ICVkLAoAPCU5LjNmLCAlOS4zZiwgJTkuM2Y+ACVzCiAgICAlcwAKICAgICVzICAgICVzICAgICVzICAgICVzfQoALy8qKiogZWxsaXBzZQoAdG9ydXMgeyAlLjNmLCAlLjNmCiAgICAlcyAgICAlcyAgICAlcyAgICAlc30KAHNwaGVyZSB7PCU5LjNmLCAlOS4zZiwgJTkuM2Y+LCAxLjAKICAgICVzICAgICVzICAgICVzICAgICVzfQoALy8qKiogdGV4dHNwYW46ICVzLCBmb250c2l6ZSA9ICUuM2YsIGZvbnRuYW1lID0gJXMKAHNjYWxlICUuM2YKAHRleHQgewogICAgdHRmICIlcyIsCiAgICAiJXMiLCAlLjNmLCAlLjNmCiAgICAlcyAgICAlcyAgICAlcyAgICAlcyAgICAlc30KACAgICBub19zaGFkb3cKAC8vKioqIGVuZF9lZGdlCgAvLyoqKiBiZWdpbl9lZGdlCgAvLyoqKiBlbmRfbm9kZQoALy8qKiogYmVnaW5fbm9kZTogJXMKAC8vKioqIGVuZF9jbHVzdGVyCgAvLyoqKiBiZWdpbl9jbHVzdGVyCgAvLyoqKiBlbmRfcGFnZQoALy8qKiogYmVnaW5fcGFnZQoALy8qKiogZW5kX2xheWVyCgAvLyoqKiBiZWdpbl9sYXllcjogJXMsICVkLyVkCgAvLyoqKiBlbmRfZ3JhcGgKAC8vKioqIGJlZ2luX2dyYXBoICVzCgBjYW1lcmEgeyBsb2NhdGlvbiA8JS4zZiAsICUuM2YgLCAlLjNmPgogICAgICAgICBsb29rX2F0ICA8JS4zZiAsICUuM2YgLCAlLjNmPgogICAgICAgICByaWdodCB4ICogaW1hZ2Vfd2lkdGggLyBpbWFnZV9oZWlnaHQKICAgICAgICAgYW5nbGUgJS4zZgp9CgAvL3NreQpwbGFuZSB7IDwwLCAxLCAwPiwgMSBob2xsb3cKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnQgeyBib3pvIHR1cmJ1bGVuY2UgMC45NQogICAgICAgICAgICBjb2xvcl9tYXAgewogICAgICAgICAgICAgICAgWzAuMDAgcmdiIDwwLjA1LCAwLjIwLCAwLjUwPl0KICAgICAgICAgICAgICAgIFswLjUwIHJnYiA8MC4wNSwgMC4yMCwgMC41MD5dCiAgICAgICAgICAgICAgICBbMC43NSByZ2IgPDEuMDAsIDEuMDAsIDEuMDA+XQogICAgICAgICAgICAgICAgWzAuNzUgcmdiIDwwLjI1LCAwLjI1LCAwLjI1Pl0KICAgICAgICAgICAgICAgIFsxLjAwIHJnYiA8MC41MCwgMC41MCwgMC41MD5dCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2NhbGUgPDEuMDAsIDEuMDAsIDEuNTA+ICogMi41MAogICAgICAgICAgICB0cmFuc2xhdGUgPDAuMDAsIDAuMDAsIDAuMDA+CiAgICAgICAgfQogICAgICAgIGZpbmlzaCB7IGFtYmllbnQgMSBkaWZmdXNlIDAgfQogICAgfQogICAgc2NhbGUgMTAwMDAKfQovL21pc3QKZm9nIHsgZm9nX3R5cGUgMgogICAgZGlzdGFuY2UgNTAKICAgIGNvbG9yIHJnYiA8MS4wMCwgMS4wMCwgMS4wMD4gKiAwLjc1CiAgICBmb2dfb2Zmc2V0IDAuMTAKICAgIGZvZ19hbHQgMS41MAogICAgdHVyYnVsZW5jZSAxLjc1Cn0KLy9nbmQKcGxhbmUgeyA8MC4wMCwgMS4wMCwgMC4wMD4sIDAKICAgIHRleHR1cmUgewogICAgICAgIHBpZ21lbnR7IGNvbG9yIHJnYiA8MC4yNSwgMC40NSwgMC4wMD4gfQogICAgICAgIG5vcm1hbCB7IGJ1bXBzIDAuNzUgc2NhbGUgMC4wMSB9CiAgICAgICAgZmluaXNoIHsgcGhvbmcgMC4xMCB9CiAgICB9Cn0KAGxpZ2h0X3NvdXJjZSB7IDwxNTAwLDMwMDAsLTI1MDA+IGNvbG9yIFdoaXRlIH0KACN2ZXJzaW9uIDMuNjsKAGdsb2JhbF9zZXR0aW5ncyB7IGFzc3VtZWRfZ2FtbWEgMS4wIH0KACNkZWZhdWx0IHsgZmluaXNoIHsgYW1iaWVudCAwLjEgZGlmZnVzZSAwLjkgfSB9CgAjaW5jbHVkZSAiY29sb3JzLmluYyIKI2luY2x1ZGUgInRleHR1cmVzLmluYyIKI2luY2x1ZGUgInNoYXBlcy5pbmMiCgAjZGVjbGFyZSAlcyA9ICVzOwoAQmxhY2sAV2hpdGUAYmFrZXJzY2hvYwBicmFzcwBicmlnaHRnb2xkAGJyb256ZQBicm9uemUyAGNsZWFyAGNvb2xjb3BwZXIAY29wcGVyAGRhcmticm93bgBkYXJrcHVycGxlAGRhcmt0YW4AZGFya3dvb2QAZGtncmVlbmNvcHBlcgBkdXN0eXJvc2UAZmVsZHNwYXIAZmxlc2gAZ3JheTA1AGdyZWVuY29wcGVyAGh1bnRlcnNncmVlbgBsaWdodF9wdXJwbGUAbGlnaHR3b29kAG1hbmRhcmlub3JhbmdlAG1lZGl1bWZvcmVzdGdyZWVuAG1lZGl1bWdvbGRlbnJvZABtZWRpdW13b29kAG1lZF9wdXJwbGUAbWljYQBuZW9uYmx1ZQBuZW9ucGluawBuZXdtaWRuaWdodGJsdWUAbmV3dGFuAG9sZGdvbGQAcXVhcnR6AHJpY2hibHVlAHNjYXJsZXQAc2VtaVN3ZWV0Q2hvYwBzaWx2ZXIAc3BpY3lwaW5rAHN1bW1lcnNreQB2ZXJ5ZGFya2Jyb3duAHZlcnlfbGlnaHRfcHVycGxlAHBvdgBwb3Y6cG92ACVzICVzCgAuXCIgACAlZCAlZAAgJXMKACAlZABmaWxsIABlbGxpcHNlIGF0dHJzJWQgJXN3aWQgJS41ZiBodCAlLjVmIGF0ICglLjVmLCUuNWYpOwoALmZ0ICVzCgAucHMgJWQqXG4oU0Z1LyUuMGZ1CgAiJXMiIGF0ICglLjVmLCUuNWYpOwoAJTAzbwAlcyVzIGlzIG5vdCBhIHRyb2ZmIGZvbnQKAGRvdCBwaWMgcGx1Z2luOiAAUgBdCi5QRQoALlBTICUuNWYgJS41ZgoAJXMgdG8gY2hhbmdlIGRyYXdpbmcgc2l6ZSwgbXVsdGlwbHkgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb24gdGhlIC5QUyBsaW5lIGFib3ZlIGFuZCB0aGUgbnVtYmVyIG9uIHRoZSB0d28gbGluZXMgYmVsb3cgKHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlcikgYnkgYSBzY2FsZSBmYWN0b3IKAC5uciBTRiAlLjBmCnNjYWxldGhpY2tuZXNzID0gJS4wZgoAJXMgZG9uJ3QgY2hhbmdlIGFueXRoaW5nIGJlbG93IHRoaXMgbGluZSBpbiB0aGlzIGRyYXdpbmcKACVzIG5vbi1mYXRhbCBydW4tdGltZSBwaWMgdmVyc2lvbiBkZXRlcm1pbmF0aW9uLCB2ZXJzaW9uIDIKAGJveHJhZD0yLjAgJXMgd2lsbCBiZSByZXNldCB0byAwLjAgYnkgZ3BpYyBvbmx5CgBzY2FsZT0xLjAgJXMgcmVxdWlyZWQgZm9yIGNvbXBhcmlzb25zCgAlcyBib3hyYWQgaXMgbm93IDAuMCBpbiBncGljLCBlbHNlIGl0IHJlbWFpbnMgMi4wCgAlcyBkYXNod2lkIGlzIDAuMSBpbiAxMHRoIEVkaXRpb24sIDAuMDUgaW4gRFdCIDIgYW5kIGluIGdwaWMKACVzIGZpbGx2YWwgaXMgMC4zIGluIDEwdGggRWRpdGlvbiAoZmlsbCAwIG1lYW5zIGJsYWNrKSwgMC41IGluIGdwaWMgKGZpbGwgMCBtZWFucyB3aGl0ZSksIHVuZGVmaW5lZCBpbiBEV0IgMgoAJXMgZmlsbCBoYXMgbm8gbWVhbmluZyBpbiBEV0IgMiwgZ3BpYyBjYW4gdXNlIGZpbGwgb3IgZmlsbGVkLCAxMHRoIEVkaXRpb24gdXNlcyBmaWxsIG9ubHkKACVzIERXQiAyIGRvZXNuJ3QgdXNlIGZpbGwgYW5kIGRvZXNuJ3QgZGVmaW5lIGZpbGx2YWwKACVzIHJlc2V0IHdvcmtzIGluIGdwaWMgYW5kIDEwdGggZWRpdGlvbiwgYnV0IGlzbid0IGRlZmluZWQgaW4gRFdCIDIKACVzIERXQiAyIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMKAGlmIGJveHJhZCA+IDEuMCAmJiBkYXNod2lkIDwgMC4wNzUgdGhlbiBYCglmaWxsdmFsID0gMTsKCWRlZmluZSBmaWxsIFkgWTsKCWRlZmluZSBzb2xpZCBZIFk7CglkZWZpbmUgcmVzZXQgWSBzY2FsZT0xLjAgWTsKWAoAcmVzZXQgJXMgc2V0IHRvIGtub3duIHN0YXRlCgAlcyBHTlUgcGljIHZzLiAxMHRoIEVkaXRpb24gZFwoZSd0ZW50ZQoAaWYgZmlsbHZhbCA+IDAuNCB0aGVuIFgKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IDEgLSBZOwoJZGVmaW5lIGJvbGQgWSB0aGlja25lc3MgMiBZOwoACSVzIGlmIHlvdSB1c2UgZ3BpYyBhbmQgaXQgYmFyZnMgb24gZW5jb3VudGVyaW5nICJzb2xpZCIsCgAJJXMJaW5zdGFsbCBhIG1vcmUgcmVjZW50IHZlcnNpb24gb2YgZ3BpYyBvciBzd2l0Y2ggdG8gRFdCIG9yIDEwdGggRWRpdGlvbiBwaWM7CgAJJXMJc29ycnksIHRoZSBncm9mZiBmb2xrcyBjaGFuZ2VkIGdwaWM7IHNlbmQgYW55IGNvbXBsYWludCB0byB0aGVtOwoAWCBlbHNlIFoKCWRlZmluZSBzZXRmaWxsdmFsIFkgZmlsbHZhbCA9IFk7CglkZWZpbmUgYm9sZCBZIFk7CglkZWZpbmUgZmlsbGVkIFkgZmlsbCBZOwpaCgAlcyBhcnJvd2hlYWQgaGFzIG5vIG1lYW5pbmcgaW4gRFdCIDIsIGFycm93aGVhZCA9IDcgbWFrZXMgZmlsbGVkIGFycm93aGVhZHMgaW4gZ3BpYyBhbmQgaW4gMTB0aCBFZGl0aW9uCgAlcyBhcnJvd2hlYWQgaXMgdW5kZWZpbmVkIGluIERXQiAyLCBpbml0aWFsbHkgMSBpbiBncGljLCAyIGluIDEwdGggRWRpdGlvbgoAYXJyb3doZWFkID0gNyAlcyBub3QgdXNlZCBieSBncmFwaHZpegoAJXMgR05VIHBpYyBzdXBwb3J0cyBhIGJveHJhZCB2YXJpYWJsZSB0byBkcmF3IGJveGVzIHdpdGggcm91bmRlZCBjb3JuZXJzOyBEV0IgYW5kIDEwdGggRWQuIGRvIG5vdAoAYm94cmFkID0gMCAlcyBubyByb3VuZGVkIGNvcm5lcnMgaW4gZ3JhcGh2aXoKACVzIEdOVSBwaWMgc3VwcG9ydHMgYSBsaW5ldGhpY2sgdmFyaWFibGUgdG8gc2V0IGxpbmUgdGhpY2tuZXNzOyBEV0IgYW5kIDEwdGggRWQuIGRvIG5vdAoAbGluZXRoaWNrID0gMDsgb2xkbGluZXRoaWNrID0gbGluZXRoaWNrCgAlcyAuUFMgdy9vIGFyZ3MgY2F1c2VzIEdOVSBwaWMgdG8gc2NhbGUgZHJhd2luZyB0byBmaXQgOC41eDExIHBhcGVyOyBEV0IgZG9lcyBub3QKACVzIG1heHBzaHQgYW5kIG1heHBzd2lkIGhhdmUgbm8gbWVhbmluZyBpbiBEV0IgMi4wLCBzZXQgcGFnZSBib3VuZGFyaWVzIGluIGdwaWMgYW5kIGluIDEwdGggRWRpdGlvbgoAJXMgbWF4cHNodCBhbmQgbWF4cHN3aWQgYXJlIHByZWRlZmluZWQgdG8gMTEuMCBhbmQgOC41IGluIGdwaWMKAG1heHBzaHQgPSAlZgptYXhwc3dpZCA9ICVmCgBEb3Q6IFsKAGRlZmluZSBhdHRyczAgJSUgJSU7IGRlZmluZSB1bmZpbGxlZCAlJSAlJTsgZGVmaW5lIHJvdW5kZWQgJSUgJSU7IGRlZmluZSBkaWFnb25hbHMgJSUgJSUKACVzJXMgdW5zdXBwb3J0ZWQKAHJvdGF0aW9uACVzIHJlc3RvcmUgcG9pbnQgc2l6ZSBhbmQgZm9udAoucHMgXG4oLlMKLmZ0IFxuKERGCgAlcyBDcmVhdG9yOiAlcyB2ZXJzaW9uICVzICglcykKACVzIFRpdGxlOiAlcwoAJXMgc2F2ZSBwb2ludCBzaXplIGFuZCBmb250Ci5uciAuUyBcbigucwoubnIgREYgXG4oLmYKAHBpYwBwaWM6cGljAHBuZzpzdmcAZ2lmOnN2ZwBqcGVnOnN2ZwBqcGU6c3ZnAGpwZzpzdmcAcG5nOmZpZwBnaWY6ZmlnAGpwZWc6ZmlnAGpwZTpmaWcAanBnOmZpZwBwbmc6dnJtbABnaWY6dnJtbABqcGVnOnZybWwAanBlOnZybWwAanBnOnZybWwAZXBzOnBzAHBzOnBzAChsaWIpOnBzAHBuZzptYXAAZ2lmOm1hcABqcGVnOm1hcABqcGU6bWFwAGpwZzptYXAAcHM6bWFwAGVwczptYXAAc3ZnOm1hcABwbmc6ZG90AGdpZjpkb3QAanBlZzpkb3QAanBlOmRvdABqcGc6ZG90AHBzOmRvdABlcHM6ZG90AHN2Zzpkb3QAcG5nOnhkb3QAZ2lmOnhkb3QAanBlZzp4ZG90AGpwZTp4ZG90AGpwZzp4ZG90AHBzOnhkb3QAZXBzOnhkb3QAc3ZnOnhkb3QAc3ZnOnN2ZwBwbmc6dm1sAGdpZjp2bWwAanBlZzp2bWwAanBlOnZtbABqcGc6dm1sAGdpZjp0awBpbWFnZSBjcmVhdGUgcGhvdG8gInBob3RvXyVzIiAtZmlsZSAiJXMiCgAkYyBjcmVhdGUgaW1hZ2UgJS4yZiAlLjJmIC1pbWFnZSAicGhvdG9fJXMiCgA8djppbWFnZSBzcmM9IiVzIiBzdHlsZT0iIHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDolLjJmOyBoZWlnaHQ6JS4yZjsgbGVmdDolLjJmIDsgdG9wOiUuMmYiACAvPgoAZ3Zsb2FkaW1hZ2VfY29yZS5jAGNvcmVfbG9hZGltYWdlX3BzbGliAFsgACVnICVnIABdICAlZCB0cnVlICVzCgBdICAlZCBmYWxzZSAlcwoAY29yZV9sb2FkaW1hZ2VfcHMAZ3NhdmUgJWcgJWcgdHJhbnNsYXRlIG5ld3BhdGgKAHVzZXJfc2hhcGVfJWQKAGdyZXN0b3JlCgBjb3JlX2xvYWRpbWFnZV92cm1sAFNoYXBlIHsKACAgYXBwZWFyYW5jZSBBcHBlYXJhbmNlIHsKACAgICBtYXRlcmlhbCBNYXRlcmlhbCB7CgAgICAgICBhbWJpZW50SW50ZW5zaXR5IDAuMzMKACAgICAgICAgZGlmZnVzZUNvbG9yIDEgMSAxCgAgICAgfQoAICAgIHRleHR1cmUgSW1hZ2VUZXh0dXJlIHsgdXJsICIlcyIgfQoAICB9CgBjb3JlX2xvYWRpbWFnZV9maWcAJWQgJWQgJWQgJWQgJWQgJWQgJWQgJWQgJWQgJS4xZiAlZCAlZCAlZCAlZCAlZCAlZAogJWQgJXMKACAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAoAY29yZV9sb2FkaW1hZ2Vfc3ZnADxpbWFnZSB4bGluazpocmVmPSIAIiB3aWR0aD0iJWdweCIgaGVpZ2h0PSIlZ3B4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB4PSIlZyIgeT0iJWciACB0cmFuc2Zvcm09InJvdGF0ZSglZCAlZyAlZykiACIgd2lkdGg9IiVncHgiIGhlaWdodD0iJWdweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgeD0iJWciIHk9IiVnIgAvPgoAZG90X2xheW91dABwaGFzZQBkb3QgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYXNwZWN0IGF0dHJpYnV0ZSBmb3IgZGlzY29ubmVjdGVkIGdyYXBocyBvciBncmFwaHMgd2l0aCBjbHVzdGVycwoAY29tcG91bmQAdiA9PSBuAGRvdGluaXQuYwByZW1vdmVfZnJvbV9yYW5rAG9yZGVyAGVkZ2UgbGFiZWxzIHdpdGggc3BsaW5lcz1jdXJ2ZWQgbm90IHN1cHBvcnRlZCBpbiBkb3QgLSB1c2UgeGxhYmVscwoARURfbGFiZWwoZmUpAGRvdHNwbGluZXMuYwBfZG90X3NwbGluZXMAZmxhdCBlZGdlIGJldHdlZW4gYWRqYWNlbnQgbm9kZXMgb25lIG9mIHdoaWNoIGhhcyBhIHJlY29yZCBzaGFwZSAtIHJlcGxhY2UgcmVjb3JkcyB3aXRoIEhUTUwtbGlrZSBsYWJlbHMKACAgRWRnZSAlcyAlcyAlcwoAeHh4ADEwMDAwAHslc30AYXV4ZwBsYWJlbF9mbG9hdABmaXhlZAAobCA9IEVEX2xhYmVsKGZlKSkAc2V0RWRnZUxhYmVsUG9zAGUgIT0gTlVMTABmYXN0Z3IuYwBkZWxldGVfZmFzdF9lZGdlAG4gIT0gTkRfbmV4dChuKQBmYXN0X25vZGUAdSAhPSB2AGZhc3Rfbm9kZWFwcABORF9uZXh0KHYpID09IE5VTEwAZmluZF9mYXN0X25vZGUoZywgbikAZGVsZXRlX2Zhc3Rfbm9kZQBkZWxldGVfZmxhdF9lZGdlAG1lcmdlX29uZXdheSBnbGl0Y2gKAG1lcmdlX29uZXdheQBzYWZlX2RlbGV0ZV9mYXN0X2VkZ2UAbGcAaW5mbwBjb21wAGNudCA9PSBzegBtaW5jcm9zcy5jAGZpeExhYmVsT3JkZXIAcmVtaW5jcm9zcwBtaW5jcm9zcyAlczogJWQgY3Jvc3NpbmdzLCAlLjJmIHNlY3MuCgB2AG5laWdoYm9yAChydiA9PSAwKSB8fCAoTkRfb3JkZXIocnYpLU5EX29yZGVyKHYpKSpkaXIgPiAwAGNvbnN0cmFpbmluZ19mbGF0X2VkZ2UoZyx2LGUpID09IEZBTFNFAGZsYXRfcmVvcmRlcgBORF9yYW5rKHYpID09IHIAcG9zdG9yZGVyAGZsYXRpbmRleChhZ2hlYWQoZSkpIDwgTS0+bnJvd3MAZmxhdF9zZWFyY2gAZmxhdGluZGV4KGFndGFpbChlKSkgPCBNLT5uY29scwBvdXQAb3JkZXJpbmcgJyVzJyBub3QgcmVjb2duaXplZC4KAG9yZGVyaW5nICclcycgbm90IHJlY29nbml6ZWQgZm9yIG5vZGUgJyVzJy4KAG1lcmdlMjogZ3JhcGggJXMsIHJhbmsgJWQgaGFzIG9ubHkgJWQgPCAlZCBub2RlcwoAbWluY3Jvc3M6IHBhc3MgJWQgaXRlciAlZCB0cnlpbmcgJWQgY3VyX2Nyb3NzICVkIGJlc3RfY3Jvc3MgJWQKAE5EX29yZGVyKHYpIDwgTkRfb3JkZXIodykAYmFsYW5jZQB0cmFuc3Bvc2Vfc3RlcABzdXJwcmlzZQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiAlcyAlcyByYW5rICVkIGkgPSAlZCBhbiA9IDAKAEdEX3JhbmsoZylbcl0ubiA8PSBHRF9yYW5rKGcpW3JdLmFuAGluc3RhbGxfaW5fcmFuawBpbnN0YWxsX2luX3JhbmssIGxpbmUgJWQ6IE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhSb290KVslZF0uYW4gWyVkXQoAaW5zdGFsbF9pbl9yYW5rLCBsaW5lICVkOiByYW5rICVkIG5vdCBpbiByYW5rIHJhbmdlIFslZCwlZF0KAGluc3RhbGxfaW5fcmFuaywgbGluZSAlZDogR0RfcmFuayhnKVslZF0udiArIE5EX29yZGVyKCVzKSBbJWRdID4gR0RfcmFuayhnKVslZF0uYXYgKyBHRF9yYW5rKFJvb3QpWyVkXS5hbiBbJWRdCgBfbmV3X3JhbmsAbWNsaW1pdAByYW5rKGcsIDIsIG5zaXRlcjIoZykpID09IDAAcG9zaXRpb24uYwBkb3RfcG9zaXRpb24AQVI9JTAuNGxmCSBBcmVhPSAlMC40bGYJAER1bW15PSVkCgBHb2luZyB0byBhcHBseSBhbm90aGVyIGV4cGFuc2lvbi4KAG5leHQjaXRlcj0lZAoAaHAAY29ubmVjdEdyYXBoAEVkZ2UgbGVuZ3RoICVmIGxhcmdlciB0aGFuIG1heGltdW0gJXUgYWxsb3dlZC4KQ2hlY2sgZm9yIG92ZXJ3aWRlIG5vZGUocykuCgBuc2xpbWl0AGNvbnRhaW5fbm9kZXMgY2x1c3QgJXMgcmFuayAlZCBtaXNzaW5nIG5vZGUKAG5zbGltaXQxAG5ld3JhbmsATWF4cmFuayA9ICVkLCBtaW5yYW5rID0gJWQKAGxlYWRlciAhPSBOVUxMAHJhbmsuYwBjbHVzdGVyX2xlYWRlcgAoTkRfVUZfc2l6ZShuKSA8PSAxKSB8fCAobiA9PSBsZWFkZXIpAGFnaGVhZChlKSA9PSBVRl9maW5kKGFnaGVhZChlKSkAbWlubWF4X2VkZ2VzAGFndGFpbChlKSA9PSBVRl9maW5kKGFndGFpbChlKSkAcmFuawBzYW1lAG1pbgBzb3VyY2UAbWF4AHNpbmsAbGV2ZWwgYXNzaWdubWVudCBjb25zdHJhaW50cwBsZXZlbCBncmFwaCByZWMAf3Jvb3QAf3RvcAB/Ym90AGNvbXBhY3QAX3dlYWtfJWQAcmFua2luZzogZmFpbHVyZSB0byBjcmVhdGUgc3Ryb25nIGNvbnN0cmFpbnQgZWRnZSBiZXR3ZWVuIG5vZGVzICVzIGFuZCAlcwoAJXMgaGFzIHVucmVjb2duaXplZCByYW5rPSVzAGxldmVsIGVkZ2UgcmVjAGxldmVsIG5vZGUgcmVjAHNhbWVoZWFkAHNhbWV0YWlsAHRvbyBtYW55ICg+ICVkKSBzYW1le2hlYWQsdGFpbH0gZ3JvdXBzIGZvciBub2RlICVzCgBjb21iaUFSID0gJWxmCgAlbGYsJWQAdGhlIGFzcGVjdCBhdHRyaWJ1dGUgaGFzIGJlZW4gZGlzYWJsZWQgZHVlIHRvIGltcGxlbWVudGF0aW9uIGZsYXdzIC0gYXR0cmlidXRlIGlnbm9yZWQuCgBFRF90b192aXJ0KGUpID09IE5VTEwAY2xhc3MyLmMAbWVyZ2VfY2hhaW4ARURfdG9fdmlydChvcmlnKSA9PSBOVUxMAG1ha2VfY2hhaW4ARURfdG9fdmlydChvcmlnKSAhPSBOVUxMAE5EX3JhbmsoZnJvbSkgPCBORF9yYW5rKHRvKQBjbHVzdGVyLmMAbWFwX3BhdGgAJXMgd2FzIGFscmVhZHkgaW4gYSByYW5rc2V0LCBkZWxldGVkIGZyb20gY2x1c3RlciAlcwoAbGhlYWQAbHRhaWwAJXMgLT4gJXM6IHNwbGluZSBzaXplID4gMSBub3Qgc3VwcG9ydGVkCgAlcyAtPiAlczogaGVhZCBub3QgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAJXMgLT4gJXM6IHRhaWwgaXMgaW5zaWRlIGhlYWQgY2x1c3RlciAlcwoAYmV6LT5zZmxhZwBjb21wb3VuZC5jAG1ha2VDb21wb3VuZEVkZ2UAYmV6LT5lZmxhZwAlcyAtPiAlczogdGFpbCBub3QgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAJXMgLT4gJXM6IGhlYWQgaXMgaW5zaWRlIHRhaWwgY2x1c3RlciAlcwoAc2VnbWVudCBbJXMsJXNdIGRvZXMgbm90IGludGVyc2VjdCBib3ggbGw9JXMsdXI9JXMKAGJveEludGVyc2VjdGYAKCUuNWcsJS41ZykAY2x1c3RlciBuYW1lZCAlcyBub3QgZm91bmQKAGNvbmNlbnRyYXRlPXRydWUgbWF5IG5vdCB3b3JrIGNvcnJlY3RseS4KAHJlYnVpbHRkX3ZsaXN0czogcmFuayBsZWFkICVzIG5vdCBpbiBvcmRlciAlZCBvZiByYW5rICVkCgBkZWdlbmVyYXRlIGNvbmNlbnRyYXRlZCByYW5rICVzLCVkCgBORF9pbihyaWdodCkuc2l6ZSArIE5EX291dChyaWdodCkuc2l6ZSA9PSAwAGNvbmMuYwBtZXJnZXZpcnR1YWwAZG90OiBPdXQgb2YgbWVtb3J5CgBORF9vdXQodikuc2l6ZSA9PSAyAGZsYXQuYwBzZXRib3VuZHMAR0RfbWlucmFuayhnKSA9PSAwAGFib21pbmF0aW9uAEVycm9yAFdhcm5pbmcAJXM6IAB1c2Vyb3V0OiBjb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5CgBfQUdfc3RyZGF0YQBfQUdfZGF0YWRpY3QAYWdkaWN0b2Y6IHVua25vd24ga2luZCAlZAoAJWMlbGQAbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQBhZ2RlbGV0ZSBvbiB3cm9uZyBncmFwaABfQUdfcGVuZGluZwBhZ3JlY29yZF9jYWxsYmFjayBvZiBhIGJhZCBvYmplY3QAcGVuZCBkaWN0b2YgYSBiYWQgb2JqZWN0AG1vdmUgdG8gZnJvbnQgbG9jayBpbmNvbnNpc3RlbmN5AFxcAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kACVzCgBmYXRhbCBmbGV4IHNjYW5uZXIgaW50ZXJuYWwgZXJyb3ItLWVuZCBvZiBidWZmZXIgbWlzc2VkAGZhdGFsIGVycm9yIC0gc2Nhbm5lciBpbnB1dCBidWZmZXIgb3ZlcmZsb3cAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIGFhZ19nZXRfbmV4dF9idWZmZXIoKQBpbnB1dABzeW50YXggYW1iaWd1aXR5IC0gYmFkbHkgZGVsaW1pdGVkIG51bWJlciAnACcgaW4gbGluZSAlZCBvZiAAIHNwbGl0cyBpbnRvIHR3byB0b2tlbnMKACVzAGxpbmUAJWQgJTFbIl0lbgBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4gYWFnX2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4gYWFnZW5zdXJlX2J1ZmZlcl9zdGFjaygpADogACBpbiBsaW5lICVkACBuZWFyICcAIHNjYW5uaW5nIGEgcXVvdGVkIHN0cmluZyAobWlzc2luZyBlbmRxdW90ZT8gbG9uZ2VyIHRoYW4gJWQ/KQAKU3RyaW5nIHN0YXJ0aW5nOiIAIHNjYW5uaW5nIGEgSFRNTCBzdHJpbmcgKG1pc3NpbmcgJz4nPyBiYWQgbmVzdGluZz8gbG9uZ2VyIHRoYW4gJWQ/KQAKU3RyaW5nIHN0YXJ0aW5nOjwAIHNjYW5uaW5nIGEgLyouLi4qLyBjb21tZW50IChtaXNzaW5nICcqLz8gbG9uZ2VyIHRoYW4gJWQ/KQBmbGV4IHNjYW5uZXIgcHVzaC1iYWNrIG92ZXJmbG93ACIiAHN0cmljdABsaW5lbGVuZ3RoADsKACBba2V5PQBdACBbACwKAD0AXyVsZF9TVVNQRUNUAGRpAHN0cmljdCAAewoAXTsKABLu7hQJA+7+7u7uAe7u7gHu7gr+7hMZFe4TAe7u7u4LEe7u7u7u7u7u7gHu7hYJAQEdDxfu7hoXG+7uHO7u7u4BGfvu7u4B7hDu7h7u7u7uAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcRAgICAgICAgICAgICAhIQAhMCAhYCAgICAgICAgICAgICAgICAgICAgICAgICAhQCFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICDgIPAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0LAwQFDwcDDA0GDA0ODA0aFRYAAQADBw4GDwgMDRITKhARCRAvMBEyFxMNFBIuEhRBEzITLEAqQhksQkYiDA0OIw8JEBEKEBHJEBEtRUb8AQb2Dwf2JAIQES8wNk1OKCY7PCo2MTk9Py86QNhEMD4lN0M1Sys4SUwAAwkAAAABDgILDAgjJCU2Oz0ADRASGxYcEicyIhczHjwGBzUFDxEUGCkAEykAAAAAADcVKB0eACEmNB8wPhksABsAIBoqACs6Li8AMTg5LQACAgEAAwMBAAEAAQEBAAIBAQACAgMBAQAABQABAwEDBQMBAQEBAgABAAQCAAIBAQMCAQADAgEAAQEAAQEBAwAYGRkZGhscHB0dHh4fHyAgISEiIiMkJCYnJSUoKCkpKSoqKysrLCwtLS4vLzAxMTIzNDY1Nzc3ODg4OTk6Ou7u/+7u7u7u7h8g7gDv7u7uDO7u7ggN7u7u+O7u7u7u7vXu/wMIBCEFCxITJxQVFikyQRcYGRosMzRCR0gbShwdLh5PHyBrZXkAYXR0cmlidXRlIG1hY3JvcyBub3QgaW1wbGVtZW50ZWQAJXM6JXMAQ291bGQgbm90IG9wZW4gIiVzIiBmb3Igd3JpdGluZyA6ICVzCgBObyBsaWJ6IHN1cHBvcnQuCgAuJWQAbm9uYW1lLmd2AGd2d3JpdGVfbm9feiBwcm9ibGVtICVkCgBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlCgBObyBsaWJ6IHN1cHBvcnQKAGd2cHJpbnRmOiAlcwoALTk5OTk5OTk5OTk5OTk5OS45OQBncmFwaHZpegAyLjQwLjEAMjAxNjEyMjUuMDMwNAByZW5kZXIAZGV2aWNlAGxvYWRpbWFnZQBkeW5hbWljIGxvYWRpbmcgbm90IGF2YWlsYWJsZQoAVXNpbmcgJXM6ICVzOiVzCgBndnVzZXJzaGFwZS5jAGd2dXNlcnNoYXBlX2ZpbmQAZ3Z1c2Vyc2hhcGVfZmlsZV9hY2Nlc3MARmlsZW5hbWUgIiVzIiBpcyB1bnNhZmUKACVzIHdoaWxlIG9wZW5pbmcgJXMKAHVzLT5mAGd2dXNlcnNoYXBlX29wZW4AIiVzIiB3YXMgbm90IGZvdW5kIGFzIGEgZmlsZSBvciBhcyBhIHNoYXBlIGxpYnJhcnkgbWVtYmVyCgAvTWVkaWFCb3gAKFthLXpdW2EtekEtWl0qKT0iKFteIl0qKSIAY2Fubm90IGNvbXBpbGUgcmVndWxhciBleHByZXNzaW9uICVzACVsZiUycwBwdAB2aWV3Qm94ACVsZiAlbGYgJWxmICVsZgBpbgBweABwYwAiAGNtAG1tACUlQm91bmRpbmdCb3g6AAHQ0dLT1NXW19jZADxzdmcAV0VCUAB3ZWJwAChsaWIpAIlQTkcNChoKAHBuZwAlIVBTLUFkb2JlLQBCTQBibXAAR0lGOABnaWYA/9j/4ABqcGVnACVQREYtAHBkZgDF0NPGAGVwcwA8P3htbAB4bWwAUklGRgByaWZmAAAAAQAAaWNvACVkICVkICVkICVkAExheW91dCB3YXMgbm90IGRvbmUKAGZhaWx1cmUgbWFsbG9jJ2luZyBmb3IgcmVzdWx0IHN0cmluZwBnYzogT3V0IG9mIG1lbW9yeQoAX2NjXwBvcmlnAG9wAGNjb21wcy5jAG1hcENsdXN0AGNjZ3JhcGhpbmZvAGNjZ25vZGVpbmZvACglNGxkKSAlN2xkIG5vZGVzICU3bGQgZWRnZXMKACAgICAgICAlN2Qgbm9kZXMgJTdkIGVkZ2VzICU3bGQgY29tcG9uZW50cyAlcwoAZGcARXJyb3I6IG5vZGUgIiVzIiBiZWxvbmdzIHRvIHR3byBub24tbmVzdGVkIGNsdXN0ZXJzICIlcyIgYW5kICIlcyIKAHNvcnR2AHJvdyBtYWpvcgBjb2x1bW4gbWFqb3IAYXJyYXkgcGFja2luZzogJXMgJWQgcm93cyAlZCBjb2x1bW5zCgBiYlslc10gJS41ZyAlLjVnICUuNWcgJS41ZwoAc3RlcCBzaXplID0gJWQKAHBvc1slZF0gJWQgJWQKAGNjICglZCBjZWxscykgYXQgKCVkLCVkKSAoJWQsJWQpCgBjYyAoJWQgY2VsbHMpIGF0ICglZCwlZCkKACVzIG5vLiBjZWxscyAlZCBXICVkIEggJWQKACAgJWQgJWQgY2VsbAoAbGlicGFjazogZGlzYyA9ICVmICggPCAwKQoAUGFja2luZzogY29tcHV0ZSBncmlkIHNpemUKAGEgJWYgYiAlZiBjICVmIGQgJWYgciAlZgoAcm9vdCAlZCAoJWYpICVkICglZikKACByMSAlZiByMiAlZgoAcGluZm8AcGFjay5jAGdldFBhY2tJbmZvACAgbWFyZ2luICVkCgBwYWNrbW9kZQBwYXJzZVBhY2tNb2RlSW5mbwBhcnJheQBhc3BlY3QAJWYAcGFjayBpbmZvOgoAICBtb2RlICAgJXMKACAgYXNwZWN0ICVmCgAgIHNpemUgICAlZAoAICBmbGFncyAgJWQKAHVuZGVmaW5lZABwYWNrAEFycm93IHR5cGUgIiVzIiB1bmtub3duIC0gaWdub3JpbmcKAG5vcm1hbABjcm93AHRlZQBkb3QAaW52AHZlZQBwZW4AbXB0eQBjdXJ2ZQBpY3VydmUAbABoYWxmAGludmVtcHR5AF9iYWNrZ3JvdW5kAF9kcmF3XwBDb3VsZCBub3QgcGFyc2UgIl9iYWNrZ3JvdW5kIiBhdHRyaWJ1dGUgaW4gZ3JhcGggJXMKACAgIiVzIgoAbm8gbWVtb3J5IGZyb20gem1hbGxvYygpCgBvYmoAZW1pdC5jAHBvcF9vYmpfc3RhdGUAY2x1c3QAJWxkAHBhZ2UlZCwlZF8AVG90YWwgc2l6ZSA+IDEgaW4gIiVzIiBjb2xvciBzcGVjIABJbGxlZ2FsIGxlbmd0aCB2YWx1ZSBpbiAiJXMiIGNvbG9yIGF0dHJpYnV0ZSAAY29sb3JzY2hlbWUAZW1pdF9lZGdlX2xhYmVsACVzLSVzAGZvcndhcmQAYmFjawAgLT4gACAtLSAAaW4gZWRnZSAlcyVzJXMKAGxhYmVsYWxpZ25lZABlZGdlaHJlZgBlZGdlVVJMAGxhYmVsaHJlZgBsYWJlbFVSTAB0YWlsaHJlZgB0YWlsVVJMAGhlYWRocmVmAGhlYWRVUkwAdGFyZ2V0AGVkZ2V0YXJnZXQAbGFiZWx0YXJnZXQAdGFpbHRhcmdldABoZWFkdGFyZ2V0AGVkZ2V0b29sdGlwAGxhYmVsdG9vbHRpcAB0YWlsdG9vbHRpcABoZWFkdG9vbHRpcAABbmVzdGluZyBub3QgYWxsb3dlZCBpbiBzdHlsZTogJXMKAHVubWF0Y2hlZCAnKScgaW4gc3R5bGU6ICVzCgB0cnVuY2F0aW5nIHN0eWxlICclcycKAHVubWF0Y2hlZCAnKCcgaW4gc3R5bGU6ICVzCgBhbGwAYmdjb2xvcgBpbiBjbHVzdGVyICVzCgBNb3JlIHRoYW4gMiBjb2xvcnMgc3BlY2lmaWVkIGZvciBhIGdyYWRpZW50IC0gaWdub3JpbmcgcmVtYWluaW5nCgBncmFkaWVudCBwZW4gY29sb3JzIG5vdCB5ZXQgc3VwcG9ydGVkLgoASW1hZ2VzIHVuc3VwcG9ydGVkIGluICJiYWNrZ3JvdW5kIiBhdHRyaWJ1dGUKAGxheWVycyBub3Qgc3VwcG9ydGVkIGluICVzIG91dHB1dAoATGF5b3V0IHdhcyBub3QgZG9uZS4gIE1pc3NpbmcgbGF5b3V0IHBsdWdpbnM/IAoAZ3ZSZW5kZXJKb2JzICVzOiAlLjJmIHNlY3MuCgBsYXlvdXQgd2FzIG5vdCBkb25lCgByZW5kZXJlciBmb3IgJXMgaXMgdW5hdmFpbGFibGUKAHBhZ2VkaXI9JXMgaWdub3JlZAoAdmlld3BvcnQAJWxmLCVsZiwlbGYsJyVbXiddJwAlbGYsJWxmLCVsZiwlW14sXSVzACVsZiwlbGYsJWxmLCVsZiwlbGYAb3V0cHV0b3JkZXIAb2Rlc2ZpcnN0AGRnZXNmaXJzdABsYXllcnMAbGF5ZXJzZWxlY3QAVGhlIGxheWVyc2VsZWN0IGF0dHJpYnV0ZSAiJXMiIGRvZXMgbm90IG1hdGNoIGFueSBsYXllciBzcGVjaWZlZCBieSB0aGUgbGF5ZXJzIGF0dHJpYnV0ZSAtIGlnbm9yZWQuCgBsYXllcnNlcAA6CSAAbGF5ZXJsaXN0c2VwACwAVGhlIGNoYXJhY3RlciAnJWMnIGFwcGVhcnMgaW4gYm90aCB0aGUgbGF5ZXJzZXAgYW5kIGxheWVybGlzdHNlcCBhdHRyaWJ1dGVzIC0gbGF5ZXJsaXN0c2VwIGlnbm9yZWQuCgBwYWQAQkwAcGFnZWRpcgBzb2xpZAAAc2V0bGluZXdpZHRoADEAAHNwbC0+c2l6ZSA+IDAAaW5pdF9zcGxpbmVzX2JiAGJ6LnNpemUgPiAwAGJlemllcl9iYgBiei5zaXplICUgMyA9PSAxAGxhYmVsACVsZgBmb250cGF0aABET1RGT05UUEFUSABHREZPTlRQQVRIAGltYWdlcGF0aABxdWFudHVtAHJhbmtkaXIATFIAQlQAUkwAbm9kZXNlcAByYW5rc2VwAGVxdWFsbHkAc2hvd2JveGVzAGZvbnRuYW1lcwBzaXplAHBhZ2UAY2VudGVyAHJvdGF0ZQBvcmllbnRhdGlvbgBsYW5kc2NhcGUAY2x1c3RlcnJhbmsAY29uY2VudHJhdGUAZHBpAHJlc29sdXRpb24Ab3JkZXJpbmcAZ3JhZGllbnRhbmdsZQBmaWxsY29sb3IAc3R5bGUAZm9udHNpemUAZm9udG5hbWUAZm9udGNvbG9yAHhsYWJlbABwZW53aWR0aABzaWRlcwBwZXJpcGhlcmllcwBza2V3AGRpc3RvcnRpb24AZml4ZWRzaXplAG5vanVzdGlmeQBsYXllcgBncm91cABjb21tZW50AHZlcnRpY2VzAHoAd2VpZ2h0AGxhYmVsZmxvYXQAZGlyAGFycm93aGVhZABhcnJvd3RhaWwAaGVhZGxhYmVsAHRhaWxsYWJlbABsYWJlbGZvbnRzaXplAGxhYmVsZm9udG5hbWUAbGFiZWxmb250Y29sb3IAbGFiZWxkaXN0YW5jZQBsYWJlbGFuZ2xlAG1pbmxlbgBkZWNvcmF0ZQBhcnJvd3NpemUAY29uc3RyYWludAB0YWlsY2xpcABoZWFkY2xpcABpZABsYWJlbGp1c3QAbG9jYWwAZ2xvYmFsACVsZiwlbGYlYwAlbGYlYwByYXRpbwBhdXRvAGNvbXByZXNzAGV4cGFuZABmaWxsAGdkAHBzAHN2ZwBjaGFyc2V0AHV0Zi04AGxhdGluLTEAbGF0aW4xAGwxAElTTy04ODU5LTEASVNPXzg4NTktMQBJU084ODU5LTEASVNPLUlSLTEwMABiaWctNQBiaWc1AHV0ZjgAVW5zdXBwb3J0ZWQgY2hhcnNldCAiJXMiIC0gYXNzdW1pbmcgdXRmLTgKAGluIGxhYmVsIG9mIGdyYXBoICVzCgBpbiBsYWJlbCBvZiBub2RlICVzCgBpbiBsYWJlbCBvZiBlZGdlICVzICVzICVzCgBraW5kID09IExUX05PTkUAbGFiZWxzLmMAbWFrZV9sYWJlbABcTABcRwBcRQBcSABcVAAmIzEzOwAmIzEwOwAmcXVvdDsAJiMxNjA7ACZhbXA7ACZndDsAJiMzOTsAJiM0NTsAJmx0OwAlcyAlZCBub2RlcyAlZCBlZGdlcyBtYXhpdGVyPSVkIGJhbGFuY2U9JWQKAG5ldHdvcmsgc2ltcGxleDogACVkIAAlcyVkIG5vZGVzICVkIGVkZ2VzICVkIGl0ZXIgJS4yZiBzZWMKAHVwZGF0ZTogbWlzbWF0Y2hlZCBsY2EgaW4gdHJlZXVwZGF0ZXMKAFRyZWVfZWRnZS5zaXplID09IE5fbm9kZXMgLSAxAG5zLmMAZmVhc2libGVfdHJlZQAhVFJFRV9FREdFKGUpAG1lcmdlX3RyZWVzAChyMC0+aGVhcF9pbmRleCA+IC0xKSB8fCAocjEtPmhlYXBfaW5kZXggPiAtMSkAU1RzZXRVbmlvbgByLT5oZWFwX2luZGV4ID49IDAAYWRkX3RyZWVfZWRnZTogbWlzc2luZyB0cmVlIGVkZ2UKAGFkZF90cmVlX2VkZ2U6IGVtcHR5IG91dGVkZ2UgbGlzdAoAYWRkX3RyZWVfZWRnZTogZW1wdHkgaW5lZGdlIGxpc3QKAHRyb3VibGUgaW4gaW5pdF9yYW5rCgAJJXMgJWQKAHNlYXJjaHNpemUAZ3JhcGggACAAbm9kZSAAc3RvcAoAJS41ZwBwb3MAcmVjdHMAeGxwAGxwAGhlYWRfbHAAdGFpbF9scABsd2lkdGgAbGhlaWdodABiYgAlLjVnLCUuNWcsJS41ZwAsJS41ZwAlLjVnLCUuNWcAc2FtcGxlcG9pbnRzACUuNWcgJS41ZwBzLCUuNWcsJS41ZyAAZSwlLjVnLCUuNWcgACUuNWcsJS41ZywlLjVnLCUuNWcAJS4yZgAlLjVnLCUuNWcsJS41ZywlLjVnIAAvcGF0aGJveCB7CiAgICAvWCBleGNoIG5lZyAlLjVnIHN1YiBkZWYKICAgIC9ZIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAveCBleGNoIG5lZyAlLjVnIHN1YiBkZWYKICAgIC95IGV4Y2ggJS41ZyBzdWIgZGVmCiAgICBuZXdwYXRoIHggeSBtb3ZldG8KICAgIFggeSBsaW5ldG8KICAgIFggWSBsaW5ldG8KICAgIHggWSBsaW5ldG8KICAgIGNsb3NlcGF0aCBzdHJva2UKfSBkZWYKAC9wYXRoYm94IHsKICAgIC9ZIGV4Y2ggJS41ZyBzdWIgZGVmCiAgICAvWCBleGNoICUuNWcgc3ViIGRlZgogICAgL3kgZXhjaCAlLjVnIHN1YiBkZWYKICAgIC94IGV4Y2ggJS41ZyBzdWIgZGVmCiAgICBuZXdwYXRoIHggeSBtb3ZldG8KICAgIFggeSBsaW5ldG8KICAgIFggWSBsaW5ldG8KICAgIHggWSBsaW5ldG8KICAgIGNsb3NlcGF0aCBzdHJva2UKIH0gZGVmCi9kYmdzdGFydCB7IGdzYXZlICUuNWcgJS41ZyB0cmFuc2xhdGUgfSBkZWYKL2Fycm93bGVuZ3RoIDEwIGRlZgovYXJyb3d3aWR0aCBhcnJvd2xlbmd0aCAyIGRpdiBkZWYKL2Fycm93aGVhZCB7CiAgICBnc2F2ZQogICAgcm90YXRlCiAgICBjdXJyZW50cG9pbnQKICAgIG5ld3BhdGgKICAgIG1vdmV0bwogICAgYXJyb3dsZW5ndGggYXJyb3d3aWR0aCAyIGRpdiBybGluZXRvCiAgICAwIGFycm93d2lkdGggbmVnIHJsaW5ldG8KICAgIGNsb3NlcGF0aCBmaWxsCiAgICBncmVzdG9yZQp9IGJpbmQgZGVmCi9tYWtlYXJyb3cgewogICAgY3VycmVudHBvaW50IGV4Y2ggcG9wIHN1YiBleGNoIGN1cnJlbnRwb2ludCBwb3Agc3ViIGF0YW4KICAgIGFycm93aGVhZAp9IGJpbmQgZGVmCi9wb2ludCB7ICAgIG5ld3BhdGggICAgMiAwIDM2MCBhcmMgZmlsbH0gZGVmL21ha2V2ZWMgewogICAgL1kgZXhjaCBkZWYKICAgIC9YIGV4Y2ggZGVmCiAgICAveSBleGNoIGRlZgogICAgL3ggZXhjaCBkZWYKICAgIG5ld3BhdGggeCB5IG1vdmV0bwogICAgWCBZIGxpbmV0byBzdHJva2UKICAgIFggWSBtb3ZldG8KICAgIHggeSBtYWtlYXJyb3cKfSBkZWYKAGxvc3QgJXMgJXMgZWRnZQoAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBsYWJlbCAlcwBubyBwb3NpdGlvbiBmb3IgZWRnZSB3aXRoIHRhaWwgbGFiZWwgJXMAbm8gcG9zaXRpb24gZm9yIGVkZ2Ugd2l0aCBoZWFkIGxhYmVsICVzAG5vIHBvc2l0aW9uIGZvciBlZGdlIHdpdGggeGxhYmVsICVzAGZvcmNlbGFiZWxzACVkIG91dCBvZiAlZCBsYWJlbHMgcG9zaXRpb25lZC4KACVkIG91dCBvZiAlZCBleHRlcmlvciBsYWJlbHMgcG9zaXRpb25lZC4KACVkIG9ianMgJWQgeGxhYmVscyBmb3JjZT0lZCBiYj0oJS4wMmYsJS4wMmYpICglLjAyZiwlLjAyZikKAG9iamVjdHMKACBbJWRdICglLjAyZiwlLjAyZikgKCUuMDJmLCUuMDJmKSAlcCAiJXMiCgB4bGFiZWxzCgAgWyVkXSAlcCBzZXQgJWQgKCUuMDJmLCUuMDJmKSAoJS4wMmYsJS4wMmYpICVzCgBzaGFwZWZpbGUgbm90IHNldCBvciBub3QgZm91bmQgZm9yIGVwc2Ygbm9kZSAlcwoAY291bGRuJ3Qgb3BlbiBlcHNmIGZpbGUgJXMKACUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQAcmVhZABCb3VuZGluZ0JveCBub3QgZm91bmQgaW4gZXBzZiBmaWxlICVzCgBjYW4ndCBmaW5kIGxpYnJhcnkgZmlsZSAlcwoAY2FuJ3Qgb3BlbiBsaWJyYXJ5IGZpbGUgJXMKAEVPRgBCRUdJTgBFTkQAVFJBSUxFUgAvdXNlcl9zaGFwZV8lZCB7CgAlJUJlZ2luRG9jdW1lbnQ6CgAlJUVuZERvY3VtZW50CgB9IGJpbmQgZGVmCgBVVEYtOCBpbnB1dCB1c2VzIG5vbi1MYXRpbjEgY2hhcmFjdGVycyB3aGljaCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIFBvc3RTY3JpcHQgZHJpdmVyCgBjYW5ub3QgcmUtYWxsb2NhdGUgcHMKAHJvdXRlc3BsaW5lc2luaXQ6IGNhbm5vdCBhbGxvY2F0ZSBwcwoAcm91dGVzcGxpbmVzOiAlZCBlZGdlcywgJWQgYm94ZXMgJS4yZiBzZWMKAGluIHJvdXRlc3BsaW5lcywgY2Fubm90IGZpbmQgTk9STUFMIGVkZ2UKAGluIHJvdXRlc3BsaW5lcywgaWxsZWdhbCB2YWx1ZXMgb2YgcHJldiAlZCBhbmQgbmV4dCAlZCwgbGluZSAlZAoAaW4gcm91dGVzcGxpbmVzLCBlZGdlIGlzIGEgbG9vcCBhdCAlcwoAaW4gcm91dGVzcGxpbmVzLCBQc2hvcnRlc3RwYXRoIGZhaWxlZAoAaW4gcm91dGVzcGxpbmVzLCBQcm91dGVzcGxpbmUgZmFpbGVkCgBVbmFibGUgdG8gcmVjbGFpbSBib3ggc3BhY2UgaW4gc3BsaW5lIHJvdXRpbmcgZm9yIGVkZ2UgIiVzIiAtPiAiJXMiLiBTb21ldGhpbmcgaXMgcHJvYmFibHkgc2VyaW91c2x5IHdyb25nLgoAaW4gY2hlY2twYXRoLCBib3ggMCBoYXMgTEwgY29vcmQgPiBVUiBjb29yZAoAaW4gY2hlY2twYXRoLCBib3ggJWQgaGFzIExMIGNvb3JkID4gVVIgY29vcmQKAGluIGNoZWNrcGF0aCwgYm94ZXMgJWQgYW5kICVkIGRvbid0IHRvdWNoCgBpbiBjaGVja3BhdGgsIHN0YXJ0IHBvcnQgbm90IGluIGZpcnN0IGJveAoAaW4gY2hlY2twYXRoLCBlbmQgcG9ydCBub3QgaW4gbGFzdCBib3gKACVkIGJveGVzOgoAJWQgKCUuNWcsICUuNWcpLCAoJS41ZywgJS41ZykKAGNvbnN0cmFpbmVkAG5vdCBjb25zdHJhaW5lZABzdGFydCBwb3J0OiAoJS41ZywgJS41ZyksIHRhbmdlbnQgYW5nbGU6ICUuNWcsICVzCgBlbmQgcG9ydDogKCUuNWcsICUuNWcpLCB0YW5nZW50IGFuZ2xlOiAlLjVnLCAlcwoAc2lkZXMgPT0gNABzaGFwZXMuYwByb3VuZF9jb3JuZXJzAGJhZCBsYWJlbCBmb3JtYXQgJXMKAFxOAG1hcmdpbgAlbGYsJWxmAHJlZ3VsYXIAY3VzdG9tAHNoYXBlZmlsZQA8bmlsPgBObyBvciBpbXByb3BlciBzaGFwZWZpbGU9IiVzIiBmb3Igbm9kZSAiJXMiCgBObyBvciBpbXByb3BlciBpbWFnZT0iJXMiIGZvciBub2RlICIlcyIKAGxhYmVsbG9jAHNoYXBlAG5vZGUgJyVzJywgZ3JhcGggJyVzJyBzaXplIHRvbyBzbWFsbCBmb3IgbGFiZWwKAGVwc2YAdXNpbmcgJXMgZm9yIHVua25vd24gc2hhcGUgJXMKAGJveABwb2x5Z29uAG92YWwAY2lyY2xlAHBvaW50AGVnZwB0cmlhbmdsZQBwbGFpbnRleHQAcGxhaW4AZGlhbW9uZAB0cmFwZXppdW0AcGFyYWxsZWxvZ3JhbQBob3VzZQBwZW50YWdvbgBoZXhhZ29uAHNlcHRhZ29uAG9jdGFnb24Abm90ZQB0YWIAZm9sZGVyAGJveDNkAGNvbXBvbmVudABjeWxpbmRlcgByZWN0AHJlY3RhbmdsZQBzcXVhcmUAZG91YmxlY2lyY2xlAGRvdWJsZW9jdGFnb24AdHJpcGxlb2N0YWdvbgBpbnZ0cmlhbmdsZQBpbnZ0cmFwZXppdW0AaW52aG91c2UAdW5kZXJsaW5lAE1kaWFtb25kAE1zcXVhcmUATWNpcmNsZQBwcm9tb3RlcgBjZHMAdGVybWluYXRvcgB1dHIAaW5zdWxhdG9yAHJpYm9zaXRlAHJuYXN0YWIAcHJvdGVhc2VzaXRlAHByb3RlaW5zdGFiAHByaW1lcnNpdGUAcmVzdHJpY3Rpb25zaXRlAGZpdmVwb3ZlcmhhbmcAdGhyZWVwb3ZlcmhhbmcAbm92ZXJoYW5nAGFzc2VtYmx5AHNpZ25hdHVyZQBycHJvbW90ZXIAbGFycm93AHJhcnJvdwBscHJvbW90ZXIAcmVjb3JkAE1yZWNvcmQAc3RhcgAjODA4MDgwACNmY2ZjZmMAIzMwMzAzMAAjZThlOGU4ACNlMGUwZTAAI2YwZjBmMAAjMTAxMDEwACNmOGY4ZjgAaW4gbm9kZSAlcwoAcm91bmRlZABkaWFnb25hbHMAcmFkaWFsAHN0cmlwZWQAd2VkZ2VkAF8Abm9kZSAlcywgcG9ydCAlcywgdW5yZWNvZ25pemVkIGNvbXBhc3MgcG9pbnQgJyVzJyAtIGlnbm9yZWQKAG5vZGUgJXMsIHBvcnQgJXMgdW5yZWNvZ25pemVkCgAlLjVnICUuNWcgdHJhbnNsYXRlIG5ld3BhdGggdXNlcl9zaGFwZV8lZAoAaW52aXMAAGZpbGxlZAAAcwBlAHcAc3BsaW5lcy5jAGJlZ2lucGF0aABQLT5lbmQudGhldGEgPCAyICogTV9QSQBlbmRwYXRoAG1ha2VTZWxmRWRnZQBnZXRzcGxpbmVwb2ludHM6IG5vIHNwbGluZSBwb2ludHMgYXZhaWxhYmxlIGZvciBlZGdlICglcywlcykKAHBvbHlsaW5lTWlkcG9pbnQAc3Bhbi0+Zm9udAB0ZXh0c3Bhbi5jAHRleHRzcGFuX3NpemUAZm9udC0+bmFtZQBmb250bmFtZTogIiVzIiByZXNvbHZlZCB0bzogJXMKAGZvbnRuYW1lOiB1bmFibGUgdG8gcmVzb2x2ZSAiJXMiCgBjb3VyAGFyaWFsAGhlbHZldGljYQBbaW50ZXJuYWwgdGltZXNdAFtpbnRlcm5hbCBjb3VyaWVyXQBbaW50ZXJuYWwgYXJpYWxdAEF2YW50R2FyZGUtQm9vawBVUlcgR290aGljIEwAYm9vawBzYW5zLVNlcmlmAEF2YW50R2FyZGUtQm9va09ibGlxdWUAb2JsaXF1ZQBpdGFsaWMAQXZhbnRHYXJkZS1EZW1pAGRlbWkAQXZhbnRHYXJkZS1EZW1pT2JsaXF1ZQBCb29rbWFuLURlbWkAVVJXIEJvb2ttYW4gTABzZXJpZgBCb29rbWFuLURlbWlJdGFsaWMAQm9va21hbi1MaWdodABsaWdodABCb29rbWFuLUxpZ2h0SXRhbGljAENvdXJpZXIAbW9ub3NwYWNlAENvdXJpZXItQm9sZABDb3VyaWVyLUJvbGRPYmxpcXVlAENvdXJpZXItT2JsaXF1ZQBIZWx2ZXRpY2EASGVsdmV0aWNhLUJvbGQASGVsdmV0aWNhLUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3cAY29uZGVuc2VkAEhlbHZldGljYS1OYXJyb3ctQm9sZABIZWx2ZXRpY2EtTmFycm93LUJvbGRPYmxpcXVlAEhlbHZldGljYS1OYXJyb3ctT2JsaXF1ZQBIZWx2ZXRpY2EtT2JsaXF1ZQBOZXdDZW50dXJ5U2NobGJrLUJvbGQAQ2VudHVyeSBTY2hvb2xib29rIEwATmV3Q2VudHVyeVNjaGxiay1Cb2xkSXRhbGljAE5ld0NlbnR1cnlTY2hsYmstSXRhbGljAE5ld0NlbnR1cnlTY2hsYmstUm9tYW4Acm9tYW4AUGFsYXRpbm8tQm9sZABQYWxhdGlubyBMaW5vdHlwZQBQYWxhdGluby1Cb2xkSXRhbGljAFBhbGF0aW5vLUl0YWxpYwBQYWxhdGluby1Sb21hbgBTeW1ib2wAZmFudGFzeQBUaW1lcy1Cb2xkAFRpbWVzAFRpbWVzLUJvbGRJdGFsaWMAVGltZXMtSXRhbGljAFphcGZDaGFuY2VyeS1NZWRpdW1JdGFsaWMAVVJXIENoYW5jZXJ5IEwAbWVkaXVtAFphcGZEaW5nYmF0cwBEaW5nYmF0cwBubwB0cnVlAHllcwB1dGlscy5jAHUgPT0gVUZfZmluZCh1KQBVRl9zZXRuYW1lAAFmaWxlIGxvYWRpbmcgaXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgZW52aXJvbm1lbnQgY29udGFpbnMgU0VSVkVSX05BTUU9IiVzIgphbmQgdGhlIEdWX0ZJTEVfUEFUSCB2YXJpYWJsZSBpcyB1bnNldCBvciBlbXB0eS4KAFBhdGggcHJvdmlkZWQgdG8gZmlsZTogIiVzIiBoYXMgYmVlbiBpZ25vcmVkIGJlY2F1c2UgZmlsZXMgYXJlIG9ubHkgcGVybWl0dGVkIHRvIGJlIGxvYWRlZCBmcm9tIHRoZSBkaXJlY3RvcmllcyBpbiAiJXMiIHdoZW4gcnVubmluZyBpbiBhbiBodHRwIHNlcnZlci4KACVzJXMlcwAvADoAZWxsaXBzZQBUaW1lcy1Sb21hbgBjbHVzdGVyAF9fY2x1c3Rlcm5vZGVzAFR3byBjbHVzdGVycyBuYW1lZCAlcyAtIHRoZSBzZWNvbmQgd2lsbCBiZSBpZ25vcmVkCgBtYXBOAEFFbGlnAEFhY3V0ZQBBY2lyYwBBZ3JhdmUAQWxwaGEAQXJpbmcAQXRpbGRlAEF1bWwAQmV0YQBDY2VkaWwAQ2hpAERhZ2dlcgBEZWx0YQBFVEgARWFjdXRlAEVjaXJjAEVncmF2ZQBFcHNpbG9uAEV0YQBFdW1sAEdhbW1hAElhY3V0ZQBJY2lyYwBJZ3JhdmUASW90YQBJdW1sAEthcHBhAExhbWJkYQBNdQBOdGlsZGUATnUAT0VsaWcAT2FjdXRlAE9jaXJjAE9ncmF2ZQBPbWVnYQBPbWljcm9uAE9zbGFzaABPdGlsZGUAT3VtbABQaGkAUGkAUHJpbWUAUHNpAFJobwBTY2Fyb24AU2lnbWEAVEhPUk4AVGF1AFRoZXRhAFVhY3V0ZQBVY2lyYwBVZ3JhdmUAVXBzaWxvbgBVdW1sAFhpAFlhY3V0ZQBZdW1sAFpldGEAYWFjdXRlAGFjaXJjAGFjdXRlAGFlbGlnAGFncmF2ZQBhbGVmc3ltAGFscGhhAGFtcABhbmQAYW5nAGFyaW5nAGFzeW1wAGF0aWxkZQBhdW1sAGJkcXVvAGJldGEAYnJ2YmFyAGJ1bGwAY2FwAGNjZWRpbABjZWRpbABjZW50AGNoaQBjaXJjAGNsdWJzAGNvbmcAY29weQBjcmFycgBjdXAAY3VycmVuAGRBcnIAZGFnZ2VyAGRhcnIAZGVnAGRlbHRhAGRpYW1zAGRpdmlkZQBlYWN1dGUAZWNpcmMAZWdyYXZlAGVtcHR5AGVtc3AAZW5zcABlcHNpbG9uAGVxdWl2AGV0YQBldGgAZXVtbABldXJvAGV4aXN0AGZub2YAZm9yYWxsAGZyYWMxMgBmcmFjMTQAZnJhYzM0AGZyYXNsAGdhbW1hAGdlAGd0AGhBcnIAaGFycgBoZWFydHMAaGVsbGlwAGlhY3V0ZQBpY2lyYwBpZXhjbABpZ3JhdmUAaW1hZ2UAaW5maW4AaW50AGlvdGEAaXF1ZXN0AGlzaW4AaXVtbABrYXBwYQBsQXJyAGxhbWJkYQBsYW5nAGxhcXVvAGxhcnIAbGNlaWwAbGRxdW8AbGUAbGZsb29yAGxvd2FzdABsb3oAbHJtAGxzYXF1bwBsc3F1bwBsdABtYWNyAG1kYXNoAG1pY3JvAG1pZGRvdABtdQBuYWJsYQBuYnNwAG5kYXNoAG5lAG5pAG5vdABub3RpbgBuc3ViAG50aWxkZQBudQBvYWN1dGUAb2NpcmMAb2VsaWcAb2dyYXZlAG9saW5lAG9tZWdhAG9taWNyb24Ab3BsdXMAb3IAb3JkZgBvcmRtAG9zbGFzaABvdGlsZGUAb3RpbWVzAG91bWwAcGFyYQBwYXJ0AHBlcm1pbABwZXJwAHBoaQBwaQBwaXYAcGx1c21uAHBvdW5kAHByaW1lAHByb2QAcHJvcABwc2kAcXVvdAByQXJyAHJhZGljAHJhbmcAcmFxdW8AcmFycgByY2VpbAByZHF1bwByZWFsAHJlZwByZmxvb3IAcmhvAHJsbQByc2FxdW8AcnNxdW8Ac2JxdW8Ac2Nhcm9uAHNkb3QAc2VjdABzaHkAc2lnbWEAc2lnbWFmAHNpbQBzcGFkZXMAc3ViAHN1YmUAc3VtAHN1cABzdXAxAHN1cDIAc3VwMwBzdXBlAHN6bGlnAHRhdQB0aGVyZTQAdGhldGEAdGhldGFzeW0AdGhpbnNwAHRob3JuAHRpbGRlAHRpbWVzAHRyYWRlAHVBcnIAdWFjdXRlAHVhcnIAdWNpcmMAdWdyYXZlAHVtbAB1cHNpaAB1cHNpbG9uAHV1bWwAd2VpZXJwAHhpAHlhY3V0ZQB5ZW4AeXVtbAB6ZXRhAHp3agB6d25qAFVURjggY29kZXMgPiA0IGJ5dGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCAoZ3JhcGggJXMpIC0gdHJlYXRlZCBhcyBMYXRpbi0xLiBQZXJoYXBzICItR2NoYXJzZXQ9bGF0aW4xIiBpcyBuZWVkZWQ/CgBJbnZhbGlkICVkLWJ5dGUgVVRGOCBmb3VuZCBpbiBpbnB1dCBvZiBncmFwaCAlcyAtIHRyZWF0ZWQgYXMgTGF0aW4tMS4gUGVyaGFwcyAiLUdjaGFyc2V0PWxhdGluMSIgaXMgbmVlZGVkPwoAYnouc2l6ZQBvdmVybGFwX2JlemllcgB1cnZlZABvbXBvdW5kAGFsc2UAaW5lAG9uZQBvAHJ0aG8Ab2x5bGluZQBwbGluZQBydWUAZXMAVW5rbm93biAic3BsaW5lcyIgdmFsdWU6ICIlcyIgLSBpZ25vcmVkCgBzcGxpbmVzAG9kYgBPcnRob2dvbmFsIGVkZ2VzIGRvIG5vdCBjdXJyZW50bHkgaGFuZGxlIGVkZ2UgbGFiZWxzLiBUcnkgdXNpbmcgeGxhYmVscy4KAG9ydGhvICVzICVzCgBjaGFuaQBvcnRoby5jAGNoYW5TZWFyY2gAY3AAJSUhUFMtQWRvYmUtMi4wCiUlJSVCb3VuZGluZ0JveDogKGF0ZW5kKQovcG9pbnQgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICBuZXdwYXRoCiAgWCBZIDMgMCAzNjAgYXJjIGZpbGwKfSBkZWYKL2NlbGwgewogIC9ZIGV4Y2ggZGVmCiAgL1ggZXhjaCBkZWYKICAveSBleGNoIGRlZgogIC94IGV4Y2ggZGVmCiAgbmV3cGF0aAogIHggeSBtb3ZldG8KICB4IFkgbGluZXRvCiAgWCBZIGxpbmV0bwogIFggeSBsaW5ldG8KICBjbG9zZXBhdGggc3Ryb2tlCn0gZGVmCi9ub2RlIHsKIC91IGV4Y2ggZGVmCiAvciBleGNoIGRlZgogL2QgZXhjaCBkZWYKIC9sIGV4Y2ggZGVmCiBuZXdwYXRoIGwgZCBtb3ZldG8KIHIgZCBsaW5ldG8gciB1IGxpbmV0byBsIHUgbGluZXRvCiBjbG9zZXBhdGggZmlsbAp9IGRlZgoKACVkICVkIHRyYW5zbGF0ZQoAMC44IDAuOCAwLjggc2V0cmdiY29sb3IKAHNob3dwYWdlCiUlJSVUcmFpbGVyCiUlJSVCb3VuZGluZ0JveDogJWQgJWQgJWQgJWQKAG5ld3BhdGggJWQgJWQgbW92ZXRvCgAlZCAlZCBsaW5ldG8KACVkICVkIGxpbmV0byBzdHJva2UKAGNoYW5uZWwgJWQgKCVmLCVmKQoAIC0+CgAgICAgIAAoKCVmLCVmKSwoJWYsJWYpKSAlcyAlcwBCX1JJR0hUAEJfRE9XTgBCX0xFRlQAQl9VUABCX05PREUAc2VnAG5leHRfc2VnAGRlY2lkZV9wb2ludABpbmNvbXBhcmFibGUgc2VnbWVudHMgISEgLS0gQWJvcnRpbmcKAHMxLT5jb21tX2Nvb3JkPT1zMi0+Y29tbV9jb29yZABpc19wYXJhbGxlbABncmFwaCBHIHsKACBub2RlW3NoYXBlPXBvaW50XQoAICAlZCBbcG9zPSIlZCwlZCJdCgAgICVkIC0tICVkW2xlbj0iJWYiXQoAfQoAY29sb3IgJXMAJXMgaXMgbm90IGEga25vd24gY29sb3IuCgBlcnJvciBpbiBjb2x4bGF0ZSgpCgBzb2xpZABpbnZpc2libGUAYm9sZABzZXRsaW5ld2lkdGgAZmlsbGVkAHVuZmlsbGVkAHRhcGVyZWQAZ3ZyZW5kZXJfc2V0X3N0eWxlOiB1bnN1cHBvcnRlZCBzdHlsZSAlcyAtIGlnbm9yaW5nCgBndnJlbmRlci5jAGd2cmVuZGVyX3VzZXJzaGFwZQBuYW1lAG5hbWVbMF0Ad2lkdGgAaGVpZ2h0AGJvdGgAbGF5b3V0AExheW91dCB0eXBlOiAiJXMiIG5vdCByZWNvZ25pemVkLiBVc2Ugb25lIG9mOiVzCgBqb2IAZ3Zsb2FkaW1hZ2UuYwBndmxvYWRpbWFnZQB1cwB1cy0+bmFtZQB1cy0+bmFtZVswXQBObyBsb2FkaW1hZ2UgcGx1Z2luIGZvciAiJXMiCgBRAExlZnQAS1BfTGVmdABSaWdodABLUF9SaWdodABVcABLUF9VcABEb3duAEtQX0Rvd24AcGx1cwBLUF9BZGQAbWludXMAS1BfU3VidHJhY3QARgB0b29sdGlwAGVkZ2UAdGFpbHBvcnQAaGVhZHBvcnQAa2V5AGhyZWYAVVJMAG5vZGUAZGlncmFwaABncmFwaABzdWJncmFwaABfTFRYX2xpYnJhcnkAdGV4dGxheW91dABvYmpwLT5sYmwAeGxhYmVscy5jAHhsYWRqdXN0AHhsaW50ZXJzZWN0aW9ucwBscCAhPSBjbHAAZ2V0aW50cnN4aQBvYmpwMS0+c3oueCA9PSAwICYmIG9ianAxLT5zei55ID09IDAAbGJsZW5jbG9zaW5nAHZwAHhsaGR4dW5sb2FkAHNpemU9PWZyZWVkAHJlY3QuYm91bmRhcnlbMl0gPCBJTlRfTUFYAG9ianBscG1rcwByZWN0LmJvdW5kYXJ5WzNdIDwgSU5UX01BWABvdXQgb2YgbWVtb3J5CgAjJTJ4JTJ4JTJ4JTJ4ACVsZiVsZiVsZgAvYWNjZW50My8xAC9hY2NlbnQzLzIAL2FjY2VudDMvMwAvYWNjZW50NC8xAC9hY2NlbnQ0LzIAL2FjY2VudDQvMwAvYWNjZW50NC80AC9hY2NlbnQ1LzEAL2FjY2VudDUvMgAvYWNjZW50NS8zAC9hY2NlbnQ1LzQAL2FjY2VudDUvNQAvYWNjZW50Ni8xAC9hY2NlbnQ2LzIAL2FjY2VudDYvMwAvYWNjZW50Ni80AC9hY2NlbnQ2LzUAL2FjY2VudDYvNgAvYWNjZW50Ny8xAC9hY2NlbnQ3LzIAL2FjY2VudDcvMwAvYWNjZW50Ny80AC9hY2NlbnQ3LzUAL2FjY2VudDcvNgAvYWNjZW50Ny83AC9hY2NlbnQ4LzEAL2FjY2VudDgvMgAvYWNjZW50OC8zAC9hY2NlbnQ4LzQAL2FjY2VudDgvNQAvYWNjZW50OC82AC9hY2NlbnQ4LzcAL2FjY2VudDgvOAAvYmx1ZXMzLzEAL2JsdWVzMy8yAC9ibHVlczMvMwAvYmx1ZXM0LzEAL2JsdWVzNC8yAC9ibHVlczQvMwAvYmx1ZXM0LzQAL2JsdWVzNS8xAC9ibHVlczUvMgAvYmx1ZXM1LzMAL2JsdWVzNS80AC9ibHVlczUvNQAvYmx1ZXM2LzEAL2JsdWVzNi8yAC9ibHVlczYvMwAvYmx1ZXM2LzQAL2JsdWVzNi81AC9ibHVlczYvNgAvYmx1ZXM3LzEAL2JsdWVzNy8yAC9ibHVlczcvMwAvYmx1ZXM3LzQAL2JsdWVzNy81AC9ibHVlczcvNgAvYmx1ZXM3LzcAL2JsdWVzOC8xAC9ibHVlczgvMgAvYmx1ZXM4LzMAL2JsdWVzOC80AC9ibHVlczgvNQAvYmx1ZXM4LzYAL2JsdWVzOC83AC9ibHVlczgvOAAvYmx1ZXM5LzEAL2JsdWVzOS8yAC9ibHVlczkvMwAvYmx1ZXM5LzQAL2JsdWVzOS81AC9ibHVlczkvNgAvYmx1ZXM5LzcAL2JsdWVzOS84AC9ibHVlczkvOQAvYnJiZzEwLzEAL2JyYmcxMC8xMAAvYnJiZzEwLzIAL2JyYmcxMC8zAC9icmJnMTAvNAAvYnJiZzEwLzUAL2JyYmcxMC82AC9icmJnMTAvNwAvYnJiZzEwLzgAL2JyYmcxMC85AC9icmJnMTEvMQAvYnJiZzExLzEwAC9icmJnMTEvMTEAL2JyYmcxMS8yAC9icmJnMTEvMwAvYnJiZzExLzQAL2JyYmcxMS81AC9icmJnMTEvNgAvYnJiZzExLzcAL2JyYmcxMS84AC9icmJnMTEvOQAvYnJiZzMvMQAvYnJiZzMvMgAvYnJiZzMvMwAvYnJiZzQvMQAvYnJiZzQvMgAvYnJiZzQvMwAvYnJiZzQvNAAvYnJiZzUvMQAvYnJiZzUvMgAvYnJiZzUvMwAvYnJiZzUvNAAvYnJiZzUvNQAvYnJiZzYvMQAvYnJiZzYvMgAvYnJiZzYvMwAvYnJiZzYvNAAvYnJiZzYvNQAvYnJiZzYvNgAvYnJiZzcvMQAvYnJiZzcvMgAvYnJiZzcvMwAvYnJiZzcvNAAvYnJiZzcvNQAvYnJiZzcvNgAvYnJiZzcvNwAvYnJiZzgvMQAvYnJiZzgvMgAvYnJiZzgvMwAvYnJiZzgvNAAvYnJiZzgvNQAvYnJiZzgvNgAvYnJiZzgvNwAvYnJiZzgvOAAvYnJiZzkvMQAvYnJiZzkvMgAvYnJiZzkvMwAvYnJiZzkvNAAvYnJiZzkvNQAvYnJiZzkvNgAvYnJiZzkvNwAvYnJiZzkvOAAvYnJiZzkvOQAvYnVnbjMvMQAvYnVnbjMvMgAvYnVnbjMvMwAvYnVnbjQvMQAvYnVnbjQvMgAvYnVnbjQvMwAvYnVnbjQvNAAvYnVnbjUvMQAvYnVnbjUvMgAvYnVnbjUvMwAvYnVnbjUvNAAvYnVnbjUvNQAvYnVnbjYvMQAvYnVnbjYvMgAvYnVnbjYvMwAvYnVnbjYvNAAvYnVnbjYvNQAvYnVnbjYvNgAvYnVnbjcvMQAvYnVnbjcvMgAvYnVnbjcvMwAvYnVnbjcvNAAvYnVnbjcvNQAvYnVnbjcvNgAvYnVnbjcvNwAvYnVnbjgvMQAvYnVnbjgvMgAvYnVnbjgvMwAvYnVnbjgvNAAvYnVnbjgvNQAvYnVnbjgvNgAvYnVnbjgvNwAvYnVnbjgvOAAvYnVnbjkvMQAvYnVnbjkvMgAvYnVnbjkvMwAvYnVnbjkvNAAvYnVnbjkvNQAvYnVnbjkvNgAvYnVnbjkvNwAvYnVnbjkvOAAvYnVnbjkvOQAvYnVwdTMvMQAvYnVwdTMvMgAvYnVwdTMvMwAvYnVwdTQvMQAvYnVwdTQvMgAvYnVwdTQvMwAvYnVwdTQvNAAvYnVwdTUvMQAvYnVwdTUvMgAvYnVwdTUvMwAvYnVwdTUvNAAvYnVwdTUvNQAvYnVwdTYvMQAvYnVwdTYvMgAvYnVwdTYvMwAvYnVwdTYvNAAvYnVwdTYvNQAvYnVwdTYvNgAvYnVwdTcvMQAvYnVwdTcvMgAvYnVwdTcvMwAvYnVwdTcvNAAvYnVwdTcvNQAvYnVwdTcvNgAvYnVwdTcvNwAvYnVwdTgvMQAvYnVwdTgvMgAvYnVwdTgvMwAvYnVwdTgvNAAvYnVwdTgvNQAvYnVwdTgvNgAvYnVwdTgvNwAvYnVwdTgvOAAvYnVwdTkvMQAvYnVwdTkvMgAvYnVwdTkvMwAvYnVwdTkvNAAvYnVwdTkvNQAvYnVwdTkvNgAvYnVwdTkvNwAvYnVwdTkvOAAvYnVwdTkvOQAvZGFyazIzLzEAL2RhcmsyMy8yAC9kYXJrMjMvMwAvZGFyazI0LzEAL2RhcmsyNC8yAC9kYXJrMjQvMwAvZGFyazI0LzQAL2RhcmsyNS8xAC9kYXJrMjUvMgAvZGFyazI1LzMAL2RhcmsyNS80AC9kYXJrMjUvNQAvZGFyazI2LzEAL2RhcmsyNi8yAC9kYXJrMjYvMwAvZGFyazI2LzQAL2RhcmsyNi81AC9kYXJrMjYvNgAvZGFyazI3LzEAL2RhcmsyNy8yAC9kYXJrMjcvMwAvZGFyazI3LzQAL2RhcmsyNy81AC9kYXJrMjcvNgAvZGFyazI3LzcAL2RhcmsyOC8xAC9kYXJrMjgvMgAvZGFyazI4LzMAL2RhcmsyOC80AC9kYXJrMjgvNQAvZGFyazI4LzYAL2RhcmsyOC83AC9kYXJrMjgvOAAvZ25idTMvMQAvZ25idTMvMgAvZ25idTMvMwAvZ25idTQvMQAvZ25idTQvMgAvZ25idTQvMwAvZ25idTQvNAAvZ25idTUvMQAvZ25idTUvMgAvZ25idTUvMwAvZ25idTUvNAAvZ25idTUvNQAvZ25idTYvMQAvZ25idTYvMgAvZ25idTYvMwAvZ25idTYvNAAvZ25idTYvNQAvZ25idTYvNgAvZ25idTcvMQAvZ25idTcvMgAvZ25idTcvMwAvZ25idTcvNAAvZ25idTcvNQAvZ25idTcvNgAvZ25idTcvNwAvZ25idTgvMQAvZ25idTgvMgAvZ25idTgvMwAvZ25idTgvNAAvZ25idTgvNQAvZ25idTgvNgAvZ25idTgvNwAvZ25idTgvOAAvZ25idTkvMQAvZ25idTkvMgAvZ25idTkvMwAvZ25idTkvNAAvZ25idTkvNQAvZ25idTkvNgAvZ25idTkvNwAvZ25idTkvOAAvZ25idTkvOQAvZ3JlZW5zMy8xAC9ncmVlbnMzLzIAL2dyZWVuczMvMwAvZ3JlZW5zNC8xAC9ncmVlbnM0LzIAL2dyZWVuczQvMwAvZ3JlZW5zNC80AC9ncmVlbnM1LzEAL2dyZWVuczUvMgAvZ3JlZW5zNS8zAC9ncmVlbnM1LzQAL2dyZWVuczUvNQAvZ3JlZW5zNi8xAC9ncmVlbnM2LzIAL2dyZWVuczYvMwAvZ3JlZW5zNi80AC9ncmVlbnM2LzUAL2dyZWVuczYvNgAvZ3JlZW5zNy8xAC9ncmVlbnM3LzIAL2dyZWVuczcvMwAvZ3JlZW5zNy80AC9ncmVlbnM3LzUAL2dyZWVuczcvNgAvZ3JlZW5zNy83AC9ncmVlbnM4LzEAL2dyZWVuczgvMgAvZ3JlZW5zOC8zAC9ncmVlbnM4LzQAL2dyZWVuczgvNQAvZ3JlZW5zOC82AC9ncmVlbnM4LzcAL2dyZWVuczgvOAAvZ3JlZW5zOS8xAC9ncmVlbnM5LzIAL2dyZWVuczkvMwAvZ3JlZW5zOS80AC9ncmVlbnM5LzUAL2dyZWVuczkvNgAvZ3JlZW5zOS83AC9ncmVlbnM5LzgAL2dyZWVuczkvOQAvZ3JleXMzLzEAL2dyZXlzMy8yAC9ncmV5czMvMwAvZ3JleXM0LzEAL2dyZXlzNC8yAC9ncmV5czQvMwAvZ3JleXM0LzQAL2dyZXlzNS8xAC9ncmV5czUvMgAvZ3JleXM1LzMAL2dyZXlzNS80AC9ncmV5czUvNQAvZ3JleXM2LzEAL2dyZXlzNi8yAC9ncmV5czYvMwAvZ3JleXM2LzQAL2dyZXlzNi81AC9ncmV5czYvNgAvZ3JleXM3LzEAL2dyZXlzNy8yAC9ncmV5czcvMwAvZ3JleXM3LzQAL2dyZXlzNy81AC9ncmV5czcvNgAvZ3JleXM3LzcAL2dyZXlzOC8xAC9ncmV5czgvMgAvZ3JleXM4LzMAL2dyZXlzOC80AC9ncmV5czgvNQAvZ3JleXM4LzYAL2dyZXlzOC83AC9ncmV5czgvOAAvZ3JleXM5LzEAL2dyZXlzOS8yAC9ncmV5czkvMwAvZ3JleXM5LzQAL2dyZXlzOS81AC9ncmV5czkvNgAvZ3JleXM5LzcAL2dyZXlzOS84AC9ncmV5czkvOQAvb3JhbmdlczMvMQAvb3JhbmdlczMvMgAvb3JhbmdlczMvMwAvb3JhbmdlczQvMQAvb3JhbmdlczQvMgAvb3JhbmdlczQvMwAvb3JhbmdlczQvNAAvb3JhbmdlczUvMQAvb3JhbmdlczUvMgAvb3JhbmdlczUvMwAvb3JhbmdlczUvNAAvb3JhbmdlczUvNQAvb3JhbmdlczYvMQAvb3JhbmdlczYvMgAvb3JhbmdlczYvMwAvb3JhbmdlczYvNAAvb3JhbmdlczYvNQAvb3JhbmdlczYvNgAvb3JhbmdlczcvMQAvb3JhbmdlczcvMgAvb3JhbmdlczcvMwAvb3JhbmdlczcvNAAvb3JhbmdlczcvNQAvb3JhbmdlczcvNgAvb3JhbmdlczcvNwAvb3JhbmdlczgvMQAvb3JhbmdlczgvMgAvb3JhbmdlczgvMwAvb3JhbmdlczgvNAAvb3JhbmdlczgvNQAvb3JhbmdlczgvNgAvb3JhbmdlczgvNwAvb3JhbmdlczgvOAAvb3JhbmdlczkvMQAvb3JhbmdlczkvMgAvb3JhbmdlczkvMwAvb3JhbmdlczkvNAAvb3JhbmdlczkvNQAvb3JhbmdlczkvNgAvb3JhbmdlczkvNwAvb3JhbmdlczkvOAAvb3JhbmdlczkvOQAvb3JyZDMvMQAvb3JyZDMvMgAvb3JyZDMvMwAvb3JyZDQvMQAvb3JyZDQvMgAvb3JyZDQvMwAvb3JyZDQvNAAvb3JyZDUvMQAvb3JyZDUvMgAvb3JyZDUvMwAvb3JyZDUvNAAvb3JyZDUvNQAvb3JyZDYvMQAvb3JyZDYvMgAvb3JyZDYvMwAvb3JyZDYvNAAvb3JyZDYvNQAvb3JyZDYvNgAvb3JyZDcvMQAvb3JyZDcvMgAvb3JyZDcvMwAvb3JyZDcvNAAvb3JyZDcvNQAvb3JyZDcvNgAvb3JyZDcvNwAvb3JyZDgvMQAvb3JyZDgvMgAvb3JyZDgvMwAvb3JyZDgvNAAvb3JyZDgvNQAvb3JyZDgvNgAvb3JyZDgvNwAvb3JyZDgvOAAvb3JyZDkvMQAvb3JyZDkvMgAvb3JyZDkvMwAvb3JyZDkvNAAvb3JyZDkvNQAvb3JyZDkvNgAvb3JyZDkvNwAvb3JyZDkvOAAvb3JyZDkvOQAvcGFpcmVkMTAvMQAvcGFpcmVkMTAvMTAAL3BhaXJlZDEwLzIAL3BhaXJlZDEwLzMAL3BhaXJlZDEwLzQAL3BhaXJlZDEwLzUAL3BhaXJlZDEwLzYAL3BhaXJlZDEwLzcAL3BhaXJlZDEwLzgAL3BhaXJlZDEwLzkAL3BhaXJlZDExLzEAL3BhaXJlZDExLzEwAC9wYWlyZWQxMS8xMQAvcGFpcmVkMTEvMgAvcGFpcmVkMTEvMwAvcGFpcmVkMTEvNAAvcGFpcmVkMTEvNQAvcGFpcmVkMTEvNgAvcGFpcmVkMTEvNwAvcGFpcmVkMTEvOAAvcGFpcmVkMTEvOQAvcGFpcmVkMTIvMQAvcGFpcmVkMTIvMTAAL3BhaXJlZDEyLzExAC9wYWlyZWQxMi8xMgAvcGFpcmVkMTIvMgAvcGFpcmVkMTIvMwAvcGFpcmVkMTIvNAAvcGFpcmVkMTIvNQAvcGFpcmVkMTIvNgAvcGFpcmVkMTIvNwAvcGFpcmVkMTIvOAAvcGFpcmVkMTIvOQAvcGFpcmVkMy8xAC9wYWlyZWQzLzIAL3BhaXJlZDMvMwAvcGFpcmVkNC8xAC9wYWlyZWQ0LzIAL3BhaXJlZDQvMwAvcGFpcmVkNC80AC9wYWlyZWQ1LzEAL3BhaXJlZDUvMgAvcGFpcmVkNS8zAC9wYWlyZWQ1LzQAL3BhaXJlZDUvNQAvcGFpcmVkNi8xAC9wYWlyZWQ2LzIAL3BhaXJlZDYvMwAvcGFpcmVkNi80AC9wYWlyZWQ2LzUAL3BhaXJlZDYvNgAvcGFpcmVkNy8xAC9wYWlyZWQ3LzIAL3BhaXJlZDcvMwAvcGFpcmVkNy80AC9wYWlyZWQ3LzUAL3BhaXJlZDcvNgAvcGFpcmVkNy83AC9wYWlyZWQ4LzEAL3BhaXJlZDgvMgAvcGFpcmVkOC8zAC9wYWlyZWQ4LzQAL3BhaXJlZDgvNQAvcGFpcmVkOC82AC9wYWlyZWQ4LzcAL3BhaXJlZDgvOAAvcGFpcmVkOS8xAC9wYWlyZWQ5LzIAL3BhaXJlZDkvMwAvcGFpcmVkOS80AC9wYWlyZWQ5LzUAL3BhaXJlZDkvNgAvcGFpcmVkOS83AC9wYWlyZWQ5LzgAL3BhaXJlZDkvOQAvcGFzdGVsMTMvMQAvcGFzdGVsMTMvMgAvcGFzdGVsMTMvMwAvcGFzdGVsMTQvMQAvcGFzdGVsMTQvMgAvcGFzdGVsMTQvMwAvcGFzdGVsMTQvNAAvcGFzdGVsMTUvMQAvcGFzdGVsMTUvMgAvcGFzdGVsMTUvMwAvcGFzdGVsMTUvNAAvcGFzdGVsMTUvNQAvcGFzdGVsMTYvMQAvcGFzdGVsMTYvMgAvcGFzdGVsMTYvMwAvcGFzdGVsMTYvNAAvcGFzdGVsMTYvNQAvcGFzdGVsMTYvNgAvcGFzdGVsMTcvMQAvcGFzdGVsMTcvMgAvcGFzdGVsMTcvMwAvcGFzdGVsMTcvNAAvcGFzdGVsMTcvNQAvcGFzdGVsMTcvNgAvcGFzdGVsMTcvNwAvcGFzdGVsMTgvMQAvcGFzdGVsMTgvMgAvcGFzdGVsMTgvMwAvcGFzdGVsMTgvNAAvcGFzdGVsMTgvNQAvcGFzdGVsMTgvNgAvcGFzdGVsMTgvNwAvcGFzdGVsMTgvOAAvcGFzdGVsMTkvMQAvcGFzdGVsMTkvMgAvcGFzdGVsMTkvMwAvcGFzdGVsMTkvNAAvcGFzdGVsMTkvNQAvcGFzdGVsMTkvNgAvcGFzdGVsMTkvNwAvcGFzdGVsMTkvOAAvcGFzdGVsMTkvOQAvcGFzdGVsMjMvMQAvcGFzdGVsMjMvMgAvcGFzdGVsMjMvMwAvcGFzdGVsMjQvMQAvcGFzdGVsMjQvMgAvcGFzdGVsMjQvMwAvcGFzdGVsMjQvNAAvcGFzdGVsMjUvMQAvcGFzdGVsMjUvMgAvcGFzdGVsMjUvMwAvcGFzdGVsMjUvNAAvcGFzdGVsMjUvNQAvcGFzdGVsMjYvMQAvcGFzdGVsMjYvMgAvcGFzdGVsMjYvMwAvcGFzdGVsMjYvNAAvcGFzdGVsMjYvNQAvcGFzdGVsMjYvNgAvcGFzdGVsMjcvMQAvcGFzdGVsMjcvMgAvcGFzdGVsMjcvMwAvcGFzdGVsMjcvNAAvcGFzdGVsMjcvNQAvcGFzdGVsMjcvNgAvcGFzdGVsMjcvNwAvcGFzdGVsMjgvMQAvcGFzdGVsMjgvMgAvcGFzdGVsMjgvMwAvcGFzdGVsMjgvNAAvcGFzdGVsMjgvNQAvcGFzdGVsMjgvNgAvcGFzdGVsMjgvNwAvcGFzdGVsMjgvOAAvcGl5ZzEwLzEAL3BpeWcxMC8xMAAvcGl5ZzEwLzIAL3BpeWcxMC8zAC9waXlnMTAvNAAvcGl5ZzEwLzUAL3BpeWcxMC82AC9waXlnMTAvNwAvcGl5ZzEwLzgAL3BpeWcxMC85AC9waXlnMTEvMQAvcGl5ZzExLzEwAC9waXlnMTEvMTEAL3BpeWcxMS8yAC9waXlnMTEvMwAvcGl5ZzExLzQAL3BpeWcxMS81AC9waXlnMTEvNgAvcGl5ZzExLzcAL3BpeWcxMS84AC9waXlnMTEvOQAvcGl5ZzMvMQAvcGl5ZzMvMgAvcGl5ZzMvMwAvcGl5ZzQvMQAvcGl5ZzQvMgAvcGl5ZzQvMwAvcGl5ZzQvNAAvcGl5ZzUvMQAvcGl5ZzUvMgAvcGl5ZzUvMwAvcGl5ZzUvNAAvcGl5ZzUvNQAvcGl5ZzYvMQAvcGl5ZzYvMgAvcGl5ZzYvMwAvcGl5ZzYvNAAvcGl5ZzYvNQAvcGl5ZzYvNgAvcGl5ZzcvMQAvcGl5ZzcvMgAvcGl5ZzcvMwAvcGl5ZzcvNAAvcGl5ZzcvNQAvcGl5ZzcvNgAvcGl5ZzcvNwAvcGl5ZzgvMQAvcGl5ZzgvMgAvcGl5ZzgvMwAvcGl5ZzgvNAAvcGl5ZzgvNQAvcGl5ZzgvNgAvcGl5ZzgvNwAvcGl5ZzgvOAAvcGl5ZzkvMQAvcGl5ZzkvMgAvcGl5ZzkvMwAvcGl5ZzkvNAAvcGl5ZzkvNQAvcGl5ZzkvNgAvcGl5ZzkvNwAvcGl5ZzkvOAAvcGl5ZzkvOQAvcHJnbjEwLzEAL3ByZ24xMC8xMAAvcHJnbjEwLzIAL3ByZ24xMC8zAC9wcmduMTAvNAAvcHJnbjEwLzUAL3ByZ24xMC82AC9wcmduMTAvNwAvcHJnbjEwLzgAL3ByZ24xMC85AC9wcmduMTEvMQAvcHJnbjExLzEwAC9wcmduMTEvMTEAL3ByZ24xMS8yAC9wcmduMTEvMwAvcHJnbjExLzQAL3ByZ24xMS81AC9wcmduMTEvNgAvcHJnbjExLzcAL3ByZ24xMS84AC9wcmduMTEvOQAvcHJnbjMvMQAvcHJnbjMvMgAvcHJnbjMvMwAvcHJnbjQvMQAvcHJnbjQvMgAvcHJnbjQvMwAvcHJnbjQvNAAvcHJnbjUvMQAvcHJnbjUvMgAvcHJnbjUvMwAvcHJnbjUvNAAvcHJnbjUvNQAvcHJnbjYvMQAvcHJnbjYvMgAvcHJnbjYvMwAvcHJnbjYvNAAvcHJnbjYvNQAvcHJnbjYvNgAvcHJnbjcvMQAvcHJnbjcvMgAvcHJnbjcvMwAvcHJnbjcvNAAvcHJnbjcvNQAvcHJnbjcvNgAvcHJnbjcvNwAvcHJnbjgvMQAvcHJnbjgvMgAvcHJnbjgvMwAvcHJnbjgvNAAvcHJnbjgvNQAvcHJnbjgvNgAvcHJnbjgvNwAvcHJnbjgvOAAvcHJnbjkvMQAvcHJnbjkvMgAvcHJnbjkvMwAvcHJnbjkvNAAvcHJnbjkvNQAvcHJnbjkvNgAvcHJnbjkvNwAvcHJnbjkvOAAvcHJnbjkvOQAvcHVidTMvMQAvcHVidTMvMgAvcHVidTMvMwAvcHVidTQvMQAvcHVidTQvMgAvcHVidTQvMwAvcHVidTQvNAAvcHVidTUvMQAvcHVidTUvMgAvcHVidTUvMwAvcHVidTUvNAAvcHVidTUvNQAvcHVidTYvMQAvcHVidTYvMgAvcHVidTYvMwAvcHVidTYvNAAvcHVidTYvNQAvcHVidTYvNgAvcHVidTcvMQAvcHVidTcvMgAvcHVidTcvMwAvcHVidTcvNAAvcHVidTcvNQAvcHVidTcvNgAvcHVidTcvNwAvcHVidTgvMQAvcHVidTgvMgAvcHVidTgvMwAvcHVidTgvNAAvcHVidTgvNQAvcHVidTgvNgAvcHVidTgvNwAvcHVidTgvOAAvcHVidTkvMQAvcHVidTkvMgAvcHVidTkvMwAvcHVidTkvNAAvcHVidTkvNQAvcHVidTkvNgAvcHVidTkvNwAvcHVidTkvOAAvcHVidTkvOQAvcHVidWduMy8xAC9wdWJ1Z24zLzIAL3B1YnVnbjMvMwAvcHVidWduNC8xAC9wdWJ1Z240LzIAL3B1YnVnbjQvMwAvcHVidWduNC80AC9wdWJ1Z241LzEAL3B1YnVnbjUvMgAvcHVidWduNS8zAC9wdWJ1Z241LzQAL3B1YnVnbjUvNQAvcHVidWduNi8xAC9wdWJ1Z242LzIAL3B1YnVnbjYvMwAvcHVidWduNi80AC9wdWJ1Z242LzUAL3B1YnVnbjYvNgAvcHVidWduNy8xAC9wdWJ1Z243LzIAL3B1YnVnbjcvMwAvcHVidWduNy80AC9wdWJ1Z243LzUAL3B1YnVnbjcvNgAvcHVidWduNy83AC9wdWJ1Z244LzEAL3B1YnVnbjgvMgAvcHVidWduOC8zAC9wdWJ1Z244LzQAL3B1YnVnbjgvNQAvcHVidWduOC82AC9wdWJ1Z244LzcAL3B1YnVnbjgvOAAvcHVidWduOS8xAC9wdWJ1Z245LzIAL3B1YnVnbjkvMwAvcHVidWduOS80AC9wdWJ1Z245LzUAL3B1YnVnbjkvNgAvcHVidWduOS83AC9wdWJ1Z245LzgAL3B1YnVnbjkvOQAvcHVvcjEwLzEAL3B1b3IxMC8xMAAvcHVvcjEwLzIAL3B1b3IxMC8zAC9wdW9yMTAvNAAvcHVvcjEwLzUAL3B1b3IxMC82AC9wdW9yMTAvNwAvcHVvcjEwLzgAL3B1b3IxMC85AC9wdW9yMTEvMQAvcHVvcjExLzEwAC9wdW9yMTEvMTEAL3B1b3IxMS8yAC9wdW9yMTEvMwAvcHVvcjExLzQAL3B1b3IxMS81AC9wdW9yMTEvNgAvcHVvcjExLzcAL3B1b3IxMS84AC9wdW9yMTEvOQAvcHVvcjMvMQAvcHVvcjMvMgAvcHVvcjMvMwAvcHVvcjQvMQAvcHVvcjQvMgAvcHVvcjQvMwAvcHVvcjQvNAAvcHVvcjUvMQAvcHVvcjUvMgAvcHVvcjUvMwAvcHVvcjUvNAAvcHVvcjUvNQAvcHVvcjYvMQAvcHVvcjYvMgAvcHVvcjYvMwAvcHVvcjYvNAAvcHVvcjYvNQAvcHVvcjYvNgAvcHVvcjcvMQAvcHVvcjcvMgAvcHVvcjcvMwAvcHVvcjcvNAAvcHVvcjcvNQAvcHVvcjcvNgAvcHVvcjcvNwAvcHVvcjgvMQAvcHVvcjgvMgAvcHVvcjgvMwAvcHVvcjgvNAAvcHVvcjgvNQAvcHVvcjgvNgAvcHVvcjgvNwAvcHVvcjgvOAAvcHVvcjkvMQAvcHVvcjkvMgAvcHVvcjkvMwAvcHVvcjkvNAAvcHVvcjkvNQAvcHVvcjkvNgAvcHVvcjkvNwAvcHVvcjkvOAAvcHVvcjkvOQAvcHVyZDMvMQAvcHVyZDMvMgAvcHVyZDMvMwAvcHVyZDQvMQAvcHVyZDQvMgAvcHVyZDQvMwAvcHVyZDQvNAAvcHVyZDUvMQAvcHVyZDUvMgAvcHVyZDUvMwAvcHVyZDUvNAAvcHVyZDUvNQAvcHVyZDYvMQAvcHVyZDYvMgAvcHVyZDYvMwAvcHVyZDYvNAAvcHVyZDYvNQAvcHVyZDYvNgAvcHVyZDcvMQAvcHVyZDcvMgAvcHVyZDcvMwAvcHVyZDcvNAAvcHVyZDcvNQAvcHVyZDcvNgAvcHVyZDcvNwAvcHVyZDgvMQAvcHVyZDgvMgAvcHVyZDgvMwAvcHVyZDgvNAAvcHVyZDgvNQAvcHVyZDgvNgAvcHVyZDgvNwAvcHVyZDgvOAAvcHVyZDkvMQAvcHVyZDkvMgAvcHVyZDkvMwAvcHVyZDkvNAAvcHVyZDkvNQAvcHVyZDkvNgAvcHVyZDkvNwAvcHVyZDkvOAAvcHVyZDkvOQAvcHVycGxlczMvMQAvcHVycGxlczMvMgAvcHVycGxlczMvMwAvcHVycGxlczQvMQAvcHVycGxlczQvMgAvcHVycGxlczQvMwAvcHVycGxlczQvNAAvcHVycGxlczUvMQAvcHVycGxlczUvMgAvcHVycGxlczUvMwAvcHVycGxlczUvNAAvcHVycGxlczUvNQAvcHVycGxlczYvMQAvcHVycGxlczYvMgAvcHVycGxlczYvMwAvcHVycGxlczYvNAAvcHVycGxlczYvNQAvcHVycGxlczYvNgAvcHVycGxlczcvMQAvcHVycGxlczcvMgAvcHVycGxlczcvMwAvcHVycGxlczcvNAAvcHVycGxlczcvNQAvcHVycGxlczcvNgAvcHVycGxlczcvNwAvcHVycGxlczgvMQAvcHVycGxlczgvMgAvcHVycGxlczgvMwAvcHVycGxlczgvNAAvcHVycGxlczgvNQAvcHVycGxlczgvNgAvcHVycGxlczgvNwAvcHVycGxlczgvOAAvcHVycGxlczkvMQAvcHVycGxlczkvMgAvcHVycGxlczkvMwAvcHVycGxlczkvNAAvcHVycGxlczkvNQAvcHVycGxlczkvNgAvcHVycGxlczkvNwAvcHVycGxlczkvOAAvcHVycGxlczkvOQAvcmRidTEwLzEAL3JkYnUxMC8xMAAvcmRidTEwLzIAL3JkYnUxMC8zAC9yZGJ1MTAvNAAvcmRidTEwLzUAL3JkYnUxMC82AC9yZGJ1MTAvNwAvcmRidTEwLzgAL3JkYnUxMC85AC9yZGJ1MTEvMQAvcmRidTExLzEwAC9yZGJ1MTEvMTEAL3JkYnUxMS8yAC9yZGJ1MTEvMwAvcmRidTExLzQAL3JkYnUxMS81AC9yZGJ1MTEvNgAvcmRidTExLzcAL3JkYnUxMS84AC9yZGJ1MTEvOQAvcmRidTMvMQAvcmRidTMvMgAvcmRidTMvMwAvcmRidTQvMQAvcmRidTQvMgAvcmRidTQvMwAvcmRidTQvNAAvcmRidTUvMQAvcmRidTUvMgAvcmRidTUvMwAvcmRidTUvNAAvcmRidTUvNQAvcmRidTYvMQAvcmRidTYvMgAvcmRidTYvMwAvcmRidTYvNAAvcmRidTYvNQAvcmRidTYvNgAvcmRidTcvMQAvcmRidTcvMgAvcmRidTcvMwAvcmRidTcvNAAvcmRidTcvNQAvcmRidTcvNgAvcmRidTcvNwAvcmRidTgvMQAvcmRidTgvMgAvcmRidTgvMwAvcmRidTgvNAAvcmRidTgvNQAvcmRidTgvNgAvcmRidTgvNwAvcmRidTgvOAAvcmRidTkvMQAvcmRidTkvMgAvcmRidTkvMwAvcmRidTkvNAAvcmRidTkvNQAvcmRidTkvNgAvcmRidTkvNwAvcmRidTkvOAAvcmRidTkvOQAvcmRneTEwLzEAL3JkZ3kxMC8xMAAvcmRneTEwLzIAL3JkZ3kxMC8zAC9yZGd5MTAvNAAvcmRneTEwLzUAL3JkZ3kxMC82AC9yZGd5MTAvNwAvcmRneTEwLzgAL3JkZ3kxMC85AC9yZGd5MTEvMQAvcmRneTExLzEwAC9yZGd5MTEvMTEAL3JkZ3kxMS8yAC9yZGd5MTEvMwAvcmRneTExLzQAL3JkZ3kxMS81AC9yZGd5MTEvNgAvcmRneTExLzcAL3JkZ3kxMS84AC9yZGd5MTEvOQAvcmRneTMvMQAvcmRneTMvMgAvcmRneTMvMwAvcmRneTQvMQAvcmRneTQvMgAvcmRneTQvMwAvcmRneTQvNAAvcmRneTUvMQAvcmRneTUvMgAvcmRneTUvMwAvcmRneTUvNAAvcmRneTUvNQAvcmRneTYvMQAvcmRneTYvMgAvcmRneTYvMwAvcmRneTYvNAAvcmRneTYvNQAvcmRneTYvNgAvcmRneTcvMQAvcmRneTcvMgAvcmRneTcvMwAvcmRneTcvNAAvcmRneTcvNQAvcmRneTcvNgAvcmRneTcvNwAvcmRneTgvMQAvcmRneTgvMgAvcmRneTgvMwAvcmRneTgvNAAvcmRneTgvNQAvcmRneTgvNgAvcmRneTgvNwAvcmRneTgvOAAvcmRneTkvMQAvcmRneTkvMgAvcmRneTkvMwAvcmRneTkvNAAvcmRneTkvNQAvcmRneTkvNgAvcmRneTkvNwAvcmRneTkvOAAvcmRneTkvOQAvcmRwdTMvMQAvcmRwdTMvMgAvcmRwdTMvMwAvcmRwdTQvMQAvcmRwdTQvMgAvcmRwdTQvMwAvcmRwdTQvNAAvcmRwdTUvMQAvcmRwdTUvMgAvcmRwdTUvMwAvcmRwdTUvNAAvcmRwdTUvNQAvcmRwdTYvMQAvcmRwdTYvMgAvcmRwdTYvMwAvcmRwdTYvNAAvcmRwdTYvNQAvcmRwdTYvNgAvcmRwdTcvMQAvcmRwdTcvMgAvcmRwdTcvMwAvcmRwdTcvNAAvcmRwdTcvNQAvcmRwdTcvNgAvcmRwdTcvNwAvcmRwdTgvMQAvcmRwdTgvMgAvcmRwdTgvMwAvcmRwdTgvNAAvcmRwdTgvNQAvcmRwdTgvNgAvcmRwdTgvNwAvcmRwdTgvOAAvcmRwdTkvMQAvcmRwdTkvMgAvcmRwdTkvMwAvcmRwdTkvNAAvcmRwdTkvNQAvcmRwdTkvNgAvcmRwdTkvNwAvcmRwdTkvOAAvcmRwdTkvOQAvcmR5bGJ1MTAvMQAvcmR5bGJ1MTAvMTAAL3JkeWxidTEwLzIAL3JkeWxidTEwLzMAL3JkeWxidTEwLzQAL3JkeWxidTEwLzUAL3JkeWxidTEwLzYAL3JkeWxidTEwLzcAL3JkeWxidTEwLzgAL3JkeWxidTEwLzkAL3JkeWxidTExLzEAL3JkeWxidTExLzEwAC9yZHlsYnUxMS8xMQAvcmR5bGJ1MTEvMgAvcmR5bGJ1MTEvMwAvcmR5bGJ1MTEvNAAvcmR5bGJ1MTEvNQAvcmR5bGJ1MTEvNgAvcmR5bGJ1MTEvNwAvcmR5bGJ1MTEvOAAvcmR5bGJ1MTEvOQAvcmR5bGJ1My8xAC9yZHlsYnUzLzIAL3JkeWxidTMvMwAvcmR5bGJ1NC8xAC9yZHlsYnU0LzIAL3JkeWxidTQvMwAvcmR5bGJ1NC80AC9yZHlsYnU1LzEAL3JkeWxidTUvMgAvcmR5bGJ1NS8zAC9yZHlsYnU1LzQAL3JkeWxidTUvNQAvcmR5bGJ1Ni8xAC9yZHlsYnU2LzIAL3JkeWxidTYvMwAvcmR5bGJ1Ni80AC9yZHlsYnU2LzUAL3JkeWxidTYvNgAvcmR5bGJ1Ny8xAC9yZHlsYnU3LzIAL3JkeWxidTcvMwAvcmR5bGJ1Ny80AC9yZHlsYnU3LzUAL3JkeWxidTcvNgAvcmR5bGJ1Ny83AC9yZHlsYnU4LzEAL3JkeWxidTgvMgAvcmR5bGJ1OC8zAC9yZHlsYnU4LzQAL3JkeWxidTgvNQAvcmR5bGJ1OC82AC9yZHlsYnU4LzcAL3JkeWxidTgvOAAvcmR5bGJ1OS8xAC9yZHlsYnU5LzIAL3JkeWxidTkvMwAvcmR5bGJ1OS80AC9yZHlsYnU5LzUAL3JkeWxidTkvNgAvcmR5bGJ1OS83AC9yZHlsYnU5LzgAL3JkeWxidTkvOQAvcmR5bGduMTAvMQAvcmR5bGduMTAvMTAAL3JkeWxnbjEwLzIAL3JkeWxnbjEwLzMAL3JkeWxnbjEwLzQAL3JkeWxnbjEwLzUAL3JkeWxnbjEwLzYAL3JkeWxnbjEwLzcAL3JkeWxnbjEwLzgAL3JkeWxnbjEwLzkAL3JkeWxnbjExLzEAL3JkeWxnbjExLzEwAC9yZHlsZ24xMS8xMQAvcmR5bGduMTEvMgAvcmR5bGduMTEvMwAvcmR5bGduMTEvNAAvcmR5bGduMTEvNQAvcmR5bGduMTEvNgAvcmR5bGduMTEvNwAvcmR5bGduMTEvOAAvcmR5bGduMTEvOQAvcmR5bGduMy8xAC9yZHlsZ24zLzIAL3JkeWxnbjMvMwAvcmR5bGduNC8xAC9yZHlsZ240LzIAL3JkeWxnbjQvMwAvcmR5bGduNC80AC9yZHlsZ241LzEAL3JkeWxnbjUvMgAvcmR5bGduNS8zAC9yZHlsZ241LzQAL3JkeWxnbjUvNQAvcmR5bGduNi8xAC9yZHlsZ242LzIAL3JkeWxnbjYvMwAvcmR5bGduNi80AC9yZHlsZ242LzUAL3JkeWxnbjYvNgAvcmR5bGduNy8xAC9yZHlsZ243LzIAL3JkeWxnbjcvMwAvcmR5bGduNy80AC9yZHlsZ243LzUAL3JkeWxnbjcvNgAvcmR5bGduNy83AC9yZHlsZ244LzEAL3JkeWxnbjgvMgAvcmR5bGduOC8zAC9yZHlsZ244LzQAL3JkeWxnbjgvNQAvcmR5bGduOC82AC9yZHlsZ244LzcAL3JkeWxnbjgvOAAvcmR5bGduOS8xAC9yZHlsZ245LzIAL3JkeWxnbjkvMwAvcmR5bGduOS80AC9yZHlsZ245LzUAL3JkeWxnbjkvNgAvcmR5bGduOS83AC9yZHlsZ245LzgAL3JkeWxnbjkvOQAvcmVkczMvMQAvcmVkczMvMgAvcmVkczMvMwAvcmVkczQvMQAvcmVkczQvMgAvcmVkczQvMwAvcmVkczQvNAAvcmVkczUvMQAvcmVkczUvMgAvcmVkczUvMwAvcmVkczUvNAAvcmVkczUvNQAvcmVkczYvMQAvcmVkczYvMgAvcmVkczYvMwAvcmVkczYvNAAvcmVkczYvNQAvcmVkczYvNgAvcmVkczcvMQAvcmVkczcvMgAvcmVkczcvMwAvcmVkczcvNAAvcmVkczcvNQAvcmVkczcvNgAvcmVkczcvNwAvcmVkczgvMQAvcmVkczgvMgAvcmVkczgvMwAvcmVkczgvNAAvcmVkczgvNQAvcmVkczgvNgAvcmVkczgvNwAvcmVkczgvOAAvcmVkczkvMQAvcmVkczkvMgAvcmVkczkvMwAvcmVkczkvNAAvcmVkczkvNQAvcmVkczkvNgAvcmVkczkvNwAvcmVkczkvOAAvcmVkczkvOQAvc2V0MTMvMQAvc2V0MTMvMgAvc2V0MTMvMwAvc2V0MTQvMQAvc2V0MTQvMgAvc2V0MTQvMwAvc2V0MTQvNAAvc2V0MTUvMQAvc2V0MTUvMgAvc2V0MTUvMwAvc2V0MTUvNAAvc2V0MTUvNQAvc2V0MTYvMQAvc2V0MTYvMgAvc2V0MTYvMwAvc2V0MTYvNAAvc2V0MTYvNQAvc2V0MTYvNgAvc2V0MTcvMQAvc2V0MTcvMgAvc2V0MTcvMwAvc2V0MTcvNAAvc2V0MTcvNQAvc2V0MTcvNgAvc2V0MTcvNwAvc2V0MTgvMQAvc2V0MTgvMgAvc2V0MTgvMwAvc2V0MTgvNAAvc2V0MTgvNQAvc2V0MTgvNgAvc2V0MTgvNwAvc2V0MTgvOAAvc2V0MTkvMQAvc2V0MTkvMgAvc2V0MTkvMwAvc2V0MTkvNAAvc2V0MTkvNQAvc2V0MTkvNgAvc2V0MTkvNwAvc2V0MTkvOAAvc2V0MTkvOQAvc2V0MjMvMQAvc2V0MjMvMgAvc2V0MjMvMwAvc2V0MjQvMQAvc2V0MjQvMgAvc2V0MjQvMwAvc2V0MjQvNAAvc2V0MjUvMQAvc2V0MjUvMgAvc2V0MjUvMwAvc2V0MjUvNAAvc2V0MjUvNQAvc2V0MjYvMQAvc2V0MjYvMgAvc2V0MjYvMwAvc2V0MjYvNAAvc2V0MjYvNQAvc2V0MjYvNgAvc2V0MjcvMQAvc2V0MjcvMgAvc2V0MjcvMwAvc2V0MjcvNAAvc2V0MjcvNQAvc2V0MjcvNgAvc2V0MjcvNwAvc2V0MjgvMQAvc2V0MjgvMgAvc2V0MjgvMwAvc2V0MjgvNAAvc2V0MjgvNQAvc2V0MjgvNgAvc2V0MjgvNwAvc2V0MjgvOAAvc2V0MzEwLzEAL3NldDMxMC8xMAAvc2V0MzEwLzIAL3NldDMxMC8zAC9zZXQzMTAvNAAvc2V0MzEwLzUAL3NldDMxMC82AC9zZXQzMTAvNwAvc2V0MzEwLzgAL3NldDMxMC85AC9zZXQzMTEvMQAvc2V0MzExLzEwAC9zZXQzMTEvMTEAL3NldDMxMS8yAC9zZXQzMTEvMwAvc2V0MzExLzQAL3NldDMxMS81AC9zZXQzMTEvNgAvc2V0MzExLzcAL3NldDMxMS84AC9zZXQzMTEvOQAvc2V0MzEyLzEAL3NldDMxMi8xMAAvc2V0MzEyLzExAC9zZXQzMTIvMTIAL3NldDMxMi8yAC9zZXQzMTIvMwAvc2V0MzEyLzQAL3NldDMxMi81AC9zZXQzMTIvNgAvc2V0MzEyLzcAL3NldDMxMi84AC9zZXQzMTIvOQAvc2V0MzMvMQAvc2V0MzMvMgAvc2V0MzMvMwAvc2V0MzQvMQAvc2V0MzQvMgAvc2V0MzQvMwAvc2V0MzQvNAAvc2V0MzUvMQAvc2V0MzUvMgAvc2V0MzUvMwAvc2V0MzUvNAAvc2V0MzUvNQAvc2V0MzYvMQAvc2V0MzYvMgAvc2V0MzYvMwAvc2V0MzYvNAAvc2V0MzYvNQAvc2V0MzYvNgAvc2V0MzcvMQAvc2V0MzcvMgAvc2V0MzcvMwAvc2V0MzcvNAAvc2V0MzcvNQAvc2V0MzcvNgAvc2V0MzcvNwAvc2V0MzgvMQAvc2V0MzgvMgAvc2V0MzgvMwAvc2V0MzgvNAAvc2V0MzgvNQAvc2V0MzgvNgAvc2V0MzgvNwAvc2V0MzgvOAAvc2V0MzkvMQAvc2V0MzkvMgAvc2V0MzkvMwAvc2V0MzkvNAAvc2V0MzkvNQAvc2V0MzkvNgAvc2V0MzkvNwAvc2V0MzkvOAAvc2V0MzkvOQAvc3BlY3RyYWwxMC8xAC9zcGVjdHJhbDEwLzEwAC9zcGVjdHJhbDEwLzIAL3NwZWN0cmFsMTAvMwAvc3BlY3RyYWwxMC80AC9zcGVjdHJhbDEwLzUAL3NwZWN0cmFsMTAvNgAvc3BlY3RyYWwxMC83AC9zcGVjdHJhbDEwLzgAL3NwZWN0cmFsMTAvOQAvc3BlY3RyYWwxMS8xAC9zcGVjdHJhbDExLzEwAC9zcGVjdHJhbDExLzExAC9zcGVjdHJhbDExLzIAL3NwZWN0cmFsMTEvMwAvc3BlY3RyYWwxMS80AC9zcGVjdHJhbDExLzUAL3NwZWN0cmFsMTEvNgAvc3BlY3RyYWwxMS83AC9zcGVjdHJhbDExLzgAL3NwZWN0cmFsMTEvOQAvc3BlY3RyYWwzLzEAL3NwZWN0cmFsMy8yAC9zcGVjdHJhbDMvMwAvc3BlY3RyYWw0LzEAL3NwZWN0cmFsNC8yAC9zcGVjdHJhbDQvMwAvc3BlY3RyYWw0LzQAL3NwZWN0cmFsNS8xAC9zcGVjdHJhbDUvMgAvc3BlY3RyYWw1LzMAL3NwZWN0cmFsNS80AC9zcGVjdHJhbDUvNQAvc3BlY3RyYWw2LzEAL3NwZWN0cmFsNi8yAC9zcGVjdHJhbDYvMwAvc3BlY3RyYWw2LzQAL3NwZWN0cmFsNi81AC9zcGVjdHJhbDYvNgAvc3BlY3RyYWw3LzEAL3NwZWN0cmFsNy8yAC9zcGVjdHJhbDcvMwAvc3BlY3RyYWw3LzQAL3NwZWN0cmFsNy81AC9zcGVjdHJhbDcvNgAvc3BlY3RyYWw3LzcAL3NwZWN0cmFsOC8xAC9zcGVjdHJhbDgvMgAvc3BlY3RyYWw4LzMAL3NwZWN0cmFsOC80AC9zcGVjdHJhbDgvNQAvc3BlY3RyYWw4LzYAL3NwZWN0cmFsOC83AC9zcGVjdHJhbDgvOAAvc3BlY3RyYWw5LzEAL3NwZWN0cmFsOS8yAC9zcGVjdHJhbDkvMwAvc3BlY3RyYWw5LzQAL3NwZWN0cmFsOS81AC9zcGVjdHJhbDkvNgAvc3BlY3RyYWw5LzcAL3NwZWN0cmFsOS84AC9zcGVjdHJhbDkvOQAvc3ZnL2FsaWNlYmx1ZQAvc3ZnL2FudGlxdWV3aGl0ZQAvc3ZnL2FxdWEAL3N2Zy9hcXVhbWFyaW5lAC9zdmcvYXp1cmUAL3N2Zy9iZWlnZQAvc3ZnL2Jpc3F1ZQAvc3ZnL2JsYWNrAC9zdmcvYmxhbmNoZWRhbG1vbmQAL3N2Zy9ibHVlAC9zdmcvYmx1ZXZpb2xldAAvc3ZnL2Jyb3duAC9zdmcvYnVybHl3b29kAC9zdmcvY2FkZXRibHVlAC9zdmcvY2hhcnRyZXVzZQAvc3ZnL2Nob2NvbGF0ZQAvc3ZnL2NvcmFsAC9zdmcvY29ybmZsb3dlcmJsdWUAL3N2Zy9jb3Juc2lsawAvc3ZnL2NyaW1zb24AL3N2Zy9jeWFuAC9zdmcvZGFya2JsdWUAL3N2Zy9kYXJrY3lhbgAvc3ZnL2Rhcmtnb2xkZW5yb2QAL3N2Zy9kYXJrZ3JheQAvc3ZnL2RhcmtncmVlbgAvc3ZnL2RhcmtncmV5AC9zdmcvZGFya2toYWtpAC9zdmcvZGFya21hZ2VudGEAL3N2Zy9kYXJrb2xpdmVncmVlbgAvc3ZnL2RhcmtvcmFuZ2UAL3N2Zy9kYXJrb3JjaGlkAC9zdmcvZGFya3JlZAAvc3ZnL2RhcmtzYWxtb24AL3N2Zy9kYXJrc2VhZ3JlZW4AL3N2Zy9kYXJrc2xhdGVibHVlAC9zdmcvZGFya3NsYXRlZ3JheQAvc3ZnL2RhcmtzbGF0ZWdyZXkAL3N2Zy9kYXJrdHVycXVvaXNlAC9zdmcvZGFya3Zpb2xldAAvc3ZnL2RlZXBwaW5rAC9zdmcvZGVlcHNreWJsdWUAL3N2Zy9kaW1ncmF5AC9zdmcvZGltZ3JleQAvc3ZnL2RvZGdlcmJsdWUAL3N2Zy9maXJlYnJpY2sAL3N2Zy9mbG9yYWx3aGl0ZQAvc3ZnL2ZvcmVzdGdyZWVuAC9zdmcvZnVjaHNpYQAvc3ZnL2dhaW5zYm9ybwAvc3ZnL2dob3N0d2hpdGUAL3N2Zy9nb2xkAC9zdmcvZ29sZGVucm9kAC9zdmcvZ3JheQAvc3ZnL2dyZWVuAC9zdmcvZ3JlZW55ZWxsb3cAL3N2Zy9ncmV5AC9zdmcvaG9uZXlkZXcAL3N2Zy9ob3RwaW5rAC9zdmcvaW5kaWFucmVkAC9zdmcvaW5kaWdvAC9zdmcvaXZvcnkAL3N2Zy9raGFraQAvc3ZnL2xhdmVuZGVyAC9zdmcvbGF2ZW5kZXJibHVzaAAvc3ZnL2xhd25ncmVlbgAvc3ZnL2xlbW9uY2hpZmZvbgAvc3ZnL2xpZ2h0Ymx1ZQAvc3ZnL2xpZ2h0Y29yYWwAL3N2Zy9saWdodGN5YW4AL3N2Zy9saWdodGdvbGRlbnJvZHllbGxvdwAvc3ZnL2xpZ2h0Z3JheQAvc3ZnL2xpZ2h0Z3JlZW4AL3N2Zy9saWdodGdyZXkAL3N2Zy9saWdodHBpbmsAL3N2Zy9saWdodHNhbG1vbgAvc3ZnL2xpZ2h0c2VhZ3JlZW4AL3N2Zy9saWdodHNreWJsdWUAL3N2Zy9saWdodHNsYXRlZ3JheQAvc3ZnL2xpZ2h0c2xhdGVncmV5AC9zdmcvbGlnaHRzdGVlbGJsdWUAL3N2Zy9saWdodHllbGxvdwAvc3ZnL2xpbWUAL3N2Zy9saW1lZ3JlZW4AL3N2Zy9saW5lbgAvc3ZnL21hZ2VudGEAL3N2Zy9tYXJvb24AL3N2Zy9tZWRpdW1hcXVhbWFyaW5lAC9zdmcvbWVkaXVtYmx1ZQAvc3ZnL21lZGl1bW9yY2hpZAAvc3ZnL21lZGl1bXB1cnBsZQAvc3ZnL21lZGl1bXNlYWdyZWVuAC9zdmcvbWVkaXVtc2xhdGVibHVlAC9zdmcvbWVkaXVtc3ByaW5nZ3JlZW4AL3N2Zy9tZWRpdW10dXJxdW9pc2UAL3N2Zy9tZWRpdW12aW9sZXRyZWQAL3N2Zy9taWRuaWdodGJsdWUAL3N2Zy9taW50Y3JlYW0AL3N2Zy9taXN0eXJvc2UAL3N2Zy9tb2NjYXNpbgAvc3ZnL25hdmFqb3doaXRlAC9zdmcvbmF2eQAvc3ZnL29sZGxhY2UAL3N2Zy9vbGl2ZQAvc3ZnL29saXZlZHJhYgAvc3ZnL29yYW5nZQAvc3ZnL29yYW5nZXJlZAAvc3ZnL29yY2hpZAAvc3ZnL3BhbGVnb2xkZW5yb2QAL3N2Zy9wYWxlZ3JlZW4AL3N2Zy9wYWxldHVycXVvaXNlAC9zdmcvcGFsZXZpb2xldHJlZAAvc3ZnL3BhcGF5YXdoaXAAL3N2Zy9wZWFjaHB1ZmYAL3N2Zy9wZXJ1AC9zdmcvcGluawAvc3ZnL3BsdW0AL3N2Zy9wb3dkZXJibHVlAC9zdmcvcHVycGxlAC9zdmcvcmVkAC9zdmcvcm9zeWJyb3duAC9zdmcvcm95YWxibHVlAC9zdmcvc2FkZGxlYnJvd24AL3N2Zy9zYWxtb24AL3N2Zy9zYW5keWJyb3duAC9zdmcvc2VhZ3JlZW4AL3N2Zy9zZWFzaGVsbAAvc3ZnL3NpZW5uYQAvc3ZnL3NpbHZlcgAvc3ZnL3NreWJsdWUAL3N2Zy9zbGF0ZWJsdWUAL3N2Zy9zbGF0ZWdyYXkAL3N2Zy9zbGF0ZWdyZXkAL3N2Zy9zbm93AC9zdmcvc3ByaW5nZ3JlZW4AL3N2Zy9zdGVlbGJsdWUAL3N2Zy90YW4AL3N2Zy90ZWFsAC9zdmcvdGhpc3RsZQAvc3ZnL3RvbWF0bwAvc3ZnL3R1cnF1b2lzZQAvc3ZnL3Zpb2xldAAvc3ZnL3doZWF0AC9zdmcvd2hpdGUAL3N2Zy93aGl0ZXNtb2tlAC9zdmcveWVsbG93AC9zdmcveWVsbG93Z3JlZW4AL3lsZ24zLzEAL3lsZ24zLzIAL3lsZ24zLzMAL3lsZ240LzEAL3lsZ240LzIAL3lsZ240LzMAL3lsZ240LzQAL3lsZ241LzEAL3lsZ241LzIAL3lsZ241LzMAL3lsZ241LzQAL3lsZ241LzUAL3lsZ242LzEAL3lsZ242LzIAL3lsZ242LzMAL3lsZ242LzQAL3lsZ242LzUAL3lsZ242LzYAL3lsZ243LzEAL3lsZ243LzIAL3lsZ243LzMAL3lsZ243LzQAL3lsZ243LzUAL3lsZ243LzYAL3lsZ243LzcAL3lsZ244LzEAL3lsZ244LzIAL3lsZ244LzMAL3lsZ244LzQAL3lsZ244LzUAL3lsZ244LzYAL3lsZ244LzcAL3lsZ244LzgAL3lsZ245LzEAL3lsZ245LzIAL3lsZ245LzMAL3lsZ245LzQAL3lsZ245LzUAL3lsZ245LzYAL3lsZ245LzcAL3lsZ245LzgAL3lsZ245LzkAL3lsZ25idTMvMQAveWxnbmJ1My8yAC95bGduYnUzLzMAL3lsZ25idTQvMQAveWxnbmJ1NC8yAC95bGduYnU0LzMAL3lsZ25idTQvNAAveWxnbmJ1NS8xAC95bGduYnU1LzIAL3lsZ25idTUvMwAveWxnbmJ1NS80AC95bGduYnU1LzUAL3lsZ25idTYvMQAveWxnbmJ1Ni8yAC95bGduYnU2LzMAL3lsZ25idTYvNAAveWxnbmJ1Ni81AC95bGduYnU2LzYAL3lsZ25idTcvMQAveWxnbmJ1Ny8yAC95bGduYnU3LzMAL3lsZ25idTcvNAAveWxnbmJ1Ny81AC95bGduYnU3LzYAL3lsZ25idTcvNwAveWxnbmJ1OC8xAC95bGduYnU4LzIAL3lsZ25idTgvMwAveWxnbmJ1OC80AC95bGduYnU4LzUAL3lsZ25idTgvNgAveWxnbmJ1OC83AC95bGduYnU4LzgAL3lsZ25idTkvMQAveWxnbmJ1OS8yAC95bGduYnU5LzMAL3lsZ25idTkvNAAveWxnbmJ1OS81AC95bGduYnU5LzYAL3lsZ25idTkvNwAveWxnbmJ1OS84AC95bGduYnU5LzkAL3lsb3JicjMvMQAveWxvcmJyMy8yAC95bG9yYnIzLzMAL3lsb3JicjQvMQAveWxvcmJyNC8yAC95bG9yYnI0LzMAL3lsb3JicjQvNAAveWxvcmJyNS8xAC95bG9yYnI1LzIAL3lsb3JicjUvMwAveWxvcmJyNS80AC95bG9yYnI1LzUAL3lsb3JicjYvMQAveWxvcmJyNi8yAC95bG9yYnI2LzMAL3lsb3JicjYvNAAveWxvcmJyNi81AC95bG9yYnI2LzYAL3lsb3JicjcvMQAveWxvcmJyNy8yAC95bG9yYnI3LzMAL3lsb3JicjcvNAAveWxvcmJyNy81AC95bG9yYnI3LzYAL3lsb3JicjcvNwAveWxvcmJyOC8xAC95bG9yYnI4LzIAL3lsb3JicjgvMwAveWxvcmJyOC80AC95bG9yYnI4LzUAL3lsb3JicjgvNgAveWxvcmJyOC83AC95bG9yYnI4LzgAL3lsb3JicjkvMQAveWxvcmJyOS8yAC95bG9yYnI5LzMAL3lsb3JicjkvNAAveWxvcmJyOS81AC95bG9yYnI5LzYAL3lsb3JicjkvNwAveWxvcmJyOS84AC95bG9yYnI5LzkAL3lsb3JyZDMvMQAveWxvcnJkMy8yAC95bG9ycmQzLzMAL3lsb3JyZDQvMQAveWxvcnJkNC8yAC95bG9ycmQ0LzMAL3lsb3JyZDQvNAAveWxvcnJkNS8xAC95bG9ycmQ1LzIAL3lsb3JyZDUvMwAveWxvcnJkNS80AC95bG9ycmQ1LzUAL3lsb3JyZDYvMQAveWxvcnJkNi8yAC95bG9ycmQ2LzMAL3lsb3JyZDYvNAAveWxvcnJkNi81AC95bG9ycmQ2LzYAL3lsb3JyZDcvMQAveWxvcnJkNy8yAC95bG9ycmQ3LzMAL3lsb3JyZDcvNAAveWxvcnJkNy81AC95bG9ycmQ3LzYAL3lsb3JyZDcvNwAveWxvcnJkOC8xAC95bG9ycmQ4LzIAL3lsb3JyZDgvMwAveWxvcnJkOC80AC95bG9ycmQ4LzUAL3lsb3JyZDgvNgAveWxvcnJkOC83AC95bG9ycmQ4LzgAL3lsb3JyZDkvMQAveWxvcnJkOS8yAC95bG9ycmQ5LzMAL3lsb3JyZDkvNAAveWxvcnJkOS81AC95bG9ycmQ5LzYAL3lsb3JyZDkvNwAveWxvcnJkOS84AC95bG9ycmQ5LzkAYWxpY2VibHVlAGFudGlxdWV3aGl0ZQBhbnRpcXVld2hpdGUxAGFudGlxdWV3aGl0ZTIAYW50aXF1ZXdoaXRlMwBhbnRpcXVld2hpdGU0AGFxdWFtYXJpbmUAYXF1YW1hcmluZTEAYXF1YW1hcmluZTIAYXF1YW1hcmluZTMAYXF1YW1hcmluZTQAYXp1cmUAYXp1cmUxAGF6dXJlMgBhenVyZTMAYXp1cmU0AGJlaWdlAGJpc3F1ZQBiaXNxdWUxAGJpc3F1ZTIAYmlzcXVlMwBiaXNxdWU0AGJsYW5jaGVkYWxtb25kAGJsdWUAYmx1ZTEAYmx1ZTIAYmx1ZTMAYmx1ZTQAYmx1ZXZpb2xldABicm93bgBicm93bjEAYnJvd24yAGJyb3duMwBicm93bjQAYnVybHl3b29kAGJ1cmx5d29vZDEAYnVybHl3b29kMgBidXJseXdvb2QzAGJ1cmx5d29vZDQAY2FkZXRibHVlAGNhZGV0Ymx1ZTEAY2FkZXRibHVlMgBjYWRldGJsdWUzAGNhZGV0Ymx1ZTQAY2hhcnRyZXVzZQBjaGFydHJldXNlMQBjaGFydHJldXNlMgBjaGFydHJldXNlMwBjaGFydHJldXNlNABjaG9jb2xhdGUAY2hvY29sYXRlMQBjaG9jb2xhdGUyAGNob2NvbGF0ZTMAY2hvY29sYXRlNABjb3JhbABjb3JhbDEAY29yYWwyAGNvcmFsMwBjb3JhbDQAY29ybmZsb3dlcmJsdWUAY29ybnNpbGsAY29ybnNpbGsxAGNvcm5zaWxrMgBjb3Juc2lsazMAY29ybnNpbGs0AGNyaW1zb24AY3lhbgBjeWFuMQBjeWFuMgBjeWFuMwBjeWFuNABkYXJrZ29sZGVucm9kAGRhcmtnb2xkZW5yb2QxAGRhcmtnb2xkZW5yb2QyAGRhcmtnb2xkZW5yb2QzAGRhcmtnb2xkZW5yb2Q0AGRhcmtncmVlbgBkYXJra2hha2kAZGFya29saXZlZ3JlZW4AZGFya29saXZlZ3JlZW4xAGRhcmtvbGl2ZWdyZWVuMgBkYXJrb2xpdmVncmVlbjMAZGFya29saXZlZ3JlZW40AGRhcmtvcmFuZ2UAZGFya29yYW5nZTEAZGFya29yYW5nZTIAZGFya29yYW5nZTMAZGFya29yYW5nZTQAZGFya29yY2hpZABkYXJrb3JjaGlkMQBkYXJrb3JjaGlkMgBkYXJrb3JjaGlkMwBkYXJrb3JjaGlkNABkYXJrc2FsbW9uAGRhcmtzZWFncmVlbgBkYXJrc2VhZ3JlZW4xAGRhcmtzZWFncmVlbjIAZGFya3NlYWdyZWVuMwBkYXJrc2VhZ3JlZW40AGRhcmtzbGF0ZWJsdWUAZGFya3NsYXRlZ3JheQBkYXJrc2xhdGVncmF5MQBkYXJrc2xhdGVncmF5MgBkYXJrc2xhdGVncmF5MwBkYXJrc2xhdGVncmF5NABkYXJrc2xhdGVncmV5AGRhcmt0dXJxdW9pc2UAZGFya3Zpb2xldABkZWVwcGluawBkZWVwcGluazEAZGVlcHBpbmsyAGRlZXBwaW5rMwBkZWVwcGluazQAZGVlcHNreWJsdWUAZGVlcHNreWJsdWUxAGRlZXBza3libHVlMgBkZWVwc2t5Ymx1ZTMAZGVlcHNreWJsdWU0AGRpbWdyYXkAZGltZ3JleQBkb2RnZXJibHVlAGRvZGdlcmJsdWUxAGRvZGdlcmJsdWUyAGRvZGdlcmJsdWUzAGRvZGdlcmJsdWU0AGZpcmVicmljawBmaXJlYnJpY2sxAGZpcmVicmljazIAZmlyZWJyaWNrMwBmaXJlYnJpY2s0AGZsb3JhbHdoaXRlAGZvcmVzdGdyZWVuAGdhaW5zYm9ybwBnaG9zdHdoaXRlAGdvbGQAZ29sZDEAZ29sZDIAZ29sZDMAZ29sZDQAZ29sZGVucm9kAGdvbGRlbnJvZDEAZ29sZGVucm9kMgBnb2xkZW5yb2QzAGdvbGRlbnJvZDQAZ3JheQBncmF5MABncmF5MQBncmF5MTAAZ3JheTEwMABncmF5MTEAZ3JheTEyAGdyYXkxMwBncmF5MTQAZ3JheTE1AGdyYXkxNgBncmF5MTcAZ3JheTE4AGdyYXkxOQBncmF5MgBncmF5MjAAZ3JheTIxAGdyYXkyMgBncmF5MjMAZ3JheTI0AGdyYXkyNQBncmF5MjYAZ3JheTI3AGdyYXkyOABncmF5MjkAZ3JheTMAZ3JheTMwAGdyYXkzMQBncmF5MzIAZ3JheTMzAGdyYXkzNABncmF5MzUAZ3JheTM2AGdyYXkzNwBncmF5MzgAZ3JheTM5AGdyYXk0AGdyYXk0MABncmF5NDEAZ3JheTQyAGdyYXk0MwBncmF5NDQAZ3JheTQ1AGdyYXk0NgBncmF5NDcAZ3JheTQ4AGdyYXk0OQBncmF5NQBncmF5NTAAZ3JheTUxAGdyYXk1MgBncmF5NTMAZ3JheTU0AGdyYXk1NQBncmF5NTYAZ3JheTU3AGdyYXk1OABncmF5NTkAZ3JheTYAZ3JheTYwAGdyYXk2MQBncmF5NjIAZ3JheTYzAGdyYXk2NABncmF5NjUAZ3JheTY2AGdyYXk2NwBncmF5NjgAZ3JheTY5AGdyYXk3AGdyYXk3MABncmF5NzEAZ3JheTcyAGdyYXk3MwBncmF5NzQAZ3JheTc1AGdyYXk3NgBncmF5NzcAZ3JheTc4AGdyYXk3OQBncmF5OABncmF5ODAAZ3JheTgxAGdyYXk4MgBncmF5ODMAZ3JheTg0AGdyYXk4NQBncmF5ODYAZ3JheTg3AGdyYXk4OABncmF5ODkAZ3JheTkAZ3JheTkwAGdyYXk5MQBncmF5OTIAZ3JheTkzAGdyYXk5NABncmF5OTUAZ3JheTk2AGdyYXk5NwBncmF5OTgAZ3JheTk5AGdyZWVuAGdyZWVuMQBncmVlbjIAZ3JlZW4zAGdyZWVuNABncmVlbnllbGxvdwBncmV5AGdyZXkwAGdyZXkxAGdyZXkxMABncmV5MTAwAGdyZXkxMQBncmV5MTIAZ3JleTEzAGdyZXkxNABncmV5MTUAZ3JleTE2AGdyZXkxNwBncmV5MTgAZ3JleTE5AGdyZXkyAGdyZXkyMABncmV5MjEAZ3JleTIyAGdyZXkyMwBncmV5MjQAZ3JleTI1AGdyZXkyNgBncmV5MjcAZ3JleTI4AGdyZXkyOQBncmV5MwBncmV5MzAAZ3JleTMxAGdyZXkzMgBncmV5MzMAZ3JleTM0AGdyZXkzNQBncmV5MzYAZ3JleTM3AGdyZXkzOABncmV5MzkAZ3JleTQAZ3JleTQwAGdyZXk0MQBncmV5NDIAZ3JleTQzAGdyZXk0NABncmV5NDUAZ3JleTQ2AGdyZXk0NwBncmV5NDgAZ3JleTQ5AGdyZXk1AGdyZXk1MABncmV5NTEAZ3JleTUyAGdyZXk1MwBncmV5NTQAZ3JleTU1AGdyZXk1NgBncmV5NTcAZ3JleTU4AGdyZXk1OQBncmV5NgBncmV5NjAAZ3JleTYxAGdyZXk2MgBncmV5NjMAZ3JleTY0AGdyZXk2NQBncmV5NjYAZ3JleTY3AGdyZXk2OABncmV5NjkAZ3JleTcAZ3JleTcwAGdyZXk3MQBncmV5NzIAZ3JleTczAGdyZXk3NABncmV5NzUAZ3JleTc2AGdyZXk3NwBncmV5NzgAZ3JleTc5AGdyZXk4AGdyZXk4MABncmV5ODEAZ3JleTgyAGdyZXk4MwBncmV5ODQAZ3JleTg1AGdyZXk4NgBncmV5ODcAZ3JleTg4AGdyZXk4OQBncmV5OQBncmV5OTAAZ3JleTkxAGdyZXk5MgBncmV5OTMAZ3JleTk0AGdyZXk5NQBncmV5OTYAZ3JleTk3AGdyZXk5OABncmV5OTkAaG9uZXlkZXcAaG9uZXlkZXcxAGhvbmV5ZGV3MgBob25leWRldzMAaG9uZXlkZXc0AGhvdHBpbmsAaG90cGluazEAaG90cGluazIAaG90cGluazMAaG90cGluazQAaW5kaWFucmVkAGluZGlhbnJlZDEAaW5kaWFucmVkMgBpbmRpYW5yZWQzAGluZGlhbnJlZDQAaW5kaWdvAGludmlzAGl2b3J5AGl2b3J5MQBpdm9yeTIAaXZvcnkzAGl2b3J5NABraGFraQBraGFraTEAa2hha2kyAGtoYWtpMwBraGFraTQAbGF2ZW5kZXIAbGF2ZW5kZXJibHVzaABsYXZlbmRlcmJsdXNoMQBsYXZlbmRlcmJsdXNoMgBsYXZlbmRlcmJsdXNoMwBsYXZlbmRlcmJsdXNoNABsYXduZ3JlZW4AbGVtb25jaGlmZm9uAGxlbW9uY2hpZmZvbjEAbGVtb25jaGlmZm9uMgBsZW1vbmNoaWZmb24zAGxlbW9uY2hpZmZvbjQAbGlnaHRibHVlAGxpZ2h0Ymx1ZTEAbGlnaHRibHVlMgBsaWdodGJsdWUzAGxpZ2h0Ymx1ZTQAbGlnaHRjb3JhbABsaWdodGN5YW4AbGlnaHRjeWFuMQBsaWdodGN5YW4yAGxpZ2h0Y3lhbjMAbGlnaHRjeWFuNABsaWdodGdvbGRlbnJvZABsaWdodGdvbGRlbnJvZDEAbGlnaHRnb2xkZW5yb2QyAGxpZ2h0Z29sZGVucm9kMwBsaWdodGdvbGRlbnJvZDQAbGlnaHRnb2xkZW5yb2R5ZWxsb3cAbGlnaHRncmF5AGxpZ2h0Z3JleQBsaWdodHBpbmsAbGlnaHRwaW5rMQBsaWdodHBpbmsyAGxpZ2h0cGluazMAbGlnaHRwaW5rNABsaWdodHNhbG1vbgBsaWdodHNhbG1vbjEAbGlnaHRzYWxtb24yAGxpZ2h0c2FsbW9uMwBsaWdodHNhbG1vbjQAbGlnaHRzZWFncmVlbgBsaWdodHNreWJsdWUAbGlnaHRza3libHVlMQBsaWdodHNreWJsdWUyAGxpZ2h0c2t5Ymx1ZTMAbGlnaHRza3libHVlNABsaWdodHNsYXRlYmx1ZQBsaWdodHNsYXRlZ3JheQBsaWdodHNsYXRlZ3JleQBsaWdodHN0ZWVsYmx1ZQBsaWdodHN0ZWVsYmx1ZTEAbGlnaHRzdGVlbGJsdWUyAGxpZ2h0c3RlZWxibHVlMwBsaWdodHN0ZWVsYmx1ZTQAbGlnaHR5ZWxsb3cAbGlnaHR5ZWxsb3cxAGxpZ2h0eWVsbG93MgBsaWdodHllbGxvdzMAbGlnaHR5ZWxsb3c0AGxpbWVncmVlbgBsaW5lbgBtYWdlbnRhAG1hZ2VudGExAG1hZ2VudGEyAG1hZ2VudGEzAG1hZ2VudGE0AG1hcm9vbgBtYXJvb24xAG1hcm9vbjIAbWFyb29uMwBtYXJvb240AG1lZGl1bWFxdWFtYXJpbmUAbWVkaXVtYmx1ZQBtZWRpdW1vcmNoaWQAbWVkaXVtb3JjaGlkMQBtZWRpdW1vcmNoaWQyAG1lZGl1bW9yY2hpZDMAbWVkaXVtb3JjaGlkNABtZWRpdW1wdXJwbGUAbWVkaXVtcHVycGxlMQBtZWRpdW1wdXJwbGUyAG1lZGl1bXB1cnBsZTMAbWVkaXVtcHVycGxlNABtZWRpdW1zZWFncmVlbgBtZWRpdW1zbGF0ZWJsdWUAbWVkaXVtc3ByaW5nZ3JlZW4AbWVkaXVtdHVycXVvaXNlAG1lZGl1bXZpb2xldHJlZABtaWRuaWdodGJsdWUAbWludGNyZWFtAG1pc3R5cm9zZQBtaXN0eXJvc2UxAG1pc3R5cm9zZTIAbWlzdHlyb3NlMwBtaXN0eXJvc2U0AG1vY2Nhc2luAG5hdmFqb3doaXRlAG5hdmFqb3doaXRlMQBuYXZham93aGl0ZTIAbmF2YWpvd2hpdGUzAG5hdmFqb3doaXRlNABuYXZ5AG5hdnlibHVlAG5vbmUAb2xkbGFjZQBvbGl2ZWRyYWIAb2xpdmVkcmFiMQBvbGl2ZWRyYWIyAG9saXZlZHJhYjMAb2xpdmVkcmFiNABvcmFuZ2UAb3JhbmdlMQBvcmFuZ2UyAG9yYW5nZTMAb3JhbmdlNABvcmFuZ2VyZWQAb3JhbmdlcmVkMQBvcmFuZ2VyZWQyAG9yYW5nZXJlZDMAb3JhbmdlcmVkNABvcmNoaWQAb3JjaGlkMQBvcmNoaWQyAG9yY2hpZDMAb3JjaGlkNABwYWxlZ29sZGVucm9kAHBhbGVncmVlbgBwYWxlZ3JlZW4xAHBhbGVncmVlbjIAcGFsZWdyZWVuMwBwYWxlZ3JlZW40AHBhbGV0dXJxdW9pc2UAcGFsZXR1cnF1b2lzZTEAcGFsZXR1cnF1b2lzZTIAcGFsZXR1cnF1b2lzZTMAcGFsZXR1cnF1b2lzZTQAcGFsZXZpb2xldHJlZABwYWxldmlvbGV0cmVkMQBwYWxldmlvbGV0cmVkMgBwYWxldmlvbGV0cmVkMwBwYWxldmlvbGV0cmVkNABwYXBheWF3aGlwAHBlYWNocHVmZgBwZWFjaHB1ZmYxAHBlYWNocHVmZjIAcGVhY2hwdWZmMwBwZWFjaHB1ZmY0AHBlcnUAcGluawBwaW5rMQBwaW5rMgBwaW5rMwBwaW5rNABwbHVtAHBsdW0xAHBsdW0yAHBsdW0zAHBsdW00AHBvd2RlcmJsdWUAcHVycGxlAHB1cnBsZTEAcHVycGxlMgBwdXJwbGUzAHB1cnBsZTQAcmVkAHJlZDEAcmVkMgByZWQzAHJlZDQAcm9zeWJyb3duAHJvc3licm93bjEAcm9zeWJyb3duMgByb3N5YnJvd24zAHJvc3licm93bjQAcm95YWxibHVlAHJveWFsYmx1ZTEAcm95YWxibHVlMgByb3lhbGJsdWUzAHJveWFsYmx1ZTQAc2FkZGxlYnJvd24Ac2FsbW9uAHNhbG1vbjEAc2FsbW9uMgBzYWxtb24zAHNhbG1vbjQAc2FuZHlicm93bgBzZWFncmVlbgBzZWFncmVlbjEAc2VhZ3JlZW4yAHNlYWdyZWVuMwBzZWFncmVlbjQAc2Vhc2hlbGwAc2Vhc2hlbGwxAHNlYXNoZWxsMgBzZWFzaGVsbDMAc2Vhc2hlbGw0AHNpZW5uYQBzaWVubmExAHNpZW5uYTIAc2llbm5hMwBzaWVubmE0AHNreWJsdWUAc2t5Ymx1ZTEAc2t5Ymx1ZTIAc2t5Ymx1ZTMAc2t5Ymx1ZTQAc2xhdGVibHVlAHNsYXRlYmx1ZTEAc2xhdGVibHVlMgBzbGF0ZWJsdWUzAHNsYXRlYmx1ZTQAc2xhdGVncmF5AHNsYXRlZ3JheTEAc2xhdGVncmF5MgBzbGF0ZWdyYXkzAHNsYXRlZ3JheTQAc2xhdGVncmV5AHNub3cAc25vdzEAc25vdzIAc25vdzMAc25vdzQAc3ByaW5nZ3JlZW4Ac3ByaW5nZ3JlZW4xAHNwcmluZ2dyZWVuMgBzcHJpbmdncmVlbjMAc3ByaW5nZ3JlZW40AHN0ZWVsYmx1ZQBzdGVlbGJsdWUxAHN0ZWVsYmx1ZTIAc3RlZWxibHVlMwBzdGVlbGJsdWU0AHRhbgB0YW4xAHRhbjIAdGFuMwB0YW40AHRoaXN0bGUAdGhpc3RsZTEAdGhpc3RsZTIAdGhpc3RsZTMAdGhpc3RsZTQAdG9tYXRvAHRvbWF0bzEAdG9tYXRvMgB0b21hdG8zAHRvbWF0bzQAdHVycXVvaXNlAHR1cnF1b2lzZTEAdHVycXVvaXNlMgB0dXJxdW9pc2UzAHR1cnF1b2lzZTQAdmlvbGV0AHZpb2xldHJlZAB2aW9sZXRyZWQxAHZpb2xldHJlZDIAdmlvbGV0cmVkMwB2aW9sZXRyZWQ0AHdoZWF0AHdoZWF0MQB3aGVhdDIAd2hlYXQzAHdoZWF0NAB3aGl0ZQB3aGl0ZXNtb2tlAHllbGxvdwB5ZWxsb3cxAHllbGxvdzIAeWVsbG93MwB5ZWxsb3c0AHllbGxvd2dyZWVuAGxhY2sAaGl0ZQBpZ2h0Z3JleQBYMTEvAC8lcy8lcwBpbWFnZXNjYWxlAGZhbHNlAGJsYWNrAGRvdHRlZABkYXNoZWQAY3AtPnNyYwBodG1sdGFibGUuYwBlbWl0X2h0bWxfaW1nAGNwLT5zcmNbMF0AdHJhbnNwYXJlbnQAXyVkACVkADEAMgAzADQANQA2ADcAOAA5ADEwADExADEyADEzADE0ADE1ADE2ADE3ADE4ADE5ADIwAEFnbm9kZWluZm9fdABBZ2VkZ2VpbmZvX3QAcm93ZwBjb2xnAEFncmFwaGluZm9fdAA8VEFCTEU+AGRlbHggPj0gMABwb3NfaHRtbF90YmwAZGVseSA+PSAwAHRhYmxlIHNpemUgdG9vIHNtYWxsIGZvciBjb250ZW50CgBmaXhlZCB0YWJsZSBzaXplIHdpdGggdW5zcGVjaWZpZWQgd2lkdGggb3IgaGVpZ2h0CgBjZWxsIHNpemUgdG9vIHNtYWxsIGZvciBjb250ZW50CgBmaXhlZCBjZWxsIHNpemUgd2l0aCB1bnNwZWNpZmllZCB3aWR0aCBvciBoZWlnaHQKAE5vIG9yIGltcHJvcGVyIGltYWdlIGZpbGU9IiVzIgoAcGVuY29sb3IAY29sb3IALT4ALS0AZlBRLmMAUFFjaGVjawBIZWFwIG92ZXJmbG93CgAlIVBTLUFkb2JlLTIuMAovbm9kZSB7CiAgL1kgZXhjaCBkZWYKICAvWCBleGNoIGRlZgogIC95IGV4Y2ggZGVmCiAgL3ggZXhjaCBkZWYKICBuZXdwYXRoCiAgeCB5IG1vdmV0bwogIHggWSBsaW5ldG8KICBYIFkgbGluZXRvCiAgWCB5IGxpbmV0bwogIGNsb3NlcGF0aCBmaWxsCn0gZGVmCi9jZWxsIHsKICAvWSBleGNoIGRlZgogIC9YIGV4Y2ggZGVmCiAgL3kgZXhjaCBkZWYKICAveCBleGNoIGRlZgogIG5ld3BhdGgKICB4IHkgbW92ZXRvCiAgeCBZIGxpbmV0bwogIFggWSBsaW5ldG8KICBYIHkgbGluZXRvCiAgY2xvc2VwYXRoIHN0cm9rZQp9IGRlZgoAc2hvd3BhZ2UKAGZhaWxlZCBhdCBub2RlICVkWzBdCgBucC0+Y2VsbHNbMF0AbWF6ZS5jAGNoa1NncmFwaABmYWlsZWQgYXQgbm9kZSAlZFsxXQoAbnAtPmNlbGxzWzFdAGRpdGVtcwBmaW5kU1ZlcnQAJSUlJVBhZ2U6IDEgMQolJSUlUGFnZUJvdW5kaW5nQm94OiAlZCAlZCAlZCAlZAoAJWYgJWYgdHJhbnNsYXRlCgAwIDAgMSBzZXRyZ2Jjb2xvcgoAJWYgJWYgJWYgJWYgbm9kZQoAMCAwIDAgc2V0cmdiY29sb3IKACVmICVmICVmICVmIGNlbGwKADEgMCAwIHNldHJnYmNvbG9yCgB1bmV4cGVjdGVkIGNhc2UgaW4gbG9jYXRlX2VuZHBvaW50CgAwAHRyYXBlem9pZC5jAGxvY2F0ZV9lbmRwb2ludABhZGRfc2VnbWVudDogZXJyb3IKAG5ld25vZGU6IFF1ZXJ5LXRhYmxlIG92ZXJmbG93CgBuZXdub2RlAG5ld3RyYXA6IFRyYXBlem9pZC10YWJsZSBvdmVyZmxvdyAlZAoAbmV3dHJhcABpbmRleC5jAFJUcmVlU2VhcmNoAG4tPmxldmVsID49IDAAUlRyZWVJbnNlcnQAbGV2ZWwgPj0gMCAmJiBsZXZlbCA8PSAoKm4pLT5sZXZlbAByLT5ib3VuZGFyeVtpXSA8PSByLT5ib3VuZGFyeVtOVU1ESU1TICsgaV0AciAmJiBuICYmIG5ldwBSVHJlZUluc2VydDIAbGV2ZWwgPj0gMCAmJiBsZXZlbCA8PSBuLT5sZXZlbABGQUxTRQBub2RlLmMATm9kZUNvdmVyAHIgJiYgbgBQaWNrQnJhbmNoAEFkZEJyYW5jaABpIDwgTk9ERUNBUkQAbmV3AG4gJiYgaSA+PSAwICYmIGkgPCBOT0RFQ0FSRABEaXNjb25CcmFuY2gAcgByZWN0YW5nbGUuYwBSZWN0QXJlYQByICYmIHJyAENvbWJpbmVSZWN0AHIgJiYgcwBPdmVybGFwAG4Ac3BsaXQucS5jAFNwbGl0Tm9kZQBiAG4tPmNvdW50ICsgKCpubiktPmNvdW50ID09IE5PREVDQVJEICsgMQBMb2FkTm9kZXMAcQBwAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5wYXJ0aXRpb25baV0gPT0gMCB8fCBydHAtPnNwbGl0LlBhcnRpdGlvbnNbMF0ucGFydGl0aW9uW2ldID09IDEAcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzBdICsgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzFdID09IE5PREVDQVJEICsgMQBNZXRob2RaZXJvAHJ0cC0+c3BsaXQuUGFydGl0aW9uc1swXS5jb3VudFswXSA+PSBydHAtPk1pbkZpbGwgJiYgcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLmNvdW50WzFdID49IHJ0cC0+TWluRmlsbAAhcnRwLT5zcGxpdC5QYXJ0aXRpb25zWzBdLnRha2VuW2ldAENsYXNzaWZ5AEdldEJyYW5jaGVzAG4tPmJyYW5jaFtpXS5jaGlsZAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKAICAgICAhAMWQEAH1AIAwcSExRXFhcIC2kMHwoFDA4pESsPLRAvMCAyBjQ1GxwdHgsMISIjJCUmJygMGBkXBAobHBogKgohIiMkJSYnKAwKDlMKLFgxWFhYWFhYDBscDy5YMyEiIyQlJicoGxz/U///ISIjJCUmJygM//8F////CRT//////wwbHP8QFRYhIiMkJSYnKBsc/////yEiIyQlJicoDP8SExQRFhf///////8MGxz///8SISIjJCUmJygbHP////8hIiMkJSYnKAz///////8T////////DBsc/////yEiIyQlJicoGxz/////ISIjJCUmJygSExQVFhcYGf///////////yMkJSYnGxITFBYXIjZoAR84ViEgAhsbG14bGzc5cDbSwk8EPCJHIj8iRCIiWCJlIiIFBl9gOQQHCAkKCwwNDgRmZ11qbQUGb1g7cQcICQoLDA0OBHI8W3M+YUYbEhMUFhcEBQY/QWJJBwgJCgsMDQ4FBgBcAAAHCAkKCwwNDgQAAE8AAABTQgAAAAAABAUGAERUVQcICQoLDA0OBQYAAAAABwgJCgsMDQ4EACosLkcxMwAAAAAAAAQFBgAAAEoHCAkKCwwNDgUGAAAAAAcICQoLDA0OBAAAAAAAAEwAAAAAAAAEBQYAAAAABwgJCgsMDQ4FBgAAAAAHCAkKCwwNDikrLS8wMjQ1AAAAAAAAAAAAKSstMDIABC8AJCMAEhQWGhweIBgABQcvLy8ALy8AAAkIKAAAASICBgAAAAAACAAAAAAAAAAAAAAAAAAlAyYTCikVCyoXDi0ZERsMKx0NLB8PIRAAMwAwAC9DADEALwA1LidCMkEAOjgAPDRFADYAQAAAPwBENzs5PQACAwMBAQIBAQEDAwMDAwMDAwEBAQEBAQEBAQEBAQEBAQECAQECAAYBAwMDAwMBAAECAwAEAQIDAAQABAAEAAMCAQIBAgFTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBiZWZvcmUgPFRBQkxFPgBTeW50YXggZXJyb3I6IG5vbi1zcGFjZSBzdHJpbmcgdXNlZCBhZnRlciA8L1RBQkxFPgAAKSoqKissLC0tLS0tLS0tLS0uLzAxMjM0NTY3ODk6Ozw9Pj4/P0FAQkJCQkJCQ0NERERGRUdHR0lISkhLSExITU1OTk9P/wMPEBEjOiQ9JUAVQyZFJ0gYSxlNGigcTh0eUFFSWVpsa25jZFdpc3ludGF4IGVycm9yAG1lbW9yeSBleGhhdXN0ZWQAJXMgaW4gbGluZSAlZCAKAE5vdCBidWlsdCB3aXRoIGxpYmV4cGF0LiBUYWJsZSBmb3JtYXR0aW5nIGlzIG5vdCBhdmFpbGFibGUuCgByb3V0ZS5jAGxpYnBhdGgvJXM6JWQ6ICVzCgBzaG9ydGVzdC5jAHNvdXJjZSBwb2ludCBub3QgaW4gYW55IHRyaWFuZ2xlAGRlc3RpbmF0aW9uIHBvaW50IG5vdCBpbiBhbnkgdHJpYW5nbGUAY2Fubm90IGZpbmQgdHJpYW5nbGUgcGF0aABjYW5ub3QgbWFsbG9jIG9wcwBjYW5ub3QgcmVhbGxvYyBvcHMAdHJpYW5ndWxhdGlvbiBmYWlsZWQAY2Fubm90IG1hbGxvYyB0cmlzAGNhbm5vdCByZWFsbG9jIHRyaXMAY2Fubm90IG1hbGxvYyBkcS5wbmxzAGNhbm5vdCByZWFsbG9jIGRxLnBubHMAY2Fubm90IG1hbGxvYyBwbmxzAGNhbm5vdCBtYWxsb2MgcG5scHMAY2Fubm90IHJlYWxsb2MgcG5scwBjYW5ub3QgcmVhbGxvYyBwbmxwcwBUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AABIQExQVFhcYGRobHB0eHyAhEBAiIxAkJSYnKCkqKxAsLS4RLzARETEREREyMzQ1Njc4OREQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQOhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQOxA8PT4/QEEQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQQhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQQxAQRBBFRkcQSBBJEBAQEEpLTE0QEE4QT1AQEBAQURAQEBAQEBAQEBAQEBBSEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBTEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQVFVWVxAQWFkQEBAQEBAQEBAQEBAQEBAQEBAQEBAQWhBbXF1eX2BhYhAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////wAAAAD+/wD8AQAA+AEAAHgAAAAA//vf+wAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAD8/+Cv/////////////9///////yBAsAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAD8AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAAAAACG/v///wBASQAAAAAAGADf/wDIAAAAAAAAAAEAPAAAAAAAAAAAAAAAABDgAR4AYP+/AAAAAAAA/wcAAAAAAAAAAAAAAAAAAAAAAAAA+M8DAAAAAwAg/38AAABOAAAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAEAAgHgAwAAEAAAAAAAAAABAAIAAAAAD8DwAAAAAAAAAQACAAAAAAAAAAAAAAAAAAEAAgAAAAAAMAAAAAAAAAABAAIAAAAAD9AAAAAAAAAAAAACAAAAAA/wcAAAAAAAAAAAAgAAAAAAD/AAAAAAAAABAAIAAAAAAAAAAAAAAAAAAAACAAAAAAPwIAAAAAAAAAAAAEAAAAABAAAAAAAACAAIDA3wAMAAAAAAAAAAAAAAAAAB8AAAAAAAD+////APz//wAAAAAAAAAA/AAAAAAAAMD/3/8HAAAAAAAAAAAAAIAGAPwAABg+AACAvwDMAAAAAAAAAAAAAAAIAAAAAAAAAAAAAABg////HwAA/wMAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAABAAAYAAAAAAAAAAAAOAAAAAAQAAAAcAAAAAAAAAAAAAAAAAAAADAAAP5/LwAA/wP/fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOMQAAAAAAAAAAAAAAAAAAAAAAAMT/////AAAAwAAAAAAAAAAAAQDgnwAAAAB/PwAAAAAAAAAAAAAAAAAAAAAQABAAAPz///8fAAAAAAAMAAAAAAAAQAAM8AAAAAAAAMD4AAAAAAAAAMAAAAAAAAAAAP8A////IRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////38AAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAD4ADgAOAAYID4/////P//////fx/88X//fwAA////AwAA/////wEAewPQwa9CAAwfvP//AAAAAAAC//////////////////////////////////////////////////////////8PAP////9/AAAA/wcAAP////////////8/AAAAAAAA/P///v////////////////////////////////////////////////////8f/wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADghwP+AAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAD//////3//DwAAAAAAAAAA////+/////////////8PAP//////////////////////////////////PwAAAP8PHv///wH8weAAAAAAAAAAAAAAAB4BAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAD/////DwAAAP///3////////////////////////////////////9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAD///////9/AAAAAAAAwADgAAAAAAAAAAAAAACAD3AAAAAAAAAAAAAAAAAAAP8A//9/AAMAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAABECAAAAA//AwAAAAAAAPAAAAAAAAAAAAAQwAAA//8DBwAAAAAA+AAAAAAIgAAAAAAAAAAAAAAIAP8/AMAAAAAAAAAAAAAAAAAAAADwAACACwAAAAAAAACAAgAAwAAAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA/P8DAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw////A38A//////f/fw8AAAAAAAAAAAAAAAAAAAAAAID+/wD8AQAA+AEAAPg/AAAAAAAAAAAAAAAAAAAAf38AMIf//////4//AAAAAAAA4P//B/8PAAAAAAAA//////8/AAAAAA8AAAAAAAAAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAgP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwI8AAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIf/AP8BAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAP/z/PwAAAAMAAAAAAAD+AwAAAAAAAAAAAAAAAAAYAA8AAAAAAAAAAAAAAAAAAADhAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAHAAAAAAAAAAAAAAAAAP///////////////////////////////////////z8A/////3/+////////////////////////////PwAAAAD//////////z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////9/AP//AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAACAAAAAgAACAAAAAgAACAAAAAgAAAAAIAAAACAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA//////8P////////////////DwD/f/5//v/+/wAAAAD/B////3//////////D///////BwAAAAAAAAAAwP///wcA//////8H/wEDAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wEAv///////////H///DwD/////3wcAAP//AQD/////////f/3/////////////////////////////Hv////////8/DwD///8AAAAAAAAAAAAAAAAAAAAAAAD4///////////h/wAAAAAAAP//////////PwAAAAAAAAD//////////////////w8AAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAEhETFBUWFxgZGhscHR4fICERIiMkESUmJygpKissES0uLxAQMBAQEBAQEBAxMjMQNDUQEBERERERERERERERERERERERERERERERERE2ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERNxERERE4ETk6Ozw9PhERERERERERERERERERERERERERERERERERERERERERERERERERERERERE/EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEUBBEUJDREVGR0hJEBAQSktMTU4QEBBPUBAQEBBREBAQEBAQEBAQERERUlMQEBAQEBAQEBAQEBERERFUEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQERFVEBAQEFYQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQVxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQWFlaWxAQEBAQEBAQEBAQEBAQEBAQEBAQEBBcEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////////////AAAAAAAAAAD+//8H/v//BwAAAAAABCAE//9/////f//////////////////////////////////D/wMAH1AAAAAAAAAAAAAAIAAAAAAA3zxA1///+////////////7///////////////////////wP8/////////////////////////wD+////fwL+/////wAAAAAA/7+2AP///wcHAAAA/wf//////////v/D////////////////7x/+4f+fAAD///////8A4P///////////////wMA//////8HMAT////8/x8AAP///wEAAAAAAAAAAP0fAAAAAAAA8AP/f//////////v/9/h/8///v7un/n///3F459ZgLDP/wMA7of5///9bcOHGQJewP8/AO6/+////e3jvxsBAM//AADun/n///3t458ZwLDP/wIA7Mc91hjH/8PHHYEAwP8AAO7f/f///e/j3x1gA8//AADs3/3///3v498dYEDP/wYA7N/9/////+ffXYAAz/8A/Oz/f/z///svf4Bf/wAADAD+/////3//Bz8g/wMAAAAAliXw/q7s/ztfIP/zAAAAAAEAAAD/AwAA//7///8f/v8D///+////HwAAAAAAAAAA////////f/n/A///58H//39A/zP/////vyD///////f///////////89fz3//////z3/////PX89/3//////////Pf//////////hwAAAAD//wAA/////////////x8A/v//////////////////////////////////////////////////////////n////v//B////////////8cBAP/fDwD//w8A//8PAP/fDQD////////P//8BgBD/AwAAAAD/A///////////////AP//////B///////////PwD///8f/w//AcD/////Px8A//////8P////A/8DAAAAAP///w//////////f/7/HwD/A/8DgAAAAAAAAAAAAAAA////////7//vD/8DAAAAAP//////8////////7//AwD///////8/AP/j//////8/AAAAAAAAAAAAAAAAAN5vAP///////////////////////////////wAAAAAAAAAA//8/P/////8/P/+q////P////////99f3B/PD/8f3B8AAAAAAAAAAAAAAAAAAAKAAAD/HwAAAAAAAAAAAAAAAIT8Lz5Qvf/z4EMAAP//////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMD///////8DAAD//////3///////3//////////////////////H3gMAP////+/IP////////+AAAD//38Af39/f39/f3//////AAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAA/gM+H/7///////////9/4P7/////////////9+D/////P/7/////////////fwAA////BwAAAAAAAP///////////////////////////////z8AAAAAAAAAAAD/////////////////////////////////HwAAAAAAAP//////////////////////HwAAAAAAAAAA//////8//x////8PAAD//////3/wj////4D/////////////AAAAAID//P///////////////3kPAP8HAAAAAAAAAAAA/7v3////AAAA////////DwD//////////w8A/wMAAPwI//////8H/////wcA////H/////////f/AID/AwAAAAD///////9/AP8//wP//38E/////////38FAAA4//88AH5+fgB/fwAAAAAAAAAAAAAAAAAAAAAAAP//////B/8D//////////////////////////8PAP//f/j//////w//////////////////P/////////////////8DAAAAAH8A+OD//X9f2/////////////////8DAAAA+P///////////////z8AAP///////////P///////wAAAAAA/w8AAAAAAAAAAAAAAAAAAN//////////////////////HwAA/wP+//8H/v//B8D/////////////f/z8/BwAAAAA/+///3///7f/P/8/AAAAAP///////////////////wcAAAAAAAAAAP///////x8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8f////////AQAAAAAA////fwAA////BwAAAAAAAP///z//////D/8+AAAAAAD/////////////////////////P/8DAAAAAAAAAAAAAD/9/////7+R//8/AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8/AP///wMAAAAAAAAAAP/////////AAAAAAAAAAABv8O/+//8PAAAAAAD///8fAAAAAAAAAAAAAAAAAAAAAP///////z8A//8/AP//BwAAAAAAAAAAAAAAAAAAAAAA////////////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////z8AAADA/wAA/P///////wEAAP///wH/A////////8f/AAAAAAAAAAD//////////x4A/wMAAAAAAAAAAAAAAAAAAAAAAAAAAP///////z8A/wMAAAAAAAD/////////////////fwAAAAAAAAAAAAAAAAAAAAAAAP///////////////wcAAAAAAAAAAAAAAAAAAAAAAAAA//////9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////HwD//////38AAPj/AAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////3///////////32Te/+vv/////////7/n39////97X/z9//////////////////////////////////////////////////////8//////f//9/////f//9/////f//9/////f/////3////9///3z////////+////+W/vcKhOqWqpb3917/+/8P7vv/DwAAAAAAAAAATENfQUxMAExDX0NUWVBFAAAAAExDX05VTUVSSUMAAExDX1RJTUUAAAAAAExDX0NPTExBVEUAAExDX01PTkVUQVJZAExDX01FU1NBR0VTAExBTkcAQy5VVEYtOABQT1NJWABNVVNMX0xPQ1BBVEgAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAETCQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAtKyAgIDBYMHgAKG51bGwpAC0wWCswWCAwWC0weCsweCAweABpbmYASU5GAE5BTgAwMTIzNDU2Nzg5QUJDREVGLgBhbG51bQBhbHBoYQBibGFuawBjbnRybABkaWdpdABncmFwaABsb3dlcgBwcmludABwdW5jdABzcGFjZQB1cHBlcgB4ZGlnaXQAQy5VVEYtOAAAAAAAAAAAAEMAL3Byb2Mvc2VsZi9mZC8AcndhAGluZmluaXR5AG5hbgAJAAoADQAMAAcAGwBbWzphbG51bTpdX10AW15bOmFsbnVtOl1fXQBbWzpzcGFjZTpdXQBbXls6c3BhY2U6XV0AW1s6ZGlnaXQ6XV0AW15bOmRpZ2l0Ol1dAC90bXAvdG1wZmlsZV9YWFhYWFgAdys=";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"])}function _emscripten_get_now(){abort()}function _emscripten_get_now_is_monotonic(){return ENVIRONMENT_IS_NODE||typeof dateNow!=="undefined"||(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&self["performance"]&&self["performance"]["now"]}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if(clk_id===1&&_emscripten_get_now_is_monotonic()){now=_emscripten_get_now()}else{___setErrNo(ERRNO_CODES.EINVAL);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function ___clock_gettime(){return _clock_gettime.apply(null,arguments)}function ___lock(){}function ___map_file(pathname,size){___setErrNo(ERRNO_CODES.EPERM);return-1}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}catch(e){return callback(e)}}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={"1024":flags["O_APPEND"],"64":flags["O_CREAT"],"128":flags["O_EXCL"],"0":flags["O_RDONLY"],"2":flags["O_RDWR"],"4096":flags["O_SYNC"],"512":flags["O_TRUNC"],"1":flags["O_WRONLY"]}}),bufferFrom:(function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsForNode:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),write:(function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e}}}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto")["randomBytes"](1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)Object.defineProperty(this,"stack",{value:(new Error).stack,writable:true})};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall192(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get(),prot=SYSCALLS.get(),flags=SYSCALLS.get(),fd=SYSCALLS.get(),off=SYSCALLS.get();off<<=12;var ptr;var allocated=false;if(fd===-1){ptr=_memalign(PAGE_SIZE,len);if(!ptr)return-ERRNO_CODES.ENOMEM;_memset(ptr,0,len);allocated=true}else{var info=FS.getStream(fd);if(!info)return-ERRNO_CODES.EBADF;var res=FS.mmap(info,HEAPU8,addr,len,off,prot,flags);ptr=res.ptr;allocated=res.allocated}SYSCALLS.mappings[ptr]={malloc:ptr,len:len,allocated:allocated,fd:fd,flags:flags};return ptr}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___unlock(){}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C.UTF-8";ENV["_"]=Module["thisProgram"];poolPtr=staticAlloc(TOTAL_ENV_SIZE);envPtr=staticAlloc(MAX_ENV_VALUES*4);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocateUTF8(ENV[name]);return _getenv.ret}var _llvm_ceil_f64=Math_ceil;var _llvm_fabs_f64=Math_abs;var _llvm_floor_f64=Math_floor;var _llvm_pow_f64=Math_pow;var _llvm_sqrt_f64=Math_sqrt;function _llvm_trap(){abort("trap!")}function _longjmp(env,value){Module["setThrew"](env,value||1);throw"longjmp"}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function _setenv(envname,envval,overwrite){if(envname===0){___setErrNo(ERRNO_CODES.EINVAL);return-1}var name=Pointer_stringify(envname);var val=Pointer_stringify(envval);if(name===""||name.indexOf("=")!==-1){___setErrNo(ERRNO_CODES.EINVAL);return-1}if(ENV.hasOwnProperty(name)&&!overwrite)return 0;ENV[name]=val;___buildEnvironment(ENV);return 0}function _times(buffer){if(buffer!==0){_memset(buffer,0,16)}return 0}if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof self==="object"&&self["performance"]&&typeof self["performance"]["now"]==="function"){_emscripten_get_now=(function(){return self["performance"]["now"]()})}else if(typeof performance==="object"&&typeof performance["now"]==="function"){_emscripten_get_now=(function(){return performance["now"]()})}else{_emscripten_get_now=Date.now}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}___buildEnvironment(ENV);DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:(function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output});function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64")}catch(_){buf=new Buffer(s,"base64")}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}function invoke_d(index){try{return Module["dynCall_d"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_dddd(index,a1,a2,a3){try{return Module["dynCall_dddd"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_i(index){try{return Module["dynCall_i"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiddi(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiddi"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_d":invoke_d,"invoke_dddd":invoke_dddd,"invoke_i":invoke_i,"invoke_ii":invoke_ii,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_viii":invoke_viii,"invoke_viiiddi":invoke_viiiddi,"invoke_viiii":invoke_viiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiii":invoke_viiiiii,"___assert_fail":___assert_fail,"___buildEnvironment":___buildEnvironment,"___clock_gettime":___clock_gettime,"___lock":___lock,"___map_file":___map_file,"___setErrNo":___setErrNo,"___syscall10":___syscall10,"___syscall140":___syscall140,"___syscall145":___syscall145,"___syscall146":___syscall146,"___syscall192":___syscall192,"___syscall195":___syscall195,"___syscall197":___syscall197,"___syscall221":___syscall221,"___syscall33":___syscall33,"___syscall5":___syscall5,"___syscall54":___syscall54,"___syscall6":___syscall6,"___syscall91":___syscall91,"___unlock":___unlock,"__exit":__exit,"_clock_gettime":_clock_gettime,"_emscripten_asm_const_iii":_emscripten_asm_const_iii,"_emscripten_get_now":_emscripten_get_now,"_emscripten_get_now_is_monotonic":_emscripten_get_now_is_monotonic,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_exit":_exit,"_getenv":_getenv,"_llvm_ceil_f64":_llvm_ceil_f64,"_llvm_fabs_f64":_llvm_fabs_f64,"_llvm_floor_f64":_llvm_floor_f64,"_llvm_pow_f64":_llvm_pow_f64,"_llvm_sqrt_f64":_llvm_sqrt_f64,"_llvm_trap":_llvm_trap,"_longjmp":_longjmp,"_setenv":_setenv,"_times":_times,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM+var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {+"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0;var z=0;var A=global.Math.floor;var B=global.Math.abs;var C=global.Math.sqrt;var D=global.Math.pow;var E=global.Math.cos;var F=global.Math.sin;var G=global.Math.tan;var H=global.Math.acos;var I=global.Math.asin;var J=global.Math.atan;var K=global.Math.atan2;var L=global.Math.exp;var M=global.Math.log;var N=global.Math.ceil;var O=global.Math.imul;var P=global.Math.min;var Q=global.Math.max;var R=global.Math.clz32;var S=env.abort;var T=env.assert;var U=env.enlargeMemory;var V=env.getTotalMemory;var W=env.abortOnCannotGrowMemory;var X=env.invoke_d;var Y=env.invoke_dddd;var Z=env.invoke_i;var _=env.invoke_ii;var $=env.invoke_iii;var aa=env.invoke_iiii;var ba=env.invoke_iiiii;var ca=env.invoke_iiiiii;var da=env.invoke_iiiiiii;var ea=env.invoke_v;var fa=env.invoke_vi;var ga=env.invoke_vii;var ha=env.invoke_viii;var ia=env.invoke_viiiddi;var ja=env.invoke_viiii;var ka=env.invoke_viiiii;var la=env.invoke_viiiiii;var ma=env.___assert_fail;var na=env.___buildEnvironment;var oa=env.___clock_gettime;var pa=env.___lock;var qa=env.___map_file;var ra=env.___setErrNo;var sa=env.___syscall10;var ta=env.___syscall140;var ua=env.___syscall145;var va=env.___syscall146;var wa=env.___syscall192;var xa=env.___syscall195;var ya=env.___syscall197;var za=env.___syscall221;var Aa=env.___syscall33;var Ba=env.___syscall5;var Ca=env.___syscall54;var Da=env.___syscall6;var Ea=env.___syscall91;var Fa=env.___unlock;var Ga=env.__exit;var Ha=env._clock_gettime;var Ia=env._emscripten_asm_const_iii;var Ja=env._emscripten_get_now;var Ka=env._emscripten_get_now_is_monotonic;var La=env._emscripten_memcpy_big;var Ma=env._exit;var Na=env._getenv;var Oa=env._llvm_ceil_f64;var Pa=env._llvm_fabs_f64;var Qa=env._llvm_floor_f64;var Ra=env._llvm_pow_f64;var Sa=env._llvm_sqrt_f64;var Ta=env._llvm_trap;var Ua=env._longjmp;var Va=env._setenv;var Wa=env._times;var Xa=0.0;+// EMSCRIPTEN_START_FUNCS+function nb(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ob(){return l|0}function pb(a){a=a|0;l=a}function qb(a,b){a=a|0;b=b|0;l=a;m=b}function rb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function sb(a){a=a|0;z=a}function tb(){return z|0}function ub(a){a=a|0;c[41840]=a;return 0}function vb(){return c[41840]|0}function wb(a,b){a=a|0;b=b|0;Ia(0,a|0,b|0)|0;return}function xb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;f=i+4|0;g=i;c[f>>2]=0;h=fs()|0;ks(h,10904);ks(h,17148);Yl(1)|0;Xl(16)|0;while(1){a=Rn(a)|0;e=c[f>>2]|0;if(!a)break;if(e|0){a=174177;continue}gs(h,a,d)|0;js(h,a,b,f,g)|0;a=174177}l=i;return e|0}function yb(a){a=a|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;d=g+4|0;e=g;f=c[(c[a+16>>2]|0)+8>>2]|0;a=a+64|0;switch(c[a>>2]|0){case 0:{qx(f);break}case 1:{if(b[(c[f+16>>2]|0)+136>>1]&1)iB(f);break}case 4:case 5:case 6:{nx(f,e,d);Bb(f,c[e>>2]|0,c[d>>2]|0,c[a>>2]|0);break}default:{}}l=g;return}function zb(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[(c[a+16>>2]|0)+8>>2]|0;if(!(c[41841]|0)){c[41841]=c[4442];c[41842]=9;c[41843]=17}e=d+64|0;f=(c[e>>2]|0)+8|0;b=c[f>>2]|0;c[f>>2]=167364;switch(c[a+64>>2]|0){case 2:{dx(a,d,a,0);break}case 3:{dx(a,d,a,1);break}case 1:case 0:{if(!(c[a+152>>2]&134217728))Yp(d,a)|0;break}case 6:case 5:case 4:{Ab(d);if(!(c[a+152>>2]&134217728))Yp(d,a)|0;break}default:{}}c[(c[e>>2]|0)+8>>2]=b;return}function Ab(b){b=b|0;var d=0,e=0;d=c[41845]|0;if((d|0)!=(c[41844]|0)){e=c[c[41876]>>2]|0;if(!e){e=oB(b,0,84771,174177)|0;c[c[41876]>>2]=e;d=c[41845]|0}if(d>>>0>=(c[41846]|0)>>>0){cm(167376,1)|0;d=c[41845]|0}a[d>>0]=0;d=c[41844]|0;c[41845]=d;Bm(b,e,d)|0}if(c[(c[b+16>>2]|0)+12>>2]|0){e=c[(c[41876]|0)+4>>2]|0;d=c[41861]|0;if(d>>>0>=(c[41862]|0)>>>0){cm(167440,1)|0;d=c[41861]|0}a[d>>0]=0;d=c[41860]|0;c[41861]=d;Bm(b,e,d)|0}Km(b,59577,c[(c[41876]|0)+8236>>2]|0,174177)|0;d=0;while(1){if((d|0)==8)break;fm(167376+(d<<4)|0);d=d+1|0}XI(c[41876]|0);h[1]=1.0;h[5]=1.0;c[41877]=0;c[41881]=0;return}function Bb(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;i=WI(8240)|0;c[41876]=i;a:do switch(g|0){case 6:{b[i+8232>>1]=14;g=59593;break}case 5:{b[i+8232>>1]=12;g=59597;break}default:{g=Hm(d,59577)|0;if((g|0?a[g>>0]|0:0)?(h=Cb(g)|0,(h&65535)>10):0){i=c[41876]|0;b[i+8232>>1]=h;break a}g=Cb(59589)|0;i=c[41876]|0;b[i+8232>>1]=g;g=59589}}while(0);c[i+8236>>2]=g;j=d+16|0;g=c[j>>2]|0;if(!(c[g+180>>2]|0))h=0;else{h=oB(d,0,84771,174177)|0;i=c[41876]|0;g=c[j>>2]|0}c[i>>2]=h;if(!(a[g+113>>0]&8))g=0;else g=oB(d,0,59601,174177)|0;c[(c[41876]|0)+4>>2]=g;i=oB(d,1,84771,174177)|0;c[(c[41876]|0)+8>>2]=i;i=oB(d,1,59601,174177)|0;c[(c[41876]|0)+12>>2]=i;i=oB(d,2,84771,174177)|0;g=c[41876]|0;c[g+16>>2]=i;if(!f)h=0;else{h=oB(d,2,59609,174177)|0;g=c[41876]|0}c[g+20>>2]=h;if(!e)h=0;else{h=oB(d,2,59617,174177)|0;g=c[41876]|0}c[g+24>>2]=h;h=a[(c[j>>2]|0)+113>>0]|0;if(!(h&33))i=0;else{i=oB(d,2,59601,174177)|0;g=c[41876]|0;h=a[(c[j>>2]|0)+113>>0]|0}c[g+28>>2]=i;if(!(h&2))i=0;else{i=oB(d,2,59625,174177)|0;g=c[41876]|0;h=a[(c[j>>2]|0)+113>>0]|0}c[g+32>>2]=i;if(!(h&4))h=0;else{h=oB(d,2,59634,174177)|0;g=c[41876]|0}c[g+36>>2]=h;g=0;while(1){if((g|0)==8)break;bm(167376+(g<<4)|0,1024,(c[41876]|0)+40+(g<<10)|0);g=g+1|0}return}function Cb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+1040|0;h=j;g=j+8|0;f=0;d=b;a:while(1){do{e=d;d=d+1|0;e=a[e>>0]|0;if(!(e<<24>>24))break a}while(((e<<24>>24)+-48|0)>>>0>=10);if((f|0)>=1023){i=7;break}a[g+f>>0]=e;f=f+1|0}if((i|0)==7){c[h>>2]=b;Zl(0,59643,h)|0}a[g+f>>0]=0;i=(nM(g)|0)&65535;l=j;return i|0}function Db(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;d=c[c[41876]>>2]|0;b=c[41849]|0;if(b>>>0>=(c[41850]|0)>>>0){cm(167392,1)|0;b=c[41849]|0}a[b>>0]=0;b=c[41848]|0;c[41849]=b;Bm(e,d,b)|0;if(c[(c[e+16>>2]|0)+12>>2]|0){d=c[(c[41876]|0)+4>>2]|0;b=c[41865]|0;if(b>>>0>=(c[41866]|0)>>>0){cm(167456,1)|0;b=c[41865]|0}a[b>>0]=0;b=c[41864]|0;c[41865]=b;Bm(e,d,b)|0}h[2]=1.0;h[6]=1.0;c[41878]=0;c[41882]=0;return}function Eb(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[41849]|0;if((c[41848]|0)!=(b|0)){d=c[(c[41876]|0)+8>>2]|0;if(b>>>0>=(c[41850]|0)>>>0){cm(167392,1)|0;b=c[41849]|0}a[b>>0]=0;b=c[41848]|0;c[41849]=b;Bm(e,d,b)|0}b=c[41865]|0;if((c[41864]|0)!=(b|0)){d=c[(c[41876]|0)+12>>2]|0;if(b>>>0>=(c[41866]|0)>>>0){cm(167456,1)|0;b=c[41865]|0}a[b>>0]=0;b=c[41864]|0;c[41865]=b;Bm(e,d,b)|0}h[9]=1.0;h[11]=1.0;c[41885]=0;c[41887]=0;return}function Fb(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[41849]|0;if((c[41848]|0)!=(b|0)){d=c[(c[41876]|0)+16>>2]|0;if(b>>>0>=(c[41850]|0)>>>0){cm(167392,1)|0;b=c[41849]|0}a[b>>0]=0;b=c[41848]|0;c[41849]=b;Bm(e,d,b)|0}b=c[41853]|0;if((c[41852]|0)!=(b|0)){d=c[(c[41876]|0)+24>>2]|0;if(b>>>0>=(c[41854]|0)>>>0){cm(167408,1)|0;b=c[41853]|0}a[b>>0]=0;b=c[41852]|0;c[41853]=b;Bm(e,d,b)|0}b=c[41857]|0;if((c[41856]|0)!=(b|0)){d=c[(c[41876]|0)+20>>2]|0;if(b>>>0>=(c[41858]|0)>>>0){cm(167424,1)|0;b=c[41857]|0}a[b>>0]=0;b=c[41856]|0;c[41857]=b;Bm(e,d,b)|0}b=c[41865]|0;if((c[41864]|0)!=(b|0)){d=c[(c[41876]|0)+28>>2]|0;if(b>>>0>=(c[41866]|0)>>>0){cm(167456,1)|0;b=c[41865]|0}a[b>>0]=0;b=c[41864]|0;c[41865]=b;Bm(e,d,b)|0}b=c[41869]|0;if((c[41868]|0)!=(b|0)){d=c[(c[41876]|0)+36>>2]|0;if(b>>>0>=(c[41870]|0)>>>0){cm(167472,1)|0;b=c[41869]|0}a[b>>0]=0;b=c[41868]|0;c[41869]=b;Bm(e,d,b)|0}b=c[41873]|0;if((c[41872]|0)!=(b|0)){d=c[(c[41876]|0)+32>>2]|0;if(b>>>0>=(c[41874]|0)>>>0){cm(167488,1)|0;b=c[41873]|0}a[b>>0]=0;b=c[41872]|0;c[41873]=b;Bm(e,d,b)|0}h[10]=1.0;h[12]=1.0;h[3]=1.0;h[4]=1.0;h[7]=1.0;h[8]=1.0;c[41886]=0;c[41888]=0;c[41879]=0;c[41880]=0;c[41883]=0;c[41884]=0;return}function Gb(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+1056|0;j=t+16|0;s=t+8|0;r=t;k=t+32|0;o=c[(c[d+16>>2]|0)+12>>2]|0;p=c[11344+(o<<2)>>2]|0;em(p,59746)|0;g=f+4|0;Pb(k,+h[(c[g>>2]|0)+16>>3]);em(p,k)|0;Sb(d,174177,c[c[g>>2]>>2]|0);Mb(d);q=a[f+48>>0]|0;q=q<<24>>24==108?-1:q<<24>>24==114&1;g=c[g>>2]|0;if(!g)g=0;else g=c[g+24>>2]&127;i=b[(c[41876]|0)+8232>>1]|0;if((i&65535)>14?(m=c[11392+((i&65535)+-15<<2)>>2]&g,n=167508+(o<<2)|0,(c[n>>2]|0)!=(m|0)):0){c[r>>2]=m;lL(k,59749,r)|0;em(p,k)|0;c[n>>2]=m}r=e+8|0;h[r>>3]=+h[r>>3]+ +h[f+24>>3];em(p,59755)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];Ob(p,j);c[s>>2]=q;lL(k,87198,s)|0;em(p,k)|0;Pb(k,+h[f+32>>3]);em(p,k)|0;Sb(d,174177,c[f>>2]|0);l=t;return}function Hb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;i=l;l=l+1040|0;f=i;g=i+16|0;e=c[(c[a+16>>2]|0)+12>>2]|0;Lb(a);Mb(a);if(!d){a=c[11344+(e<<2)>>2]|0;em(a,59743)|0}else{if((d|1|0)==3)Ub(a,d,b,2);else Vb(a);a=c[11344+(e<<2)>>2]|0;em(a,59740)|0};c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Ob(a,f);Pb(g,+h[b+16>>3]-+h[b>>3]);em(a,g)|0;Pb(g,+h[b+24>>3]-+h[b+8>>3]);em(a,g)|0;l=i;return}function Ib(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Lb(a);Mb(a);if(!d)Nb(a,112,b,c);else{if((d|1|0)==3)Ub(a,d,b,c);else Vb(a);Nb(a,80,b,c)}return}function Jb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Lb(a);Mb(a);if(!f)Nb(a,66,b,c);else{if((f|1|0)==3)Ub(a,f,b,c);else Vb(a);Nb(a,98,b,c)}return}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;Lb(a);Mb(a);Nb(a,76,b,c);return}function Lb(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+1184|0;i=n;f=n+24|0;m=n+8|0;bm(m,1024,n+152|0);j=b+16|0;d=c[j>>2]|0;g=+h[d+152>>3];e=8+(c[d+12>>2]<<3)|0;if(g!=+h[e>>3]){h[e>>3]=g;em(m,59706)|0;h[i>>3]=+h[(c[j>>2]|0)+152>>3];lL(f,59720,i)|0;Qb(f,0);em(m,f)|0;f=m+4|0;d=c[f>>2]|0;e=m+8|0;if(d>>>0>=(c[e>>2]|0)>>>0){cm(m,1)|0;d=c[f>>2]|0}c[f>>2]=d+1;a[d>>0]=41;d=c[f>>2]|0;if(d>>>0>=(c[e>>2]|0)>>>0){cm(m,1)|0;d=c[f>>2]|0}a[d>>0]=0;d=c[m>>2]|0;c[f>>2]=d;Sb(b,59725,d);d=c[j>>2]|0}d=c[d+160>>2]|0;if(d|0){j=m+4|0;k=m+8|0;a:while(1){i=d+4|0;d=c[d>>2]|0;if(!d)break;switch(a[d>>0]|0){case 102:{if(!(uJ(d,95867)|0)){d=i;continue a}break}case 98:{if(!(uJ(d,95849)|0)){d=i;continue a}break}case 115:{if(!(uJ(d,95854)|0)){d=i;continue a}break}default:{}}em(m,d)|0;do{f=d;d=d+1|0}while((a[f>>0]|0)!=0);if(a[d>>0]|0){e=c[j>>2]|0;if(e>>>0>=(c[k>>2]|0)>>>0){cm(m,1)|0;e=c[j>>2]|0}c[j>>2]=e+1;a[e>>0]=40;f=0;while(1){if(!(a[d>>0]|0))break;if(f|0){e=c[j>>2]|0;if(e>>>0>=(c[k>>2]|0)>>>0){cm(m,1)|0;e=c[j>>2]|0}c[j>>2]=e+1;a[e>>0]=44}em(m,d)|0;do{e=d;d=d+1|0}while((a[e>>0]|0)!=0);f=f+1|0}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){cm(m,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=41}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){cm(m,1)|0;d=c[j>>2]|0}a[d>>0]=0;d=c[m>>2]|0;c[j>>2]=d;Sb(b,59725,d);d=i}fm(m)}l=n;return}function Mb(a){a=a|0;Rb((c[a+16>>2]|0)+16|0);Sb(a,68667,173878);return}function Nb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=l;l=l+1040|0;j=k;i=k+16|0;h=c[11344+(c[(c[b+16>>2]|0)+12>>2]<<2)>>2]|0;g=h+4|0;b=c[g>>2]|0;if(b>>>0>=(c[h+8>>2]|0)>>>0){cm(h,1)|0;b=c[g>>2]|0}c[g>>2]=b+1;a[b>>0]=d;c[j>>2]=f;lL(i,59670,j)|0;em(h,i)|0;b=0;while(1){if((b|0)>=(f|0))break;i=e+(b<<4)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];Ob(h,j);b=b+1|0}l=k;return}function Ob(a,b){a=a|0;b=b|0;var c=0,d=0;c=l;l=l+1024|0;d=c;Pb(d,+h[b>>3]);em(a,d)|0;Pb(d,+cx(+h[b+8>>3]));em(a,d)|0;l=c;return}function Pb(a,b){a=a|0;b=+b;var c=0,d=0;c=l;l=l+16|0;d=c;h[d>>3]=b>-1.0e-08&b<1.0e-08?0.0:b;lL(a,59675,d)|0;Qb(a,1);l=c;return}function Qb(b,c){b=b|0;c=c|0;var d=0,e=0;d=TJ(b,46)|0;if(!d){if(c|0){d=b+(oJ(b)|0)|0;e=10}}else{while(1){b=d+1|0;if(!(a[b>>0]|0))break;else d=b}a:while(1){switch(a[d>>0]|0){case 46:{e=5;break a}case 48:break;default:{e=6;break a}}a[d>>0]=0;d=d+-1|0}if((e|0)==5)a[d>>0]=0;else if((e|0)==6)d=d+1|0;if(c|0)e=10}if((e|0)==10){a[d>>0]=32;a[d+1>>0]=0}return}function Rb(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;i=j+16|0;h=j;e=a[b+3>>0]|0;f=d[b>>0]|0;g=d[b+1>>0]|0;b=d[b+2>>0]|0;if(e<<24>>24==-1){c[h>>2]=f;c[h+4>>2]=g;c[h+8>>2]=b;lL(173878,68547,h)|0}else{c[i>>2]=f;c[i+4>>2]=g;c[i+8>>2]=b;c[i+12>>2]=e&255;lL(173878,59688,i)|0}l=j;return}function Sb(a,b,d){a=a|0;b=b|0;d=d|0;Tb(c[11344+(c[(c[a+16>>2]|0)+12>>2]<<2)>>2]|0,b,d);return}function Tb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+1040|0;h=f;g=f+8|0;i=oJ(e)|0;c[h>>2]=d;c[h+4>>2]=i;lL(g,59681,h)|0;em(b,g)|0;em(b,e)|0;e=b+4|0;d=c[e>>2]|0;if(d>>>0>=(c[b+8>>2]|0)>>>0){cm(b,1)|0;d=c[e>>2]|0}c[e>>2]=d+1;a[d>>0]=32;l=f;return}function Ub(b,d,f,i){b=b|0;d=d|0;f=f|0;i=i|0;var j=0.0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=l;l=l+1120|0;t=x+64|0;w=x+80|0;k=x+32|0;r=x+16|0;s=x;u=c[b+16>>2]|0;j=+(c[u+136>>2]|0)*.017453292519943295;if((e[(c[41876]|0)+8232>>1]|0)<14)Vb(b);else{bm(w,1024,x+96|0);v=(d|0)==2;if(v){EB(f,k,i,j,2);f=w+4|0;d=c[f>>2]|0;if(d>>>0>=(c[w+8>>2]|0)>>>0){cm(w,1)|0;d=c[f>>2]|0}c[f>>2]=d+1;a[d>>0]=91;c[t>>2]=c[k>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];c[t+12>>2]=c[k+12>>2];Ob(w,t);s=k+16|0;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];Ob(w,t)}else{EB(f,k,i,0.0,3);q=+h[k+24>>3];o=+h[k>>3];if(j==0.0){n=+h[k+8>>3];p=q*.25;j=n;m=o}else{p=q*.25;y=p;m=+E(+j)*y+o;n=+h[k+8>>3];j=+F(+j)*y+n}h[r>>3]=m;h[r+8>>3]=j;h[s>>3]=o;h[s+8>>3]=n;f=w+4|0;d=c[f>>2]|0;if(d>>>0>=(c[w+8>>2]|0)>>>0){cm(w,1)|0;d=c[f>>2]|0}c[f>>2]=d+1;a[d>>0]=40;c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];Ob(w,t);Wb(w,p);c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];Ob(w,t);Wb(w,q)}em(w,59731)|0;d=u+140|0;j=+g[d>>2];f=u+56|0;if(j>0.0){Xb(w,j,f);Xb(w,+g[d>>2],u+96|0)}else{Xb(w,0.0,f);Xb(w,1.0,u+96|0)}gm(w)|0;k=w+4|0;d=c[k>>2]|0;i=w+8|0;f=d>>>0>=(c[i>>2]|0)>>>0;if(v){if(f){cm(w,1)|0;d=c[k>>2]|0}c[k>>2]=d+1;a[d>>0]=93}else{if(f){cm(w,1)|0;d=c[k>>2]|0}c[k>>2]=d+1;a[d>>0]=41}d=c[k>>2]|0;if(d>>>0>=(c[i>>2]|0)>>>0){cm(w,1)|0;d=c[k>>2]|0}a[d>>0]=0;v=c[w>>2]|0;c[k>>2]=v;Sb(b,59728,v);fm(w)}l=x;return}function Vb(a){a=a|0;Rb((c[a+16>>2]|0)+56|0);Sb(a,59728,173878);return}function Wb(a,b){a=a|0;b=+b;var c=0,d=0;c=l;l=l+1024|0;d=c;Pb(d,b);em(a,d)|0;l=c;return}function Xb(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,f=0;d=l;l=l+1040|0;f=d;e=d+8|0;h[f>>3]=b;lL(e,59734,f)|0;Qb(e,1);Rb(c);Tb(a,e,173878);l=d;return}function Yb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0;e=l;l=l+1040|0;i=e;f=e+16|0;g=c[11344+(c[(c[a+16>>2]|0)+12>>2]<<2)>>2]|0;em(g,59843)|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];Ob(g,i);Pb(f,+h[d+16>>3]-+h[d>>3]);em(g,f)|0;Pb(f,+h[d+24>>3]-+h[d+8>>3]);em(g,f)|0;Sb(a,174177,c[b+8>>2]|0);l=e;return}function Zb(a){a=a|0;var b=0;switch(c[a+64>>2]|0){case 0:{b=tr(c[a>>2]|0)|0;hs(b,c[(c[a+16>>2]|0)+8>>2]|0,60630,0)|0;ur(b);break}case 1:{qx(c[(c[a>>2]|0)+168>>2]|0);break}default:{}}return}function _b(b){b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;d=f;e=c[(c[b+16>>2]|0)+8>>2]|0;if(!(c[41889]|0)){c[41889]=c[4442];c[41890]=9;c[41891]=17}c[(c[e+64>>2]|0)+8>>2]=167556;$b(e,1);c[d>>2]=0;a[d+4>>0]=(a[(c[e+16>>2]|0)+115>>0]|0)==1&1;g=c[b+64>>2]|0;a[d+5>>0]=((g|0)==0|(g|0)==3)&1;a[d+6>>0]=0;ac(e,b,1,d);l=f;return}function $b(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[a>>2]&-9;d=Hp(a)|0;while(1){if(!d)break;$b(d,0);d=Ip(d)|0}a:do if(b|0){b=bo(a)|0;while(1){if(!b)break a;c[b>>2]=c[b>>2]&-9;d=Om(a,b)|0;while(1){if(!d)break;c[d>>2]=c[d>>2]&-9;d=Qm(a,d)|0}b=co(a,b)|0}}while(0);return}function ac(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q+8|0;o=q;n=(d|0)!=0;if(n){m=Pl(11764,c[4345]|0)|0;Ro(a,1,86743,12,0);Ro(a,2,86743,12,0);Ro(a,0,86743,-12,0);f=bc(a,0,m)|0;j=bo(a)|0;i=0;g=0;while(1){if(!j)break;if(!(SJ(Cn(j)|0,92983,7)|0)){k=g;g=cc(m,Cn(j)|0)|0}else{k=g+1|0;g=g+f|0}c[(Ko(j,86743,0)|0)+8>>2]=g;h=Om(a,j)|0;g=i;while(1){if(!h)break;c[(Ko(h,86743,0)|0)+8>>2]=g;h=Qm(a,h)|0;g=g+1|0}j=co(a,j)|0;i=g;g=k}Jl(m)|0}else f=0;m=c[e>>2]|0;c[e>>2]=m+1;dc(b,m);hr(b,82337)|0;ec(a,b,d,e);fc(a,b,e);hr(b,82308)|0;dc(b,c[e>>2]|0);if(n){c[o>>2]=f;nr(b,59846,o)}else{c[p>>2]=c[(Ko(a,86743,0)|0)+8>>2];nr(b,59866,p)}hc(a,b,d,gc(a,b,d,e)|0,e);ic(a,b,d,e);hr(b,134901)|0;p=(c[e>>2]|0)+-1|0;c[e>>2]=p;dc(b,p);if(n)hr(b,95774)|0;else hr(b,68190)|0;l=q;return}function bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((ro(a)|0)!=(a|0)){e=b+1|0;c[(Ko(a,86743,0)|0)+8>>2]=b;if(!(SJ(Cn(a)|0,92983,7)|0)){b=Cn(a)|0;uc(d,b,c[(Ko(a,86743,0)|0)+8>>2]|0);b=e}else b=e}e=Hp(a)|0;while(1){if(!e)break;a=bc(e,b,d)|0;e=Ip(e)|0;b=a}return b|0}function cc(a,b){a=a|0;b=b|0;a=bb[c[a>>2]&31](a,b,512)|0;if(!a)a=-1;else a=c[a+12>>2]|0;return a|0}function dc(a,b){a=a|0;b=b|0;while(1){if((b|0)<=0)break;hr(a,60598)|0;b=b+-1|0}return}function ec(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=l;l=l+32|0;g=h+16|0;f=h+8|0;i=h;j=Cn(a)|0;dc(b,c[e>>2]|0);c[i>>2]=lc(j,e)|0;nr(b,59954,i);if(d|0){hr(b,82308)|0;dc(b,c[e>>2]|0);j=(pn(a)|0)!=0;c[f>>2]=j?92629:122100;nr(b,60568,f);dc(b,c[e>>2]|0);j=(rn(a)|0)!=0;c[g>>2]=j?92629:122100;nr(b,60585,g)}l=h;return}function fc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;m=o;i=ro(b)|0;j=c[b>>2]&3;f=Cm(i,j,0)|0;a:do if(f|0){k=e+5|0;while(1){if(!f)break a;g=Im(b,f)|0;do if(g|0){h=f+8|0;if(!(a[g>>0]|0)){g=c[h>>2]|0;if((a[g>>0]|0)!=108)break;if(uJ(g,86184)|0)break}hr(d,82308)|0;dc(d,c[e>>2]|0);c[m>>2]=lc(c[h>>2]|0,e)|0;nr(d,60004,m);if(a[k>>0]|0?nc(c[h>>2]|0)|0:0){oc(Im(b,f)|0,d,e);break}c[n>>2]=lc(Im(b,f)|0,e)|0;nr(d,60011,n)}while(0);f=Cm(i,j,f)|0}}while(0);l=o;return}function gc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;f=Hp(a)|0;if(f){hr(b,82308)|0;g=c[e>>2]|0;c[e>>2]=g+1;dc(b,g);g=(d|0)!=0;if(g){hr(b,59928)|0;a=0;d=f}else{hr(b,59988)|0;dc(b,c[e>>2]|0);a=0;d=f}while(1){if(!d)break;if(!a)a=1;else hr(b,82308)|0;if(g)mc(d,b,e);else{c[h>>2]=c[(Ko(d,86743,0)|0)+8>>2];nr(b,122187,h)}d=Ip(d)|0}if(g)a=1;else{c[e>>2]=(c[e>>2]|0)+-1;hr(b,134901)|0;dc(b,c[e>>2]|0);hr(b,82303)|0;a=1}}else a=0;l=i;return a|0}function hc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=bo(a)|0;if(!g){if((d|0)!=0&(e|0)!=0){c[f>>2]=(c[f>>2]|0)+-1;hr(b,134901)|0;dc(b,c[f>>2]|0);hr(b,82303)|0}}else{hr(b,82308)|0;h=(d|0)!=0;if(h)if(!e){e=c[f>>2]|0;c[f>>2]=e+1;dc(b,e);hr(b,59928)|0;e=0}else e=0;else{e=c[f>>2]|0;c[f>>2]=e+1;dc(b,e);hr(b,59942)|0;dc(b,c[f>>2]|0);e=0}while(1){if(!g)break;if(SJ(Cn(g)|0,92983,7)|0){do if(e)if(h){hr(b,82308)|0;break}else{hr(b,85974)|0;break}else e=1;while(0);kc(g,b,d,f)}g=co(a,g)|0}c[f>>2]=(c[f>>2]|0)+-1;hr(b,134901)|0;dc(b,c[f>>2]|0);hr(b,82303)|0}return}function ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=bo(a)|0;a:do if(f|0){while(1){if(!f)break a;if(Om(a,f)|0)break;f=co(a,f)|0}hr(b,82308)|0;i=c[e>>2]|0;c[e>>2]=i+1;dc(b,i);hr(b,59878)|0;i=(d|0)!=0;if(i)g=0;else{dc(b,c[e>>2]|0);g=0}while(1){if(!f)break;h=Om(a,f)|0;while(1){if(!h)break;do if(g)if(i){hr(b,82308)|0;break}else{hr(b,85974)|0;break}else g=1;while(0);jc(h,b,d,e);h=Qm(a,h)|0}f=co(a,f)|0}c[e>>2]=(c[e>>2]|0)+-1;hr(b,134901)|0;dc(b,c[e>>2]|0);hr(b,82303)|0}while(0);return}function jc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;i=j+24|0;h=j+16|0;g=j+8|0;f=j;if(!d){c[i>>2]=c[(Ko(a,86743,0)|0)+8>>2];nr(b,122187,i)}else{i=c[e>>2]|0;c[e>>2]=i+1;dc(b,i);hr(b,82337)|0;dc(b,c[e>>2]|0);c[f>>2]=c[(Ko(a,86743,0)|0)+8>>2];nr(b,59890,f);dc(b,c[e>>2]|0);c[g>>2]=c[(Ko(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0,86743,0)|0)+8>>2];nr(b,59904,g);dc(b,c[e>>2]|0);c[h>>2]=c[(Ko(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0,86743,0)|0)+8>>2];nr(b,59917,h);fc(a,b,e);hr(b,134901)|0;i=(c[e>>2]|0)+-1|0;c[e>>2]=i;dc(b,i);hr(b,68190)|0}l=j;return}function kc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i+16|0;g=i+8|0;f=i;if(!d){c[h>>2]=c[(Ko(a,86743,0)|0)+8>>2];nr(b,122187,h)}else{h=c[e>>2]|0;c[e>>2]=h+1;dc(b,h);hr(b,82337)|0;dc(b,c[e>>2]|0);c[f>>2]=c[(Ko(a,86743,0)|0)+8>>2];nr(b,59890,f);dc(b,c[e>>2]|0);c[g>>2]=lc(Cn(a)|0,e)|0;nr(b,59954,g);fc(a,b,e);hr(b,134901)|0;h=(c[e>>2]|0)+-1|0;c[e>>2]=h;dc(b,h);hr(b,68190)|0}l=i;return}function lc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+4|0;if(a[g>>0]|0)b=tB(b)|0;if(!(c[41892]|0)){bm(167568,1024,0);e=b}else e=b;a:while(1){f=a[e>>0]|0;switch(f<<24>>24){case 0:break a;case 34:{em(167568,59967)|0;break}case 92:{em(167568,81579)|0;break}case 47:{em(167568,59970)|0;break}case 8:{em(167568,59973)|0;break}case 12:{em(167568,59976)|0;break}case 10:{em(167568,59979)|0;break}case 13:{em(167568,59982)|0;break}case 9:{em(167568,59985)|0;break}default:{d=c[41893]|0;if(d>>>0>=(c[41894]|0)>>>0){cm(167568,1)|0;d=c[41893]|0}c[41893]=d+1;a[d>>0]=f}}e=e+1|0}d=c[41893]|0;if(d>>>0>=(c[41894]|0)>>>0){cm(167568,1)|0;d=c[41893]|0}a[d>>0]=0;d=c[41892]|0;c[41893]=d;if(a[g>>0]|0)XI(b);return d|0}function mc(a,b,c){a=a|0;b=b|0;c=c|0;ac(a,b,0,c);a=Hp(a)|0;while(1){if(!a)break;hr(b,82308)|0;mc(a,b,c);a=Ip(a)|0}return}function nc(b){b=b|0;var c=0;c=b+1|0;a:do if((a[b>>0]|0)==95){b=(a[c>>0]|0)+-100<<24>>24;switch(((b&255)>>>2|b<<6&255)<<24>>24){case 0:{if(!(uJ(c,60525)|0)){b=1;break a}break}case 2:{if(!(uJ(c,60531)|0)){b=1;break a}break}case 1:{if(!(uJ(c,60538)|0)){b=1;break a}return (uJ(c,60552)|0)==0|0}case 4:{if(!(uJ(c,60545)|0)){b=1;break a}b=(uJ(c,60560)|0)==0&1;break a}default:{b=0;break a}}b=0}else b=0;while(0);return b|0}function oc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;f=i;do if(b|0?a[b>>0]|0:0){h=rt(b)|0;if(!h){c[f>>2]=b;Zl(0,60016,f)|0;break}hr(d,134901)|0;g=c[e>>2]|0;c[e>>2]=g+1;dc(d,g);hr(d,60043)|0;g=h+8|0;b=0;f=0;while(1){if((f|0)>=(c[h>>2]|0))break;if(!b)b=1;else hr(d,82308)|0;pc((c[g>>2]|0)+(f*80|0)|0,d,e);f=f+1|0}c[e>>2]=(c[e>>2]|0)+-1;hr(d,134901)|0;dc(d,c[e>>2]|0);hr(d,82303)|0;st(h)}while(0);l=i;return}function pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0;A=l;l=l+240|0;y=A+224|0;x=A+216|0;w=A+208|0;v=A+200|0;u=A+192|0;t=A+184|0;s=A+176|0;r=A+152|0;q=A+136|0;p=A+128|0;o=A+112|0;n=A+104|0;m=A+96|0;k=A+88|0;j=A+72|0;i=A+48|0;z=A+40|0;g=A+8|0;f=A;e=c[d>>2]|0;c[d>>2]=e+1;dc(b,e);hr(b,82337)|0;dc(b,c[d>>2]|0);e=c[a>>2]|0;a:do switch(e|0){case 1:case 0:{c[f>>2]=(e|0)==0?69:101;nr(b,60046,f);dc(b,c[d>>2]|0);D=+h[a+16>>3];C=+h[a+24>>3];B=+h[a+32>>3];h[g>>3]=+h[a+8>>3];h[g+8>>3]=D;h[g+16>>3]=C;h[g+24>>3]=B;nr(b,60059,g);break}case 3:case 2:{c[z>>2]=(e|0)==2?80:112;nr(b,60046,z);dc(b,c[d>>2]|0);qc(b,a+8|0);break}case 5:case 4:{c[i>>2]=(e|0)==4?66:98;nr(b,60046,i);dc(b,c[d>>2]|0);qc(b,a+8|0);break}case 6:{nr(b,60094,A+56|0);dc(b,c[d>>2]|0);qc(b,a+8|0);break}case 7:{nr(b,60106,A+64|0);dc(b,c[d>>2]|0);D=+h[a+16>>3];h[j>>3]=+h[a+8>>3];h[j+8>>3]=D;nr(b,60118,j);dc(b,c[d>>2]|0);z=c[a+24>>2]|0;c[k>>2]=(z|0)==0?108:(z|0)==1?99:114;nr(b,60140,k);dc(b,c[d>>2]|0);h[m>>3]=+h[a+32>>3];nr(b,60156,m);dc(b,c[d>>2]|0);c[n>>2]=lc(c[a+40>>2]|0,d)|0;nr(b,60173,n);break}case 9:case 8:{c[o>>2]=(e|0)==8?67:99;nr(b,60046,o);dc(b,c[d>>2]|0);nr(b,60187,A+120|0);dc(b,c[d>>2]|0);c[p>>2]=lc(c[a+8>>2]|0,d)|0;nr(b,60204,p);break}case 13:case 14:{c[q>>2]=(e|0)==13?67:99;nr(b,60046,q);dc(b,c[d>>2]|0);switch(c[a+8>>2]|0){case 0:{nr(b,60187,A+144|0);dc(b,c[d>>2]|0);c[r>>2]=lc(c[a+16>>2]|0,d)|0;nr(b,60204,r);break a}case 1:{nr(b,60219,A+160|0);dc(b,c[d>>2]|0);rc(b,a+16|0,d);break a}default:{nr(b,60238,A+168|0);dc(b,c[d>>2]|0);sc(b,a+16|0,d);break a}}}case 10:{nr(b,60257,s);dc(b,c[d>>2]|0);h[t>>3]=+h[a+8>>3];nr(b,60269,t);dc(b,c[d>>2]|0);c[u>>2]=lc(c[a+16>>2]|0,d)|0;nr(b,60285,u);break}case 11:{nr(b,60299,v);dc(b,c[d>>2]|0);c[w>>2]=lc(c[a+8>>2]|0,d)|0;nr(b,60311,w);break}case 15:{nr(b,60326,x);dc(b,c[d>>2]|0);c[y>>2]=c[a+8>>2];nr(b,60338,y);break}default:{}}while(0);z=(c[d>>2]|0)+-1|0;c[d>>2]=z;dc(b,z);hr(b,68190)|0;l=A;return}function qc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0.0;j=l;l=l+48|0;i=j+32|0;g=j+16|0;f=j+8|0;e=c[b>>2]|0;d=c[b+4>>2]|0;nr(a,60499,j);b=0;while(1){if((b|0)>=(e|0))break;if((b|0)>0)nr(a,85974,f);k=+h[d+(b*24|0)+8>>3];h[g>>3]=+h[d+(b*24|0)>>3];h[g+8>>3]=k;nr(a,60511,g);b=b+1|0}nr(a,60452,i);l=j;return}function rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0;e=l;l=l+32|0;f=e+16|0;i=e;dc(a,c[d>>2]|0);g=+h[b+8>>3];h[i>>3]=+h[b>>3];h[i+8>>3]=g;nr(a,60455,i);dc(a,c[d>>2]|0);g=+h[b+24>>3];h[f>>3]=+h[b+16>>3];h[f+8>>3]=g;nr(a,60477,f);dc(a,c[d>>2]|0);tc(a,c[b+32>>2]|0,c[b+36>>2]|0,d);l=e;return}function sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0;e=l;l=l+48|0;f=e+24|0;j=e;dc(a,c[d>>2]|0);g=+h[b+8>>3];i=+h[b+16>>3];h[j>>3]=+h[b>>3];h[j+8>>3]=g;h[j+16>>3]=i;nr(a,60354,j);dc(a,c[d>>2]|0);i=+h[b+32>>3];g=+h[b+40>>3];h[f>>3]=+h[b+24>>3];h[f+8>>3]=i;h[f+16>>3]=g;nr(a,60382,f);dc(a,c[d>>2]|0);tc(a,c[b+48>>2]|0,c[b+52>>2]|0,d);l=e;return}function tc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0.0;m=l;l=l+48|0;k=m+32|0;j=m+16|0;i=m+8|0;nr(a,60410,m);f=0;while(1){if((f|0)>=(b|0))break;if((f|0)>0)nr(a,85974,i);o=+g[d+(f<<3)>>2];n=lc(c[d+(f<<3)+4>>2]|0,e)|0;h[j>>3]=o;c[j+8>>2]=n;nr(a,60421,j);f=f+1|0}nr(a,60452,k);l=m;return}function uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=bb[c[a>>2]&31](a,b,512)|0;if(e){if((c[e+12>>2]|0)!=(d|0)){c[f>>2]=b;Zl(0,60601,f)|0}}else{f=YI(1,16)|0;c[f+8>>2]=CL(b)|0;c[f+12>>2]=d;bb[c[a>>2]&31](a,f,1)|0}l=g;return}function vc(a,b,d){a=a|0;b=b|0;d=d|0;XI(c[b+8>>2]|0);XI(b);return}function wc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;hr(a,61456)|0;j=c[c[a+12>>2]>>2]|0;i=c[j+4>>2]|0;h=c[j+8>>2]|0;c[g>>2]=c[j>>2];c[g+4>>2]=i;c[g+8>>2]=h;nr(a,61466,g);c[e>>2]=Cn(c[f+8>>2]|0)|0;nr(a,61501,e);c[d>>2]=O(c[a+168>>2]|0,c[a+164>>2]|0)|0;nr(a,61514,d);hr(a,61527)|0;hr(a,61537)|0;hr(a,61545)|0;hr(a,61553)|0;hr(a,61561)|0;hr(a,61569)|0;hr(a,61577)|0;hr(a,61581)|0;hr(a,61586)|0;l=b;return}function xc(a){a=a|0;hr(a,61437)|0;return}function yc(a){a=a|0;c[41896]=2;return}function zc(a){a=a|0;c[41896]=1;return}function Ac(a){a=a|0;c[41896]=2;return}function Bc(a){a=a|0;c[41896]=0;return}function Cc(a){a=a|0;c[41896]=2;return}function Dc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0;p=l;l=l+80|0;o=p;m=c[(c[b+16>>2]|0)+16>>2]|0;n=c[41896]|0;f=c[e+4>>2]|0;g=+h[b+352>>3]*+h[f+16>>3];i=c[b+360>>2]|0?1.5707963267948966:0.0;j=c[e>>2]|0;k=g*.3333333333333333*+((oJ(j)|0)>>>0);f=c[f+8>>2]|0;if(!f)f=-1;else f=c[f+20>>2]|0;s=a[e+48>>0]|0;r=+h[d>>3];q=+h[d+8>>3];e=Nc(j)|0;c[o>>2]=4;c[o+4>>2]=s<<24>>24==108?0:s<<24>>24==114?2:1;c[o+8>>2]=m;c[o+12>>2]=n;c[o+16>>2]=0;c[o+20>>2]=f;h[o+24>>3]=g;h[o+32>>3]=i;c[o+40>>2]=6;h[o+48>>3]=g;h[o+56>>3]=k;c[o+64>>2]=~~(r+(r>=0.0?.5:-.5));c[o+68>>2]=~~(q+(q+-72.0>=0.0?-71.5:-72.5));c[o+72>>2]=e;nr(b,61382,o);l=p;return}function Ec(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+32|0;j=n;i=n+20|0;m=e+32|0;a:do switch(c[m>>2]|0){case 5:{f=0;while(1){g=c[12652+(f<<2)>>2]|0;if((f|0)==8)break a;h=c[e>>2]|0;if((a[g>>0]|0)==(a[h>>0]|0)?(uJ(g,h)|0)==0:0){k=10;break a}f=f+1|0}}case 1:{g=e+1|0;h=e+2|0;f=(Mc(i,d[e>>0]|0,d[g>>0]|0,d[h>>0]|0)|0)+32|0;if(!(c[i>>2]|0))k=10;else{o=d[e>>0]|0;i=d[g>>0]|0;k=d[h>>0]|0;c[j>>2]=0;c[j+4>>2]=f;c[j+8>>2]=o;c[j+12>>2]=i;c[j+16>>2]=k;nr(b,61325,j);k=10}break}default:ma(123205,60722,163,60753)}while(0);if((k|0)==10)c[e>>2]=f;c[m>>2]=6;l=n;return}function Fc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+112|0;f=e+8|0;u=e+104|0;t=e;k=c[a+16>>2]|0;s=~~+h[k+152>>3];r=c[k+16>>2]|0;q=c[k+56>>2]|0;p=c[41896]|0;Kc(k,u,t);n=+h[b>>3];k=~~(n+(n>=0.0?.5:-.5));m=+h[b+8>>3];j=~~(m+(m>=0.0?.5:-.5));i=+h[b+16>>3];n=i-n;g=+h[b+24>>3];m=g-m;b=c[u>>2]|0;o=+h[t>>3];c[f>>2]=1;c[f+4>>2]=1;c[f+8>>2]=b;c[f+12>>2]=s;c[f+16>>2]=r;c[f+20>>2]=q;c[f+24>>2]=p;c[f+28>>2]=0;c[f+32>>2]=d|0?20:-1;h[f+40>>3]=o;c[f+48>>2]=0;h[f+56>>3]=0.0;c[f+64>>2]=k;c[f+68>>2]=j;c[f+72>>2]=~~(n+(n>=0.0?.5:-.5));c[f+76>>2]=~~(m+(m>=0.0?.5:-.5));c[f+80>>2]=k;c[f+84>>2]=j;c[f+88>>2]=~~(i+(i>=0.0?.5:-.5));c[f+92>>2]=~~(g+(g>=0.0?.5:-.5));nr(a,61260,f);l=e;return}function Gc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;f=l;l=l+96|0;g=f+8|0;o=f+80|0;p=f;q=c[a+16>>2]|0;n=~~+h[q+152>>3];m=c[q+16>>2]|0;k=c[q+56>>2]|0;j=c[41896]|0;Kc(q,o,p);o=c[o>>2]|0;i=+h[p>>3];c[g>>2]=2;c[g+4>>2]=3;c[g+8>>2]=o;c[g+12>>2]=n;c[g+16>>2]=m;c[g+20>>2]=k;c[g+24>>2]=j;c[g+28>>2]=0;c[g+32>>2]=e|0?20:-1;h[g+40>>3]=i;c[g+48>>2]=0;c[g+52>>2]=0;c[g+56>>2]=0;c[g+60>>2]=0;c[g+64>>2]=0;c[g+68>>2]=d+1;nr(a,61164,g);Lc(a,b,d,1);l=f;return}function Hc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0;C=l;l=l+192|0;B=C+176|0;z=C+168|0;A=C+104|0;y=C+96|0;i=C+88|0;u=C+180|0;v=C+80|0;w=C+16|0;x=C;f=a+16|0;e=c[f>>2]|0;q=~~+h[e+152>>3];r=c[e+16>>2]|0;s=c[41896]|0;if((d|0)<=3)ma(60715,60722,360,60742);t=WI((d*140|0)+140|0)|0;Kc(e,u,v);if(!g){o=4;j=0;k=-1}else{o=5;j=c[(c[f>>2]|0)+56>>2]|0;k=20}E=+h[b>>3];n=w+48|0;h[n>>3]=E;D=+h[b+8>>3];h[w+56>>3]=D;c[i>>2]=~~(E+(E>=0.0?.5:-.5));c[i+4>>2]=~~(D+(D>=0.0?.5:-.5));m=x+8|0;e=t+(lL(t,73932,i)|0)|0;p=1;g=0;while(1){i=g+3|0;if((i|0)>=(d|0))break;c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];f=1;while(1){if((f|0)==4){f=1;break}F=f+g|0;h[w+(f<<4)>>3]=+h[b+(F<<4)>>3];h[w+(f<<4)+8>>3]=+h[b+(F<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;KA(x,w,3,+(f|0)*.16666666666666666,0,0);D=+h[x>>3];E=+h[m>>3];c[y>>2]=~~(D+(D>=0.0?.5:-.5));c[y+4>>2]=~~(E+(E>=0.0?.5:-.5));f=f+1|0;e=e+(lL(e,73932,y)|0)|0}p=p+6|0;g=i}f=c[u>>2]|0;E=+h[v>>3];c[A>>2]=3;c[A+4>>2]=o;c[A+8>>2]=f;c[A+12>>2]=q;c[A+16>>2]=r;c[A+20>>2]=j;c[A+24>>2]=s;c[A+28>>2]=0;c[A+32>>2]=k;h[A+40>>3]=E;c[A+48>>2]=0;c[A+52>>2]=0;c[A+56>>2]=0;c[A+60>>2]=p;nr(a,61215,A);c[z>>2]=t;nr(a,73939,z);XI(t);f=p+-1|0;e=0;while(1){if((e|0)>=(p|0))break;c[B>>2]=((e|0)%(f|0)|0|0)!=0&1;nr(a,73944,B);e=e+1|0}hr(a,134901)|0;l=C;return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0;e=l;l=l+96|0;f=e+8|0;m=e+80|0;n=e;o=c[a+16>>2]|0;k=~~+h[o+152>>3];j=c[o+16>>2]|0;i=c[41896]|0;Kc(o,m,n);m=c[m>>2]|0;g=+h[n>>3];c[f>>2]=2;c[f+4>>2]=1;c[f+8>>2]=m;c[f+12>>2]=k;c[f+16>>2]=j;c[f+20>>2]=0;c[f+24>>2]=i;c[f+28>>2]=0;c[f+32>>2]=0;h[f+40>>3]=g;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=d;nr(a,61164,f);Lc(a,b,d,0);l=e;return}function Jc(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;nr(a,61158,e);l=d;return}function Kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;switch(c[a+144>>2]|0){case 1:{e=10.0;a=1;break}case 2:{e=10.0;a=2;break}default:{e=0.0;a=0}}c[b>>2]=a;h[d>>3]=e;return}function Lc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+16|0;i=j+8|0;g=j;f=0;while(1){if((f|0)>=(d|0))break;m=+h[b+(f<<4)>>3];k=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(k+(k>=0.0?.5:-.5));nr(a,73932,g);f=f+1|0}if(e|0){k=+h[b>>3];m=+h[b+8>>3];c[i>>2]=~~(k+(k>=0.0?.5:-.5));c[i+4>>2]=~~(m+(m>=0.0?.5:-.5));nr(a,73932,i)}hr(a,134901)|0;l=j;return}function Mc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c[a>>2]=0;k=c[41897]|0;h=195075;g=0;i=-1;while(1){if((g|0)>=(k|0)){l=6;break}m=(b[170800+(g<<1)>>1]|0)-d|0;n=(b[171312+(g<<1)>>1]|0)-e|0;j=(b[171824+(g<<1)>>1]|0)-f|0;j=(O(n,n)|0)+(O(m,m)|0)+(O(j,j)|0)|0;if((j|0)<(h|0))if(!j)break;else{h=j;i=g}g=g+1|0}if((l|0)==6){c[41897]=k+1;if((k|0)==256)g=i;else{b[170800+(g<<1)>>1]=d;b[171312+(g<<1)>>1]=e;b[171824+(g<<1)>>1]=f;c[a>>2]=1}}return g|0}function Nc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;d=c[41898]|0;if(!d){c[41899]=64;d=WI(64)|0;c[41898]=d;e=0}else e=0;while(1){g=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24))break;b=c[41899]|0;if((e|0)>(b+-8|0)){d=b<<1;c[41899]=d;d=ZI(c[41898]|0,d)|0;c[41898]=d;d=d+e|0}if(f<<24>>24<=-1){a[d>>0]=92;c[h>>2]=f&255;lL(d+1|0,74057,h)|0;b=g;d=d+4|0;e=e+4|0;continue}if(f<<24>>24==92){a[d>>0]=92;e=e+1|0;d=d+1|0}a[d>>0]=f;b=g;d=d+1|0;e=e+1|0}a[d>>0]=0;l=i;return c[41898]|0}function Oc(b){b=b|0;var d=0,e=0,f=0;e=c[b+16>>2]|0;switch(c[b+64>>2]|0){case 0:{hr(b,61053)|0;d=e+208|0;e=c[d>>2]|0;if(e|0?a[e>>0]|0:0){hr(b,61067)|0;hr(b,mw(c[d>>2]|0)|0)|0;hr(b,134901)|0}break}case 1:{d=e+208|0;f=c[d>>2]|0;if(f|0?a[f>>0]|0:0){hr(b,61067)|0;hr(b,mw(c[d>>2]|0)|0)|0;hr(b,87582)|0;hr(b,mw(Cn(c[e+8>>2]|0)|0)|0)|0;hr(b,134901)|0}break}case 3:{f=mw(Cn(c[e+8>>2]|0)|0)|0;hr(b,61076)|0;hr(b,f)|0;hr(b,61086)|0;hr(b,f)|0;hr(b,61041)|0;break}default:{}}return}function Pc(a){a=a|0;var b=0;b=c[a+16>>2]|0;switch(c[a+64>>2]|0){case 2:{Rc(a,c[b+264>>2]|0,c[b+272>>2]|0,c[b+268>>2]|0,c[b+208>>2]|0,c[b+228>>2]|0,c[b+244>>2]|0,c[b+212>>2]|0);break}case 3:{Rc(a,c[b+264>>2]|0,c[b+272>>2]|0,c[b+268>>2]|0,c[b+208>>2]|0,c[b+228>>2]|0,c[b+244>>2]|0,c[b+212>>2]|0);hr(a,61045)|0;break}default:{}}return}function Qc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+16>>2]|0;Rc(a,c[g+264>>2]|0,c[g+272>>2]|0,c[g+268>>2]|0,b,d,e,f);return}function Rc(b,d,e,f,g,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=l;l=l+128|0;x=y+120|0;u=y+112|0;t=y+96|0;s=y+80|0;r=y+56|0;w=y+48|0;q=y+40|0;v=y+24|0;p=y;a:do if((e|0)!=0&(f|0)!=0){m=f+10|0;if((c[41900]|0)<(f|0)){c[41900]=m;o=ZI(c[41901]|0,m<<3)|0;c[41901]=o}else o=c[41901]|0;m=0;while(1){if((m|0)>=(f|0))break;z=+h[e+(m<<4)>>3];c[o+(m<<3)>>2]=~~(z+(z>=0.0?.5:-.5));z=+h[e+(m<<4)+8>>3];c[o+(m<<3)+4>>2]=~~(z+(z>=0.0?.5:-.5));m=m+1|0}n=b+64|0;m=c[n>>2]|0;e=(g|0)!=0;if(e&(m|0)==0){if(!(a[g>>0]|0))break;switch(d|0){case 0:{v=c[o>>2]|0;w=c[o+12>>2]|0;x=c[o+8>>2]|0;f=c[o+4>>2]|0;c[p>>2]=g;c[p+4>>2]=v;c[p+8>>2]=w;c[p+12>>2]=x;c[p+16>>2]=f;nr(b,60787,p);break a}case 1:{w=c[o>>2]|0;x=c[o+4>>2]|0;f=(c[o+8>>2]|0)-w|0;c[v>>2]=g;c[v+4>>2]=w;c[v+8>>2]=x;c[v+12>>2]=f;nr(b,60808,v);break a}case 2:{c[q>>2]=g;nr(b,60828,q);m=0;while(1){if((m|0)>=(f|0))break;v=c[41901]|0;x=c[v+(m<<3)+4>>2]|0;c[w>>2]=c[v+(m<<3)>>2];c[w+4>>2]=x;nr(b,60836,w);m=m+1|0}hr(b,134901)|0;break a}default:ma(123205,60843,63,60863)}}if(e&(m|0)==1){if(!(a[g>>0]|0))break;if(!d){w=c[o+12>>2]|0;x=c[o+8>>2]|0;f=c[o+4>>2]|0;c[r>>2]=c[o>>2];c[r+4>>2]=w;c[r+8>>2]=x;c[r+12>>2]=f;c[r+16>>2]=g;c[r+20>>2]=i;nr(b,60880,r);break}else ma(123205,60843,75,60863)}if((m&-2|0)==2){switch(d|0){case 1:{hr(b,60913)|0;break}case 0:{hr(b,60934)|0;break}case 2:{hr(b,60953)|0;break}default:ma(123205,60843,91,60863)}if(k|0?a[k>>0]|0:0){hr(b,66433)|0;hr(b,pw(k)|0)|0;hr(b,83707)|0}if(e?a[g>>0]|0:0){hr(b,60972)|0;hr(b,pw(g)|0)|0;hr(b,83707)|0}if(j|0?a[j>>0]|0:0){hr(b,67392)|0;hr(b,mw(j)|0)|0;hr(b,83707)|0}if(i|0?a[i>>0]|0:0){hr(b,60980)|0;hr(b,mw(i)|0)|0;hr(b,83707)|0}hr(b,60989)|0;hr(b,60997)|0;b:do switch(d|0){case 1:{f=c[41901]|0;w=c[f>>2]|0;x=c[f+4>>2]|0;f=(c[f+8>>2]|0)-w|0;c[s>>2]=w;c[s+4>>2]=x;c[s+8>>2]=f;nr(b,61007,s);break}case 0:{v=c[41901]|0;w=c[v+12>>2]|0;x=c[v+8>>2]|0;f=c[v+4>>2]|0;c[t>>2]=c[v>>2];c[t+4>>2]=w;c[t+8>>2]=x;c[t+12>>2]=f;nr(b,61016,t);break}case 2:{w=c[41901]|0;m=c[w+4>>2]|0;c[u>>2]=c[w>>2];c[u+4>>2]=m;nr(b,61028,u);m=1;while(1){if((m|0)>=(f|0))break b;v=c[41901]|0;w=c[v+(m<<3)+4>>2]|0;c[x>>2]=c[v+(m<<3)>>2];c[x+4>>2]=w;nr(b,61034,x);m=m+1|0}}default:{}}while(0);if((c[n>>2]|0)==3){hr(b,66257)|0;break}else{hr(b,61041)|0;break}}}while(0);l=y;return}function Sc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;hr(a,61456)|0;j=c[c[a+12>>2]>>2]|0;i=c[j+4>>2]|0;h=c[j+8>>2]|0;c[g>>2]=c[j>>2];c[g+4>>2]=i;c[g+8>>2]=h;nr(a,61466,g);c[e>>2]=Cn(c[f+8>>2]|0)|0;nr(a,61501,e);c[d>>2]=O(c[a+168>>2]|0,c[a+164>>2]|0)|0;nr(a,61514,d);hr(a,61527)|0;hr(a,61537)|0;hr(a,61545)|0;hr(a,61553)|0;hr(a,61561)|0;hr(a,61569)|0;hr(a,61577)|0;hr(a,61581)|0;hr(a,61586)|0;l=b;return}function Tc(a){a=a|0;hr(a,61437)|0;return}function Uc(a){a=a|0;c[41902]=2;return}function Vc(a){a=a|0;c[41902]=1;return}function Wc(a){a=a|0;c[41902]=2;return}function Xc(a){a=a|0;c[41902]=0;return}function Yc(a){a=a|0;c[41902]=2;return}function Zc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0;n=l;l=l+80|0;m=n;j=c[(c[b+16>>2]|0)+16>>2]|0;k=c[41902]|0;f=c[e+4>>2]|0;g=+h[b+352>>3]*+h[f+16>>3];i=c[b+360>>2]|0?1.5707963267948966:0.0;f=c[f+8>>2]|0;if(!f)f=-1;else f=c[f+20>>2]|0;q=a[e+48>>0]|0;p=+h[d>>3];o=+h[d+8>>3];e=hd(c[e>>2]|0)|0;c[m>>2]=4;c[m+4>>2]=q<<24>>24==108?0:q<<24>>24==114?2:1;c[m+8>>2]=j;c[m+12>>2]=k;c[m+16>>2]=0;c[m+20>>2]=f;h[m+24>>3]=g;h[m+32>>3]=i;c[m+40>>2]=4;h[m+48>>3]=0.0;h[m+56>>3]=0.0;c[m+64>>2]=~~(p+(p>=0.0?.5:-.5));c[m+68>>2]=~~(o+(o>=0.0?.5:-.5));c[m+72>>2]=e;nr(b,61382,m);l=n;return}function _c(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+32|0;j=n;i=n+20|0;m=e+32|0;a:do switch(c[m>>2]|0){case 5:{f=0;while(1){g=c[12652+(f<<2)>>2]|0;if((f|0)==8)break a;h=c[e>>2]|0;if((a[g>>0]|0)==(a[h>>0]|0)?(uJ(g,h)|0)==0:0){k=10;break a}f=f+1|0}}case 1:{g=e+1|0;h=e+2|0;f=(gd(i,d[e>>0]|0,d[g>>0]|0,d[h>>0]|0)|0)+32|0;if(!(c[i>>2]|0))k=10;else{o=d[e>>0]|0;i=d[g>>0]|0;k=d[h>>0]|0;c[j>>2]=0;c[j+4>>2]=f;c[j+8>>2]=o;c[j+12>>2]=i;c[j+16>>2]=k;nr(b,61325,j);k=10}break}case 0:{f=0;k=10;break}default:ma(123205,61346,168,61365)}while(0);if((k|0)==10)c[e>>2]=f;c[m>>2]=6;l=n;return}function $c(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+112|0;f=e+8|0;u=e+104|0;t=e;k=c[a+16>>2]|0;s=~~+h[k+152>>3];r=c[k+16>>2]|0;q=c[k+56>>2]|0;p=c[41902]|0;ed(k,u,t);n=+h[b>>3];k=~~(n+(n>=0.0?.5:-.5));m=+h[b+8>>3];j=~~(m+(m>=0.0?.5:-.5));i=+h[b+16>>3];n=i-n;g=+h[b+24>>3];m=g-m;b=c[u>>2]|0;o=+h[t>>3];c[f>>2]=1;c[f+4>>2]=1;c[f+8>>2]=b;c[f+12>>2]=s;c[f+16>>2]=r;c[f+20>>2]=q;c[f+24>>2]=p;c[f+28>>2]=0;c[f+32>>2]=d|0?20:-1;h[f+40>>3]=o;c[f+48>>2]=0;h[f+56>>3]=0.0;c[f+64>>2]=k;c[f+68>>2]=j;c[f+72>>2]=~~(n+(n>=0.0?.5:-.5));c[f+76>>2]=~~(m+(m>=0.0?.5:-.5));c[f+80>>2]=k;c[f+84>>2]=j;c[f+88>>2]=~~(i+(i>=0.0?.5:-.5));c[f+92>>2]=~~(g+(g>=0.0?.5:-.5));nr(a,61260,f);l=e;return}function ad(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;f=l;l=l+96|0;g=f+8|0;o=f+80|0;p=f;q=c[a+16>>2]|0;n=~~+h[q+152>>3];m=c[q+16>>2]|0;k=c[q+56>>2]|0;j=c[41902]|0;ed(q,o,p);o=c[o>>2]|0;i=+h[p>>3];c[g>>2]=2;c[g+4>>2]=3;c[g+8>>2]=o;c[g+12>>2]=n;c[g+16>>2]=m;c[g+20>>2]=k;c[g+24>>2]=j;c[g+28>>2]=0;c[g+32>>2]=e|0?20:-1;h[g+40>>3]=i;c[g+48>>2]=0;c[g+52>>2]=0;c[g+56>>2]=0;c[g+60>>2]=0;c[g+64>>2]=0;c[g+68>>2]=d+1;nr(a,61164,g);fd(a,b,d,1);l=f;return}function bd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0;C=l;l=l+192|0;B=C+176|0;z=C+168|0;A=C+104|0;y=C+96|0;f=C+88|0;u=C+180|0;v=C+80|0;w=C+16|0;x=C;e=a+16|0;p=c[e>>2]|0;q=~~+h[p+152>>3];r=c[p+16>>2]|0;s=c[41902]|0;t=WI((d*140|0)+140|0)|0;ed(p,u,v);if(!g){o=4;j=0;k=-1}else{o=5;j=c[(c[e>>2]|0)+56>>2]|0;k=20}E=+h[b>>3];n=w+48|0;h[n>>3]=E;D=+h[b+8>>3];h[w+56>>3]=D;c[f>>2]=~~(E+(E>=0.0?.5:-.5));c[f+4>>2]=~~(D+(D>=0.0?.5:-.5));m=x+8|0;e=t+(lL(t,73932,f)|0)|0;p=1;g=0;while(1){i=g+3|0;if((i|0)>=(d|0))break;c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];f=1;while(1){if((f|0)==4){f=1;break}F=f+g|0;h[w+(f<<4)>>3]=+h[b+(F<<4)>>3];h[w+(f<<4)+8>>3]=+h[b+(F<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;KA(x,w,3,+(f|0)*.16666666666666666,0,0);D=+h[x>>3];E=+h[m>>3];c[y>>2]=~~(D+(D>=0.0?.5:-.5));c[y+4>>2]=~~(E+(E>=0.0?.5:-.5));f=f+1|0;e=e+(lL(e,73932,y)|0)|0}p=p+6|0;g=i}f=c[u>>2]|0;E=+h[v>>3];c[A>>2]=3;c[A+4>>2]=o;c[A+8>>2]=f;c[A+12>>2]=q;c[A+16>>2]=r;c[A+20>>2]=j;c[A+24>>2]=s;c[A+28>>2]=0;c[A+32>>2]=k;h[A+40>>3]=E;c[A+48>>2]=0;c[A+52>>2]=0;c[A+56>>2]=0;c[A+60>>2]=p;nr(a,61215,A);c[z>>2]=t;nr(a,73939,z);XI(t);f=p+-1|0;e=0;while(1){if((e|0)>=(p|0))break;c[B>>2]=((e|0)%(f|0)|0|0)!=0&1;nr(a,73944,B);e=e+1|0}hr(a,134901)|0;l=C;return}function cd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0;e=l;l=l+96|0;f=e+8|0;m=e+80|0;n=e;o=c[a+16>>2]|0;k=~~+h[o+152>>3];j=c[o+16>>2]|0;i=c[41902]|0;ed(o,m,n);m=c[m>>2]|0;g=+h[n>>3];c[f>>2]=2;c[f+4>>2]=1;c[f+8>>2]=m;c[f+12>>2]=k;c[f+16>>2]=j;c[f+20>>2]=0;c[f+24>>2]=i;c[f+28>>2]=0;c[f+32>>2]=0;h[f+40>>3]=g;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=d;nr(a,61164,f);fd(a,b,d,0);l=e;return}function dd(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;nr(a,61158,e);l=d;return}function ed(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;switch(c[a+144>>2]|0){case 1:{e=10.0;a=1;break}case 2:{e=10.0;a=2;break}default:{e=0.0;a=0}}c[b>>2]=a;h[d>>3]=e;return}function fd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+16|0;i=j+8|0;g=j;f=0;while(1){if((f|0)>=(d|0))break;m=+h[b+(f<<4)>>3];k=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(k+(k>=0.0?.5:-.5));nr(a,73932,g);f=f+1|0}if(e|0){k=+h[b>>3];m=+h[b+8>>3];c[i>>2]=~~(k+(k>=0.0?.5:-.5));c[i+4>>2]=~~(m+(m>=0.0?.5:-.5));nr(a,73932,i)}hr(a,134901)|0;l=j;return}function gd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c[a>>2]=0;k=c[41903]|0;h=195075;g=0;i=-1;while(1){if((g|0)>=(k|0)){l=6;break}m=(b[172336+(g<<1)>>1]|0)-d|0;n=(b[172848+(g<<1)>>1]|0)-e|0;j=(b[173360+(g<<1)>>1]|0)-f|0;j=(O(n,n)|0)+(O(m,m)|0)+(O(j,j)|0)|0;if((j|0)<(h|0))if(!j)break;else{h=j;i=g}g=g+1|0}if((l|0)==6){c[41903]=k+1;if((k|0)==256)g=i;else{b[172336+(g<<1)>>1]=d;b[172848+(g<<1)>>1]=e;b[173360+(g<<1)>>1]=f;c[a>>2]=1}}return g|0}function hd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;d=c[41904]|0;if(!d){c[41905]=64;d=WI(64)|0;c[41904]=d;e=0}else e=0;while(1){g=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24))break;b=c[41905]|0;if((e|0)>(b+-8|0)){d=b<<1;c[41905]=d;d=ZI(c[41904]|0,d)|0;c[41904]=d;d=d+e|0}if(f<<24>>24<=-1){a[d>>0]=92;c[h>>2]=f&255;lL(d+1|0,74057,h)|0;b=g;d=d+4|0;e=e+4|0;continue}if(f<<24>>24==92){a[d>>0]=92;e=e+1|0;d=d+1|0}a[d>>0]=f;b=g;d=d+1|0;e=e+1|0}a[d>>0]=0;l=i;return c[41904]|0}function id(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=l;l=l+16|0;b=d;hr(a,66165)|0;if((c[a+64>>2]|0)==2)hr(a,66180)|0;else hr(a,134901)|0;g=c[c[a+12>>2]>>2]|0;f=c[g+4>>2]|0;e=c[g+8>>2]|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;c[b+8>>2]=e;nr(a,66191,b);l=d;return}function jd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+8|0;e=g;hr(a,66119)|0;d=a+64|0;b=a+12|0;if((c[d>>2]|0)!=2){c[e>>2]=c[(c[b>>2]|0)+28>>2];nr(a,66130,e)}if((c[(c[b>>2]|0)+20>>2]|0)==0?(c[d>>2]|0)!=2:0){b=c[a+476>>2]|0;d=c[a+480>>2]|0;e=c[a+484>>2]|0;c[f>>2]=c[a+472>>2];c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=e;nr(a,62499,f)}hr(a,66145)|0;hr(a,66158)|0;l=g;return}function kd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;k=l;l=l+32|0;j=k+24|0;f=k+8|0;i=k;g=c[b+16>>2]|0;a[173888]=0;e=b+12|0;h=g+8|0;if(!(c[(c[e>>2]|0)+28>>2]|0)){c[i>>2]=Cn(c[h>>2]|0)|0;nr(b,62430,i);d=b+64|0;if((c[d>>2]|0)==2)hr(b,62463)|0;else hr(b,62445)|0;do if(!(c[(c[e>>2]|0)+20>>2]|0))if((c[d>>2]|0)==2){n=c[b+460>>2]|0;m=c[b+464>>2]|0;d=c[b+468>>2]|0;c[f>>2]=c[b+456>>2];c[f+4>>2]=n;c[f+8>>2]=m;c[f+12>>2]=d;nr(b,62499,f);break}else{hr(b,62475)|0;break}while(0);hr(b,62529)|0;$x(b,c[(c[e>>2]|0)+24>>2]|0,12928);by(b);d=c[(c[e>>2]|0)+20>>2]|0;if(d|0){c[i>>2]=c[d>>2];c[i+4>>2]=0;$x(b,0,i)}}c[41906]=(a[(c[(c[h>>2]|0)+16>>2]|0)+115>>0]|0)==1?1:-1;if(!(a[173888]|0)){hr(b,62549)|0;a[173888]=1}d=c[g+208>>2]|0;if(d|0){c[j>>2]=cy(d,c[41906]|0)|0;nr(b,62562,j)}l=k;return}function ld(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;b=l;l=l+16|0;f=b;c[f>>2]=d;c[f+4>>2]=e;nr(a,62414,f);l=b;return}function md(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0;s=l;l=l+144|0;r=s+128|0;q=s+112|0;p=s+72|0;o=s+56|0;n=s+40|0;m=s+32|0;e=s+24|0;b=s+8|0;d=s;f=c[a+456>>2]|0;j=c[a+460>>2]|0;g=c[a+464>>2]|0;i=c[a+468>>2]|0;k=a+12|0;t=(c[(c[k>>2]|0)+28>>2]|0)+1|0;c[d>>2]=t;c[d+4>>2]=t;nr(a,62041,d);if(!(c[(c[k>>2]|0)+20>>2]|0)){c[b>>2]=f;c[b+4>>2]=j;c[b+8>>2]=g;c[b+12>>2]=i;nr(a,62058,b)}d=a+360|0;c[e>>2]=c[d>>2]|0?62092:62102;nr(a,62111,e);b=a+64|0;if((c[b>>2]|0)==1){c[m>>2]=g;c[m+4>>2]=i;nr(a,62136,m)}m=c[a+200>>2]|0;t=c[a+204>>2]|0;c[n>>2]=c[a+196>>2];c[n+4>>2]=m;c[n+8>>2]=t;nr(a,62175,n);if(!(c[(c[k>>2]|0)+20>>2]|0)){c[o>>2]=f;c[o+4>>2]=j;c[o+8>>2]=g-f;c[o+12>>2]=i-j;nr(a,62195,o)}w=+h[a+496>>3];t=c[d>>2]|0;v=+h[a+504>>3];u=+h[a+512>>3];h[p>>3]=+h[a+488>>3];h[p+8>>3]=w;c[p+16>>2]=t;h[p+24>>3]=v;h[p+32>>3]=u;nr(a,62235,p);if((c[b>>2]|0)==1){if((g|0)>14399|(i|0)>14399){t=c[(c[k>>2]|0)+16>>2]|0;c[q>>2]=g;c[q+4>>2]=i;c[q+8>>2]=14400;hb[t&31](62278,q)}c[r>>2]=f;c[r+4>>2]=j;c[r+8>>2]=g;c[r+12>>2]=i;nr(a,62373,r)}l=s;return}function nd(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=a+12|0;if(c[(c[b>>2]|0)+20>>2]|0){hr(a,61965)|0;$x(a,0,(c[(c[b>>2]|0)+20>>2]|0)+4|0)}hr(a,61982)|0;hr(a,62009)|0;c[d>>2]=c[(c[b>>2]|0)+28>>2];nr(a,62024,d);l=e;return}function od(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=Cn(c[(c[a+16>>2]|0)+8>>2]|0)|0;nr(a,61958,d);hr(a,61951)|0;l=b;return}function pd(a){a=a|0;hr(a,77394)|0;return}function qd(a){a=a|0;hr(a,61951)|0;return}function rd(a){a=a|0;hr(a,77394)|0;return}function sd(a){a=a|0;hr(a,61951)|0;return}function td(a){a=a|0;hr(a,77394)|0;return}function ud(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;e=l;l=l+16|0;d=e;if(b|0?(g=(c[a+16>>2]|0)+272|0,c[g>>2]|0):0){hr(a,61847)|0;rr(a,c[g>>2]|0,2);hr(a,61858)|0;c[d>>2]=cy(b,c[41906]|0)|0;nr(a,61862,d)}l=e;return}function vd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;j=m+8|0;k=m;f=c[b+16>>2]|0;if(!(+h[f+40>>3]<.5)){Cd(b,f+16|0);i=e+4|0;or(b,+h[(c[i>>2]|0)+16>>3]);c[j>>2]=c[c[i>>2]>>2];nr(b,61806,j);i=cy(c[e>>2]|0,c[41906]|0)|0;switch(a[e+48>>0]|0){case 114:{n=e+32|0;f=n;g=+h[n>>3];break}case 108:{f=e+32|0;g=0.0;break}default:{n=e+32|0;f=n;g=+h[n>>3]*.5}}h[d>>3]=+h[d>>3]-g;n=d+8|0;h[n>>3]=+h[n>>3]+ +h[e+24>>3];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];qr(b,j);hr(b,61821)|0;or(b,+h[f>>3]);c[k>>2]=i;nr(b,61830,k)}l=m;return}function wd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+32|0;f=g;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];h[f+16>>3]=+h[b+16>>3]-+h[b>>3];h[f+24>>3]=+h[b+24>>3]-+h[b+8>>3];b=a+16|0;if(d|0?(e=c[b>>2]|0,+h[e+80>>3]>.5):0){Cd(a,e+56|0);rr(a,f,2);hr(a,61764)|0}if(+h[(c[b>>2]|0)+40>>3]>.5){Dd(a);Cd(a,(c[b>>2]|0)+16|0);rr(a,f,2);hr(a,61784)|0}l=g;return}function xd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;j=l;l=l+16|0;i=j;g=a+16|0;if(e|0?(f=c[g>>2]|0,+h[f+80>>3]>.5):0){Cd(a,f+56|0);hr(a,61685)|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];qr(a,i);hr(a,61694)|0;e=1;while(1){if((e|0)>=(d|0))break;f=b+(e<<4)|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];qr(a,i);hr(a,61703)|0;e=e+1|0}hr(a,61730)|0}if(+h[(c[g>>2]|0)+40>>3]>.5){Dd(a);Cd(a,(c[g>>2]|0)+16|0);hr(a,61685)|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];qr(a,i);hr(a,61694)|0;e=1;while(1){if((e|0)>=(d|0))break;g=b+(e<<4)|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];qr(a,i);hr(a,61703)|0;e=e+1|0}hr(a,61746)|0}l=j;return}function yd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0;k=l;l=l+16|0;f=k;i=a+16|0;if(g|0?(j=c[i>>2]|0,+h[j+80>>3]>.5):0){Cd(a,j+56|0);hr(a,61685)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];qr(a,f);hr(a,61694)|0;e=1;while(1){if((e|0)>=(d|0))break;rr(a,b+(e<<4)|0,3);hr(a,61720)|0;e=e+3|0}hr(a,61730)|0}if(+h[(c[i>>2]|0)+40>>3]>.5){Dd(a);Cd(a,(c[i>>2]|0)+16|0);hr(a,61685)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];qr(a,f);hr(a,61694)|0;e=1;while(1){if((e|0)>=(d|0))break;rr(a,b+(e<<4)|0,3);hr(a,61720)|0;e=e+3|0}hr(a,61712)|0}l=k;return}function zd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;g=l;l=l+16|0;f=g;e=a+16|0;if(+h[(c[e>>2]|0)+40>>3]>.5){Dd(a);Cd(a,(c[e>>2]|0)+16|0);hr(a,61685)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];qr(a,f);hr(a,61694)|0;e=1;while(1){if((e|0)>=(d|0))break;i=b+(e<<4)|0;c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>>2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];qr(a,f);hr(a,61703)|0;e=e+1|0}hr(a,61712)|0}l=g;return}function Ad(a,b){a=a|0;b=b|0;hr(a,61682)|0;hr(a,b)|0;hr(a,134901)|0;return}function Bd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;g=n+16|0;m=n+8|0;k=n;i=a+16|0;if(f|0?(j=c[i>>2]|0,+h[j+80>>3]>.5):0){Cd(a,j+56|0);hr(a,77289)|0;rr(a,d,e);hr(a,87582)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];qr(a,g);c[k>>2]=e;c[k+4>>2]=b;nr(a,61599,k)}if(+h[(c[i>>2]|0)+40>>3]>.5){Dd(a);Cd(a,(c[i>>2]|0)+16|0);hr(a,77289)|0;rr(a,d,e);hr(a,87582)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];qr(a,g);c[m>>2]=e;c[m+4>>2]=b;nr(a,61615,m)}l=n;return}function Cd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;f=l;l=l+32|0;e=f;if(b|0){switch(c[(c[a+16>>2]|0)+4>>2]|0){case 1:case 0:{d=96286;break}case 2:{d=96273;break}case 3:{d=96237;break}default:d=61651}i=+h[b+8>>3];g=+h[b+16>>3];h[e>>3]=+h[b>>3];h[e+8>>3]=i;h[e+16>>3]=g;c[e+24>>2]=d;nr(a,61658,e)}l=f;return}function Dd(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m+8|0;j=m;g=b+16|0;i=c[g>>2]|0;d=c[i+160>>2]|0;or(b,+h[i+152>>3]);hr(b,61632)|0;while(1){if(!d)break;i=d+4|0;f=c[d>>2]|0;if(!f)break;if(!(uJ(f,95854)|0)){d=i;continue}else e=f;while(1){d=e+1|0;if(!(a[e>>0]|0))break;else e=d}a:while(1){if(!(a[d>>0]|0))break;c[j>>2]=d;nr(b,61647,j);while(1){e=d+1|0;if(!(a[d>>0]|0)){d=e;continue a}else d=e}}if(!(uJ(f,119127)|0))h[(c[g>>2]|0)+152>>3]=0.0;c[k>>2]=f;nr(b,81633,k);d=i}l=m;return}function Ed(b){b=b|0;var d=0;hr(b,67671)|0;d=Hm(c[(c[b>>2]|0)+168>>2]|0,67727)|0;if(d|0?a[d>>0]|0:0){hr(b,67738)|0;hr(b,d)|0;hr(b,67762)|0}hr(b,67783)|0;hr(b,67831)|0;hr(b,67885)|0;d=b+12|0;hr(b,mw(c[c[c[d>>2]>>2]>>2]|0)|0)|0;hr(b,71014)|0;hr(b,mw(c[(c[c[d>>2]>>2]|0)+4>>2]|0)|0)|0;hr(b,71024)|0;hr(b,mw(c[(c[c[d>>2]>>2]|0)+8>>2]|0)|0)|0;hr(b,68267)|0;hr(b,68291)|0;return}function Fd(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0.0;i=l;l=l+48|0;g=i+16|0;f=i+8|0;e=i;d=c[b+16>>2]|0;hr(b,67506)|0;d=d+8|0;if(a[(Cn(c[d>>2]|0)|0)>>0]|0){hr(b,68230)|0;hr(b,mw(Cn(c[d>>2]|0)|0)|0)|0}c[e>>2]=O(c[b+168>>2]|0,c[b+164>>2]|0)|0;nr(b,67511,e);e=c[b+452>>2]|0;c[f>>2]=c[b+448>>2];c[f+4>>2]=e;nr(b,67527,f);m=+h[b+392>>3];k=+h[b+400>>3];j=+h[b+408>>3];h[g>>3]=+h[b+384>>3];h[g+8>>3]=m;h[g+16>>3]=k;h[g+24>>3]=j;nr(b,67560,g);hr(b,67591)|0;hr(b,67627)|0;hr(b,69221)|0;l=i;return}function Gd(a){a=a|0;hr(a,67498)|0;return}function Hd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;ce(a,b,0,86527,c[(c[a+16>>2]|0)+8>>2]|0);hr(a,69221)|0;return}function Id(a){a=a|0;hr(a,67346)|0;return}function Jd(b){b=b|0;var d=0,e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=c[b+16>>2]|0;d=g+8|0;ce(b,c[g+212>>2]|0,0,96286,c[d>>2]|0);hr(b,67450)|0;or(b,+h[b+488>>3]);hr(b,87582)|0;or(b,+h[b+496>>3]);c[f>>2]=0-(c[b+360>>2]|0);nr(b,67469,f);or(b,+h[b+504>>3]);hr(b,87582)|0;or(b,-+h[b+512>>3]);hr(b,67493)|0;if(a[(Cn(c[d>>2]|0)|0)>>0]|0){hr(b,67402)|0;hr(b,mw(Cn(c[d>>2]|0)|0)|0)|0;hr(b,67410)|0}l=e;return}function Kd(a){a=a|0;hr(a,67346)|0;return}function Ld(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ce(a,c[d+212>>2]|0,0,92983,c[b>>2]|0);hr(a,69221)|0;hr(a,67402)|0;hr(a,mw(Cn(c[b>>2]|0)|0)|0)|0;hr(a,67410)|0;return}function Md(a){a=a|0;hr(a,67346)|0;return}function Nd(a){a=a|0;var b=0,d=0,e=0;d=c[a+16>>2]|0;b=c[a+160>>2]|0;if((b|0)>1)b=c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0;else b=0;e=d+8|0;ce(a,c[d+212>>2]|0,b,96273,c[e>>2]|0);hr(a,69221)|0;hr(a,67402)|0;hr(a,mw(Cn(c[e>>2]|0)|0)|0)|0;hr(a,67410)|0;return}function Od(a){a=a|0;hr(a,67346)|0;return}function Pd(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ce(a,c[d+212>>2]|0,0,96237,c[b>>2]|0);hr(a,69221)|0;hr(a,67402)|0;b=lw(87073,c[b>>2]|0)|0;hr(a,mw(b)|0)|0;XI(b);hr(a,67410)|0;return}function Qd(a){a=a|0;hr(a,67346)|0;return}function Rd(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;hr(b,67352)|0;if(f|0){hr(b,67355)|0;hr(b,mw(f)|0)|0;hr(b,83707)|0}hr(b,67245)|0;hr(b,69182)|0;if(c|0?a[c>>0]|0:0){hr(b,67363)|0;hr(b,c)|0;hr(b,83707)|0}if(d|0?a[d>>0]|0:0){hr(b,67377)|0;hr(b,nw(d,1)|0)|0;hr(b,83707)|0}if(e|0?a[e>>0]|0:0){hr(b,67392)|0;hr(b,mw(e)|0)|0;hr(b,83707)|0}hr(b,69221)|0;return}function Sd(a){a=a|0;hr(a,69176)|0;hr(a,67346)|0;return}function Td(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+176|0;L=M+160|0;K=M+152|0;F=M+136|0;J=M+128|0;E=M+120|0;D=M+112|0;C=M+104|0;B=M+96|0;A=M+88|0;y=M+80|0;w=M+72|0;v=M+64|0;u=M+56|0;t=M+48|0;i=M+40|0;q=M+32|0;s=M+24|0;r=M+16|0;p=M+8|0;o=M;I=c[e+16>>2]|0;hr(e,66877)|0;switch(a[g+48>>0]|0){case 108:{hr(e,66883)|0;break}case 114:{hr(e,66904)|0;break}default:hr(e,66923)|0}H=f+8|0;G=+h[H>>3]+ +h[g+24>>3];h[H>>3]=G;H=I+260|0;if(!(b[H>>1]&512)){hr(e,66945)|0;or(e,+h[f>>3]);hr(e,66950)|0;or(e,-G);hr(e,83707)|0}x=g+4|0;f=c[x>>2]|0;n=c[f+8>>2]|0;if(n){switch(c[(c[(c[(c[e>>2]|0)+168>>2]|0)+16>>2]|0)+244>>2]|0){case 1:{m=n;f=n+16|0;i=n+8|0;break}case 2:{m=n+24|0;f=n+32|0;i=n+28|0;break}default:{m=n+4|0;f=n+16|0;i=n+8|0}}j=c[f>>2]|0;f=c[i>>2]|0;k=c[n+12>>2]|0;c[o>>2]=c[m>>2];nr(e,66956,o);i=c[n+24>>2]|0;if(i|0){c[p>>2]=i;nr(e,66973,p)}hr(e,83707)|0;if(f|0){c[r>>2]=f;nr(e,66977,r)}if(k|0){c[s>>2]=k;nr(e,66995,s)}if(!j)j=0;else{c[q>>2]=j;nr(e,67014,q)}}else{c[i>>2]=c[f>>2];nr(e,67031,i);j=0;f=0}i=c[x>>2]|0;if(i|0?(z=c[i+24>>2]|0,z&127|0):0){if(!((f|0)!=0|(z&1|0)==0))nr(e,67049,t);if(!((j|0)!=0|(z&2|0)==0))nr(e,67069,u);if(z&100|0){nr(e,67090,v);if(!(z&4))f=0;else{nr(e,90974,w);f=1}if(z&64){c[y>>2]=f|0?85974:174177;nr(e,67109,y);f=1}if(z&32|0){c[A>>2]=f|0?85974:174177;nr(e,67120,A)}nr(e,83707,B)}if(z&8|0)nr(e,67135,C);if(z&16|0)nr(e,67159,D)}h[E>>3]=+h[(c[x>>2]|0)+16>>3];nr(e,67181,E);f=I+16|0;switch(c[I+48>>2]|0){case 5:{f=c[f>>2]|0;if(eK(f,122106)|0){c[J>>2]=f;nr(e,67199,J)}break}case 1:{E=d[f+1>>0]|0;J=d[f+2>>0]|0;c[F>>2]=d[f>>0];c[F+4>>2]=E;c[F+8>>2]=J;nr(e,67210,F);break}default:ma(123205,66391,486,67232)}hr(e,67245)|0;if(b[H>>1]&512){c[K>>2]=mw(c[I+212>>2]|0)|0;nr(e,67247,K);hr(e,67296)|0;or(e,-G);hr(e,67314)|0}hr(e,nw(c[g>>2]|0,1)|0)|0;if(b[H>>1]&512)nr(e,67317,L);hr(e,67337)|0;l=M;return}function Ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;switch(c|0){case 2:{d=$d(a,b,2)|0;break}case 3:{d=ae(a)|0;break}default:d=0}hr(a,66841)|0;Zd(a,c,d);hr(a,66850)|0;or(a,+h[b>>3]);hr(a,66856)|0;c=b+8|0;or(a,-+h[c>>3]);hr(a,66863)|0;or(a,+h[b+16>>3]-+h[b>>3]);hr(a,66870)|0;or(a,+h[b+24>>3]-+h[c>>3]);hr(a,66257)|0;return}function Vd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;switch(d|0){case 2:{e=$d(a,b,c)|0;break}case 3:{e=ae(a)|0;break}default:e=0}hr(a,66832)|0;Zd(a,d,e);hr(a,66247)|0;e=0;while(1){if((e|0)>=(c|0))break;or(a,+h[b+(e<<4)>>3]);hr(a,85974)|0;or(a,-+h[b+(e<<4)+8>>3]);hr(a,87582)|0;e=e+1|0}or(a,+h[b>>3]);hr(a,85974)|0;or(a,-+h[b+8>>3]);hr(a,66257)|0;return}function Wd(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;g=c[a+16>>2]|0;switch(h|0){case 2:{f=$d(a,d,e)|0;break}case 3:{f=ae(a)|0;break}default:f=0}hr(a,66427)|0;if(b[g+260>>1]&512){hr(a,66433)|0;hr(a,mw(c[g+212>>2]|0)|0)|0;hr(a,66439)|0}Zd(a,h,f);hr(a,66444)|0;be(a,d,e);hr(a,66257)|0;return}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;hr(a,66237)|0;Zd(a,0,0);hr(a,66247)|0;d=0;while(1){if((d|0)>=(c|0))break;or(a,+h[b+(d<<4)>>3]);hr(a,85974)|0;or(a,-+h[b+(d<<4)+8>>3]);hr(a,87582)|0;d=d+1|0}hr(a,66257)|0;return}function Yd(a,b){a=a|0;b=b|0;hr(a,66231)|0;hr(a,mw(b)|0)|0;hr(a,68291)|0;return}function Zd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+96|0;k=q+48|0;p=q+40|0;n=q+32|0;o=q+24|0;j=q+16|0;g=q+8|0;f=q;m=c[b+16>>2]|0;hr(b,66262)|0;a:do switch(d|0){case 2:{c[f>>2]=e;nr(b,66270,f);break}case 3:{c[g>>2]=e;nr(b,66281,g);break}case 0:{hr(b,120501)|0;break}default:{d=m+56|0;f=k;g=d;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));_d(b,k);if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:break a;default:{}}h[j>>3]=+(d&255)*.00392156862745098;nr(b,66292,j)}}}while(0);hr(b,66311)|0;e=m+16|0;f=k;g=e;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));_d(b,k);d=m+152|0;if(+h[d>>3]!=1.0){hr(b,66322)|0;or(b,+h[d>>3])}switch(c[m+144>>2]|0){case 1:{c[o>>2]=66362;nr(b,66339,o);break}case 2:{c[n>>2]=66366;nr(b,66339,n);break}default:{}}b:do if((c[m+48>>2]|0)==1){d=a[e+3>>0]|0;switch(d<<24>>24){case -1:case 0:break b;default:{}}h[p>>3]=+(d&255)*.00392156862745098;nr(b,66370,p)}while(0);hr(b,83707)|0;l=q;return}function _d(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;g=l;l=l+16|0;f=g;a:do switch(c[e+32>>2]|0){case 5:{hr(b,c[e>>2]|0)|0;break}case 1:if(!(a[e+3>>0]|0)){hr(b,122171)|0;break a}else{i=d[e+1>>0]|0;h=d[e+2>>0]|0;c[f>>2]=d[e>>0];c[f+4>>2]=i;c[f+8>>2]=h;nr(b,68547,f);break a}default:ma(123205,66391,117,66411)}while(0);l=g;return}function $d(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+112|0;o=t+64|0;r=t+56|0;n=t+48|0;m=t+40|0;i=t+32|0;k=t;q=c[41908]|0;c[41908]=q+1;p=c[b+16>>2]|0;f=+(c[p+136>>2]|0)*.017453292519943295;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;EB(d,k,e,f,0);c[o>>2]=q;nr(b,66664,o);hr(b,66729)|0;or(b,+h[k>>3]);hr(b,66734)|0;or(b,+h[k+8>>3]);hr(b,66741)|0;or(b,+h[k+16>>3]);hr(b,66748)|0;or(b,+h[k+24>>3]);hr(b,66755)|0;k=p+140|0;f=+g[k>>2];if(f>0.0){h[i>>3]=f+-.001;nr(b,66760,i)}else hr(b,66536)|0;d=p+56|0;e=o;i=d;j=e+40|0;do{c[e>>2]=c[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(j|0));_d(b,o);hr(b,66572)|0;a:do if((c[p+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=7;break a}default:{}}h[m>>3]=+(d&255)*.00392156862745098;nr(b,84575,m)}else s=7;while(0);if((s|0)==7)hr(b,66587)|0;hr(b,66590)|0;f=+g[k>>2];if(f>0.0){h[n>>3]=f;nr(b,66760,n)}else hr(b,66596)|0;d=p+96|0;e=o;i=d;j=e+40|0;do{c[e>>2]=c[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(j|0));_d(b,o);hr(b,66572)|0;b:do if((c[p+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=14;break b}default:{}}h[r>>3]=+(d&255)*.00392156862745098;nr(b,84575,r)}else s=14;while(0);if((s|0)==14)hr(b,66587)|0;hr(b,66800)|0;l=t;return q|0}function ae(b){b=b|0;var d=0,e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+64|0;k=q+16|0;o=q+8|0;j=q;n=c[41907]|0;c[41907]=n+1;m=c[b+16>>2]|0;r=+(c[m+136>>2]|0)*.017453292519943295;e=r;if(r==0.0){f=50;d=50}else{f=~~((+E(+e)+1.0)*50.0);d=~~((1.0-+F(+e))*50.0)}c[k>>2]=n;c[k+4>>2]=f;c[k+8>>2]=d;nr(b,66452,k);hr(b,66536)|0;d=m+56|0;f=k;g=d;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));_d(b,k);hr(b,66572)|0;a:do if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=6;break a}default:{}}h[j>>3]=+(d&255)*.00392156862745098;nr(b,84575,j)}else p=6;while(0);if((p|0)==6)hr(b,66587)|0;hr(b,66590)|0;hr(b,66596)|0;d=m+96|0;f=k;g=d;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));_d(b,k);hr(b,66572)|0;b:do if((c[m+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=10;break b}default:{}}h[o>>3]=+(d&255)*.00392156862745098;nr(b,84575,o)}else p=10;while(0);if((p|0)==10)hr(b,66587)|0;hr(b,66632)|0;l=q;return n|0}function be(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;i=l;l=l+16|0;g=i;e=77;f=0;while(1){if((f|0)>=(d|0))break;c[g>>2]=e;nr(a,66449,g);or(a,+h[b+(f<<4)>>3]);hr(a,85974)|0;or(a,-+h[b+(f<<4)+8>>3]);e=(f|0)==0?67:32;f=f+1|0}l=i;return}function ce(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+16|0;i=j+8|0;h=j;hr(b,67420)|0;hr(b,mw(d)|0)|0;if(e|0){c[h>>2]=mw(e)|0;nr(b,67428,h)}c[i>>2]=f;nr(b,67432,i);d=Hm(g,67444)|0;if(d|0?a[d>>0]|0:0){hr(b,87582)|0;hr(b,mw(d)|0)|0}hr(b,83707)|0;l=j;return}function de(a){a=a|0;var b=0;hr(a,68251)|0;b=a+12|0;hr(a,ne(c[c[c[b>>2]>>2]>>2]|0)|0)|0;hr(a,71014)|0;hr(a,ne(c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0)|0;hr(a,71024)|0;hr(a,ne(c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0)|0;hr(a,68267)|0;return}function ee(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=c[b+16>>2]|0;hr(b,68228)|0;d=d+8|0;if(a[(Cn(c[d>>2]|0)|0)>>0]|0){hr(b,68230)|0;hr(b,ne(Cn(c[d>>2]|0)|0)|0)|0}c[e>>2]=O(c[b+168>>2]|0,c[b+164>>2]|0)|0;nr(b,68239,e);c[41909]=0;l=f;return}function fe(a){a=a|0;c[41909]=1;return}function ge(a){a=a|0;c[41909]=-1;return}function he(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;i=n+8|0;m=n;f=c[b+16>>2]|0;if(c[f+144>>2]|0?(k=e+4|0,j=~~(+h[b+352>>3]*+h[(c[k>>2]|0)+16>>3]),j|0):0){oe(b);hr(b,68167)|0;g=d+8|0;h[g>>3]=+h[g>>3]-+(j|0)*.55;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];qr(b,i);hr(b,68181)|0;hr(b,c[e>>2]|0)|0;hr(b,68190)|0;hr(b,67988)|0;g=i;d=f+16|0;f=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));pe(b,i);hr(b,68192)|0;i=c[k>>2]|0;k=c[i+8>>2]|0;k=c[((k|0)==0?i:k+4|0)>>2]|0;hr(b,83707)|0;hr(b,k)|0;hr(b,83707)|0;c[m>>2]=j;nr(b,68201,m);switch(a[e+48>>0]|0){case 108:{hr(b,68206)|0;break}case 114:{hr(b,68217)|0;break}default:{}}qe(b);hr(b,134901)|0}l=n;return}function ie(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,m=0.0,n=0.0;j=l;l=l+48|0;f=j;g=c[a+16>>2]|0;i=g+144|0;if(c[i>>2]|0){n=+h[b>>3];m=+h[b+24>>3];e=b+8|0;k=+h[e>>3];h[b>>3]=n-+h[b+16>>3]+n;h[e>>3]=k-m+k;oe(a);hr(a,68153)|0;rr(a,b,2);hr(a,67988)|0;do if(!d)if(!(c[41909]|0)){hr(a,82272)|0;break}else{hr(a,121990)|0;break}else{b=f;d=g+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));pe(a,f)}while(0);if((c[41909]|0)==1)c[41909]=0;hr(a,68099)|0;or(a,+h[g+152>>3]);hr(a,68142)|0;b=f;d=g+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));pe(a,f);b=c[i>>2]|0;if((b|0)==1){hr(a,67996)|0;b=c[i>>2]|0}if((b|0)==2)hr(a,68005)|0;qe(a);hr(a,134901)|0}l=j;return}function je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;j=l;l=l+48|0;f=j;g=c[a+16>>2]|0;i=g+144|0;if(c[i>>2]|0){oe(a);hr(a,68125)|0;rr(a,b,d);hr(a,67988)|0;do if(!e)if(!(c[41909]|0)){hr(a,82272)|0;break}else{hr(a,121990)|0;break}else{b=f;d=g+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));pe(a,f)}while(0);if((c[41909]|0)==1)c[41909]=0;hr(a,68099)|0;or(a,+h[g+152>>3]);hr(a,68142)|0;b=f;d=g+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));pe(a,f);b=c[i>>2]|0;if((b|0)==1){hr(a,67996)|0;b=c[i>>2]|0}if((b|0)==2)hr(a,68005)|0;qe(a);hr(a,134901)|0}l=j;return}function ke(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0;m=l;l=l+48|0;i=m;j=c[a+16>>2]|0;k=j+144|0;if(c[k>>2]|0){oe(a);hr(a,67974)|0;rr(a,b,d);hr(a,67988)|0;e=i;f=j+16|0;g=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));pe(a,i);hr(a,68099)|0;or(a,+h[j+152>>3]);e=c[k>>2]|0;if((e|0)==1){hr(a,67996)|0;e=c[k>>2]|0}if((e|0)==2)hr(a,68005)|0;hr(a,68108)|0;qe(a);hr(a,134901)|0}l=m;return}function le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;g=i;e=c[a+16>>2]|0;h=e+144|0;if(c[h>>2]|0){oe(a);hr(a,67974)|0;rr(a,b,d);hr(a,67988)|0;f=g;b=e+16|0;d=f+40|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0}while((f|0)<(d|0));pe(a,g);b=c[h>>2]|0;if((b|0)==1){hr(a,67996)|0;b=c[h>>2]|0}if((b|0)==2)hr(a,68005)|0;qe(a);hr(a,134901)|0}l=i;return}function me(a,b){a=a|0;b=b|0;hr(a,67971)|0;hr(a,ne(b)|0)|0;hr(a,134901)|0;return}function ne(a){a=a|0;return a|0}function oe(b){b=b|0;if(!(a[b+144>>0]|0))hr(b,68096)|0;else hr(b,c[b+148>>2]|0)|0;return}function pe(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;g=l;l=l+16|0;f=g;a:do switch(c[e+32>>2]|0){case 5:{hr(b,c[e>>2]|0)|0;break}case 1:if(!(a[e+3>>0]|0)){hr(b,82272)|0;break a}else{i=d[e+1>>0]|0;h=d[e+2>>0]|0;c[f>>2]=d[e>>0];c[f+4>>2]=i;c[f+8>>2]=h;nr(b,68547,f);break a}default:ma(123205,68014,49,68078)}while(0);l=g;return}function qe(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;f=c[a+16>>2]|0;switch(c[f+12>>2]|0){case 8:{b=1;d=96273;e=f+8|0;break}case 10:{b=0;d=96273;e=f+8|0;break}case 3:case 2:case 9:{b=1;d=96237;e=f+8|0;break}case 7:case 6:case 11:{b=0;d=96237;e=f+8|0;break}case 0:{b=1;d=96286;e=f+8|0;break}case 4:{b=0;d=68050;e=f+8|0;break}case 1:{b=1;d=96286;e=f+8|0;break}case 5:{b=0;d=96286;e=f+8|0;break}default:ma(123205,68014,106,68033)}f=c[(c[e>>2]|0)+8>>2]|0;c[g>>2]=b;c[g+4>>2]=d;c[g+8>>2]=f;nr(a,68062,g);l=h;return}function re(a){a=a|0;var b=0;hr(a,70986)|0;hr(a,70994)|0;b=a+12|0;hr(a,Ce(c[c[c[b>>2]>>2]>>2]|0)|0)|0;hr(a,71014)|0;hr(a,Ce(c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0)|0;hr(a,71024)|0;hr(a,Ce(c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0)|0;hr(a,71027)|0;return}function se(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;j=l;l=l+32|0;i=j+24|0;g=j+16|0;f=j+8|0;e=j;d=c[b+16>>2]|0;c[41913]=~~(+h[b+232>>3]-+h[b+216>>3]);c[41912]=~~(+h[b+224>>3]-+h[b+208>>3]);hr(b,69673)|0;hr(b,69680)|0;d=Cn(c[d+8>>2]|0)|0;if(a[d>>0]|0){hr(b,69749)|0;hr(b,Ce(d)|0)|0;hr(b,69757)|0}c[e>>2]=O(c[b+168>>2]|0,c[b+164>>2]|0)|0;nr(b,69766,e);hr(b,69786)|0;hr(b,69821)|0;hr(b,69849)|0;hr(b,69855)|0;hr(b,69898)|0;hr(b,69939)|0;hr(b,69958)|0;hr(b,69975)|0;hr(b,70023)|0;hr(b,70076)|0;hr(b,70152)|0;hr(b,70228)|0;hr(b,70237)|0;hr(b,70260)|0;hr(b,70287)|0;hr(b,70340)|0;hr(b,70362)|0;hr(b,70407)|0;hr(b,70419)|0;hr(b,70429)|0;hr(b,70455)|0;hr(b,70340)|0;hr(b,70507)|0;hr(b,70407)|0;hr(b,70419)|0;hr(b,70551)|0;hr(b,70260)|0;hr(b,70287)|0;hr(b,70340)|0;hr(b,70507)|0;hr(b,70407)|0;hr(b,70419)|0;hr(b,70429)|0;hr(b,70455)|0;hr(b,70340)|0;hr(b,70362)|0;hr(b,70407)|0;hr(b,70419)|0;hr(b,70564)|0;hr(b,70572)|0;hr(b,70578)|0;hr(b,70592)|0;hr(b,70600)|0;hr(b,70633)|0;e=(c[41913]|0)+10|0;c[f>>2]=c[41912];c[f+4>>2]=e;nr(b,70710,f);hr(b,70740)|0;hr(b,70749)|0;hr(b,70807)|0;hr(b,70817)|0;hr(b,70882)|0;f=c[41913]|0;c[g>>2]=c[41912];c[g+4>>2]=f;nr(b,70919,g);g=c[41913]|0;c[i>>2]=c[41912];c[i+4>>2]=g;nr(b,70947,i);l=j;return}function te(a){a=a|0;hr(a,69224)|0;hr(a,69236)|0;hr(a,69244)|0;hr(a,69307)|0;hr(a,69236)|0;hr(a,69352)|0;hr(a,69401)|0;hr(a,69455)|0;hr(a,69236)|0;hr(a,69555)|0;hr(a,69604)|0;hr(a,69236)|0;hr(a,69656)|0;return}function ue(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+32|0;i=j+16|0;h=j+8|0;g=j;hr(b,69182)|0;if(d|0?a[d>>0]|0:0){c[g>>2]=Ce(d)|0;nr(b,69185,g)}if(e|0?a[e>>0]|0:0){c[h>>2]=Ce(e)|0;nr(b,69196,h)}if(f|0?a[f>>0]|0:0){c[i>>2]=Ce(f)|0;nr(b,69208,i)}hr(b,69221)|0;l=j;return}function ve(a){a=a|0;hr(a,69176)|0;return}function we(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;A=l;l=l+112|0;y=A+96|0;z=A+88|0;w=A+80|0;q=A+72|0;v=A+64|0;t=A+56|0;s=A+48|0;r=A+40|0;p=A+24|0;o=A+8|0;n=A;x=c[b+16>>2]|0;switch(a[f+48>>0]|0){case 108:{j=+h[e>>3];m=+h[f+32>>3];break}case 114:{m=+h[f+32>>3];j=+h[e>>3]-m;break}default:{m=+h[f+32>>3];j=+h[e>>3]-m*.5}}g=f+40|0;i=+h[g>>3];u=f+4|0;k=+h[(c[u>>2]|0)+16>>3];if(i<k){i=k*1.1+1.0;h[g>>3]=i}B=j+-8.0;k=+((c[41913]|0)>>>0)-+h[e+8>>3]-i+k*.2+(k<12.0?1.4:2.0);nr(b,68838,n);h[o>>3]=B;h[o+8>>3]=k;nr(b,68775,o);h[p>>3]=j+8.0+m-B;h[p+8>>3]=i;nr(b,68799,p);hr(b,68873)|0;hr(b,68907)|0;g=c[u>>2]|0;e=c[g+8>>2]|0;if(e){c[r>>2]=c[e+4>>2];nr(b,68997,r);g=c[e+8>>2]|0;if(g|0){c[s>>2]=g;nr(b,69016,s)}g=c[e+12>>2]|0;if(g|0){c[t>>2]=g;nr(b,69033,t)}g=c[e+16>>2]|0;if(g|0){c[v>>2]=g;nr(b,69051,v)}}else{c[q>>2]=c[g>>2];nr(b,68997,q)}h[w>>3]=+h[(c[u>>2]|0)+16>>3];nr(b,69067,w);g=x+16|0;switch(c[x+48>>2]|0){case 5:{g=c[g>>2]|0;if(eK(g,122106)|0){c[z>>2]=g;nr(b,69087,z)}break}case 1:{x=d[g+1>>0]|0;z=d[g+2>>0]|0;c[y>>2]=d[g>>0];c[y+4>>2]=x;c[y+8>>2]=z;nr(b,69097,y);break}default:ma(123205,68561,438,69118)}hr(b,69131)|0;hr(b,Ce(c[f>>2]|0)|0)|0;hr(b,69142)|0;hr(b,69165)|0;l=A;return}function xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0.0,m=0.0;e=l;l=l+32|0;f=e+16|0;j=e;hr(a,68739)|0;m=+h[b>>3];i=+h[b+16>>3]-m;k=+h[b+24>>3];g=k-+h[b+8>>3];k=+((c[41913]|0)>>>0)-k;h[j>>3]=m-i;h[j+8>>3]=k;nr(a,68775,j);h[f>>3]=i*2.0;h[f+8>>3]=g*2.0;nr(a,68799,f);Ge(a,d);hr(a,68621)|0;Ee(a);hr(a,68827)|0;l=e;return}function ye(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0;m=l;l=l+48|0;k=m+24|0;j=m+8|0;g=m;hr(a,68344)|0;n=c[41913]|0;c[g>>2]=c[41912];c[g+4>>2]=n;nr(a,68597,g);Ge(a,e);hr(a,68621)|0;Ee(a);hr(a,68624)|0;g=d+-1|0;e=0;while(1){if((e|0)>=(d|0))break;i=+h[b+(e<<4)>>3];f=+((c[41913]|0)>>>0)-+h[b+(e<<4)+8>>3];if(!e){hr(a,68651)|0;h[j>>3]=i;h[j+8>>3]=f;nr(a,68717,j);hr(a,68728)|0}else{h[k>>3]=i;h[k+8>>3]=f;nr(a,68717,k)}if((e|0)==(g|0))hr(a,68731)|0;e=e+1|0}hr(a,68460)|0;l=m;return}function ze(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;f=l;l=l+16|0;e=f;hr(a,68344)|0;h=c[41913]|0;c[e>>2]=c[41912];c[e+4>>2]=h;nr(a,68597,e);Ge(a,g);hr(a,68621)|0;Ee(a);hr(a,68624)|0;He(a,b,d);hr(a,68637)|0;l=f;return}function Ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0.0;k=l;l=l+48|0;j=k+24|0;i=k+8|0;f=k;hr(a,68344)|0;g=c[41913]|0;c[f>>2]=c[41912];c[f+4>>2]=g;nr(a,68381,f);hr(a,68421)|0;f=d+-1|0;g=b+8|0;e=0;while(1){if((e|0)>=(d|0))break;if(!e){hr(a,68433)|0;m=+((c[41913]|0)>>>0)-+h[g>>3];h[i>>3]=+h[b>>3];h[i+8>>3]=m;nr(a,68437,i);hr(a,68448)|0}else{m=+((c[41913]|0)>>>0)-+h[b+(e<<4)+8>>3];h[j>>3]=+h[b+(e<<4)>>3];h[j+8>>3]=m;nr(a,68437,j)}if((e|0)==(f|0))hr(a,68452)|0;e=e+1|0}hr(a,68456)|0;Ee(a);hr(a,68460)|0;l=k;return}function Be(a,b){a=a|0;b=b|0;hr(a,68279)|0;hr(a,Ce(b)|0)|0;hr(a,68291)|0;return}function Ce(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+16|0;e=u;d=c[41910]|0;if(!d){c[41911]=64;d=rw(64)|0;c[41910]=d}s=e+15|0;r=e+14|0;g=0;q=0;o=0;e=0;f=0;a:while(1){n=(o|0)!=0;k=g;p=b;j=e;b:while(1){if(!p){t=32;break a}e=a[p>>0]|0;if(!(e<<24>>24)){t=32;break a}b=c[41911]|0;if((q|0)>(b+-8|0)){d=b<<1;c[41911]=d;d=tw(c[41910]|0,d)|0;c[41910]=d;d=d+q|0;e=a[p>>0]|0}switch(e<<24>>24){case 60:{e=4;b=87131;t=26;break b}case 62:{e=4;b=87114;t=27;break b}case 38:{t=10;break b}case 45:{e=5;b=87125;i=j;break b}default:{}}if(n&e<<24>>24==32){t=12;break}switch(e<<24>>24){case 34:{e=6;b=87094;t=26;break b}case 39:{e=5;b=87119;t=27;break b}default:{}}if(e<<24>>24<0){i=127;b=0}else{e=1;b=p;t=26;break}while(1){g=i&255;h=e&255;if(g>>>0>=h>>>0)break;e=i&h&255;i=g>>>1;b=b+1|0}if((b|0)<=1){g=KN(j|0,f|0,6)|0;g=DN(g|0,z|0,e&255|0,0)|0;f=z;m=k+-1|0;if((k|0)>1){b=m;e=g}else{t=21;break}}else{b=b+-1|0;e=e&255;f=0}k=b;p=p+1|0;j=e}if((t|0)==10){t=0;b=(De(p)|0)==0;e=b?5:1;b=b?87108:p;i=j}else if((t|0)==12){t=0;b=(a[o>>0]|0)==32;e=b?6:1;b=b?87101:p;i=j}else if((t|0)==21){t=0;a[s>>0]=59;e=3;h=r;i=g;j=f;while(1){b=IN(i|0,j|0,10,0)|0;g=h+-1|0;a[h>>0]=b|48;b=i;i=HN(i|0,j|0,10,0)|0;f=j;j=z;o=e;e=e+1|0;if((o|0)>11){t=23;break a}if(!(f>>>0>0|(f|0)==0&b>>>0>9))break;else h=g}b=h+-2|0;a[g>>0]=35;a[b>>0]=38;k=m;f=j}else if((t|0)==26){t=0;i=j}else if((t|0)==27){t=0;i=j}h=d+e|0;g=e;while(1){if(!g)break;a[d>>0]=a[b>>0]|0;g=g+-1|0;b=b+1|0;d=d+1|0}g=k;b=p+1|0;q=e+q|0;o=p;d=h;e=i}if((t|0)==23){TL(68297,46,1,c[13918]|0)|0;Ma(1)}else if((t|0)==32){a[d>>0]=0;l=u;return c[41910]|0}return 0}function De(b){b=b|0;var c=0,d=0;d=b+1|0;c=a[d>>0]|0;a:do if(c<<24>>24==35){d=b+2|0;c=a[d>>0]|0;switch(c<<24>>24){case 88:case 120:break;default:{b=d;while(1){d=b+1|0;if((c+-48&255)>=10)break a;b=d;c=a[d>>0]|0}}}d=b+3|0;while(1){c=a[d>>0]|0;if((c+-48&255)>=10)switch(c<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break a}d=d+1|0}}else while(1){b=d+1|0;if(((c&-33)+-65&255)>=26)break a;d=b;c=a[b>>0]|0}while(0);return c<<24>>24==59|0}function Ee(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0,i=0,j=0,k=0;k=l;l=l+48|0;d=k+8|0;j=k;i=c[a+16>>2]|0;hr(a,68472)|0;e=d;f=i+16|0;g=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Fe(a,d);b=+h[i+152>>3];if(b!=1.0){h[j>>3]=b;nr(a,68490,j)}switch(c[i+144>>2]|0){case 1:{hr(a,68507)|0;break}case 2:{hr(a,68525)|0;break}default:{}}hr(a,68542)|0;l=k;return}function Fe(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;g=l;l=l+16|0;f=g;a:do switch(c[e+32>>2]|0){case 5:{hr(b,c[e>>2]|0)|0;break}case 1:if(!(a[e+3>>0]|0)){hr(b,120501)|0;break a}else{i=d[e+1>>0]|0;h=d[e+2>>0]|0;c[f>>2]=d[e>>0];c[f+4>>2]=i;c[f+8>>2]=h;nr(b,68547,f);break a}default:ma(123205,68561,94,68581)}while(0);l=g;return}function Ge(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g;if(!b)hr(a,68700)|0;else{d=c[a+16>>2]|0;hr(a,68670)|0;b=f;d=d+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));Fe(a,f);hr(a,68697)|0}l=g;return}function He(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0;i=l;l=l+32|0;g=i;e=68651;f=0;while(1){if((f|0)>=(d|0))break;k=+h[b+(f<<4)>>3];j=+((c[41913]|0)>>>0)-+h[b+(f<<4)+8>>3];c[g>>2]=e;h[g+8>>3]=k;h[g+16>>3]=j;nr(a,68654,g);e=(f|0)==0?68667:174177;f=f+1|0}hr(a,83707)|0;l=i;return}function Ie(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+8|0;e=b;hr(a,73284)|0;hr(a,73299)|0;hr(a,73338)|0;hr(a,73387)|0;c[e>>2]=122106;c[e+4>>2]=73475;nr(a,73456,e);c[d>>2]=121990;c[d+4>>2]=73481;nr(a,73456,d);l=b;return}function Je(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0;b=l;l=l+64|0;d=b+8|0;j=b;c[j>>2]=Cn(c[(c[a+16>>2]|0)+8>>2]|0)|0;nr(a,72237,j);i=+h[a+368>>3]*.5*+h[a+488>>3];g=+h[a+376>>3]*.5*+h[a+496>>3];f=+J(+(i*2.0000000949949026e-03))*180.0*.6366197723675814;e=+J(+(g*2.0000000949949026e-03))*180.0*.6366197723675814;h[d>>3]=i;h[d+8>>3]=g;h[d+16>>3]=-500.0;h[d+24>>3]=i;h[d+32>>3]=g;h[d+40>>3]=0.0;h[d+48>>3]=(f>e?f:e)*1.2;nr(a,72259,d);hr(a,72406)|0;hr(a,73236)|0;l=b;return}function Ke(a){a=a|0;hr(a,72220)|0;return}function Le(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0;f=l;l=l+16|0;h=f;c[h>>2]=b;c[h+4>>2]=d;c[h+8>>2]=e;nr(a,72190,h);g[41914]=+(O(d,-10)|0);l=f;return}function Me(a){a=a|0;hr(a,72173)|0;return}function Ne(a){a=a|0;hr(a,72155)|0;return}function Oe(a){a=a|0;hr(a,72139)|0;return}function Pe(a){a=a|0;hr(a,72118)|0;g[41914]=+g[41914]+-2.0;return}function Qe(a){a=a|0;hr(a,72099)|0;return}function Re(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=Cn(c[(c[a+16>>2]|0)+8>>2]|0)|0;nr(a,72077,d);l=b;return}function Se(a){a=a|0;hr(a,72061)|0;return}function Te(a){a=a|0;hr(a,72043)|0;g[41914]=+g[41914]+-5.0;return}function Ue(a){a=a|0;hr(a,72027)|0;g[41914]=+g[41914]+5.0;return}function Ve(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0;r=l;l=l+144|0;o=r+104|0;q=r+56|0;m=r+32|0;j=r+24|0;n=r;p=e+4|0;i=c[p>>2]|0;f=+h[i+16>>3];i=c[i>>2]|0;c[n>>2]=c[e>>2];h[n+8>>3]=f;c[n+16>>2]=i;nr(b,71873,n);g[41915]=+g[41914]+-9.0;switch(a[e+48>>0]|0){case 108:{f=+h[d>>3];break}case 114:{i=d;f=+h[d>>3]-+h[e+32>>3];k=5;break}default:{i=d;f=+h[d>>3]-+h[e+32>>3]*.5;k=5}}if((k|0)==5)h[i>>3]=f;u=+h[b+488>>3];t=(+h[b+504>>3]+f)*u;s=(+h[b+512>>3]+ +h[d+8>>3])*+h[b+496>>3];h[j>>3]=+h[(c[p>>2]|0)+16>>3]*u;n=$e(b,71925,j)|0;f=+(c[b+360>>2]|0);h[m>>3]=0.0;h[m+8>>3]=0.0;h[m+16>>3]=f;i=$e(b,71142,m)|0;f=+g[41915];h[o>>3]=t;h[o+8>>3]=s;h[o+16>>3]=f;d=$e(b,71174,o)|0;j=o;k=(c[b+16>>2]|0)+16|0;m=j+40|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(m|0));o=af(b,o,0.0)|0;e=c[e>>2]|0;c[q>>2]=c[c[p>>2]>>2];h[q+8>>3]=.25;h[q+16>>3]=0.0;c[q+24>>2]=e;c[q+28>>2]=72012;c[q+32>>2]=n;c[q+36>>2]=i;c[q+40>>2]=d;c[q+44>>2]=o;q=$e(b,71937,q)|0;hr(b,q)|0;XI(q);XI(i);XI(o);XI(d);XI(n);l=r;return}function We(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=l;l=l+240|0;x=z+192|0;y=z+152|0;t=z+128|0;r=z+104|0;o=z+80|0;n=z+48|0;e=z+24|0;m=z;hr(a,71750)|0;g[41915]=+g[41914]+-6.0;i=+h[b>>3];j=+h[a+488>>3];p=(+h[a+504>>3]+i)*j;A=+h[b+8>>3];k=+h[a+496>>3];q=(+h[a+512>>3]+A)*k;j=(+h[b+16>>3]-i)*j;k=(+h[b+24>>3]-A)*k;s=a+16|0;A=k+j;i=+h[(c[s>>2]|0)+152>>3]/A*2.5;h[m>>3]=j;h[m+8>>3]=A*.25;h[m+16>>3]=k;b=$e(a,71110,m)|0;m=a+360|0;A=+(c[m>>2]|0);h[e>>3]=90.0;h[e+8>>3]=0.0;h[e+16>>3]=A;e=$e(a,71142,e)|0;A=+g[41915];h[x>>3]=p;h[x+8>>3]=q;h[x+16>>3]=A;f=$e(a,71174,x)|0;u=x;v=(c[s>>2]|0)+16|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));v=af(a,x,0.0)|0;h[n>>3]=1.0;h[n+8>>3]=i;c[n+16>>2]=b;c[n+20>>2]=e;c[n+24>>2]=f;c[n+28>>2]=v;w=$e(a,71765,n)|0;hr(a,w)|0;XI(b);XI(e);XI(f);XI(v);XI(w);if(d|0){h[o>>3]=j;h[o+8>>3]=k;h[o+16>>3]=1.0;f=$e(a,71110,o)|0;A=+(c[m>>2]|0);h[r>>3]=0.0;h[r+8>>3]=0.0;h[r+16>>3]=A;e=$e(a,71142,r)|0;A=+g[41915];h[t>>3]=p;h[t+8>>3]=q;h[t+16>>3]=A;b=$e(a,71174,t)|0;u=x;v=(c[s>>2]|0)+56|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));x=af(a,x,0.0)|0;h[y>>3]=0.0;h[y+8>>3]=0.0;h[y+16>>3]=0.0;c[y+24>>2]=f;c[y+28>>2]=e;c[y+32>>2]=b;c[y+36>>2]=x;y=$e(a,71811,y)|0;hr(a,y)|0;XI(f);XI(e);XI(b);XI(x);XI(y)}l=z;return}function Xe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0,N=0.0;K=l;l=l+336|0;B=K+296|0;J=K+288|0;I=K+272|0;H=K+264|0;G=K+240|0;D=K+232|0;A=K+208|0;z=K+184|0;w=K+160|0;v=K+152|0;u=K+136|0;t=K+128|0;s=K+96|0;r=K+88|0;q=K+56|0;f=K+48|0;m=K+24|0;k=K;hr(a,71615)|0;g[41915]=+g[41914]+-2.0;o=a+488|0;p=a+496|0;L=+h[p>>3];h[k>>3]=+h[o>>3];h[k+8>>3]=L;h[k+16>>3]=1.0;k=$e(a,71110,k)|0;y=a+360|0;L=+(c[y>>2]|0);h[m>>3]=0.0;h[m+8>>3]=0.0;h[m+16>>3]=L;m=$e(a,71142,m)|0;L=+g[41915]+-2.0;h[B>>3]=0.0;h[B+8>>3]=0.0;h[B+16>>3]=L;n=$e(a,71174,B)|0;C=a+16|0;i=B;j=(c[C>>2]|0)+16|0;x=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(x|0));j=af(a,B,0.0)|0;c[f>>2]=71237;c[f+4>>2]=d+1;E=a+504|0;F=a+512|0;i=0;f=$e(a,71206,f)|0;while(1){if((i|0)>=(d|0))break;N=+h[F>>3]+ +h[b+(i<<4)+8>>3];L=+h[(c[C>>2]|0)+152>>3];h[q>>3]=+h[E>>3]+ +h[b+(i<<4)>>3];h[q+8>>3]=N;h[q+16>>3]=0.0;h[q+24>>3]=L;M=$e(a,71251,q)|0;c[r>>2]=f;c[r+4>>2]=M;x=$e(a,71280,r)|0;XI(M);XI(f);i=i+1|0;f=x}L=+h[F>>3]+ +h[b+8>>3];N=+h[(c[C>>2]|0)+152>>3];h[s>>3]=+h[E>>3]+ +h[b>>3];h[s+8>>3]=L;h[s+16>>3]=0.0;h[s+24>>3]=N;x=$e(a,71251,s)|0;c[t>>2]=f;c[t+4>>2]=x;M=$e(a,71280,t)|0;XI(x);XI(f);c[u>>2]=k;c[u+4>>2]=m;c[u+8>>2]=n;c[u+12>>2]=j;x=$e(a,71630,u)|0;c[v>>2]=M;c[v+4>>2]=x;M=$e(a,71335,v)|0;XI(x);hr(a,M)|0;XI(k);XI(m);XI(n);XI(j);XI(M);if(e|0){N=+h[p>>3];h[w>>3]=+h[o>>3];h[w+8>>3]=N;h[w+16>>3]=1.0;n=$e(a,71110,w)|0;N=+(c[y>>2]|0);h[z>>3]=0.0;h[z+8>>3]=0.0;h[z+16>>3]=N;m=$e(a,71142,z)|0;N=+g[41915]+-2.0;h[A>>3]=0.0;h[A+8>>3]=0.0;h[A+16>>3]=N;k=$e(a,71174,A)|0;i=B;j=(c[C>>2]|0)+56|0;x=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(x|0));j=af(a,B,.25)|0;c[D>>2]=d;i=0;f=$e(a,71675,D)|0;while(1){if((i|0)>=(d|0))break;N=+h[F>>3]+ +h[b+(i<<4)+8>>3];h[G>>3]=+h[E>>3]+ +h[b+(i<<4)>>3];h[G+8>>3]=N;h[G+16>>3]=0.0;D=$e(a,71690,G)|0;c[H>>2]=f;c[H+4>>2]=D;M=$e(a,71712,H)|0;XI(D);XI(f);i=i+1|0;f=M}c[I>>2]=n;c[I+4>>2]=m;c[I+8>>2]=k;c[I+12>>2]=j;I=$e(a,71722,I)|0;c[J>>2]=f;c[J+4>>2]=I;M=$e(a,71335,J)|0;XI(I);hr(a,M)|0;XI(n);XI(m);XI(k);XI(j);XI(M)}l=K;return}function Ye(a,b,d,e,f,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;B=l;l=l+208|0;e=B+160|0;A=B+152|0;z=B+136|0;y=B+128|0;x=B+96|0;w=B+88|0;v=B+56|0;k=B+48|0;s=B+24|0;r=B;hr(a,71542)|0;g[41915]=+g[41914]+-4.0;C=+h[a+496>>3];h[r>>3]=+h[a+488>>3];h[r+8>>3]=C;h[r+16>>3]=1.0;r=$e(a,71110,r)|0;C=+(c[a+360>>2]|0);h[s>>3]=0.0;h[s+8>>3]=0.0;h[s+16>>3]=C;s=$e(a,71142,s)|0;C=+g[41915]+-2.0;h[e>>3]=0.0;h[e+8>>3]=0.0;h[e+16>>3]=C;t=$e(a,71174,e)|0;u=a+16|0;f=e;i=(c[u>>2]|0)+56|0;j=f+40|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));n=af(a,e,0.0)|0;c[k>>2]=71556;c[k+4>>2]=d+2;o=a+504|0;p=a+512|0;q=d+-1|0;m=0;e=$e(a,71206,k)|0;while(1){if((m|0)>=(d|0))break;f=b+(m<<4)|0;i=b+(m<<4)+8|0;D=+h[p>>3]+ +h[i>>3];C=+h[(c[u>>2]|0)+152>>3];h[v>>3]=+h[o>>3]+ +h[f>>3];h[v+8>>3]=D;h[v+16>>3]=0.0;h[v+24>>3]=C;k=$e(a,71251,v)|0;c[w>>2]=e;c[w+4>>2]=k;j=$e(a,71280,w)|0;XI(k);XI(e);if((m|0)==0|(m|0)==(q|0)){C=+h[p>>3]+ +h[i>>3];D=+h[(c[u>>2]|0)+152>>3];h[x>>3]=+h[o>>3]+ +h[f>>3];h[x+8>>3]=C;h[x+16>>3]=0.0;h[x+24>>3]=D;k=$e(a,71251,x)|0;c[y>>2]=j;c[y+4>>2]=k;e=$e(a,71280,y)|0;XI(k);XI(j)}else e=j;m=m+1|0}c[z>>2]=r;c[z+4>>2]=s;c[z+8>>2]=t;c[z+12>>2]=n;b=$e(a,71565,z)|0;c[A>>2]=e;c[A+4>>2]=b;d=$e(a,71335,A)|0;XI(b);hr(a,d)|0;XI(r);XI(s);XI(t);XI(n);XI(d);l=B;return}function Ze(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0.0;v=l;l=l+160|0;e=v+120|0;u=v+112|0;t=v+96|0;s=v+88|0;r=v+56|0;m=v+48|0;n=v+24|0;q=v;hr(a,71094)|0;g[41915]=+g[41914]+-6.0;w=+h[a+496>>3];h[q>>3]=+h[a+488>>3];h[q+8>>3]=w;h[q+16>>3]=1.0;q=$e(a,71110,q)|0;w=+(c[a+360>>2]|0);h[n>>3]=0.0;h[n+8>>3]=0.0;h[n+16>>3]=w;n=$e(a,71142,n)|0;w=+g[41915];h[e>>3]=0.0;h[e+8>>3]=0.0;h[e+16>>3]=w;o=$e(a,71174,e)|0;p=a+16|0;f=e;i=(c[p>>2]|0)+16|0;j=f+40|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));i=af(a,e,0.0)|0;c[m>>2]=71237;c[m+4>>2]=d;j=a+504|0;k=a+512|0;f=0;e=$e(a,71206,m)|0;while(1){if((f|0)>=(d|0))break;y=+h[k>>3]+ +h[b+(f<<4)+8>>3];w=+h[(c[p>>2]|0)+152>>3];h[r>>3]=+h[j>>3]+ +h[b+(f<<4)>>3];h[r+8>>3]=y;h[r+16>>3]=0.0;h[r+24>>3]=w;x=$e(a,71251,r)|0;c[s>>2]=e;c[s+4>>2]=x;m=$e(a,71280,s)|0;XI(x);XI(e);f=f+1|0;e=m}c[t>>2]=q;c[t+4>>2]=n;c[t+8>>2]=o;c[t+12>>2]=i;t=$e(a,71289,t)|0;c[u>>2]=e;c[u+4>>2]=t;x=$e(a,71335,u)|0;XI(t);hr(a,x)|0;XI(q);XI(n);XI(o);XI(i);XI(x);l=v;return}function _e(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;nr(a,71075,e);l=d;return}function $e(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+1056|0;h=i;e=i+24|0;f=i+8|0;c[f>>2]=d;g=HK(e,1024,b,f)|0;do if((g|0)>=0)if((g|0)>1023){a=WI(g+1|0)|0;c[f>>2]=d;mL(a,b,f)|0;break}else{a=CL(e)|0;break}else{a=c[(c[a+12>>2]|0)+16>>2]|0;c[h>>2]=vJ(c[(gJ()|0)>>2]|0)|0;hb[a&31](71520,h);a=CL(174177)|0}while(0);l=i;return a|0}function af(a,b,e){a=a|0;b=b|0;e=+e;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;q=l;l=l+112|0;o=q+104|0;j=q+96|0;i=q+64|0;n=q+48|0;p=q+32|0;m=q+16|0;k=q;g=c[b+32>>2]|0;a:do switch(g|0){case 5:{f=c[b>>2]|0;if(!(uJ(f,121094)|0)){c[k>>2]=71357;h[k+8>>3]=e;f=$e(a,71340,k)|0;break a}if(!(uJ(f,118224)|0)){c[m>>2]=71361;h[m+8>>3]=e;f=$e(a,71340,m)|0;break a}if(!(uJ(f,116223)|0)){c[p>>2]=71367;h[p+8>>3]=e;f=$e(a,71340,p)|0;break a}else{c[n>>2]=f;h[n+8>>3]=e;f=$e(a,71340,n)|0;break a}}case 1:{s=+(d[b+1>>0]|0)*.00390625;r=+(d[b+2>>0]|0)*.00390625;h[i>>3]=+(d[b>>0]|0)*.00390625;h[i+8>>3]=s;h[i+16>>3]=r;h[i+24>>3]=e;f=$e(a,71372,i)|0;break}default:{p=c[13918]|0;n=c[b>>2]|0;c[j>>2]=g;c[j+4>>2]=n;vL(p,71411,j)|0;ma(123205,71461,436,71481)}}while(0);c[o>>2]=f;p=$e(a,71498,o)|0;XI(f);l=q;return p|0}function bf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;h=c[c[a+12>>2]>>2]|0;j=c[h>>2]|0;i=c[h+4>>2]|0;h=c[h+8>>2]|0;c[g>>2]=73927;c[g+4>>2]=j;c[g+8>>2]=i;c[g+12>>2]=h;nr(a,76546,g);f=Cn(c[f+8>>2]|0)|0;c[e>>2]=73927;c[e+4>>2]=f;nr(a,76578,e);c[d>>2]=73927;nr(a,76592,d);l=b;return}function cf(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=73927;nr(a,76494,d);l=b;return}function df(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;W=l;l=l+304|0;V=W+296|0;U=W+288|0;T=W+272|0;R=W+264|0;Q=W+256|0;P=W+248|0;O=W+240|0;N=W+232|0;M=W+224|0;L=W+216|0;K=W+208|0;J=W+200|0;I=W+192|0;H=W+184|0;G=W+176|0;F=W+168|0;E=W+160|0;C=W+152|0;A=W+144|0;z=W+136|0;y=W+128|0;x=W+120|0;w=W+112|0;v=W+104|0;u=W+96|0;t=W+88|0;s=W+80|0;r=W+72|0;q=W+64|0;p=W+56|0;o=W+48|0;S=W+40|0;B=W+24|0;n=W+16|0;m=W;g=c[a+456>>2]|0;i=c[a+460>>2]|0;j=c[a+464>>2]|0;k=c[a+468>>2]|0;f=a+360|0;a:do if(c[4007]|0){switch(c[f>>2]|0){case 90:case 0:break a;default:{}}qf();c[4007]=0}while(0);e=(+(k|0)-+(i|0))*.013888888888888888;b=(+(j|0)-+(g|0))*.013888888888888888;k=(c[f>>2]|0)==90;d=k?e:b;e=k?b:e;h[m>>3]=d;h[m+8>>3]=e;nr(a,74114,m);c[n>>2]=73927;nr(a,74129,n);if(d>0.0){b=+CJ(d);h[16877]=b;b=b+3.0-+(~~b|0)}else b=3.0;b=+D(10.0,+b);h[16877]=b;h[B>>3]=b;h[B+8>>3]=b;nr(a,74298,B);c[S>>2]=73927;nr(a,74333,S);c[o>>2]=73927;nr(a,74391,o);c[p>>2]=73927;nr(a,74451,p);c[q>>2]=73927;nr(a,74500,q);c[r>>2]=73927;nr(a,74539,r);c[s>>2]=73927;nr(a,74590,s);c[t>>2]=73927;nr(a,74652,t);c[u>>2]=73927;nr(a,74762,u);c[v>>2]=73927;nr(a,74853,v);c[w>>2]=73927;nr(a,74907,w);c[x>>2]=73927;nr(a,74976,x);nr(a,75012,y);c[z>>2]=73927;nr(a,75137,z);c[A>>2]=73927;nr(a,75166,A);nr(a,75206,C);c[E>>2]=73927;nr(a,75299,E);c[F>>2]=73927;nr(a,75358,F);c[G>>2]=73927;nr(a,75439,G);nr(a,75509,H);c[I>>2]=73927;nr(a,75598,I);c[J>>2]=73927;nr(a,75703,J);c[K>>2]=73927;nr(a,75779,K);c[L>>2]=73927;nr(a,75818,L);c[M>>2]=73927;nr(a,75917,M);c[N>>2]=73927;nr(a,75963,N);nr(a,76052,O);c[P>>2]=73927;nr(a,76093,P);c[Q>>2]=73927;nr(a,76176,Q);c[R>>2]=73927;nr(a,76277,R);h[T>>3]=e;h[T+8>>3]=d;nr(a,76341,T);nr(a,76369,U);nr(a,76377,V);l=W;return}function ef(a){a=a|0;var b=0;b=l;l=l+16|0;nr(a,74107,b);l=b;return}function ff(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0.0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;q=r+24|0;p=r+8|0;o=r;switch(a[e+48>>0]|0){case 108:{k=d;i=+h[e+32>>3];j=+h[d>>3];break}case 114:{i=+h[e+32>>3];g=i;f=5;break}default:{i=+h[e+32>>3];g=i*.5;f=5}}if((f|0)==5){j=+h[d>>3]-g;h[d>>3]=j;k=d}m=e+4|0;f=c[m>>2]|0;g=+h[f+16>>3];d=d+8|0;n=+h[d>>3]+g*.004629629629629629;h[d>>3]=n;i=j+i*.006944444444444444;h[k>>3]=i;f=c[f>>2]|0;do if(f){d=c[41916]|0;if(d|0?(uJ(d,f)|0)==0:0)break;c[o>>2]=of(f)|0;nr(b,74006,o);o=c[m>>2]|0;c[41916]=c[o>>2];g=+h[o+16>>3]}while(0);f=~~g;f=(f|0)>1?f:1;if((f|0)!=(c[41917]|0)){j=+h[16877];c[p>>2]=f;h[p+8>>3]=j;nr(b,74014,p);c[41917]=f}c[q>>2]=pf(c[e>>2]|0)|0;h[q+8>>3]=i;h[q+16>>3]=n;nr(b,74035,q);l=r;return}function gf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=l;l=l+48|0;f=e;i=+h[b>>3];k=(+h[b+16>>3]-i)*.027777777777777776;g=+h[b+8>>3];j=(+h[b+24>>3]-g)*.027777777777777776;c[f>>2]=1;c[f+4>>2]=d|0?73948:174177;h[f+8>>3]=k;h[f+16>>3]=j;h[f+24>>3]=i*.013888888888888888;h[f+32>>3]=g*.013888888888888888;nr(a,73954,f);l=e;return}function hf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=l;l=l+16|0;mf(c[a+16>>2]|0,e+8|0,e);nf(a,b,d,1);l=e;return}function jf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0;t=l;l=l+128|0;s=t+112|0;q=t+104|0;p=t+96|0;e=t+88|0;n=t+16|0;o=t;k=c[a+16>>2]|0;j=WI((d*140|0)+140|0)|0;mf(k,t+116|0,t+80|0);v=+h[b>>3];k=n+48|0;h[k>>3]=v;u=+h[b+8>>3];h[n+56>>3]=u;c[e>>2]=~~(v+(v>=0.0?.5:-.5));c[e+4>>2]=~~(u+(u>=0.0?.5:-.5));i=o+8|0;e=j+(lL(j,73932,e)|0)|0;r=1;g=0;while(1){m=g+3|0;if((m|0)>=(d|0))break;c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];f=1;while(1){if((f|0)==4){f=1;break}w=f+g|0;h[n+(f<<4)>>3]=+h[b+(w<<4)>>3];h[n+(f<<4)+8>>3]=+h[b+(w<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;KA(o,n,3,+(f|0)*.16666666666666666,0,0);u=+h[o>>3];v=+h[i>>3];c[p>>2]=~~(u+(u>=0.0?.5:-.5));c[p+4>>2]=~~(v+(v>=0.0?.5:-.5));f=f+1|0;e=e+(lL(e,73932,p)|0)|0}r=r+6|0;g=m}c[q>>2]=j;nr(a,73939,q);XI(j);f=r+-1|0;e=0;while(1){if((e|0)>=(r|0))break;c[s>>2]=((e|0)%(f|0)|0|0)!=0&1;nr(a,73944,s);e=e+1|0}hr(a,134901)|0;l=t;return}function kf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=l;l=l+16|0;mf(c[a+16>>2]|0,e+8|0,e);nf(a,b,d,0);l=e;return}function lf(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=73927;c[e+4>>2]=b;nr(a,73920,e);l=d;return}function mf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;switch(c[a+144>>2]|0){case 1:{e=10.0;a=1;break}case 2:{e=10.0;a=2;break}default:{e=0.0;a=0}}c[b>>2]=a;h[d>>3]=e;return}function nf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+16|0;i=j+8|0;g=j;f=0;while(1){if((f|0)>=(d|0))break;m=+h[b+(f<<4)>>3];k=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(k+(k>=0.0?.5:-.5));nr(a,73932,g);f=f+1|0}if(e|0){k=+h[b>>3];m=+h[b+8>>3];c[i>>2]=~~(k+(k>=0.0?.5:-.5));c[i+4>>2]=~~(m+(m>=0.0?.5:-.5));nr(a,73932,i)}hr(a,134901)|0;l=j;return}function of(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;a:while(1){d=15756;while(1){e=c[d+4>>2]|0;if(!e)break;if(!(uJ(e,b)|0)){g=6;break a}d=d+8|0}c[f>>2]=74088;c[f+4>>2]=b;Zl(1,74062,f)|0;d=DL(b,45)|0;if(!d){d=74105;break}a[d>>0]=0}l=h;return d|0}function pf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;d=c[41918]|0;if(!d){c[41919]=64;d=WI(64)|0;c[41918]=d;e=0}else e=0;while(1){g=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24))break;b=c[41919]|0;if((e|0)>(b+-8|0)){d=b<<1;c[41919]=d;d=ZI(c[41918]|0,d)|0;c[41918]=d;d=d+e|0}if(f<<24>>24<=-1){a[d>>0]=92;c[h>>2]=f&255;lL(d+1|0,74057,h)|0;b=g;d=d+4|0;e=e+4|0;continue}if(f<<24>>24==92){a[d>>0]=92;e=e+1|0;d=d+1|0}a[d>>0]=f;b=g;d=d+1|0;e=e+1|0}a[d>>0]=0;l=i;return c[41918]|0}function qf(){var a=0,b=0;a=l;l=l+16|0;b=a;c[b>>2]=74088;c[b+4>>2]=76485;Zl(0,76467,b)|0;l=a;return}function rf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0;e=l;l=l+32|0;f=e+8|0;j=e;b=b+8|0;k=c[b>>2]|0;c[j>>2]=k;c[j+4>>2]=k;nr(a,77065,j);i=(+h[d>>3]+ +h[d+16>>3])*.5;g=(+h[d+8>>3]+ +h[d+24>>3])*.5;c[f>>2]=c[b>>2];h[f+8>>3]=i;h[f+16>>3]=g;nr(a,77107,f);l=e;return}function sf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=l;l=l+48|0;f=e;i=+h[d>>3];k=+h[d+16>>3]-i;g=+h[d+24>>3];j=g-+h[d+8>>3];g=+(~~(+h[a+232>>3]-+h[a+216>>3])>>>0)-g;c[f>>2]=c[b+8>>2];h[f+8>>3]=k;h[f+16>>3]=j;h[f+24>>3]=i;h[f+32>>3]=g;nr(a,77152,f);hr(a,77244)|0;l=e;return}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function uf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=l;l=l+160|0;s=t+152|0;r=t+136|0;q=t+120|0;k=t+112|0;n=t+104|0;m=t+88|0;j=t+72|0;i=t+64|0;o=t;if(!a)ma(96061,77249,212,77268);if(!b)ma(96091,77249,213,77268);p=b+8|0;if(!(c[p>>2]|0))ma(96094,77249,214,77268);if(c[b+52>>2]|0){c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];b=o+32|0;d=d+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];f=+h[o>>3];h[o+16>>3]=f;h[o+24>>3]=+h[o+40>>3];h[o+48>>3]=+h[b>>3];g=+h[o+8>>3];h[o+56>>3]=g;if(e<<24>>24){nr(a,77289,i);b=0;while(1){if((b|0)==4)break;u=+h[o+(b<<4)+8>>3];h[j>>3]=+h[o+(b<<4)>>3];h[j+8>>3]=u;nr(a,77292,j);b=b+1|0}h[m>>3]=f;h[m+8>>3]=g;nr(a,77292,m);m=c[p>>2]|0;c[n>>2]=4;c[n+4>>2]=m;nr(a,77299,n)}nr(a,77289,k);b=0;while(1){if((b|0)==4)break;u=+h[o+(b<<4)+8>>3];h[q>>3]=+h[o+(b<<4)>>3];h[q+8>>3]=u;nr(a,77292,q);b=b+1|0}h[r>>3]=f;h[r+8>>3]=g;nr(a,77292,r);r=c[p>>2]|0;c[s>>2]=4;c[s+4>>2]=r;nr(a,77314,s)}l=t;return}function vf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+112|0;n=o+24|0;m=o+16|0;k=o;i=o+28|0;if(!b)ma(96061,77249,153,77330);if(!d)ma(96091,77249,154,77330);if(!(c[d+8>>2]|0))ma(96094,77249,155,77330);j=d+52|0;if(c[j>>2]|0){f=d+60|0;g=c[f>>2]|0;if((g|0)==84)g=18;else{gb[g&127](d);c[j>>2]=0;c[f>>2]=0;c[d+56>>2]=0;g=10}}else g=10;do if((g|0)==10){if(!((Hr(d)|0)<<24>>24))break;f=vN(c[d+20>>2]|0)|0;if((c[d+24>>2]&-2|0)==6){WL(f,i)|0;i=c[i+36>>2]|0;c[d+56>>2]=i;f=mJ(0,i,1,1,f,0)|0;c[j>>2]=f;a[d+16>>0]=1}else f=c[j>>2]|0;if(f|0)c[d+60>>2]=84;Ir(d);if(c[j>>2]|0)g=18}while(0);if((g|0)==18){p=+h[e+8>>3]-+(c[d+36>>2]|0);h[k>>3]=+h[e>>3]-+(c[d+32>>2]|0);h[k+8>>3]=p;nr(b,77348,k);if(!(a[d+16>>0]|0)){c[m>>2]=c[d+12>>2];nr(b,77379,m)}else ay(b,d);nr(b,77394,n)}l=o;return}function wf(a){a=a|0;kJ(c[a+52>>2]|0,c[a+56>>2]|0)|0;return}function xf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+80|0;f=g+48|0;if(!a)ma(96061,77249,121,77404);e=c[a+16>>2]|0;if(!e)ma(84865,77249,123,77404);if(!b)ma(96091,77249,124,77404);d=b+8|0;if(!(c[d>>2]|0))ma(96094,77249,125,77404);if(!(c[e+8>>2]|0))ma(123690,77249,128,77404);else{nr(a,77424,g);nr(a,77433,g+8|0);nr(a,77460,g+16|0);nr(a,77485,g+24|0);nr(a,77514,g+32|0);nr(a,77542,g+40|0);c[f>>2]=c[d>>2];nr(a,77549,f);nr(a,77588,g+56|0);nr(a,95774,g+64|0);l=g;return}}function yf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0.0;i=l;l=l+128|0;g=i+80|0;f=i;if(!a)ma(96061,77249,97,77593);if(!b)ma(96091,77249,98,77593);e=c[b+8>>2]|0;if(!e)ma(96094,77249,99,77593);else{m=+h[d>>3];j=~~(m+(m>=0.0?.5:-.5));m=+h[d+8>>3];b=~~(m+(m>=0.0?.5:-.5));m=+h[d+16>>3];k=~~(m+(m>=0.0?.5:-.5));m=+h[d+24>>3];d=~~(m+(m>=0.0?.5:-.5));c[f>>2]=2;c[f+4>>2]=5;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=-1;c[f+24>>2]=1;c[f+28>>2]=-1;c[f+32>>2]=0;h[f+40>>3]=0.0;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=5;c[f+72>>2]=0;c[f+76>>2]=e;nr(a,77612,f);c[g>>2]=j;c[g+4>>2]=b;c[g+8>>2]=j;c[g+12>>2]=d;c[g+16>>2]=k;c[g+20>>2]=d;c[g+24>>2]=k;c[g+28>>2]=b;c[g+32>>2]=j;c[g+36>>2]=b;nr(a,77670,g);l=i;return}}function zf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0,o=0;o=l;l=l+96|0;n=o+56|0;m=o+32|0;k=o;i=+h[d>>3];j=+h[d+16>>3]-i;f=+h[d+24>>3];g=f-+h[d+8>>3];if(!a)ma(96061,77249,53,77702);if(!b)ma(96091,77249,54,77702);e=b+8|0;if(!(c[e>>2]|0))ma(96094,77249,55,77702);hr(a,77721)|0;hr(a,c[e>>2]|0)|0;e=a+360|0;f=-f;if(!(c[e>>2]|0)){h[n>>3]=j;h[n+8>>3]=g;h[n+16>>3]=i;h[n+24>>3]=f;nr(a,77850,n)}else{h[k>>3]=g;h[k+8>>3]=j;h[k+16>>3]=i;h[k+24>>3]=f;nr(a,77741,k);c[m>>2]=c[e>>2];h[m+8>>3]=i;h[m+16>>3]=f;nr(a,77820,m)}hr(a,77929)|0;l=o;return}function Af(a){a=a|0;var b=0,c=0;b=bo(a)|0;while(1){if(!b)break;Bf(b);b=co(a,b)|0}c=bo(a)|0;while(1){if(!c)break;b=Om(a,c)|0;while(1){if(!b)break;Cf(b);b=Qm(a,b)|0}c=co(a,c)|0}return}function Bf(a){a=a|0;var b=0,d=0;Mo(a,122241,304,1)|0;RA(a);FB(a,c[(c[(qo(a)|0)+16>>2]|0)+116>>2]&1);a=a+16|0;c[(c[a>>2]|0)+176>>2]=0;b=qw(20)|0;d=c[a>>2]|0;c[d+172>>2]=b;c[d+184>>2]=0;d=qw(20)|0;b=c[a>>2]|0;c[b+180>>2]=d;c[b+200>>2]=0;b=qw(12)|0;d=c[a>>2]|0;c[d+196>>2]=b;c[d+192>>2]=0;d=qw(12)|0;b=c[a>>2]|0;c[b+188>>2]=d;c[b+208>>2]=0;b=qw(12)|0;a=c[a>>2]|0;c[a+204>>2]=b;c[a+216>>2]=1;return}function Cf(d){d=d|0;var e=0,f=0,g=0,h=0,i=0;Mo(d,122254,176,1)|0;SA(d)|0;h=yA(d,c[42217]|0,1,0)|0;g=d+16|0;c[(c[g>>2]|0)+156>>2]=h;h=AA(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,c[42211]|0,174177)|0;i=AA(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,c[42211]|0,174177)|0;e=c[g>>2]|0;f=e+154|0;b[f>>1]=1;b[e+168>>1]=1;if((h|0)==(i|0)&(a[h>>0]|0)!=0){b[f>>1]=1e3;i=e+156|0;c[i>>2]=(c[i>>2]|0)*100}if(yk(d)|0){i=c[g>>2]|0;b[i+154>>1]=0;c[i+156>>2]=0}i=(yA(d,c[42230]|0,0,0)|0)&255;a[(c[g>>2]|0)+152>>0]=i;i=(yA(d,c[42218]|0,1,0)|0)&65535;b[(c[g>>2]|0)+170>>1]=i;return}function Df(a){a=a|0;var b=0,d=0;Ef(c[(c[a+16>>2]|0)+192>>2]|0);d=bo(a)|0;while(1){if(!d)break;b=Om(a,d)|0;while(1){if(!b)break;mB(b);b=Qm(a,b)|0}Ff(d);d=co(a,d)|0}Gf(a);return}function Ef(b){b=b|0;var d=0,e=0,f=0,g=0;while(1){if(!b)break;f=b+16|0;g=c[(c[f>>2]|0)+164>>2]|0;Hf(b);d=c[f>>2]|0;if((a[d+156>>0]|0)!=1){b=g;continue}e=c[d+180>>2]|0;if(e){XI(e);d=c[f>>2]|0}e=c[d+172>>2]|0;if(e){XI(e);d=c[f>>2]|0}XI(d);XI(b);b=g}return}function Ff(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+172>>2]|0;if(d){XI(d);b=c[e>>2]|0}d=c[b+180>>2]|0;if(d){XI(d);b=c[e>>2]|0}d=c[b+188>>2]|0;if(d){XI(d);b=c[e>>2]|0}d=c[b+196>>2]|0;if(d){XI(d);b=c[e>>2]|0}d=c[b+204>>2]|0;if(d){XI(d);b=c[e>>2]|0}jw(c[b+104>>2]|0);jw(c[(c[e>>2]|0)+108>>2]|0);b=c[(c[e>>2]|0)+8>>2]|0;if(b|0)gb[c[(c[b+4>>2]|0)+4>>2]&127](a);Oo(a,122241)|0;return}function Gf(a){a=a|0;var d=0,e=0,f=0;d=Hp(a)|0;while(1){if(!d)break;Gf(d);d=Ip(d)|0}if(Mo(a,122277,0,1)|0){f=a+16|0;d=c[f>>2]|0;e=c[d+184>>2]|0;if(e){XI(e);d=c[f>>2]|0}e=c[d+268>>2]|0;if(e){XI(e);d=c[f>>2]|0}e=c[d+216>>2]|0;if(e){XI(e);d=c[f>>2]|0}do if(c[d+196>>2]|0){e=b[d+236>>1]|0;while(1){if((e|0)>(b[d+238>>1]|0))break;XI(c[(c[d+196>>2]|0)+(e<<6)+12>>2]|0);e=e+1|0;d=c[f>>2]|0}e=c[d+196>>2]|0;if((b[d+236>>1]|0)==-1){XI(e+-64|0);break}else{XI(e);break}}while(0);if((ro(a)|0)!=(a|0)){jw(c[(c[f>>2]|0)+12>>2]|0);Oo(a,122277)|0}}return}function Hf(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;d=c[e>>2]|0;b=c[d+176>>2]|0;while(1){a=b+-1|0;if((b|0)<=0)break;b=c[(c[d+172>>2]|0)+(a<<2)>>2]|0;Wg(b);XI(c[b+16>>2]|0);XI(b);b=a;d=c[e>>2]|0}b=c[d+184>>2]|0;while(1){a=b+-1|0;if((b|0)<=0)break;b=c[(c[(c[e>>2]|0)+180>>2]|0)+(a<<2)>>2]|0;Wg(b);XI(c[b+16>>2]|0);XI(b);b=a}return}function If(a){a=a|0;if(ln(a)|0)Jf(a);Wx(a);return}function Jf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+48|0;g=h+32|0;f=h;b=$s(a,-1,8)|0;d=at(a,0,f)|0;_s(a,2,8,f)|0;d=(d|0)==0;e=(b|0)<0;if(e&d)Kf(a);else{if(d)c[f+16>>2]=3;else b=e?8:b;c[f+8>>2]=b;c[f+20>>2]=0;e=ws(a,g,0)|0;b=c[g>>2]|0;do if((b|0)==1){Kf(a);b=0}else{if(c[(c[(c[a+16>>2]|0)+8>>2]|0)+84>>2]|0){Kf(a);b=0;break}c[f+12>>2]=1;d=0;while(1){if((d|0)>=(b|0))break;b=c[e+(d<<2)>>2]|0;Lf(b,a);Kf(b);d=d+1|0;b=c[g>>2]|0}Mf(a);Zs(c[g>>2]|0,e,a,f)|0;Nf(a);Of(c[g>>2]|0,e,a);b=0}while(0);while(1){if((b|0)>=(c[g>>2]|0))break;f=e+(b<<2)|0;XI(c[(c[(c[f>>2]|0)+16>>2]|0)+8>>2]|0);Gf(c[f>>2]|0);po(a,c[f>>2]|0)|0;b=b+1|0}XI(e)}l=h;return}function Kf(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+48|0;k=m+40|0;e=m;i=yA(a,xm(a,0,77944,0)|0,-1,1)|0;DB(a,10);d=xk(a,e)|0;Qf(a,a);Af(a);f=(i|0)==1;g=e+32|0;h=(i|0)==2;i=(i|0)==3;j=e+28|0;e=e+24|0;while(1){jj(a,d);if(f){d=3;break}if(c[g>>2]|0){Zl(0,77950,k)|0;c[e>>2]=0;d=0}th(a,(d|0)!=0&1);if(h){d=7;break}wi(a,d);if(i){d=9;break}n=(c[j>>2]|0)+-1|0;c[j>>2]=n;if(!((n|0)!=0&(c[e>>2]|0)!=0)){d=11;break}}if((d|0)==3)Rf(a,1);else if((d|0)==7)Rf(a,2);else if((d|0)==9)Rf(a,2);else if((d|0)==11){if(b[(c[a+16>>2]|0)+136>>1]&16)Sf(a);dk(a);Wf(a);if((DA(Hm(a,78041)|0)|0)<<24>>24)Zk(a)}l=m;return}function Lf(b,d){b=b|0;d=d|0;var e=0,f=0;Mo(b,122277,280,1)|0;e=qw(96)|0;b=c[b+16>>2]|0;c[b+8>>2]=e;d=c[d+16>>2]|0;f=c[d+8>>2]|0;h[e>>3]=+h[f>>3];h[e+24>>3]=+h[f+24>>3];c[b+144>>2]=c[d+144>>2];a[b+115>>0]=a[d+115>>0]|0;c[b+116>>2]=c[d+116>>2];c[b+248>>2]=c[d+248>>2];c[b+252>>2]=c[d+252>>2];c[b+244>>2]=c[d+244>>2];return}function Mf(a){a=a|0;var b=0,d=0,e=0;b=qw((ln(a)|0)<<4)|0;d=bo(a)|0;while(1){if(!d)break;e=c[d+16>>2]|0;c[e+132>>2]=b;h[b>>3]=+h[e+16>>3]*.013888888888888888;h[b+8>>3]=+h[e+24>>3]*.013888888888888888;b=b+16|0;d=co(a,d)|0}return}function Nf(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[(c[(bo(a)|0)+16>>2]|0)+132>>2]|0;b=e;d=bo(a)|0;while(1){if(!d)break;f=c[d+16>>2]|0;c[f+132>>2]=0;h[f+16>>3]=+h[b>>3]*72.0;h[f+24>>3]=+h[b+8>>3]*72.0;b=b+16|0;d=co(a,d)|0}XI(e);return}function Of(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=0;f=0;while(1){if((e|0)>=(a|0))break;i=(c[(c[(c[b+(e<<2)>>2]|0)+16>>2]|0)+180>>2]|0)+f|0;e=e+1|0;f=i}i=d+16|0;c[(c[i>>2]|0)+180>>2]=f;g=qw((f<<2)+4|0)|0;c[(c[i>>2]|0)+184>>2]=g;g=0;e=1;while(1){if((g|0)>=(a|0))break;h=(c[b+(g<<2)>>2]|0)+16|0;f=1;while(1){d=c[h>>2]|0;if((f|0)>(c[d+180>>2]|0))break;d=vs(c[(c[d+184>>2]|0)+(f<<2)>>2]|0)|0;c[(c[(c[i>>2]|0)+184>>2]|0)+(e<<2)>>2]=d;Pf(c[(c[(c[h>>2]|0)+184>>2]|0)+(f<<2)>>2]|0,d);f=f+1|0;e=e+1|0}g=g+1|0}return}function Pf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;Mo(d,122277,280,1)|0;g=d+16|0;d=(c[g>>2]|0)+16|0;f=b+16|0;b=(c[f>>2]|0)+16|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];c[d+20>>2]=c[b+20>>2];c[d+24>>2]=c[b+24>>2];c[d+28>>2]=c[b+28>>2];b=c[f>>2]|0;d=c[g>>2]|0;a[d+275>>0]=a[b+275>>0]|0;d=d+48|0;b=b+48|0;e=d+64|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(e|0));b=c[(c[f>>2]|0)+180>>2]|0;c[(c[g>>2]|0)+180>>2]=b;d=qw((b<<2)+4|0)|0;c[(c[g>>2]|0)+184>>2]=d;d=1;while(1){e=c[f>>2]|0;if((d|0)>(b|0))break;e=vs(c[(c[e+184>>2]|0)+(d<<2)>>2]|0)|0;c[(c[(c[g>>2]|0)+184>>2]|0)+(d<<2)>>2]=e;Pf(c[(c[(c[f>>2]|0)+184>>2]|0)+(d<<2)>>2]|0,e);d=d+1|0}f=e+12|0;c[(c[g>>2]|0)+12>>2]=c[f>>2];c[f>>2]=0;return}function Qf(a,b){a=a|0;b=b|0;if((ro(a)|0)!=(a|0))Mo(a,122277,280,1)|0;if((a|0)==(b|0))c[(c[(ro(a)|0)+16>>2]|0)+188>>2]=a;a=Hp(a)|0;while(1){if(!a)break;Qf(a,b);a=Ip(a)|0}return}function Rf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+1040|0;k=m+8|0;j=m;e=m+16|0;f=xm(a,1,80018,174177)|0;g=xm(a,1,78084,174177)|0;h=(b|0)>0;d=(b|0)==1;b=bo(a)|0;while(1){if(!b)break;if(h?(i=b+16|0,c[j>>2]=c[(c[i>>2]|0)+232>>2],lL(e,122187,j)|0,Bm(b,f,e)|0,!d):0){c[k>>2]=c[(c[i>>2]|0)+236>>2];lL(e,122187,k)|0;Bm(b,g,e)|0}b=co(a,b)|0}l=m;return}function Sf(a){a=a|0;var b=0,c=0,d=0;c=Gp(a,79522,0)|0;if(c|0){b=bo(c)|0;while(1){if(!b)break;d=co(c,b)|0;ch(a,b);Tf(a,b);Ff(b);oo(a,b)|0;b=d}Kp(a,c)|0}return}function Tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=c[(c[b+16>>2]|0)+232>>2]|0;i=a+16|0;a=c[(c[i>>2]|0)+196>>2]|0;d=c[a+(j<<6)>>2]|0;h=a+(j<<6)+4|0;g=0;e=0;while(1){if((e|0)>=(d|0)){f=7;break}f=c[(c[h>>2]|0)+(e<<2)>>2]|0;e=e+1|0;if((f|0)==(b|0)){f=4;break}else g=f}if((f|0)==4){while(1){if((e|0)>=(d|0))break;f=c[a+(j<<6)+4>>2]|0;c[f+(e+-1<<2)>>2]=c[f+(e<<2)>>2];f=c[(c[i>>2]|0)+196>>2]|0;e=e+1|0;d=c[f+(j<<6)>>2]|0;a=f;f=4}c[a+(j<<6)>>2]=d+-1}else if((f|0)==7?(g|0)!=(b|0):0)ma(78050,78057,248,78067);return}function Uf(a){a=a|0;return c[(c[(ro(a)|0)+16>>2]|0)+188>>2]|0}function Vf(b,c){b=b|0;c=c|0;var d=0;d=a[b+28>>0]|0;if(a[c+28>>0]|0)if(d<<24>>24){d=~~(+h[b>>3]-+h[c>>3]);if(!d)d=~~(+h[b+8>>3]-+h[c+8>>3])}else d=-1;else d=d<<24>>24!=0&1;return d|0}function Wf(a){a=a|0;Xf(a,1);return}function Xf(d,e){d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0.0;Z=l;l=l+656|0;O=Z+592|0;N=Z+552|0;f=Z+544|0;T=Z+96|0;U=Z;Y=Z+632|0;V=d+16|0;X=b[(c[V>>2]|0)+136>>1]&14;P=X&65535;Q=T+16|0;c[Q>>2]=Z+368;R=U+16|0;c[R>>2]=Z+192;do if(X<<16>>16){S=X<<16>>16==4;do if(S){Yf(d);if(!(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1))A=9;else{Zl(0,78090,f)|0;A=9}}else if(X<<16>>16==8){Yf(d);if(!(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1)){GB(d,0);n=0;m=0;k=0;break}else{Zf(d);GB(d,1);n=0;m=0;k=0;break}}else A=9;while(0);if((A|0)==9){Xk(d);if(gy()|0)break;W=qw(96)|0;K=c[(c[V>>2]|0)+248>>2]|0;c[Y+8>>2]=(K|0)/4|0;c[Y+12>>2]=K;k=qw(512)|0;F=Y+4|0;c[F>>2]=0;c[Y>>2]=0;j=c[V>>2]|0;C=b[j+236>>1]|0;D=0;L=0;M=k;E=k;m=k;n=k;o=k;H=0;I=0;a:while(1){if((C|0)>(b[j+238>>1]|0))break;p=c[j+196>>2]|0;i=c[p+(C<<6)>>2]|0;G=i+D|0;g=c[p+(C<<6)+4>>2]|0;f=c[g>>2]|0;if(!f)f=H;else{_=+(H|0);f=c[f+16>>2]|0;y=+h[f+16>>3]-+h[f+88>>3];f=~~(y>_?_:y)}if((i|0)!=0?(J=c[g+(i+-1<<2)>>2]|0,(J|0)!=0):0){y=+(I|0);g=c[J+16>>2]|0;_=+h[g+96>>3]+ +h[g+16>>3];g=~~(_<y?y:_)}else g=I;B=f+-16|0;z=g+16|0;x=0;t=L;r=M;q=j;u=E;v=m;g=k;f=p;while(1){if((x|0)>=(i|0))break;k=c[(c[f+(C<<6)+4>>2]|0)+(x<<2)>>2]|0;w=k+16|0;f=c[w>>2]|0;i=c[f+112>>2]|0;if(i){i=i+16|0;j=c[(c[i>>2]|0)+96>>2]|0;if(!j){A=21;break a}s=j+56|0;f=f+16|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];a[(c[(c[i>>2]|0)+96>>2]|0)+81>>0]=1;f=c[w>>2]|0}if((a[f+156>>0]|0)!=0?($a[c[17228>>2]&31](k)|0)<<24>>24==0:0){q=t;f=r;j=u;k=v;i=o}else{s=0;q=t;j=u;k=v;A=25}b:do if((A|0)==25){while(1){A=0;p=c[w>>2]|0;i=c[(c[p+180>>2]|0)+(s<<2)>>2]|0;if(!i)break;switch(a[(c[i+16>>2]|0)+112>>0]|0){case 6:case 4:{f=q;i=r;break}default:{_f(i,1,16,64);f=q+1|0;c[r+(q<<2)>>2]=i;if(!(f&127)){g=tw(g,(q<<2)+516|0)|0;i=g;j=g;k=g;n=g;o=g}else i=r}}s=s+1|0;q=f;r=i;A=25}f=c[p+188>>2]|0;c:do if(!f)i=o;else{s=0;i=o;while(1){f=c[f+(s<<2)>>2]|0;if(!f)break c;_f(f,2,0,128);o=q+1|0;c[r+(q<<2)>>2]=f;if(!(o&127)){g=tw(i,(q<<2)+516|0)|0;f=g;j=g;k=g;n=g;i=g}else f=r;p=c[w>>2]|0;s=s+1|0;q=o;r=f;f=c[p+188>>2]|0}}while(0);f=c[p+204>>2]|0;if(!f)f=r;else{if(!(a[p+156>>0]|0)){v=p+96|0;_=+h[v>>3];s=p+240|0;h[v>>3]=+h[s>>3];h[s>>3]=_;s=0;p=r}else{s=0;p=r}while(1){f=c[f+(s<<2)>>2]|0;if(!f){f=p;break b}_f(f,0,0,128);o=q+1|0;c[p+(q<<2)>>2]=f;if(!(o&127)){g=tw(n,(q<<2)+516|0)|0;f=g;j=g;k=g;n=g;i=g}else f=p;s=s+1|0;q=o;p=f;f=c[(c[w>>2]|0)+204>>2]|0}}}while(0);u=c[V>>2]|0;w=c[u+196>>2]|0;x=x+1|0;t=q;r=f;q=u;u=j;v=k;o=i;i=c[w+(C<<6)>>2]|0;f=w}C=C+1|0;D=G;L=t;M=r;E=u;j=q;m=v;k=g;H=B;I=z}if((A|0)==21)ma(78158,78171,313,78184);c[Y>>2]=H;c[F>>2]=I;nL(E,L,4,10);c[W+84>>2]=qw((D<<5)+11520|0)|0;c[Y+16>>2]=qw(C<<5)|0;d:do if(X<<16>>16==2){f=(c[V>>2]|0)+192|0;while(1){g=c[f>>2]|0;if(!g)break d;i=g+16|0;f=c[i>>2]|0;if((a[f+156>>0]|0)==1?(c[f+104>>2]|0)!=0:0){ag(g);f=c[i>>2]|0}f=f+164|0}}while(0);z=U+48|0;A=U+-48|0;B=T+48|0;C=T+-48|0;y=+(K|0);x=0;e:while(1){if((x|0)>=(L|0))break;v=M+(x<<2)|0;r=c[v>>2]|0;s=bg(r)|0;t=r+16|0;g=c[t>>2]|0;if(!(a[g+44>>0]|0)){g=(a[g+84>>0]|0)==0?s:r;f=g;g=c[g+16>>2]|0}else f=r;i=f+16|0;if(c[g+164>>2]&32){g=c[Q>>2]|0;PN(g|0,c[i>>2]|0,176)|0;n=T;o=f;p=n+48|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));c[Q>>2]=g;o=c[f>>2]&3;n=c[T>>2]&3;c[((n|0)==3?T:B)+40>>2]=c[((o|0)==2?f:f+-48|0)+40>>2];c[((n|0)==2?T:C)+40>>2]=c[((o|0)==3?f:f+48|0)+40>>2];n=g+16|0;o=(c[i>>2]|0)+56|0;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=g+56|0;o=(c[i>>2]|0)+16|0;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));a[g+112>>0]=1;c[g+116>>2]=f;f=T}q=f+16|0;w=1;f=x;while(1){u=f+1|0;if((u|0)>=(L|0))break;j=M+(u<<2)|0;f=c[j>>2]|0;if((s|0)!=(bg(f)|0))break;if(!(a[(c[t>>2]|0)+113>>0]|0)){k=f+16|0;g=c[k>>2]|0;if(!(a[g+44>>0]|0)){g=(a[g+84>>0]|0)==0?s:f;f=g;g=c[g+16>>2]|0}i=f+16|0;if(c[g+164>>2]&32){g=c[R>>2]|0;PN(g|0,c[i>>2]|0,176)|0;n=U;o=f;p=n+48|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));c[R>>2]=g;o=c[f>>2]&3;n=c[U>>2]&3;c[((n|0)==3?U:z)+40>>2]=c[((o|0)==2?f:f+-48|0)+40>>2];c[((n|0)==2?U:A)+40>>2]=c[((o|0)==3?f:f+48|0)+40>>2];n=g+16|0;o=(c[i>>2]|0)+56|0;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=g+56|0;o=(c[i>>2]|0)+16|0;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));a[g+112>>0]=1;c[g+116>>2]=f}i=c[q>>2]|0;f=g+16|0;n=N;o=i+16|0;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=O;o=f;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));if(Vf(N,O)|0)break;f=g+56|0;n=N;o=i+56|0;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=O;o=f;p=n+40|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));if(Vf(N,O)|0)break;K=c[t>>2]|0;if((c[K+164>>2]&15|0)==2?(c[K+96>>2]|0)!=(c[(c[k>>2]|0)+96>>2]|0):0)break;if(c[(c[(c[j>>2]|0)+16>>2]|0)+164>>2]&64|0)break}w=w+1|0;f=u}if(S){if((w|0)==1)f=O;else f=qw(w<<2)|0;c[f>>2]=bg(c[v>>2]|0)|0;g=1;while(1){if((g|0)>=(w|0))break;c[f+(g<<2)>>2]=c[v+(g<<2)>>2];g=g+1|0}py(d,f,w,P,17224);if((w|0)>1)XI(f);x=u;continue}f=c[r>>2]&3;K=c[((f|0)==3?r:r+48|0)+40>>2]|0;f=c[((f|0)==2?r:r+-48|0)+40>>2]|0;g=c[K+16>>2]|0;i=c[g+232>>2]|0;if((K|0)!=(f|0))if((i|0)==(c[(c[f+16>>2]|0)+232>>2]|0)){cg(d,Y,W,M,x,w,P);x=u;continue}else{dg(d,Y,W,M,x,w,P);x=u;continue}f=c[V>>2]|0;do if((i|0)==(b[f+238>>1]|0))if((i|0)>0){f=~~(+h[(c[(c[c[(c[f+196>>2]|0)+(i+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[g+24>>3]);break}else{f=~~+h[g+80>>3];break}else if((i|0)==(b[f+236>>1]|0)){f=~~(+h[g+24>>3]-+h[(c[(c[c[(c[f+196>>2]|0)+(i+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);break}else{f=c[f+196>>2]|0;_=+h[g+24>>3];K=~~(+h[(c[(c[c[f+(i+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-_);f=~~(_-+h[(c[(c[c[f+(i+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);f=(K|0)<(f|0)?K:f;break}while(0);Mz(W,M,x,w,y,+((f|0)/2|0|0),17224);f=0;while(1){if((f|0)>=(w|0)){x=u;continue e}g=c[(c[(c[M+(f+x<<2)>>2]|0)+16>>2]|0)+96>>2]|0;if(g|0)YA(d,g);f=f+1|0}}f=(c[V>>2]|0)+192|0;while(1){g=c[f>>2]|0;if(!g)break;i=g+16|0;f=c[i>>2]|0;if((a[f+156>>0]|0)==1?(c[f+104>>2]|0)!=0:0){ag(g);YA(d,c[(c[i>>2]|0)+104>>2]|0);f=c[i>>2]|0}f=f+164|0}if(!e){n=W;k=W}else{eg(d);n=W;k=W}}f:do if((c[42240]|0)!=0|(c[42241]|0)!=0?(c[42246]|0)!=0|(c[42245]|0)!=0:0){j=bo(d)|0;while(1){if(!j)break f;g:do if(c[42240]|0){f=Rm(d,j)|0;while(1){if(!f)break g;g=f+-48|0;i=(c[f>>2]&3|0)==2?f:g;if(c[(c[i+16>>2]|0)+100>>2]|0){Uz(i,1)|0;YA(d,c[(c[((c[f>>2]&3|0)==2?f:g)+16>>2]|0)+100>>2]|0)}f=Sm(d,f)|0}}while(0);h:do if(c[42241]|0){f=Om(d,j)|0;while(1){if(!f)break h;g=f+16|0;if(c[(c[g>>2]|0)+104>>2]|0?Uz(f,0)|0:0)YA(d,c[(c[g>>2]|0)+104>>2]|0);f=Qm(d,f)|0}}while(0);j=co(d,j)|0}}while(0);switch(X&15){case 4:case 8:break;default:{XI(m);XI(c[n+84>>2]|0);XI(k);XI(c[Y+16>>2]|0);hy()}}c[42181]=1;c[42182]=1}while(0);l=Z;return}function Yf(a){a=a|0;var b=0,d=0,e=0.0,f=0;b=bo(a)|0;while(1){if(!b)break;d=c[b+16>>2]|0;if(c[d+204>>2]|0){f=d+96|0;e=+h[f>>3];d=d+240|0;h[f>>3]=+h[d>>3];h[d>>3]=e}b=co(a,b)|0}return}function Zf(b){b=b|0;var d=0,e=0,f=0,g=0;d=(c[b+16>>2]|0)+192|0;a:while(1){f=c[d>>2]|0;if(!f){d=12;break}g=f+16|0;d=c[g>>2]|0;do if((a[d+156>>0]|0)==1){e=c[d+112>>2]|0;if(!e){e=c[d+104>>2]|0;if(!e)break;ag(f);d=e}else{e=c[(c[e+16>>2]|0)+96>>2]|0;if(!e){d=6;break a}f=e+56|0;d=d+16|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];a[e+81>>0]=1;d=e}YA(b,d);d=c[g>>2]|0}while(0);d=d+164|0}if((d|0)==6)ma(78358,78171,234,78377);else if((d|0)==12)return}function _f(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;do if(!d){g=c[b>>2]&3;d=c[((g|0)==3?b:b+48|0)+40>>2]|0;g=c[((g|0)==2?b:b+-48|0)+40>>2]|0;if((d|0)!=(g|0)){d=(c[(c[d+16>>2]|0)+232>>2]|0)==(c[(c[g+16>>2]|0)+232>>2]|0)?2:1;break}d=c[b+16>>2]|0;if(!(a[d+44>>0]|0))d=(a[d+84>>0]|0)==0?8:4;else d=4}while(0);a:do if(!e)switch(d|0){case 1:{e=c[b>>2]&3;e=(c[(c[(c[((e|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)<(c[(c[(c[((e|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)?16:32;break a}case 2:{e=c[b>>2]&3;e=(c[(c[(c[((e|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[((e|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)?16:32;break a}default:{e=16;break a}}while(0);c[(c[b+16>>2]|0)+164>>2]=d|f|e;return}function $f(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=l;l=l+624|0;z=D+584|0;y=D+544|0;s=D+368|0;e=D+192|0;t=D+96|0;v=D;u=t+16|0;c[u>>2]=s;w=v+16|0;c[w>>2]=e;C=c[b>>2]|0;B=c[d>>2]|0;x=C+16|0;q=c[x>>2]|0;d=c[q+164>>2]|0;f=d&15;A=B+16|0;b=c[A>>2]|0;g=c[b+164>>2]&15;do if((g|0)==(f|0)){p=bg(C)|0;r=bg(B)|0;n=c[p>>2]|0;g=n&3;f=c[(c[((g|0)==3?p:p+48|0)+40>>2]|0)+16>>2]|0;g=c[(c[((g|0)==2?p:p+-48|0)+40>>2]|0)+16>>2]|0;i=(c[f+232>>2]|0)-(c[g+232>>2]|0)|0;o=c[r>>2]|0;m=o&3;k=c[(c[((m|0)==3?r:r+48|0)+40>>2]|0)+16>>2]|0;m=c[(c[((m|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0;j=(c[k+232>>2]|0)-(c[m+232>>2]|0)|0;i=(i|0)>-1?i:0-i|0;j=(j|0)>-1?j:0-j|0;if((i|0)!=(j|0)){b=i-j|0;break}g=~~(+h[f+16>>3]-+h[g+16>>3]);g=(g|0)>-1?g:0-g|0;f=~~(+h[k+16>>3]-+h[m+16>>3]);f=(f|0)>-1?f:0-f|0;if((g|0)!=(f|0)){b=g-f|0;break}g=n>>>4;f=o>>>4;if((g|0)!=(f|0)){b=g-f|0;break}if(!(a[q+44>>0]|0)){d=(a[q+84>>0]|0)==0?p:C;g=d;d=c[(c[d+16>>2]|0)+164>>2]|0}else g=C;f=g+16|0;if(d&32){PN(s|0,c[f>>2]|0,176)|0;i=t;j=g;k=i+48|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));c[u>>2]=s;j=c[g>>2]&3;i=c[t>>2]&3;c[((i|0)==3?t:t+48|0)+40>>2]=c[((j|0)==2?g:g+-48|0)+40>>2];c[((i|0)==2?t:t+-48|0)+40>>2]=c[((j|0)==3?g:g+48|0)+40>>2];i=s+16|0;j=(c[f>>2]|0)+56|0;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));i=s+56|0;j=(c[f>>2]|0)+16|0;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));a[s+112>>0]=1;c[s+116>>2]=g;g=t;b=c[A>>2]|0}if(!(a[b+44>>0]|0)){b=(a[b+84>>0]|0)==0?r:B;f=b;b=c[b+16>>2]|0}else f=B;d=f+16|0;if(!(c[b+164>>2]&32))e=b;else{PN(e|0,c[d>>2]|0,176)|0;i=v;j=f;k=i+48|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));c[w>>2]=e;j=c[f>>2]&3;i=c[v>>2]&3;c[((i|0)==3?v:v+48|0)+40>>2]=c[((j|0)==2?f:f+-48|0)+40>>2];c[((i|0)==2?v:v+-48|0)+40>>2]=c[((j|0)==3?f:f+48|0)+40>>2];i=e+16|0;j=(c[d>>2]|0)+56|0;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));i=e+56|0;j=(c[d>>2]|0)+16|0;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));a[e+112>>0]=1;c[e+116>>2]=f}d=c[g+16>>2]|0;b=e+16|0;i=y;j=d+16|0;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));i=z;j=b;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));b=Vf(y,z)|0;if(!b){b=e+56|0;i=y;j=d+56|0;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));i=z;j=b;k=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));b=Vf(y,z)|0;if(!b){d=c[(c[x>>2]|0)+164>>2]&192;b=c[(c[A>>2]|0)+164>>2]&192;if((d|0)==(b|0)){b=((c[C>>2]|0)>>>4)-((c[B>>2]|0)>>>4)|0;break}else{b=d-b|0;break}}}}else b=g-f|0;while(0);l=D;return b|0}function ag(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;f=b+16|0;d=c[f>>2]|0;if(c[d+176>>2]|0){d=c[d+180>>2]|0;while(1){d=(c[d>>2]|0)+16|0;e=c[d>>2]|0;if(!(a[e+112>>0]|0))break;else d=e+116|0}e=c[e+96>>2]|0;g=+h[e+24>>3];i=+h[e+32>>3];e=(c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&1|0)!=0;b=c[f>>2]|0;f=c[(c[d>>2]|0)+96>>2]|0;h[f+56>>3]=(e?i:g)*.5+ +h[b+16>>3];h[f+64>>3]=+h[b+24>>3];a[f+81>>0]=1}return}function bg(a){a=a|0;var b=0,d=0;while(1){b=c[a+16>>2]|0;d=c[b+172>>2]|0;if(!d)break;else a=d}while(1){b=c[b+116>>2]|0;if(!b)break;a=b;b=c[b+16>>2]|0}return a|0}function cg(b,d,e,f,g,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0;B=l;l=l+1712|0;x=B+1664|0;s=B+1488|0;t=B+1392|0;A=B+1696|0;y=B+696|0;z=B;p=t+16|0;c[p>>2]=s;q=c[f+(g<<2)>>2]|0;r=q+16|0;k=c[r>>2]|0;u=a[k+113>>0]|0;if(c[k+164>>2]&32){PN(s|0,k|0,176)|0;k=t;n=q;o=k+48|0;do{c[k>>2]=c[n>>2];k=k+4|0;n=n+4|0}while((k|0)<(o|0));c[p>>2]=s;k=c[t>>2]&3;c[((k|0)==3?t:t+48|0)+40>>2]=c[((c[q>>2]&3|0)==2?q:q+-48|0)+40>>2];c[((k|0)==2?t:t+-48|0)+40>>2]=c[((c[q>>2]&3|0)==3?q:q+48|0)+40>>2];k=s+16|0;n=(c[r>>2]|0)+56|0;o=k+40|0;do{c[k>>2]=c[n>>2];k=k+4|0;n=n+4|0}while((k|0)<(o|0));k=s+56|0;n=(c[r>>2]|0)+16|0;o=k+40|0;do{c[k>>2]=c[n>>2];k=k+4|0;n=n+4|0}while((k|0)<(o|0));a[s+112>>0]=1;c[s+116>>2]=q;q=t}k=1;while(1){if((k|0)>=(i|0)){w=6;break}if(!(a[(c[(c[f+(k+g<<2)>>2]|0)+16>>2]|0)+113>>0]|0))k=k+1|0;else{w=7;break}}a:do if((w|0)==6)if(!(u<<24>>24)){k=c[q+16>>2]|0;if(c[k+96>>2]|0){Cg(b,d,e,q,j);break}if((j|0)==2){A=c[q>>2]&3;Dg(c[((A|0)==3?q:q+48|0)+40>>2]|0,c[((A|0)==2?q:q+-48|0)+40>>2]|0,f,g,i,2);break}t=a[k+49>>0]|0;u=a[k+89>>0]|0;if(!(t<<24>>24==1&u<<24>>24!=4)?!(t<<24>>24!=4&u<<24>>24==1):0){p=c[q>>2]&3;o=c[((p|0)==3?q:q+48|0)+40>>2]|0;p=c[((p|0)==2?q:q+-48|0)+40>>2]|0;k=c[o+16>>2]|0;n=c[k+232>>2]|0;if((n|0)>0){u=c[(c[b+16>>2]|0)+196>>2]|0;t=n+~(a[(c[(c[b+60>>2]|0)+16>>2]|0)+113>>0]&1)|0;m=+h[(c[(c[c[u+(t<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[u+(t<<6)+16>>3]-+h[k+24>>3]-+h[u+(n<<6)+24>>3]}else m=+(c[(c[b+16>>2]|0)+252>>2]|0);C=+(i+1|0);v=+(c[d+12>>2]|0)/C;m=m/C;Fg(b,d,e,o,q,y,1);Fg(b,d,e,p,q,z,0);s=y+52|0;t=z+52|0;p=(j|0)==10;q=e+80|0;k=0;while(1){if((k|0)>=(i|0))break a;r=c[f+(k+g<<2)>>2]|0;o=c[s>>2]|0;n=o+-1|0;G=+h[y+56+(n<<5)>>3];F=+h[y+56+(n<<5)+16>>3];E=+h[y+56+(n<<5)+24>>3];h[16878]=G;h[16879]=E;k=k+1|0;C=+(k|0);D=v*C;h[16880]=F+D;C=E+m*C;h[16881]=C;h[16882]=G;h[16883]=C;n=(c[t>>2]|0)+-1|0;G=+h[z+56+(n<<5)+16>>3];h[16884]=G;h[16885]=C+m;E=+h[z+56+(n<<5)>>3];F=+h[z+56+(n<<5)+24>>3];h[16888]=G;h[16887]=F;h[16886]=E-D;h[16889]=C;n=0;while(1){if((n|0)>=(o|0)){n=0;break}o=y+56+(n<<5)|0;c[x>>2]=c[o>>2];c[x+4>>2]=c[o+4>>2];c[x+8>>2]=c[o+8>>2];c[x+12>>2]=c[o+12>>2];c[x+16>>2]=c[o+16>>2];c[x+20>>2]=c[o+20>>2];c[x+24>>2]=c[o+24>>2];c[x+28>>2]=c[o+28>>2];Gz(e,x);n=n+1|0;o=c[s>>2]|0}while(1){if((n|0)==3)break;j=135024+(n<<5)|0;c[x>>2]=c[j>>2];c[x+4>>2]=c[j+4>>2];c[x+8>>2]=c[j+8>>2];c[x+12>>2]=c[j+12>>2];c[x+16>>2]=c[j+16>>2];c[x+20>>2]=c[j+20>>2];c[x+24>>2]=c[j+24>>2];c[x+28>>2]=c[j+28>>2];Gz(e,x);n=n+1|0}o=c[t>>2]|0;while(1){n=o+-1|0;if((o|0)<=0)break;o=z+56+(n<<5)|0;c[x>>2]=c[o>>2];c[x+4>>2]=c[o+4>>2];c[x+8>>2]=c[o+8>>2];c[x+12>>2]=c[o+12>>2];c[x+16>>2]=c[o+16>>2];c[x+20>>2]=c[o+20>>2];c[x+24>>2]=c[o+24>>2];c[x+28>>2]=c[o+28>>2];Gz(e,x);o=n}if(p)n=iy(e,A)|0;else n=oy(e,A)|0;o=c[A>>2]|0;if(!o)break a;Ez(r,c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,n,o,17224);c[q>>2]=0}}Eg(b,d,e,f,g,i,q,(j|0)==10&1)}else w=7;while(0);if((w|0)==7)Bg(b,f,g,i,q,j);l=B;return}function dg(b,d,e,f,g,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;ba=l;l=l+2576|0;S=ba+2528|0;_=ba+2568|0;k=ba+2352|0;n=ba+2176|0;t=ba+1904|0;Y=ba+1808|0;$=ba+1712|0;T=ba+1016|0;U=ba+320|0;V=ba+256|0;X=ba+2564|0;Z=ba+2560|0;z=ba+288|0;A=ba+224|0;L=ba+192|0;M=ba+160|0;N=ba+128|0;P=ba+96|0;Q=ba+64|0;R=ba+32|0;W=ba;s=t+16|0;c[s>>2]=k;o=Y+16|0;c[o>>2]=n;aa=$+16|0;c[aa>>2]=ba+2e3;if(!(c[41920]|0)){c[41920]=rw(32e3)|0;c[41921]=rw(32e3)|0;c[41922]=2e3;c[41923]=2e3}u=c[f+(g<<2)>>2]|0;K=c[u>>2]&3;p=u+48|0;q=u+-48|0;K=(c[(c[(c[((K|0)==3?u:p)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((K|0)==2?u:q)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;r=u+16|0;if((((K|0)>-1?K:0-K|0)|0)<=1){k=c[r>>2]|0;if(!(c[k+164>>2]&32)){K=u;n=0}else{n=c[s>>2]|0;PN(n|0,k|0,176)|0;w=t;x=u;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[s>>2]=n;w=c[t>>2]&3;c[((w|0)==3?t:t+48|0)+40>>2]=c[((c[u>>2]&3|0)==2?u:q)+40>>2];c[((w|0)==2?t:t+-48|0)+40>>2]=c[((c[u>>2]&3|0)==3?u:p)+40>>2];w=n+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));k=c[s>>2]|0;w=k+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[k+112>>0]=1;n=0;J=12}}else{PN(k|0,c[r>>2]|0,176)|0;w=t;x=u;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=t+48|0;x=p;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[s>>2]=k;k=c[r>>2]|0;if(!(c[k+164>>2]&32)){PN(n|0,k|0,176)|0;w=Y;x=u;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[o>>2]=n;o=c[t>>2]|0;c[((o&3|0)==3?t:t+48|0)+40>>2]=c[((c[u>>2]&3|0)==3?u:p)+40>>2];w=Y+48|0;x=p;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0))}else{n=c[o>>2]|0;PN(n|0,k|0,176)|0;w=Y;x=u;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[o>>2]=n;w=c[Y>>2]&3;c[((w|0)==3?Y:Y+48|0)+40>>2]=c[((c[u>>2]&3|0)==2?u:q)+40>>2];c[((w|0)==2?Y:Y+-48|0)+40>>2]=c[((c[u>>2]&3|0)==3?u:p)+40>>2];w=n+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));k=c[o>>2]|0;w=k+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[k+112>>0]=1;c[k+116>>2]=u;o=c[t>>2]|0;c[((o&3|0)==3?t:t+48|0)+40>>2]=c[((c[u>>2]&3|0)==2?u:q)+40>>2];w=(c[s>>2]|0)+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0))}k=bg(u)|0;while(1){n=c[(c[k+16>>2]|0)+172>>2]|0;if(!n)break;else k=n}c[((o&3|0)==2?t:t+-48|0)+40>>2]=c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2];k=c[s>>2]|0;a[k+84>>0]=0;a[k+112>>0]=1;n=k+56|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;n=1;J=12}if((J|0)==12){c[k+116>>2]=u;K=t}H=(j|0)==2;if(H?(v=hg(b,K,c[41920]|0,_)|0,c[Z>>2]=v,(v|0)!=0):0)J=63;else J=15;a:do if((J|0)==15){G=(j|0)==10;c[Z>>2]=0;o=c[K>>2]&3;k=c[((o|0)==3?K:K+48|0)+40>>2]|0;o=c[((o|0)==2?K:K+-48|0)+40>>2]|0;c[_>>2]=o;ig(z,b,d,k,0,K);c[T>>2]=c[z>>2];c[T+4>>2]=c[z+4>>2];c[T+8>>2]=c[z+8>>2];c[T+12>>2]=c[z+12>>2];c[T+16>>2]=c[z+16>>2];c[T+20>>2]=c[z+20>>2];c[T+24>>2]=c[z+24>>2];c[T+28>>2]=c[z+28>>2];c[V>>2]=c[z>>2];c[V+4>>2]=c[z+4>>2];c[V+8>>2]=c[z+8>>2];c[V+12>>2]=c[z+12>>2];c[V+16>>2]=c[z+16>>2];c[V+20>>2]=c[z+20>>2];Hz(e,K,1,T,jg(k)|0);B=T+52|0;I=(c[B>>2]|0)+-1|0;D=V+24|0;h[D>>3]=+h[T+56+(I<<5)+24>>3];E=V+8|0;h[E>>3]=+h[T+56+(I<<5)+8>>3];I=c[k+16>>2]|0;F=b+16|0;m=+h[I+24>>3]-+h[(c[(c[F>>2]|0)+196>>2]|0)+(c[I+232>>2]<<6)+16>>3];c[S>>2]=c[V>>2];c[S+4>>2]=c[V+4>>2];c[S+8>>2]=c[V+8>>2];c[S+12>>2]=c[V+12>>2];c[S+16>>2]=c[V+16>>2];c[S+20>>2]=c[V+20>>2];c[S+24>>2]=c[V+24>>2];c[S+28>>2]=c[V+28>>2];kg(A,S,1,m);c[V>>2]=c[A>>2];c[V+4>>2]=c[A+4>>2];c[V+8>>2]=c[A+8>>2];c[V+12>>2]=c[A+12>>2];c[V+16>>2]=c[A+16>>2];c[V+20>>2]=c[A+20>>2];c[V+24>>2]=c[A+24>>2];c[V+28>>2]=c[A+28>>2];A=V+16|0;if(+h[V>>3]<+h[A>>3]?+h[E>>3]<+h[D>>3]:0){I=c[B>>2]|0;c[B>>2]=I+1;I=T+56+(I<<5)|0;c[I>>2]=c[V>>2];c[I+4>>2]=c[V+4>>2];c[I+8>>2]=c[V+8>>2];c[I+12>>2]=c[V+12>>2];c[I+16>>2]=c[V+16>>2];c[I+20>>2]=c[V+20>>2];c[I+24>>2]=c[V+24>>2];c[I+28>>2]=c[V+28>>2]}w=b+60|0;C=U+52|0;x=e+56|0;y=e+69|0;j=e+16|0;z=e+29|0;I=K;q=0;r=-1;b:while(1){s=k;t=0;k=0;u=I;while(1){p=o;v=o;if((a[(c[p+16>>2]|0)+156>>0]|0)!=1)break b;if(($a[c[17228>>2]&31](p)|0)<<24>>24)break b;o=t|1;ca=135024+(t<<5)|0;lg(L,d,b,c[(c[s+16>>2]|0)+232>>2]|0);c[ca>>2]=c[L>>2];c[ca+4>>2]=c[L+4>>2];c[ca+8>>2]=c[L+8>>2];c[ca+12>>2]=c[L+12>>2];c[ca+16>>2]=c[L+16>>2];c[ca+20>>2]=c[L+20>>2];c[ca+24>>2]=c[L+24>>2];c[ca+28>>2]=c[L+28>>2];if(!k){q=mg(p)|0;k=(q|0)<((a[(c[(c[w>>2]|0)+16>>2]|0)+113>>0]<<1&2)+3&255|0);q=k?q:q+-2|0;r=k?r:1;k=(k^1)&1}if(!((k|0)==0|(r|0)>0))break;ca=135024+(o<<5)|0;ig(M,b,d,p,u,c[c[(c[p+16>>2]|0)+180>>2]>>2]|0);c[ca>>2]=c[M>>2];c[ca+4>>2]=c[M+4>>2];c[ca+8>>2]=c[M+8>>2];c[ca+12>>2]=c[M+12>>2];c[ca+16>>2]=c[M+16>>2];c[ca+20>>2]=c[M+20>>2];c[ca+24>>2]=c[M+24>>2];c[ca+28>>2]=c[M+28>>2];ca=c[c[(c[v+16>>2]|0)+180>>2]>>2]|0;o=c[ca>>2]&3;s=c[((o|0)==3?ca:ca+48|0)+40>>2]|0;o=c[((o|0)==2?ca:ca+-48|0)+40>>2]|0;c[_>>2]=o;t=t+2|0;r=r+-1|0;u=ca}ig(N,b,d,p,u,c[c[(c[p+16>>2]|0)+180>>2]>>2]|0);c[U>>2]=c[N>>2];c[U+4>>2]=c[N+4>>2];c[U+8>>2]=c[N+8>>2];c[U+12>>2]=c[N+12>>2];c[U+16>>2]=c[N+16>>2];c[U+20>>2]=c[N+20>>2];c[U+24>>2]=c[N+24>>2];c[U+28>>2]=c[N+28>>2];Kz(e,u,1,U,jg(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)|0);ca=U+56+((c[C>>2]|0)+-1<<5)|0;t=c[v+16>>2]|0;m=+h[(c[(c[F>>2]|0)+196>>2]|0)+(c[t+232>>2]<<6)+24>>3]+ +h[t+24>>3];c[S>>2]=c[ca>>2];c[S+4>>2]=c[ca+4>>2];c[S+8>>2]=c[ca+8>>2];c[S+12>>2]=c[ca+12>>2];c[S+16>>2]=c[ca+16>>2];c[S+20>>2]=c[ca+20>>2];c[S+24>>2]=c[ca+24>>2];c[S+28>>2]=c[ca+28>>2];kg(V,S,4,m);if(+h[V>>3]<+h[A>>3]?+h[E>>3]<+h[D>>3]:0){ca=c[C>>2]|0;c[C>>2]=ca+1;ca=U+56+(ca<<5)|0;c[ca>>2]=c[V>>2];c[ca+4>>2]=c[V+4>>2];c[ca+8>>2]=c[V+8>>2];c[ca+12>>2]=c[V+12>>2];c[ca+16>>2]=c[V+16>>2];c[ca+20>>2]=c[V+20>>2];c[ca+24>>2]=c[V+24>>2];c[ca+28>>2]=c[V+28>>2]}h[x>>3]=1.5707963267948966;a[y>>0]=1;ng(e,I,u,T,U,o);if(!G){k=oy(e,X)|0;o=c[X>>2]|0;if(H&(o|0)>4){ca=k+16|0;c[ca>>2]=c[k>>2];c[ca+4>>2]=c[k+4>>2];c[ca+8>>2]=c[k+8>>2];c[ca+12>>2]=c[k+12>>2];ca=k+32|0;o=k+(o+-1<<4)|0;c[ca>>2]=c[o>>2];c[ca+4>>2]=c[o+4>>2];c[ca+8>>2]=c[o+8>>2];c[ca+12>>2]=c[o+12>>2];QN(k+48|0,o|0,16)|0;c[X>>2]=4;o=4}else J=33}else{k=iy(e,X)|0;o=c[X>>2]|0;J=33}if((J|0)==33){J=0;if(!o)break a}u=c[Z>>2]|0;p=u+o|0;if((p|0)>(c[41922]|0)){c[41922]=p<<1;t=tw(c[41920]|0,p<<5)|0;c[41920]=t;o=c[X>>2]|0}else t=c[41920]|0;s=0;p=u;while(1){if((s|0)>=(o|0))break;ca=t+(p<<4)|0;u=k+(s<<4)|0;c[ca>>2]=c[u>>2];c[ca+4>>2]=c[u+4>>2];c[ca+8>>2]=c[u+8>>2];c[ca+12>>2]=c[u+12>>2];s=s+1|0;p=p+1|0}c[Z>>2]=p;o=og(c[c[(c[v+16>>2]|0)+180>>2]>>2]|0,q,t,Z)|0;pg(I,e);p=c[o>>2]&3;k=c[((p|0)==3?o:o+48|0)+40>>2]|0;p=c[((p|0)==2?o:o+-48|0)+40>>2]|0;c[_>>2]=p;I=k+16|0;ig(P,b,d,k,c[c[(c[I>>2]|0)+172>>2]>>2]|0,o);c[T>>2]=c[P>>2];c[T+4>>2]=c[P+4>>2];c[T+8>>2]=c[P+8>>2];c[T+12>>2]=c[P+12>>2];c[T+16>>2]=c[P+16>>2];c[T+20>>2]=c[P+20>>2];c[T+24>>2]=c[P+24>>2];c[T+28>>2]=c[P+28>>2];Hz(e,o,1,T,jg(k)|0);ca=T+56+((c[B>>2]|0)+-1<<5)|0;I=c[I>>2]|0;m=+h[I+24>>3]-+h[(c[(c[F>>2]|0)+196>>2]|0)+(c[I+232>>2]<<6)+16>>3];c[S>>2]=c[ca>>2];c[S+4>>2]=c[ca+4>>2];c[S+8>>2]=c[ca+8>>2];c[S+12>>2]=c[ca+12>>2];c[S+16>>2]=c[ca+16>>2];c[S+20>>2]=c[ca+20>>2];c[S+24>>2]=c[ca+24>>2];c[S+28>>2]=c[ca+28>>2];kg(V,S,1,m);if(+h[V>>3]<+h[A>>3]?+h[E>>3]<+h[D>>3]:0){ca=c[B>>2]|0;c[B>>2]=ca+1;ca=T+56+(ca<<5)|0;c[ca>>2]=c[V>>2];c[ca+4>>2]=c[V+4>>2];c[ca+8>>2]=c[V+8>>2];c[ca+12>>2]=c[V+12>>2];c[ca+16>>2]=c[V+16>>2];c[ca+20>>2]=c[V+20>>2];c[ca+24>>2]=c[V+24>>2];c[ca+28>>2]=c[V+28>>2]}h[j>>3]=-1.5707963267948966;a[z>>0]=1;I=o;o=p}k=t|1;r=135024+(t<<5)|0;lg(Q,d,b,c[(c[s+16>>2]|0)+232>>2]|0);c[r>>2]=c[Q>>2];c[r+4>>2]=c[Q+4>>2];c[r+8>>2]=c[Q+8>>2];c[r+12>>2]=c[Q+12>>2];c[r+16>>2]=c[Q+16>>2];c[r+20>>2]=c[Q+20>>2];c[r+24>>2]=c[Q+24>>2];c[r+28>>2]=c[Q+28>>2];ig(R,b,d,p,u,0);c[U>>2]=c[R>>2];c[U+4>>2]=c[R+4>>2];c[U+8>>2]=c[R+8>>2];c[U+12>>2]=c[R+12>>2];c[U+16>>2]=c[R+16>>2];c[U+20>>2]=c[R+20>>2];c[U+24>>2]=c[R+24>>2];c[U+28>>2]=c[R+28>>2];c[V>>2]=c[R>>2];c[V+4>>2]=c[R+4>>2];c[V+8>>2]=c[R+8>>2];c[V+12>>2]=c[R+12>>2];c[V+16>>2]=c[R+16>>2];c[V+20>>2]=c[R+20>>2];c[V+24>>2]=c[R+24>>2];c[V+28>>2]=c[R+28>>2];r=(n|0)!=0;s=u+-48|0;Kz(e,r?Y:u,1,U,jg(c[((c[u>>2]&3|0)==2?u:s)+40>>2]|0)|0);ca=(c[C>>2]|0)+-1|0;h[D>>3]=+h[U+56+(ca<<5)+24>>3];h[E>>3]=+h[U+56+(ca<<5)+8>>3];ca=c[v+16>>2]|0;m=+h[(c[(c[F>>2]|0)+196>>2]|0)+(c[ca+232>>2]<<6)+24>>3]+ +h[ca+24>>3];c[S>>2]=c[V>>2];c[S+4>>2]=c[V+4>>2];c[S+8>>2]=c[V+8>>2];c[S+12>>2]=c[V+12>>2];c[S+16>>2]=c[V+16>>2];c[S+20>>2]=c[V+20>>2];c[S+24>>2]=c[V+24>>2];c[S+28>>2]=c[V+28>>2];kg(W,S,4,m);c[V>>2]=c[W>>2];c[V+4>>2]=c[W+4>>2];c[V+8>>2]=c[W+8>>2];c[V+12>>2]=c[W+12>>2];c[V+16>>2]=c[W+16>>2];c[V+20>>2]=c[W+20>>2];c[V+24>>2]=c[W+24>>2];c[V+28>>2]=c[W+28>>2];if(+h[V>>3]<+h[A>>3]?+h[E>>3]<+h[D>>3]:0){ca=c[C>>2]|0;c[C>>2]=ca+1;ca=U+56+(ca<<5)|0;c[ca>>2]=c[V>>2];c[ca+4>>2]=c[V+4>>2];c[ca+8>>2]=c[V+8>>2];c[ca+12>>2]=c[V+12>>2];c[ca+16>>2]=c[V+16>>2];c[ca+20>>2]=c[V+20>>2];c[ca+24>>2]=c[V+24>>2];c[ca+28>>2]=c[V+28>>2]}ng(e,I,u,T,U,k);if(G)q=iy(e,X)|0;else q=oy(e,X)|0;k=c[X>>2]|0;if(!(H&(k|0)>4)){if(!k)break}else{ca=q+16|0;c[ca>>2]=c[q>>2];c[ca+4>>2]=c[q+4>>2];c[ca+8>>2]=c[q+8>>2];c[ca+12>>2]=c[q+12>>2];ca=q+32|0;k=q+(k+-1<<4)|0;c[ca>>2]=c[k>>2];c[ca+4>>2]=c[k+4>>2];c[ca+8>>2]=c[k+8>>2];c[ca+12>>2]=c[k+12>>2];QN(q+48|0,k|0,16)|0;c[X>>2]=4;k=4}o=c[Z>>2]|0;n=o+k|0;if((n|0)>(c[41922]|0)){c[41922]=n<<1;p=tw(c[41920]|0,n<<5)|0;c[41920]=p;k=c[X>>2]|0}else p=c[41920]|0;n=0;while(1){if((n|0)>=(k|0))break;ca=p+(o<<4)|0;X=q+(n<<4)|0;c[ca>>2]=c[X>>2];c[ca+4>>2]=c[X+4>>2];c[ca+8>>2]=c[X+8>>2];c[ca+12>>2]=c[X+12>>2];n=n+1|0;o=o+1|0}c[Z>>2]=o;pg(I,e);if(r)k=(c[Y>>2]&3|0)==2?Y:Y+-48|0;else k=(c[u>>2]&3|0)==2?u:s;c[_>>2]=c[k+40>>2];v=o;J=63}while(0);c:do if((J|0)==63){if((i|0)==1){Ez(K,c[_>>2]|0,c[41920]|0,v,17224);break}t=d+12|0;u=v+-1|0;m=+((O(c[t>>2]|0,i+-1|0)|0)/2|0|0);n=c[41920]|0;k=1;while(1){if((k|0)>=(u|0))break;ca=n+(k<<4)|0;h[ca>>3]=+h[ca>>3]-m;k=k+1|0}k=c[41922]|0;if((k|0)>(c[41923]|0)){c[41923]=k;o=tw(c[41921]|0,k<<4)|0;c[41921]=o;n=c[41920]|0}else o=c[41921]|0;k=0;while(1){if((k|0)>=(v|0))break;ca=o+(k<<4)|0;d=n+(k<<4)|0;c[ca>>2]=c[d>>2];c[ca+4>>2]=c[d+4>>2];c[ca+8>>2]=c[d+8>>2];c[ca+12>>2]=c[d+12>>2];k=k+1|0}Ez(K,c[_>>2]|0,o,v,17224);r=$+48|0;s=$+-48|0;q=1;while(1){if((q|0)>=(i|0))break c;o=c[f+(q+g<<2)>>2]|0;p=o+16|0;k=c[p>>2]|0;if(c[k+164>>2]&32){n=c[aa>>2]|0;PN(n|0,k|0,176)|0;w=$;x=o;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[aa>>2]=n;w=c[$>>2]&3;c[((w|0)==3?$:r)+40>>2]=c[((c[o>>2]&3|0)==2?o:o+-48|0)+40>>2];c[((w|0)==2?$:s)+40>>2]=c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2];w=n+16|0;x=(c[p>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));k=c[aa>>2]|0;w=k+56|0;x=(c[p>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[k+112>>0]=1;c[k+116>>2]=o;o=$}p=c[41920]|0;k=1;while(1){if((k|0)>=(u|0))break;ca=p+(k<<4)|0;h[ca>>3]=+h[ca>>3]+ +(c[t>>2]|0);k=k+1|0}n=c[41921]|0;k=0;while(1){if((k|0)>=(v|0))break;ca=n+(k<<4)|0;_=p+(k<<4)|0;c[ca>>2]=c[_>>2];c[ca+4>>2]=c[_+4>>2];c[ca+8>>2]=c[_+8>>2];c[ca+12>>2]=c[_+12>>2];k=k+1|0}Ez(o,c[((c[o>>2]&3|0)==2?o:o+-48|0)+40>>2]|0,n,v,17224);q=q+1|0}}while(0);l=ba;return}function eg(a){a=a|0;var b=0,d=0,e=0;b=bo(a)|0;while(1){if(!b)break;d=Om(a,b)|0;while(1){if(!d)break;if(($a[c[4306]&31](d)|0)<<24>>24?(e=c[(c[d+16>>2]|0)+8>>2]|0,e|0):0)fg(e);d=Qm(a,d)|0}b=co(a,b)|0}return}function fg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=c[a+4>>2]|0;g=rw(f*48|0)|0;b=g;d=0;e=(c[a>>2]|0)+((f+-1|0)*48|0)|0;while(1){if((d|0)>=(f|0)){b=0;break}gg(e,b);b=b+48|0;d=d+1|0;e=e+-48|0}while(1){d=c[a>>2]|0;if((b|0)>=(f|0))break;XI(c[d+(b*48|0)>>2]|0);b=b+1|0}XI(d);c[a>>2]=g;return}function gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;h=rw(g<<4)|0;d=h;e=0;f=(c[a>>2]|0)+(g+-1<<4)|0;while(1){if((e|0)>=(g|0))break;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];d=d+16|0;e=e+1|0;f=f+-16|0}c[b>>2]=h;c[b+4>>2]=g;c[b+8>>2]=c[a+12>>2];c[b+12>>2]=c[a+8>>2];h=b+16|0;g=a+32|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];h=b+32|0;g=a+16|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];return}function hg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=l;l=l+96|0;q=x+80|0;s=x+64|0;r=x+48|0;u=x+32|0;v=x+16|0;w=x;m=d;while(1){t=m+16|0;g=c[t>>2]|0;if(!(a[g+112>>0]|0))break;m=c[g+116>>2]|0}g=c[m>>2]&3;o=c[((g|0)==2?m:m+-48|0)+40>>2]|0;g=c[((g|0)==3?m:m+48|0)+40>>2]|0;m=o+16|0;n=g+16|0;y=(c[(c[m>>2]|0)+232>>2]|0)-(c[(c[n>>2]|0)+232>>2]|0)|0;switch(((y|0)>-1?y:0-y|0)|0){case 1:{g=0;break}case 2:{if(!(a[(c[(c[b+60>>2]|0)+16>>2]|0)+113>>0]&1))p=6;else g=0;break}default:p=6}do if((p|0)==6){if((c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)==(g|0)){c[f>>2]=o;y=(c[n>>2]|0)+16|0;p=(c[t>>2]|0)+16|0;c[s>>2]=c[y>>2];c[s+4>>2]=c[y+4>>2];c[s+8>>2]=c[y+8>>2];c[s+12>>2]=c[y+12>>2];c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];zg(u,s,q);p=(c[m>>2]|0)+16|0;y=(c[t>>2]|0)+56|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2];c[q>>2]=c[y>>2];c[q+4>>2]=c[y+4>>2];c[q+8>>2]=c[y+8>>2];c[q+12>>2]=c[y+12>>2];zg(v,s,q)}else{c[f>>2]=g;y=(c[m>>2]|0)+16|0;p=(c[t>>2]|0)+56|0;c[s>>2]=c[y>>2];c[s+4>>2]=c[y+4>>2];c[s+8>>2]=c[y+8>>2];c[s+12>>2]=c[y+12>>2];c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];zg(u,s,q);p=(c[n>>2]|0)+16|0;y=(c[t>>2]|0)+16|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2];c[q>>2]=c[y>>2];c[q+4>>2]=c[y+4>>2];c[q+8>>2]=c[y+8>>2];c[q+12>>2]=c[y+12>>2];zg(v,s,q)}g=c[(c[t>>2]|0)+96>>2]|0;if(!g){g=e+16|0;c[e>>2]=c[u>>2];c[e+4>>2]=c[u+4>>2];c[e+8>>2]=c[u+8>>2];c[e+12>>2]=c[u+12>>2];c[g>>2]=c[u>>2];c[g+4>>2]=c[u+4>>2];c[g+8>>2]=c[u+8>>2];c[g+12>>2]=c[u+12>>2];g=e+48|0;y=e+32|0;c[y>>2]=c[v>>2];c[y+4>>2]=c[v+4>>2];c[y+8>>2]=c[v+8>>2];c[y+12>>2]=c[v+12>>2];c[g>>2]=c[v>>2];c[g+4>>2]=c[v+4>>2];c[g+8>>2]=c[v+8>>2];c[g+12>>2]=c[v+12>>2];g=4;break}j=+h[g+24>>3];i=+h[g+32>>3];p=(c[(c[(qo(o)|0)+16>>2]|0)+116>>2]&1|0)==0;k=p?i:j;y=(c[(c[t>>2]|0)+96>>2]|0)+56|0;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];c[r+12>>2]=c[v+12>>2];c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];c[s+8>>2]=c[u+8>>2];c[s+12>>2]=c[u+12>>2];c[q>>2]=c[y>>2];c[q+4>>2]=c[y+4>>2];c[q+8>>2]=c[y+8>>2];c[q+12>>2]=c[y+12>>2];y=(Ag(r,s,q)|0)==0;i=(p?j:i)*.5;j=+h[w>>3];if(y){h[w>>3]=j-i;y=w+8|0;h[y>>3]=+h[y>>3]+k*.5}else{h[w>>3]=j+i;y=w+8|0;h[y>>3]=+h[y>>3]-k*.5}g=e+16|0;c[e>>2]=c[u>>2];c[e+4>>2]=c[u+4>>2];c[e+8>>2]=c[u+8>>2];c[e+12>>2]=c[u+12>>2];c[g>>2]=c[u>>2];c[g+4>>2]=c[u+4>>2];c[g+8>>2]=c[u+8>>2];c[g+12>>2]=c[u+12>>2];g=e+32|0;y=e+48|0;u=e+64|0;c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];c[u+8>>2]=c[w+8>>2];c[u+12>>2]=c[w+12>>2];c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];c[g>>2]=c[w>>2];c[g+4>>2]=c[w+4>>2];c[g+8>>2]=c[w+8>>2];c[g+12>>2]=c[w+12>>2];g=e+80|0;y=e+96|0;c[y>>2]=c[v>>2];c[y+4>>2]=c[v+4>>2];c[y+8>>2]=c[v+8>>2];c[y+12>>2]=c[v+12>>2];c[g>>2]=c[v>>2];c[g+4>>2]=c[v+4>>2];c[g+8>>2]=c[v+8>>2];c[g+12>>2]=c[v+12>>2];g=7}while(0);l=x;return g|0}function ig(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0;q=c[f+16>>2]|0;p=+h[q+16>>3];j=p-+h[q+88>>3];m=j+-4.0;l=vg(d,f,g,i,-1)|0;if(!l){n=~~(j+(m>=0.0?-3.5:-4.5));k=c[e>>2]|0;k=(k|0)>(n|0)?n:k}else{k=wg(d,f,l)|0;do if(!k){n=c[l+16>>2]|0;j=+h[n+240>>3]+ +h[n+16>>3];if(!(a[n+156>>0]|0)){j=+(c[(c[d+16>>2]|0)+248>>2]|0)*.5+j;break}else{j=j+ +(c[e+8>>2]|0);break}}else j=+h[(c[k+16>>2]|0)+32>>3]+ +(c[e+8>>2]|0);while(0);o=j<m?j:m;k=~~(o+(o>=0.0?.5:-.5))}o=+(k|0);n=(a[q+156>>0]|0)==1;if(n?(c[q+104>>2]|0)!=0:0)m=p+10.0;else m=p+4.0+ +h[q+96>>3];l=vg(d,f,g,i,1)|0;if(!l){f=~~(m+(m>=0.0?.5:-.5));k=c[e+4>>2]|0;k=(k|0)<(f|0)?f:k}else{k=wg(d,f,l)|0;do if(!k){f=c[l+16>>2]|0;j=+h[f+16>>3]-+h[f+88>>3];if(!(a[f+156>>0]|0)){j=j-+(c[(c[d+16>>2]|0)+248>>2]|0)*.5;break}else{j=j-+(c[e+8>>2]|0);break}}else j=+h[(c[k+16>>2]|0)+16>>3]-+(c[e+8>>2]|0);while(0);m=j>m?j:m;k=~~(m+(m>=0.0?.5:-.5))}j=+(k|0);if(n?(c[q+104>>2]|0)!=0:0){j=j-+h[q+96>>3];if(j<o)j=p}p=+h[q+24>>3];d=c[(c[d+16>>2]|0)+196>>2]|0;q=c[q+232>>2]|0;m=p-+h[d+(q<<6)+16>>3];p=+h[d+(q<<6)+24>>3]+p;h[b>>3]=o;h[b+8>>3]=m;h[b+16>>3]=j;h[b+24>>3]=p;return}function jg(b){b=b|0;b=c[b+16>>2]|0;if((a[b+156>>0]|0)==1)if((c[b+176>>2]|0)>1)b=1;else b=(c[b+184>>2]|0)>1&1;else b=0;return b|0}function kg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0;g=l;l=l+32|0;f=g;switch(d|0){case 1:{ug(f,+h[b>>3],e,+h[b+16>>3],+h[b+8>>3]);break}case 4:{ug(f,+h[b>>3],+h[b+24>>3],+h[b+16>>3],e);break}default:{}}c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];l=g;return}function lg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0;l=c[b+16>>2]|0;k=l+(e<<5)|0;j=+h[k>>3];m=l+(e<<5)+8|0;g=+h[m>>3];n=l+(e<<5)+16|0;f=+h[n>>3];l=l+(e<<5)+24|0;i=+h[l>>3];if(j==f){d=c[(c[d+16>>2]|0)+196>>2]|0;o=e+1|0;j=+(c[b>>2]|0);g=+h[d+(o<<6)+24>>3]+ +h[(c[(c[c[d+(o<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];f=+(c[b+4>>2]|0);i=+h[(c[(c[c[d+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[d+(e<<6)+16>>3];h[k>>3]=j;h[m>>3]=g;h[n>>3]=f;h[l>>3]=i}h[a>>3]=j;h[a+8>>3]=g;h[a+16>>3]=f;h[a+24>>3]=i;return}function mg(b){b=b|0;var d=0,e=0;b=c[b+16>>2]|0;e=b+16|0;d=0;while(1){b=c[c[b+180>>2]>>2]|0;b=c[(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0;if((a[b+156>>0]|0)!=1)break;if((c[b+184>>2]|0)!=1)break;if((c[b+176>>2]|0)!=1)break;if(+h[b+16>>3]!=+h[e>>3])break;d=d+1|0}return d|0}function ng(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=l;l=l+32|0;j=k;h=rg(b,-1)|0;b=rg(b,1)|0;if(!((h|0)!=0?!(Vz(h)|0):0))i=3;do if((i|0)==3){if(b|0?(Vz(b)|0)==0:0)break;h=sg(d,-1)|0;b=sg(d,1)|0;if(h|0?(Vz(h)|0)==0:0)break;if(b|0?(Vz(b)|0)==0:0)break;h=e+52|0;b=0;while(1){if((b|0)>=(c[h>>2]|0))break;d=e+56+(b<<5)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[j+16>>2]=c[d+16>>2];c[j+20>>2]=c[d+20>>2];c[j+24>>2]=c[d+24>>2];c[j+28>>2]=c[d+28>>2];Gz(a,j);b=b+1|0}h=c[a+80>>2]|0;i=g+-3|0;b=0;while(1){if((b|0)>=(g|0))break;e=135024+(b<<5)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];c[j+20>>2]=c[e+20>>2];c[j+24>>2]=c[e+24>>2];c[j+28>>2]=c[e+28>>2];Gz(a,j);b=b+1|0}d=h+1|0;i=i+d|0;h=c[f+52>>2]|0;while(1){b=h+-1|0;if((h|0)<=0)break;h=f+56+(b<<5)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];Gz(a,j);h=b}tg(a,d,i)}while(0);l=k;return}function og(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[e>>2]|0;while(1){if(!b)break;a=c[c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;b=b+-1|0}c[e>>2]=f+1;g=d+(f<<4)|0;b=d+(f+-1<<4)|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];f=c[e>>2]|0;c[e>>2]=f+1;f=d+(f<<4)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];f=d+(c[e>>2]<<4)|0;e=(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+16|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];return a|0}function pg(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0,l=0,m=0;m=d+84|0;l=d+80|0;e=0;d=b;a:while(1){j=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;k=j+16|0;if((a[(c[k>>2]|0)+156>>0]|0)!=1)break;if(($a[c[17228>>2]&31](j)|0)<<24>>24)break;d=c[l>>2]|0;while(1){if((e|0)>=(d|0))break a;if(!(+h[(c[m>>2]|0)+(e<<5)+8>>3]>+h[(c[k>>2]|0)+24>>3]))break;e=e+1|0}d=c[m>>2]|0;b=c[k>>2]|0;do if(!(+h[d+(e<<5)+24>>3]<+h[b+24>>3])){g=+h[d+(e<<5)>>3];i=~~g;f=+h[d+(e<<5)+16>>3];if(!(c[b+104>>2]|0)){qg(j,i,~~((f+g)*.5),~~f);break}else{qg(j,i,~~f,~~(+h[b+96>>3]+f));break}}while(0);d=c[c[(c[k>>2]|0)+180>>2]>>2]|0}return}function qg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[a+16>>2]|0;h[a+16>>3]=+(d|0);h[a+88>>3]=+(d-b|0);h[a+96>>3]=+(e-d|0);return}function rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;i=c[(c[(c[((h|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180>>2]|0;h=((h|0)==2?a:a+-48|0)+40|0;g=0;a=0;while(1){e=c[i+(g<<2)>>2]|0;if(!e)break;f=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((O(f-(c[(c[(c[h>>2]|0)+16>>2]|0)+236>>2]|0)|0,b)|0)>=1){d=c[e+16>>2]|0;if(!(c[d+8>>2]|0)){d=c[d+116>>2]|0;if(!d)break;if(!(c[(c[d+16>>2]|0)+8>>2]|0))break}if(a|0?(O((c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;a=e}while(0);g=g+1|0}return a|0}function sg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;i=c[(c[(c[((h|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172>>2]|0;h=((h|0)==3?a:a+48|0)+40|0;g=0;a=0;while(1){e=c[i+(g<<2)>>2]|0;if(!e)break;f=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((O(f-(c[(c[(c[h>>2]|0)+16>>2]|0)+236>>2]|0)|0,b)|0)>=1){d=c[e+16>>2]|0;if(!(c[d+8>>2]|0)){d=c[d+116>>2]|0;if(!d)break;if(!(c[(c[d+16>>2]|0)+8>>2]|0))break}if(a|0?(O((c[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;a=e}while(0);g=g+1|0}return a|0}function tg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0;l=a+84|0;i=b+-1|0;while(1){if((i|0)>(d|0))break;f=c[l>>2]|0;j=f+(i<<5)|0;e=+h[j>>3];if(!(i-b&1)){f=f+(i<<5)+16|0;m=+h[f>>3];g=~~((m+e)*.5);if(e>=m){h[j>>3]=+(g+-8|0);h[f>>3]=+(g+8|0)}}else{f=f+(i<<5)+16|0;m=+h[f>>3];g=~~((m+e)*.5);if(e+16.0>m){h[j>>3]=+(g+-8|0);h[f>>3]=+(g+8|0)}}i=i+1|0}k=(c[a+80>>2]|0)+-1|0;g=0;while(1){if((g|0)>=(k|0))break;i=c[l>>2]|0;f=i+(g<<5)|0;j=g+1|0;a=i+(j<<5)|0;if(!((g|0)<(b|0)|(g|0)>(d|0))?(g-b&1|0)==0:0){e=+h[f>>3]+16.0;f=i+(j<<5)+16|0;if(e>+h[f>>3])h[f>>3]=e;e=+h[i+(g<<5)+16>>3]+-16.0;if(!(e<+h[a>>3])){g=j;continue}h[a>>3]=e;g=j;continue}if(!((g|0)<(d|0)&(j|0)>=(b|0))){g=j;continue}if(j-b&1|0){g=j;continue}e=+h[i+(j<<5)+16>>3];if(+h[f>>3]+16.0>e)h[f>>3]=e+-16.0;f=i+(g<<5)+16|0;e=+h[a>>3];if(!(+h[f>>3]+-16.0<e)){g=j;continue}h[f>>3]=e+16.0;g=j}return}function ug(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;h[a>>3]=b;h[a+8>>3]=c;h[a+16>>3]=d;h[a+24>>3]=e;return}function vg(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=c[(c[b+16>>2]|0)+196>>2]|0;h=c[d+16>>2]|0;j=c[h+232>>2]|0;i=k+(j<<6)|0;j=k+(j<<6)+4|0;h=c[h+236>>2]|0;a:do{h=h+g|0;if((h|0)<=-1){b=0;break}if((h|0)>=(c[i>>2]|0)){b=0;break}b=c[(c[j>>2]|0)+(h<<2)>>2]|0;k=c[b+16>>2]|0;switch(a[k+156>>0]|0){case 0:break a;case 1:{if(c[k+104>>2]|0)break a;break}default:{}}}while((yg(b,d,e,f)|0)<<24>>24!=0);return b|0}function wg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;d=c[d+16>>2]|0;if(!(a[d+156>>0]|0)){i=c[d+212>>2]|0;h=i}else{i=c[(c[(c[c[d+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;g=c[i>>2]&3;h=c[(c[(c[((g|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;i=c[(c[(c[((g|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0}d=c[e+16>>2]|0;if(!(a[d+156>>0]|0)){e=c[d+212>>2]|0;e=(e|0)==(b|0)?0:e;return ((e|0)==(h|0)|((e|0)==0|(e|0)==(i|0))?0:e)|0}f=c[(c[(c[c[d+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;g=c[f>>2]&3;d=c[(c[(c[((g|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if(!(!((d|0)==(h|0)|((d|0)==0|(d|0)==(i|0)))?(xg(d,e)|0)!=0:0)){d=c[(c[(c[((g|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if((d|0)==(h|0)|((d|0)==0|(d|0)==(i|0)))d=0;else{e=(xg(d,e)|0)==0;return (e?0:d)|0}}return d|0}function xg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0;d=c[a+16>>2]|0;a=c[b+16>>2]|0;f=+h[a+16>>3];if((+h[d+16>>3]<=f?f<=+h[d+32>>3]:0)?(e=+h[a+24>>3],+h[d+24>>3]<=e):0)a=e<=+h[d+40>>3]&1;else a=0;return a|0}function yg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=c[b+16>>2]|0;j=(c[i+236>>2]|0)>(c[(c[d+16>>2]|0)+236>>2]|0);a:do if((c[i+184>>2]|0)==1){b:do if(f|0){h=0;b=c[c[i+180>>2]>>2]|0;while(1){if((h|0)>=2)break b;b=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;d=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((b|0)==(d|0))break b;g=c[b+16>>2]|0;b=c[d+16>>2]|0;if(j^(c[g+236>>2]|0)>(c[b+236>>2]|0)){b=1;break a}if((c[g+184>>2]|0)!=1)break b;if(!(a[g+156>>0]|0))break b;if((c[b+184>>2]|0)!=1)break b;if(!(a[b+156>>0]|0))break b;h=h+1|0;f=c[c[b+180>>2]>>2]|0;b=c[c[g+180>>2]>>2]|0}}while(0);if(e|0?(c[i+176>>2]|0)==1:0){g=0;d=e;b=c[c[i+172>>2]>>2]|0;while(1){if((g|0)>=2){b=0;break a}b=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;d=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((b|0)==(d|0)){b=0;break a}f=c[b+16>>2]|0;b=c[d+16>>2]|0;if(j^(c[f+236>>2]|0)>(c[b+236>>2]|0)){b=1;break a}if((c[f+176>>2]|0)!=1){b=0;break a}if(!(a[f+156>>0]|0)){b=0;break a}if((c[b+176>>2]|0)!=1){b=0;break a}if(!(a[b+156>>0]|0)){b=0;break a}g=g+1|0;d=c[c[b+172>>2]>>2]|0;b=c[c[f+172>>2]>>2]|0}}else b=0}else b=0;while(0);return b|0}function zg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[c+8>>3]+ +h[b+8>>3];h[a>>3]=+h[c>>3]+ +h[b>>3];h[a+8>>3]=d;return}function Ag(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+h[b+8>>3];e=+h[b>>3];return (~~((+h[c>>3]-e)*(+h[a+8>>3]-d)-(+h[a>>3]-e)*(+h[c+8>>3]-d))|0)>0|0}function Bg(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;R=l;l=l+256|0;D=R+232|0;C=R+216|0;P=R+88|0;O=R+80|0;K=R+64|0;L=R+200|0;M=R+184|0;N=R;E=R+168|0;F=R+152|0;G=R+136|0;H=R+120|0;I=R+104|0;B=c[g>>2]&3;J=c[((B|0)==3?g:g+48|0)+40>>2]|0;B=c[((B|0)==2?g:g+-48|0)+40>>2]|0;do if((wy(J)|0)!=2?(wy(B)|0)!=2:0){g=0;j=0;k=0;while(1){if((k|0)>=(f|0))break;A=c[(c[d+(k+e<<2)>>2]|0)+16>>2]|0;g=g+((c[A+96>>2]|0)!=0&1)|0;if(!((a[A+44>>0]|0)==0?(a[A+84>>0]|0)==0:0))j=1;k=k+1|0}if(!j)if(!g){Dg(J,B,d,e,f,i);break}else{Ig(J,B,d,e,f,i,g);break}y=qw(156)|0;z=Jg(b,y)|0;t=Gp(z,78320,1)|0;Mo(t,122277,280,1)|0;Jm(t,80018,80032)|0;m=+h[(c[B+16>>2]|0)+16>>3];s=+h[(c[J+16>>2]|0)+16>>3];A=b+16|0;q=(c[(c[A>>2]|0)+116>>2]&1|0)==0;r=q?B:J;q=q?J:B;t=Kg(t,q)|0;u=Kg(z,r)|0;g=0;p=0;while(1){if((p|0)>=(f|0))break;j=d+(p+e<<2)|0;while(1){o=c[j>>2]|0;n=o+16|0;j=c[n>>2]|0;if(!(a[j+112>>0]|0))break;else j=j+116|0}if((c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2]|0)==(q|0))k=Lg(z,t,u,o)|0;else k=Lg(z,u,t,o)|0;j=c[n>>2]|0;c[j+120>>2]=k;if(!g)if((a[j+44>>0]|0)==0?(a[j+84>>0]|0)==0:0){c[(c[k+16>>2]|0)+120>>2]=o;g=k}else g=0;p=p+1|0}if(!g)x=$m(z,t,u,0,1)|0;else x=g;Bm(x,c[42217]|0,78324)|0;g=z+16|0;n=c[g>>2]|0;c[n+144>>2]=c[(c[A>>2]|0)+144>>2];c[n+188>>2]=z;DB(z,i);Af(z);jj(z,0);th(z,0);wi(z,0);q=q+16|0;i=c[q>>2]|0;n=c[r+16>>2]|0;r=t+16|0;o=c[r>>2]|0;p=o+16|0;v=+(~~m|0);w=+(~~((+h[(c[u+16>>2]|0)+16>>3]+ +h[p>>3])*.5)|0);m=+(~~s|0);s=+(~~((+h[i+16>>3]-+h[i+96>>3]+ +h[n+16>>3]+ +h[n+88>>3])*.5)|0);n=o+24|0;g=(c[g>>2]|0)+192|0;while(1){j=c[g>>2]|0;if(!j)break;do if((j|0)!=(t|0)){g=c[j+16>>2]|0;k=g+24|0;if((j|0)==(u|0)){h[k>>3]=m;h[g+16>>3]=w;break}else{h[k>>3]=s;break}}else{h[n>>3]=v;h[p>>3]=w;g=o}while(0);g=g+164|0}dk(z);Xf(z,0);Wx(z);k=c[q>>2]|0;g=c[r>>2]|0;if(!(c[(c[A>>2]|0)+116>>2]&1)){j=g+16|0;m=+h[k+24>>3]-+h[g+24>>3]}else{j=g+24|0;m=+h[g+16>>3]+ +h[k+24>>3]}h[K>>3]=+h[k+16>>3]-+h[j>>3];h[K+8>>3]=m;i=N+16|0;t=N+32|0;u=N+48|0;r=0;while(1){if((r|0)>=(f|0))break;g=d+(r+e<<2)|0;while(1){j=c[g>>2]|0;q=j+16|0;g=c[q>>2]|0;if(!(a[g+112>>0]|0))break;else g=g+116|0}o=c[g+120>>2]|0;p=o+16|0;g=c[p>>2]|0;if(!((o|0)==(x|0)&(c[g+120>>2]|0)==0)){n=c[c[g+8>>2]>>2]|0;o=n+4|0;j=Dz(j,c[o>>2]|0)|0;c[j+8>>2]=c[n+8>>2];g=j+16|0;k=n+16|0;S=c[(c[A>>2]|0)+116>>2]&1;c[C>>2]=c[k>>2];c[C+4>>2]=c[k+4>>2];c[C+8>>2]=c[k+8>>2];c[C+12>>2]=c[k+12>>2];c[D>>2]=c[K>>2];c[D+4>>2]=c[K+4>>2];c[D+8>>2]=c[K+8>>2];c[D+12>>2]=c[K+12>>2];Mg(L,C,D,S);c[g>>2]=c[L>>2];c[g+4>>2]=c[L+4>>2];c[g+8>>2]=c[L+8>>2];c[g+12>>2]=c[L+12>>2];c[j+12>>2]=c[n+12>>2];g=j+32|0;S=n+32|0;k=c[(c[A>>2]|0)+116>>2]&1;c[C>>2]=c[S>>2];c[C+4>>2]=c[S+4>>2];c[C+8>>2]=c[S+8>>2];c[C+12>>2]=c[S+12>>2];c[D>>2]=c[K>>2];c[D+4>>2]=c[K+4>>2];c[D+8>>2]=c[K+8>>2];c[D+12>>2]=c[K+12>>2];Mg(M,C,D,k);c[g>>2]=c[M>>2];c[g+4>>2]=c[M+4>>2];c[g+8>>2]=c[M+8>>2];c[g+12>>2]=c[M+12>>2];g=0;while(1){if((g|0)>=(c[o>>2]|0))break;k=(c[j>>2]|0)+(g<<4)|0;T=(c[n>>2]|0)+(g<<4)|0;S=c[(c[A>>2]|0)+116>>2]&1;c[C>>2]=c[T>>2];c[C+4>>2]=c[T+4>>2];c[C+8>>2]=c[T+8>>2];c[C+12>>2]=c[T+12>>2];c[D>>2]=c[K>>2];c[D+4>>2]=c[K+4>>2];c[D+8>>2]=c[K+8>>2];c[D+12>>2]=c[K+12>>2];Mg(E,C,D,S);c[k>>2]=c[E>>2];c[k+4>>2]=c[E+4>>2];c[k+8>>2]=c[E+8>>2];c[k+12>>2]=c[E+12>>2];c[N>>2]=c[E>>2];c[N+4>>2]=c[E+4>>2];c[N+8>>2]=c[E+8>>2];c[N+12>>2]=c[E+12>>2];k=g+1|0;if((k|0)>=(c[o>>2]|0)){Q=48;break}S=(c[j>>2]|0)+(k<<4)|0;k=(c[n>>2]|0)+(k<<4)|0;T=c[(c[A>>2]|0)+116>>2]&1;c[C>>2]=c[k>>2];c[C+4>>2]=c[k+4>>2];c[C+8>>2]=c[k+8>>2];c[C+12>>2]=c[k+12>>2];c[D>>2]=c[K>>2];c[D+4>>2]=c[K+4>>2];c[D+8>>2]=c[K+8>>2];c[D+12>>2]=c[K+12>>2];Mg(F,C,D,T);c[S>>2]=c[F>>2];c[S+4>>2]=c[F+4>>2];c[S+8>>2]=c[F+8>>2];c[S+12>>2]=c[F+12>>2];c[i>>2]=c[F>>2];c[i+4>>2]=c[F+4>>2];c[i+8>>2]=c[F+8>>2];c[i+12>>2]=c[F+12>>2];S=g+2|0;T=(c[j>>2]|0)+(S<<4)|0;S=(c[n>>2]|0)+(S<<4)|0;k=c[(c[A>>2]|0)+116>>2]&1;c[C>>2]=c[S>>2];c[C+4>>2]=c[S+4>>2];c[C+8>>2]=c[S+8>>2];c[C+12>>2]=c[S+12>>2];c[D>>2]=c[K>>2];c[D+4>>2]=c[K+4>>2];c[D+8>>2]=c[K+8>>2];c[D+12>>2]=c[K+12>>2];Mg(G,C,D,k);c[T>>2]=c[G>>2];c[T+4>>2]=c[G+4>>2];c[T+8>>2]=c[G+8>>2];c[T+12>>2]=c[G+12>>2];c[t>>2]=c[G>>2];c[t+4>>2]=c[G+4>>2];c[t+8>>2]=c[G+8>>2];c[t+12>>2]=c[G+12>>2];T=g+3|0;k=(c[n>>2]|0)+(T<<4)|0;S=c[(c[A>>2]|0)+116>>2]&1;c[C>>2]=c[k>>2];c[C+4>>2]=c[k+4>>2];c[C+8>>2]=c[k+8>>2];c[C+12>>2]=c[k+12>>2];c[D>>2]=c[K>>2];c[D+4>>2]=c[K+4>>2];c[D+8>>2]=c[K+8>>2];c[D+12>>2]=c[K+12>>2];Mg(H,C,D,S);c[u>>2]=c[H>>2];c[u+4>>2]=c[H+4>>2];c[u+8>>2]=c[H+8>>2];c[u+12>>2]=c[H+12>>2];$t((c[A>>2]|0)+16|0,N);g=T}if((Q|0)==48)Q=0;g=c[(c[q>>2]|0)+96>>2]|0;if(g|0){T=g+56|0;p=(c[(c[p>>2]|0)+96>>2]|0)+56|0;S=c[(c[A>>2]|0)+116>>2]&1;c[C>>2]=c[p>>2];c[C+4>>2]=c[p+4>>2];c[C+8>>2]=c[p+8>>2];c[C+12>>2]=c[p+12>>2];c[D>>2]=c[K>>2];c[D+4>>2]=c[K+4>>2];c[D+8>>2]=c[K+8>>2];c[D+12>>2]=c[K+12>>2];Mg(I,C,D,S);c[T>>2]=c[I>>2];c[T+4>>2]=c[I+4>>2];c[T+8>>2]=c[I+8>>2];c[T+12>>2]=c[I+12>>2];T=c[(c[q>>2]|0)+96>>2]|0;a[T+81>>0]=1;YA(b,T)}}r=r+1|0}Ng(z,y)}else Q=3;while(0);if((Q|0)==3?(c[41924]|0)==0:0){c[41924]=1;Zl(0,78197,O)|0;Q=Cn(J)|0;S=(pn(b)|0)!=0;T=Cn(B)|0;c[P>>2]=Q;c[P+4>>2]=S?122546:122549;c[P+8>>2]=T;Zl(3,78303,P)|0}l=R;return}function Cg(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0;z=l;l=l+1600|0;u=z+1552|0;n=z+1536|0;t=z+840|0;v=z+144|0;w=z+1584|0;j=z+32|0;s=z+16|0;o=z;q=c[f>>2]&3;p=c[((q|0)==3?f:f+48|0)+40>>2]|0;x=f+-48|0;q=c[((q|0)==2?f:x)+40>>2]|0;r=f+16|0;k=c[r>>2]|0;i=c[k+172>>2]|0;while(1){m=c[(c[i+16>>2]|0)+172>>2]|0;if(!m)break;else i=m}k=(c[k+96>>2]|0)+56|0;i=(c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16|0;m=(c[i>>2]|0)+16|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];k=c[r>>2]|0;a[(c[k+96>>2]|0)+81>>0]=1;if((g|0)!=2){k=c[i>>2]|0;C=+h[k+16>>3];E=C-+h[k+88>>3];C=+h[k+96>>3]+C;B=+h[k+24>>3];D=+h[k+80>>3]*.5+B;k=c[(c[b+16>>2]|0)+196>>2]|0;m=c[p+16>>2]|0;j=c[m+232>>2]|0;B=+(~~(+(~~(B-+h[k+(j<<6)+16>>3]-+h[m+24>>3]+ +h[k+(j<<6)+24>>3])|0)*.16666666666666666)|0);B=D-(B<5.0?5.0:B);Fg(b,d,e,p,f,t,1);Fg(b,d,e,q,f,v,0);j=t+52|0;k=c[j>>2]|0;m=k+-1|0;A=+h[t+56+(m<<5)>>3];h[16878]=A;h[16879]=+h[t+56+(m<<5)+24>>3];h[16880]=E;h[16881]=B;h[16882]=A;h[16883]=B;m=v+52|0;i=(c[m>>2]|0)+-1|0;A=+h[v+56+(i<<5)+16>>3];h[16884]=A;h[16885]=D;h[16886]=C;h[16889]=B;h[16887]=+h[v+56+(i<<5)+24>>3];h[16888]=A;i=0;while(1){if((i|0)>=(k|0)){i=0;break}k=t+56+(i<<5)|0;c[u>>2]=c[k>>2];c[u+4>>2]=c[k+4>>2];c[u+8>>2]=c[k+8>>2];c[u+12>>2]=c[k+12>>2];c[u+16>>2]=c[k+16>>2];c[u+20>>2]=c[k+20>>2];c[u+24>>2]=c[k+24>>2];c[u+28>>2]=c[k+28>>2];Gz(e,u);i=i+1|0;k=c[j>>2]|0}while(1){if((i|0)==3)break;t=135024+(i<<5)|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[u+20>>2]=c[t+20>>2];c[u+24>>2]=c[t+24>>2];c[u+28>>2]=c[t+28>>2];Gz(e,u);i=i+1|0}j=c[m>>2]|0;while(1){i=j+-1|0;if((j|0)<=0)break;j=v+56+(i<<5)|0;c[u>>2]=c[j>>2];c[u+4>>2]=c[j+4>>2];c[u+8>>2]=c[j+8>>2];c[u+12>>2]=c[j+12>>2];c[u+16>>2]=c[j+16>>2];c[u+20>>2]=c[j+20>>2];c[u+24>>2]=c[j+24>>2];c[u+28>>2]=c[j+28>>2];Gz(e,u);j=i}if((g|0)==10)j=iy(e,w)|0;else j=oy(e,w)|0;i=c[w>>2]|0;if(i|0)y=17}else{i=(c[p+16>>2]|0)+16|0;v=k+16|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];zg(s,n,u);v=(c[q+16>>2]|0)+16|0;i=(c[r>>2]|0)+56|0;c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];c[n+12>>2]=c[v+12>>2];c[u>>2]=c[i>>2];c[u+4>>2]=c[i+4>>2];c[u+8>>2]=c[i+8>>2];c[u+12>>2]=c[i+12>>2];zg(o,n,u);i=c[(c[r>>2]|0)+96>>2]|0;D=+h[i+56>>3];E=+h[i+64>>3]-+h[i+32>>3]*.5;i=j+16|0;c[j>>2]=c[s>>2];c[j+4>>2]=c[s+4>>2];c[j+8>>2]=c[s+8>>2];c[j+12>>2]=c[s+12>>2];c[i>>2]=c[s>>2];c[i+4>>2]=c[s+4>>2];c[i+8>>2]=c[s+8>>2];c[i+12>>2]=c[s+12>>2];i=j+32|0;v=j+48|0;y=j+64|0;h[j+64>>3]=D;h[j+72>>3]=E;c[v>>2]=c[y>>2];c[v+4>>2]=c[y+4>>2];c[v+8>>2]=c[y+8>>2];c[v+12>>2]=c[y+12>>2];c[i>>2]=c[y>>2];c[i+4>>2]=c[y+4>>2];c[i+8>>2]=c[y+8>>2];c[i+12>>2]=c[y+12>>2];i=j+80|0;y=j+96|0;c[y>>2]=c[o>>2];c[y+4>>2]=c[o+4>>2];c[y+8>>2]=c[o+8>>2];c[y+12>>2]=c[o+12>>2];c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];c[i+12>>2]=c[o+12>>2];c[w>>2]=7;i=7;y=17}if((y|0)==17)Ez(f,c[((c[f>>2]&3|0)==2?f:x)+40>>2]|0,j,i,17224);l=z;return}function Dg(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=l;l=l+352|0;x=N+336|0;w=N+320|0;L=N+128|0;u=N+304|0;y=N+288|0;M=N+112|0;E=N+96|0;F=N+80|0;G=N+64|0;H=N+48|0;I=N+32|0;J=N+16|0;K=N;a=a+16|0;q=(c[a>>2]|0)+16|0;v=(c[d+(e<<2)>>2]|0)+16|0;s=(c[v>>2]|0)+16|0;c[w>>2]=c[q>>2];c[w+4>>2]=c[q+4>>2];c[w+8>>2]=c[q+8>>2];c[w+12>>2]=c[q+12>>2];c[x>>2]=c[s>>2];c[x+4>>2]=c[s+4>>2];c[x+8>>2]=c[s+8>>2];c[x+12>>2]=c[s+12>>2];zg(u,w,x);C=+h[u>>3];D=+h[u+8>>3];u=(c[b+16>>2]|0)+16|0;v=(c[v>>2]|0)+56|0;c[w>>2]=c[u>>2];c[w+4>>2]=c[u+4>>2];c[w+8>>2]=c[u+8>>2];c[w+12>>2]=c[u+12>>2];c[x>>2]=c[v>>2];c[x+4>>2]=c[v+4>>2];c[x+8>>2]=c[v+8>>2];c[x+12>>2]=c[v+12>>2];zg(y,w,x);A=+h[y>>3];B=+h[y+8>>3];if((f|0)>1){z=+h[(c[a>>2]|0)+80>>3];i=z*.5;z=z/+(f+-1|0)}else{i=0.0;z=0.0}p=(g|8|0)==10;m=L+8|0;q=L+16|0;r=(A+C*2.0)*.3333333333333333;s=L+32|0;t=(A*2.0+C)*.3333333333333333;n=L+24|0;u=L+48|0;v=L+64|0;w=L+80|0;x=L+96|0;y=L+112|0;k=L+128|0;o=L+136|0;i=D-i;b=0;while(1){if((b|0)>=(f|0))break;j=c[d+(b+e<<2)>>2]|0;h[L>>3]=C;h[m>>3]=D;if(p){Hg(M,r,i);c[q>>2]=c[M>>2];c[q+4>>2]=c[M+4>>2];c[q+8>>2]=c[M+8>>2];c[q+12>>2]=c[M+12>>2];Hg(E,t,i);c[s>>2]=c[E>>2];c[s+4>>2]=c[E+4>>2];c[s+8>>2]=c[E+8>>2];c[s+12>>2]=c[E+12>>2];a=4;g=3}else{h[q>>3]=C;h[n>>3]=D;Hg(F,r,i);c[s>>2]=c[F>>2];c[s+4>>2]=c[F+4>>2];c[s+8>>2]=c[F+8>>2];c[s+12>>2]=c[F+12>>2];Hg(G,r,i);c[u>>2]=c[G>>2];c[u+4>>2]=c[G+4>>2];c[u+8>>2]=c[G+8>>2];c[u+12>>2]=c[G+12>>2];Hg(H,r,i);c[v>>2]=c[H>>2];c[v+4>>2]=c[H+4>>2];c[v+8>>2]=c[H+8>>2];c[v+12>>2]=c[H+12>>2];Hg(I,t,i);c[w>>2]=c[I>>2];c[w+4>>2]=c[I+4>>2];c[w+8>>2]=c[I+8>>2];c[w+12>>2]=c[I+12>>2];Hg(J,t,i);c[x>>2]=c[J>>2];c[x+4>>2]=c[J+4>>2];c[x+8>>2]=c[J+8>>2];c[x+12>>2]=c[J+12>>2];Hg(K,t,i);c[y>>2]=c[K>>2];c[y+4>>2]=c[K+4>>2];c[y+8>>2]=c[K+8>>2];c[y+12>>2]=c[K+12>>2];h[k>>3]=A;h[o>>3]=B;a=10;g=9}h[L+(g<<4)>>3]=A;h[L+(g<<4)+8>>3]=B;Ez(j,c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0,L,a,17224);i=i+z;b=b+1|0}l=N;return}function Eg(a,d,e,f,g,i,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0,n=0.0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;x=l;l=l+1440|0;t=x+1392|0;v=x+1424|0;w=x+696|0;u=x;r=c[j>>2]&3;q=c[((r|0)==3?j:j+48|0)+40>>2]|0;r=c[((r|0)==2?j:j+-48|0)+40>>2]|0;m=c[q+16>>2]|0;o=c[m+232>>2]|0;p=c[a+16>>2]|0;if((o|0)<(b[p+238>>1]|0)){y=c[p+196>>2]|0;p=o+1|0;n=+h[m+24>>3]-+h[y+(o<<6)+32>>3]-+h[(c[(c[c[y+(p<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[y+(p<<6)+40>>3]}else n=+(c[p+252>>2]|0);z=+(i+1|0);s=+(c[d+12>>2]|0)/z;n=n/z;Gg(a,d,e,q,j,w,1);Gg(a,d,e,r,j,u,0);r=w+52|0;j=u+52|0;a=(k|0)==0;d=e+80|0;m=0;while(1){if((m|0)>=(i|0))break;q=c[f+(m+g<<2)>>2]|0;p=c[r>>2]|0;o=p+-1|0;D=+h[w+56+(o<<5)>>3];B=+h[w+56+(o<<5)+8>>3];C=+h[w+56+(o<<5)+16>>3];h[16878]=D;h[16881]=B;m=m+1|0;z=+(m|0);A=s*z;h[16880]=C+A;z=B-n*z;h[16879]=z;h[16882]=D;h[16885]=z;o=(c[j>>2]|0)+-1|0;D=+h[u+56+(o<<5)+16>>3];h[16884]=D;h[16883]=z-n;B=+h[u+56+(o<<5)>>3];C=+h[u+56+(o<<5)+8>>3];h[16888]=D;h[16889]=C;h[16886]=B-A;h[16887]=z;o=0;while(1){if((o|0)>=(p|0)){o=0;break}p=w+56+(o<<5)|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];c[t+16>>2]=c[p+16>>2];c[t+20>>2]=c[p+20>>2];c[t+24>>2]=c[p+24>>2];c[t+28>>2]=c[p+28>>2];Gz(e,t);o=o+1|0;p=c[r>>2]|0}while(1){if((o|0)==3)break;y=135024+(o<<5)|0;c[t>>2]=c[y>>2];c[t+4>>2]=c[y+4>>2];c[t+8>>2]=c[y+8>>2];c[t+12>>2]=c[y+12>>2];c[t+16>>2]=c[y+16>>2];c[t+20>>2]=c[y+20>>2];c[t+24>>2]=c[y+24>>2];c[t+28>>2]=c[y+28>>2];Gz(e,t);o=o+1|0}p=c[j>>2]|0;while(1){o=p+-1|0;if((p|0)<=0)break;p=u+56+(o<<5)|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];c[t+16>>2]=c[p+16>>2];c[t+20>>2]=c[p+20>>2];c[t+24>>2]=c[p+24>>2];c[t+28>>2]=c[p+28>>2];Gz(e,t);p=o}if(a)o=oy(e,v)|0;else o=iy(e,v)|0;p=c[v>>2]|0;if(!p)break;Ez(q,c[((c[q>>2]&3|0)==2?q:q+-48|0)+40>>2]|0,o,p,17224);c[d>>2]=0}l=x;return}function Fg(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0.0;n=l;l=l+128|0;j=n+96|0;k=n+64|0;o=n+32|0;m=n;ig(o,a,b,e,0,f);c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];c[g+16>>2]=c[o+16>>2];c[g+20>>2]=c[o+20>>2];c[g+24>>2]=c[o+24>>2];c[g+28>>2]=c[o+28>>2];c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];c[k+16>>2]=c[o+16>>2];c[k+20>>2]=c[o+20>>2];c[k+24>>2]=c[o+24>>2];c[k+28>>2]=c[o+28>>2];c[g+48>>2]=4;if(!(i<<24>>24))Kz(d,f,2,g,0);else Hz(d,f,2,g,0);b=g+52|0;f=(c[b>>2]|0)+-1|0;o=k+24|0;h[o>>3]=+h[g+56+(f<<5)+24>>3];i=k+8|0;h[i>>3]=+h[g+56+(f<<5)+8>>3];e=c[e+16>>2]|0;p=+h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[e+232>>2]<<6)+24>>3]+ +h[e+24>>3];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[j+16>>2]=c[k+16>>2];c[j+20>>2]=c[k+20>>2];c[j+24>>2]=c[k+24>>2];c[j+28>>2]=c[k+28>>2];kg(m,j,4,p);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];c[k+28>>2]=c[m+28>>2];if(+h[k>>3]<+h[k+16>>3]?+h[i>>3]<+h[o>>3]:0){o=c[b>>2]|0;c[b>>2]=o+1;o=g+56+(o<<5)|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[o+16>>2]=c[k+16>>2];c[o+20>>2]=c[k+20>>2];c[o+24>>2]=c[k+24>>2];c[o+28>>2]=c[k+28>>2]}l=n;return}function Gg(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0.0;n=l;l=l+128|0;j=n+96|0;k=n+64|0;o=n+32|0;m=n;ig(o,a,b,e,0,f);c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];c[g+16>>2]=c[o+16>>2];c[g+20>>2]=c[o+20>>2];c[g+24>>2]=c[o+24>>2];c[g+28>>2]=c[o+28>>2];c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];c[k+16>>2]=c[o+16>>2];c[k+20>>2]=c[o+20>>2];c[k+24>>2]=c[o+24>>2];c[k+28>>2]=c[o+28>>2];c[g+48>>2]=1;if(!(i<<24>>24))Kz(d,f,2,g,0);else Hz(d,f,2,g,0);b=g+52|0;f=(c[b>>2]|0)+-1|0;o=k+24|0;h[o>>3]=+h[g+56+(f<<5)+24>>3];i=k+8|0;h[i>>3]=+h[g+56+(f<<5)+8>>3];e=c[e+16>>2]|0;p=+h[e+24>>3]-+h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[e+232>>2]<<6)+24>>3];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[j+16>>2]=c[k+16>>2];c[j+20>>2]=c[k+20>>2];c[j+24>>2]=c[k+24>>2];c[j+28>>2]=c[k+28>>2];kg(m,j,1,p);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];c[k+28>>2]=c[m+28>>2];if(+h[k>>3]<+h[k+16>>3]?+h[i>>3]<+h[o>>3]:0){o=c[b>>2]|0;c[b>>2]=o+1;o=g+56+(o<<5)|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[o+16>>2]=c[k+16>>2];c[o+20>>2]=c[k+20>>2];c[o+24>>2]=c[k+24>>2];c[o+28>>2]=c[k+28>>2]}l=n;return}function Hg(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function Ig(b,d,e,f,g,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0;Y=l;l=l+288|0;R=Y+256|0;Q=Y+240|0;P=Y+224|0;V=Y+280|0;W=Y+272|0;X=Y+32|0;S=Y+16|0;T=Y;m=Y+208|0;n=Y+192|0;o=c[e+(f<<2)>>2]|0;U=qw(g<<2)|0;k=0;while(1){if((k|0)>=(g|0))break;c[U+(k<<2)>>2]=c[e+(k+f<<2)>>2];k=k+1|0}nL(U,g,4,11);e=b+16|0;f=(c[e>>2]|0)+16|0;o=o+16|0;C=(c[o>>2]|0)+16|0;c[Q>>2]=c[f>>2];c[Q+4>>2]=c[f+4>>2];c[Q+8>>2]=c[f+8>>2];c[Q+12>>2]=c[f+12>>2];c[R>>2]=c[C>>2];c[R+4>>2]=c[C+4>>2];c[R+8>>2]=c[C+8>>2];c[R+12>>2]=c[C+12>>2];zg(m,Q,R);c[S>>2]=c[m>>2];c[S+4>>2]=c[m+4>>2];c[S+8>>2]=c[m+8>>2];c[S+12>>2]=c[m+12>>2];C=d+16|0;f=(c[C>>2]|0)+16|0;o=(c[o>>2]|0)+56|0;c[Q>>2]=c[f>>2];c[Q+4>>2]=c[f+4>>2];c[Q+8>>2]=c[f+8>>2];c[Q+12>>2]=c[f+12>>2];c[R>>2]=c[o>>2];c[R+4>>2]=c[o+4>>2];c[R+8>>2]=c[o+8>>2];c[R+12>>2]=c[o+12>>2];zg(n,Q,R);c[T>>2]=c[n>>2];c[T+4>>2]=c[n+4>>2];c[T+8>>2]=c[n+8>>2];c[T+12>>2]=c[n+12>>2];w=+h[(c[e>>2]|0)+96>>3]+ +h[S>>3];x=+h[T>>3]-+h[(c[C>>2]|0)+88>>3];u=x+w;v=u*.5;C=c[U>>2]|0;c[X>>2]=c[S>>2];c[X+4>>2]=c[S+4>>2];c[X+8>>2]=c[S+8>>2];c[X+12>>2]=c[S+12>>2];o=X+16|0;c[o>>2]=c[S>>2];c[o+4>>2]=c[S+4>>2];c[o+8>>2]=c[S+8>>2];c[o+12>>2]=c[S+12>>2];e=X+32|0;c[e>>2]=c[T>>2];c[e+4>>2]=c[T+4>>2];c[e+8>>2]=c[T+8>>2];c[e+12>>2]=c[T+12>>2];f=X+48|0;c[f>>2]=c[T>>2];c[f+4>>2]=c[T+4>>2];c[f+8>>2]=c[T+8>>2];c[f+12>>2]=c[T+12>>2];Ez(C,c[((c[C>>2]&3|0)==2?C:C+-48|0)+40>>2]|0,X,4,17224);C=c[(c[C+16>>2]|0)+96>>2]|0;h[C+56>>3]=v;z=S+8|0;r=+h[z>>3];s=+h[C+32>>3];h[C+64>>3]=(s+6.0)*.5+r;a[C+81>>0]=1;r=r+3.0;B=+h[C+24>>3];A=(u-B)*.5;B=(B+u)*.5;C=X+24|0;D=X+40|0;E=X+56|0;F=X+64|0;G=T+8|0;H=X+72|0;I=X+80|0;J=X+88|0;K=X+96|0;L=X+104|0;M=X+112|0;N=X+120|0;O=V+4|0;n=(i|0)==6&1;q=0.0;p=0.0;s=s+r;m=1;while(1){if((m|0)>=(j|0)){y=6;break}d=c[U+(m<<2)>>2]|0;if(!(m&1)){c[X>>2]=c[S>>2];c[X+4>>2]=c[S+4>>2];c[X+8>>2]=c[S+8>>2];c[X+12>>2]=c[S+12>>2];h[o>>3]=A;h[C>>3]=+h[z>>3];h[e>>3]=A;h[D>>3]=s;h[f>>3]=B;h[E>>3]=s;h[F>>3]=B;t=+h[G>>3];h[H>>3]=t;Z=+h[T>>3];h[I>>3]=Z;h[J>>3]=t;h[K>>3]=Z;Z=s+6.0;h[L>>3]=Z;h[M>>3]=+h[S>>3];h[N>>3]=Z;s=+h[(c[(c[d+16>>2]|0)+96>>2]|0)+32>>3];t=Z+s*.5;s=Z+s}else{k=d+16|0;b=c[(c[k>>2]|0)+96>>2]|0;if((m|0)==1){p=+h[b+24>>3];q=(p+u)*.5;p=(u-p)*.5}r=r+-6.0-+h[b+32>>3];c[X>>2]=c[S>>2];c[X+4>>2]=c[S+4>>2];c[X+8>>2]=c[S+8>>2];c[X+12>>2]=c[S+12>>2];h[o>>3]=+h[S>>3];t=r+-6.0;h[C>>3]=t;h[e>>3]=+h[T>>3];h[D>>3]=t;c[f>>2]=c[T>>2];c[f+4>>2]=c[T+4>>2];c[f+8>>2]=c[T+8>>2];c[f+12>>2]=c[T+12>>2];h[F>>3]=q;h[H>>3]=+h[G>>3];h[I>>3]=q;h[J>>3]=r;h[K>>3]=p;h[L>>3]=r;h[M>>3]=p;h[N>>3]=+h[z>>3];t=+h[(c[(c[k>>2]|0)+96>>2]|0)+32>>3]*.5+r}c[O>>2]=8;c[V>>2]=X;c[P>>2]=c[S>>2];c[P+4>>2]=c[S+4>>2];c[P+8>>2]=c[S+8>>2];c[P+12>>2]=c[S+12>>2];c[Q>>2]=c[T>>2];c[Q+4>>2]=c[T+4>>2];c[Q+8>>2]=c[T+8>>2];c[Q+12>>2]=c[T+12>>2];c[R>>2]=c[V>>2];c[R+4>>2]=c[V+4>>2];k=ey(P,Q,R,W,n)|0;b=c[W>>2]|0;if(!b)break;i=c[(c[d+16>>2]|0)+96>>2]|0;h[i+56>>3]=v;h[i+64>>3]=t;a[i+81>>0]=1;Ez(d,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,k,b,17224);m=m+1|0}a:do if((y|0)==6){v=(x+w*2.0)*.3333333333333333;u=(x*2.0+w)*.3333333333333333;while(1){if((m|0)>=(g|0))break;d=c[U+(m<<2)>>2]|0;if(!(m&1)){c[X>>2]=c[S>>2];c[X+4>>2]=c[S+4>>2];c[X+8>>2]=c[S+8>>2];c[X+12>>2]=c[S+12>>2];h[o>>3]=A;h[C>>3]=+h[z>>3];h[e>>3]=A;h[D>>3]=s;h[f>>3]=B;h[E>>3]=s;h[F>>3]=B;t=+h[G>>3];h[H>>3]=t;Z=+h[T>>3];h[I>>3]=Z;h[J>>3]=t;h[K>>3]=Z;Z=s+6.0;h[L>>3]=Z;h[M>>3]=+h[S>>3];s=Z;t=p;p=Z}else{y=(m|0)==1;t=y?v:p;q=y?u:q;p=r+-6.0;c[X>>2]=c[S>>2];c[X+4>>2]=c[S+4>>2];c[X+8>>2]=c[S+8>>2];c[X+12>>2]=c[S+12>>2];h[o>>3]=+h[S>>3];r=r+-12.0;h[C>>3]=r;h[e>>3]=+h[T>>3];h[D>>3]=r;c[f>>2]=c[T>>2];c[f+4>>2]=c[T+4>>2];c[f+8>>2]=c[T+8>>2];c[f+12>>2]=c[T+12>>2];h[F>>3]=q;h[H>>3]=+h[G>>3];h[I>>3]=q;h[J>>3]=p;h[K>>3]=t;h[L>>3]=p;h[M>>3]=t;r=p;p=+h[z>>3]}h[N>>3]=p;c[O>>2]=8;c[V>>2]=X;c[P>>2]=c[S>>2];c[P+4>>2]=c[S+4>>2];c[P+8>>2]=c[S+8>>2];c[P+12>>2]=c[S+12>>2];c[Q>>2]=c[T>>2];c[Q+4>>2]=c[T+4>>2];c[Q+8>>2]=c[T+8>>2];c[Q+12>>2]=c[T+12>>2];c[R>>2]=c[V>>2];c[R+4>>2]=c[V+4>>2];k=ey(P,Q,R,W,n)|0;b=c[W>>2]|0;if(!b)break a;Ez(d,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,k,b,17224);m=m+1|0;p=t}XI(U)}while(0);l=Y;return}function Jg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0;g=l;l=l+16|0;f=g;j=(pn(b)|0)==0;j=j?17648:17640;a[f>>0]=a[j>>0]|0;a[f+1>>0]=a[j+1>>0]|0;a[f+2>>0]=a[j+2>>0]|0;a[f+3>>0]=a[j+3>>0]|0;f=fn(78335,f,0)|0;Mo(f,122277,280,1)|0;xm(f,0,80018,174177)|0;j=qw(96)|0;e=c[f+16>>2]|0;c[e+8>>2]=j;i=c[b+16>>2]|0;k=c[i+8>>2]|0;h[j>>3]=+h[k>>3];h[j+24>>3]=+h[k+24>>3];a[e+115>>0]=a[i+115>>0]|0;c[e+116>>2]=c[i+116>>2]&1^1;c[e+248>>2]=c[i+248>>2];c[e+252>>2]=c[i+252>>2];e=Cm(ro(b)|0,1,0)|0;while(1){if(!e)break;xm(f,1,c[e+8>>2]|0,c[e+12>>2]|0)|0;e=Cm(ro(b)|0,1,e)|0}e=Cm(ro(b)|0,2,0)|0;while(1){if(!e)break;xm(f,2,c[e+8>>2]|0,c[e+12>>2]|0)|0;e=Cm(ro(b)|0,2,e)|0}if(!(xm(f,2,96251,0)|0))xm(f,2,96251,174177)|0;if(!(xm(f,2,96242,0)|0))xm(f,2,96242,174177)|0;Og(f,d);l=g;return f|0}function Kg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+16|0;d=e;a=mo(a,Cn(b)|0,1)|0;Mo(a,122241,304,1)|0;Lm(b,a)|0;if((wy(b)|0)==2){f=b+16|0;b=rw((oJ(c[c[(c[f>>2]|0)+104>>2]>>2]|0)|0)+3|0)|0;c[d>>2]=c[c[(c[f>>2]|0)+104>>2]>>2];lL(b,78330,d)|0;Jm(a,86184,b)|0}l=e;return a|0}function Lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=$m(a,b,c,0,1)|0;Mo(c,122254,176,1)|0;Lm(d,c)|0;return c|0}function Mg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0.0;i=l;l=l+32|0;g=i+16|0;f=i;if(e|0){j=+h[b>>3];e=b+8|0;h[b>>3]=+h[e>>3];h[e>>3]=-j};c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];zg(a,f,g);l=i;return}function Ng(a,b){a=a|0;b=b|0;c[42232]=c[b>>2];c[42236]=c[b+4>>2];c[42237]=c[b+8>>2];c[42217]=c[b+12>>2];c[42218]=c[b+16>>2];c[42224]=c[b+20>>2];c[42223]=c[b+24>>2];c[42222]=c[b+28>>2];c[42248]=c[b+32>>2];c[42240]=c[b+36>>2];c[42225]=c[b+40>>2];c[42235]=c[b+44>>2];c[42244]=c[b+48>>2];c[42243]=c[b+52>>2];c[42242]=c[b+56>>2];c[42247]=c[b+60>>2];c[42241]=c[b+64>>2];c[42226]=c[b+68>>2];c[42188]=c[b+72>>2];c[42189]=c[b+76>>2];c[42190]=c[b+80>>2];c[42200]=c[b+84>>2];c[42193]=c[b+88>>2];c[42194]=c[b+92>>2];c[42195]=c[b+96>>2];c[42197]=c[b+100>>2];c[42198]=c[b+104>>2];c[42201]=c[b+108>>2];c[42204]=c[b+112>>2];c[42202]=c[b+116>>2];c[42203]=c[b+120>>2];c[42206]=c[b+124>>2];c[42205]=c[b+128>>2];c[42207]=c[b+132>>2];c[42208]=c[b+136>>2];c[42199]=c[b+140>>2];c[42211]=c[b+144>>2];c[42183]=c[b+148>>2];c[42181]=c[b+152>>2];XI(b);Df(a);kn(a)|0;return}function Og(a,b){a=a|0;b=b|0;c[b>>2]=c[42232];c[b+4>>2]=c[42236];c[b+8>>2]=c[42237];c[b+12>>2]=c[42217];c[b+16>>2]=c[42218];c[b+20>>2]=c[42224];c[b+24>>2]=c[42223];c[b+28>>2]=c[42222];c[b+32>>2]=c[42248];c[b+36>>2]=c[42240];c[b+40>>2]=c[42225];c[b+44>>2]=c[42235];c[b+48>>2]=c[42244];c[b+52>>2]=c[42243];c[b+56>>2]=c[42242];c[b+60>>2]=c[42247];c[b+64>>2]=c[42241];c[b+68>>2]=c[42226];c[b+72>>2]=c[42188];c[b+76>>2]=c[42189];c[b+80>>2]=c[42190];c[b+84>>2]=c[42200];c[b+88>>2]=c[42193];c[b+92>>2]=c[42194];c[b+96>>2]=c[42195];c[b+100>>2]=c[42197];c[b+104>>2]=c[42198];c[b+108>>2]=c[42201];c[b+112>>2]=c[42204];c[b+116>>2]=c[42202];c[b+120>>2]=c[42203];c[b+124>>2]=c[42206];c[b+128>>2]=c[42205];c[b+132>>2]=c[42207];c[b+136>>2]=c[42208];c[b+140>>2]=c[42199];c[b+144>>2]=c[42211];c[b+152>>2]=c[42181];c[b+148>>2]=c[42183];c[42232]=0;c[42236]=xm(a,2,80259,0)|0;c[42237]=xm(a,2,80268,0)|0;b=xm(a,2,86558,0)|0;c[42217]=b;if(!b)c[42217]=xm(a,2,86558,174177)|0;c[42218]=0;c[42224]=0;c[42223]=xm(a,2,86438,0)|0;c[42222]=xm(a,2,86429,0)|0;c[42248]=xm(a,2,86734,0)|0;c[42240]=0;c[42225]=xm(a,2,86184,0)|0;c[42235]=xm(a,2,78340,0)|0;c[42244]=0;c[42243]=xm(a,2,86634,0)|0;c[42242]=xm(a,2,86620,0)|0;c[42247]=xm(a,2,86725,0)|0;c[42241]=0;c[42226]=0;c[42188]=xm(a,1,95993,0)|0;c[42189]=xm(a,1,95987,0)|0;c[42190]=xm(a,1,90615,0)|0;c[42200]=0;c[42193]=xm(a,1,86429,0)|0;c[42194]=xm(a,1,86438,0)|0;c[42195]=0;c[42197]=xm(a,1,86184,0)|0;c[42198]=0;c[42201]=0;c[42204]=xm(a,1,86390,0)|0;c[42202]=xm(a,1,86473,0)|0;c[42203]=xm(a,1,86479,0)|0;c[42206]=xm(a,1,86491,0)|0;c[42205]=xm(a,1,86329,0)|0;c[42207]=xm(a,1,86496,0)|0;c[42208]=xm(a,1,78352,0)|0;c[42199]=0;c[42211]=0;c[42183]=xm(a,0,86390,0)|0;return}function Pg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0;d=c[(c[(c[a>>2]|0)+16>>2]|0)+96>>2]|0;a=c[(c[(c[b>>2]|0)+16>>2]|0)+96>>2]|0;b=(a|0)!=0;if(d)if(b?(f=+h[d+24>>3],i=+h[d+32>>3],e=+h[a+24>>3],g=+h[a+32>>3],!(f>e)):0)if(!(f<e))if(i>g)a=-1;else a=i<g&1;else a=1;else a=-1;else a=b&1;return a|0}function Qg(a){a=a|0;var b=0,d=0,e=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;d=c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;e=c[d+232>>2]|0;a=c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;b=c[a+232>>2]|0;if((e|0)<=(b|0))if((e|0)<(b|0))a=1;else a=(c[d+236>>2]|0)<(c[a+236>>2]|0)&1;else a=0;return a|0}function Rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+180|0;g=(c[b+16>>2]|0)+172|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=Sg(a,f,b,e)|0;l=d;return b|0}function Sg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[b+4>>2]|0;a:do if((f|0)>0?(g=c[e+4>>2]|0,(g|0)>0):0)if((f|0)<(g|0)){f=c[b>>2]|0;e=0;while(1){b=c[f+(e<<2)>>2]|0;if(!b){b=0;break a}if((c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)==(d|0))break;else e=e+1|0}}else{f=c[e>>2]|0;e=0;while(1){b=c[f+(e<<2)>>2]|0;if(!b){b=0;break a}if((c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)==(a|0))break;else e=e+1|0}}else b=0;while(0);return b|0}function Tg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+188|0;g=(c[b+16>>2]|0)+196|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=Sg(a,f,b,e)|0;l=d;return b|0}function Ug(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+180>>2]|0;if(!b)b=rw((c[d+184>>2]<<2)+8|0)|0;else b=tw(b,(c[d+184>>2]<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+180>>2]=b;f=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;d=c[f+180>>2]|0;f=f+184|0;b=c[f>>2]|0;c[f>>2]=b+1;c[d+(b<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+180>>2]|0)+(c[e+184>>2]<<2)>>2]=0;e=a+-48|0;b=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;d=c[b+172>>2]|0;if(!d)b=rw((c[b+176>>2]<<2)+8|0)|0;else b=tw(d,(c[b+176>>2]<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+172>>2]=b;b=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;d=c[b+172>>2]|0;b=b+176|0;f=c[b>>2]|0;c[b>>2]=f+1;c[d+(f<<2)>>2]=a;f=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;c[(c[f+172>>2]|0)+(c[f+176>>2]<<2)>>2]=0;return a|0}function Vg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=a+4|0;f=c[e>>2]|0;d=0;while(1){if((d|0)>=(f|0))break;g=c[a>>2]|0;h=g+(d<<2)|0;if((c[h>>2]|0)==(b|0)){i=4;break}else d=d+1|0}if((i|0)==4){i=f+-1|0;c[e>>2]=i;c[h>>2]=c[g+(i<<2)>>2];c[(c[a>>2]|0)+(i<<2)>>2]=0}return}function Wg(a){a=a|0;if(!a)ma(78393,78403,117,78412);else{Vg((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180|0,a);Vg((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172|0,a);return}}function Xg(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+204>>2]|0;if(!b)b=rw((c[d+208>>2]<<2)+8|0)|0;else b=tw(b,(c[d+208>>2]<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+204>>2]=b;f=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[f+204>>2]|0;f=f+208|0;d=c[f>>2]|0;c[f>>2]=d+1;c[b+(d<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+204>>2]|0)+(c[e+208>>2]<<2)>>2]=0;return}function Yg(a){a=a|0;Zg(a,(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+204|0);return}function Zg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=b+4|0;e=c[h>>2]|0;f=c[b>>2]|0;d=0;while(1){if((d|0)>=(e|0)){g=4;break}if((c[f+(d<<2)>>2]|0)==(a|0))break;else d=d+1|0}if((g|0)==4){if(!f)d=rw((e<<2)+8|0)|0;else d=tw(f,(e<<2)+8|0)|0;c[b>>2]=d;f=c[h>>2]|0;g=f+1|0;c[h>>2]=g;c[d+(f<<2)>>2]=a;c[(c[b>>2]|0)+(g<<2)>>2]=0}return}function _g(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=qw(96)|0;g=n+48|0;c[g>>2]=c[g>>2]|3;c[n>>2]=c[n>>2]&-4|2;h=qw(176)|0;m=n+16|0;c[m>>2]=h;c[((c[n>>2]&3|0)==3?n:g)+40>>2]=d;j=n+-48|0;c[((c[n>>2]&3|0)==2?n:j)+40>>2]=e;a[h+112>>0]=1;if(!f){c[h+156>>2]=1;b[h+154>>1]=1;b[h+168>>1]=1;b[h+170>>1]=1}else{c[n>>2]=c[n>>2]&15|c[f>>2]&-16;c[g>>2]=c[g>>2]&15|c[f>>2]&-16;l=f+16|0;i=c[l>>2]|0;b[h+168>>1]=b[i+168>>1]|0;b[h+154>>1]=b[i+154>>1]|0;c[h+156>>2]=c[i+156>>2];b[h+170>>1]=b[i+170>>1]|0;d=c[((c[n>>2]&3|0)==3?n:g)+40>>2]|0;e=c[f>>2]&3;k=f+48|0;if((d|0)!=(c[((e|0)==3?f:k)+40>>2]|0)){g=f+-48|0;if((d|0)==(c[((e|0)==2?f:g)+40>>2]|0)){h=h+16|0;d=i+56|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}}else{h=h+16|0;d=i+16|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));g=f+-48|0}d=c[((c[n>>2]&3|0)==2?n:j)+40>>2]|0;e=c[f>>2]&3;if((d|0)!=(c[((e|0)==2?f:g)+40>>2]|0)){if((d|0)==(c[((e|0)==3?f:k)+40>>2]|0)){h=(c[m>>2]|0)+56|0;d=(c[l>>2]|0)+16|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}}else{h=(c[m>>2]|0)+56|0;d=(c[l>>2]|0)+56|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}d=(c[l>>2]|0)+172|0;if(!(c[d>>2]|0))c[d>>2]=n;c[(c[m>>2]|0)+116>>2]=f}return n|0}function $g(a,b,c){a=a|0;b=b|0;c=c|0;return Ug(_g(a,b,c)|0)|0}function ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;a=(c[a+16>>2]|0)+192|0;f=c[a>>2]|0;d=c[b+16>>2]|0;c[d+164>>2]=f;e=f;if(f|0)c[(c[e+16>>2]|0)+168>>2]=b;c[a>>2]=b;c[d+168>>2]=0;if((e|0)==(b|0))ma(78429,78403,215,78445);else return}function bh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((a|0)==(b|0))ma(78455,78403,220,78462);f=c[b+16>>2]|0;d=f+164|0;if(c[d>>2]|0)ma(78475,78403,221,78462);e=(c[a+16>>2]|0)+164|0;c[d>>2]=c[e>>2];d=c[e>>2]|0;if(d|0)c[(c[d+16>>2]|0)+168>>2]=b;c[f+168>>2]=a;c[e>>2]=b;return}function ch(a,b){a=a|0;b=b|0;var d=0,e=0;if(!(dh(a,b)|0))ma(78494,78403,231,78515);b=c[b+16>>2]|0;d=c[b+164>>2]|0;e=d;b=b+168|0;if(d|0)c[(c[d+16>>2]|0)+168>>2]=c[b>>2];b=c[b>>2]|0;if(!b)c[(c[a+16>>2]|0)+192>>2]=e;else c[(c[b+16>>2]|0)+164>>2]=e;return}function dh(a,b){a=a|0;b=b|0;a=(c[a+16>>2]|0)+192|0;while(1){a=c[a>>2]|0;if((a|0)==0|(a|0)==(b|0))break;a=(c[a+16>>2]|0)+164|0}return a|0}function eh(b){b=b|0;var d=0,e=0,f=0,g=0;d=qw(64)|0;c[d>>2]=c[d>>2]&-4|1;e=d+16|0;c[e>>2]=qw(304)|0;c[d+24>>2]=ro(b)|0;g=c[e>>2]|0;a[g+156>>0]=1;h[g+96>>3]=1.0;h[g+88>>3]=1.0;h[g+80>>3]=1.0;c[g+216>>2]=1;c[g+176>>2]=0;g=qw(20)|0;f=c[e>>2]|0;c[f+172>>2]=g;c[f+184>>2]=0;f=qw(20)|0;c[(c[e>>2]|0)+180>>2]=f;ah(b,d);b=(c[b+16>>2]|0)+232|0;c[b>>2]=(c[b>>2]|0)+1;return d|0}function fh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=d+48|0;e=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;f=c[e+188>>2]|0;if(!f)e=rw((c[e+192>>2]<<2)+8|0)|0;else e=tw(f,(c[e+192>>2]<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+188>>2]=e;h=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;f=c[h+188>>2]|0;h=h+192|0;e=c[h>>2]|0;c[h>>2]=e+1;c[f+(e<<2)>>2]=d;g=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;c[(c[g+188>>2]|0)+(c[g+192>>2]<<2)>>2]=0;g=d+-48|0;e=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;f=c[e+196>>2]|0;if(!f)e=rw((c[e+200>>2]<<2)+8|0)|0;else e=tw(f,(c[e+200>>2]<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+196>>2]=e;e=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;f=c[e+196>>2]|0;e=e+200|0;h=c[e>>2]|0;c[e>>2]=h+1;c[f+(h<<2)>>2]=d;h=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;c[(c[h+196>>2]|0)+(c[h+200>>2]<<2)>>2]=0;a[(c[b+16>>2]|0)+240>>0]=1;a[(c[(Uf(b)|0)+16>>2]|0)+240>>0]=1;return}function gh(a){a=a|0;var b=0,d=0;if(!a)ma(78393,78403,269,78532);b=c[(c[a+16>>2]|0)+116>>2]|0;if(b|0?(d=(c[b+16>>2]|0)+172|0,(c[d>>2]|0)==(a|0)):0)c[d>>2]=0;Vg((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+188|0,a);Vg((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+196|0,a);return}function hh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;d=(c[a+16>>2]|0)+172|0;e=c[d>>2]|0;do if((e|0)!=(b|0))if(!e){c[d>>2]=b;ih(a,b);break}else ma(80440,78403,340,78570);else Zl(0,78549,f)|0;while(0);l=f;return}function ih(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,i=0;f=(c[d+16>>2]|0)+170|0;i=c[a+16>>2]|0;a=b[i+170>>1]|0;if((e[f>>1]|0)<(a&65535))b[f>>1]=a;g=i+168|0;h=i+154|0;f=i+156|0;a=d;while(1){if(!a)break;d=c[a+16>>2]|0;i=d+168|0;b[i>>1]=(e[i>>1]|0)+(e[g>>1]|0);i=d+154|0;b[i>>1]=(e[i>>1]|0)+(e[h>>1]|0);i=d+156|0;c[i>>2]=(c[i>>2]|0)+(c[f>>2]|0);a=c[d+172>>2]|0}return}function jh(d){d=d|0;var e=0,f=0,g=0,h=0;f=d+16|0;e=c[(c[f>>2]|0)+172>>2]|0;a:while(1){if(!e)break;kh(e,d);h=c[e+16>>2]|0;g=c[h+172>>2]|0;if(!(b[h+168>>1]|0))lh(e);while(1){if((a[(c[e+16>>2]|0)+112>>0]|0)!=1){e=g;continue a}e=c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0;if((a[e+156>>0]|0)!=1){e=g;continue a}if((c[e+184>>2]|0)!=1){e=g;continue a}e=c[c[e+180>>2]>>2]|0;kh(e,d)}}c[(c[f>>2]|0)+172>>2]=0;return}function kh(a,d){a=a|0;d=d|0;var f=0;f=c[d+16>>2]|0;d=c[a+16>>2]|0;a=d+168|0;b[a>>1]=(e[a>>1]|0)-(e[f+168>>1]|0);a=d+154|0;b[a>>1]=(e[a>>1]|0)-(e[f+154>>1]|0);d=d+156|0;c[d>>2]=(c[d>>2]|0)-(c[f+156>>2]|0);return}function lh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if(!a)ma(78393,78403,128,78583);g=a+48|0;d=0;while(1){b=c[a>>2]|0;e=(c[(c[((b&3|0)==3?a:g)+40>>2]|0)+16>>2]|0)+180|0;f=c[(c[e>>2]|0)+(d<<2)>>2]|0;if(!f)break;if((f|0)==(a|0))Vg(e,a);d=d+1|0}g=a+-48|0;f=0;while(1){d=(c[(c[((b&3|0)==2?a:g)+40>>2]|0)+16>>2]|0)+172|0;e=c[(c[d>>2]|0)+(f<<2)>>2]|0;if(!e)break;if((e|0)==(a|0)){Vg(d,a);b=c[a>>2]|0}f=f+1|0}return}function mh(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=l;l=l+1040|0;n=p+1032|0;o=p;m=p+8|0;k=d+16|0;d=c[k>>2]|0;j=b[d+236>>1]|0;while(1){if((j|0)>(b[d+238>>1]|0))break;i=c[d+196>>2]|0;h=i+(j<<6)|0;i=i+(j<<6)+4|0;g=0;d=0;while(1){if((g|0)>=(c[h>>2]|0))break;e=c[(c[i>>2]|0)+(g<<2)>>2]|0;f=e+16|0;if(c[(c[f>>2]|0)+112>>2]|0){if(!d){a[n>>0]=a[17644]|0;a[n+1>>0]=a[17645]|0;a[n+2>>0]=a[17646]|0;a[n+3>>0]=a[17647]|0;d=fn(78605,n,0)|0}c[o>>2]=g;lL(m,122187,o)|0;t=mo(d,m,1)|0;Mo(t,78608,24,1)|0;q=c[(c[f>>2]|0)+180>>2]|0;r=c[q>>2]|0;r=c[(c[(c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;q=c[q+4>>2]|0;q=c[(c[(c[((c[q>>2]&3|0)==2?q:q+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;s=(r|0)>(q|0);f=c[t+16>>2]|0;c[f+12>>2]=s?q:r;c[f+16>>2]=s?r:q;c[f+20>>2]=e}g=g+1|0}if(d|0){if((ln(d)|0)>1)nh(d,h);kn(d)|0}j=j+1|0;d=c[k>>2]|0}l=p;return}function nh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=0;h=bo(a)|0;a:while(1){if(!h)break;i=co(a,h)|0;j=h+16|0;g=i;while(1){if(!g){h=i;continue a}f=c[g+16>>2]|0;e=c[j>>2]|0;if((c[f+16>>2]|0)>(c[e+12>>2]|0)){if((c[e+16>>2]|0)<=(c[f+12>>2]|0))$m(a,h,g,0,1)|0}else{$m(a,g,h,0,1)|0;d=1}g=co(a,g)|0}}do if(d|0){h=Gp(a,78613,1)|0;j=qw((ln(a)|0)<<2)|0;i=qw((ln(a)|0)<<2)|0;f=b+4|0;e=bo(a)|0;b:while(1){if(!e){d=23;break}if((c[(c[e+16>>2]|0)+8>>2]|0)==0?nn(a,e,1,1)|0:0){c:do if(oh(a,e,h,i)|0){g=ln(h)|0;if((ph(a,h,j)|0)!=(g|0)){d=17;break b}nL(i,g,4,12);d=0;while(1){if((d|0)>=(g|0))break c;b=i+(d<<2)|0;k=c[j+(d<<2)>>2]|0;c[(c[k+16>>2]|0)+236>>2]=c[b>>2];c[(c[f>>2]|0)+(c[b>>2]<<2)>>2]=k;d=d+1|0}}while(0);rh(h)}e=co(a,e)|0}if((d|0)==17)ma(78618,78628,265,78639);else if((d|0)==23){XI(j);break}}while(0);return}function oh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=c[b+16>>2]|0;c[h+8>>2]=1;h=c[(c[(c[h+20>>2]|0)+16>>2]|0)+236>>2]|0;c[e+((ln(d)|0)<<2)>>2]=h;ho(d,b,1)|0;h=Om(a,b)|0;f=0;while(1){if(!h)break;j=c[h>>2]&3;g=c[((j|0)==2?h:h+-48|0)+40>>2]|0;i=c[g+16>>2]|0;f=f+((c[(c[(c[i+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[(c[(c[((j|0)==3?h:h+48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)|0;if(!(c[i+8>>2]|0))f=(oh(a,g,d,e)|0)+f|0;h=Qm(a,h)|0}h=Rm(a,b)|0;while(1){if(!h)break;i=c[h>>2]&3;g=c[((i|0)==3?h:h+48|0)+40>>2]|0;j=c[g+16>>2]|0;f=f+((c[(c[(c[(c[(c[((i|0)==2?h:h+-48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[j+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)|0;if(!(c[j+8>>2]|0))f=(oh(a,g,d,e)|0)+f|0;h=Sm(a,h)|0}return f|0}function ph(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=0;while(1){e=sh(a,b)|0;if(!e)break;c[d+(f<<2)>>2]=c[(c[e+16>>2]|0)+20>>2];oo(b,e)|0;e=Om(a,e)|0;while(1){if(!e)break;g=Qm(a,e)|0;cn(a,e)|0;e=g}f=f+1|0}return f|0}function qh(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function rh(a){a=a|0;var b=0,c=0;b=bo(a)|0;while(1){if(!b)break;c=co(a,b)|0;oo(a,b)|0;b=c}return}function sh(a,b){a=a|0;b=b|0;var c=0;c=bo(b)|0;while(1){if(!c){c=0;break}if(!(nn(a,c,1,0)|0))break;c=co(b,c)|0}return c|0}function th(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;uh(b);i=b+16|0;f=0;e=0;while(1){if((f|0)>=(c[(c[i>>2]|0)+220>>2]|0))break;vh(b,f);f=f+1|0;e=(wh(b,0,d)|0)+e|0}xh(b);h=1;while(1){f=c[i>>2]|0;g=c[f+180>>2]|0;if((h|0)>(g|0))break;g=(yh(c[(c[f+184>>2]|0)+(h<<2)>>2]|0,d)|0)+e|0;h=h+1|0;e=g}do if((g|0)>0){f=Hm(b,78653)|0;if(f|0?(DA(f)|0)<<24>>24==0:0)break;Xk(b);a[173889]=1;e=wh(b,2,d)|0}while(0);zh(b,e);return}function uh(d){d=d|0;var e=0;if(0)sA();a[173889]=0;c[41927]=d;e=((mn(Uf(d)|0)|0)<<2)+4|0;c[41926]=qw(e)|0;c[41925]=qw(e)|0;pi(d);e=d+16|0;if(b[(c[e>>2]|0)+136>>1]&16)qi(d);Ek(d);sl(d,1);ri(d);Gh(d);e=c[e>>2]|0;c[41928]=b[e+236>>1];c[41929]=b[e+238>>1];return}function vh(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;a=c[a+16>>2]|0;c[a+192>>2]=c[(c[a+216>>2]|0)+(d<<2)>>2];a:do if((d|0)>0){d=b[a+238>>1]|0;e=a+196|0;a=b[a+236>>1]|0;while(1){if((a|0)>(d|0))break a;f=c[e>>2]|0;g=f+(a<<6)+4|0;f=f+(a<<6)|0;c[g>>2]=(c[g>>2]|0)+(c[f>>2]<<2);c[f>>2]=0;a=a+1|0}}while(0);return}function wh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;n=o;if((b|0)>1){e=Wh(0)|0;Xh(a)}else e=2147483647;m=c[13918]|0;k=b;f=0;b=e;while(1){if((k|0)>=3)break;f=c[42180]|0;if((k|0)==2)if((e|0)>(b|0)){Zh(a);e=b}else e=b;else{e=(f|0)<4?f:4;if((Uf(a)|0)==(a|0))Yh(a,k);if(!k)Hh(a);Ih(a);g=Wh(0)|0;if((g|0)>(b|0)){f=e;e=g}else{Xh(a);f=e;e=g;b=g}}g=0;j=0;while(1){if((j|0)>=(f|0))break;if(0){c[n>>2]=k;c[n+4>>2]=j;c[n+8>>2]=g;c[n+12>>2]=e;c[n+16>>2]=b;vL(m,79046,n)|0}i=g+1|0;if((e|0)==0|(g|0)>=(c[41930]|0))break;_h(a,j);e=Wh(0)|0;if((e|0)>(b|0))g=i;else{Xh(a);g=+h[20878]*+(b|0)>+(e|0)?0:i;b=e}j=j+1|0}if(!e){e=0;break}else k=k+1|0}if((e|0)>(b|0))Zh(a);if((b|0)>0){$h(a,0);e=Wh(0)|0}else e=b;a:do if(d|0){b=0;while(1){if((b|0)>=(f|0))break a;ai(a);b=b+1|0}}while(0);l=o;return e|0}function xh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;n=p;Vh(a);k=a+16|0;d=c[k>>2]|0;m=c[13918]|0;j=b[d+236>>1]|0;while(1){if((j|0)>(b[d+238>>1]|0))break;e=c[d+196>>2]|0;f=c[e+(j<<6)+8>>2]|0;c[e+(j<<6)>>2]=f;g=c[e+(j<<6)+12>>2]|0;c[e+(j<<6)+4>>2]=g;i=0;while(1){if((i|0)>=(f|0))break;h=c[g+(i<<2)>>2]|0;if(!h){o=6;break}c[(c[h+16>>2]|0)+236>>2]=i;i=i+1|0}if((o|0)==6){o=0;if(0){e=Cn(a)|0;d=c[(c[(c[k>>2]|0)+196>>2]|0)+(j<<6)>>2]|0;c[n>>2]=e;c[n+4>>2]=j;c[n+8>>2]=i;c[n+12>>2]=d;vL(m,78996,n)|0;d=c[k>>2]|0;e=c[d+196>>2]|0}c[e+(j<<6)>>2]=i}j=j+1|0}l=p;return}function yh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;Rk(a);Gh(a);Hh(a);Ih(a);f=a+16|0;d=wh(a,2,b)|0;e=1;while(1){g=c[f>>2]|0;if((e|0)>(c[g+180>>2]|0))break;d=(yh(c[(c[g+184>>2]|0)+(e<<2)>>2]|0,b)|0)+d|0;e=e+1|0}Jh(a);return d|0}function zh(d,e){d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+16|0;p=q;f=c[41925]|0;if(f|0){XI(f);c[41925]=0}f=c[41926]|0;if(f|0){XI(f);c[41926]=0}o=d+16|0;f=1;while(1){g=c[o>>2]|0;if((f|0)>(c[g+180>>2]|0))break;Ah(c[(c[g+184>>2]|0)+(f<<2)>>2]|0);f=f+1|0}n=b[g+236>>1]|0;f=g;while(1){if((n|0)>(b[f+238>>1]|0))break;else m=0;while(1){f=c[f+196>>2]|0;if((m|0)>=(c[f+(n<<6)>>2]|0))break;k=(c[(c[f+(n<<6)+4>>2]|0)+(m<<2)>>2]|0)+16|0;f=c[k>>2]|0;c[f+236>>2]=m;f=c[f+188>>2]|0;a:do if(f|0){g=0;while(1){i=c[f+(g<<2)>>2]|0;if(!i)break a;j=i+16|0;if((a[(c[j>>2]|0)+112>>0]|0)==4){gh(i);XI(c[j>>2]|0);XI(i);g=g+-1|0;f=c[(c[k>>2]|0)+188>>2]|0}g=g+1|0}}while(0);m=m+1|0;f=c[o>>2]|0}Bh(c[f+(n<<6)+56>>2]|0);n=n+1|0;f=c[o>>2]|0}if(0){o=c[13918]|0;d=Cn(d)|0;r=+tA();c[p>>2]=d;c[p+4>>2]=e;h[p+8>>3]=r;vL(o,78664,p)|0}l=q;return}function Ah(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=a+16|0;d=1;while(1){f=c[g>>2]|0;if((d|0)>(c[f+180>>2]|0))break;Ah(c[(c[f+184>>2]|0)+(d<<2)>>2]|0);d=d+1|0}a:do if(c[f+268>>2]|0){e=b[f+236>>1]|0;d=f;while(1){if((e|0)>(b[d+238>>1]|0))break a;j=c[(c[d+268>>2]|0)+(e<<2)>>2]|0;i=Ch(a,j,-1)|0;j=Ch(a,j,1)|0;c[(c[(c[g>>2]|0)+268>>2]|0)+(e<<2)>>2]=i;k=c[(c[(c[(Uf(a)|0)+16>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0;i=c[(c[i+16>>2]|0)+236>>2]|0;f=c[g>>2]|0;h=c[f+196>>2]|0;c[h+(e<<6)+4>>2]=k+(i<<2);c[h+(e<<6)>>2]=(c[(c[j+16>>2]|0)+236>>2]|0)+1-i;e=e+1|0;d=f}}while(0);return}function Bh(a){a=a|0;if(a|0){XI(c[a+8>>2]|0);XI(a)}return}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=b;while(1){b=Dh(b,c)|0;if(!b)break;if(Eh(a,b)|0){d=b;continue}e=(Fh(a,b)|0)==0;d=e?d:b}return d|0}function Dh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a)ma(78703,78628,1023,78705);if((b|0)<0){a=c[a+16>>2]|0;e=c[a+236>>2]|0;if((e|0)>0){a=(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(c[a+232>>2]<<6)+4|0;d=e+-1|0;f=7}else g=0}else{a=c[a+16>>2]|0;e=c[a+236>>2]|0;a=(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(c[a+232>>2]<<6)+4|0;d=e+1|0;f=7}if((f|0)==7){a=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(a)if((O((c[(c[a+16>>2]|0)+236>>2]|0)-e|0,b)|0)>0)g=a;else ma(78714,78628,1029,78705);else g=0}return g|0}function Eh(b,d){b=b|0;d=d|0;if(!(a[(c[d+16>>2]|0)+156>>0]|0))b=(Ao(b,d)|0)!=0&1;else b=0;return b|0}function Fh(b,d){b=b|0;d=d|0;var e=0,f=0;d=c[d+16>>2]|0;if(((a[d+156>>0]|0)==1?(c[d+176>>2]|0)==1:0)?(c[d+184>>2]|0)==1:0){d=c[d+180>>2]|0;while(1){d=c[d>>2]|0;e=c[d+16>>2]|0;if(!(a[e+112>>0]|0))break;else d=e+116|0}if(Ao(b,d)|0)d=1;else f=7}else f=7;if((f|0)==7)d=0;return d|0}function Gh(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=c[42183]|0;a:do if((d|0)!=0|(c[42204]|0)!=0){d=AA(b,d,0)|0;if(d|0){switch(a[d>>0]|0){case 0:break a;case 111:{if(!(uJ(d,78916)|0)){Qh(b,1);break a}break}case 105:{if(!(uJ(d,83698)|0)){Qh(b,0);break a}break}default:{}}c[e>>2]=d;Zl(1,78920,e)|0;break}d=Hp(b)|0;while(1){if(!d)break;if(!(Bj(d)|0))Gh(d);d=Ip(d)|0}if(c[42204]|0)Rh(b)}while(0);l=f;return}function Hh(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=d+16|0;e=c[k>>2]|0;j=b[e+236>>1]|0;while(1){if((j|0)>(b[e+238>>1]|0))break;else{f=0;i=0}while(1){g=c[e+196>>2]|0;h=c[g+(j<<6)>>2]|0;if((i|0)>=(h|0))break;g=c[(c[(c[g+(j<<6)+4>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;a[g+158>>0]=0;a[g+157>>0]=0;c[g+284>>2]=i;if((f|0)==0&(c[g+192>>2]|0)>0){f=Oh(h,h)|0;e=c[k>>2]|0;c[(c[e+196>>2]|0)+(j<<6)+56>>2]=f;f=1}i=i+1|0}a:do if(f){i=0;f=h;while(1){if((i|0)>=(f|0))break a;h=c[(c[g+(j<<6)+4>>2]|0)+(i<<2)>>2]|0;if(!(a[(c[h+16>>2]|0)+157>>0]|0)){Ph(d,h);e=c[k>>2]|0;f=c[e+196>>2]|0;g=f;f=c[f+(j<<6)>>2]|0}i=i+1|0}}while(0);j=j+1|0}return}function Ih(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=d+16|0;e=c[s>>2]|0;if(a[e+240>>0]|0){h=0;r=b[e+236>>1]|0;q=0;i=0;a:while(1){if((r|0)>(b[e+238>>1]|0))break;f=c[e+196>>2]|0;g=c[f+(r<<6)>>2]|0;if(!g){g=q;f=i}else{f=c[f+(r<<6)+4>>2]|0;o=c[(c[(c[f>>2]|0)+16>>2]|0)+236>>2]|0;e=0;while(1){if((e|0)>=(g|0))break;a[(c[(c[f+(e<<2)>>2]|0)+16>>2]|0)+157>>0]=0;e=e+1|0}e=(e<<2)+4|0;if(!h)p=rw(e)|0;else p=tw(i,e)|0;m=0;n=0;while(1){e=c[s>>2]|0;f=c[e+196>>2]|0;g=c[f+(r<<6)>>2]|0;if((g|0)<=(n|0))break;j=c[(c[f+(r<<6)+4>>2]|0)+(((c[e+116>>2]&1|0)==0?g+~n|0:n)<<2)>>2]|0;l=j+16|0;e=0;k=0;while(1){i=c[l>>2]|0;if((e|0)>=(c[i+200>>2]|0)){f=0;g=0;e=i;break}i=k+((Kh(d,c[(c[i+196>>2]|0)+(e<<2)>>2]|0)|0)!=0&1)|0;e=e+1|0;k=i}while(1){if((g|0)>=(c[e+192>>2]|0))break;i=f+((Kh(d,c[(c[e+188>>2]|0)+(g<<2)>>2]|0)|0)!=0&1)|0;f=i;g=g+1|0;e=c[l>>2]|0}if(f|k)if((k|0)==0&(a[e+157>>0]|0)==0)e=(Lh(d,j,p+(m<<2)|0,r)|0)+m|0;else e=m;else{c[p+(m<<2)>>2]=j;e=m+1|0}m=e;n=n+1|0}b:do if(m){c:do if(!(c[e+116>>2]&1)){f=p;e=p+(m<<2)|0;while(1){e=e+-4|0;if(f>>>0>=e>>>0){g=0;break c}n=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=n;f=f+4|0}}else g=0;while(0);while(1){e=c[s>>2]|0;i=c[e+196>>2]|0;f=c[i+(r<<6)>>2]|0;if((g|0)>=(f|0)){m=0;g=i;break}n=c[p+(g<<2)>>2]|0;c[(c[i+(r<<6)+4>>2]|0)+(g<<2)>>2]=n;c[(c[n+16>>2]|0)+236>>2]=g+o;g=g+1|0}while(1){if((m|0)>=(f|0))break b;l=(c[(c[g+(r<<6)+4>>2]|0)+(m<<2)>>2]|0)+16|0;i=c[(c[l>>2]|0)+188>>2]|0;if(i){k=0;f=i;while(1){g=c[f+(k<<2)>>2]|0;e=c[s>>2]|0;if(!g)break;j=c[g>>2]&3;i=c[(c[(c[((j|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;j=c[(c[(c[((j|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!(c[e+116>>2]&1))if((i|0)<(j|0))t=36;else e=k;else if((i|0)>(j|0))t=36;else e=k;if((t|0)==36){t=0;if(Kh(d,g)|0){t=37;break a}gh(g);Mh(d,g);e=k+-1|0;f=c[(c[l>>2]|0)+188>>2]|0}k=e+1|0}f=c[e+196>>2]|0;g=f;f=c[f+(r<<6)>>2]|0}m=m+1|0}}while(0);a[(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(r<<6)+49>>0]=0;h=p;g=p;f=p}r=r+1|0;q=g;i=f}if((t|0)==37)ma(78762,78628,1561,78801);if(h|0)XI(q)}return}function Jh(a){a=a|0;var d=0,e=0;e=a+16|0;a=c[e>>2]|0;a:do if(c[a+268>>2]|0){d=b[a+236>>1]|0;while(1){if((d|0)>(b[a+238>>1]|0))break a;c[(c[a+268>>2]|0)+(d<<2)>>2]=c[c[(c[a+196>>2]|0)+(d<<6)+4>>2]>>2];d=d+1|0;a=c[e>>2]|0}}while(0);return}function Kh(a,b){a=a|0;b=b|0;if((c[(c[b+16>>2]|0)+156>>2]|0)!=0?(Nh(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)!=0:0)a=(Nh(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)!=0&1;else a=0;return a|0}function Lh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=d+16|0;g=c[l>>2]|0;a[g+157>>0]=1;a:do if((c[g+192>>2]|0)>0){h=0;j=0;while(1){i=c[(c[g+188>>2]|0)+(j<<2)>>2]|0;if(!i)break a;if((Kh(b,i)|0)!=0?(k=c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0,(a[(c[k+16>>2]|0)+157>>0]|0)==0):0)h=(Lh(b,k,e+(h<<2)|0,f)|0)+h|0;j=j+1|0;g=c[l>>2]|0}}else h=0;while(0);if((c[g+232>>2]|0)==(f|0)){c[e+(h<<2)>>2]=d;return h+1|0}else ma(78814,78628,1490,78830);return 0}function Mh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=c[d>>2]&3;j=c[((i|0)==2?d:d+-48|0)+40>>2]|0;f=c[(c[j+16>>2]|0)+188>>2]|0;a:do if(!f){e=d+48|0;m=15}else{l=d+48|0;g=((i|0)==3?d:l)+40|0;e=0;while(1){h=c[f+(e<<2)>>2]|0;if(!h){e=l;m=15;break a}if((c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0)==(c[g>>2]|0))break;else e=e+1|0}hh(d,h);e=(c[d+16>>2]|0)+172|0;if(!(c[e>>2]|0))c[e>>2]=h;e=c[h+16>>2]|0;if((a[e+112>>0]|0)==4?(k=e+116|0,(c[k>>2]|0)==0):0)c[k>>2]=d;e=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;f=c[e+204>>2]|0;if(!f)e=rw((c[e+208>>2]<<2)+8|0)|0;else e=tw(f,(c[e+208>>2]<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+204>>2]=e;i=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;j=c[i+204>>2]|0;i=i+208|0;k=c[i>>2]|0;c[i>>2]=k+1;c[j+(k<<2)>>2]=d;d=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;c[(c[d+204>>2]|0)+(c[d+208>>2]<<2)>>2]=0}while(0);if((m|0)==15){m=_g(j,c[((i|0)==3?d:e)+40>>2]|0,d)|0;l=c[d+16>>2]|0;d=c[m+16>>2]|0;a[d+112>>0]=(a[l+112>>0]|0)==4?4:3;c[d+96>>2]=c[l+96>>2];fh(b,m)}return}function Nh(a,b){a=a|0;b=b|0;var c=0;c=Eh(a,b)|0;return Fh(a,b)|0|c|0}function Oh(a,b){a=a|0;b=b|0;var d=0;d=qw(12)|0;c[d>>2]=a;c[d+4>>2]=b;c[d+8>>2]=qw(O(b,a)|0)|0;return d|0}function Ph(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=d+16|0;l=c[o>>2]|0;k=c[(c[(c[b+16>>2]|0)+196>>2]|0)+(c[l+232>>2]<<6)+56>>2]|0;a[l+157>>0]=1;a[l+158>>0]=1;l=(c[(c[(Uf(b)|0)+16>>2]|0)+180>>2]|0)>0;e=c[o>>2]|0;f=c[e+188>>2]|0;a:do if(f){m=k+4|0;n=k+8|0;d=0;b:while(1){j=c[f+(d<<2)>>2]|0;if(!j){p=e;break a}if(l){if((Ao(b,c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)|0)!=0?(Ao(b,c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)|0)!=0:0)q=7}else q=7;do if((q|0)==7){q=0;h=j+16|0;if(c[(c[h>>2]|0)+156>>2]|0){e=c[j>>2]&3;g=j+-48|0;r=c[(c[((e|0)==2?j:g)+40>>2]|0)+16>>2]|0;i=c[r+284>>2]|0;f=(i|0)<(c[k>>2]|0);if((a[r+158>>0]|0)==1){if(!f){q=10;break b}e=c[(c[(c[((e|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;f=c[m>>2]|0;if((e|0)>=(f|0)){q=12;break b}a[(c[n>>2]|0)+((O(f,i)|0)+e)>>0]=1;gh(j);d=d+-1|0;if((a[(c[h>>2]|0)+112>>0]|0)==4)break;Mh(b,j);break}else{if(!f){q=16;break b}e=c[(c[(c[((e|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;f=c[m>>2]|0;if((e|0)>=(f|0)){q=18;break b}a[(c[n>>2]|0)+((O(f,e)|0)+i)>>0]=1;e=c[((c[j>>2]&3|0)==2?j:g)+40>>2]|0;if(a[(c[e+16>>2]|0)+157>>0]|0)break;Ph(b,e);break}}}while(0);f=c[o>>2]|0;d=d+1|0;e=f;f=c[f+188>>2]|0}if((q|0)==10)ma(78840,78628,1251,78872);else if((q|0)==12)ma(78884,78628,1252,78872);else if((q|0)==16)ma(78840,78628,1260,78872);else if((q|0)==18)ma(78884,78628,1261,78872)}else p=e;while(0);a[p+158>>0]=0;return}function Qh(a,b){a=a|0;b=b|0;var c=0;c=bo(a)|0;while(1){if(!c)break;Sh(a,c,b);c=co(a,c)|0}return}function Rh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;d=bo(b)|0;while(1){if(!d)break;e=AA(d,c[42204]|0,0)|0;a:do if(e|0){switch(a[e>>0]|0){case 0:break a;case 111:{if(!(uJ(e,78916)|0)){Sh(b,d,1);break a}break}case 105:{if(!(uJ(e,83698)|0)){Sh(b,d,0);break a}break}default:{}}h=Cn(d)|0;c[f>>2]=e;c[f+4>>2]=h;Zl(1,78951,f)|0}while(0);d=co(b,d)|0}l=g;return}function Sh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=c[41926]|0;h=d+16|0;f=c[h>>2]|0;a:do if(!(c[f+212>>2]|0)){i=(e|0)!=0;b:do if(i){g=0;d=0;e=f;while(1){f=c[(c[e+180>>2]|0)+(g<<2)>>2]|0;if(!f)break b;if(!(Th(f)|0)){c[j+(d<<2)>>2]=f;d=d+1|0;e=c[h>>2]|0}g=g+1|0}}else{g=0;d=0;e=f;while(1){f=c[(c[e+172>>2]|0)+(g<<2)>>2]|0;if(!f)break b;if(!(Th(f)|0)){c[j+(d<<2)>>2]=f;d=d+1|0;e=c[h>>2]|0}g=g+1|0}}while(0);if((d|0)>=2){c[j+(d<<2)>>2]=0;nL(j,d,4,13);h=i?2:3;g=i?-1:1;f=1;while(1){d=c[j+(f<<2)>>2]|0;if(!d)break a;e=c[j+(f+-1<<2)>>2]|0;e=c[((c[e>>2]&3|0)==(h|0)?e:e+(g*48|0)|0)+40>>2]|0;d=c[((c[d>>2]&3|0)==(h|0)?d:d+(g*48|0)|0)+40>>2]|0;if(Tg(e,d)|0)break a;i=_g(e,d,0)|0;a[(c[i+16>>2]|0)+112>>0]=4;fh(b,i);f=f+1|0}}}while(0);return}function Th(a){a=a|0;var b=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;return (c[(c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)!=(c[(c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)|0}function Uh(a,b){a=a|0;b=b|0;return ((c[c[a>>2]>>2]|0)>>>4)-((c[c[b>>2]>>2]|0)>>>4)|0}function Vh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=c[a+16>>2]|0;g=f+220|0;h=c[g>>2]|0;if((h|0)>=2){i=f+216|0;a=0;e=0;while(1){if((e|0)>=(h|0))break;d=c[(c[i>>2]|0)+(e<<2)>>2]|0;if(a|0)c[(c[a+16>>2]|0)+164>>2]=d;j=c[d+16>>2]|0;c[j+168>>2]=a;a=d;d=j;while(1){d=c[d+164>>2]|0;if(!d)break;a=d;d=c[d+16>>2]|0}e=e+1|0}c[g>>2]=1;c[f+192>>2]=c[c[f+216>>2]>>2];b[f+236>>1]=c[41928];b[f+238>>1]=c[41929]}return}function Wh(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=c[41927]|0;j=i+16|0;f=c[j>>2]|0;g=0;h=b[f+236>>1]|0;while(1){if((h|0)>=(b[f+238>>1]|0))break;d=c[f+196>>2]|0;if(!(a[d+(h<<6)+49>>0]|0)){e=ni(i,h)|0;d=c[j>>2]|0;f=c[d+196>>2]|0;c[f+(h<<6)+52>>2]=e;a[f+(h<<6)+49>>0]=1}else{e=c[d+(h<<6)+52>>2]|0;d=f}g=e+g|0;h=h+1|0;f=d}return g|0}function Xh(a){a=a|0;var d=0,e=0,f=0,g=0,i=0,j=0;a=c[a+16>>2]|0;g=b[a+238>>1]|0;i=a+196|0;a=b[a+236>>1]|0;while(1){if((a|0)>(g|0))break;f=c[i>>2]|0;e=c[f+(a<<6)>>2]|0;f=f+(a<<6)+4|0;d=0;while(1){if((d|0)>=(e|0))break;j=c[(c[(c[f>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;h[j+16>>3]=+(c[j+236>>2]|0);d=d+1|0}a=a+1|0}return}function Yh(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+16|0;m=r;n=d+16|0;o=uA(c[(c[n>>2]|0)+232>>2]|0)|0;j=c[n>>2]|0;f=j+192|0;g=f;while(1){g=c[g>>2]|0;if(!g)break;g=c[g+16>>2]|0;a[g+157>>0]=0;g=g+164|0}h=b[j+238>>1]|0;i=j+196|0;g=b[j+236>>1]|0;while(1){if((g|0)>(h|0))break;c[(c[i>>2]|0)+(g<<6)>>2]=0;g=g+1|0}i=(e|0)==0;while(1){g=c[f>>2]|0;if(!g)break;h=g+16|0;f=c[h>>2]|0;if((c[c[(i?f+172|0:f+180|0)>>2]>>2]|0)==0?(k=f+157|0,(a[k>>0]|0)==0):0){a[k>>0]=1;wA(o,g);while(1){f=xA(o)|0;if(!f)break;if((a[(c[f+16>>2]|0)+159>>0]|0)==7){Wk(d,f,e,o);continue}else{li(d,f);mi(o,f,e);continue}}f=c[h>>2]|0}f=f+164|0}if(xA(o)|0)Zl(1,79159,m)|0;f=c[n>>2]|0;j=b[f+236>>1]|0;while(1){if((j|0)>(b[f+238>>1]|0))break;a[(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(j<<6)+49>>0]=0;if((c[f+116>>2]&1|0)!=0?(p=c[f+196>>2]|0,q=c[p+(j<<6)>>2]|0,(q|0)>0):0){g=c[p+(j<<6)+4>>2]|0;h=q+-1|0;i=(h|0)/2|0;f=0;while(1){if((f|0)>(i|0))break;fi(c[g+(f<<2)>>2]|0,c[g+(h-f<<2)>>2]|0);f=f+1|0}f=c[n>>2]|0}j=j+1|0}if((Uf(d)|0)==(d|0)?(Wh(0)|0)>0:0)$h(d,0);vA(o);l=r;return}function Zh(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=d+16|0;d=c[n>>2]|0;f=b[d+236>>1]|0;e=b[d+238>>1]|0;l=e<<16>>16;m=d+196|0;g=f;while(1){if((g|0)>(l|0))break;k=c[m>>2]|0;j=c[k+(g<<6)>>2]|0;k=k+(g<<6)+4|0;i=0;while(1){if((i|0)>=(j|0))break;o=c[(c[(c[k>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;c[o+236>>2]=~~+h[o+16>>3];i=i+1|0}g=g+1|0}while(1){if((f|0)>(e<<16>>16|0))break;a[(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(f<<6)+49>>0]=0;o=c[d+196>>2]|0;nL(c[o+(f<<6)+4>>2]|0,c[o+(f<<6)>>2]|0,4,14);o=c[n>>2]|0;f=f+1|0;e=b[o+238>>1]|0;d=o}return}function _h(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;g=((d|0)%4|0|0)<2&1;e=c[a+16>>2]|0;if(!(d&1)){d=b[e+236>>1]|0;f=1;e=b[e+238>>1]|0;d=(d<<16>>16<=(b[(c[(c[41927]|0)+16>>2]|0)+236>>1]|0)&1)+(d<<16>>16)|0}else{d=b[e+238>>1]|0;f=-1;e=b[e+236>>1]|0;d=((d<<16>>16>=(b[(c[(c[41927]|0)+16>>2]|0)+238>>1]|0))<<31>>31)+(d<<16>>16)|0}e=f+e|0;while(1){if((d|0)==(e|0))break;ii(a,d,g,(hi(a,d,d-f|0)|0)&255);d=d+f|0}$h(a,g^1);return}function $h(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=d+16|0;g=c[k>>2]|0;i=b[g+236>>1]|0;j=b[g+238>>1]|0;h=g+196|0;f=i<<16>>16;while(1){if((f|0)>(j|0)){h=i;break}a[(c[h>>2]|0)+(f<<6)+48>>0]=1;f=f+1|0}while(1){f=0;h=h<<16>>16;while(1){if((h|0)>(b[g+238>>1]|0))break;if(a[(c[g+196>>2]|0)+(h<<6)+48>>0]|0){f=(gi(d,h,e)|0)+f|0;g=c[k>>2]|0}h=h+1|0}if((f|0)<=0)break;h=b[g+236>>1]|0}return}function ai(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=d+16|0;e=c[o>>2]|0;n=b[e+238>>1]|0;a:while(1){if((n|0)<(b[e+236>>1]|0)){e=16;break}f=c[e+196>>2]|0;a[f+(n<<6)+48>>0]=0;p=(n|0)>0;q=n+1|0;g=0;b:while(1){l=(c[f+(n<<6)>>2]|0)+-1|0;m=f+(n<<6)+4|0;k=f+(q<<6)|0;while(1){if((g|0)>=(l|0))break b;j=c[m>>2]|0;i=c[j+(g<<2)>>2]|0;g=g+1|0;j=c[j+(g<<2)>>2]|0;if((c[(c[i+16>>2]|0)+236>>2]|0)>=(c[(c[j+16>>2]|0)+236>>2]|0)){e=7;break a}if(bi(d,i,j)|0)continue;if(p){f=ci(i,j)|0;h=ci(j,i)|0}else{f=0;h=0}if((c[k>>2]|0)>0){f=(di(i,j)|0)+f|0;h=(di(j,i)|0)+h|0}if((h|0)<=(f|0))break}ei(d,n,i,j);e=c[o>>2]|0;f=c[e+196>>2]|0}n=n+-1|0}if((e|0)==7)ma(79110,78628,721,79136);else if((e|0)==16)return}function bi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=c[d+16>>2]|0;i=c[j+212>>2]|0;f=c[e+16>>2]|0;g=c[f+212>>2]|0;h=(i|0)!=(g|0);do if(!(a[173889]|0))if((g|0)==0|((i|0)==0|h^1))k=9;else{if((a[j+159>>0]|0)==7?(a[j+156>>0]|0)==1:0){b=0;break}if((a[f+159>>0]|0)==7?(a[f+156>>0]|0)==1:0){b=0;break}b=1}else if(h)b=1;else k=9;while(0);if((k|0)==9){f=c[b+16>>2]|0;b=c[(c[f+196>>2]|0)+(c[j+232>>2]<<6)+56>>2]|0;if(!b)b=0;else{j=(c[f+116>>2]&1|0)==0;k=O(c[b+4>>2]|0,c[(c[(j?d:e)+16>>2]|0)+284>>2]|0)|0;b=a[(c[b+8>>2]|0)+((c[(c[(j?e:d)+16>>2]|0)+284>>2]|0)+k)>>0]|0}}return b|0}function ci(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+16|0;j=c[(c[d+16>>2]|0)+172>>2]|0;d=0;while(1){a=c[j>>2]|0;if(!a)break;i=c[a+16>>2]|0;k=b[i+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;i=i+16|0;f=c[(c[l>>2]|0)+172>>2]|0;a=d;while(1){d=c[f>>2]|0;if(!d)break;e=(c[(c[(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-g|0;if((e|0)<=0){if((e|0)==0?(m=c[d+16>>2]|0,+h[m+16>>3]>+h[i>>3]):0){d=m;n=9}}else{d=c[d+16>>2]|0;n=9}if((n|0)==9){n=0;a=(O(b[d+154>>1]|0,k)|0)+a|0}f=f+4|0}j=j+4|0;d=a}return d|0}function di(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+16|0;j=c[(c[d+16>>2]|0)+180>>2]|0;d=0;while(1){a=c[j>>2]|0;if(!a)break;i=c[a+16>>2]|0;k=b[i+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;i=i+56|0;f=c[(c[l>>2]|0)+180>>2]|0;a=d;while(1){d=c[f>>2]|0;if(!d)break;e=(c[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-g|0;if((e|0)<=0){if((e|0)==0?(m=c[d+16>>2]|0,+h[m+56>>3]>+h[i>>3]):0){d=m;n=9}}else{d=c[d+16>>2]|0;n=9}if((n|0)==9){n=0;a=(O(b[d+154>>1]|0,k)|0)+a|0}f=f+4|0}j=j+4|0;d=a}return d|0}function ei(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=a[(c[e+16>>2]|0)+156>>0]|0;if(i<<24>>24!=(a[(c[f+16>>2]|0)+156>>0]|0)){j=b+16|0;l=c[(c[j>>2]|0)+196>>2]|0;k=c[l+(d<<6)>>2]|0;l=l+(d<<6)+4|0;b=0;g=0;h=0;while(1){if((b|0)>=(k|0))break;o=(a[(c[(c[(c[l>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)==0;b=b+1|0;g=g+(o&1)|0;h=h+((o^1)&1)|0}i=i<<24>>24==0;h=(g|0)<(h|0)?(i?e:f):i?f:e;i=0;b=0;while(1){if((b|0)>=(k|0))break;i=(c[(c[l>>2]|0)+(b<<2)>>2]|0)==(h|0)?b:i;b=b+1|0}o=(a[(c[h+16>>2]|0)+156>>0]|0)==0&1;n=0;g=i;while(1){b=g+-1|0;if((g|0)<=0){m=0;b=i;break}if((a[(c[(c[(c[l>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0)){m=0;b=i;break}n=n+1|0;g=b}while(1){b=b+1|0;if((b|0)>=(k|0))break;if((a[(c[(c[(c[l>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0))break;m=m+1|0}fi(e,f);j=c[(c[j>>2]|0)+196>>2]|0;k=c[j+(d<<6)>>2]|0;j=j+(d<<6)+4|0;b=0;while(1){if((b|0)>=(k|0)){h=0;g=i;break}i=(c[(c[j>>2]|0)+(b<<2)>>2]|0)==(h|0)?b:i;b=b+1|0}while(1){b=g+-1|0;if((g|0)<=0){g=0;b=i;break}if((a[(c[(c[(c[j>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0)){g=0;b=i;break}h=h+1|0;g=b}while(1){b=b+1|0;if((b|0)>=(k|0))break;if((a[(c[(c[(c[j>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0))break;g=g+1|0}d=h-g|0;o=n-m|0;if((((d|0)>-1?d:0-d|0)|0)>(((o|0)>-1?o:0-o|0)|0))fi(e,f)}return}function fi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+16>>2]|0;e=c[f+232>>2]|0;f=f+236|0;d=c[f>>2]|0;g=b+16|0;h=c[(c[g>>2]|0)+236>>2]|0;c[f>>2]=h;f=(c[41927]|0)+16|0;c[(c[(c[(c[f>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(h<<2)>>2]=a;c[(c[g>>2]|0)+236>>2]=d;c[(c[(c[(c[f>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(d<<2)>>2]=b;return}function gi(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=d+16|0;n=c[(c[q>>2]|0)+196>>2]|0;a[n+(e<<6)+48>>0]=0;r=(e|0)>0;s=e+1|0;o=(f|0)!=0;p=e+-1|0;g=0;i=0;f=n;a:while(1){l=(c[f+(e<<6)>>2]|0)+-1|0;m=f+(e<<6)+4|0;h=f+(s<<6)|0;n=g;while(1){if((n|0)>=(l|0)){f=17;break a}k=c[m>>2]|0;j=c[k+(n<<2)>>2]|0;n=n+1|0;k=c[k+(n<<2)>>2]|0;if((c[(c[j+16>>2]|0)+236>>2]|0)>=(c[(c[k+16>>2]|0)+236>>2]|0)){f=5;break a}if(bi(d,j,k)|0)continue;if(r){f=ci(j,k)|0;g=ci(k,j)|0}else{f=0;g=0}if((c[h>>2]|0)>0){f=(di(j,k)|0)+f|0;g=(di(k,j)|0)+g|0}if((f|0)>(g|0))break;if((f|0)==(g|0)&(o&(f|0)>0)){f=g;break}}fi(j,k);i=f-g+i|0;g=c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0;a[g+(e<<6)+49>>0]=0;h=c[q>>2]|0;f=c[h+196>>2]|0;a[f+(e<<6)+48>>0]=1;if((b[h+236>>1]|0)<(e|0)){a[g+(p<<6)+49>>0]=0;a[f+(p<<6)+48>>0]=1}if((b[h+238>>1]|0)<=(e|0)){g=n;continue}a[g+(s<<6)+49>>0]=0;a[f+(s<<6)+48>>0]=1;g=n}if((f|0)==5)ma(79110,78628,770,79144);else if((f|0)==17)return i|0;return 0}function hi(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=c[41925]|0;q=a+16|0;a=c[(c[q>>2]|0)+196>>2]|0;r=c[a+(e<<6)+4>>2]|0;n=(f|0)>(e|0);o=p+4|0;m=0;while(1){f=c[a+(e<<6)>>2]|0;if((m|0)>=(f|0)){a=0;j=0;break}l=(c[r+(m<<2)>>2]|0)+16|0;a=c[l>>2]|0;a:do if(n){k=c[a+180>>2]|0;a=0;j=0;while(1){f=c[k+(j<<2)>>2]|0;if(!f)break a;g=c[f+16>>2]|0;if((b[g+154>>1]|0)>0){c[p+(a<<2)>>2]=c[(c[(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8|d[g+88>>0];a=a+1|0}j=j+1|0}}else{k=c[a+172>>2]|0;j=0;a=0;while(1){f=c[k+(j<<2)>>2]|0;if(!f)break a;g=c[f+16>>2]|0;if((b[g+154>>1]|0)>0){c[p+(a<<2)>>2]=c[(c[(c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8|d[g+48>>0];a=a+1|0}j=j+1|0}}while(0);b:do switch(a|0){case 0:{i=-1.0;break}case 1:{i=+(c[p>>2]|0);break}case 2:{i=+(((c[o>>2]|0)+(c[p>>2]|0)|0)/2|0|0);break}default:{nL(p,a,4,12);f=(a|0)/2|0;if(a&1|0){i=+(c[p+(f<<2)>>2]|0);break b}j=c[p+(f<<2)>>2]|0;g=(c[p+(a+-1<<2)>>2]|0)-j|0;a=c[p+(f+-1<<2)>>2]|0;f=a-(c[p>>2]|0)|0;if((f|0)==(g|0)){i=+((a+j|0)/2|0|0);break b}else{i=+(((O(f,j)|0)+(O(a,g)|0)|0)/(f+g|0)|0|0);break b}}}while(0);h[(c[l>>2]|0)+240>>3]=i;m=m+1|0;a=c[(c[q>>2]|0)+196>>2]|0}while(1){if((j|0)>=(f|0))break;g=c[r+(j<<2)>>2]|0;p=c[g+16>>2]|0;if((c[p+184>>2]|0)==0?(c[p+176>>2]|0)==0:0){a=(ji(g)|0|a&255)&255;f=c[(c[(c[q>>2]|0)+196>>2]|0)+(e<<6)>>2]|0}j=j+1|0}return a|0}function ii(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0;o=c[(c[b+16>>2]|0)+196>>2]|0;s=c[o+(d<<6)+4>>2]|0;o=c[o+(d<<6)>>2]|0;q=(e|0)!=0;p=(f|e|0)==0;f=0;e=o;o=s+(o<<2)|0;while(1){n=e+-1|0;if((e|0)>0)e=s;else break;a:while(1){b:while(1){if(e>>>0>=o>>>0)break a;while(1){if(e>>>0>=o>>>0)break a;l=c[e>>2]|0;m=+h[(c[l+16>>2]|0)+240>>3];if(!(m<0.0))break;e=e+4|0}k=0;while(1){g=k<<24>>24==0;while(1){e=e+4|0;if(e>>>0>=o>>>0)break a;if(g){g=11;break}i=c[e>>2]|0;if(!(c[(c[i+16>>2]|0)+212>>2]|0)){g=13;break}}if((g|0)==11){i=c[e>>2]|0;j=i}else if((g|0)==13)j=i;if(bi(b,l,j)|0)continue b;g=c[i+16>>2]|0;if(+h[g+240>>3]>=0.0)break;k=(c[g+212>>2]|0)==0?k:1}g=~~m;k=~~+h[(c[i+16>>2]|0)+240>>3];if((g|0)>(k|0)|q&(g|0)==(k|0))break}fi(l,j);f=f+1|0}e=n;o=p?o+-4|0:o}if(f|0?(r=c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0,a[r+(d<<6)+49>>0]=0,(d|0)>0):0)a[r+(d+-1<<6)+49>>0]=0;return}function ji(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0;g=c[a+16>>2]|0;if((c[g+200>>2]|0)>0){f=c[g+196>>2]|0;a=c[f>>2]|0;a=c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0;d=1;while(1){e=c[f+(d<<2)>>2]|0;if(!e)break;e=c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0;a=(c[(c[e+16>>2]|0)+236>>2]|0)>(c[(c[a+16>>2]|0)+236>>2]|0)?e:a;d=d+1|0}b=+h[(c[a+16>>2]|0)+240>>3];if(!(b>=0.0))a=1;else{h[g+240>>3]=b+1.0;a=0}}else if((c[g+192>>2]|0)>0){e=c[g+188>>2]|0;d=c[e>>2]|0;a=1;d=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;while(1){f=c[e+(a<<2)>>2]|0;if(!f)break;f=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;a=a+1|0;d=(c[(c[f+16>>2]|0)+236>>2]|0)<(c[(c[d+16>>2]|0)+236>>2]|0)?f:d}b=+h[(c[d+16>>2]|0)+240>>3];if(b>0.0){h[g+240>>3]=b+-1.0;a=0}else a=1}else a=1;return a|0}function ki(a,b){a=a|0;b=b|0;return (c[(c[(c[a>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[b>>2]|0)+16>>2]|0)+236>>2]|0)|0}function li(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+96|0;o=p+64|0;n=p+48|0;h=p+24|0;f=p;j=d+16|0;k=c[(c[j>>2]|0)+232>>2]|0;m=a+16|0;e=c[(c[m>>2]|0)+196>>2]|0;i=c[e+(k<<6)>>2]|0;do if((c[e+(k<<6)+8>>2]|0)>=1){c[(c[e+(k<<6)+4>>2]|0)+(i<<2)>>2]=d;c[(c[j>>2]|0)+236>>2]=i;a=c[m>>2]|0;f=c[a+196>>2]|0;e=f+(k<<6)|0;g=c[e>>2]|0;c[e>>2]=g+1;if((g|0)>=(c[f+(k<<6)+8>>2]|0))ma(79224,78628,1346,79260);g=c[(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;if((i|0)>(g|0)){m=Cn(d)|0;n=c[(c[j>>2]|0)+236>>2]|0;o=c[(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;c[h>>2]=1359;c[h+4>>2]=m;c[h+8>>2]=n;c[h+12>>2]=k;c[h+16>>2]=o;Zl(1,79276,h)|0;break}e=b[a+236>>1]|0;a=b[a+238>>1]|0;if((k|0)<(e|0)|(k|0)>(a<<16>>16|0)){c[n>>2]=1364;c[n+4>>2]=k;c[n+8>>2]=e;c[n+12>>2]=a<<16>>16;Zl(1,79349,n)|0;break}if(((c[f+(k<<6)+4>>2]|0)+(i<<2)|0)>>>0>((c[f+(k<<6)+12>>2]|0)+(g<<2)|0)>>>0){i=Cn(d)|0;n=c[(c[m>>2]|0)+196>>2]|0;m=(c[n+(k<<6)+4>>2]|0)+(c[(c[j>>2]|0)+236>>2]<<2)|0;n=(c[n+(k<<6)+12>>2]|0)+(c[(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]<<2)|0;c[o>>2]=1370;c[o+4>>2]=k;c[o+8>>2]=i;c[o+12>>2]=m;c[o+16>>2]=k;c[o+20>>2]=k;c[o+24>>2]=n;Zl(1,79410,o)|0}}else{n=Cn(a)|0;o=Cn(d)|0;c[f>>2]=1339;c[f+4>>2]=n;c[f+8>>2]=o;c[f+12>>2]=k;c[f+16>>2]=i;Zl(1,79169,f)|0}while(0);l=p;return}function mi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=d+16|0;a:do if(!e){g=0;while(1){d=c[h>>2]|0;if((g|0)>=(c[d+184>>2]|0))break a;d=c[(c[d+180>>2]|0)+(g<<2)>>2]|0;e=d+-48|0;f=(c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[f>>0]|0)){a[f>>0]=1;wA(b,c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)}g=g+1|0}}else{g=0;while(1){d=c[h>>2]|0;if((g|0)>=(c[d+176>>2]|0))break a;d=c[(c[d+172>>2]|0)+(g<<2)>>2]|0;e=d+48|0;f=(c[(c[((c[d>>2]&3|0)==3?d:e)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[f>>0]|0)){a[f>>0]=1;wA(b,c[((c[d>>2]&3|0)==3?d:e)+40>>2]|0)}g=g+1|0}}while(0);return}function ni(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;u=v;g=d+16|0;f=c[(c[g>>2]|0)+196>>2]|0;s=c[f+(e<<6)+4>>2]|0;t=e+1|0;d=c[(c[(c[(c[41927]|0)+16>>2]|0)+196>>2]|0)+(t<<6)>>2]|0;if((c[41931]|0)>(d|0))q=c[41932]|0;else{d=d+1|0;c[41931]=d;f=c[41932]|0;if(!f)d=rw(d<<2)|0;else d=tw(f,d<<2)|0;c[41932]=d;f=c[(c[g>>2]|0)+196>>2]|0;q=d}r=f+(t<<6)|0;d=0;while(1){if((d|0)>=(c[r>>2]|0))break;c[q+(d<<2)>>2]=0;d=d+1|0}p=f+(e<<6)|0;o=0;h=0;d=0;j=q;while(1){k=c[p>>2]|0;if((o|0)>=(k|0))break;n=c[(c[(c[s+(o<<2)>>2]|0)+16>>2]|0)+180>>2]|0;a:do if((h|0)>0){m=0;while(1){g=c[n+(m<<2)>>2]|0;if(!g)break a;k=g+16|0;i=c[(c[(c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;while(1){g=i+1|0;if((i|0)>=(h|0))break;i=g;d=(O(c[j+(g<<2)>>2]|0,b[(c[k>>2]|0)+154>>1]|0)|0)+d|0}m=m+1|0}}while(0);i=0;while(1){g=c[n+(i<<2)>>2]|0;if(!g)break;j=c[(c[(c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;m=q+(j<<2)|0;c[m>>2]=(c[m>>2]|0)+(b[(c[g+16>>2]|0)+154>>1]|0);h=(j|0)>(h|0)?j:h;i=i+1|0;j=q}o=o+1|0}i=f+(e<<6)+4|0;h=0;while(1){if((h|0)>=(k|0))break;g=c[(c[(c[i>>2]|0)+(h<<2)>>2]|0)+16>>2]|0;if(a[g+145>>0]|0){e=g+180|0;c[u>>2]=c[e>>2];c[u+4>>2]=c[e+4>>2];d=(oi(u,1)|0)+d|0}h=h+1|0}i=c[r>>2]|0;h=f+(t<<6)+4|0;g=0;while(1){if((g|0)>=(i|0))break;f=c[(c[(c[h>>2]|0)+(g<<2)>>2]|0)+16>>2]|0;if(a[f+145>>0]|0){t=f+172|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];d=(oi(u,-1)|0)+d|0}g=g+1|0}l=v;return d|0}function oi(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;n=(d|0)<1;l=c[a>>2]|0;d=0;a=0;a:while(1){m=c[l+(d<<2)>>2]|0;if(!m)break;d=d+1|0;if(n){j=m+48|0;k=m+16|0;i=d;while(1){e=c[l+(i<<2)>>2]|0;if(!e)continue a;f=c[e+16>>2]|0;g=c[k>>2]|0;if((+h[f+56>>3]-+h[g+56>>3])*+((c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[((c[m>>2]&3|0)==3?m:j)+40>>2]|0)+16>>2]|0)+236>>2]|0)|0)<0.0)a=(O(b[f+154>>1]|0,b[g+154>>1]|0)|0)+a|0;i=i+1|0}}else{j=m+-48|0;k=m+16|0;i=d;while(1){e=c[l+(i<<2)>>2]|0;if(!e)continue a;f=c[e+16>>2]|0;g=c[k>>2]|0;if((+h[f+16>>3]-+h[g+16>>3])*+((c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[((c[m>>2]&3|0)==2?m:j)+40>>2]|0)+16>>2]|0)+236>>2]|0)|0)<0.0)a=(O(b[f+154>>1]|0,b[g+154>>1]|0)|0)+a|0;i=i+1|0}}}return a|0}function pi(a){a=a|0;var b=0.0,d=0.0;c[41930]=8;c[42180]=24;h[20878]=.995;a=Hm(a,79532)|0;if(a|0?(b=+oM(a),b>0.0):0){d=b*+(c[41930]|0);c[41930]=~~(d>1.0?d:1.0);b=b*+(c[42180]|0);c[42180]=~~(b>1.0?b:1.0)}return}function qi(a){a=a|0;var d=0,e=0;e=(b[(c[a+16>>2]|0)+238>>1]|0)+2|0;d=qw(e<<2)|0;si(a,d,e,0)|0;XI(d);return}+function zB(a,b){a=a|0;b=b|0;if((+h[a+16>>3]>=+h[b>>3]?+h[b+16>>3]>=+h[a>>3]:0)?+h[a+24>>3]>=+h[b+8>>3]:0)a=+h[b+24>>3]>=+h[a+8>>3]&1;else a=0;return a|0}function AB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+96|0;k=n+64|0;j=n+48|0;i=n+32|0;f=n+16|0;g=n;m=a+4|0;d=c[m>>2]|0;if(!d)ma(94703,92638,1637,94711);e=c[a>>2]|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];e=1;while(1){if((e|0)>=(d|0)){h=7;break}d=(c[a>>2]|0)+(e<<4)|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];c[k+16>>2]=c[b+16>>2];c[k+20>>2]=c[b+20>>2];c[k+24>>2]=c[b+24>>2];c[k+28>>2]=c[b+28>>2];if((Tv(i,j,k)|0)!=-1){d=1;break};c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];e=e+1|0;d=c[m>>2]|0}do if((h|0)==7){d=c[a+8>>2]|0;if(d|0?(g=a+16|0,h=c[a>>2]|0,c[i>>2]=c[g>>2],c[i+4>>2]=c[g+4>>2],c[i+8>>2]=c[g+8>>2],c[i+12>>2]=c[g+12>>2],c[j>>2]=c[h>>2],c[j+4>>2]=c[h+4>>2],c[j+8>>2]=c[h+8>>2],c[j+12>>2]=c[h+12>>2],c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(BB(i,j,d,k)|0)<<24>>24):0){d=1;break}d=c[a+12>>2]|0;if(d|0?(h=a+32|0,m=(c[a>>2]|0)+((c[m>>2]|0)+-1<<4)|0,c[i>>2]=c[h>>2],c[i+4>>2]=c[h+4>>2],c[i+8>>2]=c[h+8>>2],c[i+12>>2]=c[h+12>>2],c[j>>2]=c[m>>2],c[j+4>>2]=c[m+4>>2],c[j+8>>2]=c[m+8>>2],c[j+12>>2]=c[m+12>>2],c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(BB(i,j,d,k)|0)<<24>>24):0){d=1;break}d=0}while(0);l=n;return d|0}function BB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0;m=l;l=l+160|0;g=m+144|0;f=m+128|0;n=m+96|0;i=m+64|0;j=m+32|0;k=m;o=+h[e+16>>3];c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];Mt(n,f,g,1.0,d);if(((o>=+h[n>>3]?(c[f>>2]=c[a>>2],c[f+4>>2]=c[a+4>>2],c[f+8>>2]=c[a+8>>2],c[f+12>>2]=c[a+12>>2],c[g>>2]=c[b>>2],c[g+4>>2]=c[b+4>>2],c[g+8>>2]=c[b+8>>2],c[g+12>>2]=c[b+12>>2],Mt(i,f,g,1.0,d),+h[i+16>>3]>=+h[e>>3]):0)?(o=+h[e+24>>3],c[f>>2]=c[a>>2],c[f+4>>2]=c[a+4>>2],c[f+8>>2]=c[a+8>>2],c[f+12>>2]=c[a+12>>2],c[g>>2]=c[b>>2],c[g+4>>2]=c[b+4>>2],c[g+8>>2]=c[b+8>>2],c[g+12>>2]=c[b+12>>2],Mt(j,f,g,1.0,d),o>=+h[j+8>>3]):0)?(c[f>>2]=c[a>>2],c[f+4>>2]=c[a+4>>2],c[f+8>>2]=c[a+8>>2],c[f+12>>2]=c[a+12>>2],c[g>>2]=c[b>>2],c[g+4>>2]=c[b+4>>2],c[g+8>>2]=c[b+8>>2],c[g+12>>2]=c[b+12>>2],Mt(k,f,g,1.0,d),+h[k+24>>3]>=+h[e+8>>3]):0)f=1;else f=0;l=m;return f|0}function CB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;a:do if((b|0)!=0?(e=a[b>>0]|0,e<<24>>24!=0):0){do switch(e<<24>>24|0){case 48:{d=2;break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{d=10;break a}case 67:case 99:{e=b+1|0;if(!(eK(e,94726)|0)){d=4;break a}if(!(eK(e,94732)|0)){d=12;break a}break}case 70:case 102:{if(!(eK(b+1|0,94740)|0)){d=2;break a}break}case 76:case 108:{if(!(eK(b+1|0,94745)|0)){d=2;break a}break}case 78:case 110:{e=b+1|0;if(!(eK(e,94749)|0)){d=0;break a}if(!(eK(e,94753)|0)){d=2;break a}break}case 79:case 111:{if(!(eK(b+1|0,94755)|0)){d=8;break a}break}case 80:case 112:{if(!(eK(b+1|0,94760)|0)){d=6;break a}break}case 83:case 115:{if(!(eK(b+1|0,94768)|0)){d=10;break a}break}case 84:case 116:{if(!(eK(b+1|0,94774)|0)){d=10;break a}break}case 89:case 121:{if(!(eK(b+1|0,94778)|0)){d=10;break a}break}default:{}}while(0);c[f>>2]=b;Zl(0,94781,f)|0}while(0);l=g;return d|0}function DB(d,f){d=d|0;f=f|0;var g=0;g=Hm(d,94822)|0;if(g)if(!(a[g>>0]|0))f=0;else f=CB(g,f)|0;d=(c[d+16>>2]|0)+136|0;b[d>>1]=f|e[d>>1];return}function EB(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0.0,p=0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0;v=l;l=l+32|0;p=v+16|0;r=v;t=e&1;u=e&2;a:do if((c|0)==2){s=+h[a+16>>3];f=+h[a>>3];j=+h[a+24>>3];i=+h[a+8>>3];f=f-(s-f);h[p>>3]=f;h[r>>3]=s;i=i-(j-i);h[p+8>>3]=i;h[r+8>>3]=j}else{g=+h[a>>3];h[r>>3]=g;h[p>>3]=g;j=+h[a+8>>3];m=r+8|0;h[m>>3]=j;n=p+8|0;h[n>>3]=j;e=0;f=g;i=j;while(1){if((e|0)>=(c|0)){s=g;break a}w=a+(e<<4)|0;q=+h[w>>3];k=+h[(q<f?w:p)>>3];h[p>>3]=k;s=+h[a+(e<<4)+8>>3];o=+h[(s<i?w:p)+8>>3];h[n>>3]=o;q=+h[(q>g?w:r)>>3];h[r>>3]=q;s=+h[(s>j?w:r)+8>>3];h[m>>3]=s;e=e+1|0;f=k;i=o;g=q;j=s}}while(0);g=(s-f)*.5;q=g+f;o=(j-i)*.5;k=o+i;if(!t){f=j-k;j=d;i=+F(+j);j=+E(+j);if(!u){g=i*f-k;f=-k-o*i}else{f=i*f;g=k-f;f=f+k}h[b+8>>3]=g;h[b+24>>3]=f;d=j*(s-q);h[b>>3]=q-d;h[b+16>>3]=d+q}else{d=+C(+(o*o+g*g));h[b+8>>3]=u|0?k:-k;h[b>>3]=q;h[b+16>>3]=d*.25;h[b+24>>3]=d}l=v;return}function FB(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;e=a+16|0;f=c[e>>2]|0;if(!(b<<24>>24)){d=+h[f+32>>3]*36.0;h[f+88>>3]=d;a=f+40|0}else{d=+h[f+40>>3]*36.0;h[f+88>>3]=d;a=f+32|0}h[f+96>>3]=d;h[(c[e>>2]|0)+80>>3]=+h[a>>3]*72.0;return}function GB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0;y=l;l=l+16|0;j=y+8|0;x=4;w=WI(40)|0;c[w>>2]=0;s=y;o=0;e=_(22,b|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;a:do if((g|0)!=1){o=0;v=_(23,e<<3|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){e=ON(c[f>>2]|0,w|0,x|0)|0;if(!e)Ua(f|0,p|0);z=p}else e=-1;if((e|0)!=1){if(!(a[174072]|0))t=0;else{o=0;e=Z(2)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){n=0;k=0;m=0;j=0;i=0;d=v;h=v;e=z;g=0;u=74;break}t=e}o=0;e=$(31,b|0,94830)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)!=1){c[42365]=0;b:do if(e|0?(i=a[e>>0]|0,i<<24>>24):0){h=e;f=i;g=0;while(1){i=h+1|0;if(!(f<<24>>24))break b;switch(f<<24>>24|0){case 99:{e=8;u=16;break}case 105:{e=18;u=16;break}case 109:{e=1;u=16;break}case 114:{e=4;u=16;break}case 115:{e=2;u=16;break}default:e=g}if((u|0)==16){u=0;e=g|e;c[42365]=e}h=i;f=a[i>>0]|0;g=e}}while(0);if(d|0){o=0;aa(11,0,94834,j|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){n=0;k=t;m=0;j=0;i=0;d=v;h=v;e=z;g=0;u=74;break}}o=0;r=$(32,b|0,0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){m=c[r+16>>2]|0;if(c[42365]&2|0){o=0;ga(25,c[13918]|0,m|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){n=0;k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break}}o=0;g=_(24,b|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){n=0;while(1){if(!g)break;o=0;e=$(33,b|0,g|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){h=ON(c[f>>2]|0,w|0,x|0)|0;if(!h)Ua(f|0,p|0);z=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}i=n;while(1){if(!e)break;if(!(0==2?(c[(c[e+16>>2]|0)+8>>2]|0)!=0:0))u=32;c:do if((u|0)==32){u=0;do if(a[174072]|0){k=c[e>>2]&3;j=(c[c[((k|0)==3?e:e+48|0)+40>>2]>>2]|0)>>>4;k=(c[c[((k|0)==2?e:e+-48|0)+40>>2]>>2]|0)>>>4;if(j>>>0>k>>>0){o=0;f=aa(15,t|0,k|0,j|0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){d=ON(c[h>>2]|0,w|0,x|0)|0;if(!d)Ua(h|0,p|0);z=p}else d=-1;if((d|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}if(f|0)break c;o=0;ha(59,t|0,k|0,j|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){h=ON(c[f>>2]|0,w|0,x|0)|0;if(!h)Ua(f|0,p|0);z=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}break}else{o=0;f=aa(15,t|0,j|0,k|0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){d=ON(c[h>>2]|0,w|0,x|0)|0;if(!d)Ua(h|0,p|0);z=p}else d=-1;if((d|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}if(f|0)break c;o=0;ha(59,t|0,j|0,k|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){h=ON(c[f>>2]|0,w|0,x|0)|0;if(!h)Ua(f|0,p|0);z=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}break}}while(0);c[v+(i<<3)+4>>2]=e;o=0;h=_(25,e|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){f=ON(c[d>>2]|0,w|0,x|0)|0;if(!f)Ua(d|0,p|0);z=p}else f=-1;if((f|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}c[v+(i<<3)>>2]=h;i=i+1|0}while(0);o=0;e=$(34,b|0,e|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){h=ON(c[f>>2]|0,w|0,x|0)|0;if(!h)Ua(f|0,p|0);z=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}}o=0;g=$(35,b|0,g|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74;break a}n=i}o=0;j=_(26,n<<3|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){o=0;ja(25,v|0,n|0,8,36);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){g=c[m>>2]|0;o=0;fa(87,g+2|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){i=c[m+16>>2]|0;d=i+(g*40|0)|0;i=i+((g+1|0)*40|0)|0;q=c[13918]|0;h=0;while(1){if((h|0)>=(n|0))break;if((h|0)>0?c[42365]&16|0:0){o=0;ga(25,q|0,m|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74;break a}}e=c[v+(h<<3)+4>>2]|0;k=c[e>>2]&3;g=c[(c[(c[((k|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;e=c[(c[(c[((k|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if((g|0)==(e|0)){o=0;ja(26,m|0,g|0,i|0,d|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74;break a}}else{o=0;ha(60,m|0,e|0,i|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74;break a}o=0;ha(60,m|0,g|0,d|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74;break a}}o=0;e=aa(16,m|0,i|0,d|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74;break a}if(e|0){k=t;m=j;i=r;d=v;h=v;break a}e=j+(h<<3)|0;o=0;ja(27,s|0,m|0,d|0,i|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74;break a}g=s;k=c[g+4>>2]|0;c[e>>2]=c[g>>2];c[e+4>>2]=k;o=0;fa(88,m|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74;break a}h=h+1|0}o=0;ea(8);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){o=0;e=_(27,r|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)!=1){c[r+20>>2]=e;o=0;e=_(28,r|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)!=1){c[r+24>>2]=e;o=0;ha(61,n|0,j|0,r|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){w=NN(169464,1,w|0,x|0)|0;x=z;o=0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)!=1){k=t;m=j;i=r;d=v;h=v;e=0;g=q;u=74}else{k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=z;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=z;g=0;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=z;g=0;u=74}}else{k=t;m=0;i=r;d=v;h=v;e=z;g=0;u=74}}else{n=0;k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74}}else{n=0;k=t;m=0;j=0;i=r;d=v;h=v;e=z;g=0;u=74}}else{n=0;k=t;m=0;j=0;i=0;d=v;h=v;e=z;g=0;u=74}}else{n=0;k=0;m=0;j=0;i=0;d=0;h=v;e=z;g=0;u=74}}else{n=0;k=0;m=0;j=0;i=0;d=0;h=0;e=z;g=0;u=74}while(0);d:while(1){if((u|0)==74){u=0;if(e|0){q=g;continue}o=0;fa(89,i|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){A=g;f=h;q=d;r=i;s=j;t=m;v=k;u=n;e=z;g=A;h=f;d=q;i=r;j=s;m=t;k=v;n=u;u=74;continue}if(c[42365]&4|0){o=0;ka(7,g|0,i|0,n|0,m|0,d|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){f=g;q=h;r=d;s=i;t=j;v=m;A=k;u=n;e=z;g=f;h=q;d=r;i=s;j=t;m=v;k=A;n=u;u=74;continue}}o=0;la(10,b|0,i|0,n|0,m|0,d|0,0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){f=g;q=h;r=d;s=i;t=j;v=m;A=k;u=n;e=z;g=f;h=q;d=r;i=s;j=t;m=v;k=A;n=u;u=74;continue}q=g}if(!(a[174072]|0))e=0;else{o=0;fa(90,k|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;g=q;u=74;continue}e=0}while(1){if((e|0)>=(n|0))break;o=0;fa(91,c[m+(e<<3)+4>>2]|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,w|0,x|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;g=q;u=74;continue d}e=e+1|0}o=0;fa(91,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;g=q;u=74;continue}o=0;fa(92,i|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;g=q;u=74;continue}o=0;fa(91,h|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,w|0,x|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;g=q;u=74}else break}XI(w|0);l=y;return}function HB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+64|0;p=q+32|0;o=q+16|0;j=q;k=q+48|0;SL(95701,a)|0;SL(95712,a)|0;m=b+16|0;n=j+8|0;i=k+4|0;g=0;while(1){if((g|0)>=(c[b>>2]|0))break;d=c[m>>2]|0;e=c[d+(g*40|0)+20>>2]|0;f=c[d+(g*40|0)+24>>2]|0;if((e|0)==(f|0)){AC(j,e);d=~~+h[j>>3];e=~~+h[n>>3]}else{CC(k,(c[e>>2]&1|0)==0?e:f,d+(g*40|0)|0);d=c[k>>2]|0;e=c[i>>2]|0}c[o>>2]=g;c[o+4>>2]=d;c[o+8>>2]=e;vL(a,95732,o)|0;g=g+1|0}f=b+4|0;e=b+20|0;d=0;while(1){if((d|0)>=(c[f>>2]|0))break;o=c[e>>2]|0;b=c[o+(d*24|0)+16>>2]|0;r=+h[o+(d*24|0)>>3];c[p>>2]=c[o+(d*24|0)+12>>2];c[p+4>>2]=b;h[p+8>>3]=r;vL(a,95752,p)|0;d=d+1|0}SL(95774,a)|0;l=q;return}function IB(a){a=a|0;var b=0.0,d=0.0,e=0,f=0;f=c[a>>2]&3;e=c[(c[((f|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;a=c[(c[((f|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;b=+h[e+16>>3]-+h[a+16>>3];d=+h[e+24>>3]-+h[a+24>>3];return ~~(d*d+b*b)|0}function JB(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function KB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;j=n;AC(n+16|0,d);k=d+32|0;m=d+36|0;g=0;while(1){if((g|0)>=(c[k>>2]|0))break;h=c[(c[m>>2]|0)+(g<<2)>>2]|0;do if(!(a[h+36>>0]|0)){i=c[h+20>>2]|0;if((i|0)==(d|0)){yC(j,h,c[h+24>>2]|0);TC(b,f,h,0.0)|0;break}else{yC(j,h,i);TC(b,e,h,0.0)|0;break}}while(0);g=g+1|0}c[b>>2]=(c[b>>2]|0)+2;l=n;return}function LB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;h=k;AC(k+16|0,b);i=b+32|0;j=b+36|0;f=0;while(1){if((f|0)>=(c[i>>2]|0))break;g=c[(c[j>>2]|0)+(f<<2)>>2]|0;e=c[g+20>>2]|0;if((e|0)==(b|0))e=c[g+24>>2]|0;yC(h,g,e);TC(a,d,g,0.0)|0;f=f+1|0}c[a>>2]=(c[a>>2]|0)+1;c[d+24>>2]=b;c[d+20>>2]=b;l=k;return}function MB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+128|0;C=H+64|0;n=H+48|0;D=H+32|0;E=H+16|0;F=H;g=0;i=e;while(1){if(!i)break;g=g+1|0;i=c[i+8>>2]|0}B=qw((g*56|0)+-112|0)|0;c[C+52>>2]=0;c[C+48>>2]=0;A=e+8|0;e=c[A>>2]|0;i=c[e+8>>2]|0;g=c[e+20>>2]|0;if(c[g>>2]&1)g=c[e+24>>2]|0;yC(n,e,g);j=e;q=e;p=0.0;o=+h[n>>3];z=0;m=0.0;x=+h[n+8>>3];while(1){y=i+8|0;if(!(c[y>>2]|0))break;v=zC(j,i)|0;rG(d,v,c[q+12>>2]|0);t=q+36|0;u=i+36|0;if((a[t>>0]|0)==(a[u>>0]|0))if((c[y>>2]|0)==(f|0)){yC(E,i,v);e=E;G=12}else{j=q;e=z;k=x}else{AC(D,v);e=D;G=12}if((G|0)==12){G=0;w=+h[e>>3];k=+h[e+8>>3];e=a[t>>0]|0;s=e<<24>>24==0;r=(q|0)==(c[A>>2]|0);if(s){if(!(a[u>>0]|0))e=0;else e=(c[i+20>>2]|0)==(v|0)?4:2;n=v+48|0;q=g+48|0;j=g+40|0;g=r?0:p>o?4:2}else{if(e<<24>>24==(a[u>>0]|0))e=0;else e=(c[i+20>>2]|0)==(v|0)?1:3;n=v+40|0;q=g+40|0;j=g+48|0;g=r?0:m>x?1:3}BC(C,s&1,+h[j>>3],+h[q>>3],+h[n>>3],g,e);q=z+1|0;g=B+(z*56|0)|0;e=C;j=g+56|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(j|0));if((a[t>>0]|0)!=(a[u>>0]|0)?(c[y>>2]|0)==(f|0):0){yC(F,i,v);n=(a[u>>0]|0)==0;e=v+40|0;g=v+48|0;p=+h[(n?g:e)>>3];BC(C,n&1,+h[(n?e:g)>>3],p,p,n?(o>w?4:2):x>k?1:3,0);n=z+2|0;g=B+(q*56|0)|0;e=C;j=g+56|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(j|0));g=v;j=i;p=o;o=w;e=n;m=x}else{g=v;j=i;p=o;o=w;e=q;m=x}}v=i;i=c[y>>2]|0;q=j;z=e;x=k;j=v}i=ZI(B,z*56|0)|0;e=z+-1|0;g=0;while(1){if((g|0)>=(z|0))break;if((g|0)>0)c[i+(g*56|0)+48>>2]=i+((g+-1|0)*56|0);if((g|0)<(e|0)){G=g+1|0;c[i+(g*56|0)+52>>2]=i+(G*56|0);g=G;continue}else{g=g+1|0;continue}}c[b>>2]=z;c[b+4>>2]=i;l=H;return}function NB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0;j=Pl(24676,c[4345]|0)|0;k=a+8|0;i=0;while(1){if((i|0)>=(c[a>>2]|0))break;b=(c[k>>2]|0)+(i*72|0)|0;if(!(c[b>>2]&4)){while(1){d=c[(c[b+36>>2]|0)+8>>2]|0;if(!d)break;d=c[d+20>>2]|0;if(!d)break;if(!(c[d>>2]&1))b=d;else break}g=qw(40)|0;c[g+36>>2]=b;h[g+8>>3]=+h[b+40>>3];f=b;d=c[b>>2]|0;while(1){c[f>>2]=d|4;d=c[c[f+36>>2]>>2]|0;if(!d)break;e=c[d+24>>2]|0;if(!e)break;d=c[e>>2]|0;if(d&1|0)break;else f=e}h[g+16>>3]=+h[f+56>>3];tC(j,g,+h[b+48>>3])}i=i+1|0}return j|0}function OB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0;j=Pl(24676,c[4345]|0)|0;k=a+8|0;i=0;while(1){if((i|0)>=(c[a>>2]|0))break;b=(c[k>>2]|0)+(i*72|0)|0;if(!(c[b>>2]&2)){while(1){d=c[(c[b+36>>2]|0)+12>>2]|0;if(!d)break;d=c[d+20>>2]|0;if(!d)break;if(!(c[d>>2]&1))b=d;else break}g=qw(40)|0;c[g+36>>2]=b;h[g+8>>3]=+h[b+48>>3];f=b;d=c[b>>2]|0;while(1){c[f>>2]=d|2;d=c[(c[f+36>>2]|0)+4>>2]|0;if(!d)break;e=c[d+24>>2]|0;if(!e)break;d=c[e>>2]|0;if(d&1|0)break;else f=e}h[g+16>>3]=+h[f+64>>3];tC(j,g,+h[b+40>>3])}i=i+1|0}return j|0}function PB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=e+20|0;i=e+24|0;e=0;while(1){if((e|0)>=(b|0))break;g=c[d+(e<<3)>>2]|0;h=c[d+(e<<3)+4>>2]|0;f=0;while(1){if((f|0)>=(g|0))break;k=h+(f*56|0)|0;sC(YB(c[((a[k>>0]|0)==0?j:i)>>2]|0,k)|0,k);f=f+1|0}e=e+1|0}return}function QB(a){a=a|0;var b=0,d=0;d=a+20|0;_B(c[d>>2]|0);b=a+24|0;_B(c[b>>2]|0);$B(c[d>>2]|0);$B(c[b>>2]|0);aC(c[d>>2]|0,a);aC(c[b>>2]|0,a);bC(c[d>>2]|0);bC(c[b>>2]|0);return}function RB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0,E=0.0;z=l;l=l+224|0;n=z+176|0;m=z+208|0;x=z+160|0;y=z+128|0;k=z+96|0;t=z+64|0;u=z;o=z+32|0;v=u+8|0;h[v>>3]=1797693134862315708145274.0e284;h[u>>3]=1797693134862315708145274.0e284;w=u+24|0;h[w>>3]=-1797693134862315708145274.0e284;p=u+16|0;h[p>>3]=-1797693134862315708145274.0e284;SL(94949,a)|0;c[n>>2]=10;c[n+4>>2]=10;vL(a,95355,n)|0;SL(123076,a)|0;i=b+4|0;j=b+12|0;q=t+8|0;r=t+16|0;s=t+24|0;g=0;while(1){if((g|0)>=(c[i>>2]|0))break;D=(c[j>>2]|0)+(g*72|0)+40|0;c[t>>2]=c[D>>2];c[t+4>>2]=c[D+4>>2];c[t+8>>2]=c[D+8>>2];c[t+12>>2]=c[D+12>>2];c[t+16>>2]=c[D+16>>2];c[t+20>>2]=c[D+20>>2];c[t+24>>2]=c[D+24>>2];c[t+28>>2]=c[D+28>>2];C=+h[q>>3];B=+h[r>>3];A=+h[s>>3];h[k>>3]=+h[t>>3];h[k+8>>3]=C;h[k+16>>3]=B;h[k+24>>3]=A;vL(a,123095,k)|0;g=g+1|0}g=0;while(1){if((g|0)>=(d|0))break;D=c[f+(g<<3)+4>>2]|0;k=e+(g<<3)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[n>>2]=c[u>>2];c[n+4>>2]=c[u+4>>2];c[n+8>>2]=c[u+8>>2];c[n+12>>2]=c[u+12>>2];c[n+16>>2]=c[u+16>>2];c[n+20>>2]=c[u+20>>2];c[n+24>>2]=c[u+24>>2];c[n+28>>2]=c[u+28>>2];ZB(o,a,D,m,b,n);c[u>>2]=c[o>>2];c[u+4>>2]=c[o+4>>2];c[u+8>>2]=c[o+8>>2];c[u+12>>2]=c[o+12>>2];c[u+16>>2]=c[o+16>>2];c[u+20>>2]=c[o+20>>2];c[u+24>>2]=c[o+24>>2];c[u+28>>2]=c[o+28>>2];g=g+1|0}SL(95372,a)|0;i=b+8|0;g=0;while(1){if((g|0)>=(c[b>>2]|0))break;D=(c[i>>2]|0)+(g*72|0)+40|0;c[t>>2]=c[D>>2];c[t+4>>2]=c[D+4>>2];c[t+8>>2]=c[D+8>>2];c[t+12>>2]=c[D+12>>2];c[t+16>>2]=c[D+16>>2];c[t+20>>2]=c[D+20>>2];c[t+24>>2]=c[D+24>>2];c[t+28>>2]=c[D+28>>2];E=+h[t>>3];A=+h[q>>3];B=+h[r>>3];C=+h[s>>3];h[y>>3]=E;h[y+8>>3]=A;h[y+16>>3]=B;h[y+24>>3]=C;vL(a,123132,y)|0;h[u>>3]=+h[(+h[u>>3]<E?u:t)>>3];h[v>>3]=+h[(+h[v>>3]<A?u:t)+8>>3];h[p>>3]=+h[(+h[p>>3]>B?u:t)+16>>3];h[w>>3]=+h[(+h[w>>3]>C?u:t)+24>>3];g=g+1|0}v=~~(+h[v>>3]+10.0);y=~~(+h[p>>3]+10.0);D=~~(+h[w>>3]+10.0);c[x>>2]=~~(+h[u>>3]+10.0);c[x+4>>2]=v;c[x+8>>2]=y;c[x+12>>2]=D;vL(a,95397,x)|0;l=z;return}function SB(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;N=l;l=l+112|0;F=N+88|0;E=N+72|0;M=N+32|0;I=N+16|0;J=N;K=N+56|0;L=N+40|0;G=c[13918]|0;w=(i|0)==0;x=J+8|0;y=I+8|0;v=0;m=0;n=0;o=0;p=0;i=0;while(1){if((v|0)>=(e|0))break;z=c[g+(v<<3)+4>>2]|0;A=z+48|0;u=(c[(c[((c[z>>2]&3|0)==3?z:A)+40>>2]|0)+16>>2]|0)+16|0;B=z+16|0;C=(c[B>>2]|0)+16|0;c[E>>2]=c[u>>2];c[E+4>>2]=c[u+4>>2];c[E+8>>2]=c[u+8>>2];c[E+12>>2]=c[u+12>>2];c[F>>2]=c[C>>2];c[F+4>>2]=c[C+4>>2];c[F+8>>2]=c[C+8>>2];c[F+12>>2]=c[C+12>>2];TB(K,E,F);c[I>>2]=c[K>>2];c[I+4>>2]=c[K+4>>2];c[I+8>>2]=c[K+8>>2];c[I+12>>2]=c[K+12>>2];C=z+-48|0;u=(c[(c[((c[z>>2]&3|0)==2?z:C)+40>>2]|0)+16>>2]|0)+16|0;t=(c[B>>2]|0)+56|0;c[E>>2]=c[u>>2];c[E+4>>2]=c[u+4>>2];c[E+8>>2]=c[u+8>>2];c[E+12>>2]=c[u+12>>2];c[F>>2]=c[t>>2];c[F+4>>2]=c[t+4>>2];c[F+8>>2]=c[t+8>>2];c[F+12>>2]=c[t+12>>2];TB(L,E,F);c[J>>2]=c[L>>2];c[J+4>>2]=c[L+4>>2];c[J+8>>2]=c[L+8>>2];c[J+12>>2]=c[L+12>>2];t=c[f+(v<<3)>>2]|0;u=c[f+(v<<3)+4>>2]|0;s=t*3|0;D=s+1|0;if((s|0)>=(n|0)){if(m|0)XI(i);p=rw(D<<4)|0;m=p;n=D;o=p;i=p}if(!(a[u>>0]|0)){k=+(VB(u,d)|0);j=+h[I>>3]}else{j=+UB(u,d);k=+h[y>>3]}r=m+16|0;h[m+16>>3]=j;h[m+24>>3]=k;c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];r=1;q=u;s=2;while(1){if((r|0)>=(t|0))break;q=u+(r*56|0)|0;if(!(a[q>>0]|0))k=+(VB(q,d)|0);else j=+UB(q,d);O=m+(s+2<<4)|0;Q=m+(s+1<<4)|0;P=m+(s<<4)|0;h[P>>3]=j;h[m+(s<<4)+8>>3]=k;c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];c[O>>2]=c[P>>2];c[O+4>>2]=c[P+4>>2];c[O+8>>2]=c[P+8>>2];c[O+12>>2]=c[P+12>>2];r=r+1|0;s=s+3|0}if(!(a[q>>0]|0)){k=+(VB(q,d)|0);j=+h[J>>3]}else{j=+UB(q,d);k=+h[x>>3]}Q=m+(s<<4)|0;O=s+1|0;P=m+(O<<4)|0;h[P>>3]=j;h[m+(O<<4)+8>>3]=k;c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];if(0>1){P=Cn(c[((c[z>>2]&3|0)==3?z:A)+40>>2]|0)|0;Q=Cn(c[((c[z>>2]&3|0)==2?z:C)+40>>2]|0)|0;c[M>>2]=P;c[M+4>>2]=Q;vL(G,94908,M)|0}Ez(z,c[((c[z>>2]&3|0)==2?z:C)+40>>2]|0,m,D,24664);if((!w?(H=c[(c[B>>2]|0)+96>>2]|0,H|0):0)?(a[H+81>>0]|0)==0:0){c[E>>2]=c[I>>2];c[E+4>>2]=c[I+4>>2];c[E+8>>2]=c[I+8>>2];c[E+12>>2]=c[I+12>>2];c[F>>2]=c[J>>2];c[F+4>>2]=c[J+4>>2];c[F+8>>2]=c[J+8>>2];c[F+12>>2]=c[J+12>>2];Zz(b,z,E,F)}v=v+1|0}XI(o);l=N;return}function TB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;h[b>>3]=+h[b>>3]+ +h[d>>3];e=b+8|0;h[e>>3]=+h[e>>3]+ +h[d+8>>3];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function UB(a,b){a=a|0;b=b|0;var d=0.0,e=0;b=YB(c[b+24>>2]|0,a)|0;e=c[b+36>>2]|0;d=+h[e+40>>3];return +((+h[e+56>>3]-d)*(+(c[a+44>>2]|0)/+((c[b+24>>2]|0)+1|0))+d)}function VB(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=YB(c[b+20>>2]|0,a)|0;b=c[e+36>>2]|0;d=+h[b+48>>3];return ~~((1.0-+(c[a+44>>2]|0)/+((c[e+24>>2]|0)+1|0))*(+h[b+64>>3]-d)+d)|0}function WB(a){a=a|0;return 0}function XB(a){a=a|0;return 0}function YB(a,b){a=a|0;b=b|0;a=bb[c[a>>2]&31](a,b+8|0,512)|0;if(!a)ma(94921,94927,423,94935);a=c[a+16>>2]|0;a=bb[c[a>>2]&31](a,b+16|0,512)|0;if(!a)ma(94946,94927,425,94935);else return a|0;return 0}function ZB(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0;z=l;l=l+32|0;y=z+16|0;u=z+8|0;m=z;j=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;t=c[f+4>>2]|0;if(!(a[t>>0]|0)){k=+h[j+56>>3];s=+h[j+40>>3];j=VB(t,g)|0;k=(s+k)*.5}else{k=+h[j+64>>3];s=+h[j+48>>3];j=~~((s+k)*.5);k=+UB(t,g)}A=~~k;p=+h[i>>3];r=+(A|0);p=p<r?p:r;h[i>>3]=p;v=i+8|0;q=+h[v>>3];s=+(j|0);q=q<s?q:s;h[v>>3]=q;w=i+16|0;k=+h[w>>3];r=k>r?k:r;h[w>>3]=r;x=i+24|0;k=+h[x>>3];s=k>s?k:s;h[x>>3]=s;c[m>>2]=A;c[m+4>>2]=j;vL(d,95448,m)|0;o=c[f>>2]|0;m=t;n=1;f=A;while(1){if((n|0)>=(o|0))break;m=t+(n*56|0)|0;if(!(a[m>>0]|0))j=VB(m,g)|0;else f=~~+UB(m,g);B=+(f|0);D=p<B?p:B;h[i>>3]=D;k=+(j|0);C=q<k?q:k;h[v>>3]=C;B=r>B?r:B;h[w>>3]=B;k=s>k?s:k;h[x>>3]=k;c[u>>2]=f;c[u+4>>2]=j;vL(d,95470,u)|0;n=n+1|0;p=D;q=C;r=B;s=k}j=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if(!(a[m>>0]|0)){k=+h[j+56>>3];D=+h[j+40>>3];j=VB(m,g)|0;k=(D+k)*.5}else{k=+h[j+64>>3];D=+h[j+48>>3];j=~~((D+k)*.5);k=+UB(m,g)}A=~~k;C=+(A|0);h[i>>3]=p<C?p:C;D=+(j|0);h[v>>3]=q<D?q:D;h[w>>3]=r>C?r:C;h[x>>3]=s>D?s:D;c[y>>2]=A;c[y+4>>2]=j;vL(d,95484,y)|0;c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[b+12>>2]=c[i+12>>2];c[b+16>>2]=c[i+16>>2];c[b+20>>2]=c[i+20>>2];c[b+24>>2]=c[i+24>>2];c[b+28>>2]=c[i+28>>2];l=z;return}function _B(a){a=a|0;var b=0;a=Nl(a)|0;while(1){if(!a)break;b=Nl(c[a+16>>2]|0)|0;while(1){if(!b)break;c[b+32>>2]=DC(c[b+24>>2]|0)|0;b=c[b>>2]|0}a=c[a>>2]|0}return}function $B(a){a=a|0;var b=0;a=Nl(a)|0;while(1){if(!a)break;b=Nl(c[a+16>>2]|0)|0;while(1){if(!b)break;if(c[b+24>>2]|0)rC(b);b=c[b>>2]|0}a=c[a>>2]|0}return}function aC(a,b){a=a|0;b=b|0;var d=0;d=Nl(a)|0;while(1){if(!d)break;a=Nl(c[d+16>>2]|0)|0;while(1){if(!a)break;fC(a,b);a=c[a>>2]|0}d=c[d>>2]|0}return}function bC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0;e=Nl(a)|0;while(1){if(!e)break;i=e+8|0;f=Nl(c[e+16>>2]|0)|0;while(1){if(!f)break;a=f+24|0;a:do if(c[a>>2]|0){if(c[42365]&8|0)cC(f,~~+h[i>>3]);g=f+32|0;IC(c[g>>2]|0);b=c[a>>2]|0;d=f+28|0;a=0;while(1){if((a|0)>=(b|0))break a;c[(c[(c[d>>2]|0)+(a<<2)>>2]|0)+44>>2]=(c[(c[(c[g>>2]|0)+4>>2]|0)+(a*12|0)+4>>2]|0)+1;a=a+1|0}}while(0);f=c[f>>2]|0}e=c[e>>2]|0}return}function cC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+32|0;d=j;g=a+24|0;a:do if((c[g>>2]|0)>=2){i=c[13918]|0;m=+h[a+8>>3];k=+h[a+16>>3];c[d>>2]=b;h[d+8>>3]=m;h[d+16>>3]=k;vL(i,95505,d)|0;f=a+32|0;a=a+28|0;b=0;while(1){if((b|0)>=(c[g>>2]|0))break a;e=c[(c[(c[f>>2]|0)+4>>2]|0)+(b*12|0)+8>>2]|0;b:do if(Rl(e)|0){dC(i,c[(c[a>>2]|0)+(b<<2)>>2]|0);SL(95525,i)|0;d=bb[c[e>>2]&31](e,0,128)|0;while(1){if(!d)break b;SL(95530,i)|0;dC(i,c[(c[a>>2]|0)+(c[d>>2]<<2)>>2]|0);SL(134901,i)|0;d=bb[c[e>>2]&31](e,d,8)|0}}while(0);b=b+1|0}}while(0);l=j;return}function dC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0.0;g=l;l=l+80|0;f=g+40|0;e=g;if(!(a[d>>0]|0)){m=+h[d+16>>3];j=+h[d+8>>3];k=+h[d+24>>3];i=eC(c[d+32>>2]|0)|0;e=eC(c[d+36>>2]|0)|0;h[f>>3]=m;h[f+8>>3]=j;h[f+16>>3]=k;h[f+24>>3]=j;c[f+32>>2]=i;c[f+36>>2]=e;vL(b,95536,f)|0}else{k=+h[d+8>>3];j=+h[d+16>>3];m=+h[d+24>>3];f=eC(c[d+32>>2]|0)|0;i=eC(c[d+36>>2]|0)|0;h[e>>3]=k;h[e+8>>3]=j;h[e+16>>3]=k;h[e+24>>3]=m;c[e+32>>2]=f;c[e+36>>2]=i;vL(b,95536,e)|0}l=g;return}function eC(a){a=a|0;switch(a|0){case 0:{a=95587;break}case 1:{a=95582;break}case 2:{a=95575;break}case 3:{a=95568;break}case 4:{a=95560;break}default:a=0}return a|0}function fC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+16|0;r=w+8|0;t=w;u=c[a+32>>2]|0;v=c[a+28>>2]|0;p=a+24|0;m=r+4|0;n=t+4|0;j=0;a=c[p>>2]|0;a:while(1){q=j+1|0;if((q|0)>=(a|0))break;o=v+(j<<2)|0;k=q;while(1){if((k|0)>=(a|0)){j=q;continue a}b:do if(((HC(u,j,k)|0)==0?(HC(u,k,j)|0)==0:0)?(s=v+(k<<2)|0,gC(c[o>>2]|0,c[s>>2]|0)|0):0){f=c[o>>2]|0;a=c[f+48>>2]|0;i=c[s>>2]|0;d=c[i+48>>2]|0;e=(d|0)==0;if(a)if(e)a=1;else a=+h[a+8>>3]!=+h[d+8>>3];else a=e^1;g=a&1;hC(r,f,i,0,g);a=c[r>>2]|0;i=c[m>>2]|0;f=g^1;hC(t,c[o>>2]|0,c[s>>2]|0,1,f);d=c[t>>2]|0;e=c[n>>2]|0;switch(i|0){case -1:{iC(c[s>>2]|0,c[o>>2]|0,g,0,a,b);iC(c[s>>2]|0,c[o>>2]|0,f,1,d,b);if((e|0)!=1)break b;jC(c[o>>2]|0,c[s>>2]|0,f,b);break b}case 0:switch(e|0){case -1:{iC(c[s>>2]|0,c[o>>2]|0,g,0,a,b);iC(c[s>>2]|0,c[o>>2]|0,f,1,d,b);break b}case 0:{iC(c[o>>2]|0,c[s>>2]|0,0,g,a,b);iC(c[o>>2]|0,c[s>>2]|0,1,f,d,b);break b}case 1:{iC(c[o>>2]|0,c[s>>2]|0,0,g,a,b);iC(c[o>>2]|0,c[s>>2]|0,1,f,d,b);break b}default:break b}case 1:{iC(c[o>>2]|0,c[s>>2]|0,0,g,a,b);iC(c[o>>2]|0,c[s>>2]|0,1,f,d,b);if((e|0)!=-1)break b;jC(c[o>>2]|0,c[s>>2]|0,f,b);break b}default:break b}}while(0);k=k+1|0;a=c[p>>2]|0}}l=w;return}function gC(a,b){a=a|0;b=b|0;if(!(+h[a+8>>3]==+h[b+8>>3]))ma(95658,94927,843,95689);if((+h[a+16>>3]==+h[b+16>>3]?+h[a+24>>3]==+h[b+24>>3]:0)?(c[a+32>>2]|0)==(c[b+32>>2]|0):0)a=(c[a+36>>2]|0)==(c[b+36>>2]|0)&1;else a=0;return a|0}function hC(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=0;while(1){b=kC(b,e)|0;if(!b){h=0;break}d=kC(d,f)|0;if(!d){i=6;break}if(!(gC(b,d)|0)){i=7;break}g=g+1|0}if((i|0)==6)ma(123205,94927,871,95607);else if((i|0)==7)h=mC(b,lC(b,d)|0,g+1|0,1-e|0)|0;c[a>>2]=g;c[a+4>>2]=h;return}function iC(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i+20|0;n=i+24|0;i=YB(c[((a[b>>0]|0)==0?o:n)>>2]|0,b)|0;FC(c[i+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0);k=1;while(1){if((k|0)>(g|0))break;l=kC(b,e)|0;m=kC(d,f)|0;do if(!(a[b>>0]|0)){j=YB(c[n>>2]|0,l)|0;if(+h[l+8>>3]==+h[b+16>>3]){p=(c[b+32>>2]|0)==1;i=(HC(c[i+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0)|0)!=0;b=c[j+32>>2]|0;if(p)if(i){FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}else{FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}else if(i){FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}else{FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}}else{p=(c[b+36>>2]|0)==1;i=(HC(c[i+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0)|0)!=0;b=c[j+32>>2]|0;if(p)if(i){FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}else{FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}else if(i){FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}else{FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}}}else{j=YB(c[o>>2]|0,l)|0;if(+h[l+8>>3]==+h[b+16>>3]){p=(c[b+32>>2]|0)==2;i=(HC(c[i+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0)|0)!=0;b=c[j+32>>2]|0;if(p)if(i){FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}else{FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}else if(i){FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}else{FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}}else{p=(c[b+36>>2]|0)==2;i=(HC(c[i+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0)|0)!=0;b=c[j+32>>2]|0;if(p)if(i){FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}else{FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}else if(i){FC(b,c[l+40>>2]|0,c[m+40>>2]|0);i=j;break}else{FC(b,c[m+40>>2]|0,c[l+40>>2]|0);i=j;break}}}while(0);b=l;d=m;k=k+1|0}return}function jC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;while(1){if(!(gC(b,d)|0))break;g=kC(b,1)|0;d=kC(d,e)|0;b=g}g=c[(YB(c[((a[b>>0]|0)==0?f+20|0:f+24|0)>>2]|0,b)|0)+32>>2]|0;GC(g,c[b+40>>2]|0,c[d+40>>2]|0);return}function kC(a,b){a=a|0;b=b|0;if(!a)ma(95594,94927,798,95598);else return c[((b|0)==0?a+48|0:a+52|0)>>2]|0;return 0}function lC(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=a[b>>0]|0;if(d<<24>>24==(a[c>>0]|0)?!(+h[b+8>>3]!=+h[c+8>>3]):0){if(!(d<<24>>24))b=nC(b,c,3,1)|0;else b=nC(b,c,4,2)|0;l=f;return b|0}Zl(1,95620,e)|0;Ua(169464,1);return 0}function mC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0;j=1;while(1){if((j|0)>(e|0))break;i=kC(b,f)|0;g=+h[i+8>>3]==+h[b+16>>3];do if(!(a[b>>0]|0))if(g){g=(c[b+32>>2]|0)==1;break}else{g=(c[b+36>>2]|0)==3;break}else if(g){g=(c[b+32>>2]|0)==4;break}else{g=(c[b+36>>2]|0)==2;break}while(0);b=i;j=j+1|0;d=g?0-d|0:d}return d|0}function nC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0;j=+h[a+24>>3];k=+h[b+16>>3];do if(!(j<k)?(g=+h[a+16>>3],i=+h[b+24>>3],!(g>i)):0){if(k<j&g<k){b=oC(a,b,d,e)|0;break}if(k<g&g<i){b=0-(oC(b,a,d,e)|0)|0;break}if(!(g==k))if(j==k){d=c[a+36>>2]|0;return ((d|0)==(c[b+32>>2]|0)?0:(d|0)==(e|0)?1:-1)|0}else{d=c[a+32>>2]|0;b=(d|0)==(c[b+36>>2]|0)?0:(d|0)==(e|0)?1:-1;break}if(!(j==i))if(j<i){o=(c[a+36>>2]|0)==(d|0);d=qC(c[b+32>>2]|0,c[a+32>>2]|0,d,e)|0;return (o?d:0-d|0)|0}else{o=(c[b+36>>2]|0)==(e|0);b=qC(c[a+32>>2]|0,c[b+32>>2]|0,d,e)|0;b=o?b:0-b|0;break}o=c[a+32>>2]|0;n=c[b+32>>2]|0;if((o|0)==(n|0)){b=c[b+36>>2]|0;if((c[a+36>>2]|0)==(b|0)){b=0;break}}else b=c[b+36>>2]|0;m=(n|0)==(d|0);if((n|0)==(b|0)){if(m){b=1;break}if((n|0)==(e|0)){b=-1;break}if((o|0)!=(d|0)?(c[a+36>>2]|0)!=(d|0):0){b=1;break}if((o|0)!=(e|0)?(c[a+36>>2]|0)!=(e|0):0){b=-1;break}b=0;break}f=(b|0)==(e|0);if(m&f){b=(c[a+36>>2]|0)==(e|0);if((o|0)==(d|0)){if(!b){b=-1;break}}else if(b){b=1;break}b=0;break}l=(b|0)==(d|0);if((n|0)==(e|0)&l){b=(o|0)==(e|0);if((c[a+36>>2]|0)==(d|0)){if(!b){b=-1;break}}else if(b){b=1;break}b=0;break}if(!n){if(l){b=pC(o,c[a+36>>2]|0,d)|0;break}if(f){b=0-(pC(o,c[a+36>>2]|0,e)|0)|0;break}}f=c[a+36>>2]|0;if(m&(b|0)==0){b=pC(f,o,d)|0;break}else{b=0-(pC(f,o,e)|0)|0;break}}else b=0;while(0);return b|0}function oC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0;i=+h[a+24>>3];j=+h[b+24>>3];do if(i<j){a=c[a+36>>2]|0;if((a|0)==(d|0)?(c[b+32>>2]|0)==(e|0):0){a=-1;break}if((a|0)==(e|0)?(c[b+32>>2]|0)==(d|0):0){a=1;break}a=0}else{f=c[b+32>>2]|0;g=(f|0)==(e|0);if(i==j)if(g){a=qC(c[a+36>>2]|0,c[b+36>>2]|0,d,e)|0;break}else{a=0-(qC(c[b+36>>2]|0,c[a+36>>2]|0,d,e)|0)|0;break}if(g?(c[b+36>>2]|0)==(e|0):0){a=-1;break}if((f|0)==(d|0)?(c[b+36>>2]|0)==(d|0):0){a=1;break}a=0}while(0);return a|0}function pC(a,b,c){a=a|0;b=b|0;c=c|0;return ((a|0)==(c|0)?((b|0)==(c|0))<<31>>31:1)|0}function qC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(d|0)){b=(a|0)==0;if(b)return 0;else b=b&1}return ((a|0)!=0|(b|0)!=(c|0))<<31>>31|0}function rC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=c[a+28>>2]|0;h=c[a+24>>2]|0;d=c[a+32>>2]|0;a=0;a:while(1){e=a+1|0;if((e|0)>=(h|0))break;f=g+(a<<2)|0;b=e;while(1){if((b|0)==(h|0)){a=e;continue a}switch(lC(c[f>>2]|0,c[g+(b<<2)>>2]|0)|0){case 1:{FC(d,a,b);break}case -1:{FC(d,b,a);break}default:{}}b=b+1|0}}return}function sC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+24|0;e=c[f>>2]|0;d=e+1|0;c[f>>2]=d;c[b+40>>2]=e;e=a+28|0;a=c[e>>2]|0;if(!a)a=rw(d<<2)|0;else a=tw(a,d<<2)|0;c[e>>2]=a;c[a+((c[f>>2]|0)+-1<<2)>>2]=b;return}function tC(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;h[f>>3]=d;e=bb[c[a>>2]&31](a,f,512)|0;if(!e){e=qw(24)|0;h[e+8>>3]=+h[f>>3];c[e+16>>2]=Pl(24712,c[4345]|0)|0;bb[c[a>>2]&31](a,e,1)|0}f=c[e+16>>2]|0;bb[c[f>>2]&31](f,b,1)|0;l=g;return}function uC(a,b,d){a=a|0;b=b|0;d=d|0;EC(c[b+32>>2]|0);XI(c[b+28>>2]|0);XI(b);return}function vC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];if(!(e>f))if(e<f)a=!(+h[b+8>>3]>=+h[c+8>>3])<<31>>31;else a=0;else a=!(+h[b+8>>3]<=+h[c+8>>3])&1;return a|0}function wC(a,b,d){a=a|0;b=b|0;d=d|0;Jl(c[b+16>>2]|0)|0;XI(b);return}function xC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;f=+h[b>>3];e=+h[c>>3];return (f>e?1:(f<e)<<31>>31)|0}function yC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0;i=(a[d+36>>0]|0)!=0;j=e+40|0;do if((c[d+24>>2]|0)==(e|0)){f=+h[j>>3];if(i){g=(+h[e+64>>3]+ +h[e+48>>3])*.5;break}else{g=+h[e+48>>3];f=(+h[e+56>>3]+f)*.5;break}}else if(i){g=(+h[e+64>>3]+ +h[e+48>>3])*.5;f=+h[e+56>>3];break}else{g=+h[e+64>>3];f=(+h[e+56>>3]+ +h[j>>3])*.5;break}while(0);h[b>>3]=f;h[b+8>>3]=g;return}function zC(a,b){a=a|0;b=b|0;var d=0;d=c[a+20>>2]|0;if((d|0)!=(c[b+20>>2]|0)?(d|0)!=(c[b+24>>2]|0):0)d=c[a+24>>2]|0;return d|0}function AC(a,b){a=a|0;b=b|0;var c=0.0;c=(+h[b+64>>3]+ +h[b+48>>3])*.5;h[a>>3]=(+h[b+56>>3]+ +h[b+40>>3])*.5;h[a+8>>3]=c;return}function BC(b,d,e,f,g,i,j){b=b|0;d=d|0;e=+e;f=+f;g=+g;i=i|0;j=j|0;var k=0,l=0;a[b>>0]=d;h[b+8>>3]=e;if(f<g){k=0;l=i;d=j;e=f;f=g}else{k=1;l=j;d=i;e=g}h[b+24>>3]=f;h[b+16>>3]=e;c[b+36>>2]=d;c[b+32>>2]=l;a[b+1>>0]=k;return}function CC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b+36>>2]|0;do if((c[e+4>>2]|0)!=(d|0)){if((c[e+12>>2]|0)==(d|0)){e=~~((+h[b+56>>3]+ +h[b+40>>3])*.5);d=~~+h[b+48>>3];break}if((c[e+8>>2]|0)==(d|0)){e=~~+h[b+40>>3];d=~~((+h[b+64>>3]+ +h[b+48>>3])*.5);break}if((c[e>>2]|0)==(d|0)){e=~~+h[b+56>>3];d=~~((+h[b+64>>3]+ +h[b+48>>3])*.5)}else{e=0;d=0}}else{e=~~((+h[b+56>>3]+ +h[b+40>>3])*.5);d=~~+h[b+64>>3]}while(0);c[a>>2]=e;c[a+4>>2]=d;return}function DC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=qw(8)|0;c[d>>2]=a;e=d+4|0;c[e>>2]=qw(a*12|0)|0;b=0;while(1){if((b|0)>=(a|0))break;g=cG()|0;f=c[e>>2]|0;c[f+(b*12|0)+8>>2]=g;c[f+(b*12|0)>>2]=0;b=b+1|0}return d|0}function EC(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;b=0;while(1){e=c[d>>2]|0;if((b|0)>=(c[a>>2]|0))break;Jl(c[e+(b*12|0)+8>>2]|0)|0;b=b+1|0}XI(e);XI(a);return}function FC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;bb[c[d>>2]&31](d,f,1)|0;l=e;return}function GC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=d;a=a+4|0;g=c[(c[a>>2]|0)+(b*12|0)+8>>2]|0;bb[c[g>>2]&31](g,f,2)|0;c[f>>2]=b;d=c[(c[a>>2]|0)+(d*12|0)+8>>2]|0;bb[c[d>>2]&31](d,f,2)|0;l=e;return}function HC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;d=(bb[c[d>>2]&31](d,f,512)|0)!=0&1;l=e;return d|0}function IC(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;switch(b|0){case 0:break;case 1:{c[(c[a+4>>2]|0)+4>>2]=0;break}default:{e=JC(b)|0;f=a+4|0;d=0;b=0;while(1){if((d|0)>=(c[a>>2]|0)){b=0;break}if(!(c[(c[f>>2]|0)+(d*12|0)>>2]|0))b=KC(a,d,b,e)|0;d=d+1|0}while(1){d=LC(e)|0;if((d|0)<=-1)break;c[(c[f>>2]|0)+(d*12|0)+4>>2]=b;b=b+1|0}MC(e)}}return}function JC(a){a=a|0;var b=0;b=qw(8)|0;c[b+4>>2]=qw(a<<2)|0;c[b>>2]=-1;return b|0}function KC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+4|0;g=c[i>>2]|0;j=g+(b*12|0)|0;c[j>>2]=1;g=c[g+(b*12|0)+8>>2]|0;h=g+4|0;d=d+1|0;g=Nl(g)|0;while(1){if(!g)break;f=c[(c[h>>2]|0)+8>>2]|0;if((f|0)<0)f=c[g+8>>2]|0;else f=g+(0-f)|0;f=c[f>>2]|0;if(!(c[(c[i>>2]|0)+(f*12|0)>>2]|0))d=KC(a,f,d,e)|0;g=c[g>>2]|0}c[j>>2]=2;NC(e,b);return d+1|0}function LC(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if((b|0)==-1)a=-1;else{d=c[(c[a+4>>2]|0)+(b<<2)>>2]|0;c[a>>2]=b+-1;a=d}return a|0}function MC(a){a=a|0;XI(c[a+4>>2]|0);XI(a);return}function NC(a,b){a=a|0;b=b|0;var d=0;d=(c[a>>2]|0)+1|0;c[a>>2]=d;c[(c[a+4>>2]|0)+(d<<2)>>2]=b;return}function OC(a){a=a|0;var d=0,e=0,f=0;e=c[a>>2]|0;c[a+8>>2]=e;c[a+12>>2]=c[a+4>>2];d=a+16|0;a=0;while(1){if((a|0)>=(e|0))break;f=c[d>>2]|0;b[f+(a*40|0)+18>>1]=b[f+(a*40|0)+16>>1]|0;a=a+1|0}return}function PC(a){a=a|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;c[a>>2]=d;c[a+4>>2]=c[a+12>>2];e=a+16|0;a=0;while(1){if((a|0)>=(d|0))break;f=c[e>>2]|0;b[f+(a*40|0)+16>>1]=b[f+(a*40|0)+18>>1]|0;a=a+1|0}d=d+2|0;while(1){if((a|0)>=(d|0))break;b[(c[e>>2]|0)+(a*40|0)+16>>1]=0;a=a+1|0}return}function QC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=qw(((c[a>>2]|0)*6|0)+(b<<1)<<2)|0;c[a+20>>2]=qw((((c[a>>2]|0)*3|0)+b|0)*24|0)|0;e=c[a>>2]|0;f=a+16|0;a=0;while(1){if((a|0)>=(e|0))break;c[(c[f>>2]|0)+(a*40|0)+28>>2]=d;d=d+24|0;a=a+1|0}e=e+2|0;while(1){if((a|0)>=(e|0))break;c[(c[f>>2]|0)+(a*40|0)+28>>2]=d;d=d+(b<<2)|0;a=a+1|0}return}function RC(a){a=a|0;var b=0;b=qw(24)|0;c[b>>2]=0;c[b+16>>2]=qw(a*40|0)|0;return b|0}function SC(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=c[a>>2]|0;c[d+(b*40|0)+32>>2]=b;c[a>>2]=b+1;return d+(b*40|0)|0}function TC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0;g=a+4|0;f=c[g>>2]|0;c[g>>2]=f+1;g=c[a+20>>2]|0;a=g+(f*24|0)|0;c[g+(f*24|0)+12>>2]=c[b+32>>2];c[g+(f*24|0)+16>>2]=c[d+32>>2];h[a>>3]=e;c[g+(f*24|0)+8>>2]=0;UC(b,f);UC(d,f);return a|0}function UC(a,d){a=a|0;d=d|0;var e=0,f=0;e=a+16|0;f=b[e>>1]|0;c[(c[a+28>>2]|0)+(f<<16>>16<<2)>>2]=d;b[e>>1]=f+1<<16>>16;return}function VC(a){a=a|0;var b=0;b=a+16|0;XI(c[(c[b>>2]|0)+28>>2]|0);XI(c[b>>2]|0);XI(c[a+20>>2]|0);XI(a);return}function WC(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;g=c[a>>2]|0;i=a+16|0;f=0;while(1){if((f|0)>=(g|0))break;c[(c[i>>2]|0)+(f*40|0)>>2]=-2147483648;f=f+1|0}kG();a:do if(!(nG(d)|0)){c[d+8>>2]=0;c[d>>2]=0;d=a+20|0;b:while(1){g=pG()|0;if(!g){f=0;break a}c[g>>2]=0-(c[g>>2]|0);if((g|0)==(e|0)){f=0;break a}i=g+16|0;j=g+28|0;f=0;while(1){if((f|0)>=(b[i>>1]|0))continue b;k=(c[d>>2]|0)+((c[(c[j>>2]|0)+(f<<2)>>2]|0)*24|0)|0;l=XC(a,k,g)|0;m=c[l>>2]|0;do if((m|0)<0){n=~~-(+h[k>>3]+ +(c[g>>2]|0));if((m|0)==-2147483648){c[l>>2]=n;if(nG(l)|0){f=1;break a}c[l+8>>2]=g;c[l+12>>2]=k;break}else{if((m|0)>=(n|0))break;qG(l,n);c[l+8>>2]=g;c[l+12>>2]=k;break}}while(0);f=f+1|0}}}else f=1;while(0);return f|0}function XC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b+12>>2]|0;if((e|0)==(c[d+32>>2]|0))e=c[b+16>>2]|0;return (c[a+16>>2]|0)+(e*40|0)|0}function YC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=c[a>>2]|0;Er(g,3,b)|0;b=c[g+92>>2]|0;do if(b){d=c[b+16>>2]|0;h=c[d+12>>2]|0;c[a+76>>2]=h;e=c[d+16>>2]|0;c[a+84>>2]=e;f=a+80|0;c[f>>2]=c[d>>2];c[a+88>>2]=c[b+4>>2];d=a+152|0;e=c[d>>2]|c[e>>2];c[d>>2]=e;b=c[g+80>>2]|0;if(!b){c[a+60>>2]=0;b=999;break}else{g=c[b+16>>2]|0;c[a+60>>2]=c[g+12>>2];i=c[g+16>>2]|0;c[a+68>>2]=i;c[a+72>>2]=c[b+4>>2];c[d>>2]=e|c[i>>2];c[a+64>>2]=c[((h|0)==0?f:g)>>2];b=300;break}}else b=999;while(0);return b|0}function ZC(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(!(dr(a)|0))if((b|0)!=0?(d=c[b>>2]|0,(d|0)!=0):0){gb[d&127](a);a=0}else a=0;else a=1;return a|0}function _C(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+4>>2]|0,d|0):0)gb[d&127](a);c[(c[a>>2]|0)+24>>2]=0;lr(a);return}function $C(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;e=+h[b+504>>3];f=+h[b+512>>3];i=+h[b+352>>3];if(!(c[b+360>>2]|0)){g=+h[d>>3]+e;d=d+8|0;e=f}else g=-(f+ +h[d+8>>3]);f=+h[b+528>>3]*i*(+h[d>>3]+e);h[a>>3]=+h[b+520>>3]*i*g;h[a+8>>3]=f;return}function aD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0;f=+h[a+504>>3];g=+h[a+512>>3];i=+h[a+352>>3];j=+h[a+520>>3]*i;i=+h[a+528>>3]*i;a:do if(!(c[a+360>>2]|0)){a=0;while(1){if((a|0)>=(e|0))break a;h[d+(a<<4)>>3]=(+h[b+(a<<4)>>3]+f)*j;h[d+(a<<4)+8>>3]=(+h[b+(a<<4)+8>>3]+g)*i;a=a+1|0}}else{a=0;while(1){if((a|0)>=(e|0))break a;k=-(j*(+h[b+(a<<4)+8>>3]+g));h[d+(a<<4)+8>>3]=(+h[b+(a<<4)>>3]+f)*i;h[d+(a<<4)>>3]=k;a=a+1|0}}while(0);return d|0}function bD(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+8>>2]|0,d|0):0)gb[d&127](a);return}function cD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+12>>2]|0,d|0):0)gb[d&127](a);kr(a);return}function dD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+24>>2]|0,d|0):0)gb[d&127](a);return}function eD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+28>>2]|0,d|0):0)gb[d&127](a);return}function fD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+16>>2]|0,d|0):0){b=c[a+160>>2]|0;kb[d&31](a,c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0,b,c[a+156>>2]|0)}return}function gD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+20>>2]|0,d|0):0)gb[d&127](a);return}function hD(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+32>>2]|0,d|0):0)gb[d&127](a);return}function iD(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+36>>2]|0,d|0):0)gb[d&127](a);return}function jD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+40>>2]|0,d|0):0)gb[d&127](a);return}function kD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+44>>2]|0,d|0):0)gb[d&127](a);return}function lD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+48>>2]|0,d|0):0)gb[d&127](a);return}function mD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+52>>2]|0,d|0):0)gb[d&127](a);return}function nD(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+56>>2]|0,d|0):0)gb[d&127](a);return}function oD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+60>>2]|0,d|0):0)gb[d&127](a);return}function pD(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+64>>2]|0,d|0):0)gb[d&127](a);return}function qD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+68>>2]|0,d|0):0)gb[d&127](a);return}function rD(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[a+60>>2]|0;if(g|0?(h=c[g+72>>2]|0,h|0):0)lb[h&7](a,b,d,e,f);return}function sD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+76>>2]|0,d|0):0)gb[d&127](a);return}function tD(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+60>>2]|0;if(d|0?(e=c[d+80>>2]|0,e|0):0)hb[e&31](a,b);return}function uD(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+84>>2]|0,d|0):0)gb[d&127](a);return}function vD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+48|0;f=k+32|0;h=k;i=k+16|0;j=c[b+60>>2]|0;m=c[e>>2]|0;do if(m|0?a[m>>0]|0:0){m=c[b+16>>2]|0;if(m|0?(c[m+144>>2]|0)==0:0)break;if(!(c[b+152>>2]&8192)){c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];$C(i,b,f);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2]}else{c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2]}if(j|0?(g=c[j+88>>2]|0,g|0):0){c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];ib[g&127](b,f,e)}}while(0);l=k;return}function wD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=c[b+60>>2]|0;g=(c[b+16>>2]|0)+16|0;i=TJ(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if(f|0?(xD(c[b+68>>2]|0,d,g),e=c[f+92>>2]|0,e|0):0)hb[e&31](b,g);if(h)a[i>>0]=58;return}function xD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;g=k+16|0;j=k+8|0;i=k;c[d>>2]=b;c[d+32>>2]=5;e=OE(b)|0;f=c[a+16>>2]|0;if(!((f|0)!=0?(rM(e,f,c[a+20>>2]|0,4,37)|0)!=0:0))h=3;a:do if((h|0)==3){switch(PE(b,d,c[a+24>>2]|0)|0){case 0:break a;case 1:break;default:{Zl(1,95812,g)|0;break a}}a=rw((oJ(b)|0)+16|0)|0;c[i>>2]=b;lL(a,95777,i)|0;if(yv(a)|0){c[j>>2]=b;Zl(0,95786,j)|0}XI(a)}while(0);l=k;return}function yD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=c[b+60>>2]|0;g=(c[b+16>>2]|0)+56|0;i=TJ(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if(f|0?(xD(c[b+68>>2]|0,d,g),e=c[f+92>>2]|0,e|0):0)hb[e&31](b,g);if(h)a[i>>0]=58;return}function zD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,i=0,j=0;h=c[a+60>>2]|0;i=a+16|0;j=(c[i>>2]|0)+96|0;if(h|0?(xD(c[a+68>>2]|0,b,j),f=c[h+92>>2]|0,f|0):0)hb[f&31](a,j);j=c[i>>2]|0;c[j+136>>2]=d;g[j+140>>2]=e;return}function AD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;j=c[b+60>>2]|0;b=c[b+16>>2]|0;c[b+160>>2]=d;a:do if((d|0)!=0&(j|0)!=0){j=b+144|0;i=b+152|0;g=b+148|0;b=d;b:while(1){f=b+4|0;b=c[b>>2]|0;if(!b)break a;c:do switch(a[b>>0]|0){case 115:{if(!(uJ(b,95833)|0)){c[j>>2]=3;b=f;continue b}if(!(uJ(b,95854)|0)){e=115;while(1){d=b+1|0;if(!(e<<24>>24))break;b=d;e=a[d>>0]|0}h[i>>3]=+oM(d);b=f;continue b}break}case 100:{if(!(uJ(b,122119)|0)){c[j>>2]=1;b=f;continue b}if(!(uJ(b,122112)|0)){c[j>>2]=2;b=f;continue b}break}case 105:{if(uJ(b,119127)|0?uJ(b,95839)|0:0)break c;c[j>>2]=0;b=f;continue b}case 98:{if(!(uJ(b,95849)|0)){h[i>>3]=2.0;b=f;continue b}break}case 102:{if(!(uJ(b,95867)|0)){c[g>>2]=1;b=f;continue b}break}case 117:{if(!(uJ(b,95874)|0)){c[g>>2]=0;b=f;continue b}break}case 116:{if(!(uJ(b,95883)|0)){b=f;continue b}break}default:{}}while(0);c[k>>2]=b;Zl(0,95891,k)|0;b=f}}while(0);l=m;return}function BD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;j=l;l=l+32|0;g=j;d=c[a+60>>2]|0;if((d|0?(i=d+96|0,f=c[i>>2]|0,f|0):0)?c[(c[a+16>>2]|0)+144>>2]|0:0){d=b+16|0;h[g>>3]=(+h[d>>3]+ +h[b>>3])*.5;h[g+8>>3]=(+h[b+24>>3]+ +h[b+8>>3])*.5;b=g+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];if(!(c[a+152>>2]&8192)){aD(a,g,g,2)|0;f=c[i>>2]|0}ib[f&127](a,g,e)}l=j;return}function CD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;m=o;f=c[a+60>>2]|0;if((f|0?(n=f+100|0,c[n>>2]|0):0)?(k=a+16|0,j=c[k>>2]|0,c[j+144>>2]|0):0){if(!(e&4)){f=e;g=0}else{f=e&-5;e=j+16|0;g=m;h=e;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=e;h=j+56|0;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=1}if(!(c[a+152>>2]&8192)){e=d+10|0;if((c[42405]|0)<(d|0)){c[42405]=e;e=tw(c[42406]|0,e<<4)|0;c[42406]=e}else e=c[42406]|0;aD(a,b,e,d)|0;kb[c[n>>2]&31](a,e,d,f)}else kb[c[n>>2]&31](a,b,d,f);if(g|0){g=(c[k>>2]|0)+16|0;h=m;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}}l=o;return}function DD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+64|0;f=e;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];g=f+32|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[f+16>>3]=+h[f>>3];h[f+24>>3]=+h[f+40>>3];h[f+48>>3]=+h[g>>3];h[f+56>>3]=+h[f+8>>3];CD(a,f,4,d);l=e;return}function ED(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;i=c[a+60>>2]|0;do if((i|0?(j=i+104|0,h=c[j>>2]|0,h|0):0)?c[(c[a+16>>2]|0)+144>>2]|0:0){if(c[a+152>>2]&8192|0){mb[h&15](a,b,d,e,f,g&255);break}h=d+10|0;if((c[42405]|0)<(d|0)){c[42405]=h;h=tw(c[42406]|0,h<<4)|0;c[42406]=h}else h=c[42406]|0;aD(a,b,h,d)|0;mb[c[j>>2]&15](a,h,d,e,f,g&255)}while(0);return}function FD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a+60>>2]|0;do if((e|0?(g=e+108|0,f=c[g>>2]|0,f|0):0)?c[(c[a+16>>2]|0)+144>>2]|0:0){if(c[a+152>>2]&8192|0){ib[f&127](a,b,d);break}e=d+10|0;if((c[42405]|0)<(d|0)){c[42405]=e;e=tw(c[42406]|0,e<<4)|0;c[42406]=e}else e=c[42406]|0;aD(a,b,e,d)|0;ib[c[g>>2]&127](a,e,d)}while(0);return}function GD(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+60>>2]|0;if((d|0?!((e|0)==0|(a[d>>0]|0)==0):0)?(f=c[e+112>>2]|0,f|0):0)hb[f&31](b,d);return}function HD(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=l;l=l+112|0;B=F+64|0;E=F;n=F+96|0;x=F+48|0;y=F+32|0;C=c[b+60>>2]|0;if(!b)ma(96061,95944,691,95955);if(!d)ma(95974,95944,692,95955);if(!(a[d>>0]|0))ma(95979,95944,693,95955);D=Gr(d)|0;if(!D){if((C|0)!=0&(Ky(d)|0)!=0?(m=c[C+116>>2]|0,m|0):0)lb[m&7](b,d,e,f,g&255)}else{s=b+432|0;c[B>>2]=c[s>>2];c[B+4>>2]=c[s+4>>2];c[B+8>>2]=c[s+8>>2];c[B+12>>2]=c[s+12>>2];Jr(n,D,B);s=c[n>>2]|0;m=c[n+4>>2]|0;if(!((s|0)<1&(m|0)<1)){n=E+16|0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];c[E>>2]=c[e>>2];c[E+4>>2]=c[e+4>>2];c[E+8>>2]=c[e+8>>2];c[E+12>>2]=c[e+12>>2];z=E+8|0;A=E+24|0;d=1;while(1){if((d|0)>=(f|0))break;G=e+(d<<4)|0;v=+h[G>>3];h[E>>3]=+h[(+h[E>>3]<v?E:G)>>3];w=+h[e+(d<<4)+8>>3];h[z>>3]=+h[(+h[z>>3]<w?E:G)+8>>3];h[n>>3]=+h[(+h[n>>3]>v?n:G)>>3];h[A>>3]=+h[(+h[A>>3]>w?n:G)+8>>3];d=d+1|0}k=+h[n>>3];j=+h[E>>3];t=k-j;u=+h[A>>3];v=+h[z>>3];w=u-v;o=+(m|0);p=+(s|0);q=t/p;r=w/o;a:do switch(ID(i)|0){case 1:if(q<r){p=q*p;o=q*o;break a}else{p=r*p;o=r*o;break a}case 2:{p=q*p;break}case 3:{o=r*o;break}case 4:{p=q*p;o=r*o;break}default:{}}while(0);if(p<t){t=(t-p)*.5;j=j+t;h[E>>3]=j;k=k-t;h[n>>3]=k}if(o<w){w=(w-o)*.5;h[z>>3]=v+w;h[A>>3]=u-w}if(!(c[b+152>>2]&8192)){c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2];$C(x,b,B);c[E>>2]=c[x>>2];c[E+4>>2]=c[x+4>>2];c[E+8>>2]=c[x+8>>2];c[E+12>>2]=c[x+12>>2];c[B>>2]=c[n>>2];c[B+4>>2]=c[n+4>>2];c[B+8>>2]=c[n+8>>2];c[B+12>>2]=c[n+12>>2];$C(y,b,B);c[n>>2]=c[y>>2];c[n+4>>2]=c[y+4>>2];c[n+8>>2]=c[y+8>>2];c[n+12>>2]=c[y+12>>2];k=+h[n>>3];j=+h[E>>3]}if(j>k){h[E>>3]=k;h[n>>3]=j}j=+h[z>>3];k=+h[A>>3];if(j>k){h[z>>3]=k;h[A>>3]=j}if(C|0){G=c[b+72>>2]|0;c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2];c[B+16>>2]=c[E+16>>2];c[B+20>>2]=c[E+20>>2];c[B+24>>2]=c[E+24>>2];c[B+28>>2]=c[E+28>>2];MD(b,D,B,g,G)}}}l=F;return}function ID(b){b=b|0;if(a[b>>0]|0)if(eK(b,95987)|0)if(eK(b,95993)|0)if(!(eK(b,96e3)|0))b=4;else b=(DA(b)|0)<<24>>24!=0&1;else b=3;else b=2;else b=0;return b|0}function JD(a,b){a=a|0;b=+b;if(c[a+60>>2]|0)h[(c[a+16>>2]|0)+152>>3]=b;return}function KD(a,b){a=a|0;b=b|0;b=Er(a,1,b)|0;if(!b)b=999;else{b=c[b+16>>2]|0;c[a+184>>2]=c[b+4>>2];c[a+172>>2]=c[b+12>>2];c[a+176>>2]=c[b>>2];c[a+180>>2]=c[b+16>>2];b=300}return b|0}function LD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;f=i;Mo(b,122277,280,1)|0;g=b+16|0;c[(c[g>>2]|0)+144>>2]=a;if((ro(b)|0)!=(b|0))c[(c[(ro(b)|0)+16>>2]|0)+144>>2]=a;e=Hm(b,96005)|0;d=a+172|0;if((e|0)!=0?(c[d>>2]=0,(KD(a,e)|0)==999):0){d=Fr(a,1,e)|0;c[f>>2]=e;c[f+4>>2]=d;Zl(1,96012,f)|0;d=-1}else{e=c[d>>2]|0;if(!e)d=-1;else{Av(1);_v(b,c[c[a+180>>2]>>2]&1);d=c[(c[g>>2]|0)+8>>2]|0;c[(c[(ro(b)|0)+16>>2]|0)+8>>2]=d;zz();d=c[e>>2]|0;if(d|0?(gb[d&127](b),h=c[e+4>>2]|0,h|0):0)c[(c[g>>2]|0)+148>>2]=h;Av(0);d=0}}l=i;return d|0}function MD(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+176|0;k=n+8|0;j=n;h=n+40|0;if(!b)ma(96061,96065,52,96079);if(!d)ma(96091,96065,53,96079);i=c[d+8>>2]|0;if(!i)ma(96094,96065,54,96079);if(!(a[i>>0]|0))ma(96103,96065,55,96079);tK(h,c[d+28>>2]|0)|0;i=h+(oJ(h)|0)|0;a[i>>0]=58;a[i+1>>0]=0;EL(h,g)|0;if((ND(b,h)|0)==999){c[j>>2]=h;Zl(0,96115,j)|0}g=c[b+92>>2]|0;if(g|0?(m=c[g>>2]|0,m|0):0){c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[k+16>>2]=c[e+16>>2];c[k+20>>2]=c[e+20>>2];c[k+24>>2]=c[e+24>>2];c[k+28>>2]=c[e+28>>2];kb[m&31](b,d,k,f)}l=n;return}function ND(a,b){a=a|0;b=b|0;b=Er(c[a>>2]|0,4,b)|0;if(!b)b=999;else{b=c[b+16>>2]|0;c[a+92>>2]=c[b+12>>2];c[a+96>>2]=c[b>>2];b=300}return b|0}function OD(a){a=a|0;return 1}function PD(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=+h[c>>3]+10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function QD(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function RD(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function SD(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=+h[c>>3]+10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function TD(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]*1.1;a[b+537>>0]=1;return 0}function UD(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]*.9090909090909091;a[b+537>>0]=1;return 0}function VD(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;e=b+536|0;d=(a[e>>0]|0)==0;a[e>>0]=d&1;if(d){d=c[b+448>>2]|0;e=c[b+452>>2]|0;i=+(d>>>0);g=+(e>>>0);f=i/+(d|0)<g/+(e|0);h[b+352>>3]=(f?i:g)/+((f?d:e)|0);e=b+336|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;a[b+537>>0]=1}return 0}function WD(b){b=b|0;var d=0,e=0;d=c[(c[b>>2]|0)+168>>2]|0;e=b+580|0;if(!(c[e>>2]|0)){c[e>>2]=d;e=(c[d+16>>2]|0)+112|0;a[e>>0]=a[e>>0]|2;kE(b,d)}bu(b,d);a[b+540>>0]=1;return}function XD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0;k=l;l=l+16|0;f=k;switch(d|0){case 1:{c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];dE(b,f);jE(b);a[b+538>>0]=1;a[b+541>>0]=1;j=13;break}case 2:{a[b+538>>0]=1;a[b+541>>0]=2;j=13;break}case 3:{c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];dE(b,f);a[b+538>>0]=1;a[b+541>>0]=3;j=13;break}case 4:{a[b+536>>0]=0;if(!(c[b+360>>2]|0)){f=b+352|0;i=+h[f>>3];d=b+336|0;h[d>>3]=(+h[e>>3]-+((c[b+448>>2]|0)>>>0)*.5)*.10000000000000009/(+h[b+520>>3]*i)+ +h[d>>3];g=+h[e+8>>3]-+((c[b+452>>2]|0)>>>0)*.5;d=b+528|0}else{f=b+352|0;i=+h[f>>3];d=b+336|0;h[d>>3]=+h[d>>3]-(+h[e+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(+h[b+528>>3]*i);g=+h[e>>3]-+((c[b+448>>2]|0)>>>0)*.5;d=b+520|0}j=b+344|0;h[j>>3]=g*.10000000000000009/(+h[d>>3]*i)+ +h[j>>3];h[f>>3]=i*1.1;j=13;break}case 5:{a[b+536>>0]=0;j=b+352|0;i=+h[j>>3]*.9090909090909091;h[j>>3]=i;if(!(c[b+360>>2]|0)){f=b+336|0;h[f>>3]=+h[f>>3]-(+h[e>>3]-+((c[b+448>>2]|0)>>>0)*.5)*.10000000000000009/(+h[b+520>>3]*i);g=+h[e+8>>3]-+((c[b+452>>2]|0)>>>0)*.5;f=b+528|0}else{f=b+336|0;h[f>>3]=(+h[e+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(+h[b+528>>3]*i)+ +h[f>>3];g=+h[e>>3]-+((c[b+448>>2]|0)>>>0)*.5;f=b+520|0}j=b+344|0;h[j>>3]=+h[j>>3]-g*.10000000000000009/(+h[f>>3]*i);j=13;break}default:{}}if((j|0)==13)a[b+537>>0]=1;b=b+560|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];l=k;return}function YD(b,c,d){b=b|0;c=c|0;d=d|0;a[b+538>>0]=0;a[b+541>>0]=0;return}function ZD(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0.0,k=0;k=l;l=l+16|0;e=k;i=b+560|0;j=(+h[d>>3]-+h[i>>3])/+h[b+520>>3];g=(+h[d+8>>3]-+h[b+568>>3])/+h[b+528>>3];if(!(+B(+j)<.0001&+B(+g)<.0001)){switch(a[b+541>>0]|0){case 0:{c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];dE(b,e);break}case 2:{f=+h[b+352>>3];if(!(c[b+360>>2]|0)){e=b+336|0;h[e>>3]=+h[e>>3]-j/f;e=b+344|0;h[e>>3]=+h[e>>3]-g/f}else{e=b+336|0;h[e>>3]=+h[e>>3]-g/f;e=b+344|0;h[e>>3]=+h[e>>3]+j/f}a[b+537>>0]=1;break}default:{}}c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2]}l=k;return}function _D(a,b,c){a=a|0;b=b|0;c=c|0;return}function $D(a){a=a|0;return}function aE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=c[b>>2]|0;if(d){d=YL(d,123632)|0;if(d|0){i=cr(d,0)|0;HL(d)|0;f=5}}else{i=cr(c[13853]|0,0)|0;f=5}if((f|0)==5?i|0:0){g=j+168|0;d=c[g>>2]|0;if(d|0){f=c[j+172>>2]|0;if((f|0)!=0?(h=c[f+4>>2]|0,(h|0)!=0):0){gb[h&127](d);d=c[g>>2]|0}dw(d);kn(c[g>>2]|0)|0}Ro(i,0,122277,280,1);Ro(i,1,122241,304,1);Ro(i,2,122254,176,1);c[g>>2]=i;c[(c[i+16>>2]|0)+144>>2]=j;if((gs(j,i,e)|0)!=-1){c[b+580>>2]=0;c[b+576>>2]=0;a[b+537>>0]=1}}return}function bE(a,b){a=a|0;b=b|0;a=c[a>>2]|0;gs(a,c[a+168>>2]|0,b)|0;return}function cE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=c[a>>2]|0;f=g+160|0;e=c[f>>2]|0;if((e|0)!=0?(c[g+164>>2]|0)==0:0){i=g+192|0;h=c[i>>2]|0;c[f>>2]=0;c[i>>2]=0;f=h}else{f=0;e=0}is(g,c[g+168>>2]|0,b,d)|0;if(e|0){i=c[a>>2]|0;c[i+160>>2]=e;c[i+192>>2]=f}return}function dE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0.0,k=0.0,m=0;f=l;l=l+80|0;e=f+48|0;g=f;m=f+32|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];eE(m,b,e);k=+h[m>>3];j=+h[m+8>>3];i=1.0/+h[b+352>>3];h[g+16>>3]=i+k;h[g+24>>3]=i+j;h[g>>3]=k-i;h[g+8>>3]=j-i;d=c[(c[b>>2]|0)+168>>2]|0;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];c[e+16>>2]=c[g+16>>2];c[e+20>>2]=c[g+20>>2];c[e+24>>2]=c[g+24>>2];c[e+28>>2]=c[g+28>>2];d=fE(d,e)|0;e=b+576|0;if((d|0)!=(c[e>>2]|0)){gE(b);c[e>>2]=d;hE(b);a[b+537>>0]=1}l=f;return}function eE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0;if(!(c[b+360>>2]|0)){e=+h[b+352>>3];f=+h[d+8>>3];g=e;i=b+528|0;e=+h[d>>3]/(+h[b+520>>3]*e)-+h[b+504>>3]}else{e=+h[b+352>>3];f=-+h[d>>3];g=e;i=b+520|0;e=+h[d+8>>3]/(+h[b+528>>3]*e)-+h[b+504>>3]}g=f/(+h[i>>3]*g)-+h[b+512>>3];h[a>>3]=e;h[a+8>>3]=g;return}function fE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g;e=bo(a)|0;a:while(1){if(!e){e=9;break}d=Om(a,e)|0;while(1){if(!d)break;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];c[f+28>>2]=c[b+28>>2];if((yB(d,f)|0)<<24>>24){e=6;break a}d=Qm(a,d)|0}e=co(a,e)|0}do if((e|0)!=6)if((e|0)==9){d=eo(a)|0;while(1){if(!d)break;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];c[f+28>>2]=c[b+28>>2];if((vB(d,f)|0)<<24>>24){e=12;break}d=fo(a,d)|0}if((e|0)==12)break;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];c[f+28>>2]=c[b+28>>2];d=iE(a,f)|0;if(!d){d=a;break}else break}while(0);l=g;return d|0}function gE(b){b=b|0;var d=0;d=c[b+576>>2]|0;a:do if(d|0)switch(Bo(d)|0){case 0:{d=(c[d+16>>2]|0)+112|0;a[d>>0]=a[d>>0]&-2;break a}case 1:{d=(c[d+16>>2]|0)+117|0;a[d>>0]=a[d>>0]&-2;break a}case 2:{d=(c[d+16>>2]|0)+115|0;a[d>>0]=a[d>>0]&-2;break a}default:break a}while(0);c[b+584>>2]=0;return}function hE(b){b=b|0;var d=0,e=0;e=b+584|0;d=c[e>>2]|0;if(d|0){XI(d);c[e>>2]=0}d=c[b+576>>2]|0;a:do if(d|0)switch(Bo(d)|0){case 0:{b=(c[d+16>>2]|0)+112|0;a[b>>0]=a[b>>0]|1;b=xm(d,0,96229,0)|0;if(!b)break a;c[e>>2]=lw(Im(d,b)|0,d)|0;break a}case 1:{b=(c[d+16>>2]|0)+117|0;a[b>>0]=a[b>>0]|1;b=xm(qo(d)|0,1,96229,0)|0;if(!b)break a;c[e>>2]=lw(Im(d,b)|0,d)|0;break a}case 2:{b=(c[d+16>>2]|0)+115|0;a[b>>0]=a[b>>0]|1;b=xm(qo(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0,2,96229,0)|0;if(!b)break a;c[e>>2]=lw(Im(d,b)|0,d)|0;break a}default:break a}while(0);return}function iE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0;m=l;l=l+32|0;e=m;g=c[a+16>>2]|0;i=c[g+180>>2]|0;j=g+184|0;d=1;while(1){if((d|0)>(i|0)){k=4;break}f=c[(c[j>>2]|0)+(d<<2)>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];c[e+24>>2]=c[b+24>>2];c[e+28>>2]=c[b+28>>2];f=iE(f,e)|0;if(!f)d=d+1|0;else{a=f;break}}do if((k|0)==4){o=+h[g+24>>3];n=+h[g+40>>3];if(((+h[b+16>>3]>=+h[g+16>>3]?+h[g+32>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=o:0)?n>=+h[b+8>>3]:0)break;a=0}while(0);l=m;return a|0}function jE(b){b=b|0;var d=0,e=0,f=0;f=b+580|0;d=c[f>>2]|0;a:do if(d|0)switch(Bo(d)|0){case 0:{e=(c[d+16>>2]|0)+112|0;a[e>>0]=a[e>>0]&-7|4;break a}case 1:{e=(c[d+16>>2]|0)+117|0;a[e>>0]=a[e>>0]&-7|4;break a}case 2:{e=(c[d+16>>2]|0)+115|0;a[e>>0]=a[e>>0]&-7|4;break a}default:break a}while(0);d=b+588|0;e=c[d>>2]|0;if(e|0){XI(e);c[d>>2]=0}d=c[b+576>>2]|0;c[f>>2]=d;b:do if(d|0)switch(Bo(d)|0){case 0:{f=(c[d+16>>2]|0)+112|0;a[f>>0]=a[f>>0]|2;kE(b,d);break b}case 1:{f=(c[d+16>>2]|0)+117|0;a[f>>0]=a[f>>0]|2;lE(b,d);break b}case 2:{f=(c[d+16>>2]|0)+115|0;a[f>>0]=a[f>>0]|2;mE(b,d);break b}default:break b}while(0);return}function kE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=a+592|0;do if((ro(b)|0)==(b|0))if(!(pn(b)|0)){zr(d,0,96286);break}else{zr(d,0,96278);break}else zr(d,0,96292);while(0);zr(d,1,Cn(b)|0);c[a+596>>2]=2;f=a+604|0;d=0;e=2;while(1){d=Cm(b,0,d)|0;if(!d)break;zr(f,e,c[d+8>>2]|0);zr(f,e+1|0,Im(b,d)|0);zr(f,e+2|0,0);e=e+3|0}c[a+608>>2]=e;d=xm(b,0,96264,0)|0;if(!d){d=xm(b,0,96269,0)|0;if(d|0)g=11}else g=11;if((g|0)==11)c[a+588>>2]=lw(Im(b,d)|0,b)|0;return}function lE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=a+592|0;zr(f,0,96273);zr(f,1,Cn(b)|0);c[a+596>>2]=2;f=a+604|0;g=ro(qo(b)|0)|0;e=2;d=0;while(1){d=Cm(g,1,d)|0;if(!d)break;zr(f,e,c[d+8>>2]|0);zr(f,e|1,Im(b,d)|0);e=e+2|0}c[a+608>>2]=e;d=xm(qo(b)|0,1,96264,0)|0;if(!d){d=xm(qo(b)|0,1,96269,0)|0;if(d|0)h=6}else h=6;if((h|0)==6)c[a+588>>2]=lw(Im(b,d)|0,b)|0;return}function mE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=a+592|0;zr(h,0,96237);k=b+48|0;zr(h,1,Cn(c[((c[b>>2]&3|0)==3?b:k)+40>>2]|0)|0);k=(pn(qo(c[((c[b>>2]&3|0)==3?b:k)+40>>2]|0)|0)|0)!=0;zr(h,3,k?122546:122549);k=b+-48|0;zr(h,4,Cn(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0);c[a+596>>2]=7;i=a+604|0;j=ro(qo(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0)|0;g=7;d=0;a:while(1){while(1){d=Cm(j,2,d)|0;if(!d)break a;e=d+8|0;f=c[e>>2]|0;if(!(uJ(f,96242)|0)){l=5;break}if(!(uJ(f,96251)|0)){l=7;break}if(uJ(f,96260)|0)break;zr(h,6,Im(b,d)|0)}if((l|0)==5){l=0;zr(h,2,Im(b,d)|0)}else if((l|0)==7){l=0;zr(h,5,Im(b,d)|0)}zr(i,g,c[e>>2]|0);zr(i,g+1|0,Im(b,d)|0);g=g+2|0}c[a+608>>2]=g;d=xm(qo(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0,2,96264,0)|0;if(!d){d=xm(qo(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0,2,96269,0)|0;if(d|0)l=13}else l=13;if((l|0)==13)c[a+588>>2]=lw(Im(b,d)|0,b)|0;return}function nE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=oE(a,b,c[d>>2]|0)|0;d=c[d+4>>2]|0;while(1){f=c[d+4>>2]|0;if(!f)break;b=0;while(1){e=c[f+(b*20|0)+4>>2]|0;if(!e)break;Cr(a,c[d>>2]|0,e,c[f+(b*20|0)+8>>2]|0,g,f+(b*20|0)|0)|0;b=b+1|0}d=d+8|0}return}function oE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=rw(12)|0;if(!b)b=0;else b=CL(b)|0;c[e+4>>2]=b;c[e+8>>2]=CL(d)|0;d=a+100|0;c[e>>2]=c[d>>2];c[d>>2]=e;return e|0}function pE(b,c){b=b|0;c=c|0;qE(b);a[b+44>>0]=0;rE(b)|0;oA(b)|0;return}function qE(b){b=b|0;var d=0,e=0;d=c[b+32>>2]|0;a:do if(d|0)while(1){e=c[d>>2]|0;if(!e)break a;if((a[e>>0]|0)==103?dL(e,96301)|0:0)nE(b,0,c[d+4>>2]|0);d=d+8|0}while(0);return}function rE(a){a=a|0;var b=0;b=Er(a,2,96314)|0;if(!b)a=999;else{c[a+148>>2]=c[(c[b+16>>2]|0)+12>>2];a=300}return a|0}function sE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[a+148>>2]|0;if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0)a=ab[e&63](b,d)|0;else a=0;return a|0}function tE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;return (c[b>>2]|0)-(c[d>>2]|0)|0}function uE(a){a=a|0;var b=0.0,d=0.0;a=c[a+16>>2]|0;d=+h[a+16>>3];b=+h[a+24>>3];return (vE(~~(d>b?d:b)>>>0)|0)+1|0}function vE(a){a=a|0;var b=0,c=0;if(!a)a=-1;else{c=a>>>0>65535;a=c?a>>>16:a;c=c?16:0;b=a>>>0>255;a=b?a>>>8:a;c=b?c|8:c;b=a>>>0>15;a=b?a>>>4:a;c=b?c|4:c;b=a>>>0>3;a=(b?c|2:c)+((b?a>>>2:a)>>>0>1&1)|0}return a|0}function wE(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;q=r;p=xE(b,d,e,f,g)|0;e=yE(p)|0;if((e|0)>=0){n=q+16|0;o=q+24|0;m=q+8|0;k=g+32|0;e=0;g=0;while(1){if((g|0)>=(d|0))break;f=b+(g*40|0)+32|0;do if(c[f>>2]|0){zE(q,p,b+(g*40|0)|0);i=+h[n>>3];j=+h[o>>3];if(!(c[q>>2]|0)){a[(c[f>>2]|0)+36>>0]=1;break}if(+h[m>>3]==0.0){f=c[f>>2]|0;h[f+16>>3]=i;h[f+24>>3]=j;a[f+36>>0]=1;break}if((a[k>>0]|0)==1){f=c[f>>2]|0;h[f+16>>3]=i;h[f+24>>3]=j;a[f+36>>0]=1}else e=1}while(0);g=g+1|0}AE(p)}l=r;return e|0}function xE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=qw(28)|0;j=Pl(24896,c[4348]|0)|0;h=g+20|0;c[h>>2]=j;do if(j){j=gH()|0;c[g+24>>2]=j;if(!j){TL(96532,14,1,c[13918]|0)|0;i=6;break}else{c[g>>2]=a;c[g+4>>2]=b;c[g+8>>2]=d;c[g+12>>2]=e;c[g+16>>2]=f;break}}else{TL(96532,14,1,c[13918]|0)|0;i=6}while(0);if((i|0)==6){a=c[h>>2]|0;if(a|0)Jl(a)|0;a=c[g+24>>2]|0;if(a|0)iH(a)|0;XI(g);g=0}return g|0}function yE(a){a=a|0;var b=0;b=JE(a)|0;if((b|0)>=0){KE(a);LE(a);b=Jl(c[a+20>>2]|0)|0}return b|0}function zE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0.0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,M=0;M=l;l=l+464|0;J=M+416|0;L=M+400|0;G=M+384|0;m=M+352|0;n=M+320|0;o=M+288|0;p=M+256|0;r=M+224|0;s=M+192|0;t=M+160|0;u=M+128|0;v=M+96|0;x=M+64|0;y=M+32|0;H=M;z=c[d+32>>2]|0;e=+h[z>>3];C=d+16|0;A=(e*2.0+ +h[C>>3])*.125;D=z+8|0;I=d+24|0;i=+h[I>>3];K=(+h[D>>3]*2.0+i)*.5;if(!z)ma(96325,96335,445,96345);f=J;g=f+36|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));B=z+16|0;h[B>>3]=+h[d>>3]-e;E=d+8|0;F=z+24|0;h[F>>3]=i+ +h[E>>3];BE(m,b,d,J);j=c[m>>2]|0;f=c[m+4>>2]|0;e=+h[m+8>>3];m=m+16|0;c[L>>2]=c[m>>2];c[L+4>>2]=c[m+4>>2];c[L+8>>2]=c[m+8>>2];c[L+12>>2]=c[m+12>>2];a:do if(!j){c[a>>2]=0;c[a+4>>2]=f;h[a+8>>3]=e;a=a+16|0;c[a>>2]=c[L>>2];c[a+4>>2]=c[L+4>>2];c[a+8>>2]=c[L+8>>2];c[a+12>>2]=c[L+12>>2]}else{h[F>>3]=+h[E>>3];BE(n,b,d,J);g=c[n>>2]|0;m=c[n+4>>2]|0;i=+h[n+8>>3];n=n+16|0;c[G>>2]=c[n>>2];c[G+4>>2]=c[n+4>>2];c[G+8>>2]=c[n+8>>2];c[G+12>>2]=c[n+12>>2];if(!g){c[a>>2]=0;c[a+4>>2]=m;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break}if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];f=m;e=i}else g=j;h[F>>3]=+h[E>>3]-+h[D>>3];BE(o,b,d,J);m=c[o>>2]|0;j=c[o+4>>2]|0;i=+h[o+8>>3];o=o+16|0;c[G>>2]=c[o>>2];c[G+4>>2]=c[o+4>>2];c[G+8>>2]=c[o+8>>2];c[G+12>>2]=c[o+12>>2];if(!m){c[a>>2]=0;c[a+4>>2]=j;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break}if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];f=j;e=i}else m=g;h[B>>3]=+h[d>>3];h[F>>3]=+h[I>>3]+ +h[E>>3];BE(p,b,d,J);g=c[p>>2]|0;j=c[p+4>>2]|0;i=+h[p+8>>3];p=p+16|0;c[G>>2]=c[p>>2];c[G+4>>2]=c[p+4>>2];c[G+8>>2]=c[p+8>>2];c[G+12>>2]=c[p+12>>2];if(!g){c[a>>2]=0;c[a+4>>2]=j;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break}if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];m=g;f=j;e=i}h[F>>3]=+h[E>>3]-+h[D>>3];BE(r,b,d,J);g=c[r>>2]|0;j=c[r+4>>2]|0;i=+h[r+8>>3];r=r+16|0;c[G>>2]=c[r>>2];c[G+4>>2]=c[r+4>>2];c[G+8>>2]=c[r+8>>2];c[G+12>>2]=c[r+12>>2];if(!g){c[a>>2]=0;c[a+4>>2]=j;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break}if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];m=g;f=j;e=i}h[B>>3]=+h[C>>3]+ +h[d>>3];h[F>>3]=+h[I>>3]+ +h[E>>3];BE(s,b,d,J);g=c[s>>2]|0;j=c[s+4>>2]|0;i=+h[s+8>>3];s=s+16|0;c[G>>2]=c[s>>2];c[G+4>>2]=c[s+4>>2];c[G+8>>2]=c[s+8>>2];c[G+12>>2]=c[s+12>>2];if(!g){c[a>>2]=0;c[a+4>>2]=j;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break}if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];m=g;f=j;e=i}h[F>>3]=+h[E>>3];BE(t,b,d,J);g=c[t>>2]|0;j=c[t+4>>2]|0;i=+h[t+8>>3];t=t+16|0;c[G>>2]=c[t>>2];c[G+4>>2]=c[t+4>>2];c[G+8>>2]=c[t+8>>2];c[G+12>>2]=c[t+12>>2];if(!g){c[a>>2]=0;c[a+4>>2]=j;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break}if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];m=g;f=j;e=i}h[F>>3]=+h[E>>3]-+h[D>>3];BE(u,b,d,J);g=c[u>>2]|0;j=c[u+4>>2]|0;i=+h[u+8>>3];u=u+16|0;c[G>>2]=c[u>>2];c[G+4>>2]=c[u+4>>2];c[G+8>>2]=c[u+8>>2];c[G+12>>2]=c[u+12>>2];if(!g){c[a>>2]=0;c[a+4>>2]=j;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break}if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];f=j;e=i}else g=m;j=(c[J+28>>2]|0)==0;do if(!(c[J+24>>2]|0))if(j){if(c[J+32>>2]|0){w=38;break}if(!((c[J+12>>2]|0)==0&(c[J>>2]|0)==0))w=38}else w=46;else if(j)w=38;else w=46;while(0);b:do if((w|0)==38)if(!(c[J+32>>2]|0)){h[B>>3]=+h[d>>3]-+h[z>>3];p=v+4|0;r=v+8|0;s=v+16|0;m=F;j=E;i=+h[I>>3];c:while(1){while(1){h[m>>3]=+h[j>>3]+i;if(!(+h[B>>3]<=+h[C>>3]+ +h[d>>3])){w=46;break b}BE(v,b,d,J);n=c[v>>2]|0;o=c[p>>2]|0;k=+h[r>>3];c[G>>2]=c[s>>2];c[G+4>>2]=c[s+4>>2];c[G+8>>2]=c[s+8>>2];c[G+12>>2]=c[s+12>>2];if(!n)break c;if(k<e)break;else{m=B;j=B;i=A}}c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];m=B;j=B;i=A;g=n;f=o;e=k}c[a>>2]=0;c[a+4>>2]=o;h[a+8>>3]=k;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break a}else w=46;while(0);d:do if((w|0)==46)if((c[J+12>>2]|0)==0&(c[J>>2]|0)==0){h[B>>3]=+h[d>>3]-+h[z>>3];k=+h[E>>3];n=x+4|0;o=x+8|0;p=x+16|0;i=k;k=+h[I>>3]+k;while(1){h[F>>3]=k;if(!(k>=i-+h[D>>3]))break d;BE(x,b,d,J);j=c[x>>2]|0;m=c[n>>2]|0;i=+h[o>>3];c[G>>2]=c[p>>2];c[G+4>>2]=c[p+4>>2];c[G+8>>2]=c[p+8>>2];c[G+12>>2]=c[p+12>>2];if(!j)break;if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];g=j;f=m;e=i}i=+h[E>>3];k=+h[F>>3]-K}c[a>>2]=0;c[a+4>>2]=m;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break a}while(0);i=+h[d>>3];k=+h[C>>3]+i;h[B>>3]=k;q=+h[D>>3];h[F>>3]=+h[E>>3]-q;j=c[J+4>>2]|0;do if(!(c[J+8>>2]|0)){m=c[J>>2]|0;if(!((j|0)==0&(m|0)==0)){w=59;break}if(c[J+20>>2]|0){j=0;m=0;w=59;break}if(c[J+32>>2]|0){j=0;m=0;w=59}}else{m=c[J>>2]|0;w=59}while(0);e:do if((w|0)==59){f:do if((j|0)==0&(m|0)==0){h[B>>3]=k;p=y+4|0;r=y+8|0;s=y+16|0;m=F;j=E;i=q;g:while(1){while(1){h[m>>3]=+h[j>>3]-i;i=+h[d>>3];if(!(+h[B>>3]>=i-+h[z>>3]))break f;BE(y,b,d,J);n=c[y>>2]|0;o=c[p>>2]|0;k=+h[r>>3];c[G>>2]=c[s>>2];c[G+4>>2]=c[s+4>>2];c[G+8>>2]=c[s+8>>2];c[G+12>>2]=c[s+12>>2];if(!n)break g;if(k<e)break;else{m=B;j=B;i=A}}c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];m=B;j=B;i=A;g=n;f=o;e=k}c[a>>2]=0;c[a+4>>2]=o;h[a+8>>3]=k;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break a}while(0);if(c[J+20>>2]|0)break;if(c[J+32>>2]|0)break;h[B>>3]=+h[C>>3]+i;i=+h[E>>3];n=H+4|0;o=H+8|0;p=H+16|0;k=i;i=i-+h[D>>3];while(1){h[F>>3]=i;if(!(i<=+h[I>>3]+k))break e;BE(H,b,d,J);j=c[H>>2]|0;m=c[n>>2]|0;i=+h[o>>3];c[G>>2]=c[p>>2];c[G+4>>2]=c[p+4>>2];c[G+8>>2]=c[p+8>>2];c[G+12>>2]=c[p+12>>2];if(!j)break;if(i<e){c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];g=j;f=m;e=i}k=+h[E>>3];i=+h[F>>3]+K}c[a>>2]=0;c[a+4>>2]=m;h[a+8>>3]=i;a=a+16|0;c[a>>2]=c[G>>2];c[a+4>>2]=c[G+4>>2];c[a+8>>2]=c[G+8>>2];c[a+12>>2]=c[G+12>>2];break a}while(0);c[a>>2]=g;c[a+4>>2]=f;h[a+8>>3]=e;a=a+16|0;c[a>>2]=c[L>>2];c[a+4>>2]=c[L+4>>2];c[a+8>>2]=c[L+8>>2];c[a+12>>2]=c[L+12>>2]}while(0);l=M;return}function AE(a){a=a|0;iH(c[a+24>>2]|0)|0;XI(a);return}function BE(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0,k=0,m=0,n=0.0,o=0,p=0,q=0,r=0.0,s=0,t=0;t=l;l=l+48|0;q=t+32|0;s=t+16|0;p=t;g=c[e+32>>2]|0;if(!g)ma(96325,96335,382,96354);o=g+16|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];o=d+4|0;m=0;g=0;while(1){if((m|0)>=(c[o>>2]|0))break;j=c[d>>2]|0;k=j+(m*40|0)|0;do if((k|0)!=(e|0)){if(+h[j+(m*40|0)+16>>3]>0.0?+h[j+(m*40|0)+24>>3]>0.0:0)break;g=g+((CE(e,k)|0)!=0&1)|0}while(0);m=m+1|0}DE(e,q);m=c[d+24>>2]|0;m=kH(m,c[m>>2]|0,q)|0;if(!m){c[b>>2]=g;h[b+8>>3]=0.0;s=b+16|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2]}else{k=m;i=0.0;while(1){if(!k)break;j=c[(c[k+4>>2]|0)+16>>2]|0;if((j|0)!=(e|0)){EE(j,s);n=+FE(q,s);if(n>0.0){g=g+1|0;i=+GE(e,j,q,n,f)+i}d=c[j+32>>2]|0;if(((d|0)!=0?(a[d+36>>0]|0)!=0:0)?(DE(j,s),r=+FE(q,s),r>0.0):0){g=g+1|0;i=+HE(e,j,q,r,f)+i}}k=c[k>>2]|0}fH(m);c[b>>2]=g;h[b+8>>3]=i;s=b+16|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2]}l=t;return}function CE(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0.0;a=c[a+32>>2]|0;if(+h[b+16>>3]==0.0?+h[b+24>>3]==0.0:0){if((((a|0)!=0?(d=+h[b>>3],e=+h[a+16>>3],d>e):0)?d<+h[a>>3]+e:0)?(f=+h[b+8>>3],g=+h[a+24>>3],f>g):0)a=f<+h[a+8>>3]+g&1;else a=0;return a|0}ma(96391,96335,219,96428);return 0}function DE(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;a=c[a+32>>2]|0;e=+h[a+16>>3];c[b>>2]=~~e;d=+h[a+24>>3];c[b+4>>2]=~~d;c[b+8>>2]=~~(+h[a>>3]+e);c[b+12>>2]=~~(+h[a+8>>3]+d);return}function EE(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;e=+h[a>>3];c[b>>2]=~~e;d=+h[a+8>>3];c[b+4>>2]=~~d;c[b+8>>2]=~~(+h[a+16>>3]+e);c[b+12>>2]=~~(+h[a+24>>3]+d);return}function FE(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=c[a+8>>2]|0;j=c[b>>2]|0;if((((i|0)>=(j|0)?(k=c[a>>2]|0,l=c[b+8>>2]|0,(k|0)<=(l|0)):0)?(e=c[a+12>>2]|0,f=c[b+4>>2]|0,(e|0)>=(f|0)):0)?(g=c[a+4>>2]|0,h=c[b+12>>2]|0,(g|0)<=(h|0)):0)d=(+(c[((e|0)<(h|0)?a:b)+12>>2]|0)-+(c[((g|0)>(f|0)?a:b)+4>>2]|0))*(+(c[((i|0)<(l|0)?a:b)+8>>2]|0)-+(c[((k|0)>(j|0)?a:b)>>2]|0));else d=0.0;return +d}function GE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var g=0.0,h=0.0,i=0,j=0;j=l;l=l+16|0;i=j;a=IE(a,b)|0;f=f+(((a|0)<0?5:a)<<2)|0;a=c[f>>2]|0;if(!a){c[f>>2]=b;g=e}else{EE(a,i);g=+FE(d,i);g=g>e?g:0.0;a=c[f>>2]|0;if((c[a+32>>2]|0)!=0?(DE(a,i),h=+FE(d,i),h>e):0)g=h>g?h:g;if(!(g>0.0)){c[f>>2]=b;g=e}}l=j;return +g}function HE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var g=0.0,h=0.0,i=0,j=0;j=l;l=l+16|0;i=j;a=IE(a,b)|0;f=f+(((a|0)<0?5:a)<<2)|0;a=c[f>>2]|0;if(!a){c[f>>2]=b;g=e}else{EE(a,i);g=+FE(d,i);g=g>e?g:0.0;a=c[f>>2]|0;if((c[a+32>>2]|0)!=0?(DE(a,i),h=+FE(d,i),h>e):0)g=h>g?h:g;if(!(g>0.0)){c[f>>2]=b;g=e}}l=j;return +g}function IE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=c[b+32>>2]|0;f=c[d+32>>2]|0;if((e|0)==(f|0))ma(96370,96335,276,96380);do if((a[e+36>>0]|0)!=0?(a[f+36>>0]|0)!=0:0){j=+h[b>>3];if(j==0.0?+h[b+8>>3]==0.0:0){e=-1;break}k=+h[d>>3];i=+h[d+8>>3];if(!(k==0.0&i==0.0)){g=+h[b+8>>3];if(i<g){if(k<j){e=0;break}e=k>j?2:1;break}e=k<j;if(i>g){if(e){e=6;break}e=k>j?8:7;break}if(!e)if(k>j)e=5;else e=-1;else e=3}else e=-1}else e=-1;while(0);return e|0}function JE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;k=l;l=l+32|0;d=k+24|0;e=k+16|0;f=k;g=uE(a)|0;h=a+4|0;i=e+4|0;j=a+20|0;b=0;while(1){if((b|0)>=(c[h>>2]|0)){b=0;break}m=qw(32)|0;o=(c[a>>2]|0)+(b*40|0)|0;n=m+12|0;c[m+28>>2]=o;ME(f,o);c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];c[n+8>>2]=c[f+8>>2];c[n+12>>2]=c[f+12>>2];n=c[n>>2]|0;c[e>>2]=(((c[m+20>>2]|0)-n|0)/2|0)+n;n=c[m+16>>2]|0;c[i>>2]=(((c[m+24>>2]|0)-n|0)/2|0)+n;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[m+8>>2]=NE(d,g)|0;n=c[j>>2]|0;if(!(bb[c[n>>2]&31](n,m,1)|0)){b=-1;break}else b=b+1|0}l=k;return b|0}function KE(a){a=a|0;var b=0,d=0,e=0;d=a+20|0;e=c[d>>2]|0;b=a+24|0;a=bb[c[e>>2]&31](e,0,128)|0;while(1){if(!a)break;e=c[b>>2]|0;lH(e,a+12|0,c[a+28>>2]|0,e,0)|0;e=c[d>>2]|0;a=bb[c[e>>2]&31](e,a,8)|0}return}function LE(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=a+20|0;f=Rl(c[e>>2]|0)|0;d=0;while(1){if(!(Rl(c[e>>2]|0)|0))break;g=c[e>>2]|0;a=c[(c[g+8>>2]|0)+4>>2]|0;if(!a){h=8;break}b=c[(c[g+4>>2]|0)+8>>2]|0;if((b|0)<0)a=c[a+8>>2]|0;else a=a+(0-b)|0;if(!a){h=8;break}bb[c[g>>2]&31](g,a,4096)|0;XI(a);d=d+1|0}if((h|0)==8)ma(96441,96335,616,96444);if((f|0)==(d|0))return;else ma(96456,96335,623,96444)}function ME(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,j=0,k=0,l=0.0;d=c[b+32>>2]|0;if(!d){e=0.0;f=0.0}else{e=+h[d>>3];f=+h[d+8>>3]}l=+h[b>>3];k=~~+A(+(l-e));g=+h[b+8>>3];j=~~+A(+(g-f));i=~~+N(+(l+e+ +h[b+16>>3]));if((i|0)==2147483647)ma(96468,96335,264,96495);d=~~+N(+(g+f+ +h[b+24>>3]));if((d|0)==2147483647)ma(96505,96335,266,96495);else{c[a>>2]=k;c[a+4>>2]=j;c[a+8>>2]=i;c[a+12>>2]=d;return}}function NE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=0;e=c[a>>2]|0;d=c[a+4>>2]|0;while(1){a=b+-1|0;if((b|0)<=0)break;i=e>>>a&1;b=d>>>a&1;g=b+-1|0;h=g&(e^d);g=g&0-i;f=i<<1|f<<2|i^b;b=a;e=h^e^g;d=h^d^g}return f|0}function OE(b){b=b|0;var d=0,e=0,f=0,g=0;d=oJ(b)|0;if(d>>>0>=(c[42407]|0)>>>0){d=d+11|0;c[42407]=d;d=tw(c[42408]|0,d)|0;c[42408]=d;if(!d)d=0;else e=4}else{d=c[42408]|0;e=4}if((e|0)==4){g=d;while(1){e=a[b>>0]|0;if(!(e<<24>>24))break;f=e&255;if(gK(f)|0)e=(fK(f)|0)&255;a[g>>0]=e;g=g+1|0;b=b+1|0}a[g>>0]=0}return d|0}function PE(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,i=0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0;F=l;l=l+144|0;s=F+96|0;p=F+80|0;v=F+124|0;t=F+72|0;w=F+64|0;x=F+56|0;C=F+48|0;D=F+40|0;E=F+32|0;y=F+24|0;z=F+16|0;A=F+8|0;B=F;i=F+120|0;m=F+116|0;n=F+112|0;o=F+108|0;c[e+32>>2]=f;r=b;while(1)if((a[r>>0]|0)==32)r=r+1|0;else break;c[o>>2]=255;b=a[r>>0]|0;a:do if(b<<24>>24==35){c[p>>2]=i;c[p+4>>2]=m;c[p+8>>2]=n;c[p+12>>2]=o;if((_L(r,96547,p)|0)<=2){b=a[r>>0]|0;q=12;break}switch(f|0){case 0:{G=+((c[i>>2]|0)>>>0)*.00392156862745098;h[C>>3]=G;g=+((c[m>>2]|0)>>>0)*.00392156862745098;h[D>>3]=g;j=+((c[n>>2]|0)>>>0)*.00392156862745098;h[E>>3]=j;k=+((c[o>>2]|0)>>>0)*.00392156862745098;QE(G,g,j,t,w,x);h[e>>3]=+h[t>>3];h[e+8>>3]=+h[w>>3];h[e+16>>3]=+h[x>>3];h[e+24>>3]=k;b=0;break a}case 1:{a[e>>0]=c[i>>2];a[e+1>>0]=c[m>>2];a[e+2>>0]=c[n>>2];a[e+3>>0]=c[o>>2];b=0;break a}case 3:{j=+((c[i>>2]|0)>>>0)*.00392156862745098;h[C>>3]=j;k=+((c[m>>2]|0)>>>0)*.00392156862745098;h[D>>3]=k;G=+((c[n>>2]|0)>>>0)*.00392156862745098;h[E>>3]=G;RE(j,k,G,y,z,A,B);a[e>>0]=~~+h[y>>3]*255;a[e+1>>0]=~~+h[z>>3]*255;a[e+2>>0]=~~+h[A>>3]*255;a[e+3>>0]=~~+h[B>>3]*255;b=0;break a}case 2:{c[e>>2]=(((c[i>>2]|0)*65535|0)>>>0)/255|0;c[e+4>>2]=(((c[m>>2]|0)*65535|0)>>>0)/255|0;c[e+8>>2]=(((c[n>>2]|0)*65535|0)>>>0)/255|0;c[e+12>>2]=(((c[o>>2]|0)*65535|0)>>>0)/255|0;b=0;break a}case 4:{h[e>>3]=+((c[i>>2]|0)>>>0)*.00392156862745098;h[e+8>>3]=+((c[m>>2]|0)>>>0)*.00392156862745098;h[e+16>>3]=+((c[n>>2]|0)>>>0)*.00392156862745098;h[e+24>>3]=+((c[o>>2]|0)>>>0)*.00392156862745098;b=0;break a}default:{b=0;break a}}}else q=12;while(0);b:do if((q|0)==12){if(!(b<<24>>24!=46?((b&255)+-48|0)>>>0>=10:0)){b=oJ(r)|0;if(b>>>0>=(c[42409]|0)>>>0){b=b+11|0;c[42409]=b;b=tw(c[42410]|0,b)|0;c[42410]=b;if(!b){b=-1;break}}else b=c[42410]|0;m=b;i=r;c:while(1){n=i+1|0;i=a[i>>0]|0;switch(i<<24>>24){case 0:break c;case 44:{i=32;break}default:{}}a[m>>0]=i;m=m+1|0;i=n}a[m>>0]=0;c[s>>2]=t;c[s+4>>2]=w;c[s+8>>2]=x;if((_L(b,96561,s)|0)==3){k=+h[t>>3];k=k<1.0?k:1.0;k=k>0.0?k:0.0;h[t>>3]=k;j=+h[w>>3];j=j<1.0?j:1.0;j=j>0.0?j:0.0;h[w>>3]=j;g=+h[x>>3];g=g<1.0?g:1.0;g=g>0.0?g:0.0;h[x>>3]=g;switch(f|0){case 0:{h[e>>3]=k;h[e+8>>3]=j;h[e+16>>3]=g;h[e+24>>3]=1.0;b=0;break b}case 1:{SE(k,j,g,C,D,E);a[e>>0]=~~(+h[C>>3]*255.0);a[e+1>>0]=~~(+h[D>>3]*255.0);a[e+2>>0]=~~(+h[E>>3]*255.0);a[e+3>>0]=-1;b=0;break b}case 3:{SE(k,j,g,C,D,E);RE(+h[C>>3],+h[D>>3],+h[E>>3],y,z,A,B);a[e>>0]=~~+h[y>>3]*255;a[e+1>>0]=~~+h[z>>3]*255;a[e+2>>0]=~~+h[A>>3]*255;a[e+3>>0]=~~+h[B>>3]*255;b=0;break b}case 2:{SE(k,j,g,C,D,E);c[e>>2]=~~(+h[C>>3]*65535.0);c[e+4>>2]=~~(+h[D>>3]*65535.0);c[e+8>>2]=~~(+h[E>>3]*65535.0);c[e+12>>2]=65535;b=0;break b}case 4:{SE(k,j,g,C,D,E);h[e>>3]=+h[C>>3];h[e+8>>3]=+h[D>>3];h[e+16>>3]=+h[E>>3];h[e+24>>3]=1.0;b=0;break b}default:{b=0;break b}}}}i=TE(r)|0;c[v>>2]=i;if(!i)b=-1;else{b=c[42411]|0;if(!(((b|0)!=0?(u=c[b>>2]|0,(a[u>>0]|0)==(a[i>>0]|0)):0)?(uJ(u,i)|0)==0:0)){b=rM(v,24932,2491,12,38)|0;c[42411]=b;if(!b)switch(f|0){case 0:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[e+24>>3]=1.0;b=1;break b}case 1:{a[e+2>>0]=0;a[e+1>>0]=0;a[e>>0]=0;a[e+3>>0]=-1;b=1;break b}case 3:{c[e>>2]=0;b=1;break b}case 2:{c[e+8>>2]=0;c[e+4>>2]=0;c[e>>2]=0;c[e+12>>2]=65535;b=1;break b}case 4:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[e+24>>3]=1.0;b=1;break b}default:{b=1;break b}}}switch(f|0){case 0:{h[e>>3]=+(d[b+4>>0]|0)*.00392156862745098;h[e+8>>3]=+(d[b+5>>0]|0)*.00392156862745098;h[e+16>>3]=+(d[b+6>>0]|0)*.00392156862745098;h[e+24>>3]=+(d[b+10>>0]|0)*.00392156862745098;b=0;break b}case 1:{a[e>>0]=a[b+7>>0]|0;a[e+1>>0]=a[b+8>>0]|0;a[e+2>>0]=a[b+9>>0]|0;a[e+3>>0]=a[b+10>>0]|0;b=0;break b}case 3:{j=+(d[b+7>>0]|0)*.00392156862745098;h[C>>3]=j;k=+(d[b+8>>0]|0)*.00392156862745098;h[D>>3]=k;G=+(d[b+9>>0]|0)*.00392156862745098;h[E>>3]=G;RE(j,k,G,y,z,A,B);a[e>>0]=~~+h[y>>3]*255;a[e+1>>0]=~~+h[z>>3]*255;a[e+2>>0]=~~+h[A>>3]*255;a[e+3>>0]=~~+h[B>>3]*255;b=0;break b}case 2:{c[e>>2]=(d[b+7>>0]|0)*257;c[e+4>>2]=(d[b+8>>0]|0)*257;c[e+8>>2]=(d[b+9>>0]|0)*257;c[e+12>>2]=(d[b+10>>0]|0)*257;b=0;break b}case 4:{h[e>>3]=+(d[b+7>>0]|0)*.00392156862745098;h[e+8>>3]=+(d[b+8>>0]|0)*.00392156862745098;h[e+16>>3]=+(d[b+9>>0]|0)*.00392156862745098;h[e+24>>3]=+(d[b+10>>0]|0)*.00392156862745098;b=0;break b}default:{b=0;break b}}}}while(0);l=F;return b|0}function QE(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;i=b<c?b:c;m=b>c?b:c;m=m<a?a:m;i=m-(i>a?a:i);g=i/m;if(m>0.0)if(g>0.0){j=(m-a)/i;k=(m-b)/i;l=(m-c)/i;do if(!(m==a)){if(m==b){a=j+2.0-l;break}if(m==c)a=k+4.0-j;else a=0.0}else a=(b-c)/i;while(0);a=a*60.0;if(a<0.0)a=a+360.0}else a=0.0;else{g=0.0;a=0.0}h[d>>3]=a*.002777777777777778;h[f>>3]=m;h[e>>3]=g;return}function RE(a,b,c,d,e,f,g){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;g=g|0;h[d>>3]=1.0-a;h[e>>3]=1.0-b;h[f>>3]=1.0-c;b=+h[d>>3];c=+h[e>>3];c=b<c?b:c;h[g>>3]=c;b=+h[f>>3];c=b<c?b:c;h[g>>3]=c;h[d>>3]=+h[d>>3]-c;h[e>>3]=+h[e>>3]-+h[g>>3];h[f>>3]=+h[f>>3]-+h[g>>3];return}function SE(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0,l=0;a:do if(!(b<=0.0)){i=!(a>=1.0)?a*6.0:0.0;l=~~i;i=i-+(l|0);a=(1.0-b)*c;j=(1.0-i*b)*c;b=(1.0-(1.0-i)*b)*c;switch(l|0){case 0:{g=a;i=b;a=c;k=8;break a}case 1:{g=a;i=c;a=j;k=8;break a}case 2:{g=b;i=c;k=8;break a}case 3:{g=c;i=j;k=8;break a}case 4:{g=c;i=a;a=b;k=8;break a}case 5:{g=j;i=a;a=c;k=8;break a}default:break a}}else{g=c;i=c;a=c;k=8}while(0);if((k|0)==8){h[d>>3]=a;h[e>>3]=i;h[f>>3]=g}return}function TE(b){b=b|0;var d=0,e=0;d=a[b>>0]|0;if(((d<<24>>24!=98?(e=b+1|0,!(d<<24>>24==119|(SJ(e,122058,4)|0)==0)):0)?!(d<<24>>24==108|(SJ(e,122063,4)|0)==0):0)?(SJ(e,122068,8)|0)!=0:0){do if(d<<24>>24==47){d=TJ(e,47)|0;if(!d)b=e;else{if((a[e>>0]|0)!=47){e=(lK(122077,e,4)|0)==0;b=e?d+1|0:b;break}d=c[42412]|0;if((d|0?a[d>>0]|0:0)?lK(122077,d,3)|0:0){b=VE(d,b+2|0)|0;break}b=b+2|0}}else{d=c[42412]|0;if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(lK(122077,d,3)|0)!=0:0)b=VE(d,b)|0}while(0);b=OE(b)|0}return b|0}function UE(a,b){a=a|0;b=b|0;return eK(c[a>>2]|0,c[b>>2]|0)|0}function VE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f;g=oJ(a)|0;g=(oJ(b)|0)+g|0;d=g+13|0;if((g+3|0)>>>0<(c[42413]|0)>>>0)d=c[42414]|0;else{c[42413]=d;d=tw(c[42414]|0,d)|0;c[42414]=d}c[e>>2]=a;c[e+4>>2]=b;lL(d,122082,e)|0;l=f;return c[42414]|0}function WE(a){a=a|0;c[42412]=a;return}function XE(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,g=0;f=l;l=l+208|0;g=f;YE(g,+h[a>>3],+h[a+8>>3],b,c,d,e);a=ZE(g)|0;l=f;return a|0}function YE(a,b,c,d,e,f,g){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;g=+g;var i=0,j=0;h[a>>3]=b;h[a+8>>3]=c;j=a+16|0;h[j>>3]=d;i=a+24|0;h[i>>3]=e;h[a+32>>3]=0.0;c=+K(+(+F(+f)/e),+(+E(+f)/d));h[a+56>>3]=c;e=+K(+(+F(+g)/e),+(+E(+g)/d));h[a+40>>3]=1.0;h[a+48>>3]=0.0;e=e-+A(+((e-c)*.15915494309189535))*6.283185307179586;h[a+64>>3]=g-f>3.141592653589793&e-c<3.141592653589793?e+6.283185307179586:e;dF(a);eF(a);fF(a);g=+h[j>>3];g=(g-+h[i>>3])/g;h[a+168>>3]=g;h[a+176>>3]=(2.0-g)*g;g=1.0-g;h[a+184>>3]=g;h[a+192>>3]=g*g;return}function ZE(a){a=a|0;var b=0,c=0.0,d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;q=qw(8)|0;f=+h[a+56>>3];e=+h[a+64>>3]-f;p=1;b=0;while(1){o=e/+(p|0);if(!(b<<24>>24==0&(p|0)<1024))break;a:do if(!(o<=1.5707963267948966))b=0;else{c=f;d=0;b=1;while(1){if(!(b<<24>>24!=0&(d|0)<(p|0)))break a;n=c+o;b=+_E(a,c,n)<=1.0e-05&1;c=n;d=d+1|0}}while(0);p=p<<1}i=+E(+f);u=+F(+f);d=a+16|0;s=+h[d>>3];v=s*i;j=a+24|0;c=+h[j>>3];g=c*u;i=c*i;c=+h[a>>3];k=a+40|0;t=+h[k>>3];l=a+48|0;r=+h[l>>3];e=t*v+c-r*g;m=a+8|0;n=+h[m>>3];g=r*v+t*g+n;s=-(u*s);$E(q,c,n);aF(q,e,g);n=+G(+(o*.5));n=+F(+o)*.3333333333333333*(+C(+(n*n*3.0+4.0))+-1.0);c=f;f=g;g=r*s+t*i;i=t*s-r*i;b=0;while(1){if((b|0)>=(p|0))break;r=c+o;u=+E(+r);v=+F(+r);x=+h[d>>3];z=x*u;w=+h[j>>3];t=w*v;u=w*u;w=+h[k>>3];y=+h[l>>3];s=w*z+ +h[a>>3]-y*t;t=y*z+w*t+ +h[m>>3];x=-(v*x);v=w*x-y*u;u=y*x+w*u;bF(q,e+i*n,f+g*n,s-v*n,t-u*n,s,t);c=r;e=s;f=t;g=u;i=v;b=b+1|0}cF(q);return q|0}function _E(a,b,c){a=a|0;b=+b;c=+c;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;d=c+b;i=+h[a+16>>3];e=+h[a+24>>3]/i;g=+E(+d);f=+E(+(d*2.0));d=+E(+(d*3.0));a=e<.25?10328:10584;return +(((e*.001+4.98)*e+.207)/(e+.0067)*i*+L(+(((+h[a+32>>3]*e+ +h[a+40>>3])*e+ +h[a+48>>3])/(+h[a+56>>3]+e)*g+((+h[a>>3]*e+ +h[a+8>>3])*e+ +h[a+16>>3])/(+h[a+24>>3]+e)+((+h[a+64>>3]*e+ +h[a+72>>3])*e+ +h[a+80>>3])/(+h[a+88>>3]+e)*f+((+h[a+96>>3]*e+ +h[a+104>>3])*e+ +h[a+112>>3])/(+h[a+120>>3]+e)*d+(((+h[a+160>>3]*e+ +h[a+168>>3])*e+ +h[a+176>>3])/(+h[a+184>>3]+e)*g+((+h[a+128>>3]*e+ +h[a+136>>3])*e+ +h[a+144>>3])/(+h[a+152>>3]+e)+((+h[a+192>>3]*e+ +h[a+200>>3])*e+ +h[a+208>>3])/(+h[a+216>>3]+e)*f+((+h[a+224>>3]*e+ +h[a+232>>3])*e+ +h[a+240>>3])/(+h[a+248>>3]+e)*d)*(c-b))))}function $E(a,b,d){a=a|0;b=+b;d=+d;var e=0;c[42415]=100;e=qw(1600)|0;c[a>>2]=e;h[e>>3]=b;h[e+8>>3]=d;c[a+4>>2]=1;return}function aF(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0;f=c[a>>2]|0;e=(c[a+4>>2]|0)+-1|0;bF(a,+h[f+(e<<4)>>3],+h[f+(e<<4)+8>>3],b,d,b,d);return}function bF(a,b,d,e,f,g,i){a=a|0;b=+b;d=+d;e=+e;f=+f;g=+g;i=+i;var j=0,k=0,l=0,m=0;l=a+4|0;j=c[l>>2]|0;k=c[42415]|0;if((j+3|0)<(k|0))a=c[a>>2]|0;else{c[42415]=k<<1;j=ZI(c[a>>2]|0,k<<5)|0;c[a>>2]=j;a=j;j=c[l>>2]|0}h[a+(j<<4)>>3]=b;m=j+1|0;h[a+(j<<4)+8>>3]=d;h[a+(m<<4)>>3]=e;k=j+2|0;h[a+(m<<4)+8>>3]=f;h[a+(k<<4)>>3]=g;c[l>>2]=j+3;h[a+(k<<4)+8>>3]=i;return}function cF(a){a=a|0;var b=0;b=c[a>>2]|0;aF(a,+h[b>>3],+h[b+8>>3]);c[a>>2]=ZI(c[a>>2]|0,c[a+4>>2]<<4)|0;c[42415]=0;return}function dF(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0;d=+h[a+16>>3];b=+h[a+24>>3];b=+C(+(d*d-b*b));d=b*+h[a+40>>3];b=b*+h[a+48>>3];e=+h[a>>3];h[a+104>>3]=e-d;c=+h[a+8>>3];h[a+112>>3]=c-b;h[a+120>>3]=e+d;h[a+128>>3]=c+b;return}function eF(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0;d=+h[a+16>>3];i=+h[a+56>>3];j=+E(+i)*d;b=+h[a+24>>3];i=+F(+i)*b;g=+h[a+64>>3];d=+E(+g)*d;b=+F(+g)*b;g=+h[a>>3];c=+h[a+40>>3];e=+h[a+48>>3];h[a+72>>3]=c*j+g-e*i;f=+h[a+8>>3];h[a+80>>3]=e*j+f+c*i;h[a+88>>3]=g+c*d-e*b;h[a+96>>3]=f+e*d+c*b;return}function fF(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0;k=+h[a+24>>3];l=+h[a+16>>3];e=k/l;m=+h[a+48>>3];n=+B(+m)<.1;j=+h[a+40>>3];do if(n){b=m/j;c=+J(+(b*e));d=-c;if(j<0.0){b=+J(+(b/e));e=d;d=3.141592653589793-c;c=4.71238898038469-b;b=1.5707963267948966-b;break}else{b=+J(+(b/e));e=-3.141592653589793-c;c=1.5707963267948966-b;b=-1.5707963267948966-b;break}}else{b=j/m;c=+J(+(b/e));d=c+1.5707963267948966;if(m<0.0){b=+J(+(b*e));e=c+-1.5707963267948966;c=b+3.141592653589793;break}else{b=+J(+(b*e));e=d;d=c+4.71238898038469;c=b;b=b+-3.141592653589793;break}}while(0);g=+h[a+56>>3];e=e-+A(+((e-g)*.15915494309189535))*6.283185307179586;b=b-+A(+((b-g)*.15915494309189535))*6.283185307179586;f=d-+A(+((d-g)*.15915494309189535))*6.283185307179586;g=c-+A(+((c-g)*.15915494309189535))*6.283185307179586;i=+h[a+64>>3];if(!(e<=i)){e=+h[a+72>>3];c=+h[a+88>>3];c=e<c?e:c}else c=+E(+e)*l*j+ +h[a>>3]-k*+F(+e)*m;h[a+136>>3]=c;if(!(b<=i)){e=+h[a+80>>3];d=+h[a+96>>3];d=e<d?e:d}else d=+E(+b)*l*m+ +h[a+8>>3]+ +F(+b)*k*j;h[a+144>>3]=d;if(!(f<=i)){f=+h[a+72>>3];b=+h[a+88>>3];b=f>b?f:b}else b=+E(+f)*l*j+ +h[a>>3]-k*+F(+f)*m;h[a+152>>3]=b-c;if(!(g<=i)){m=+h[a+80>>3];b=+h[a+96>>3];b=m>b?m:b}else b=+E(+g)*l*m+ +h[a+8>>3]+ +F(+g)*k*j;h[a+160>>3]=b-d;return}function gF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0.0,m=0,n=0;n=l;l=l+80|0;m=n;hF(b);k=+h[e+56>>3];g=+h[e+64>>3];switch(a[e+80>>0]|0){case 116:{g=(+h[e+48>>3]-+iF(d))*.5+g;f=4;break}case 98:{g=g-(+h[e+48>>3]-+iF(d))*.5;f=4;break}default:{}}if((f|0)==4)g=g+-1.0;h[m>>3]=k;h[m+8>>3]=g;c[m+20>>2]=c[e+8>>2];c[m+16>>2]=c[e+4>>2];h[m+32>>3]=+h[e+16>>3];j=b+16|0;f=Hm(c[(c[j>>2]|0)+8>>2]|0,122089)|0;e=m+56|0;c[e>>2]=f;i=m+60|0;c[i>>2]=c[(c[j>>2]|0)+212>>2];j=m+64|0;a[j>>0]=0;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))c[e>>2]=122100;if((a[d+4>>0]|0)==1){e=c[d>>2]|0;AD(b,c[(c[b>>2]|0)+336>>2]|0);f=c[e+24>>2]|0;if(!f)wD(b,122106);else wD(b,f);kF(b,e,m);if(a[j>>0]|0)XI(c[i>>2]|0)}else jF(b,c[d>>2]|0,m);lF(b);l=n;return}function hF(a){a=a|0;var d=0,e=0,f=0;d=Qt(a)|0;e=c[d>>2]|0;a=c[e+4>>2]|0;c[d+4>>2]=a;c[d+12>>2]=c[e+12>>2];switch(a|0){case 2:{a=e+8|0;f=6;break}case 0:{a=e+8|0;f=6;break}case 1:{a=e+8|0;f=6;break}case 3:{a=e+8|0;f=6;break}default:{}}if((f|0)==6)c[d+8>>2]=c[a>>2];c[d+208>>2]=c[e+208>>2];c[d+228>>2]=c[e+228>>2];c[d+244>>2]=c[e+244>>2];f=d+260|0;b[f>>1]=b[f>>1]&-2|b[e+260>>1]&1;return}function iF(b){b=b|0;var d=0.0,e=0,f=0;switch(a[b+4>>0]|0){case 1:{e=c[b>>2]|0;b=e+72|0;e=e+56|0;f=5;break}case 3:{e=c[b>>2]|0;b=e+24|0;e=e+8|0;f=5;break}case 2:{e=c[b>>2]|0;b=e+32|0;e=e+16|0;f=5;break}default:d=0.0}if((f|0)==5)d=+h[b>>3]-+h[e>>3];return +d}function jF(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;n=l;l=l+96|0;j=n+64|0;i=n+32|0;g=n+16|0;k=n;m=b[e+4>>1]|0;if(m<<16>>16>=1){r=e+8|0;p=+h[e+24>>3];o=+h[r>>3];h[k>>3]=(o+p)*.5+ +h[f>>3];h[k+8>>3]=(+h[e+16>>3]+ +h[e+32>>3])*.5+ +h[f+8>>3];q=c[e>>2]|0;s=f+16|0;f=a[e+6>>0]|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[i>>2]=c[s>>2];c[i+4>>2]=c[s+4>>2];c[i+8>>2]=c[s+8>>2];c[i+12>>2]=c[s+12>>2];c[i+16>>2]=c[s+16>>2];c[i+20>>2]=c[s+20>>2];c[i+24>>2]=c[s+24>>2];c[i+28>>2]=c[s+28>>2];c[j>>2]=c[r>>2];c[j+4>>2]=c[r+4>>2];c[j+8>>2]=c[r+8>>2];c[j+12>>2]=c[r+12>>2];c[j+16>>2]=c[r+16>>2];c[j+20>>2]=c[r+20>>2];c[j+24>>2]=c[r+24>>2];c[j+28>>2]=c[r+28>>2];xF(d,m<<16>>16,q,g,(p-o)*.5,i,j,f)}l=n;return}function kF(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+176|0;t=y+96|0;v=y+64|0;w=y+136|0;p=y;q=y+128|0;r=f+48|0;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];c[v+8>>2]=c[r+8>>2];c[v+12>>2]=c[r+12>>2];c[v+16>>2]=c[r+16>>2];c[v+20>>2]=c[r+20>>2];c[v+24>>2]=c[r+24>>2];c[v+28>>2]=c[r+28>>2];m=+h[g>>3];n=+h[g+8>>3];r=f+84|0;i=c[r>>2]|0;if(!(c[f>>2]|0))x=(c[f+8>>2]|0)!=0;else x=1;u=f+108|0;j=c[u>>2]|0;if(j|0)mF(g,j,167296);h[v>>3]=+h[v>>3]+m;s=v+16|0;h[s>>3]=+h[s>>3]+m;s=v+8|0;h[s>>3]=+h[s>>3]+n;s=v+24|0;h[s>>3]=+h[s>>3]+n;if(x?(c[e+152>>2]&4|0)==0:0){c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];c[t+8>>2]=c[v+8>>2];c[t+12>>2]=c[v+12>>2];c[t+16>>2]=c[v+16>>2];c[t+20>>2]=c[v+20>>2];c[t+24>>2]=c[v+24>>2];c[t+28>>2]=c[v+28>>2];s=nF(e,g,f,t,w)|0}else s=0;o=f+42|0;j=b[o>>1]|0;if(!(j&32)){k=c[f+20>>2]|0;if(k){j=oF(e,k,c[f+28>>2]|0,j&65535,q)|0;if(!(b[o>>1]&4)){c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];c[t+8>>2]=c[v+8>>2];c[t+12>>2]=c[v+12>>2];c[t+16>>2]=c[v+16>>2];c[t+20>>2]=c[v+20>>2];c[t+24>>2]=c[v+24>>2];c[t+28>>2]=c[v+28>>2];DD(e,t,j)}else{o=d[f+33>>0]|0;c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];c[t+8>>2]=c[v+8>>2];c[t+12>>2]=c[v+12>>2];c[t+16>>2]=c[v+16>>2];c[t+20>>2]=c[v+20>>2];c[t+24>>2]=c[v+24>>2];c[t+28>>2]=c[v+28>>2];ty(e,pF(p,t,o)|0,4,4,j)}XI(c[q>>2]|0)}while(1){j=c[i>>2]|0;if(!j)break;qF(e,j,g);i=i+4|0}i=c[r>>2]|0;JD(e,1.0);j=f+24|0;while(1){k=i+4|0;i=c[i>>2]|0;if(!i)break;if(!(a[i+100>>0]|0)){i=k;continue}rF(e,i,g,c[j>>2]|0,c[k>>2]|0);i=k}if(a[f+33>>0]|0){c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];c[t+8>>2]=c[v+8>>2];c[t+12>>2]=c[v+12>>2];c[t+16>>2]=c[v+16>>2];c[t+20>>2]=c[v+20>>2];c[t+24>>2]=c[v+24>>2];c[t+28>>2]=c[v+28>>2];sF(e,f,t)}}if(s|0)tF(e,w);if((x?c[e+152>>2]&4|0:0)?(c[t>>2]=c[v>>2],c[t+4>>2]=c[v+4>>2],c[t+8>>2]=c[v+8>>2],c[t+12>>2]=c[v+12>>2],c[t+16>>2]=c[v+16>>2],c[t+20>>2]=c[v+20>>2],c[t+24>>2]=c[v+24>>2],c[t+28>>2]=c[v+28>>2],nF(e,g,f,t,w)|0):0)tF(e,w);if(c[u>>2]|0)uF(g,167296);l=y;return}function lF(a){a=a|0;var b=0;b=c[a+16>>2]|0;c[b+208>>2]=0;c[b+228>>2]=0;c[b+244>>2]=0;c[b+212>>2]=0;Rt(a);return}function mF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0;i=a+16|0;f=c[i>>2]|0;if(f|0){if(!(c[b>>2]|0)){f=0;g=d}else{c[d>>2]=f;f=c[b>>2]|0;g=i}c[g>>2]=f}f=c[a+20>>2]|0;if(f|0){g=b+4|0;if(!(c[g>>2]|0)){f=0;g=d}else{c[d+4>>2]=f;f=c[g>>2]|0;g=i}c[g+4>>2]=f}e=+h[a+32>>3];if(e>=0.0){f=b+16|0;if(!(+h[f>>3]>=0.0))e=-1.0;else{h[d+16>>3]=e;e=+h[f>>3];d=i}h[d+16>>3]=e}return}function nF(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+224|0;n=u+8|0;k=u;t=u+40|0;j=u+184|0;i=u+56|0;m=c[d+16>>2]|0;o=m+208|0;c[h>>2]=c[o>>2];p=m+228|0;c[h+4>>2]=c[p>>2];q=m+244|0;c[h+8>>2]=c[q>>2];r=m+212|0;c[h+12>>2]=c[r>>2];s=m+260|0;a[h+16>>0]=(b[s>>1]<<15&65535)<<16>>16>>15;h=c[f+16>>2]|0;if((h|0)!=0?(a[h>>0]|0)!=0:0)i=0;else{bm(t,128,i);i=e+60|0;h=c[i>>2]|0;if(!h){h=CL(Tt(d,c[m+8>>2]|0,t)|0)|0;c[i>>2]=h;a[e+64>>0]=1}em(t,h)|0;i=c[42416]|0;c[42416]=i+1;c[k>>2]=i;lL(j,122183,k)|0;em(t,j)|0;i=t+4|0;h=c[i>>2]|0;if(h>>>0>=(c[t+8>>2]|0)>>>0){cm(t,1)|0;h=c[i>>2]|0}a[h>>0]=0;h=c[t>>2]|0;c[i>>2]=h;i=1}h=St(d,0,c[f>>2]|0,c[f+12>>2]|0,c[f+8>>2]|0,h,c[m+8>>2]|0)|0;if(i)fm(t);do if(h|0){if((c[o>>2]|0)==0?(b[s>>1]&1)==0:0)break;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];c[n+16>>2]=c[g+16>>2];c[n+20>>2]=c[g+20>>2];c[n+24>>2]=c[g+24>>2];c[n+28>>2]=c[g+28>>2];_t(d,n);rD(d,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)}while(0);l=u;return h|0}function oF(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0;j=l;l=l+16|0;i=j;if(!((sv(b,f,i)|0)<<24>>24)){yD(a,b);b=1}else{yD(a,c[f>>2]|0);b=c[f+4>>2]|0;h=+g[i>>2];if(!b)zD(a,122106,d,h);else zD(a,b,d,h);b=e>>>1&1|2}wD(a,122171);l=j;return b|0}function pF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0.0,j=0.0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];e=a+32|0;b=b+16|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];if((d|0)>1){j=+(d|0)*.5;i=+h[a>>3]+j;h[a>>3]=i;d=a+8|0;g=+h[d>>3]+j;h[d>>3]=g;f=+h[e>>3]-j;h[e>>3]=f;e=a+40|0;j=+h[e>>3]-j;h[e>>3]=j}else{f=+h[e>>3];g=+h[a+8>>3];i=+h[a>>3];j=+h[a+40>>3]}h[a+16>>3]=f;h[a+24>>3]=g;h[a+48>>3]=i;h[a+56>>3]=j;return a|0}function qF(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+176|0;r=v+96|0;s=v+136|0;t=v+64|0;p=v;q=v+128|0;u=f+48|0;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];c[t+12>>2]=c[u+12>>2];c[t+16>>2]=c[u+16>>2];c[t+20>>2]=c[u+20>>2];c[t+24>>2]=c[u+24>>2];c[t+28>>2]=c[u+28>>2];j=+h[g>>3];k=+h[g+8>>3];if(!(c[f>>2]|0))u=(c[f+8>>2]|0)!=0;else u=1;h[t>>3]=+h[t>>3]+j;o=t+16|0;h[o>>3]=+h[o>>3]+j;o=t+8|0;h[o>>3]=+h[o>>3]+k;o=t+24|0;h[o>>3]=+h[o>>3]+k;if(u?(c[e+152>>2]&4|0)==0:0){c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];c[r+16>>2]=c[t+16>>2];c[r+20>>2]=c[t+20>>2];c[r+24>>2]=c[t+24>>2];c[r+28>>2]=c[t+28>>2];o=nF(e,g,f,r,s)|0}else o=0;n=f+42|0;i=b[n>>1]|0;a:do if(!(i&32)){m=c[f+20>>2]|0;if(m|0){i=oF(e,m,c[f+28>>2]|0,i&65535,q)|0;if(!(b[n>>1]&4)){c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];c[r+16>>2]=c[t+16>>2];c[r+20>>2]=c[t+20>>2];c[r+24>>2]=c[t+24>>2];c[r+28>>2]=c[t+28>>2];DD(e,r,i)}else{n=d[f+33>>0]|0;c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];c[r+16>>2]=c[t+16>>2];c[r+20>>2]=c[t+20>>2];c[r+24>>2]=c[t+24>>2];c[r+28>>2]=c[t+28>>2];ty(e,pF(p,r,n)|0,4,4,i)}XI(c[q>>2]|0)}if(a[f+33>>0]|0){c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];c[r+16>>2]=c[t+16>>2];c[r+20>>2]=c[t+20>>2];c[r+24>>2]=c[t+24>>2];c[r+28>>2]=c[t+28>>2];sF(e,f,r)}i=f+88|0;switch(a[f+92>>0]|0){case 1:{kF(e,c[i>>2]|0,g);break a}case 3:{wF(e,c[i>>2]|0,g);break a}default:{jF(e,c[i>>2]|0,g);break a}}}while(0);if(o|0)tF(e,s);if((u?c[e+152>>2]&4|0:0)?(c[r>>2]=c[t>>2],c[r+4>>2]=c[t+4>>2],c[r+8>>2]=c[t+8>>2],c[r+12>>2]=c[t+12>>2],c[r+16>>2]=c[t+16>>2],c[r+20>>2]=c[t+20>>2],c[r+24>>2]=c[t+24>>2],c[r+28>>2]=c[t+28>>2],nF(e,g,f,r,s)|0):0)tF(e,s);l=v;return}function rF(f,g,i,j,k){f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0.0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0;A=l;l=l+32|0;y=A+16|0;z=A;r=+h[i>>3];x=+h[i+8>>3];q=(j|0)==0?122106:j;yD(f,q);wD(f,q);t=+h[g+48>>3];o=+h[g+56>>3];u=+h[g+64>>3];p=+h[g+72>>3];s=t+r;r=u+r;x=o+x;q=g+100|0;i=a[q>>0]|0;if((i&1)!=0?(n=c[g+96>>2]|0,((e[g+80>>1]|0)+(e[g+84>>1]|0)|0)<(c[n+104>>2]|0)):0){i=b[g+86>>1]|0;do if(i<<16>>16)if(((e[g+82>>1]|0)+(i&65535)|0)==(c[n+100>>2]|0)){B=a[n+32>>0]|0;C=(B<<24>>24)/2|0;j=(C<<24>>24)+(d[n+33>>0]|0)|0;i=j;j=j&255;m=x-+(C<<24>>24);n=B;break}else{n=a[n+32>>0]|0;i=0;j=((n<<24>>24)/2|0)<<24>>24;m=x;break}else{C=a[n+32>>0]|0;j=((C<<24>>24)/2|0)<<24>>24;i=j+(d[n+33>>0]|0)|0;m=x;n=C}while(0);h[z+8>>3]=m-+(j|0);h[z>>3]=r+ +(((n<<24>>24)/2|0)<<24>>24);c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];vF(f,y,0.0,p-o+ +(i&255|0)+ +(n<<24>>24));i=a[q>>0]|0}if(i&2?(v=b[g+86>>1]|0,w=c[g+96>>2]|0,((e[g+82>>1]|0)+(v&65535)|0)<(c[w+100>>2]|0)):0){i=b[g+84>>1]|0;do if(!(i<<16>>16)){i=a[w+32>>0]|0;C=(i<<24>>24)/2|0;n=(C<<24>>24)+(d[w+33>>0]|0)|0;j=n&255;n=n&255;m=+(C<<24>>24);h[z>>3]=s-m-+(n|0);if((c[w+104>>2]|0)==(e[g+80>>1]|0)){j=n<<1&255;break}if((k|0)!=0?(b[k+86>>1]|0)!=v<<16>>16:0)j=~~(+(j&255)-u+ +h[w+64>>3]-m)&255}else{if(((e[g+80>>1]|0)+(i&65535)|0)==(c[w+104>>2]|0)){i=a[w+32>>0]|0;C=(i<<24>>24)/2|0;j=(C&255)+(d[w+33>>0]|0)&255;h[z>>3]=s-+(C<<24>>24);break}i=a[w+32>>0]|0;m=+(((i<<24>>24)/2|0)<<24>>24);h[z>>3]=s-m;if((k|0)!=0?(b[k+86>>1]|0)!=v<<16>>16:0)j=~~(+h[w+64>>3]-u-m)&255;else j=0}while(0);h[z+8>>3]=x-+(((i<<24>>24)/2|0)<<24>>24);c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];vF(f,y,u-t+ +(j&255)+ +(i<<24>>24),0.0)}l=A;return}function sF(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0;p=l;l=l+160|0;o=p+112|0;n=p;j=p+144|0;m=c[f+24>>2]|0;wD(e,(m|0)==0?122106:m);m=f+42|0;i=b[m>>1]|0;if(!(i&384))AD(e,c[(c[e>>2]|0)+336>>2]|0);else{c[j+4>>2]=0;c[j>>2]=0;i=i&65535;if(!(i&256)){if(i&128|0){i=122112;k=4}}else{i=122119;k=4}if((k|0)==4)c[j>>2]=i;AD(e,j)}k=f+33|0;JD(e,+(d[k>>0]|0));a:do if(!(b[m>>1]&4)){i=b[f+36>>1]&15360;if(!(i<<16>>16)){i=a[k>>0]|0;if((i&255)>1){q=+(i&255)*.5;h[g>>3]=+h[g>>3]+q;n=g+8|0;h[n>>3]=+h[n>>3]+q;n=g+16|0;h[n>>3]=+h[n>>3]-q;n=g+24|0;h[n>>3]=+h[n>>3]-q};c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[o+16>>2]=c[g+16>>2];c[o+20>>2]=c[g+20>>2];c[o+24>>2]=c[g+24>>2];c[o+28>>2]=c[g+28>>2];DD(e,o,0);break}j=n+16|0;m=d[k>>0]|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[o+16>>2]=c[g+16>>2];c[o+20>>2]=c[g+20>>2];c[o+24>>2]=c[g+24>>2];c[o+28>>2]=c[g+28>>2];pF(j,o,m)|0;do switch(((i&65535)+-1024|0)>>>10&4194303|0){case 7:{FD(e,j,2);break a}case 3:{FD(e,n+32|0,2);break a}case 1:{FD(e,n+48|0,2);break a}case 0:{g=n+64|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];FD(e,n,2);break a}case 11:{FD(e,j,3);break a}case 5:{FD(e,n+32|0,3);break a}case 2:{g=n+80|0;c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];FD(e,n+48|0,3);break a}case 8:{g=n+64|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];FD(e,n,3);break a}case 13:{FD(e,j,4);break a}case 6:{g=n+80|0;c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];FD(e,n+32|0,4);break a}case 10:{g=n+80|0;c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];g=n+96|0;o=n+32|0;c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];FD(e,n+48|0,4);break a}case 12:{g=n+64|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];FD(e,n,4);break a}case 9:{FD(e,j,2);FD(e,n+48|0,2);break a}case 4:{g=n+64|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];FD(e,n,2);FD(e,n+32|0,2);break a}default:break a}while(0)}else{m=d[k>>0]|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[o+16>>2]=c[g+16>>2];c[o+20>>2]=c[g+20>>2];c[o+24>>2]=c[g+24>>2];c[o+28>>2]=c[g+28>>2];ty(e,pF(n,o,m)|0,4,4,0)}while(0);l=p;return}function tF(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;h=c[d+16>>2]|0;f=h+208|0;if((c[f>>2]|0)==0?(b[h+260>>1]&1)==0:0)d=0;else{sD(d);d=c[f>>2]|0}if((d|0)!=(c[e>>2]|0)){XI(d);c[f>>2]=c[e>>2]}d=h+228|0;f=c[d>>2]|0;g=e+4|0;if((f|0)!=(c[g>>2]|0)){XI(f);c[d>>2]=c[g>>2]}d=h+244|0;f=c[d>>2]|0;g=e+8|0;if((f|0)!=(c[g>>2]|0)){XI(f);c[d>>2]=c[g>>2]}d=h+212|0;f=c[d>>2]|0;g=e+12|0;if((f|0)!=(c[g>>2]|0)){XI(f);c[d>>2]=c[g>>2]}h=h+260|0;b[h>>1]=b[h>>1]&-2|a[e+16>>0]&1;return}function uF(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=c[b>>2]|0;if(e|0)c[a+16>>2]=e;e=c[b+4>>2]|0;if(e|0)c[a+20>>2]=e;d=+h[b+16>>3];if(d>=0.0)h[a+32>>3]=d;return}function vF(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,g=0,i=0;f=l;l=l+64|0;g=f+32|0;i=f;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];h[i+16>>3]=+h[b>>3]+d;h[i+24>>3]=+h[b+8>>3]+e;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[g+28>>2]=c[i+28>>2];DD(a,g,1);l=f;return}function wF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0.0,k=0.0,m=0.0,n=0.0;i=l;l=l+64|0;g=i;k=+h[e>>3];n=k+ +h[d>>3];m=+h[e+8>>3];j=m+ +h[d+8>>3];k=k+ +h[d+16>>3];m=m+ +h[d+24>>3];h[g>>3]=k;h[g+8>>3]=m;h[g+32>>3]=n;h[g+40>>3]=j;h[g+16>>3]=n;h[g+24>>3]=m;h[g+48>>3]=k;h[g+56>>3]=j;f=c[d+36>>2]|0;if(!f)f=c[e+56>>2]|0;e=c[d+32>>2]|0;if(!e)ma(122126,122134,623,122146);if(!(a[e>>0]|0))ma(122160,122134,624,122146);else{HD(b,e,g,4,1,f);l=i;return}}function xF(d,e,f,g,i,j,k,m){d=d|0;e=e|0;f=f|0;g=g|0;i=+i;j=j|0;k=k|0;m=m|0;var n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0;R=l;l=l+128|0;K=R+104|0;O=R+48|0;P=R+16|0;L=R;J=L;c[J>>2]=0;c[J+4>>2]=0;M=+h[g>>3];N=M-i;I=M+i;J=L+8|0;h[J>>3]=(+h[k+24>>3]-+h[k+8>>3])*.5+ +h[g+8>>3];tD(d,1);D=P+16|0;E=P+4|0;F=P+24|0;G=O+4|0;H=O+16|0;s=(m|0)==0;t=O+24|0;u=O+8|0;v=O+32|0;w=O+40|0;x=O+48|0;y=j+16|0;z=j+4|0;A=P+8|0;q=0;while(1){if((q|0)>=(e|0))break;switch(a[f+(q*24|0)+6>>0]|0){case 108:{i=N;break}case 114:{i=I-+h[f+(q*24|0)+8>>3];break}default:i=M-+h[f+(q*24|0)+8>>3]*.5}h[g>>3]=i;B=f+(q*24|0)+16|0;h[J>>3]=+h[J>>3]-+h[B>>3];C=f+(q*24|0)+4|0;p=c[f+(q*24|0)>>2]|0;r=0;while(1){if((r|0)>=(b[C>>1]|0))break;o=p+4|0;m=c[o>>2]|0;if(m){h[D>>3]=+h[(+h[m+16>>3]>0.0?m:j)+16>>3];c[P>>2]=c[((c[m>>2]|0)==0?j:m)>>2];k=c[((c[m+4>>2]|0)==0?j:m)+4>>2]|0;c[E>>2]=k;m=c[m+24>>2]&127;if(!m)Q=12;else m=c[F>>2]&-128|m}else{h[D>>3]=+h[y>>3];c[P>>2]=c[j>>2];k=c[z>>2]|0;c[E>>2]=k;Q=12}if((Q|0)==12){Q=0;m=c[F>>2]&-128}c[F>>2]=m;wD(d,k);c[O>>2]=c[p>>2];c[G>>2]=P;h[H>>3]=+h[p+16>>3];if(s)n=1.0;else n=+h[p+24>>3];h[t>>3]=n;c[A>>2]=c[(c[o>>2]|0)+8>>2];c[u>>2]=c[p+8>>2];o=p+32|0;h[v>>3]=+h[o>>3];h[w>>3]=+h[B>>3];a[x>>0]=108;h[L>>3]=i;c[K>>2]=c[L>>2];c[K+4>>2]=c[L+4>>2];c[K+8>>2]=c[L+8>>2];c[K+12>>2]=c[L+12>>2];vD(d,K,O);n=+h[o>>3]+i;h[g>>3]=n;p=p+56|0;r=r+1|0;i=n}q=q+1|0}uD(d);l=R;return}function yF(a){a=a|0;XI(c[a>>2]|0);XI(c[a+4>>2]|0);XI(c[a+8>>2]|0);XI(c[a+16>>2]|0);XI(c[a+12>>2]|0);XI(c[a+20>>2]|0);XI(c[a+24>>2]|0);return}function zF(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(a|0){j=a+4|0;e=0;g=c[a>>2]|0;while(1){if((e|0)>=(b[j>>1]|0))break;k=g+4|0;d=0;f=c[g>>2]|0;while(1){if((d|0)>=(b[k>>1]|0))break;XI(c[f>>2]|0);h=c[f+8>>2]|0;if(h|0?(i=c[f+12>>2]|0,i|0):0)gb[i&127](h);d=d+1|0;f=f+56|0}e=e+1|0;g=g+24|0}d=c[a>>2]|0;if(d|0)XI(d);XI(a)}return}function AF(a){a=a|0;XI(c[a+32>>2]|0);XI(a);return}function BF(b,d){b=b|0;d=d|0;switch(a[b+4>>0]|0){case 1:{CF(c[b>>2]|0);break}case 3:{AF(c[b>>2]|0);break}default:zF(c[b>>2]|0)}if(d|0)XI(b);return}function CF(a){a=a|0;var b=0,d=0,e=0;e=a+84|0;if((c[a+100>>2]|0)==-1)Jl(c[e>>2]|0)|0;else{b=c[e>>2]|0;XI(c[a+92>>2]|0);XI(c[a+96>>2]|0);while(1){d=c[b>>2]|0;if(!d)break;DF(d);b=b+4|0}XI(c[e>>2]|0)}yF(a);XI(a);return}function DF(a){a=a|0;BF(a+88|0,0);yF(a);XI(a);return}function EF(b,e,f){b=b|0;e=e|0;f=f|0;var g=0;b=c[(c[(c[b+16>>2]|0)+104>>2]|0)+72>>2]|0;if((a[b+4>>0]|0)!=2?(g=FF(c[b>>2]|0,e)|0,(g|0)!=0):0){c[f>>2]=d[g+35>>0];b=g+48|0}else b=0;return b|0}function FF(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;if(!((d|0)!=0?(eK(d,b)|0)==0:0))e=3;a:do if((e|0)==3){d=c[a+84>>2]|0;while(1){a=c[d>>2]|0;if(!a){a=0;break a}a=GF(a,b)|0;if(!a)d=d+4|0;else break}}while(0);return a|0}function GF(b,d){b=b|0;d=d|0;var e=0;e=c[b+4>>2]|0;if(!((e|0)!=0?(eK(e,d)|0)==0:0))if((a[b+92>>0]|0)==1)b=FF(c[b+88>>2]|0,d)|0;else b=0;return b|0}function HF(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function IF(d){d=d|0;var f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=d+92|0;c[p>>2]=qw((c[d+100>>2]<<2)+4|0)|0;n=qw((c[d+104>>2]<<2)+4|0)|0;c[d+96>>2]=n;o=d+32|0;m=c[d+84>>2]|0;while(1){l=c[m>>2]|0;if(!l)break;d=b[l+82>>1]|0;f=+h[l+72>>3];if(d<<16>>16==1)i=~~f;else{i=~~((f-+(O((a[o>>0]|0)+-1|0,(d&65535)+-1|0)|0))/+(d&65535));i=(i|0)>1?i:1}j=b[l+80>>1]|0;f=+h[l+64>>3];if(j<<16>>16==1)k=~~f;else{k=~~((f-+(O((a[o>>0]|0)+-1|0,(j&65535)+-1|0)|0))/+(j&65535));k=(k|0)>1?k:1}q=e[l+86>>1]|0;g=(d&65535)+q|0;d=q;while(1){if((d|0)>=(g|0))break;q=(c[p>>2]|0)+(d<<2)|0;r=c[q>>2]|0;c[q>>2]=(r|0)>(i|0)?r:i;d=d+1|0}d=e[l+84>>1]|0;g=(j&65535)+d|0;while(1){if((d|0)>=(g|0))break;r=n+(d<<2)|0;q=c[r>>2]|0;c[r>>2]=(q|0)>(k|0)?q:k;d=d+1|0}m=m+4|0}return}function JF(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;if(a>>>0<21)a=c[54824+(a<<2)>>2]|0;else{c[b>>2]=a;lL(174077,122187,b)|0;a=174077}l=d;return a|0}function KF(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=a+104|0;l=a+100|0;j=d+16|0;f=0;g=0;while(1){if((f|0)>(c[k>>2]|0))break;i=mo(d,JF(f)|0,1)|0;Mo(i,122241,304,1)|0;m=i+16|0;c[(c[m>>2]|0)+176>>2]=0;o=qw((c[l>>2]<<2)+4|0)|0;n=c[m>>2]|0;c[n+172>>2]=o;c[n+184>>2]=0;n=qw((c[l>>2]<<2)+4|0)|0;c[(c[m>>2]|0)+180>>2]=n;if(!g)c[(c[j>>2]|0)+192>>2]=i;else c[(c[g+16>>2]|0)+164>>2]=i;f=f+1|0;g=i}j=b+16|0;f=0;g=0;while(1){if((f|0)>(c[l>>2]|0))break;i=mo(b,JF(f)|0,1)|0;Mo(i,122241,304,1)|0;o=i+16|0;c[(c[o>>2]|0)+176>>2]=0;m=qw((c[k>>2]<<2)+4|0)|0;n=c[o>>2]|0;c[n+172>>2]=m;c[n+184>>2]=0;n=qw((c[k>>2]<<2)+4|0)|0;c[(c[o>>2]|0)+180>>2]=n;if(!g)c[(c[j>>2]|0)+192>>2]=i;else c[(c[g+16>>2]|0)+164>>2]=i;f=f+1|0;g=i}f=c[a+84>>2]|0;while(1){g=c[f>>2]|0;if(!g)break;o=g+84|0;n=mo(d,JF(e[o>>1]|0)|0,0)|0;o=mo(d,JF((e[g+80>>1]|0)+(e[o>>1]|0)|0)|0,0)|0;LF(d,n,o,~~+h[g+64>>3]);o=g+86|0;n=mo(b,JF(e[o>>1]|0)|0,0)|0;o=mo(b,JF((e[g+82>>1]|0)+(e[o>>1]|0)|0)|0,0)|0;LF(b,n,o,~~+h[g+72>>3]);f=f+4|0}MF(d);MF(b);return}function LF(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0;h=$m(a,d,f,0,0)|0;if(!h){i=$m(a,d,f,0,1)|0;Mo(i,122254,176,1)|0;b[(c[i+16>>2]|0)+170>>1]=g;d=d+16|0;a=c[d>>2]|0;h=c[a+180>>2]|0;if(!h)a=rw((c[a+184>>2]<<2)+8|0)|0;else a=tw(h,(c[a+184>>2]<<2)+8|0)|0;g=c[d>>2]|0;c[g+180>>2]=a;g=g+184|0;h=c[g>>2]|0;c[g>>2]=h+1;c[a+(h<<2)>>2]=i;d=c[d>>2]|0;c[(c[d+180>>2]|0)+(c[d+184>>2]<<2)>>2]=0;d=f+16|0;a=c[d>>2]|0;h=c[a+172>>2]|0;if(!h)a=rw((c[a+176>>2]<<2)+8|0)|0;else a=tw(h,(c[a+176>>2]<<2)+8|0)|0;g=c[d>>2]|0;c[g+172>>2]=a;g=g+176|0;f=c[g>>2]|0;c[g>>2]=f+1;c[a+(f<<2)>>2]=i;i=c[d>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0}else{i=(c[h+16>>2]|0)+170|0;f=e[i>>1]|0;b[i>>1]=(f|0)>(g|0)?f:g}return}function MF(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[(c[a+16>>2]|0)+192>>2]|0;while(1){f=d+16|0;h=c[(c[f>>2]|0)+164>>2]|0;if(!h)break;if($m(a,d,h,0,0)|0){d=h;continue}g=$m(a,d,h,0,1)|0;Mo(g,122254,176,1)|0;b[(c[g+16>>2]|0)+170>>1]=0;d=c[f>>2]|0;e=c[d+180>>2]|0;if(!e)d=rw((c[d+184>>2]<<2)+8|0)|0;else d=tw(e,(c[d+184>>2]<<2)+8|0)|0;i=c[f>>2]|0;c[i+180>>2]=d;i=i+184|0;e=c[i>>2]|0;c[i>>2]=e+1;c[d+(e<<2)>>2]=g;f=c[f>>2]|0;c[(c[f+180>>2]|0)+(c[f+184>>2]<<2)>>2]=0;f=h+16|0;d=c[f>>2]|0;e=c[d+172>>2]|0;if(!e)d=rw((c[d+176>>2]<<2)+8|0)|0;else d=tw(e,(c[d+176>>2]<<2)+8|0)|0;e=c[f>>2]|0;c[e+172>>2]=d;e=e+176|0;i=c[e>>2]|0;c[e>>2]=i+1;c[d+(i<<2)>>2]=g;d=c[f>>2]|0;c[(c[d+172>>2]|0)+(c[d+176>>2]<<2)>>2]=0;d=h}return}function NF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=a+92|0;e=0;f=0;b=c[(c[(c[b+16>>2]|0)+192>>2]|0)+16>>2]|0;while(1){b=c[b+164>>2]|0;if(!b)break;b=c[b+16>>2]|0;h=b+232|0;c[(c[g>>2]|0)+(f<<2)>>2]=(c[h>>2]|0)-e;e=c[h>>2]|0;f=f+1|0}a=a+96|0;e=0;f=0;b=c[(c[(c[d+16>>2]|0)+192>>2]|0)+16>>2]|0;while(1){b=c[b+164>>2]|0;if(!b)break;b=c[b+16>>2]|0;h=b+232|0;c[(c[a>>2]|0)+(f<<2)>>2]=(c[h>>2]|0)-e;e=c[h>>2]|0;f=f+1|0}return}function OF(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h+4|0;d=h;c[d>>2]=c[4411];e=c[b+100>>2]|0;if((e|0)!=1?(f=b+104|0,(c[f>>2]|0)!=1):0){c[b+92>>2]=qw((e<<2)+4|0)|0;c[b+96>>2]=qw((c[f>>2]<<2)+4|0)|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;a[g+2>>0]=a[d+2>>0]|0;a[g+3>>0]=a[d+3>>0]|0;f=fn(122267,g,0)|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;a[g+2>>0]=a[d+2>>0]|0;a[g+3>>0]=a[d+3>>0]|0;g=fn(122272,g,0)|0;Mo(f,122277,280,1)|0;Mo(g,122277,280,1)|0;KF(b,f,g);bx(f,2,2147483647)|0;bx(g,2,2147483647)|0;NF(b,f,g);PF(f,g)}else IF(b);l=h;return}function PF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=(c[b+16>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;f=d+16|0;d=c[f>>2]|0;e=c[d+172>>2]|0;if(e){XI(e);d=c[f>>2]|0}e=c[d+180>>2]|0;if(e){XI(e);d=c[f>>2]|0}d=d+164|0}kn(a)|0;kn(b)|0;return}function QF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=l;l=l+272|0;n=p+104|0;o=p+136|0;j=p+72|0;k=p;g=p+144|0;c[k+48>>2]=b;switch(Bo(b)|0){case 0:{e=c[b+60>>2]|0;break}case 1:{e=qo(b)|0;break}case 2:{e=qo(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;break}default:{}}i=k+52|0;c[i>>2]=e;m=c[e+60>>2]|0;h[k+32>>3]=+h[d+16>>3];c[k+16>>2]=c[d+4>>2];c[k+20>>2]=c[d+8>>2];c[k+40>>2]=0;f=_H(c[d>>2]|0,o,k)|0;if(!f){bm(n,128,g);a[d+82>>0]=0;e=CL(RF(b,n)|0)|0;c[d>>2]=e;if((c[d+12>>2]|0)==1)e=tB(e)|0;else e=qB(e,c[i>>2]|0)|0;XI(c[d>>2]|0);c[d>>2]=e;ew(c[(c[m+16>>2]|0)+144>>2]|0,d);fm(n);e=c[o>>2]|0}else{e=f+4|0;if((a[e>>0]|0)==1){if((c[(c[f>>2]|0)+24>>2]|0)==0?SF(b)|0:0){i=CL(SF(b)|0)|0;c[(c[f>>2]|0)+24>>2]=i}m=TF(m,c[f>>2]|0,0,k)|0;c[o>>2]=c[o>>2]|m;m=c[f>>2]|0;r=+h[m+64>>3]*.5;q=+h[m+72>>3]*.5;UF(j,-r,-q,r,q);m=c[f>>2]|0;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];c[n+16>>2]=c[j+16>>2];c[n+20>>2]=c[j+20>>2];c[n+24>>2]=c[j+24>>2];c[n+28>>2]=c[j+28>>2];VF(m,n,15)}else{WF(c[(c[m+16>>2]|0)+144>>2]|0,c[f>>2]|0,k);n=c[f>>2]|0;q=+h[n+24>>3]*.5;r=+h[n+32>>3]*.5;UF(j,-q,-r,q,r);n=(c[f>>2]|0)+8|0;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];c[n+16>>2]=c[j+16>>2];c[n+20>>2]=c[j+20>>2];c[n+24>>2]=c[j+24>>2];c[n+28>>2]=c[j+28>>2]}h[d+24>>3]=+h[j+16>>3]-+h[j>>3];h[d+32>>3]=+h[j+24>>3]-+h[j+8>>3];c[d+72>>2]=f;if((a[e>>0]|0)==1){XI(c[d>>2]|0);c[d>>2]=CL(122290)|0}e=c[o>>2]|0}l=p;return e|0}function RF(b,d){b=b|0;d=d|0;var e=0;a:do switch(Bo(b)|0){case 0:{em(d,Cn(b)|0)|0;break}case 1:{em(d,Cn(b)|0)|0;break}case 2:{em(d,Cn(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)|0;e=b+-48|0;em(d,Cn(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)|0)|0;if(!(pn(qo(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)|0)|0)){em(d,122549)|0;break a}else{em(d,122546)|0;break a}}default:{}}while(0);e=d+4|0;b=c[e>>2]|0;if(b>>>0>=(c[d+8>>2]|0)>>>0){cm(d,1)|0;b=c[e>>2]|0}a[b>>0]=0;d=c[d>>2]|0;c[e>>2]=d;return d|0}function SF(b){b=b|0;var c=0,d=0;c=Hm(b,122531)|0;if(!((c|0)!=0?(a[c>>0]|0)!=0:0))d=3;do if((d|0)==3){c=Hm(b,122540)|0;if(c|0?a[c>>0]|0:0)break;c=0}while(0);return c|0}function TF(f,g,i,j){f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+16|0;u=w+8|0;t=w;v=g+108|0;k=c[v>>2]|0;if(k|0)mF(j,k,167328);c[g+80>>2]=i;k=_F(f,g,j)|0;r=g+36|0;f=b[r>>1]|0;if(!(f&128))a[g+32>>0]=2;i=g+33|0;if(!(f&32))a[i>>0]=1;OF(g);n=c[g+104>>2]|0;p=a[g+32>>0]|0;f=O(n+1|0,p)|0;o=d[i>>0]<<1;q=c[g+100>>2]|0;p=O(q+1|0,p)|0;m=g+96|0;f=o+f|0;i=0;while(1){if((i|0)>=(n|0))break;f=(c[(c[m>>2]|0)+(i<<2)>>2]|0)+f|0;i=i+1|0}n=g+92|0;i=p+o|0;m=0;while(1){if((m|0)>=(q|0))break;i=(c[(c[n>>2]|0)+(m<<2)>>2]|0)+i|0;m=m+1|0}n=g+38|0;do if(b[r>>1]&1){r=b[n>>1]|0;m=r&65535;if(r<<16>>16?(s=b[g+40>>1]|0,s<<16>>16):0){if(!((f|0)>(m|0)|(i|0)>(s&65535|0))){i=0;f=0;break}Zl(0,122331,t)|0;k=1;i=0;f=0;break}Zl(0,122365,u)|0;k=1}while(0);u=e[n>>1]|0;h[g+64>>3]=+(((f|0)>(u|0)?f:u)|0);u=e[g+40>>1]|0;h[g+72>>3]=+(((i|0)>(u|0)?i:u)|0);if(c[v>>2]|0)uF(j,167328);l=w;return k|0}function UF(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;h[a>>3]=b;h[a+8>>3]=c;h[a+16>>3]=d;h[a+24>>3]=e;return}function VF(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0;I=l;l=l+64|0;G=I+32|0;H=I;E=c[e+84>>2]|0;k=c[e+80>>2]|0;if((k|0?(i=c[k+24>>2]|0,i|0):0)?(j=e+24|0,(c[j>>2]|0)==0):0)c[j>>2]=CL(i)|0;F=e+48|0;i=f+16|0;n=+h[i>>3];m=+h[f>>3];k=~~(n-m-+(~~+h[e+64>>3]|0));if((k|0)<=-1)ma(122298,122134,1761,122308);o=f+24|0;y=+h[o>>3];p=f+8|0;q=+h[p>>3];r=+(~~+h[e+72>>3]|0);s=~~(y-q-r);if((s|0)<=-1)ma(122321,122134,1764,122308);t=b[e+36>>1]|0;j=t&65535;a:do if(j&1){b:do if((k|0)>0)switch(j&6){case 4:{h[i>>3]=m+r;break b}case 2:{J=+(k|0);h[i>>3]=n+J;m=m+J;h[f>>3]=m;break b}default:{J=+(k>>>1|0);m=m+J;h[f>>3]=m;h[i>>3]=n-J;break b}}while(0);if((s|0)>0)switch(t&24){case 16:{y=q+r;h[o>>3]=y;s=0;i=0;break a}case 8:{J=+(s|0);y=y+J;h[o>>3]=y;h[p>>3]=q+J;s=0;i=0;break a}default:{J=+(s>>>1|0);h[p>>3]=q+J;y=y-J;h[o>>3]=y;s=0;i=0;break a}}else{s=0;i=0}}else i=k;while(0);n=+(d[e+33>>0]|0);C=e+32|0;u=a[C>>0]|0;q=+(u<<24>>24);D=e+104|0;k=c[D>>2]|0;t=(i|0)/(k|0)|0;o=i-(O(t,k)|0)|0;o=~~(((o|0)>-1?.5:-.5)+ +(o|0));B=e+96|0;p=u<<24>>24;i=~~(m+n+q);j=0;while(1){if((j|0)>(k|0))break;A=(c[B>>2]|0)+(j<<2)|0;k=c[A>>2]|0;c[A>>2]=i;i=i+t+((j|0)<(o|0)&1)+k+p|0;j=j+1|0;k=c[D>>2]|0}A=e+100|0;k=c[A>>2]|0;t=(s|0)/(k|0)|0;p=s-(O(t,k)|0)|0;p=~~(((p|0)>-1?.5:-.5)+ +(p|0));z=e+92|0;o=u<<24>>24;i=~~(y-n-q);j=0;while(1){if((j|0)>(k|0))break;x=(c[z>>2]|0)+(j<<2)|0;k=c[x>>2]|0;c[x>>2]=i;i=i-t+(((j|0)<(p|0))<<31>>31)-k-o|0;j=j+1|0;k=c[A>>2]|0}u=(g|0)==0;v=H+16|0;w=H+24|0;x=H+8|0;i=E;while(1){o=c[i>>2]|0;if(!o)break;k=b[o+84>>1]|0;if(u){j=0;p=b[o+80>>1]|0;s=b[o+86>>1]|0;t=b[o+82>>1]|0}else{j=k<<16>>16==0?8:0;s=b[o+86>>1]|0;j=s<<16>>16==0?j|4:j;p=b[o+80>>1]|0;t=b[o+82>>1]|0;j=(((p&65535)+(k&65535)|0)==(c[D>>2]|0)?j|2:j)|((t&65535)+(s&65535)|0)==(c[A>>2]|0)}K=c[B>>2]|0;k=k&65535;h[H>>3]=+(c[K+(k<<2)>>2]|0);E=a[C>>0]|0;h[v>>3]=+((c[K+((p&65535)+k<<2)>>2]|0)-E|0);p=c[z>>2]|0;h[w>>3]=+(c[p+((s&65535)<<2)>>2]|0);h[x>>3]=+((c[p+((t&65535)+(s&65535)<<2)>>2]|0)+E|0);c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];c[G+8>>2]=c[H+8>>2];c[G+12>>2]=c[H+12>>2];c[G+16>>2]=c[H+16>>2];c[G+20>>2]=c[H+20>>2];c[G+24>>2]=c[H+24>>2];c[G+28>>2]=c[H+28>>2];XF(o,G,j&g);i=i+4|0}a[e+35>>0]=g;c[F>>2]=c[f>>2];c[F+4>>2]=c[f+4>>2];c[F+8>>2]=c[f+8>>2];c[F+12>>2]=c[f+12>>2];c[F+16>>2]=c[f+16>>2];c[F+20>>2]=c[f+20>>2];c[F+24>>2]=c[f+24>>2];c[F+28>>2]=c[f+28>>2];l=I;return}function WF(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0.0;O=l;l=l+112|0;H=O+48|0;I=O+16|0;J=O;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[I+16>>2]=0;c[I+20>>2]=0;c[I+24>>2]=0;c[I+28>>2]=0;K=e+4|0;L=f+16|0;M=f+32|0;N=I+16|0;r=b[K>>1]|0;n=r<<16>>16;g=0;j=-1.0;m=0;while(1){if((m|0)>=(n|0)){g=1;break}i=c[e>>2]|0;if((b[i+(m*24|0)+4>>1]|0)>1){g=0;break}i=c[(c[i+(m*24|0)>>2]|0)+4>>2]|0;if(!i){k=+h[M>>3];h[N>>3]=k;i=L}else{if(c[i+24>>2]&127|0){g=0;break}k=+h[(+h[i+16>>3]>0.0?i:L)+16>>3];h[N>>3]=k;i=(c[i>>2]|0)==0?L:i}i=c[i>>2]|0;c[I>>2]=i;if(!(j==-1.0)){if(k!=j){g=0;break}}else j=k;if(g){if(uJ(i,g)|0){g=0;break}}else g=i;m=m+1|0}a[e+6>>0]=g;E=f+48|0;F=f+20|0;G=I+4|0;w=f+40|0;x=I+24|0;y=d+144|0;z=H+4|0;v=J+8|0;A=H+16|0;B=H+24|0;C=H+8|0;D=H+12|0;f=(g|0)==0;j=0.0;s=0.0;t=0.0;u=0.0;n=0;g=r;while(1){if((n|0)>=(g<<16>>16|0))break;k=0.0;q=0.0;m=0;p=0.0;j=0.0;i=c[e>>2]|0;while(1){if((m|0)>=(b[i+(n*24|0)+4>>1]|0))break;c[H>>2]=lw(c[(c[i+(n*24|0)>>2]|0)+(m*56|0)>>2]|0,c[E>>2]|0)|0;i=(c[e>>2]|0)+(n*24|0)|0;g=c[(c[i>>2]|0)+(m*56|0)+4>>2]|0;if(!g){h[N>>3]=+h[M>>3];c[I>>2]=c[L>>2];c[G>>2]=c[F>>2];c[x>>2]=c[x>>2]&-128|c[w>>2]&127}else{g=c[g+24>>2]&127;if(!g)g=c[w>>2]&127;c[x>>2]=c[x>>2]&-128|g;r=c[(c[i>>2]|0)+(m*56|0)+4>>2]|0;h[N>>3]=+h[(+h[r+16>>3]>0.0?r:L)+16>>3];c[I>>2]=c[((c[r>>2]|0)==0?L:r)>>2];c[G>>2]=c[((c[r+4>>2]|0)==0?L:r)+4>>2]}i=c[y>>2]|0;c[z>>2]=bb[c[i>>2]&31](i,I,1)|0;kA(J,d,H);Q=+h[J>>3];o=+h[v>>3];XI(c[(c[(c[e>>2]|0)+(n*24|0)>>2]|0)+(m*56|0)>>2]|0);i=c[e>>2]|0;r=c[i+(n*24|0)>>2]|0;c[r+(m*56|0)>>2]=c[H>>2];h[r+(m*56|0)+32>>3]=Q;h[r+(m*56|0)+16>>3]=+h[A>>3];h[r+(m*56|0)+24>>3]=+h[B>>3];c[r+(m*56|0)+4>>2]=c[z>>2];c[r+(m*56|0)+8>>2]=c[C>>2];c[r+(m*56|0)+12>>2]=c[D>>2];P=+h[N>>3];R=+h[B>>3];k=R>k?R:k;q=Q+q;m=m+1|0;p=P>p?P:p;j=o>j?o:j}h[i+(n*24|0)+8>>3]=q;g=(n|0)==0;do if(f)if(g){o=p;k=p-k;g=i;break}else{o=p;k=t-u+p-k;g=i+(n*24|0)|0;break}else{o=j;k=g?p:j;g=i+(n*24|0)|0}while(0);h[g+16>>3]=k;s=q>s?q:s;t=o+t;u=+h[i+(n*24|0)+16>>3]+u;n=n+1|0;g=b[K>>1]|0}h[e+24>>3]=s;h[e+32>>3]=g<<16>>16==1?j:t;l=O;return}function XF(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;y=l;l=l+64|0;v=y+32|0;x=y;j=e+24|0;if((c[j>>2]|0)==0?(i=c[(c[e+96>>2]|0)+24>>2]|0,i|0):0)c[j>>2]=CL(i)|0;t=e+36|0;w=b[t>>1]|0;i=w&65535;a:do if(i&1){k=+h[e+64>>3];q=+h[e+72>>3];j=f+16|0;m=+h[j>>3];o=+h[f>>3];n=m-o-k;b:do if(n>0.0)switch(i&6){case 4:{m=o+k;h[j>>3]=m;k=o;break b}case 2:{m=n+m;h[j>>3]=m;k=o+n;h[f>>3]=k;break b}default:{p=n*.5;k=p+o;h[f>>3]=k;m=m-p;h[j>>3]=m;break b}}else k=o;while(0);i=f+24|0;p=+h[i>>3];j=f+8|0;n=+h[j>>3];o=p-n-q;if(o>0.0)switch(w&24){case 16:{o=n+q;h[i>>3]=o;break a}case 8:{q=o+p;h[i>>3]=q;n=n+o;h[j>>3]=n;o=q;break a}default:{o=o*.5;n=o+n;h[j>>3]=n;o=p-o;h[i>>3]=o;break a}}else o=p}else{k=+h[f>>3];n=+h[f+8>>3];m=+h[f+16>>3];o=+h[f+24>>3]}while(0);s=e+48|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];c[s+28>>2]=c[f+28>>2];a[e+35>>0]=g;A=+(d[e+33>>0]|0);z=+(d[e+34>>0]|0);p=k+A+z;h[x>>3]=p;q=n+A+z;s=x+8|0;h[s>>3]=q;n=m-A-z;f=x+16|0;h[f>>3]=n;o=o-A-z;r=x+24|0;h[r>>3]=o;j=e+88|0;switch(a[e+92>>0]|0){case 1:{w=c[j>>2]|0;c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];c[v+8>>2]=c[x+8>>2];c[v+12>>2]=c[x+12>>2];c[v+16>>2]=c[x+16>>2];c[v+20>>2]=c[x+20>>2];c[v+24>>2]=c[x+24>>2];c[v+28>>2]=c[x+28>>2];VF(w,v,g);break}case 3:{i=c[j>>2]|0;k=+h[i+24>>3];m=n-p-+h[i+16>>3];c:do if(m>0.0)switch(w&6){case 4:{h[f>>3]=n-m;break c}case 2:{h[x>>3]=m+p;break c}default:break c}while(0);k=o-q-k;d:do if(k>0.0)switch(w&24){case 16:{h[r>>3]=o-k;break d}case 8:{h[s>>3]=k+q;break d}default:break d}while(0);c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];c[v+8>>2]=c[x+8>>2];c[v+12>>2]=c[x+12>>2];c[v+16>>2]=c[x+16>>2];c[v+20>>2]=c[x+20>>2];c[v+24>>2]=c[x+24>>2];c[v+28>>2]=c[x+28>>2];YF(i,v);break}default:{i=c[j>>2]|0;k=+h[i+32>>3];m=n-p-+h[i+24>>3];e:do if(m>0.0?(u=w&6,u<<16>>16!=6):0)switch(u&7){case 4:{h[f>>3]=n-m;break e}case 2:{h[x>>3]=m+p;break e}default:{A=m*.5;h[x>>3]=A+p;h[f>>3]=n-A;break e}}while(0);k=o-q-k;f:do if(k>0.0)switch(w&24){case 16:{h[r>>3]=o-k;break f}case 8:{h[s>>3]=k+q;break f}default:{A=k*.5;h[s>>3]=A+q;h[r>>3]=o-A;break f}}while(0);w=i+8|0;c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];c[w+16>>2]=c[x+16>>2];c[w+20>>2]=c[x+20>>2];c[w+24>>2]=c[x+24>>2];c[w+28>>2]=c[x+28>>2];x=b[t>>1]&768;ZF(c[j>>2]|0,(x&1023)==512?108:(x&1023)==256?114:110)}}l=y;return}function YF(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];return}function ZF(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;g=b[d+4>>1]|0;f=0;while(1){if((f|0)>=(g|0))break;h=(c[d>>2]|0)+(f*24|0)+6|0;if(!(a[h>>0]|0))a[h>>0]=e;f=f+1|0}return}function _F(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;l=f+84|0;t=c[l>>2]|0;u=rx()|0;v=cG()|0;i=0;h=0;k=Nl(t)|0;while(1){if(!k)break;j=Nl(c[k+8>>2]|0)|0;while(1){if(!j)break;j=c[j>>2]|0;i=i+1|0}h=h+1|0;if(a[k+12>>0]|0)gG(v,h);k=c[k>>2]|0}h=qw((i<<2)+4|0)|0;c[l>>2]=h;i=0;j=0;k=0;q=0;r=Nl(t)|0;while(1){if(!r)break;s=q&65535;p=0;o=Nl(c[r+8>>2]|0)|0;while(1){if(!o)break;n=c[o+8>>2]|0;c[h>>2]=n;k=$F(d,n,f,g)|0|k;l=aG(u,q,p,n)|0;b[n+86>>1]=s;b[n+84>>1]=l;l=l+(e[n+80>>1]|0)|0;m=q+(e[n+82>>1]|0)|0;if(hG(v,m)|0){p=n+100|0;a[p>>0]=a[p>>0]|2}p=l;h=h+4|0;o=c[o>>2]|0;i=(l|0)>(i|0)?l:i;j=(m|0)>(j|0)?m:j}q=q+1|0;r=c[r>>2]|0}c[f+100>>2]=j;c[f+104>>2]=i;Jl(t)|0;Jl(v)|0;ux(u);return k|0}function $F(f,g,i,j){f=f|0;g=g|0;i=i|0;j=j|0;var k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=l;l=l+16|0;t=u+8|0;s=u;c[g+96>>2]=i;q=g+36|0;o=b[q>>1]|0;if(!(o&64)){if(!(b[i+36>>1]&64))n=2;else n=a[i+34>>0]|0;a[g+34>>0]=n}if(!(o&32)){n=a[i+88>>0]|0;if(n<<24>>24<=-1)if(!(b[i+36>>1]&32))n=1;else n=a[i+33>>0]|0;a[g+33>>0]=n}n=g+88|0;p=g+92|0;switch(a[p>>0]|0){case 1:{o=TF(f,c[n>>2]|0,g,j)|0;i=c[n>>2]|0;n=o;o=i+64|0;i=i+72|0;break}case 3:{o=bG(c[n>>2]|0,j)|0;i=c[n>>2]|0;n=o;o=i+16|0;i=i+24|0;break}default:{WF(c[(c[f+16>>2]|0)+144>>2]|0,c[n>>2]|0,j);i=c[n>>2]|0;n=0;o=i+24|0;i=i+32|0}}k=+((d[g+33>>0]|0)+(d[g+34>>0]|0)<<1|0);m=+h[o>>3]+k;k=+h[i>>3]+k;i=g+38|0;do if(b[q>>1]&1){o=b[i>>1]|0;if(o<<16>>16?(r=b[g+40>>1]|0,r<<16>>16):0){if(!(m>+(o&65535)|k>+(r&65535))){m=0.0;k=0.0;break}if((a[p>>0]|0)==3){m=0.0;k=0.0;break}Zl(0,122416,s)|0;n=1;m=0.0;k=0.0;break}Zl(0,122449,t)|0;n=1}while(0);v=+(e[i>>1]|0);h[g+64>>3]=m>v?m:v;m=+(e[g+40>>1]|0);h[g+72>>3]=k>m?k:m;l=u;return n|0}function aG(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0,j=0;j=d+80|0;i=(e[j>>1]|0)+-1|0;h=0;a:while(1){f=c;while(1){if(h)break a;g=i+f|0;while(1){if((g|0)<(f|0)){c=f;h=1;continue a}if(zx(a,g,b)|0)break;g=g+-1|0}f=g+1|0}}h=d+82|0;f=c;while(1){if((f|0)<(c+(e[j>>1]|0)|0))g=b;else break;while(1){if((g|0)>=((e[h>>1]|0)+b|0))break;xx(a,f,g);g=g+1|0}f=f+1|0}return c|0}function bG(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;j=m;i=m+8|0;d=d+52|0;g=b+32|0;Kr(i,c[d>>2]|0,c[g>>2]|0);k=c[i>>2]|0;i=c[i+4>>2]|0;if((i&k|0)==-1){c[j>>2]=c[g>>2];Zl(1,122499,j)|0;d=1;f=0.0;e=0.0}else{a[(c[(c[d>>2]|0)+16>>2]|0)+114>>0]=1;d=0;f=+(i|0);e=+(k|0)}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;h[b+16>>3]=e;h[b+24>>3]=f;l=m;return d|0}function cG(){return Pl(54908,c[4345]|0)|0}function dG(a,b,d){a=a|0;b=b|0;d=d|0;d=qw(12)|0;c[d>>2]=c[b>>2];return d|0}function eG(a,b,c){a=a|0;b=b|0;c=c|0;XI(b);return}function fG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b>>2]|0;e=c[d>>2]|0;return ((b|0)>(e|0)?1:((b|0)<(e|0))<<31>>31)|0}function gG(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;bb[c[a>>2]&31](a,e,1)|0;l=d;return}function hG(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=(bb[c[a>>2]&31](a,e,512)|0)!=0&1;l=d;return b|0}function iG(a){a=a|0;var b=0;if(!(c[42417]|0)){b=qw((a<<2)+4|0)|0;c[42417]=b;c[b>>2]=169672;c[42428]=a}c[42429]=0;return}function jG(){XI(c[42417]|0);c[42417]=0;c[42429]=0;return}function kG(){c[42429]=0;return}function lG(){var a=0,b=0,d=0;b=c[42429]|0;d=c[42417]|0;a=1;while(1){if((a|0)>(b|0)){a=5;break}if((c[(c[d+(a<<2)>>2]|0)+4>>2]|0)==(a|0))a=a+1|0;else{a=4;break}}if((a|0)==4)ma(123205,122552,59,122558);else if((a|0)==5)return}function mG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=c[42417]|0;g=c[f+(a<<2)>>2]|0;h=c[g>>2]|0;while(1){b=(a|0)/2|0;d=c[f+(b<<2)>>2]|0;e=f+(a<<2)|0;if((c[d>>2]|0)>=(h|0))break;c[e>>2]=d;c[d+4>>2]=a;a=b}c[e>>2]=g;c[g+4>>2]=a;return}function nG(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=c[42429]|0;if((b|0)==(c[42428]|0)){Zl(1,122566,d)|0;a=1}else{b=b+1|0;c[42429]=b;c[(c[42417]|0)+(b<<2)>>2]=a;mG(b);lG();a=0}l=d;return a|0}function oG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[42417]|0;f=c[e+(a<<2)>>2]|0;g=c[f>>2]|0;h=c[42429]|0;i=(h|0)/2|0;while(1){if((a|0)>(i|0))break;d=a<<1;b=c[e+(d<<2)>>2]|0;if((d|0)<(h|0)){l=d|1;j=c[e+(l<<2)>>2]|0;k=(c[b>>2]|0)<(c[j>>2]|0);d=k?l:d;b=k?j:b}if((g|0)>=(c[b>>2]|0))break;c[e+(a<<2)>>2]=b;c[b+4>>2]=a;a=d}c[e+(a<<2)>>2]=f;c[f+4>>2]=a;return}function pG(){var a=0,b=0,d=0,e=0;b=c[42429]|0;if(!b)a=0;else{e=c[42417]|0;d=e+4|0;a=c[d>>2]|0;c[d>>2]=c[e+(b<<2)>>2];b=b+-1|0;c[42429]=b;if(b|0)oG(1);lG()}return a|0}function qG(a,b){a=a|0;b=b|0;c[a>>2]=b;mG(c[a+4>>2]|0);lG();return}function rG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=b+16|0;j=c[m>>2]|0;j=(a[j+((c[e+12>>2]|0)*40|0)+36>>0]|0)!=(a[j+((c[e+16>>2]|0)*40|0)+36>>0]|0);k=~~((+h[d+64>>3]+-3.0-+h[d+48>>3])*.5);l=~~((+h[d+56>>3]+-3.0-+h[d+40>>3])*.5);g=(k|0)<(l|0)?k:l;n=d+4|0;f=0;while(1){b=c[n>>2]|0;if((f|0)>=(b|0)){g=f;break}i=c[d+8+(f<<2)>>2]|0;o=c[m>>2]|0;if((a[o+((c[i+12>>2]|0)*40|0)+36>>0]|0)==(a[o+((c[i+16>>2]|0)*40|0)+36>>0]|0)){g=f;break}sG(i,g);f=f+1|0}while(1){if((g|0)>=(b|0))break;f=c[d+8+(g<<2)>>2]|0;if(j|(f|0)==(e|0)){sG(f,a[(c[m>>2]|0)+((c[f+12>>2]|0)*40|0)+36>>0]|0?k:l);b=c[n>>2]|0}g=g+1|0}return}function sG(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+8|0;e=c[d>>2]|0;c[d>>2]=e+1;if((e|0)>=(b|0)){c[d>>2]=0;h[a>>3]=+h[a>>3]+16384.0}return}function tG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0.0;x=l;l=l+112|0;u=x+64|0;t=x+96|0;m=x+32|0;v=x;w=qw(28)|0;b=ln(a)|0;s=w+4|0;c[s>>2]=b;b=qw(b*72|0)|0;r=w+12|0;c[r>>2]=b;e=v+8|0;h[e>>3]=1797693134862315708145274.0e284;h[v>>3]=1797693134862315708145274.0e284;f=v+24|0;h[f>>3]=-1797693134862315708145274.0e284;g=v+16|0;h[g>>3]=-1797693134862315708145274.0e284;i=m+16|0;j=m+8|0;k=m+24|0;d=bo(a)|0;n=1797693134862315708145274.0e284;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;q=-1797693134862315708145274.0e284;while(1){if(!d)break;C=d+16|0;D=c[C>>2]|0;z=(+h[D+96>>3]+ +h[D+88>>3])*.5;z=z<1.0?1.0:z;y=+h[D+80>>3]*.5;y=y<1.0?1.0:y;E=+h[D+16>>3];B=E-z;h[m>>3]=B;z=E+z;h[i>>3]=z;E=+h[D+24>>3];A=E-y;h[j>>3]=A;y=E+y;h[k>>3]=y;B=+h[(n<B?v:m)>>3];h[v>>3]=B;A=+h[(o<A?v:m)+8>>3];h[e>>3]=A;z=+h[(p>z?v:m)+16>>3];h[g>>3]=z;y=+h[(q>y?v:m)+24>>3];h[f>>3]=y;D=b+40|0;c[D>>2]=c[m>>2];c[D+4>>2]=c[m+4>>2];c[D+8>>2]=c[m+8>>2];c[D+12>>2]=c[m+12>>2];c[D+16>>2]=c[m+16>>2];c[D+20>>2]=c[m+20>>2];c[D+24>>2]=c[m+24>>2];c[D+28>>2]=c[m+28>>2];c[b>>2]=c[b>>2]|1;c[(c[C>>2]|0)+112>>2]=b;b=b+72|0;d=co(a,d)|0;n=B;o=A;p=z;q=y}h[v>>3]=n+-36.0;h[e>>3]=o+-36.0;h[g>>3]=p+36.0;h[f>>3]=q+36.0;D=c[r>>2]|0;f=c[s>>2]|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];c[u+16>>2]=c[v+16>>2];c[u+20>>2]=c[v+20>>2];c[u+24>>2]=c[v+24>>2];c[u+28>>2]=c[v+28>>2];f=DG(D,f,t,u)|0;if(c[42365]&1|0){r=c[r>>2]|0;C=c[s>>2]|0;D=c[t>>2]|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];c[u+16>>2]=c[v+16>>2];c[u+20>>2]=c[v+20>>2];c[u+24>>2]=c[v+24>>2];c[u+28>>2]=c[v+28>>2];uG(r,C,u,f,D)}e=w+8|0;c[e>>2]=qw((c[t>>2]|0)*72|0)|0;c[w>>2]=c[t>>2];d=c[t>>2]|0;b=0;while(1){if((b|0)>=(d|0))break;D=(c[e>>2]|0)+(b*72|0)+40|0;C=f+(b<<5)|0;c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];c[D+12>>2]=c[C+12>>2];c[D+16>>2]=c[C+16>>2];c[D+20>>2]=c[C+20>>2];c[D+24>>2]=c[C+24>>2];c[D+28>>2]=c[C+28>>2];b=b+1|0}XI(f);c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];c[u+16>>2]=c[v+16>>2];c[u+20>>2]=c[v+20>>2];c[u+24>>2]=c[v+24>>2];c[u+28>>2]=c[v+28>>2];c[w+16>>2]=vG(w,u)|0;l=x;return w|0}function uG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0,k=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0;q=l;l=l+128|0;p=q+96|0;o=q+64|0;j=q+32|0;r=q+16|0;s=q;m=+h[d+16>>3];n=+h[d>>3];k=+h[d+24>>3];g=+h[d+8>>3];i=c[13918]|0;SL(122581,i)|0;c[s>>2]=10;c[s+4>>2]=10;c[s+8>>2]=~~(m+10.0-n);c[s+12>>2]=~~(k+10.0-g);vL(i,123011,s)|0;h[r>>3]=10.0-n;h[r+8>>3]=10.0-g;vL(i,123059,r)|0;SL(123076,i)|0;d=0;while(1){if((d|0)>=(b|0))break;v=+h[a+(d*72|0)+48>>3];u=+h[a+(d*72|0)+56>>3];t=+h[a+(d*72|0)+64>>3];h[j>>3]=+h[a+(d*72|0)+40>>3];h[j+8>>3]=v;h[j+16>>3]=u;h[j+24>>3]=t;vL(i,123095,j)|0;d=d+1|0}SL(123113,i)|0;d=0;while(1){if((d|0)>=(f|0))break;t=+h[e+(d<<5)+8>>3];u=+h[e+(d<<5)+16>>3];v=+h[e+(d<<5)+24>>3];h[o>>3]=+h[e+(d<<5)>>3];h[o+8>>3]=t;h[o+16>>3]=u;h[o+24>>3]=v;vL(i,123132,o)|0;d=d+1|0}SL(123150,i)|0;h[p>>3]=n;h[p+8>>3]=g;h[p+16>>3]=m;h[p+24>>3]=k;vL(i,123132,p)|0;SL(122897,i)|0;l=q;return}function vG(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=l;l=l+32|0;t=A+16|0;k=A;w=c[a>>2]|0;y=RC(w<<2|2)|0;z=Pl(54944,c[4345]|0)|0;v=Pl(54980,c[4345]|0)|0;w=qw(w<<7)|0;f=qw(c[a>>2]<<4)|0;x=a+8|0;g=b+16|0;i=k+8|0;j=b+24|0;m=b+8|0;d=0;while(1){if((d|0)>=(c[a>>2]|0))break;n=c[x>>2]|0;o=n+(d*72|0)|0;c[n+(d*72|0)+32>>2]=4;p=n+(d*72|0)+36|0;c[p>>2]=f+(d<<2<<2);q=n+(d*72|0)+40|0;e=+h[n+(d*72|0)+56>>3];if(e<+h[g>>3]){h[k>>3]=e;h[i>>3]=+h[n+(d*72|0)+48>>3];c[t>>2]=c[k>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];c[t+12>>2]=c[k+12>>2];s=wG(y,z,t,w,1)|0;c[s+20>>2]=o;c[c[p>>2]>>2]=s}e=+h[n+(d*72|0)+64>>3];if(e<+h[j>>3]){h[k>>3]=+h[q>>3];h[i>>3]=e;c[t>>2]=c[k>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];c[t+12>>2]=c[k+12>>2];s=wG(y,v,t,w,0)|0;c[s+20>>2]=o;c[(c[p>>2]|0)+4>>2]=s}if(+h[q>>3]>+h[b>>3]){c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];s=wG(y,z,t,w,1)|0;c[s+24>>2]=o;c[(c[p>>2]|0)+8>>2]=s}if(+h[n+(d*72|0)+48>>3]>+h[m>>3]){c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];s=wG(y,v,t,w,0)|0;c[s+24>>2]=o;c[(c[p>>2]|0)+12>>2]=s}d=d+1|0}o=qw(c[y>>2]<<2)|0;r=a+4|0;s=a+12|0;p=t+8|0;m=0;q=0;n=0;while(1){d=c[r>>2]|0;if((n|0)>=(d|0)){b=0;break}g=c[s>>2]|0;i=g+(n*72|0)|0;j=g+(n*72|0)+36|0;c[j>>2]=o+(m<<2);b=g+(n*72|0)+40|0;c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];b=g+(n*72|0)+56|0;k=g+(n*72|0)+32|0;d=bb[c[v>>2]&31](v,t,512)|0;while(1){if(!d)break;if(!(+h[d+8>>3]<+h[b>>3]))break;C=c[d>>2]|0;B=c[j>>2]|0;f=c[k>>2]|0;c[k>>2]=f+1;c[B+(f<<2)>>2]=C;c[(c[d>>2]|0)+24>>2]=i;d=bb[c[v>>2]&31](v,d,8)|0}f=g+(n*72|0)+64|0;d=bb[c[z>>2]&31](z,t,512)|0;while(1){if(!d){u=20;break}e=+h[f>>3];if(!(+h[d+16>>3]<e))break;b=c[d>>2]|0;B=c[j>>2]|0;C=c[k>>2]|0;c[k>>2]=C+1;c[B+(C<<2)>>2]=b;c[(c[d>>2]|0)+24>>2]=i;d=bb[c[z>>2]&31](z,d,8)|0}if((u|0)==20){u=0;e=+h[f>>3]}h[p>>3]=e;b=g+(n*72|0)+56|0;d=bb[c[v>>2]&31](v,t,512)|0;while(1){if(!d){u=25;break}e=+h[b>>3];if(!(+h[d+8>>3]<e))break;D=c[d>>2]|0;B=c[j>>2]|0;C=c[k>>2]|0;c[k>>2]=C+1;c[B+(C<<2)>>2]=D;c[(c[d>>2]|0)+20>>2]=i;d=bb[c[v>>2]&31](v,d,8)|0}if((u|0)==25){u=0;e=+h[b>>3]}h[t>>3]=e;h[p>>3]=+h[g+(n*72|0)+48>>3];d=bb[c[z>>2]&31](z,t,512)|0;while(1){if(!d)break;if(!(+h[d+16>>3]<+h[f>>3]))break;B=c[d>>2]|0;C=c[j>>2]|0;D=c[k>>2]|0;c[k>>2]=D+1;c[C+(D<<2)>>2]=B;c[(c[d>>2]|0)+20>>2]=i;d=bb[c[z>>2]&31](z,d,8)|0}D=c[k>>2]|0;m=D+m|0;q=(D|0)>(q|0)?D:q;n=n+1|0}while(1){if((b|0)>=(d|0))break;xG((c[s>>2]|0)+(b*72|0)|0);b=b+1|0;d=c[r>>2]|0}d=c[y>>2]|0;D=c[y+16>>2]|0;c[D+(d*40|0)+32>>2]=d;d=d+1|0;c[D+(d*40|0)+32>>2]=d;QC(y,q);d=0;while(1){if((d|0)>=(c[a>>2]|0))break;yG((c[x>>2]|0)+(d*72|0)|0,y);d=d+1|0}Jl(z)|0;Jl(v)|0;XI(w);zG(y);OC(y);l=A;return y|0}function wG(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=bb[c[d>>2]&31](d,e,512)|0;do if(!h){b=SC(b)|0;if(!f)ma(122994,122942,291,123001);else{h=c[b+32>>2]|0;i=f+(h<<5)|0;f=f+(h<<5)+8|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[i>>2]=b;a[b+36>>0]=g;bb[c[d>>2]&31](d,i,1)|0;break}}else i=h;while(0);return c[i>>2]|0}function xG(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;a:do if((+h[b+64>>3]+-3.0-+h[b+48>>3])*.5<2.0){i=c[b+32>>2]|0;j=b+36|0;g=0;while(1){if((g|0)>=(i|0))break a;d=c[(c[j>>2]|0)+(g<<2)>>2]|0;b:do if(a[d+36>>0]|0){f=c[d+20>>2]|0;if((f|0)==(b|0)){e=c[d+24>>2]|0;d=e;e=c[e>>2]|0;do{c[d>>2]=e|8;d=c[c[d+36>>2]>>2]|0;if(!d)break b;d=c[d+24>>2]|0;e=c[d>>2]|0}while(!(e&1|0))}else{e=f;d=c[f>>2]|0;do{c[e>>2]=d|8;d=c[(c[e+36>>2]|0)+8>>2]|0;if(!d)break b;e=c[d+20>>2]|0;d=c[e>>2]|0}while(!(d&1|0))}}while(0);g=g+1|0}}while(0);c:do if((+h[b+56>>3]+-3.0-+h[b+40>>3])*.5<2.0){i=c[b+32>>2]|0;j=b+36|0;g=0;while(1){if((g|0)>=(i|0))break c;d=c[(c[j>>2]|0)+(g<<2)>>2]|0;d:do if(!(a[d+36>>0]|0)){f=c[d+20>>2]|0;if((f|0)==(b|0)){e=c[d+24>>2]|0;d=e;e=c[e>>2]|0;do{c[d>>2]=e|16;d=c[(c[d+36>>2]|0)+4>>2]|0;if(!d)break d;d=c[d+24>>2]|0;e=c[d>>2]|0}while(!(e&1|0))}else{e=f;d=c[f>>2]|0;do{c[e>>2]=d|16;d=c[(c[e+36>>2]|0)+12>>2]|0;if(!d)break d;e=c[d+20>>2]|0;d=c[e>>2]|0}while(!(d&1|0))}}while(0);g=g+1|0}}while(0);return}function yG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0;g=+h[a+56>>3]-+h[a+40>>3];i=+h[a+64>>3]-+h[a+48>>3];f=(i+g)*.5+500.0;if((i+-3.0)*.5<2.0){l=(c[a>>2]&8|0)==0;f=l?16384.0:f;p=l?16384.0:g}else p=g;if((g+-3.0)*.5<2.0){l=(c[a>>2]&16|0)==0;i=l?16384.0:i;f=l?16384.0:f}l=a+36|0;d=c[l>>2]|0;e=c[d+8>>2]|0;if((e|0)!=0?(j=c[d+4>>2]|0,(j|0)!=0):0){j=TC(b,e,j,f)|0;e=a+4|0;d=c[e>>2]|0;c[e>>2]=d+1;c[a+8+(d<<2)>>2]=j;d=c[l>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(k=c[d>>2]|0,(k|0)!=0):0){k=TC(b,e,k,f)|0;j=a+4|0;d=c[j>>2]|0;c[j>>2]=d+1;c[a+8+(d<<2)>>2]=k;d=c[l>>2]|0}e=c[d+8>>2]|0;if((e|0)!=0?(m=c[d+12>>2]|0,(m|0)!=0):0){m=TC(b,e,m,f)|0;k=a+4|0;d=c[k>>2]|0;c[k>>2]=d+1;c[a+8+(d<<2)>>2]=m;d=c[l>>2]|0}e=c[d+12>>2]|0;if((e|0)!=0?(n=c[d>>2]|0,(n|0)!=0):0){n=TC(b,e,n,f)|0;m=a+4|0;d=c[m>>2]|0;c[m>>2]=d+1;c[a+8+(d<<2)>>2]=n;d=c[l>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(o=c[d+12>>2]|0,(o|0)!=0):0){o=TC(b,e,o,i)|0;n=a+4|0;d=c[n>>2]|0;c[n>>2]=d+1;c[a+8+(d<<2)>>2]=o;d=c[l>>2]|0}e=c[d+8>>2]|0;if(e|0?(q=c[d>>2]|0,q|0):0){b=TC(b,e,q,p)|0;o=a+4|0;q=c[o>>2]|0;c[o>>2]=q+1;c[a+8+(q<<2)>>2]=b}return}function zG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j+8|0;h=j;f=a+16|0;g=c[13918]|0;e=0;while(1){if((e|0)>=(c[a>>2]|0)){b=10;break}b=c[f>>2]|0;d=b+(e*40|0)+20|0;if((c[d>>2]|0)==0?(c[h>>2]=e,vL(g,122907,h)|0,(c[d>>2]|0)==0):0){b=5;break}b=b+(e*40|0)+24|0;if((c[b>>2]|0)==0?(c[i>>2]=e,vL(g,122959,i)|0,(c[b>>2]|0)==0):0){b=8;break}e=e+1|0}if((b|0)==5)ma(122929,122942,311,122949);else if((b|0)==8)ma(122981,122942,313,122949);else if((b|0)==10){l=j;return}}function AG(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[c+8>>3];if(!(e>f))if(!(e<f)){f=+h[b>>3];e=+h[c>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function BG(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];if(!(e>f))if(!(e<f)){f=+h[b+8>>3];e=+h[c+8>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function CG(a){a=a|0;var b=0,d=0;d=a+8|0;XI(c[(c[d>>2]|0)+36>>2]|0);b=a+12|0;XI(c[(c[b>>2]|0)+36>>2]|0);XI(c[d>>2]|0);XI(c[b>>2]|0);VC(c[a+16>>2]|0);Jl(c[a+20>>2]|0)|0;Jl(c[a+24>>2]|0)|0;XI(a);return}function DG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+32|0;h=p;i=b<<2;f=i+4|0;i=i+5|0;o=rw(i*56|0)|0;i=qw(i<<2)|0;g=f*5|1;j=rw(g*72|0)|0;m=g<<5;k=qw(m)|0;m=qw(m)|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];c[h+24>>2]=c[e+24>>2];c[h+28>>2]=c[e+28>>2];EG(a,b,h,o,0);uM(173);FG(f,i);PG(f,o,i,g,j)|0;n=GG(f,o,j,0,k)|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];c[h+24>>2]=c[e+24>>2];c[h+28>>2]=c[e+28>>2];EG(a,b,h,o,1);FG(f,i);PG(f,o,i,g,j)|0;f=GG(f,o,j,1,m)|0;g=qw(O(n<<5,f)|0)|0;b=0;a=0;while(1){if((b|0)>=(f|0))break;h=m+(b<<5)|0;e=0;while(1){if((e|0)>=(n|0))break;q=a+((HG(g+(a<<5)|0,h,k+(e<<5)|0)|0)!=0&1)|0;e=e+1|0;a=q}b=b+1|0}q=tw(g,a<<5)|0;XI(o);XI(i);XI(j);XI(k);XI(m);c[d>>2]=a;l=p;return q|0}function EG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=l;l=l+96|0;h=j+64|0;i=j;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];c[h+28>>2]=c[d+28>>2];NG(h,f,1,i);d=OG(e,1,i)|0;g=0;while(1){if((g|0)>=(b|0))break;k=a+(g*72|0)+40|0;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];c[h+12>>2]=c[k+12>>2];c[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>>2];c[h+28>>2]=c[k+28>>2];NG(h,f,0,i);d=OG(e,d,i)|0;g=g+1|0}l=j;return}function FG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=0;while(1){if((d|0)>(a|0))break;c[b+(d<<2)>>2]=d;d=d+1|0}g=a+1|0;d=1;while(1){if((d|0)>(a|0))break;h=~~(+wM()*+(g-d|0)+ +(d|0));e=b+(d<<2)|0;f=b+(h<<2)|0;if((d|0)!=(h|0)){h=c[e>>2]|0;c[e>>2]=c[f>>2];c[f>>2]=h}d=d+1|0}return}function GG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=a*5|0;j=g+1|0;l=qw(j<<2)|0;c[42430]=qw(j<<4)|0;c[42431]=qw((a*56|0)+56|0)|0;j=qw(a<<2)|0;c[42432]=j;k=0;while(1){if((k|0)>(g|0))break;if(IG(d+(k*72|0)|0,b)|0)break;k=k+1|0}h=c[42430]|0;i=c[42431]|0;g=1;while(1){if((g|0)>(a|0))break;c[h+(g<<4)+8>>2]=c[b+(g*56|0)+48>>2];m=b+(g*56|0)+44|0;c[h+(g<<4)+4>>2]=c[m>>2];c[h+(g<<4)>>2]=g;n=i+(g*56|0)|0;o=b+(g*56|0)|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];c[i+(g*56|0)+16>>2]=c[m>>2];c[i+(g*56|0)+32>>2]=g;c[i+(g*56|0)+48>>2]=1;g=g+1|0}c[42433]=a;c[42434]=0;c[j>>2]=1;g=c[d+(k*72|0)+40>>2]|0;if((g|0)<=0){g=c[d+(k*72|0)+48>>2]|0;if((g|0)>0)g=JG(l,f,0,b,d,0,k,g,e,2)|0;else g=0}else g=JG(l,f,0,b,d,0,k,g,e,1)|0;XI(l);XI(c[42430]|0);XI(c[42431]|0);XI(c[42432]|0);return g|0}function HG(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;g=+h[(+h[b>>3]>+h[c>>3]?b:c)>>3];f=+h[(+h[b+16>>3]<+h[c+16>>3]?b:c)+16>>3];h[a+16>>3]=f;h[a>>3]=g;e=+h[(+h[b+8>>3]>+h[c+8>>3]?b:c)+8>>3];d=+h[(+h[b+24>>3]<+h[c+24>>3]?b:c)+24>>3];h[a+24>>3]=d;h[a+8>>3]=e;return !(g>=f)&!(e>=d)&1|0}function IG(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[a+4>>2]|0;do if((c[a+68>>2]|0)!=2?!((f|0)<1|(c[a>>2]|0)<1):0){if(!((c[a+40>>2]|0)<1?(c[a+44>>2]|0)<1:0)){if((c[a+48>>2]|0)>=1){a=0;break}if((c[a+52>>2]|0)>=1){a=0;break}}d=+h[b+(f*56|0)+24>>3];e=+h[b+(f*56|0)+8>>3];if(!(d>e+1.0e-07))if(d<e+-1.0e-07)a=0;else a=+h[b+(f*56|0)+16>>3]>+h[b+(f*56|0)>>3]&1;else a=1}else a=0;while(0);return a|0}function JG(a,b,d,e,f,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0.0,L=0,M=0,N=0,O=0,P=0;D=(k|0)==0;C=i;a:while(1){y=f+(C*72|0)|0;if((C|0)<1)break;i=a+(C<<2)|0;if(c[i>>2]|0)break;c[i>>2]=1;v=f+(C*72|0)+8|0;t=f+(C*72|0)+16|0;p=+h[t>>3];w=f+(C*72|0)+24|0;x=f+(C*72|0)+32|0;o=+h[x>>3];if((p>o?(A=c[y>>2]|0,I=+h[e+(A*56|0)>>3],I==+h[e+(A*56|0)+16>>3]):0)?(A=c[f+(C*72|0)+4>>2]|0,K=+h[e+(A*56|0)>>3],K==+h[e+(A*56|0)+16>>3]):0){i=b+(d<<5)|0;if(D){h[i>>3]=I;q=p;p=K}else{h[i>>3]=o;q=-I;o=-K}h[b+(d<<5)+8>>3]=o;h[b+(d<<5)+16>>3]=p;h[b+(d<<5)+24>>3]=q;d=d+1|0}i=f+(C*72|0)+40|0;z=c[i>>2]|0;do if((z|0)<1?(L=f+(C*72|0)+44|0,(c[L>>2]|0)<1):0){i=f+(C*72|0)+48|0;n=f+(C*72|0)+52|0;if((c[i>>2]|0)>0?(M=c[n>>2]|0,(M|0)>0):0){m=c[f+(M*72|0)>>2]|0;l=c[y>>2]|0;if((M|0)==(j|0)){l=KG(g,l,m)|0;d=JG(a,b,d,e,f,g,c[n>>2]|0,C,k,1)|0;g=l;l=1;break}else{l=KG(g,m,l)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,1)|0;g=l;i=n;l=1;break}}d=JG(a,b,d,e,f,g,z,C,k,2)|0;d=JG(a,b,d,e,f,g,c[L>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,1)|0;i=n;l=1}else P=19;while(0);do if((P|0)==19){P=0;A=f+(C*72|0)+48|0;r=c[A>>2]|0;if((r|0)<1?(N=f+(C*72|0)+52|0,(c[N>>2]|0)<1):0){n=f+(C*72|0)+44|0;if((z|0)>0?(O=c[n>>2]|0,(O|0)>0):0){m=c[f+(C*72|0)+4>>2]|0;l=c[f+(z*72|0)+4>>2]|0;if((O|0)==(j|0)){l=KG(g,l,m)|0;d=JG(a,b,d,e,f,g,c[n>>2]|0,C,k,2)|0;g=l;l=2;break}else{l=KG(g,m,l)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;g=l;i=n;l=2;break}}d=JG(a,b,d,e,f,g,z,C,k,2)|0;d=JG(a,b,d,e,f,g,c[n>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;i=N;l=1;break}u=f+(C*72|0)+44|0;s=c[u>>2]|0;m=(s|0)>0;if((z|0)>0){if(m){if((r|0)>0?(E=f+(C*72|0)+52|0,F=c[E>>2]|0,(F|0)>0):0){n=c[f+(F*72|0)>>2]|0;m=c[f+(z*72|0)+4>>2]|0;if(!((l|0)==2&(F|0)==(j|0))?!((l|0)==1&(s|0)==(j|0)):0){l=KG(g,n,m)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[u>>2]|0,C,k,2)|0;g=l;i=E;l=1;break}l=KG(g,m,n)|0;d=JG(a,b,d,e,f,g,c[u>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[E>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[i>>2]|0,C,k,2)|0;g=l;i=A;l=1;break}m=c[y>>2]|0;if(+B(+(+h[x>>3]-+h[e+(m*56|0)+24>>3]))<=1.0e-07?+B(+(+h[w>>3]-+h[e+(m*56|0)+16>>3]))<=1.0e-07:0){n=c[f+(z*72|0)+4>>2]|0;m=c[e+(m*56|0)+44>>2]|0;if((l|0)==1&(z|0)==(j|0)){l=KG(g,m,n)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,l,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[u>>2]|0,C,k,2)|0;g=l;i=f+(C*72|0)+52|0;l=1;break}else{l=KG(g,n,m)|0;d=JG(a,b,d,e,f,g,c[u>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+52>>2]|0,C,k,1)|0;g=l;l=2;break}}n=c[f+(C*72|0)+4>>2]|0;m=c[f+(z*72|0)+4>>2]|0;if((l|0)==1&(s|0)==(j|0)){l=KG(g,m,n)|0;d=JG(a,b,d,e,f,g,c[u>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,l,c[f+(C*72|0)+52>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[A>>2]|0,C,k,1)|0;g=l;l=2;break}else{l=KG(g,n,m)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+52>>2]|0,C,k,1)|0;g=l;i=u;l=2;break}}}else if(!m)break a;if((r|0)>0?(G=f+(C*72|0)+52|0,H=c[G>>2]|0,(H|0)>0):0){n=c[y>>2]|0;if(+B(+(+h[t>>3]-+h[e+(n*56|0)+8>>3]))<=1.0e-07?+B(+(+h[v>>3]-+h[e+(n*56|0)>>3]))<=1.0e-07:0){m=c[f+(H*72|0)>>2]|0;if((l|0)==2&(r|0)==(j|0)){l=KG(g,m,n)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[i>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,l,c[f+(C*72|0)+44>>2]|0,C,k,2)|0;g=l;i=G;l=1;break}else{l=KG(g,n,m)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+44>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[G>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;g=l;i=A;l=1;break}}m=c[f+(H*72|0)>>2]|0;n=c[e+((c[f+(C*72|0)+4>>2]|0)*56|0)+44>>2]|0;if((l|0)==2&(H|0)==(j|0)){l=KG(g,n,m)|0;d=JG(a,b,d,e,f,g,c[G>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[f+(C*72|0)+44>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,l,c[i>>2]|0,C,k,2)|0;g=l;i=A;l=1;break}else{l=KG(g,m,n)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+44>>2]|0,C,k,2)|0;g=l;i=G;l=1;break}}o=+h[t>>3];n=c[y>>2]|0;if(((+B(+(o-+h[e+(n*56|0)+8>>3]))<=1.0e-07?+B(+(+h[v>>3]-+h[e+(n*56|0)>>3]))<=1.0e-07:0)?(J=c[f+(C*72|0)+4>>2]|0,+B(+(+h[x>>3]-+h[e+(J*56|0)+8>>3]))<=1.0e-07):0)?+B(+(+h[w>>3]-+h[e+(J*56|0)>>3]))<=1.0e-07:0)if((l|0)==1){l=KG(g,n,J)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+44>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,l,c[f+(C*72|0)+52>>2]|0,C,k,1)|0;g=l;i=A;l=1;break}else{l=KG(g,J,n)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+52>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[i>>2]|0,C,k,2)|0;g=l;i=f+(C*72|0)+44|0;l=2;break}j=c[f+(C*72|0)+4>>2]|0;if(((+B(+(o-+h[e+(j*56|0)+24>>3]))<=1.0e-07?+B(+(+h[v>>3]-+h[e+(j*56|0)+16>>3]))<=1.0e-07:0)?+B(+(+h[x>>3]-+h[e+(n*56|0)+24>>3]))<=1.0e-07:0)?+B(+(+h[w>>3]-+h[e+(n*56|0)+16>>3]))<=1.0e-07:0){m=c[e+(j*56|0)+44>>2]|0;j=c[e+(n*56|0)+44>>2]|0;if((l|0)==1){l=KG(g,j,m)|0;d=JG(a,b,d,e,f,g,c[i>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+44>>2]|0,C,k,2)|0;d=JG(a,b,d,e,f,l,c[f+(C*72|0)+52>>2]|0,C,k,1)|0;g=l;i=A;l=1;break}else{l=KG(g,m,j)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+52>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,l,c[i>>2]|0,C,k,2)|0;g=l;i=f+(C*72|0)+44|0;l=2;break}}d=JG(a,b,d,e,f,g,z,C,k,2)|0;d=JG(a,b,d,e,f,g,c[A>>2]|0,C,k,1)|0;d=JG(a,b,d,e,f,g,c[f+(C*72|0)+44>>2]|0,C,k,2)|0;i=f+(C*72|0)+52|0;l=1}while(0);j=C;C=c[i>>2]|0}return d|0}function KG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+16|0;r=f+4|0;i=f;e=(c[42434]|0)+1|0;c[42434]=e;m=c[42431]|0;LG(b,d,r,i);r=c[r>>2]|0;h=c[m+(b*56|0)+32+(r<<2)>>2]|0;i=c[m+(d*56|0)+32+(c[i>>2]<<2)>>2]|0;n=c[42433]|0;g=n+1|0;n=n+2|0;c[42433]=n;q=c[42430]|0;c[q+(g<<4)>>2]=b;c[q+(n<<4)>>2]=d;o=q+(h<<4)+4|0;p=q+(g<<4)+4|0;c[p>>2]=c[o>>2];c[q+(c[o>>2]<<4)+8>>2]=g;c[q+(g<<4)+8>>2]=n;c[q+(n<<4)+4>>2]=g;j=q+(i<<4)+8|0;c[q+(n<<4)+8>>2]=c[j>>2];c[q+(c[j>>2]<<4)+4>>2]=n;c[o>>2]=i;c[j>>2]=h;j=m+(b*56|0)+48|0;o=c[j>>2]|0;i=m+(d*56|0)+48|0;k=c[i>>2]|0;c[m+(b*56|0)+16+(r<<2)>>2]=d;c[m+(b*56|0)+32+(o<<2)>>2]=g;c[m+(b*56|0)+16+(o<<2)>>2]=c[q+(c[p>>2]<<4)>>2];c[m+(d*56|0)+32+(k<<2)>>2]=n;c[m+(d*56|0)+16+(k<<2)>>2]=b;c[j>>2]=(c[j>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+1;d=c[42432]|0;c[d+(a<<2)>>2]=h;c[d+(e<<2)>>2]=g;l=f;return e|0}function LG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0;l=c[42431]|0;m=l+(a*56|0)|0;n=l+(b*56|0)|0;f=0;g=-4.0;i=0;while(1){if((i|0)==4)break;h=c[l+(a*56|0)+16+(i<<2)>>2]|0;if((h|0)>=1?(j=+MG(m,l+(h*56|0)|0,n),j>g):0){f=i;g=j}i=i+1|0}c[d>>2]=f;f=0;i=0;g=-4.0;while(1){if((i|0)==4)break;h=c[l+(b*56|0)+16+(i<<2)>>2]|0;if((h|0)>=1?(k=+MG(n,l+(h*56|0)|0,m),k>g):0){f=i;g=k}i=i+1|0}c[e>>2]=f;return}function MG(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;g=+h[a>>3];i=+h[b>>3]-g;d=+h[a+8>>3];f=+h[b+8>>3]-d;g=+h[c>>3]-g;d=+h[c+8>>3]-d;e=d*f+g*i;if(!(d*i-g*f>=0.0))d=-e/(+C(+(d*d+g*g))*+C(+(f*f+i*i)))+-2.0;else d=e/(+C(+(d*d+g*g))*+C(+(f*f+i*i)));return +d}function NG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,l=0.0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];i=e+32|0;j=a+16|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];if(!d){f=a+8|0;g=j;i=a+24|0;d=a}else{f=a+24|0;g=a;i=a+8|0;d=j}k=+h[g>>3];l=+h[i>>3];h[e+16>>3]=+h[d>>3];h[e+24>>3]=l;h[e+48>>3]=k;h[e+56>>3]=+h[f>>3];a:do if(b|0){d=0;while(1){if((d|0)==4)break a;j=e+(d<<4)+8|0;l=+h[j>>3];b=e+(d<<4)|0;h[j>>3]=+h[b>>3];h[b>>3]=-l;d=d+1|0}}while(0);return}function OG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=b+3|0;i=b+1|0;j=b+2|0;k=a+(b*56|0)+44|0;l=a+(h*56|0)+44|0;e=0;f=b;while(1){if((f|0)>(h|0))break;do if((f|0)!=(b|0))if((f|0)==(h|0)){c[l>>2]=b;g=j;break}else{c[a+(f*56|0)+44>>2]=f+1;g=f+-1|0;break}else{c[k>>2]=i;g=h}while(0);c[a+(f*56|0)+48>>2]=g;c[a+(f*56|0)+32>>2]=0;n=a+(f*56|0)|0;m=d+(e<<4)|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];QN(a+(g*56|0)+16|0,m|0,16)|0;e=e+1|0;f=f+1|0}return b+4|0}function PG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;c[42435]=e<<1;c[42436]=e;k=qw(e*80|0)|0;c[42437]=1;c[42438]=1;RN(f|0,0,e*72|0)|0;g=QG(c[d+4>>2]|0,b,f,k)|0;e=1;while(1){if((e|0)>(a|0))break;c[b+(e*56|0)+40>>2]=g;c[b+(e*56|0)+36>>2]=g;e=e+1|0}j=RG(a)|0;g=2;i=1;while(1){if((i|0)>(j|0))break;e=SG(a,i+-1|0)|0;h=SG(a,i)|0;while(1){if((e|0)>=(h|0)){e=1;break}TG(c[d+(g<<2)>>2]|0,b,f,k);e=e+1|0;g=g+1|0}while(1){if((e|0)>(a|0))break;UG(e,b,f,k);e=e+1|0}i=i+1|0}e=SG(a,j)|0;while(1){if((e|0)>=(a|0))break;TG(c[d+(g<<2)>>2]|0,b,f,k);g=g+1|0;e=e+1|0}XI(k);return c[42437]|0}function QG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=ZG()|0;c[e+(f*40|0)>>2]=2;s=e+(f*40|0)+8|0;k=b+(a*56|0)|0;l=b+(a*56|0)+16|0;bH(s,k,l);n=ZG()|0;c[e+(f*40|0)+36>>2]=n;c[e+(n*40|0)>>2]=3;c[e+(n*40|0)+28>>2]=f;j=ZG()|0;c[e+(f*40|0)+32>>2]=j;c[e+(j*40|0)>>2]=2;r=e+(j*40|0)+8|0;cH(r,k,l);c[e+(j*40|0)+28>>2]=f;l=ZG()|0;c[e+(j*40|0)+32>>2]=l;c[e+(l*40|0)>>2]=3;c[e+(l*40|0)+28>>2]=j;k=ZG()|0;c[e+(j*40|0)+36>>2]=k;c[e+(k*40|0)>>2]=1;c[e+(k*40|0)+4>>2]=a;c[e+(k*40|0)+28>>2]=j;j=ZG()|0;c[e+(k*40|0)+32>>2]=j;c[e+(j*40|0)>>2]=3;c[e+(j*40|0)+28>>2]=k;g=ZG()|0;c[e+(k*40|0)+36>>2]=g;c[e+(g*40|0)>>2]=3;c[e+(g*40|0)+28>>2]=k;k=YG(d)|0;i=YG(d)|0;m=YG(d)|0;o=YG(d)|0;p=d+(k*72|0)+8|0;q=d+(i*72|0)+8|0;t=d+(o*72|0)+24|0;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];QN(q|0,s|0,16)|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];p=d+(k*72|0)+24|0;q=d+(i*72|0)+24|0;s=d+(m*72|0)+8|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];QN(q|0,r|0,16)|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];h[d+(o*72|0)+16>>3]=1073741824.0;h[d+(o*72|0)+8>>3]=1073741824.0;h[d+(m*72|0)+32>>3]=-1073741824.0;h[d+(m*72|0)+24>>3]=-1073741824.0;c[d+(i*72|0)>>2]=a;c[d+(k*72|0)+4>>2]=a;c[d+(i*72|0)+40>>2]=o;c[d+(k*72|0)+40>>2]=o;c[d+(i*72|0)+48>>2]=m;c[d+(k*72|0)+48>>2]=m;c[d+(m*72|0)+40>>2]=k;c[d+(o*72|0)+48>>2]=k;c[d+(m*72|0)+44>>2]=i;c[d+(o*72|0)+52>>2]=i;c[d+(k*72|0)+56>>2]=j;c[d+(i*72|0)+56>>2]=g;c[d+(m*72|0)+56>>2]=l;c[d+(o*72|0)+56>>2]=n;c[d+(i*72|0)+68>>2]=1;c[d+(k*72|0)+68>>2]=1;c[d+(o*72|0)+68>>2]=1;c[d+(m*72|0)+68>>2]=1;c[e+(n*40|0)+24>>2]=o;c[e+(l*40|0)+24>>2]=m;c[e+(j*40|0)+24>>2]=k;c[e+(g*40|0)+24>>2]=i;c[b+(a*56|0)+32>>2]=1;return f|0}function RG(a){a=a|0;var b=0.0;b=+(a|0);a=0;while(1){if(!(b>=1.0))break;b=+zJ(b);a=a+1|0}return a+-1|0}function SG(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+(a|0);c=d;a=0;while(1){if((a|0)>=(b|0))break;c=+zJ(c);a=a+1|0}return ~~+N(+(d/c))|0}function TG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;W=l;l=l+96|0;S=W+32|0;f=W+16|0;T=W;s=S;k=b+(a*56|0)|0;r=s+56|0;do{c[s>>2]=c[k>>2];s=s+4|0;k=k+4|0}while((s|0)<(r|0));U=S+16|0;V=S+24|0;i=+h[V>>3];H=S+8|0;j=+h[H>>3];do if(!(i>j+1.0e-07)){if(!(i<j+-1.0e-07)?+h[U>>3]>+h[S>>3]:0){G=4;break}G=(XG(a,b,1)|0)==0;f=c[S+36>>2]|0;if(G){n=0;G=7}else{f=VG(S,U,f,b,e)|0;G=20}}else G=4;while(0);if((G|0)==4){c[f>>2]=c[S>>2];c[f+4>>2]=c[S+4>>2];c[f+8>>2]=c[S+8>>2];c[f+12>>2]=c[S+12>>2];c[S>>2]=c[U>>2];c[S+4>>2]=c[U+4>>2];c[S+8>>2]=c[U+8>>2];c[S+12>>2]=c[U+12>>2];c[U>>2]=c[f>>2];c[U+4>>2]=c[f+4>>2];c[U+8>>2]=c[f+8>>2];c[U+12>>2]=c[f+12>>2];E=S+36|0;F=c[E>>2]|0;G=S+40|0;f=c[G>>2]|0;c[E>>2]=f;c[G>>2]=F;if(!(XG(a,b,2)|0)){n=1;G=7}else{f=VG(S,U,f,b,e)|0;G=19}}if((G|0)==7){m=VG(S,U,f,b,e)|0;f=YG(d)|0;c[d+(f*72|0)+68>>2]=1;s=d+(f*72|0)|0;k=d+(m*72|0)|0;r=s+72|0;do{c[s>>2]=c[k>>2];s=s+4|0;k=k+4|0}while((s|0)<(r|0));q=+h[H>>3];h[d+(f*72|0)+16>>3]=q;h[d+(m*72|0)+32>>3]=q;q=+h[S>>3];h[d+(f*72|0)+8>>3]=q;h[d+(m*72|0)+24>>3]=q;c[d+(m*72|0)+48>>2]=f;c[d+(m*72|0)+52>>2]=0;c[d+(f*72|0)+40>>2]=m;c[d+(f*72|0)+44>>2]=0;g=c[d+(f*72|0)+48>>2]|0;if((g|0)>0){k=d+(g*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=f;g=d+(g*72|0)+44|0;if((c[g>>2]|0)==(m|0))c[g>>2]=f}g=c[d+(f*72|0)+52>>2]|0;if((g|0)>0){k=d+(g*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=f;g=d+(g*72|0)+44|0;if((c[g>>2]|0)==(m|0))c[g>>2]=f}E=ZG()|0;G=ZG()|0;F=d+(m*72|0)+56|0;D=c[F>>2]|0;c[e+(D*40|0)>>2]=2;C=e+(D*40|0)+8|0;c[C>>2]=c[S>>2];c[C+4>>2]=c[S+4>>2];c[C+8>>2]=c[S+8>>2];c[C+12>>2]=c[S+12>>2];c[e+(D*40|0)+4>>2]=a;c[e+(D*40|0)+32>>2]=G;c[e+(D*40|0)+36>>2]=E;c[e+(E*40|0)>>2]=3;c[e+(E*40|0)+24>>2]=m;c[e+(E*40|0)+28>>2]=D;c[e+(G*40|0)>>2]=3;c[e+(G*40|0)+24>>2]=f;c[e+(G*40|0)+28>>2]=D;c[F>>2]=E;c[d+(f*72|0)+56>>2]=G;if(n)G=19;else G=20}if((G|0)==19)if(!(XG(a,b,1)|0)){g=1;G=21}else{g=1;G=32}else if((G|0)==20)if(!(XG(a,b,2)|0)){g=0;G=21}else{g=0;G=32}if((G|0)==21){o=VG(U,S,c[S+40>>2]|0,b,e)|0;n=YG(d)|0;c[d+(n*72|0)+68>>2]=1;s=d+(n*72|0)|0;k=d+(o*72|0)|0;r=s+72|0;do{c[s>>2]=c[k>>2];s=s+4|0;k=k+4|0}while((s|0)<(r|0));q=+h[V>>3];h[d+(n*72|0)+16>>3]=q;h[d+(o*72|0)+32>>3]=q;q=+h[U>>3];h[d+(n*72|0)+8>>3]=q;h[d+(o*72|0)+24>>3]=q;c[d+(o*72|0)+48>>2]=n;c[d+(o*72|0)+52>>2]=0;c[d+(n*72|0)+40>>2]=o;c[d+(n*72|0)+44>>2]=0;k=c[d+(n*72|0)+48>>2]|0;if((k|0)>0){m=d+(k*72|0)+40|0;if((c[m>>2]|0)==(o|0))c[m>>2]=n;k=d+(k*72|0)+44|0;if((c[k>>2]|0)==(o|0))c[k>>2]=n}k=c[d+(n*72|0)+52>>2]|0;if((k|0)>0){m=d+(k*72|0)+40|0;if((c[m>>2]|0)==(o|0))c[m>>2]=n;k=d+(k*72|0)+44|0;if((c[k>>2]|0)==(o|0))c[k>>2]=n}D=ZG()|0;F=ZG()|0;E=d+(o*72|0)+56|0;C=c[E>>2]|0;c[e+(C*40|0)>>2]=2;A=e+(C*40|0)+8|0;c[A>>2]=c[U>>2];c[A+4>>2]=c[U+4>>2];c[A+8>>2]=c[U+8>>2];c[A+12>>2]=c[U+12>>2];c[e+(C*40|0)+4>>2]=a;c[e+(C*40|0)+32>>2]=F;c[e+(C*40|0)+36>>2]=D;c[e+(D*40|0)>>2]=3;c[e+(D*40|0)+24>>2]=o;c[e+(D*40|0)+28>>2]=C;c[e+(F*40|0)>>2]=3;c[e+(F*40|0)+24>>2]=n;c[e+(F*40|0)+28>>2]=C;c[E>>2]=D;c[d+(n*72|0)+56>>2]=F;F=f;f=0}else if((G|0)==32){F=f;o=VG(U,S,c[S+40>>2]|0,b,e)|0;f=1}a:do if((F|0)>0){D=d+(o*72|0)+24|0;E=d+(o*72|0)+32|0;C=(f|0)!=0;y=g?b+(a*56|0)+48|0:b+(a*56|0)+44|0;z=T+8|0;g=0;f=0;x=F;b:while(1){k=d+(x*72|0)|0;v=d+(x*72|0)+24|0;if(!(_G(v,D)|0))break a;m=d+(x*72|0)+56|0;u=c[m>>2]|0;n=ZG()|0;p=ZG()|0;c[e+(u*40|0)>>2]=1;c[e+(u*40|0)+4>>2]=a;c[e+(u*40|0)+32>>2]=n;c[e+(u*40|0)+36>>2]=p;c[e+(n*40|0)>>2]=3;c[e+(n*40|0)+24>>2]=x;c[e+(n*40|0)+28>>2]=u;c[e+(p*40|0)>>2]=3;w=YG(d)|0;c[e+(p*40|0)+24>>2]=w;A=d+(w*72|0)|0;c[d+(w*72|0)+68>>2]=1;c[e+(p*40|0)+28>>2]=u;g=(x|0)==(F|0)?w:g;u=d+(x*72|0)+32|0;if(+B(+(+h[u>>3]-+h[E>>3]))<=1.0e-07?+B(+(+h[v>>3]-+h[D>>3]))<=1.0e-07:0)f=w;s=A;r=s+72|0;do{c[s>>2]=c[k>>2];s=s+4|0;k=k+4|0}while((s|0)<(r|0));c[m>>2]=n;c[d+(w*72|0)+56>>2]=p;t=d+(x*72|0)+48|0;m=d+(x*72|0)+52|0;k=(c[m>>2]|0)<1;do if((c[t>>2]|0)<1){if(k)break b;s=d+(x*72|0)+40|0;k=c[s>>2]|0;do if((k|0)>0?(M=d+(x*72|0)+44|0,N=c[M>>2]|0,(N|0)>0):0){r=d+(x*72|0)+60|0;k=c[r>>2]|0;if((k|0)<=0){c[d+(w*72|0)+40>>2]=N;c[d+(w*72|0)+44>>2]=-1;c[M>>2]=-1;c[d+(N*72|0)+48>>2]=w;break}if((c[d+(x*72|0)+64>>2]|0)==1){c[d+(w*72|0)+40>>2]=N;c[M>>2]=-1;c[d+(w*72|0)+44>>2]=k;c[d+((c[s>>2]|0)*72|0)+48>>2]=x;p=w;n=N}else{c[d+(w*72|0)+44>>2]=-1;t=d+(w*72|0)+40|0;c[t>>2]=c[M>>2];n=c[s>>2]|0;c[M>>2]=n;c[s>>2]=k;c[d+(k*72|0)+48>>2]=x;p=x;k=c[t>>2]|0}c[d+(n*72|0)+48>>2]=p;c[d+(k*72|0)+48>>2]=w;c[d+(w*72|0)+60>>2]=0;c[r>>2]=0}else G=77;while(0);do if((G|0)==77){G=0;n=d+(k*72|0)+48|0;p=c[n>>2]|0;k=d+(k*72|0)+52|0;if((p|0)>0?(c[k>>2]|0)>0:0){k=c[d+(p*72|0)+4>>2]|0;if((k|0)>0?(WG(k,b,U)|0)==0:0){c[d+(w*72|0)+44>>2]=-1;c[d+(x*72|0)+44>>2]=-1;c[s>>2]=-1;c[d+((c[d+(w*72|0)+40>>2]|0)*72|0)+52>>2]=w;break}c[d+(x*72|0)+44>>2]=-1;c[d+(w*72|0)+44>>2]=-1;c[d+(w*72|0)+40>>2]=-1;c[d+((c[s>>2]|0)*72|0)+48>>2]=x;break}c[n>>2]=x;c[k>>2]=w}while(0);if(+B(+(+h[u>>3]-+h[E>>3]))<=1.0e-07?C&+B(+(+h[v>>3]-+h[D>>3]))<=1.0e-07:0){k=c[y>>2]|0;if((k|0)>0?(WG(k,b,S)|0)!=0:0){c[d+((c[m>>2]|0)*72|0)+40>>2]=x;n=d+(w*72|0)+52|0;k=w}else{c[d+((c[d+(w*72|0)+52>>2]|0)*72|0)+44>>2]=w;n=m;k=x}c[n>>2]=-1;c[d+(k*72|0)+48>>2]=-1;k=c[m>>2]|0;break}k=c[m>>2]|0;m=d+(k*72|0)+40|0;n=c[m>>2]|0;p=d+(k*72|0)+44|0;if((n|0)>0?(O=c[p>>2]|0,P=(n|0)==(x|0),(O|0)>0):0){c[d+(k*72|0)+60>>2]=P?O:n;c[d+(k*72|0)+64>>2]=P?1:2}c[m>>2]=x;c[p>>2]=w}else{if(!k){i=+h[u>>3];j=+h[H>>3];q=i-j;if(!(+B(+q)<=1.0e-07)){h[z>>3]=i;i=+h[S>>3];h[T>>3]=(+h[U>>3]-i)*(q/(+h[V>>3]-j))+i;s=($G(T,v)|0)!=0}else s=+h[v>>3]>+h[S>>3];r=d+(x*72|0)+40|0;k=c[r>>2]|0;do if((k|0)>0?(Q=d+(x*72|0)+44|0,R=c[Q>>2]|0,(R|0)>0):0){p=d+(x*72|0)+60|0;k=c[p>>2]|0;if((k|0)<=0){c[d+(w*72|0)+40>>2]=R;c[d+(w*72|0)+44>>2]=-1;c[Q>>2]=-1;c[d+(R*72|0)+48>>2]=w;break}if((c[d+(x*72|0)+64>>2]|0)==1){c[d+(w*72|0)+40>>2]=R;c[Q>>2]=-1;c[d+(w*72|0)+44>>2]=k;c[d+((c[r>>2]|0)*72|0)+48>>2]=x;n=w;m=R}else{c[d+(w*72|0)+44>>2]=-1;X=d+(w*72|0)+40|0;c[X>>2]=c[Q>>2];m=c[r>>2]|0;c[Q>>2]=m;c[r>>2]=k;c[d+(k*72|0)+48>>2]=x;n=x;k=c[X>>2]|0}c[d+(m*72|0)+48>>2]=n;c[d+(k*72|0)+48>>2]=w;c[d+(w*72|0)+60>>2]=0;c[p>>2]=0}else G=106;while(0);do if((G|0)==106){G=0;m=d+(k*72|0)+48|0;n=c[m>>2]|0;k=d+(k*72|0)+52|0;if((n|0)>0?(c[k>>2]|0)>0:0){k=c[d+(n*72|0)+4>>2]|0;if((k|0)>0?(WG(k,b,U)|0)==0:0){c[d+(w*72|0)+44>>2]=-1;c[d+(x*72|0)+44>>2]=-1;c[r>>2]=-1;c[d+((c[d+(w*72|0)+40>>2]|0)*72|0)+52>>2]=w;break}c[d+(x*72|0)+44>>2]=-1;c[d+(w*72|0)+44>>2]=-1;c[d+(w*72|0)+40>>2]=-1;c[d+((c[r>>2]|0)*72|0)+48>>2]=x;break}c[m>>2]=x;c[k>>2]=w}while(0);if(+B(+(+h[u>>3]-+h[E>>3]))<=1.0e-07?C&+B(+(+h[v>>3]-+h[D>>3]))<=1.0e-07:0){k=c[t>>2]|0;c[d+(k*72|0)+40>>2]=x;c[d+(k*72|0)+44>>2]=-1;k=d+(x*72|0)+52|0;X=c[k>>2]|0;c[d+(X*72|0)+40>>2]=w;c[d+(X*72|0)+44>>2]=-1;c[d+(w*72|0)+48>>2]=X;c[d+(w*72|0)+52>>2]=-1;c[k>>2]=-1;k=-1}else G=116;do if((G|0)==116){G=0;k=c[t>>2]|0;c[d+(k*72|0)+40>>2]=x;m=d+(k*72|0)+44|0;if(s){c[m>>2]=w;X=d+(x*72|0)+52|0;v=c[X>>2]|0;c[d+(v*72|0)+40>>2]=w;c[d+(v*72|0)+44>>2]=-1;c[X>>2]=-1;break}else{c[m>>2]=-1;k=d+(x*72|0)+52|0;X=c[k>>2]|0;c[d+(X*72|0)+40>>2]=x;c[d+(X*72|0)+44>>2]=w;c[d+(w*72|0)+48>>2]=X;c[d+(w*72|0)+52>>2]=-1;k=c[k>>2]|0;break}}while(0);break}s=d+(x*72|0)+40|0;k=c[s>>2]|0;do if((k|0)>0?(I=d+(x*72|0)+44|0,J=c[I>>2]|0,(J|0)>0):0){r=d+(x*72|0)+60|0;k=c[r>>2]|0;if((k|0)<=0){c[d+(w*72|0)+40>>2]=J;c[d+(w*72|0)+44>>2]=-1;c[I>>2]=-1;c[d+(J*72|0)+48>>2]=w;break}if((c[d+(x*72|0)+64>>2]|0)==1){c[d+(w*72|0)+40>>2]=J;c[I>>2]=-1;c[d+(w*72|0)+44>>2]=k;c[d+((c[s>>2]|0)*72|0)+48>>2]=x;p=w;n=J}else{c[d+(w*72|0)+44>>2]=-1;X=d+(w*72|0)+40|0;c[X>>2]=c[I>>2];n=c[s>>2]|0;c[I>>2]=n;c[s>>2]=k;c[d+(k*72|0)+48>>2]=x;p=x;k=c[X>>2]|0}c[d+(n*72|0)+48>>2]=p;c[d+(k*72|0)+48>>2]=w;c[d+(w*72|0)+60>>2]=0;c[r>>2]=0}else G=51;while(0);do if((G|0)==51){G=0;n=d+(k*72|0)+48|0;p=c[n>>2]|0;k=d+(k*72|0)+52|0;if((p|0)>0?(c[k>>2]|0)>0:0){k=c[d+(p*72|0)+4>>2]|0;if((k|0)>0?(WG(k,b,U)|0)==0:0){c[d+(w*72|0)+44>>2]=-1;c[d+(x*72|0)+44>>2]=-1;c[s>>2]=-1;c[d+((c[d+(w*72|0)+40>>2]|0)*72|0)+52>>2]=w;break}c[d+(x*72|0)+44>>2]=-1;c[d+(w*72|0)+44>>2]=-1;c[d+(w*72|0)+40>>2]=-1;c[d+((c[s>>2]|0)*72|0)+48>>2]=x;break}c[n>>2]=x;c[k>>2]=w}while(0);if(+B(+(+h[u>>3]-+h[E>>3]))<=1.0e-07?C&+B(+(+h[v>>3]-+h[D>>3]))<=1.0e-07:0){k=c[y>>2]|0;if((k|0)>0?(WG(k,b,S)|0)!=0:0){c[d+((c[t>>2]|0)*72|0)+40>>2]=x;m=d+(w*72|0)+52|0;k=w}else{c[d+((c[d+(w*72|0)+48>>2]|0)*72|0)+44>>2]=w;k=x}c[m>>2]=-1;c[d+(k*72|0)+48>>2]=-1;k=c[t>>2]|0;break}k=c[t>>2]|0;m=d+(k*72|0)+40|0;n=c[m>>2]|0;p=d+(k*72|0)+44|0;if((n|0)>0?(K=c[p>>2]|0,L=(n|0)==(x|0),(K|0)>0):0){c[d+(k*72|0)+60>>2]=L?K:n;c[d+(k*72|0)+64>>2]=L?1:2}c[m>>2]=x;c[p>>2]=w}while(0);c[A>>2]=a;c[d+(x*72|0)+4>>2]=a;if((k|0)>0)x=k;else break a}TL(123235,19,1,c[13918]|0)|0}else{g=0;f=0}while(0);aH(a,F,o,1,d,e);aH(a,g,f,2,d,e);c[b+(a*56|0)+32>>2]=1;l=W;return}function UG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(c[b+(a*56|0)+32>>2]|0)){f=b+(a*56|0)|0;g=b+(a*56|0)+16|0;h=b+(a*56|0)+36|0;c[h>>2]=c[d+((VG(f,g,c[h>>2]|0,b,e)|0)*72|0)+56>>2];a=b+(a*56|0)+40|0;c[a>>2]=c[d+((VG(g,f,c[a>>2]|0,b,e)|0)*72|0)+56>>2]}return}function VG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0,r=0;o=a+8|0;q=b+8|0;a:while(1){b:do switch(c[f+(d*40|0)>>2]|0){case 3:{r=3;break a}case 2:{g=+h[o>>3];i=f+(d*40|0)+8|0;j=+h[f+(d*40|0)+16>>3];k=j+1.0e-07;do if(!(g>k)){l=j+-1.0e-07;if(!(g<l)?+h[a>>3]>+h[i>>3]:0)break;if(+B(+(g-j))<=1.0e-07?(m=+h[i>>3],+B(+(+h[a>>3]-m))<=1.0e-07):0){g=+h[q>>3];do if(!(g>k)){if(!(g<l)?+h[b>>3]>m:0)break;d=f+(d*40|0)+32|0;break b}while(0);d=f+(d*40|0)+36|0;break b}d=f+(d*40|0)+32|0;break b}while(0);d=f+(d*40|0)+36|0;break}case 1:{g=+h[o>>3];i=c[f+(d*40|0)+4>>2]|0;if(+B(+(g-+h[e+(i*56|0)+8>>3]))<=1.0e-07?(n=+h[a>>3],+B(+(n-+h[e+(i*56|0)>>3]))<=1.0e-07):0)j=n;else r=19;do if((r|0)==19){r=0;if(+B(+(g-+h[e+(i*56|0)+24>>3]))<=1.0e-07?(p=+h[a>>3],+B(+(p-+h[e+(i*56|0)+16>>3]))<=1.0e-07):0){j=p;break}if(!(WG(i,e,a)|0)){d=f+(d*40|0)+36|0;break b}else{d=f+(d*40|0)+32|0;break b}}while(0);if(!(+B(+(g-+h[q>>3]))<=1.0e-07))if(!(WG(i,e,b)|0)){d=f+(d*40|0)+36|0;break b}else{d=f+(d*40|0)+32|0;break b}else if(+h[b>>3]<j){d=f+(d*40|0)+32|0;break b}else{d=f+(d*40|0)+36|0;break b}}default:{r=31;break a}}while(0);d=c[d>>2]|0}if((r|0)==3)return c[f+(d*40|0)+24>>2]|0;else if((r|0)==31){TL(123169,35,1,c[13918]|0)|0;ma(123205,123207,349,123219)}return 0}function WG(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0,g=0.0,i=0,j=0,k=0.0;f=b+(a*56|0)+16|0;g=+h[b+(a*56|0)+24>>3];i=b+(a*56|0)|0;e=+h[b+(a*56|0)+8>>3];do if(!(g>e+1.0e-07)){if(!(g<e+-1.0e-07)?+h[f>>3]>+h[i>>3]:0){j=4;break}d=+h[c+8>>3];if(+B(+(g-d))<=1.0e-07){d=+h[c>>3]<+h[f>>3]?1.0:-1.0;break}if(!(+B(+(e-d))<=1.0e-07)){k=+h[f>>3];d=(+h[i>>3]-k)*(d-g)-(+h[c>>3]-k)*(e-g);break}else{d=+h[c>>3]<+h[i>>3]?1.0:-1.0;break}}else j=4;while(0);do if((j|0)==4){d=+h[c+8>>3];if(+B(+(g-d))<=1.0e-07){d=+h[c>>3]<+h[f>>3]?1.0:-1.0;break}if(!(+B(+(e-d))<=1.0e-07)){k=+h[i>>3];d=(+h[f>>3]-k)*(d-e)-(+h[c>>3]-k)*(g-e);break}else{d=+h[c>>3]<+h[i>>3]?1.0:-1.0;break}}while(0);return d>0.0|0}function XG(a,b,d){a=a|0;b=b|0;d=d|0;return c[b+((c[((d|0)==1?b+(a*56|0)+48|0:b+(a*56|0)+44|0)>>2]|0)*56|0)+32>>2]|0}function YG(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=c[42437]|0;if((b|0)<(c[42436]|0)){c[a+(b*72|0)>>2]=-1;c[a+(b*72|0)+4>>2]=-1;c[a+(b*72|0)+68>>2]=1;c[42437]=b+1;l=e;return b|0}else{e=c[13918]|0;c[d>>2]=b;vL(e,123294,d)|0;ma(123205,123207,88,123332)}return 0}function ZG(){var a=0;a=c[42438]|0;if((a|0)<(c[42435]|0)){c[42438]=a+1;return a|0}else{TL(123255,30,1,c[13918]|0)|0;ma(123205,123207,72,123286)}return 0}function _G(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+8>>3];d=+h[b+8>>3];if(!(c>d+1.0e-07))if(c<d+-1.0e-07)a=0;else a=+h[a>>3]>=+h[b>>3]&1;else a=1;return a|0}function $G(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+8>>3];d=+h[b+8>>3];if(!(c<d+-1.0e-07))if(c>d+1.0e-07)a=0;else a=+h[a>>3]<+h[b>>3]&1;else a=1;return a|0}function aH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=f+(d*72|0)+24|0;p=(e|0)==1;a:while(1){o=f+(b*72|0)+24|0;j=f+(b*72|0)+48|0;k=f+(b*72|0)+52|0;l=f+(b*72|0)|0;m=f+(b*72|0)+4|0;n=f+(b*72|0)+56|0;if((b|0)<=0)break;while(1){if(!(_G(o,q)|0))break a;d=c[j>>2]|0;e=(d|0)>0;do if(p){if(e?(c[f+(d*72|0)+4>>2]|0)==(a|0):0)break;d=c[k>>2]|0;if((d|0)<=0){b=d;continue a}if((c[f+(d*72|0)+4>>2]|0)!=(a|0)){b=d;continue a}}else{if(e?(c[f+(d*72|0)>>2]|0)==(a|0):0)break;d=c[k>>2]|0;if((d|0)<=0){b=d;continue a}if((c[f+(d*72|0)>>2]|0)!=(a|0)){b=d;continue a}}while(0);if((c[l>>2]|0)!=(c[f+(d*72|0)>>2]|0)){b=d;continue a}if((c[m>>2]|0)!=(c[f+(d*72|0)+4>>2]|0)){b=d;continue a}r=c[f+(d*72|0)+56>>2]|0;e=c[g+(r*40|0)+28>>2]|0;h=g+(e*40|0)+32|0;i=c[n>>2]|0;if((c[h>>2]|0)==(r|0))c[h>>2]=i;else c[g+(e*40|0)+36>>2]=i;e=c[f+(d*72|0)+48>>2]|0;c[j>>2]=e;do if((e|0)>0){h=f+(e*72|0)+40|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=b;break}e=f+(e*72|0)+44|0;if((c[e>>2]|0)==(d|0))c[e>>2]=b}while(0);e=c[f+(d*72|0)+52>>2]|0;c[k>>2]=e;do if((e|0)>0){h=f+(e*72|0)+40|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=b;break}e=f+(e*72|0)+44|0;if((c[e>>2]|0)==(d|0))c[e>>2]=b}while(0);r=f+(d*72|0)+24|0;c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];c[o+12>>2]=c[r+12>>2];c[f+(d*72|0)+68>>2]=2}}return}function bH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[d+8>>3];do if(!(e>f+1.0e-07)){if(!(+B(+(e-f))<=1.0e-07)){c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}if(+h[b>>3]>+h[d>>3]+1.0e-07){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}}else{c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}while(0);return}function cH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[d+8>>3];do if(!(e<f+-1.0e-07)){if(!(+B(+(e-f))<=1.0e-07)){c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}if(+h[b>>3]<+h[d>>3]){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}}else{c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}while(0);return}function dH(a){a=a|0;var b=0;b=qw(8)|0;if(b|0){c[b+4>>2]=a;c[b>>2]=0}return b|0}function eH(a,b){a=a|0;b=b|0;if(b){b=dH(b)|0;c[b>>2]=a;a=b}return a|0}function fH(a){a=a|0;var b=0;do{b=a;a=c[a>>2]|0;XI(b)}while((a|0)!=0);return}function gH(){var a=0;a=qw(1992)|0;if(a|0)c[a>>2]=hH(a)|0;return a|0}function hH(a){a=a|0;var b=0;b=nH(a)|0;c[b+4>>2]=0;a=a+1972|0;c[a>>2]=(c[a>>2]|0)+1;return b|0}function iH(a){a=a|0;jH(a,c[a>>2]|0);XI(c[a>>2]|0);XI(a);return 0}function jH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=a+1980|0;h=a+1912|0;i=a+1936|0;a:do if((c[b+4>>2]|0)>0){d=0;while(1){if((d|0)==64)break a;e=b+8+(d*20|0)+16|0;f=c[e>>2]|0;if(f|0?(jH(a,f),XI(c[e>>2]|0),tH(b,d),c[g>>2]=(c[g>>2]|0)+-1,c[h>>2]|0):0)c[i>>2]=(c[i>>2]|0)+1;d=d+1|0}}else{d=0;while(1){if((d|0)==64)break a;if(c[b+8+(d*20|0)+16>>2]|0?(tH(b,d),c[g>>2]=(c[g>>2]|0)+-1,c[h>>2]|0):0)c[i>>2]=(c[i>>2]|0)+1;d=d+1|0}}while(0);return}function kH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(!b)ma(123690,123340,194,123348);e=c[b+4>>2]|0;if((e|0)<=-1)ma(123360,123340,195,123348);if(!d)ma(123632,123340,196,123348);i=a+1952|0;c[i>>2]=(c[i>>2]|0)+1;a:do if((e|0)>0){i=0;e=0;while(1){if((i|0)==64)break a;f=b+8+(i*20|0)+16|0;if((c[f>>2]|0)!=0?(yH(d,b+8+(i*20|0)|0)|0)!=0:0){g=kH(a,c[f>>2]|0,d)|0;if(!e)e=g;else{f=e;while(1){h=c[f>>2]|0;if(!h)break;else f=h}c[f>>2]=g}}i=i+1|0}}else{g=0;e=0;while(1){if((g|0)==64)break a;f=b+8+(g*20|0)|0;if((c[b+8+(g*20|0)+16>>2]|0)!=0?(yH(d,f)|0)!=0:0)e=eH(e,f)|0;g=g+1|0}}while(0);return e|0}function lH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+64|0;k=p+52|0;m=p+32|0;n=p+16|0;o=p;c[k>>2]=0;if(!((b|0)!=0&(e|0)!=0))ma(123546,123340,247,123374);if((f|0)>-1?(j=c[e>>2]|0,(c[j+4>>2]|0)>=(f|0)):0){g=0;while(1){if((g|0)>=2)break;if((c[b+(g<<2)>>2]|0)>(c[b+(g+2<<2)>>2]|0)){h=8;break}else g=g+1|0}if((h|0)==8)ma(123421,123340,250,123374);i=a+1912|0;g=a+1908|0;h=c[g>>2]|0;if(c[i>>2]|0){q=h|0?a+1924|0:a+1916|0;c[q>>2]=(c[q>>2]|0)+1}if(!h){q=a+1964|0;c[q>>2]=(c[q>>2]|0)+1}if(!(mH(a,b,d,j,k,f)|0))g=0;else{if(c[i>>2]|0){q=c[g>>2]|0?a+1948|0:a+1944|0;c[q>>2]=(c[q>>2]|0)+1}g=nH(a)|0;q=a+1976|0;c[q>>2]=(c[q>>2]|0)+1;q=c[e>>2]|0;c[g+4>>2]=(c[q+4>>2]|0)+1;qH(n,q);c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];q=m+16|0;c[q>>2]=c[e>>2];sH(a,m,g,0)|0;qH(o,c[k>>2]|0);c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];c[q>>2]=c[k>>2];sH(a,m,g,0)|0;c[e>>2]=g;g=a+1980|0;c[g>>2]=(c[g>>2]|0)+2;g=1}l=p;return g|0}ma(123386,123340,248,123374);return 0}function mH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+80|0;m=q+52|0;n=q+48|0;o=q+32|0;p=q+16|0;k=q;c[n>>2]=0;if(!((b|0)!=0&(e|0)!=0&(f|0)!=0))ma(123464,123340,311,123478);if((g|0)>-1?(i=e+4|0,h=c[i>>2]|0,(h|0)>=(g|0)):0){if(c[a+1912>>2]|0){h=c[a+1908>>2]|0?a+1948|0:a+1944|0;c[h>>2]=(c[h>>2]|0)+1;h=c[i>>2]|0}do if((h|0)>(g|0)){i=rH(b,e)|0;h=e+8+(i*20|0)+16|0;i=e+8+(i*20|0)|0;if(!(mH(a,b,d,c[h>>2]|0,n,g)|0)){xH(o,b,i);c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];c[i+12>>2]=c[o+12>>2];j=0;break}else{qH(p,c[h>>2]|0);c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];j=c[n>>2]|0;c[m+16>>2]=j;qH(k,j);c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];j=a+1980|0;c[j>>2]=(c[j>>2]|0)+1;j=sH(a,m,e,f)|0;break}}else if((h|0)==(g|0)){c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];c[m+16>>2]=d;j=a+1980|0;c[j>>2]=(c[j>>2]|0)+1;j=sH(a,m,e,f)|0;break}else ma(123523,123340,341,123478);while(0);l=q;return j|0}ma(123491,123340,312,123478);return 0}function nH(a){a=a|0;a=a+1968|0;c[a>>2]=(c[a>>2]|0)+1;a=WI(1288)|0;oH(a);return a|0}function oH(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=-1;b=0;while(1){if((b|0)==64)break;pH(a+8+(b*20|0)|0);b=b+1|0}return}function pH(a){a=a|0;uH(a);c[a+16>>2]=0;return}function qH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;g=i+16|0;h=i;if(!b)ma(123690,123529,99,123536);uH(g);d=1;f=0;while(1){if((f|0)==64)break;do if(c[b+8+(f*20|0)+16>>2]|0){e=b+8+(f*20|0)|0;if(!d){xH(h,g,e);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];d=0;break}else{c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];d=0;break}}while(0);f=f+1|0}c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];l=i;return}function rH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;k=l;l=l+32|0;i=k+16|0;j=k;if(!((a|0)!=0&(b|0)!=0))ma(123546,123529,125,123553);d=0;e=0;f=0;g=1;h=0;while(1){if((h|0)==64)break;if(c[b+8+(h*20|0)+16>>2]|0){n=b+8+(h*20|0)|0;p=wH(n)|0;xH(j,a,n);c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];n=(wH(i)|0)-p|0;m=(g|0)!=0|(n|0)<(f|0);o=m|(p|0)<(e|0)&(n|0)==(f|0);d=o?h:d;e=o?p:e;f=o?n:f;g=m?0:g}h=h+1|0}l=k;return d|0}function sH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!b)ma(123712,123529,167,123564);if(!d)ma(123690,123529,168,123564);do if((c[d>>2]|0)<64){a=0;while(1){if((a|0)>=64){e=10;break}if(!(c[d+8+(a*20|0)+16>>2]|0)){e=8;break}a=a+1|0}if((e|0)==8){f=d+8+(a*20|0)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];f=0;g=d;break}else if((e|0)==10)ma(123574,123529,178,123564)}else{if(c[a+1912>>2]|0){h=c[a+1908>>2]|0?a+1948|0:a+1944|0;c[h>>2]=(c[h>>2]|0)+1}if(!e)ma(123587,123529,187,123564);else{zH(a,d,b,e);f=1;g=(c[d+4>>2]|0)==0?a+1972|0:a+1976|0;break}}while(0);c[g>>2]=(c[g>>2]|0)+1;return f|0}function tH(a,b){a=a|0;b=b|0;if(!((a|0)!=0&b>>>0<64))ma(123591,123529,201,123619);if(!(c[a+8+(b*20|0)+16>>2]|0))ma(124113,123529,202,123619);else{pH(a+8+(b*20|0)|0);c[a>>2]=(c[a>>2]|0)+-1;return}}function uH(a){a=a|0;var b=0;b=0;while(1){if((b|0)==4)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function vH(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;c[d>>2]=1;c[d+8>>2]=-1;b=1;while(1){if((b|0)==2)break;c[d+(b+2<<2)>>2]=0;c[d+(b<<2)>>2]=0;b=b+1|0}c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];l=e;return}function wH(a){a=a|0;var b=0,d=0,e=0;if(!a)ma(123632,123634,128,123646);a:do if((c[a>>2]|0)>(c[a+8>>2]|0))b=0;else{b=1;d=0;while(1){if((d|0)==2)break a;e=O(c[a+(d+2<<2)>>2]|0,b)|0;b=e-(c[a+(d<<2)>>2]|0)|0;d=d+1|0}}while(0);return b|0}function xH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=l;l=l+16|0;f=g;if(!((b|0)!=0&(d|0)!=0))ma(123655,123634,195,123663);do if((c[b>>2]|0)>(c[b+8>>2]|0)){c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2]}else{if((c[d>>2]|0)>(c[d+8>>2]|0)){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else e=0;while(1){if((e|0)==2)break;j=c[b+(e<<2)>>2]|0;h=c[d+(e<<2)>>2]|0;c[f+(e<<2)>>2]=(j|0)<(h|0)?j:h;h=e+2|0;j=c[b+(h<<2)>>2]|0;i=c[d+(h<<2)>>2]|0;c[f+(h<<2)>>2]=(j|0)>(i|0)?j:i;e=e+1|0}c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2]}while(0);l=g;return}function yH(a,b){a=a|0;b=b|0;var d=0,e=0;if((a|0)!=0&(b|0)!=0)d=0;else ma(123675,123634,216,123682);while(1){if((d|0)>=2){d=1;break}e=d+2|0;if((c[a+(d<<2)>>2]|0)>(c[b+(e<<2)>>2]|0)){d=0;break}if((c[b+(d<<2)>>2]|0)>(c[a+(e<<2)>>2]|0)){d=0;break}else d=d+1|0}return d|0}function zH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0;if(!b)ma(123690,123692,40,123702);if(!d)ma(123712,123692,41,123702);j=a+1912|0;if(c[j>>2]|0){i=c[a+1908>>2]|0?a+1932|0:a+1928|0;c[i>>2]=(c[i>>2]|0)+1}h=b+4|0;i=c[h>>2]|0;AH(a,b,d);d=a+1324|0;BH(a);f=wH(a+1852|0)|0;f=(wH(a+1868|0)|0)+f|0;if(c[j>>2]|0?(f|0)!=0&(c[a+1908>>2]|0)==0:0){j=a+1960|0;g[j>>2]=+((c[a+1320>>2]|0)>>>0)/+(f|0)+ +g[j>>2]}j=nH(a)|0;c[e>>2]=j;c[h>>2]=i;c[j+4>>2]=i;CH(a,b,j,d);if(((c[c[e>>2]>>2]|0)+(c[b>>2]|0)|0)==65)return;else ma(123714,123692,86,123702)}function AH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=l;l=l+16|0;g=h;if(!b)ma(123690,123692,106,124101);if(!d)ma(123712,123692,107,124101);else e=0;while(1){if((e|0)>=64)break;if(!(c[b+8+(e*20|0)+16>>2]|0)){f=7;break}j=b+8+(e*20|0)|0;i=a+4+(e*20|0)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];c[i+16>>2]=c[j+16>>2];e=e+1|0}if((f|0)==7)ma(124113,123692,111,124101);e=a+4|0;j=a+1284|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[j+16>>2]=c[d+16>>2];d=a+1304|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];e=1;while(1){if((e|0)==65)break;xH(g,d,a+4+(e*20|0)|0);c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];e=e+1|0}c[a+1320>>2]=wH(d)|0;oH(b);l=h;return}function BH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=l;l=l+48|0;i=u+32|0;k=u+16|0;m=u;DH(a);EH(a);q=a+1844|0;s=a+1848|0;t=a+1892|0;n=a+1852|0;o=a+1884|0;p=a+1868|0;j=a+1888|0;f=0;e=0;while(1){d=c[q>>2]|0;b=c[s>>2]|0;if((b+d|0)>=65)break;h=65-(c[t>>2]|0)|0;if((d|0)<(h|0)&(b|0)<(h|0)){g=-1;h=0}else{r=12;break}while(1){if((h|0)==65)break;if(!(c[a+1584+(h<<2)>>2]|0)){v=a+4+(h*20|0)|0;xH(k,v,n);c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];b=wH(i)|0;d=c[o>>2]|0;xH(m,v,p);c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];v=wH(i)|0;b=v-(c[j>>2]|0)+(d-b)|0;d=(b|0)>-1;b=d?b:0-b|0;d=(d^1)&1;if((b|0)<=(g|0))if((b|0)==(g|0)){v=(c[a+1844+(d<<2)>>2]|0)<(c[a+1844+(f<<2)>>2]|0);b=g;d=v?d:f;e=v?h:e}else{b=g;d=f}else e=h}else{b=g;d=f}g=b;h=h+1|0;f=d}FH(a,e,f)}if((r|0)==12){b=(d|0)>=(65-(c[t>>2]|0)|0)&1;d=0;while(1){if((d|0)==65)break;if(!(c[a+1584+(d<<2)>>2]|0))FH(a,d,b);d=d+1|0}d=c[q>>2]|0;b=c[s>>2]|0}if((b+d|0)!=65)ma(123857,123692,210,123943);v=c[t>>2]|0;if((d|0)<(v|0)|(b|0)<(v|0))ma(123954,123692,212,123943);else{l=u;return}}function CH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(!b)ma(123690,123692,297,123754);if(!d)ma(123764,123692,298,123754);if(!e)ma(123766,123692,299,123754);else f=0;while(1){if((f|0)>=65){e=14;break}e=c[a+1324+(f<<2)>>2]|0;if(e>>>0>=2){e=9;break}switch(e|0){case 0:{sH(a,a+4+(f*20|0)|0,b,0)|0;break}case 1:{sH(a,a+4+(f*20|0)|0,d,0)|0;break}default:{}}f=f+1|0}if((e|0)==9)ma(123768,123692,303,123754);else if((e|0)==14)return}function DH(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+16|0;e=d;c[a+1848>>2]=0;c[a+1844>>2]=0;b=a+1852|0;f=a+1868|0;vH(e);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];c[a+1888>>2]=0;c[a+1884>>2]=0;b=0;while(1){if((b|0)==65)break;c[a+1584+(b<<2)>>2]=0;c[a+1324+(b<<2)>>2]=-1;b=b+1|0}l=d;return}function EH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;o=l;l=l+304|0;k=o+32|0;m=o+16|0;n=o;b=0;while(1){if((b|0)==65)break;c[k+(b<<2)>>2]=wH(a+4+(b*20|0)|0)|0;b=b+1|0}b=0;d=0;e=0;g=0;a:while(1){if((g|0)==64)break;i=g+1|0;j=a+4+(g*20|0)|0;h=k+(g<<2)|0;f=i;while(1){if((f|0)==65){g=i;continue a}xH(n,j,a+4+(f*20|0)|0);c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];p=wH(m)|0;p=p-(c[h>>2]|0)-(c[k+(f<<2)>>2]|0)|0;q=p>>>0>e>>>0;r=q?f:b;f=f+1|0;b=r;d=q?g:d;e=q?p:e}}FH(a,d,0);FH(a,b,1);l=o;return}function FH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;e=a+1584+(b<<2)|0;if(c[e>>2]|0)ma(124057,123692,257,124092);c[a+1324+(b<<2)>>2]=d;c[e>>2]=1;g=a+1844+(d<<2)|0;f=a+1852+(d<<4)|0;e=a+4+(b*20|0)|0;if(!(c[g>>2]|0)){c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2]}else{xH(h,e,f);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2]}c[a+1884+(d<<2)>>2]=wH(f)|0;c[g>>2]=(c[g>>2]|0)+1;l=i;return}function GH(){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+1200|0;r=t+800|0;g=t;c[42439]=0;c[42440]=-2;f=r;i=200;n=g;p=0;q=0;o=r;a:while(1){b[o>>1]=p;if((f+(i<<1)+-2|0)>>>0>o>>>0)k=i;else{m=o-f>>1;e=m+1|0;if(i>>>0>9999){s=95;break}k=i<<1;k=k>>>0<1e4?k:1e4;h=WI(k*6|3)|0;if(h){PN(h|0,f|0,e<<1|0)|0;i=h+(k>>>1<<2)|0;PN(i|0,n|0,e<<2|0)|0;if((f|0)==(r|0)){e=0;f=h}else{XI(f);e=0;f=h}}else{e=4;i=n}j=(e|0)==0;h=f+(m<<1)|0;switch((j?((f+(k<<1)+-2|0)>>>0>h>>>0?0:9):e)&15){case 9:{e=1;s=96;break a}case 4:{s=95;break a}case 0:{g=j?i+(m<<2)|0:g;n=i;o=j?h:o;break}default:{e=0;break a}}}if((p|0)==31){e=0;s=96;break}e=b[58358+(p<<1)>>1]|0;j=e<<16>>16;do if(e<<16>>16!=-82){h=c[42440]|0;if((h|0)==-2){h=dI()|0;c[42440]=h}if((h|0)>=1)if(h>>>0<296)i=d[124132+h>>0]|0;else i=2;else{c[42440]=0;i=0}h=i+j|0;if(h>>>0<=271?(i|0)==(a[124428+h>>0]|0):0){p=a[124700+h>>0]|0;e=p<<24>>24;if(p<<24>>24<1){h=0-e|0;s=23;break}else{c[42440]=-2;g=g+4|0;c[g>>2]=0;j=(q|0)==0?0:q+-1|0;h=o;break}}else s=22}else s=22;while(0);if((s|0)==22){s=0;p=a[124972+p>>0]|0;h=p&255;if(!(p<<24>>24)){h=c[42440]|0;b:do switch(q|0){case 0:{c[42439]=(c[42439]|0)+1;$H(125369);h=o;break}case 3:if((h|0)<1)if(!h){e=1;s=96;break a}else{h=o;break b}else{c[42440]=-2;h=o;break b}default:h=o}while(0);while(1){if(e<<16>>16==8)break;if((h|0)==(f|0)){e=1;s=96;break a}e=h+-2|0;g=g+-4|0;h=e;e=b[58358+(b[e>>1]<<1)>>1]|0}g=g+4|0;c[g>>2]=0;e=1;j=3}else s=23}do if((s|0)==23){s=0;j=d[125088+h>>0]|0;e=c[g+(1-j<<2)>>2]|0;do switch(h|0){case 4:{s=26;break a}case 2:{c[42441]=HH(c[g+-4>>2]|0,2)|0;break}case 3:{c[42441]=HH(c[g+-4>>2]|0,1)|0;break}case 5:{e=JH()|0;break}case 8:{KH(c[42442]|0);break}case 9:{LH(c[g>>2]|0);break}case 18:{MH(c[g>>2]|0);break}case 19:{NH();break}case 20:{MH(c[g>>2]|0);break}case 21:{NH();break}case 22:{MH(c[g>>2]|0);break}case 23:{NH();break}case 24:{MH(c[g>>2]|0);break}case 25:{NH();break}case 26:{MH(c[g>>2]|0);break}case 27:{NH();break}case 28:{MH(c[g>>2]|0);break}case 29:{NH();break}case 30:{MH(c[g>>2]|0);break}case 31:{NH();break}case 32:{MH(c[g>>2]|0);break}case 33:{NH();break}case 34:{e=c[g+-4>>2]|0;break}case 35:{e=c[g>>2]|0;break}case 38:{e=c[42442]|0;i=c[e+4>>2]|0;if(i>>>0>=(c[e+8>>2]|0)>>>0){cm(e,1)|0;i=c[42442]|0;e=i;i=c[i+4>>2]|0}a[i>>0]=0;p=c[e>>2]|0;c[e+4>>2]=p;if(OH(p)|0){s=51;break a}c[(c[g>>2]|0)+80>>2]=c[42443];e=Pl(55016,c[4344]|0)|0;c[(c[g>>2]|0)+84>>2]=e;c[42443]=c[g>>2];c[(c[g>>2]|0)+108>>2]=c[c[42444]>>2];e=c[g>>2]|0;break}case 39:{e=c[42442]|0;i=c[e+4>>2]|0;if(i>>>0>=(c[e+8>>2]|0)>>>0){cm(e,1)|0;i=c[42442]|0;e=i;i=c[i+4>>2]|0}a[i>>0]=0;p=c[e>>2]|0;c[e+4>>2]=p;if(OH(p)|0){s=56;break a}e=c[42443]|0;c[42443]=c[e+80>>2];break}case 40:{e=c[g>>2]|0;break}case 41:{e=c[g+-4>>2]|0;break}case 42:{e=c[g+-4>>2]|0;break}case 43:{e=c[g+-4>>2]|0;break}case 44:{e=c[g+-4>>2]|0;break}case 45:{e=c[g+-4>>2]|0;break}case 48:{e=c[g>>2]|0;break}case 49:{e=c[g>>2]|0;break}case 50:{a[(c[g+-8>>2]|0)+12>>0]=1;e=c[g>>2]|0;break}case 51:{PH();break}case 52:{e=QH()|0;break}case 53:{e=c[g>>2]|0;break}case 54:{e=c[g>>2]|0;break}case 55:{e=(c[g+-8>>2]|0)+100|0;a[e>>0]=a[e>>0]|1;e=c[g>>2]|0;break}case 56:{RH(c[g+-4>>2]|0,c[g>>2]|0,1);break}case 57:{e=c[g+-12>>2]|0;break}case 58:{RH(c[g+-4>>2]|0,c[g>>2]|0,2);break}case 59:{e=c[g+-12>>2]|0;break}case 60:{RH(c[g+-4>>2]|0,c[g>>2]|0,3);break}case 61:{e=c[g+-12>>2]|0;break}case 62:{RH(c[g>>2]|0,JH()|0,2);break}case 63:{e=c[g+-8>>2]|0;break}case 64:{e=c[g+-4>>2]|0;break}case 65:{e=c[g>>2]|0;break}default:{}}while(0);i=0-j|0;p=g+(i<<2)|0;i=o+(i<<1)|0;g=p+4|0;c[p+4>>2]=e;e=(d[125260+h>>0]|0)+-41|0;p=b[i>>1]|0;h=p+(b[58590+(e<<1)>>1]|0)|0;if(h>>>0<272?(a[124428+h>>0]|0)==(p|0):0){e=a[124700+h>>0]|0;j=q;h=i;break}e=a[125330+e>>0]|0;j=q;h=i}while(0);i=k;p=e;q=j;o=h+2|0}if((s|0)==26){IH();e=1;s=96}else if((s|0)==51){$H(125158);IH();e=1;s=96}else if((s|0)==56){$H(125209);IH();e=1;s=96}else if((s|0)==95){$H(125382);e=2;s=96}if((s|0)==96)if((f|0)!=(r|0))XI(f);l=t;return e|0}function HH(b,d){b=b|0;d=d|0;var e=0;e=qw(8)|0;a[e+4>>0]=d;c[e>>2]=b;return e|0}function IH(){var a=0,b=0;a=c[42443]|0;b=c[42441]|0;if(b|0){BF(b,1);c[42441]=0}c[13767]=62;while(1){if(!a)break;b=c[a+80>>2]|0;VH(a);a=b}c[13767]=51;c[13776]=63;b=c[42446]|0;bb[c[b>>2]&31](b,0,64)|0;c[13776]=51;c[13785]=64;b=c[42447]|0;bb[c[b>>2]&31](b,0,64)|0;c[13785]=51;YH();return}function JH(){var a=0,d=0,e=0,f=0,g=0,h=0;e=c[42447]|0;f=qw(40)|0;if(Rl(c[42446]|0)|0)LH(0);a=Rl(e)|0;b[f+4>>1]=a;a:do if(!a)a=e;else{c[f>>2]=qw(a*24|0)|0;a=0;d=bb[c[e>>2]&31](e,0,128)|0;while(1){if(!d){a=e;break a}g=(c[f>>2]|0)+(a*24|0)|0;h=d+8|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];a=a+1|0;d=bb[c[e>>2]&31](e,d,8)|0}}while(0);bb[c[a>>2]&31](e,0,64)|0;return f|0}function KH(b){b=b|0;var d=0,e=0,f=0;e=qw(64)|0;f=b+4|0;d=c[f>>2]|0;if(d>>>0>=(c[b+8>>2]|0)>>>0){cm(b,1)|0;d=c[f>>2]|0}a[d>>0]=0;b=c[b>>2]|0;c[f>>2]=b;c[e+8>>2]=CL(b)|0;c[e+12>>2]=c[c[42444]>>2];f=c[42446]|0;bb[c[f>>2]&31](f,e,1)|0;return}function LH(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=qw(32)|0;j=c[42446]|0;e=Rl(j)|0;k=i+8|0;a[i+14>>0]=d;a:do if(!e){c[k>>2]=qw(56)|0;b[i+12>>1]=1;h=CL(174177)|0;k=c[k>>2]|0;c[k>>2]=h;c[k+4>>2]=c[c[42444]>>2]}else{b[i+12>>1]=e;c[k>>2]=qw(e*56|0)|0;d=0;e=Nl(j)|0;while(1){if(!e)break a;f=(c[k>>2]|0)+(d*56|0)|0;g=e+8|0;h=f+56|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));d=d+1|0;e=c[e>>2]|0}}while(0);bb[c[j>>2]&31](j,0,64)|0;k=c[42447]|0;bb[c[k>>2]&31](k,i,1)|0;return}function MH(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,i=0,j=0;j=l;l=l+32|0;g=j;i=qw(8)|0;f=c[c[42444]>>2]|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];c[g+20>>2]=c[a+20>>2];c[g+24>>2]=c[a+24>>2];c[g+28>>2]=c[a+28>>2];if(f|0){a=g+4|0;if((c[a>>2]|0)==0?(b=c[f+4>>2]|0,b|0):0)c[a>>2]=b;a=g+16|0;if(+h[a>>3]<0.0?(d=+h[f+16>>3],d>=0.0):0)h[a>>3]=d;if((c[g>>2]|0)==0?(e=c[f>>2]|0,e|0):0)c[g>>2]=e;a=c[f+24>>2]&127;if(a|0){f=g+24|0;e=c[f>>2]|0;c[f>>2]=e&127|a|e&-128}}f=c[(c[42445]|0)+144>>2]|0;c[i>>2]=bb[c[f>>2]&31](f,g,1)|0;c[i+4>>2]=c[42444];c[42444]=i;l=j;return}function NH(){var a=0,b=0;b=c[42444]|0;a=c[b+4>>2]|0;XI(b);c[42444]=a;return}function OH(b){b=b|0;var c=0;while(1){c=a[b>>0]|0;if(!(c<<24>>24)){b=0;break}if(c<<24>>24==32)b=b+1|0;else{b=1;break}}return b|0}function PH(){var b=0,d=0,e=0;e=Pl(55052,c[4344]|0)|0;b=c[42443]|0;d=qw(16)|0;c[d+8>>2]=e;if(a[b+112>>0]&2)a[d+12>>0]=1;e=c[b+84>>2]|0;bb[c[e>>2]&31](e,d,1)|0;return}function QH(){var a=0;a=c[(c[42443]|0)+84>>2]|0;return bb[c[a>>2]&31](a,0,256)|0}function RH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=qw(16)|0;f=c[42443]|0;h=c[f+84>>2]|0;h=c[(bb[c[h>>2]&31](h,0,256)|0)+8>>2]|0;c[g+8>>2]=b;bb[c[h>>2]&31](h,g,1)|0;a[b+92>>0]=e;if(a[f+112>>0]&1)a[b+100>>0]=1;c[b+88>>2]=d;return}function SH(a,b,c){a=a|0;b=b|0;c=c|0;XI(b);return}function TH(a,b,d){a=a|0;b=b|0;d=d|0;Jl(c[b+8>>2]|0)|0;XI(b);return}function UH(a,b,d){a=a|0;b=b|0;d=d|0;ZH(c[b+8>>2]|0);XI(b);return}function VH(a){a=a|0;Jl(c[a+84>>2]|0)|0;yF(a);XI(a);return}function WH(a,b,d){a=a|0;b=b|0;d=d|0;XI(c[b+8>>2]|0);XI(b);return}function XH(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d+12|0;a=b[g>>1]|0;if(a<<16>>16){h=d+8|0;e=0;f=c[h>>2]|0;while(1){if((e|0)>=(a<<16>>16|0))break;XI(c[f>>2]|0);e=e+1|0;f=f+56|0;a=b[g>>1]|0}XI(c[h>>2]|0)}XI(d);return}function YH(){var a=0,b=0;a=c[42444]|0;while(1){b=c[a+4>>2]|0;if(!b)break;XI(a);a=b}return}function ZH(b){b=b|0;var d=0;d=b+88|0;switch(a[b+92>>0]|0){case 1:{VH(c[d>>2]|0);break}case 2:{zF(c[d>>2]|0);break}default:{}}yF(b);XI(b);return}function _H(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+160|0;e=f+8|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[42444]=g;c[42443]=0;c[42441]=0;c[42445]=c[(c[(c[d+52>>2]|0)+16>>2]|0)+144>>2];c[42446]=Pl(55088,c[4344]|0)|0;c[42447]=Pl(55124,c[4344]|0)|0;bm(e,128,f+24|0);c[42442]=e;if(!(bI(a,e,d)|0)){GH()|0;c[b>>2]=cI()|0;a=c[42441]|0}else{c[b>>2]=2;a=0}Jl(c[42446]|0)|0;Jl(c[42447]|0)|0;c[42446]=0;c[42447]=0;c[42444]=0;fm(e);l=f;return a|0}function $H(b){b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;if(!(a[169792]|0)){a[169792]=1;c[d>>2]=b;c[d+4>>2]=0;Zl(1,125399,d)|0;aI()}else{l=e;return}}function aI(){Ta()}function bI(a,b,d){a=a|0;b=b|0;d=d|0;a=l;l=l+16|0;if(!(c[42449]|0)){Zl(0,125415,a)|0;c[42449]=(c[42449]|0)+1}l=a;return 1}function cI(){return 1}function dI(){return -1}function eI(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+64|0;m=u+48|0;k=u+32|0;s=4;j=WI(40)|0;c[j>>2]=0;n=u+16|0;q=u;r=c[d>>2]|0;i=c[d+4>>2]|0;s=NN(169800,1,j|0,s|0)|0;j=z;o=0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=ON(c[d>>2]|0,s|0,j|0)|0;if(!g)Ua(d|0,p|0);z=p}else g=-1;if((g|0)==1)d=z;else d=0;while(1){if(d|0){d=-1;break}o=0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];ga(26,n|0,m|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){g=ON(c[d>>2]|0,s|0,j|0)|0;if(!g)Ua(d|0,p|0);z=p}else g=-1;if((g|0)==1){d=z;continue};c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[e+8>>2]=c[n+8>>2];c[e+12>>2]=c[n+12>>2];h=e+16|0;o=0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];ga(26,q|0,m|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){g=ON(c[d>>2]|0,s|0,j|0)|0;if(!g)Ua(d|0,p|0);z=p}else g=-1;if((g|0)==1){d=z;continue};c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[h+12>>2]=c[q+12>>2];c[42489]=0;o=0;fa(93,4);d=o;o=0;if((d|0)!=0&(p|0)!=0){g=ON(c[d>>2]|0,s|0,j|0)|0;if(!g)Ua(d|0,p|0);z=p}else g=-1;if((g|0)==1){d=z;continue}g=c[42490]|0;d=c[42489]|0;c[42489]=d+1;d=g+(d<<4)|0;c[d>>2]=c[r>>2];c[d+4>>2]=c[r+4>>2];c[d+8>>2]=c[r+8>>2];c[d+12>>2]=c[r+12>>2];o=0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];d=da(1,a|0,b|0,r|0,i|0,k|0,m|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=ON(c[g>>2]|0,s|0,j|0)|0;if(!h)Ua(g|0,p|0);z=p}else h=-1;if((h|0)==1)d=z;else{t=8;break}}if((t|0)==8)if((d|0)==-1)d=-1;else{c[f+4>>2]=c[42489];c[f>>2]=c[42490];d=0}XI(s|0);l=u;return d|0}function fI(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0.0,i=0.0;d=+h[b>>3];e=b+8|0;f=+h[e>>3];i=f*f+d*d;g=+C(+i);if(i>1.0e-06){h[b>>3]=d/g;h[e>>3]=f/g};c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function gI(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+32|0;e=f+16|0;d=f;if((c[42493]|0)<(a|0)){b=c[42490]|0;if(!b){e=WI(a<<4)|0;c[42490]=e;if(!e){e=c[13918]|0;c[d>>2]=125476;c[d+4>>2]=531;c[d+8>>2]=125611;vL(e,125484,d)|0;Ua(169800,1)}}else{d=ZI(b,a<<4)|0;c[42490]=d;if(!d){d=c[13918]|0;c[e>>2]=125476;c[e+4>>2]=537;c[e+8>>2]=125629;vL(d,125484,e)|0;Ua(169800,1)}}c[42493]=a}l=f;return}function hI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0.0,V=0.0,W=0.0;R=l;l=l+336|0;J=R+320|0;I=R+304|0;w=R+144|0;q=R+128|0;G=R+112|0;H=R+96|0;Q=R+80|0;A=R+64|0;C=R+48|0;K=R+32|0;L=R+16|0;M=R;x=R+288|0;y=R+272|0;z=R+256|0;B=R+240|0;D=R+224|0;E=R+208|0;N=R+192|0;O=R+176|0;P=R+160|0;i=c[42492]|0;do if((c[42491]|0)<(e|0)){if(!i){i=WI(e*40|0)|0;c[42492]=i;if(!i){i=-1;break}}else{i=ZI(i,e*40|0)|0;c[42492]=i;if(!i){i=-1;break}}c[42491]=e;k=6}else k=6;while(0);if((k|0)==6){h[i>>3]=0.0;k=1;j=0.0;while(1){if((k|0)>=(e|0))break;n=d+(k<<4)|0;F=d+(k+-1<<4)|0;c[I>>2]=c[n>>2];c[I+4>>2]=c[n+4>>2];c[I+8>>2]=c[n+8>>2];c[I+12>>2]=c[n+12>>2];c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];c[J+12>>2]=c[F+12>>2];v=+iI(I,J)+j;h[i+(k*40|0)>>3]=v;k=k+1|0;j=v}F=e+-1|0;n=i+(F*40|0)|0;k=1;while(1){if((k|0)>=(e|0))break;S=i+(k*40|0)|0;h[S>>3]=+h[S>>3]/+h[n>>3];k=k+1|0}k=0;while(1){if((k|0)>=(e|0))break;S=i+(k*40|0)+8|0;n=i+(k*40|0)|0;v=+jI(+h[n>>3]);c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];kI(x,J,v);c[S>>2]=c[x>>2];c[S+4>>2]=c[x+4>>2];c[S+8>>2]=c[x+8>>2];c[S+12>>2]=c[x+12>>2];S=i+(k*40|0)+24|0;v=+lI(+h[n>>3]);c[J>>2]=c[g>>2];c[J+4>>2]=c[g+4>>2];c[J+8>>2]=c[g+8>>2];c[J+12>>2]=c[g+12>>2];kI(y,J,v);c[S>>2]=c[y>>2];c[S+4>>2]=c[y+4>>2];c[S+8>>2]=c[y+8>>2];c[S+12>>2]=c[y+12>>2];k=k+1|0}c[I>>2]=c[f>>2];c[I+4>>2]=c[f+4>>2];c[I+8>>2]=c[f+8>>2];c[I+12>>2]=c[f+12>>2];c[J>>2]=c[g>>2];c[J+4>>2]=c[g+4>>2];c[J+8>>2]=c[g+8>>2];c[J+12>>2]=c[g+12>>2];mI(d,e,i,I,J,G,A,H,C);c[q>>2]=c[G>>2];c[q+4>>2]=c[G+4>>2];c[q+8>>2]=c[G+8>>2];c[q+12>>2]=c[G+12>>2];c[w>>2]=c[A>>2];c[w+4>>2]=c[A+4>>2];c[w+8>>2]=c[A+8>>2];c[w+12>>2]=c[A+12>>2];c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2];c[J>>2]=c[C>>2];c[J+4>>2]=c[C+4>>2];c[J+8>>2]=c[C+8>>2];c[J+12>>2]=c[C+12>>2];if(!(nI(a,b,q,w,I,J,d,e)|0)){c[J>>2]=c[A>>2];c[J+4>>2]=c[A+4>>2];c[J+8>>2]=c[A+8>>2];c[J+12>>2]=c[A+12>>2];kI(z,J,.3333333333333333);c[I>>2]=c[G>>2];c[I+4>>2]=c[G+4>>2];c[I+8>>2]=c[G+8>>2];c[I+12>>2]=c[G+12>>2];c[J>>2]=c[z>>2];c[J+4>>2]=c[z+4>>2];c[J+8>>2]=c[z+8>>2];c[J+12>>2]=c[z+12>>2];oI(B,I,J);v=+h[B>>3];u=+h[B+8>>3];c[J>>2]=c[C>>2];c[J+4>>2]=c[C+4>>2];c[J+8>>2]=c[C+8>>2];c[J+12>>2]=c[C+12>>2];kI(D,J,.3333333333333333);c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2];c[J>>2]=c[D>>2];c[J+4>>2]=c[D+4>>2];c[J+8>>2]=c[D+8>>2];c[J+12>>2]=c[D+12>>2];pI(E,I,J);t=+h[E>>3];p=+h[E+8>>3];q=c[42492]|0;r=+h[G>>3];s=+h[H>>3];o=+h[G+8>>3];m=+h[H+8>>3];n=Q+8|0;i=-1;j=-1.0;k=1;while(1){if((k|0)>=(F|0))break;T=+h[q+(k*40|0)>>3];U=+qI(T);V=+jI(T);W=+lI(T);T=+rI(T);h[Q>>3]=V*v+r*U+W*t+s*T;h[n>>3]=W*p+V*u+o*U+m*T;S=d+(k<<4)|0;c[I>>2]=c[Q>>2];c[I+4>>2]=c[Q+4>>2];c[I+8>>2]=c[Q+8>>2];c[I+12>>2]=c[Q+12>>2];c[J>>2]=c[S>>2];c[J+4>>2]=c[S+4>>2];c[J+8>>2]=c[S+8>>2];c[J+12>>2]=c[S+12>>2];T=+iI(I,J);S=T>j;i=S?k:i;j=S?T:j;k=k+1|0}S=d+(i<<4)|0;Q=d+(i+-1<<4)|0;c[I>>2]=c[S>>2];c[I+4>>2]=c[S+4>>2];c[I+8>>2]=c[S+8>>2];c[I+12>>2]=c[S+12>>2];c[J>>2]=c[Q>>2];c[J+4>>2]=c[Q+4>>2];c[J+8>>2]=c[Q+8>>2];c[J+12>>2]=c[Q+12>>2];pI(N,I,J);c[J>>2]=c[N>>2];c[J+4>>2]=c[N+4>>2];c[J+8>>2]=c[N+8>>2];c[J+12>>2]=c[N+12>>2];fI(L,J);Q=i+1|0;N=d+(Q<<4)|0;c[I>>2]=c[N>>2];c[I+4>>2]=c[N+4>>2];c[I+8>>2]=c[N+8>>2];c[I+12>>2]=c[N+12>>2];c[J>>2]=c[S>>2];c[J+4>>2]=c[S+4>>2];c[J+8>>2]=c[S+8>>2];c[J+12>>2]=c[S+12>>2];pI(O,I,J);c[J>>2]=c[O>>2];c[J+4>>2]=c[O+4>>2];c[J+8>>2]=c[O+8>>2];c[J+12>>2]=c[O+12>>2];fI(M,J);c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[J>>2]=c[M>>2];c[J+4>>2]=c[M+4>>2];c[J+8>>2]=c[M+8>>2];c[J+12>>2]=c[M+12>>2];oI(P,I,J);c[J>>2]=c[P>>2];c[J+4>>2]=c[P+4>>2];c[J+8>>2]=c[P+8>>2];c[J+12>>2]=c[P+12>>2];fI(K,J);c[I>>2]=c[f>>2];c[I+4>>2]=c[f+4>>2];c[I+8>>2]=c[f+8>>2];c[I+12>>2]=c[f+12>>2];c[J>>2]=c[K>>2];c[J+4>>2]=c[K+4>>2];c[J+8>>2]=c[K+8>>2];c[J+12>>2]=c[K+12>>2];hI(a,b,d,Q,I,J)|0;c[I>>2]=c[K>>2];c[I+4>>2]=c[K+4>>2];c[I+8>>2]=c[K+8>>2];c[I+12>>2]=c[K+12>>2];c[J>>2]=c[g>>2];c[J+4>>2]=c[g+4>>2];c[J+8>>2]=c[g+8>>2];c[J+12>>2]=c[g+12>>2];hI(a,b,S,e-i|0,I,J)|0;i=0}else i=0}l=R;return i|0}function iI(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[b>>3]-+h[a>>3];d=+h[b+8>>3]-+h[a+8>>3];return +(+C(+(d*d+c*c)))}function jI(a){a=+a;var b=0.0;b=1.0-a;return +(b*b*(a*3.0))}function kI(a,b,d){a=a|0;b=b|0;d=+d;var e=0;h[b>>3]=+h[b>>3]*d;e=b+8|0;h[e>>3]=+h[e>>3]*d;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function lI(a){a=+a;return +(a*a*3.0*(1.0-a))}function mI(a,b,d,e,f,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0;G=l;l=l+128|0;B=G+112|0;v=G+80|0;u=G;r=G+96|0;s=G+64|0;t=G+48|0;C=G+32|0;D=G+16|0;E=a+(b+-1<<4)|0;q=0;w=0.0;x=0.0;y=0.0;z=0.0;A=0.0;while(1){if((q|0)>=(b|0))break;K=d+(q*40|0)+8|0;c[v>>2]=c[K>>2];c[v+4>>2]=c[K+4>>2];c[v+8>>2]=c[K+8>>2];c[v+12>>2]=c[K+12>>2];c[B>>2]=c[K>>2];c[B+4>>2]=c[K+4>>2];c[B+8>>2]=c[K+8>>2];c[B+12>>2]=c[K+12>>2];H=+xI(v,B)+x;J=d+(q*40|0)+24|0;c[v>>2]=c[K>>2];c[v+4>>2]=c[K+4>>2];c[v+8>>2]=c[K+8>>2];c[v+12>>2]=c[K+12>>2];c[B>>2]=c[J>>2];c[B+4>>2]=c[J+4>>2];c[B+8>>2]=c[J+8>>2];c[B+12>>2]=c[J+12>>2];p=+xI(v,B)+A;c[v>>2]=c[J>>2];c[v+4>>2]=c[J+4>>2];c[v+8>>2]=c[J+8>>2];c[v+12>>2]=c[J+12>>2];c[B>>2]=c[J>>2];c[B+4>>2]=c[J+4>>2];c[B+8>>2]=c[J+8>>2];c[B+12>>2]=c[J+12>>2];o=+xI(v,B)+y;L=a+(q<<4)|0;M=d+(q*40|0)|0;I=+yI(+h[M>>3]);c[B>>2]=c[a>>2];c[B+4>>2]=c[a+4>>2];c[B+8>>2]=c[a+8>>2];c[B+12>>2]=c[a+12>>2];kI(s,B,I);I=+zI(+h[M>>3]);c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2];kI(t,B,I);c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];c[v+12>>2]=c[s+12>>2];c[B>>2]=c[t>>2];c[B+4>>2]=c[t+4>>2];c[B+8>>2]=c[t+8>>2];c[B+12>>2]=c[t+12>>2];oI(r,v,B);c[v>>2]=c[L>>2];c[v+4>>2]=c[L+4>>2];c[v+8>>2]=c[L+8>>2];c[v+12>>2]=c[L+12>>2];c[B>>2]=c[r>>2];c[B+4>>2]=c[r+4>>2];c[B+8>>2]=c[r+8>>2];c[B+12>>2]=c[r+12>>2];pI(u,v,B);c[v>>2]=c[K>>2];c[v+4>>2]=c[K+4>>2];c[v+8>>2]=c[K+8>>2];c[v+12>>2]=c[K+12>>2];c[B>>2]=c[u>>2];c[B+4>>2]=c[u+4>>2];c[B+8>>2]=c[u+8>>2];c[B+12>>2]=c[u+12>>2];I=+xI(v,B)+w;c[v>>2]=c[J>>2];c[v+4>>2]=c[J+4>>2];c[v+8>>2]=c[J+8>>2];c[v+12>>2]=c[J+12>>2];c[B>>2]=c[u>>2];c[B+4>>2]=c[u+4>>2];c[B+8>>2]=c[u+8>>2];c[B+12>>2]=c[u+12>>2];q=q+1|0;w=I;x=H;y=o;z=+xI(v,B)+z;A=p}o=y*x-A*A;p=o>=0.0?o:-o;if(!(p>=1.0e-06?(m=(y*w-A*z)/o,n=(x*z-A*w)/o,!(p<1.0e-06|m<=0.0|n<=0.0)):0))F=6;if((F|0)==6){c[v>>2]=c[a>>2];c[v+4>>2]=c[a+4>>2];c[v+8>>2]=c[a+8>>2];c[v+12>>2]=c[a+12>>2];c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2];m=+iI(v,B)*.3333333333333333;n=m};c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[B>>2]=c[e>>2];c[B+4>>2]=c[e+4>>2];c[B+8>>2]=c[e+8>>2];c[B+12>>2]=c[e+12>>2];kI(C,B,m);c[i>>2]=c[C>>2];c[i+4>>2]=c[C+4>>2];c[i+8>>2]=c[C+8>>2];c[i+12>>2]=c[C+12>>2];c[j>>2]=c[E>>2];c[j+4>>2]=c[E+4>>2];c[j+8>>2]=c[E+8>>2];c[j+12>>2]=c[E+12>>2];c[B>>2]=c[f>>2];c[B+4>>2]=c[f+4>>2];c[B+8>>2]=c[f+8>>2];c[B+12>>2]=c[f+12>>2];kI(D,B,n);c[k>>2]=c[D>>2];c[k+4>>2]=c[D+4>>2];c[k+8>>2]=c[D+8>>2];c[k+12>>2]=c[D+12>>2];l=G;return}function nI(a,b,d,e,f,g,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0.0,E=0;C=l;l=l+64|0;B=C;z=(j|0)==2;y=+h[d>>3];u=+h[d+8>>3];v=B+8|0;w=+h[e>>3];x=B+16|0;p=+h[e+8>>3];q=B+24|0;r=+h[f>>3];s=+h[g>>3];t=B+32|0;o=+h[f+8>>3];n=+h[g+8>>3];e=B+40|0;f=B+48|0;g=B+56|0;d=1;k=4.0;m=4.0;while(1){h[B>>3]=y;h[v>>3]=u;D=m*.3333333333333333;h[x>>3]=D*w+y;h[q>>3]=D*p+u;D=k*.3333333333333333;h[t>>3]=r-D*s;h[e>>3]=o-D*n;h[f>>3]=r;h[g>>3]=o;if(d?(D=+sI(B,4),D<+sI(i,j)+-.001):0){d=0;break}if(tI(a,b,B)|0){A=5;break}if(m==0.0&k==0.0){A=9;break}E=m>.01;d=0;k=E?k*.5:0.0;m=E?m*.5:0.0}a:do if((A|0)==5){gI((c[42489]|0)+4|0);e=c[42490]|0;d=1;while(1){if((d|0)==4){d=1;break a}E=c[42489]|0;h[e+(E<<4)>>3]=+h[B+(d<<4)>>3];D=+h[B+(d<<4)+8>>3];c[42489]=E+1;h[e+(E<<4)+8>>3]=D;d=d+1|0}}else if((A|0)==9)if(z){gI((c[42489]|0)+4|0);e=c[42490]|0;d=1;while(1){if((d|0)==4){d=1;break a}E=c[42489]|0;h[e+(E<<4)>>3]=+h[B+(d<<4)>>3];D=+h[B+(d<<4)+8>>3];c[42489]=E+1;h[e+(E<<4)+8>>3]=D;d=d+1|0}}else d=0;while(0);l=C;return d|0}function oI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;h[b>>3]=+h[b>>3]+ +h[d>>3];e=b+8|0;h[e>>3]=+h[e>>3]+ +h[d+8>>3];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function pI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;h[b>>3]=+h[b>>3]-+h[d>>3];e=b+8|0;h[e>>3]=+h[e>>3]-+h[d+8>>3];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function qI(a){a=+a;a=1.0-a;return +(a*a*a)}function rI(a){a=+a;return +(a*a*a)}function sI(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,f=0.0,g=0;c=0.0;d=1;while(1){if((d|0)>=(b|0))break;g=d+-1|0;e=+h[a+(d<<4)>>3]-+h[a+(g<<4)>>3];f=+h[a+(d<<4)+8>>3]-+h[a+(g<<4)+8>>3];c=+C(+(f*f+e*e))+c;d=d+1|0}return +c}function tI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0;C=l;l=l+64|0;t=C+32|0;u=C;w=u+16|0;y=d+16|0;z=d+32|0;A=d+48|0;B=d+8|0;g=d+24|0;i=d+40|0;j=d+56|0;k=u+8|0;m=u+24|0;f=0;a:while(1){if((f|0)>=(b|0)){e=1;break}n=a+(f<<5)|0;c[u>>2]=c[n>>2];c[u+4>>2]=c[n+4>>2];c[u+8>>2]=c[n+8>>2];c[u+12>>2]=c[n+12>>2];n=a+(f<<5)+16|0;c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];n=uI(d,u,t)|0;b:do if((n|0)!=4){o=+h[u>>3];p=+h[k>>3];q=+h[w>>3];r=+h[m>>3];e=0;while(1){if((e|0)>=(n|0))break b;s=+h[t+(e<<3)>>3];if((!(s<1.0e-06|s>.999999)?(x=s*s*s,E=s*3.0,D=1.0-s,s=E*s*D,v=D*D,E=v*E,D=v*D,v=+h[y>>3]*E+ +h[d>>3]*D+ +h[z>>3]*s+ +h[A>>3]*x,x=+h[g>>3]*E+ +h[B>>3]*D+ +h[i>>3]*s+ +h[j>>3]*x,s=v-o,D=x-p,!(D*D+s*s<.001)):0)?(E=v-q,D=x-r,!(D*D+E*E<.001)):0){e=0;break a}e=e+1|0}}while(0);f=f+1|0}l=C;return e|0}function uI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+96|0;s=v+48|0;t=v+24|0;k=v;u=v+80|0;p=+h[b>>3];g=+h[b+16>>3]-p;q=+h[b+8>>3];j=+h[b+24>>3]-q;c[u>>2]=0;a:do if(!(g==0.0)){j=j/g;m=a+16|0;n=a+32|0;o=a+48|0;vI(+h[a+8>>3]-+h[a>>3]*j,+h[a+24>>3]-+h[m>>3]*j,+h[a+40>>3]-+h[n>>3]*j,+h[a+56>>3]-+h[o>>3]*j,s);h[s>>3]=j*p-q+ +h[s>>3];e=RI(s,t)|0;if((e|0)==4)b=4;else{f=s+8|0;i=s+16|0;k=s+24|0;g=1.0/g;b=0;while(1){if((b|0)>=(e|0))break;j=+h[t+(b<<3)>>3];if(j>=0.0&j<=1.0?(vI(+h[a>>3],+h[m>>3],+h[n>>3],+h[o>>3],s),q=(+h[s>>3]-p+((+h[k>>3]*j+ +h[i>>3])*j+ +h[f>>3])*j)*g,q>=0.0&q<=1.0):0)wI(j,d,u);b=b+1|0}b=c[u>>2]|0}}else{vI(+h[a>>3],+h[a+16>>3],+h[a+32>>3],+h[a+48>>3],s);h[s>>3]=+h[s>>3]-p;r=RI(s,t)|0;if(!(j==0.0)){if((r|0)==4){b=4;break}m=a+8|0;n=a+24|0;o=a+40|0;e=a+56|0;f=s+8|0;i=s+16|0;k=s+24|0;g=1.0/j;b=0;while(1){if((b|0)>=(r|0))break;j=+h[t+(b<<3)>>3];if(j>=0.0&j<=1.0?(vI(+h[m>>3],+h[n>>3],+h[o>>3],+h[e>>3],s),p=(+h[s>>3]-q+((+h[k>>3]*j+ +h[i>>3])*j+ +h[f>>3])*j)*g,p>=0.0&p<=1.0):0)wI(j,d,u);b=b+1|0}b=c[u>>2]|0;break}vI(+h[a+8>>3],+h[a+24>>3],+h[a+40>>3],+h[a+56>>3],s);h[s>>3]=+h[s>>3]-q;i=RI(s,k)|0;b=(i|0)==4;b:do if((r|0)==4){if(b){b=4;break a}else b=0;while(1){if((b|0)>=(i|0))break b;wI(+h[k+(b<<3)>>3],d,u);b=b+1|0}}else{if(b){b=0;while(1){if((b|0)>=(r|0))break b;wI(+h[t+(b<<3)>>3],d,u);b=b+1|0}}else e=0;while(1){if((e|0)>=(r|0))break b;f=t+(e<<3)|0;b=0;while(1){if((b|0)>=(i|0))break;g=+h[f>>3];if(g==+h[k+(b<<3)>>3])wI(g,d,u);b=b+1|0}e=e+1|0}}while(0);b=c[u>>2]|0}while(0);l=v;return b|0}function vI(a,b,c,d,e){a=+a;b=+b;c=+c;d=+d;e=e|0;h[e+24>>3]=d-a+(b-c)*3.0;h[e+16>>3]=(c+a)*3.0-b*6.0;h[e+8>>3]=(b-a)*3.0;h[e>>3]=a;return}function wI(a,b,d){a=+a;b=b|0;d=d|0;var e=0;if(a>=0.0&a<=1.0){e=c[d>>2]|0;h[b+(e<<3)>>3]=a;c[d>>2]=e+1}return}function xI(a,b){a=a|0;b=b|0;return +(+h[b+8>>3]*+h[a+8>>3]+ +h[b>>3]*+h[a>>3])}function yI(a){a=+a;var b=0.0;b=1.0-a;return +(b*b*(b+a*3.0))}function zI(a){a=+a;return +(a*a*((1.0-a)*3.0+a))}+function Rq(){var a=0;a=l;l=l+16|0;Zl(0,83093,a)|0;l=a;return}function Sq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=(b|0)==2;d=(c[42039]|0)+24|0;while(1){d=c[d>>2]|0;if(!d)break;e=d+4|0;f=c[e>>2]|0;if(!((g?(a[f>>0]|0)==(a[83089]|0):0)?!(uJ(f,83089)|0):0)){h=xm(c[c[42039]>>2]|0,b,f,0)|0;c[e>>2]=h;if(!h)c[e>>2]=xm(c[c[42039]>>2]|0,b,f,174177)|0;c[d>>2]=266;ap(c[42038]|0,f)|0}d=d+12|0}return}function Tq(a){a=a|0;Uq(c[a>>2]|0);c[a+4>>2]=0;c[a>>2]=0;return}function Uq(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a+12>>2]|0;switch(c[a>>2]|0){case 265:{Uq(c[a+4>>2]|0);break}case 266:case 267:{ap(c[42038]|0,c[a+8>>2]|0)|0;break}default:{}}Yn(c[42038]|0,a);a=b}return}function Vq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+1040|0;f=h;g=h+8|0;d=oJ(a)|0;d=d+2+(oJ(b)|0)|0;if(d>>>0<1025)e=g;else e=WI(d)|0;c[f>>2]=a;c[f+4>>2]=b;lL(e,83126,f)|0;d=_o(c[42038]|0,e)|0;ap(c[42038]|0,a)|0;ap(c[42038]|0,b)|0;if((e|0)!=(g|0))XI(e);l=h;return d|0}function Wq(a,b){a=a|0;b=b|0;return Qq(259,a,b)|0}function Xq(a){a=a|0;return Qq(265,a,0)|0}function Yq(a){a=a|0;return Qq(262,a,0)|0}function Zq(a){a=a|0;var b=0,d=0;b=(c[42039]|0)+24|0;while(1){b=c[b>>2]|0;if(!b)break;if((c[b>>2]|0)==266?(d=c[b+4>>2]|0,d|0):0)Bm(a,d,c[b+8>>2]|0)|0;b=b+12|0}return}function _q(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=d+4|0;a:do if((c[d>>2]|0)==262){d=c[f>>2]|0;f=bo(d)|0;while(1){if(!f)break a;$q(a,b,ho(c[c[42039]>>2]|0,f,0)|0,0,e);f=co(d,f)|0}}else while(1){f=c[f>>2]|0;if(!f)break a;d=ho(c[c[42039]>>2]|0,c[f+4>>2]|0,0)|0;$q(a,b,d,c[f+8>>2]|0,e);f=f+12|0}while(0);return}function $q(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;d=$m(c[c[42039]>>2]|0,a,d,f,1)|0;if(d|0){g=c[d>>2]&3;f=c[((g|0)==2?d:d+-48|0)+40>>2]|0;a=(f|0)==(a|0)?(c[((g|0)==3?d:d+48|0)+40>>2]|0)!=(f|0):0;ar(d,96242,a?e:b);ar(d,96251,a?b:e);Zq(d)}return}function ar(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=xm(c[c[42039]>>2]|0,2,b,0)|0;if(!e)e=xm(c[c[42039]>>2]|0,2,b,174177)|0;Bm(a,e,d)|0}return}function br(a,b,d){a=a|0;b=b|0;d=d|0;c[42007]=b;c[42038]=a;c[41987]=0;a=d|0?d:17656;c[42041]=a;ep(a,b);zq()|0;a=c[41987]|0;if(!a){Dp();a=c[41987]|0}return a|0}function cr(a,b){a=a|0;b=b|0;return br(0,a,b)|0}function dr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;i=k;d=c[b+76>>2]|0;f=c[b>>2]|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){gb[e&127](b);g=12}else g=4;do if((g|0)==4)if((c[b+40>>2]|0)==0?(h=b+36|0,(c[h>>2]|0)==0):0){if(a[f+13>>0]|0)er(b);d=b+32|0;e=c[d>>2]|0;if(!e){c[h>>2]=c[13885];g=12;break}f=YL(e,91500)|0;c[h>>2]=f;if(!f){j=c[(c[b+12>>2]|0)+16>>2]|0;h=c[d>>2]|0;d=vJ(c[(gJ()|0)>>2]|0)|0;c[i>>2]=h;c[i+4>>2]=d;hb[j&31](83132,i);d=1}else g=12}else g=12;while(0);if((g|0)==12)if(!(c[b+152>>2]&1024))d=0;else{hb[c[(c[b+12>>2]|0)+16>>2]&31](83170,j);d=1}l=k;return d|0}function er(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+112|0;e=h;g=h+4|0;d=c[b+24>>2]|0;if(!d)a[g>>0]=0;else{c[e>>2]=d+1;lL(g,83188,e)|0}e=c[b+20>>2]|0;e=e|0?e:83192;d=oJ(e)|0;i=oJ(g)|0;f=b+52|0;i=d+1+i+(oJ(c[f>>2]|0)|0)|0;d=i+11|0;if((c[42042]|0)>>>0<(i+1|0)>>>0){c[42042]=d;d=ZI(c[42043]|0,d)|0;c[42043]=d}else d=c[42043]|0;tK(d,e)|0;EL(c[42043]|0,g)|0;d=c[42043]|0;d=d+(oJ(d)|0)|0;a[d>>0]=46;a[d+1>>0]=0;d=CL(c[f>>2]|0)|0;f=c[42043]|0;while(1){e=DL(d,58)|0;if(!e)break;EL(f,e+1|0)|0;i=c[42043]|0;g=i+(oJ(i)|0)|0;a[g>>0]=46;a[g+1>>0]=0;a[e>>0]=0;f=i}EL(f,d)|0;XI(d);c[b+32>>2]=c[42043];l=h;return}function fr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h+8|0;f=h;if((b|0)!=0&(d|0)!=0){if(c[a+152>>2]&1024|0){hb[c[(c[a+12>>2]|0)+16>>2]&31](83170,f);Ma(1)}if((gr(a,b,d)|0)==(d|0))e=d;else{f=c[(c[a+12>>2]|0)+16>>2]|0;c[g>>2]=d;hb[f&31](83202,g);Ma(1)}}else e=0;l=h;return e|0}function gr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;f=c[(c[b>>2]|0)+104>>2]|0;do if(!f){j=b+40|0;h=c[j>>2]|0;if(!h){e=TL(d,1,e,c[b+36>>2]|0)|0;break}f=b+44|0;i=b+48|0;g=c[i>>2]|0;do if(((c[f>>2]|0)+-1-g|0)>>>0<e>>>0){g=e+4096+g&-4096;c[f>>2]=g;f=ZI(h,g)|0;c[j>>2]=f;if(!f){hb[c[(c[b+12>>2]|0)+16>>2]&31](83227,n);Ma(1)}else{k=f;m=c[i>>2]|0;break}}else{k=h;m=g}while(0);PN(k+m|0,d|0,e|0)|0;n=(c[i>>2]|0)+e|0;c[i>>2]=n;a[(c[j>>2]|0)+n>>0]=0}else e=bb[f&31](b,d,e)|0;while(0);l=o;return e|0}function hr(a,b){a=a|0;b=b|0;var c=0;c=oJ(b)|0;b=(fr(a,b,c)|0)==(c|0);return (b?1:-1)|0}function ir(b,c){b=b|0;c=c|0;var d=0,e=0;d=l;l=l+16|0;e=d;a[e>>0]=c;b=(fr(b,e,1)|0)==1;l=d;return (b?c:-1)|0}function jr(b){b=b|0;var d=0;d=c[b+36>>2]|0;if(((d|0)!=0?(a[b+144>>0]|0)==0:0)?(c[(c[b>>2]|0)+104>>2]|0)==0:0)b=LL(d)|0;else b=0;return b|0}function kr(a){a=a|0;var b=0,d=0;b=c[a+76>>2]|0;if(b|0?(d=c[b+4>>2]|0,d|0):0)gb[d&127](a);jr(a)|0;return}function lr(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=c[a+76>>2]|0;if(c[a+152>>2]&1024|0){hb[c[(c[a+12>>2]|0)+16>>2]&31](83254,e);Ma(1)}if((d|0)!=0?(b=c[d+8>>2]|0,(b|0)!=0):0)gb[b&127](a);else{jr(a)|0;mr(a)}l=e;return}function mr(b){b=b|0;var d=0,e=0,f=0;d=b+32|0;if((c[d>>2]|0?(e=b+36|0,f=c[e>>2]|0,(f|0)!=(c[13885]|0)):0)?(a[b+144>>0]|0)==0:0){if(f|0){HL(f)|0;c[e>>2]=0}c[d>>2]=0}return}function nr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+1056|0;f=i;h=i+24|0;g=i+8|0;c[g>>2]=d;e=HK(h,1024,b,g)|0;if((e|0)>=0){if((e|0)>1023){e=rw(e+1|0)|0;c[g>>2]=d;f=e;e=mL(e,b,g)|0}else f=h;fr(a,f,e)|0;if((f|0)!=(h|0))XI(f)}else{c[f>>2]=vJ(c[(gJ()|0)>>2]|0)|0;Zl(1,83271,f)|0}l=i;return}function or(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=pr(e,b)|0;fr(a,f,c[e>>2]|0)|0;l=d;return}function pr(b,d){b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!(d<-1.0e15))if(!(d>1.0e15)){d=d*1.0e4;f=~~((d<0.0?-.5:.5)+d);if(!f){f=123205;e=1}else{l=(f|0)<0;k=4;i=0;e=173944;f=l?0-f|0:f;while(1){if(!((f|0)!=0|(k|0)>0))break;g=(f|0)%10|0;j=(f|0)/10|0;h=e+-1|0;if((g|0)==0&i<<24>>24==0)f=0;else{a[h>>0]=g|48;f=1;e=h}if((k|0)==1)if(!(f<<24>>24))f=1;else{e=e+-1|0;a[e>>0]=46;f=1}k=k+-1|0;i=f;f=j}if(l){e=e+-1|0;a[e>>0]=45}f=e;e=173944-e|0}}else{f=83286;e=18}else{f=83285;e=19}c[b>>2]=e;return f|0}function qr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=pr(e,+h[b>>3])|0;fr(a,f,c[e>>2]|0)|0;fr(a,87582,1)|0;b=pr(e,+h[b+8>>3])|0;fr(a,b,c[e>>2]|0)|0;l=d;return}function rr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;e=0;while(1){h=b+(e<<4)|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];qr(a,f);e=e+1|0;if((e|0)>=(d|0))break;fr(a,87582,1)|0}l=g;return}function sr(a,b){a=a|0;b=b|0;var d=0;d=qw(392)|0;if(d|0){c[d>>2]=19212;c[d+16>>2]=22;c[d+32>>2]=a;c[d+36>>2]=b}return d|0}function tr(a){a=a|0;var b=0,d=0,e=0,f=0;b=qw(392)|0;d=b;e=a;f=d+40|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));f=b+60|0;e=a+60|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];f=b+80|0;e=a+80|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];return b|0}function ur(a){a=a|0;Br(a);XI(a);return}function vr(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+160|0;d=c[e>>2]|0;if(d){e=c[42044]|0;if(e){d=c[e+4>>2]|0;if(!d){d=qw(632)|0;c[(c[42044]|0)+4>>2]=d}}}else{d=qw(632)|0;c[e>>2]=d;c[a+164>>2]=d}c[42044]=d;c[d+32>>2]=b;c[d>>2]=a;return}function wr(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+160|0;d=c[e>>2]|0;if(d){e=c[42045]|0;if(e){d=c[e+4>>2]|0;if(!d){d=qw(632)|0;c[(c[42045]|0)+4>>2]=d}}}else{d=qw(632)|0;c[e>>2]=d;c[a+164>>2]=d}c[42045]=d;c[d+52>>2]=b;c[d>>2]=a;return (Er(a,3,b)|0)!=0|0}function xr(a){a=a|0;var b=0;b=c[a+160>>2]|0;c[a+164>>2]=b;return b|0}function yr(a){a=a|0;var b=0,d=0,e=0;a=a+164|0;b=c[a>>2]|0;d=c[b+4>>2]|0;if(d|0?(e=d+52|0,(c[e>>2]|0)==0):0)c[e>>2]=c[b+52>>2];c[a>>2]=d;return d|0}function zr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+8|0;f=b+10|0;if((c[e>>2]|0)>(b|0))a=c[a>>2]|0;else{c[e>>2]=f;f=tw(c[a>>2]|0,f<<2)|0;c[a>>2]=f;a=f}c[a+(b<<2)>>2]=d;return}function Ar(a){a=a|0;var b=0;b=c[a>>2]|0;if(b|0)XI(b);c[a>>2]=0;c[a+8>>2]=0;c[a+4>>2]=0;return}function Br(a){a=a|0;var b=0,d=0,e=0;d=a+160|0;b=c[d>>2]|0;while(1){if(!b)break;e=c[b+4>>2]|0;Ar(b+604|0);Ar(b+592|0);XI(c[b+584>>2]|0);XI(c[b+588>>2]|0);XI(b);b=e}c[42045]=0;c[42044]=0;c[a+192>>2]=0;c[a+164>>2]=0;c[d>>2]=0;c[a+28>>2]=0;return}function Cr(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0;n=l;l=l+128|0;k=n+64|0;m=n;iL(k,e,63)|0;i=TJ(k,58)|0;if(i|0)a[i>>0]=0;b=b+60+(d<<2)|0;while(1){d=c[b>>2]|0;if(!d){d=b;b=0;break}iL(m,c[d+4>>2]|0,63)|0;d=TJ(m,58)|0;if(d|0)a[d>>0]=0;if((uJ(k,m)|0)<1){j=9;break}b=c[b>>2]|0}while(1){if((j|0)==9){d=b;b=c[b>>2]|0}if(!b)break;iL(m,c[b+4>>2]|0,63)|0;b=TJ(m,58)|0;if(b|0)a[b>>0]=0;if(uJ(k,m)|0)break;b=c[d>>2]|0;if((c[b+8>>2]|0)<=(f|0))break;j=9}m=rw(20)|0;c[m>>2]=c[d>>2];c[d>>2]=m;c[m+4>>2]=e;c[m+8>>2]=f;c[m+12>>2]=g;c[m+16>>2]=h;l=n;return 1}function Dr(a,b){a=a|0;b=b|0;b=l;l=l+16|0;Zl(1,83359,b)|0;l=b;return 0}function Er(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+144|0;r=s;o=s+80|0;p=s+16|0;n=(d+-3|0)>>>0<2?0:d;iL(o,e,63)|0;e=TJ(o,58)|0;if(e){f=e+1|0;a[e>>0]=0;e=TJ(f,58)|0;if(!e)m=0;else{a[e>>0]=0;m=e+1|0}}else{m=0;f=0}i=(f|0)!=0;j=(m|0)==0;k=(n|0)==(d|0);h=b+60+(d<<2)|0;a:while(1){e=c[h>>2]|0;if(!e){e=0;break}iL(p,c[e+4>>2]|0,63)|0;e=TJ(p,58)|0;if(!e)e=0;else{a[e>>0]=0;e=e+1|0}do if(!(uJ(p,o)|0)){g=(e|0)!=0;if(i&g?uJ(e,f)|0:0)break;if(!j?uJ(m,c[(c[(c[h>>2]|0)+12>>2]|0)+8>>2]|0)|0:0)break;if(k|g^1){q=16;break a}if(Er(b,n,e)|0){q=16;break a}}while(0);h=c[h>>2]|0}do if((q|0)==16){e=c[h>>2]|0;if(e){f=e+16|0;if((c[f>>2]|0)==0?(Dr(0,0)|0,(c[f>>2]|0)==0):0){e=0;break}if((c[b+8>>2]|0)>0){q=c[13918]|0;o=c[e+4>>2]|0;p=c[(c[e+12>>2]|0)+8>>2]|0;c[r>>2]=c[19224+(d<<2)>>2];c[r+4>>2]=o;c[r+8>>2]=p;vL(q,83390,r)|0}}else e=0}while(0);c[b+80+(d<<2)>>2]=e;l=s;return e|0}function Fr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;do if(!e)e=0;else{if(c[4811]|0){bm(168184,0,0);c[4811]=0}h=CL(e)|0;e=TJ(h,58)|0;if(e){a[e>>0]=0;f=b+60+(d<<2)|0;e=1;g=f;while(1){b=c[g>>2]|0;if(!b)break;d=CL(c[b+4>>2]|0)|0;b=TJ(d,58)|0;if(b|0)a[b>>0]=0;if(!((a[h>>0]|0)!=0?(eK(h,d)|0)!=0:0)){e=c[42047]|0;if(e>>>0>=(c[42048]|0)>>>0){cm(168184,1)|0;e=c[42047]|0}c[42047]=e+1;a[e>>0]=32;em(168184,c[(c[g>>2]|0)+4>>2]|0)|0;e=c[42047]|0;if(e>>>0>=(c[42048]|0)>>>0){cm(168184,1)|0;e=c[42047]|0}c[42047]=e+1;a[e>>0]=58;em(168184,c[(c[(c[g>>2]|0)+12>>2]|0)+8>>2]|0)|0;e=0}XI(d);g=c[g>>2]|0}XI(h);if(e<<24>>24){g=0;i=19}}else{XI(h);g=0;f=b+60+(d<<2)|0;e=1;i=19}if((i|0)==19){while(1){b=c[f>>2]|0;if(!b)break;d=CL(c[b+4>>2]|0)|0;b=TJ(d,58)|0;if(b|0)a[b>>0]=0;if(!((g|0)!=0?(eK(g,d)|0)==0:0)){e=c[42047]|0;if(e>>>0>=(c[42048]|0)>>>0){cm(168184,1)|0;e=c[42047]|0}c[42047]=e+1;a[e>>0]=32;em(168184,d)|0;e=0}g=d;f=c[f>>2]|0;i=19}if(e<<24>>24){e=174177;break}}e=c[42047]|0;if(e>>>0>=(c[42048]|0)>>>0){cm(168184,1)|0;e=c[42047]|0}a[e>>0]=0;e=c[42046]|0;c[42047]=e}while(0);return e|0}function Gr(b){b=b|0;var d=0;if(!b)ma(95974,83407,573,83421);if(!(a[b>>0]|0))ma(95979,83407,574,83421);d=c[42050]|0;if(!d)b=0;else b=bb[c[d>>2]&31](d,b,512)|0;return b|0}function Hr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;i=k;if(!b)ma(96091,83407,589,83438);g=b+8|0;e=c[g>>2]|0;if(!e)ma(96094,83407,590,83438);if(!(a[e>>0]|0))ma(96103,83407,591,83438);h=b+20|0;f=c[h>>2]|0;do if(!f){d=MA(e)|0;if(!d){c[i>>2]=c[g>>2];Zl(0,83462,i)|0;d=0;break}i=YL(d,123632)|0;c[h>>2]=i;if(!i){c[j>>2]=vJ(c[(gJ()|0)>>2]|0)|0;c[j+4>>2]=d;Zl(0,83487,j)|0;d=0;break}d=c[42051]|0;if((d|0)>49){a[b+17>>0]=1;d=1;break}else{c[42051]=d+1;d=1;break}}else{kM(f,0,0)|0;if(!(c[h>>2]|0))ma(83508,83407,614,83438);else d=1}while(0);l=k;return d|0}function Ir(b){b=b|0;var d=0,e=0;if(a[b+17>>0]|0?(d=b+20|0,e=c[d>>2]|0,e|0):0){HL(e)|0;c[d>>2]=0}return}function Jr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0;if(!b){e=-1;d=-1}else{e=c[b+48>>2]|0;f=+(e|0);if(!e){g=+h[d>>3];f=+h[d+8>>3]}else{h[d+8>>3]=f;h[d>>3]=f;g=f}e=~~(+((c[b+40>>2]|0)*72|0)/g);d=~~(+((c[b+44>>2]|0)*72|0)/f)}c[a>>2]=e;c[a+4>>2]=d;return}function Kr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0.0;m=l;l=l+48|0;f=m+16|0;j=m;k=m+32|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){if((0==0?(g=c[42178]|0,(c[42052]|0)!=(g|0)):0)?(c[42052]=g,i=c[42050]|0,i|0):0){Jl(i)|0;c[42050]=0}n=+h[(c[(c[d+16>>2]|0)+8>>2]|0)+24>>3];n=!(n>=1.0)?96.0:n;h[j+8>>3]=n;h[j>>3]=n;d=Lr(e)|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];Jr(k,d,f);d=c[k>>2]|0;f=c[k+4>>2]|0}else{d=-1;f=-1}c[b>>2]=d;c[b+4>>2]=f;l=m;return}function Lr(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;e=f;if(!a)ma(95974,83407,638,83514);if(!(c[42050]|0))c[42050]=Pl(19248,c[4353]|0)|0;b=Gr(a)|0;a:do if(!b){b=qw(64)|0;if(!b)b=0;else{d=b+8|0;c[d>>2]=_o(0,a)|0;if(!((Hr(b)|0)<<24>>24)){Mr(b);b=0;break}if(!(c[b+20>>2]|0))ma(83508,83407,653,83514);do switch(Nr(b)|0){case 0:{a=Ky(c[d>>2]|0)|0;c[b+52>>2]=a;if(!a){c[e>>2]=c[d>>2];Zl(0,83531,e)|0;Mr(b);b=0;break a}break}case 2:{Or(b);break}case 3:{Pr(b);break}case 1:{Qr(b);break}case 4:{Rr(b);break}case 6:{Sr(b);break}case 11:{Tr(b);break}case 8:{Ur(b);break}case 5:{Vr(b);break}case 12:{Wr(b);break}default:{}}while(0);Ir(b);e=c[42050]|0;bb[c[e>>2]&31](e,b,1)|0}}else Ir(b);while(0);l=f;return b|0}function Mr(a){a=a|0;var b=0;b=c[a+8>>2]|0;if(b|0)ap(0,b)|0;XI(a);return}function Nr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+224|0;f=j+200|0;g=j;h=a+20|0;b=c[h>>2]|0;a:do if((b|0)!=0?(sN(f,1,20,b)|0)==20:0){d=0;while(1){if(d>>>0>=10){i=13;break a}if(!($K(f,c[19284+(d<<4)>>2]|0,c[19284+(d<<4)+4>>2]|0)|0))break;d=d+1|0}e=a+28|0;c[e>>2]=c[19284+(d<<4)+12>>2];b=c[19284+(d<<4)+8>>2]|0;a=a+24|0;c[a>>2]=b;switch(d|0){case 7:break;case 8:{if($K(f+8|0,83747,4)|0)break a;c[e>>2]=83752;c[a>>2]=11;b=11;break a}default:break a}while(1){if(!(cL(g,200,c[h>>2]|0)|0)){i=11;break}if(!($K(g,83742,4)|0)){i=8;break}}if((i|0)==8){c[e>>2]=86823;c[a>>2]=8;b=8;break}else if((i|0)==11){b=c[a>>2]|0;break}}else i=13;while(0);if((i|0)==13){c[a+28>>2]=83757;c[a+24>>2]=0;b=0}l=j;return b|0}function Or(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;b=f+4|0;d=f;c[a+48>>2]=0;e=a+20|0;kM(c[e>>2]|0,6,0)|0;if((ds(c[e>>2]|0,2,b)|0)<<24>>24?(ds(c[e>>2]|0,2,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}l=f;return}function Pr(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;b=f+4|0;d=f;c[a+48>>2]=0;e=a+20|0;kM(c[e>>2]|0,16,0)|0;if((Xr(c[e>>2]|0,4,b)|0)<<24>>24?(Xr(c[e>>2]|0,4,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}l=f;return}function Qr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;b=h+12|0;d=h+8|0;e=h+4|0;f=h;c[a+48>>2]=0;g=a+20|0;kM(c[g>>2]|0,16,0)|0;if((((ds(c[g>>2]|0,2,b)|0)<<24>>24?(ds(c[g>>2]|0,2,d)|0)<<24>>24:0)?(ds(c[g>>2]|0,2,e)|0)<<24>>24:0)?(ds(c[g>>2]|0,2,f)|0)<<24>>24:0){c[a+40>>2]=c[b>>2]<<16|c[d>>2];c[a+44>>2]=c[e>>2]<<16|c[f>>2]}l=h;return}function Rr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;b=m+16|0;e=m+12|0;f=m+8|0;h=m+4|0;i=m;c[a+48>>2]=0;j=a+20|0;while(1){if(!((Xr(c[j>>2]|0,1,b)|0)<<24>>24))break;d=c[b>>2]|0;if((d|0)==255)continue;if(TJ(83730,d)|0)continue;if((d|0)==192){k=6;break}g=c[j>>2]|0;if((d|0)==194){k=11;break}if(!((Xr(g,2,e)|0)<<24>>24))break;kM(c[j>>2]|0,(c[e>>2]|0)+-2|0,1)|0}if((k|0)==6){if(((Xr(c[j>>2]|0,3,i)|0)<<24>>24?(Xr(c[j>>2]|0,2,f)|0)<<24>>24:0)?(Xr(c[j>>2]|0,2,h)|0)<<24>>24:0){c[a+44>>2]=c[f>>2];c[a+40>>2]=c[h>>2]}}else if((((k|0)==11?(Xr(g,3,i)|0)<<24>>24:0)?(Xr(c[j>>2]|0,2,f)|0)<<24>>24:0)?(Xr(c[j>>2]|0,2,h)|0)<<24>>24:0){c[a+44>>2]=c[f>>2];c[a+40>>2]=c[h>>2]}l=m;return}function Sr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+1056|0;j=m;b=m+32|0;e=m+28|0;f=m+24|0;g=m+20|0;h=m+16|0;c[a+48>>2]=72;i=a+20|0;kM(c[i>>2]|0,0,0)|0;while(1){if(!(cL(b,1024,c[i>>2]|0)|0))break;d=dL(b,83715)|0;if(!d)continue;c[j>>2]=e;c[j+4>>2]=f;c[j+8>>2]=g;c[j+12>>2]=h;if((_L(d,89289,j)|0)==4){k=5;break}}if((k|0)==5){j=c[e>>2]|0;c[a+32>>2]=j;k=c[f>>2]|0;c[a+36>>2]=k;c[a+40>>2]=(c[g>>2]|0)-j;c[a+44>>2]=(c[h>>2]|0)-k}l=m;return}function Tr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;b=g+4|0;d=g;c[a+48>>2]=0;e=a+20|0;kM(c[e>>2]|0,15,0)|0;h=(xN(c[e>>2]|0)|0)==88;f=c[e>>2]|0;if(h){kM(f,24,0)|0;if((ds(c[e>>2]|0,4,b)|0)<<24>>24?(ds(c[e>>2]|0,4,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}}else{kM(f,26,0)|0;if((ds(c[e>>2]|0,2,b)|0)<<24>>24?(ds(c[e>>2]|0,2,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}}l=g;return}function Ur(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+352|0;C=F+80|0;B=F+72|0;E=F+64|0;D=F+56|0;A=F+48|0;d=F+40|0;s=F+32|0;t=F+24|0;u=F+16|0;v=F+8|0;w=F;x=F+328|0;y=F+128|0;z=F+96|0;if(!(c[42053]|0)){if(AM(168216,83600,1)|0){c[d>>2]=83600;Zl(1,83627,d)|0}c[42053]=168216}m=b+20|0;kM(c[m>>2]|0,0,0)|0;n=z+12|0;o=z+20|0;p=z+8|0;q=z+16|0;r=z+4|0;d=0;g=0;f=0;e=0;a:while(1){if(!(cL(y,200,c[m>>2]|0)|0))break;if(g<<24>>24==0|d<<24>>24==0){i=y;k=e}else break;b:while(1){j=f;c:while(1){while(1){if(mN(168216,i,4,z,0)|0){f=j;e=k;continue a}a[i+(c[n>>2]|0)>>0]=0;a[i+(c[o>>2]|0)>>0]=0;e=i+(c[p>>2]|0)|0;f=i+(c[q>>2]|0)|0;i=i+((c[r>>2]|0)+1)|0;if(!(uJ(e,95987)|0))break;if(!(uJ(e,95993)|0))break c;if(uJ(e,83674)|0)continue;c[C>>2]=t;c[C+4>>2]=u;c[C+8>>2]=v;c[C+12>>2]=w;if((_L(f,83682,C)|0)==4)break b}c[A>>2]=s;c[A+4>>2]=x;if((_L(f,83664,A)|0)!=2){c[D>>2]=s;if((_L(f,86190,D)|0)==1){e=1;f=cs(+h[s>>3],83671)|0}else{e=g;f=j}}else{e=1;f=cs(+h[s>>3],x)|0}if(!(d<<24>>24)){d=0;g=e;j=f}else{g=e;e=k;continue a}}c[E>>2]=s;c[E+4>>2]=x;if((_L(f,83664,E)|0)!=2){c[B>>2]=s;if((_L(f,86190,B)|0)==1){d=1;e=cs(+h[s>>3],83671)|0}else e=k}else{d=1;e=cs(+h[s>>3],x)|0}if(!(g<<24>>24)){g=0;f=j;k=e}else{f=j;continue a}}d=1;g=1;f=~~(+h[v>>3]+1.0-+h[t>>3])>>>0;e=~~(+h[w>>3]+1.0-+h[u>>3])>>>0}c[b+48>>2]=0;c[b+40>>2]=f;c[b+44>>2]=e;l=F;return}function Vr(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0.0;d=l;l=l+32|0;b=d;c[a+48>>2]=0;e=a+20|0;kM(c[e>>2]|0,0,0)|0;if(!(Yr(c[e>>2]|0,b)|0)){g=+h[b>>3];c[a+32>>2]=~~g;f=+h[b+8>>3];c[a+36>>2]=~~f;c[a+40>>2]=~~(+h[b+16>>3]-g);c[a+44>>2]=~~(+h[b+24>>3]-f)}l=d;return}function Wr(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;b=f+4|0;d=f;c[a+48>>2]=0;e=a+20|0;kM(c[e>>2]|0,6,0)|0;if((Xr(c[e>>2]|0,1,b)|0)<<24>>24?(Xr(c[e>>2]|0,1,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}l=f;return}function Xr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;e=0;while(1){if(e>>>0>=b>>>0){e=1;break}f=xN(a)|0;if(GL(a)|0){e=0;break}c[d>>2]=c[d>>2]<<8|f;e=e+1|0}return e|0}function Yr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+1040|0;d=h;e=h+16|0;while(1){if(!(cL(e,1024,a)|0)){a=1;break}f=dL(e,83590)|0;if(f|0){g=4;break}}if((g|0)==4){c[d+4>>2]=e;c[d>>2]=f+9;c[d+8>>2]=a;a=Zr(d,b)|0}l=h;return a|0}function Zr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+1024|0;f=g;_r(b);e=a[c[b>>2]>>0]|0;if(!(e<<24>>24))e=($r(b)|0)&255;else e=e<<24>>24;if((((e|0)==91?(c[b>>2]=(c[b>>2]|0)+1,as(b,f),(bs(f,d)|0)==0):0)?(as(b,f),(bs(f,d+8|0)|0)==0):0)?(as(b,f),(bs(f,d+16|0)|0)==0):0){as(b,f);e=(bs(f,d+24|0)|0)!=0&1}else e=1;l=g;return e|0}function _r(b){b=b|0;var d=0;d=c[b>>2]|0;while(1){d=a[d>>0]|0;if(!(d<<24>>24))d=($r(b)|0)&255;else d=d<<24>>24;if(!((d&255)<<24>>24))break;if(!(UJ(d&255)|0))break;d=(c[b>>2]|0)+1|0;c[b>>2]=d}return}function $r(b){b=b|0;var d=0;d=b+4|0;if(!(cL(c[d>>2]|0,1024,c[b+8>>2]|0)|0))b=0;else{d=c[d>>2]|0;c[b>>2]=d;b=a[d>>0]|0}return b|0}function as(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;_r(b);e=0;f=c[b>>2]|0;while(1){f=a[f>>0]|0;if(!(f<<24>>24))g=($r(b)|0)&255;else g=f<<24>>24;f=g<<24>>24;if(!f)break;if(!((f|0)==46|(f+-48|0)>>>0<10))break;a[d+e>>0]=g;e=e+1|0;f=(c[b>>2]|0)+1|0;c[b>>2]=f;if((e|0)==1023){e=1023;break}}a[d+e>>0]=0;return}function bs(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;e=l;l=l+16|0;f=e;d=+pM(a,f);if((c[f>>2]|0)==(a|0))a=1;else{h[b>>3]=d;a=0}l=e;return a|0}function cs(a,b){a=+a;b=b|0;var c=0.0;do if(!(uJ(b,83698)|0)){a=a*72.0;c=a;a=a>=0.0?.5:-.5}else{if(!(uJ(b,83701)|0)){a=a*.75;c=a;a=a>=0.0?.5:-.5;break}if(!(uJ(b,83704)|0)){a=a*12.0;c=a;a=a>=0.0?.5:-.5;break}if(uJ(b,83671)|0?uJ(b,83707)|0:0)if(!(uJ(b,83709)|0)){a=a*28.346456664;c=a;a=a>=0.0?.5:-.5;break}else{b=(uJ(b,83712)|0)==0;c=a*2.8346456663999997;return (b?~~(c+(c>=0.0?.5:-.5)):0)|0}c=a>=0.0?.5:-.5}while(0);return ~~(a+c)|0}function ds(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;e=0;while(1){if(e>>>0>=b>>>0){e=1;break}f=xN(a)|0;if(GL(a)|0){e=0;break}c[d>>2]=c[d>>2]|f<<(e<<3);e=e+1|0}return e|0}function es(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+20>>2]|0;if(a|0)HL(a)|0;if(c[b+52>>2]|0?(e=c[b+60>>2]|0,e|0):0)gb[e&127](b);XI(b);return}function fs(){var a=0;xm(0,1,86184,90471)|0;a=sr(0,1)|0;pE(a,0);return a|0}function gs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0;k=l;l=l+304|0;j=k+24|0;i=k+8|0;f=k;g=k+40|0;if((KD(b,e)|0)!=999)if((LD(b,d)|0)==-1)b=-1;else{b=c[d+16>>2]|0;e=b+16|0;if(!(a[(c[b+8>>2]|0)+81>>0]|0)){p=+h[e>>3];o=+h[b+24>>3];n=+h[b+32>>3];m=+h[b+40>>3];c[j>>2]=~~(p+(p>=0.0?.5:-.5));c[j+4>>2]=~~(o+(o>=0.0?.5:-.5));c[j+8>>2]=~~(n+(n>=0.0?.5:-.5));c[j+12>>2]=~~(m+(m>=0.0?.5:-.5));lL(g,83862,j)|0}else{m=+h[b+24>>3];n=+h[e>>3];o=+h[b+40>>3];p=+h[b+32>>3];c[i>>2]=~~(m+(m>=0.0?.5:-.5));c[i+4>>2]=~~(n+(n>=0.0?.5:-.5));c[i+8>>2]=~~(o+(o>=0.0?.5:-.5));c[i+12>>2]=~~(p+(p>=0.0?.5:-.5));lL(g,83862,i)|0}Km(d,87649,g,174177)|0;b=0}else{b=Fr(b,1,e)|0;c[f>>2]=e;c[f+4>>2]=b;Zl(1,96012,f)|0;b=-1}l=k;return b|0}function hs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=c[b+60>>2]|0;wr(a,d)|0;b=c[a+164>>2]|0;c[b+56>>2]=YC(b,c[b+52>>2]|0)|0;if((Mo(f,122277,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b+152>>2]&67108864)){am(83874,g);b=-1}else h=5;if((h|0)==5){c[b+36>>2]=e;if(!e){h=b+152|0;c[h>>2]=c[h>>2]|134217728}h=Bv(a,f)|0;_C(b);Br(a);b=h}l=i;return b|0}function is(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=c[b+60>>2]|0;wr(a,d)|0;b=c[a+164>>2]|0;c[b+56>>2]=YC(b,c[b+52>>2]|0)|0;if((Mo(f,122277,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b+152>>2]&67108864)){am(83874,g);b=-1}else h=5;if((h|0)==5){vr(a,e);h=Bv(a,f)|0;_C(b);lr(b);Br(a);b=h}l=i;return b|0}function js(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;h=m+8|0;g=m;b=c[b+60>>2]|0;wr(a,d)|0;j=c[a+164>>2]|0;c[j+56>>2]=YC(j,c[j+52>>2]|0)|0;if((Mo(b,122277,0,1)|0)!=0?(c[(c[b+16>>2]|0)+8>>2]|0)!=0:0)k=5;else if(!(c[j+152>>2]&67108864)){am(83874,g);b=-1}else k=5;do if((k|0)==5){if(e|0?(i=WI(4096)|0,c[e>>2]=i,i|0):0){g=j+40|0;c[g>>2]=i;c[j+44>>2]=4096;d=j+48|0;c[d>>2]=0;b=Bv(a,b)|0;_C(j);if(!b){c[e>>2]=c[g>>2];c[f>>2]=c[d>>2]}Br(a);break}Zl(1,83895,h)|0;b=-1}while(0);l=m;return b|0}function ks(a,b){a=a|0;b=b|0;nE(a,0,b);return}function ls(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if(!((a|0)!=0?(ts(a)|0)!=0:0))a=83951;e=oJ(a)|0;if((e|0)>=104){d=rw(e+25|0)|0;if(!d)d=0;else f=6}else f=6;if((f|0)==6){tK(d,a)|0;c[b>>2]=e}return d|0}function ms(a,b){a=a|0;b=b|0;ho(b,a,1)|0;return}function ns(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[b>>2]=d;c[b+4>>2]=d+4096;c[b+12>>2]=0;c[b+8>>2]=0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=d;c[a+12>>2]=e;c[a+16>>2]=f;return}function os(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;rs(e,b);i=e+12|0;j=e+16|0;b=0;a:while(1){k=ss(e)|0;if(!k)break;b=b+1|0;f=c[i>>2]|0;if(f|0)hb[f&31](k,d);h=Tm(a,k)|0;while(1){if(!h)continue a;g=c[h>>2]&3;f=c[((g|0)==3?h:h+48|0)+40>>2]|0;if((f|0)==(k|0))f=c[((g|0)==2?h:h+-48|0)+40>>2]|0;if(!(ab[c[j>>2]&63](f,-1)|0))rs(e,f);h=Um(a,h,k)|0}}return b|0}function ps(a){a=a|0;var b=0;a=c[(c[a>>2]|0)+12>>2]|0;while(1){if(!a)break;b=c[a+12>>2]|0;qs(a);a=b}return}function qs(a){a=a|0;XI(c[a>>2]|0);XI(a);return}function rs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;f=k;g=a+8|0;i=a+4|0;d=c[i>>2]|0;if((c[g>>2]|0)==(c[d+4>>2]|0)){d=c[d+12>>2]|0;do if(!d){e=rw(16)|0;if(!e){Zl(1,83932,f)|0;Ua(168248,1)}c[e+8>>2]=c[i>>2];c[e+12>>2]=0;d=rw(4e6)|0;c[e>>2]=d;if(!d){Zl(1,83932,j)|0;Ua(168248,1)}else{c[e+4>>2]=d+4e6;c[(c[i>>2]|0)+12>>2]=e;h=e;break}}else h=d;while(0);c[i>>2]=h;c[g>>2]=c[h>>2]}ab[c[a+16>>2]&63](b,1)|0;j=c[g>>2]|0;c[g>>2]=j+4;c[j>>2]=b;l=k;return}function ss(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+8|0;b=c[f>>2]|0;d=a+4|0;e=c[d>>2]|0;if((b|0)==(c[e>>2]|0))if((e|0)==(c[a>>2]|0))b=0;else{b=c[e+8>>2]|0;c[d>>2]=b;b=c[b+4>>2]|0;c[f>>2]=b;g=4}else g=4;if((g|0)==4){b=b+-4|0;c[f>>2]=b;b=c[b>>2]|0}return b|0}function ts(b){b=b|0;var c=0;a:while(1){c=b;b=b+1|0;c=a[c>>0]|0;switch(c<<24>>24){case 95:continue a;case 0:{b=1;break a}default:{}}if(!(cK(c&255)|0)){b=0;break}}return b|0}function us(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=0;f=bo(a)|0;while(1){if(!f)break;e=Om(b,f)|0;while(1){if(!e)break;if(ho(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,0)|0){dn(a,e,1)|0;d=d+1|0}e=Qm(b,e)|0}f=co(a,f)|0}return d|0}function vs(a){a=a|0;a=Ko(a,83956,0)|0;if(!a)ma(83961,83964,529,83973);else return c[a+8>>2]|0;return 0}function ws(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=l;l=l+4320|0;s=u+24|0;r=u+8|0;q=u;t=u+4184|0;p=u+4160|0;f=u+40|0;if(ln(b)|0){Ro(b,0,83982,-12,0);Ro(b,1,83994,16,0);o=ls(e,f,t)|0;k=xs(b)|0;m=rw((ln(k)|0)<<2)|0;ns(p,u+4144|0,u+48|0,23,22);h=bo(k)|0;n=p+16|0;i=o+(c[f>>2]|0)|0;j=c[13918]|0;e=0;while(1){if(!h)break;if(!(ab[c[n>>2]&63](h,-1)|0)){c[q>>2]=e;lL(i,84896,q)|0;v=Gp(k,o,1)|0;w=Gp(b,o,1)|0;Mo(w,83982,12,0)|0;a[(Ko(w,83982,0)|0)+8>>0]=1;f=os(k,h,v,p)|0;zs(v,w);g=As(w)|0;Bs(b,w);c[m+(e<<2)>>2]=w;po(k,v)|0;if(0){c[r>>2]=e;c[r+4>>2]=f;c[r+8>>2]=g;vL(j,84006,r)|0}e=e+1|0}h=co(k,h)|0}if(0){r=ln(b)|0;v=mn(b)|0;w=Cn(b)|0;c[s>>2]=r;c[s+4>>2]=v;c[s+8>>2]=e;c[s+12>>2]=w;vL(j,84036,s)|0}kn(k)|0;So(b,0,83982);So(b,1,83994);ps(p);f=tw(m,e<<2)|0;if((o|0)!=(t|0))XI(o)}else{f=0;e=0}c[d>>2]=e;l=u;return f|0}function xs(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;a[h>>0]=a[17652]|0;a[h+1>>0]=a[17653]|0;a[h+2>>0]=a[17654]|0;a[h+3>>0]=a[17655]|0;h=fn(84083,h,0)|0;Es(h,b);d=bo(b)|0;while(1){if(!d)break;if(!(c[(Ko(d,83994,0)|0)+12>>2]|0)){g=mo(h,Cn(d)|0,1)|0;Mo(g,83994,16,1)|0;c[(c[g+16>>2]|0)+12>>2]=d;c[(Ko(d,83994,0)|0)+12>>2]=g}d=co(b,d)|0}e=bo(b)|0;while(1){if(!e)break;f=c[(Ko(e,83994,0)|0)+12>>2]|0;d=Om(b,e)|0;while(1){if(!d)break;g=c[(Ko(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,83994,0)|0)+12>>2]|0;do if((g|0)!=(f|0))if(g>>>0>f>>>0){$m(h,f,g,0,1)|0;break}else{$m(h,g,f,0,1)|0;break}while(0);d=Qm(b,d)|0}e=co(b,e)|0}l=i;return h|0}function ys(b,d){b=b|0;d=d|0;var e=0;b=(c[b+16>>2]|0)+8|0;e=a[b>>0]|0;if((d|0)>=0)a[b>>0]=d;return e|0}function zs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=bo(a)|0;while(1){if(!e)break;f=c[(c[e+16>>2]|0)+12>>2]|0;a:do if((c[f>>2]&3|0)==1)ho(b,f,1)|0;else{d=bo(f)|0;while(1){if(!d)break a;ho(b,d,1)|0;d=co(f,d)|0}}while(0);e=co(a,e)|0}return}function As(a){a=a|0;return us(a,c[a+60>>2]|0)|0}function Bs(a,b){a=a|0;b=b|0;Cs(a,b,0);return}function Cs(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=(d|0)==0;b=Hp(b)|0;while(1){if(!b)break;if((a[(Ko(b,83982,0)|0)+8>>0]|0)==0?(f=Ds(b,c,d)|0,f|0):0){if(g)e=(SJ(Cn(b)|0,92983,7)|0)==0;else e=1;Cs(b,f,e&1)}b=Ip(b)|0}return}function Ds(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=0;g=bo(a)|0;while(1){if(!g)break;f=mo(b,Cn(g)|0,0)|0;if(f){if(!e)e=Gp(b,Cn(a)|0,1)|0;ho(e,f,1)|0}g=co(a,g)|0}if((d|0)!=0&(e|0)==0)e=Gp(b,Cn(a)|0,1)|0;if(e|0?(us(e,a)|0,Lm(a,e)|0,(SJ(Cn(e)|0,92983,7)|0)==0):0)c[(Mo(e,83956,12,0)|0)+8>>2]=a;return e|0}function Es(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l+16|0;g=h;d=Hp(b)|0;e=c[13918]|0;while(1){if(!d)break;a:do if(!(SJ(Cn(d)|0,92983,7)|0)){f=mo(a,Cn(d)|0,1)|0;Mo(f,83994,16,1)|0;c[(c[f+16>>2]|0)+12>>2]=d;b=bo(d)|0;while(1){if(!b)break a;if(c[(Ko(b,83994,0)|0)+12>>2]|0){k=Cn(b)|0;j=Cn(d)|0;i=Cn(c[(Ko(b,83994,0)|0)+12>>2]|0)|0;c[g>>2]=k;c[g+4>>2]=j;c[g+8>>2]=i;vL(e,84086,g)|0}c[(Ko(b,83994,0)|0)+12>>2]=f;b=co(d,b)|0}}else Es(a,d);while(0);d=Ip(d)|0}l=h;return}function Fs(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0;n=+h[a>>3];j=~~(n+(n>=0.0?.5:-.5));n=+h[a+8>>3];a=~~(n+(n>=0.0?.5:-.5));n=+h[b>>3];g=~~(n+(n>=0.0?.5:-.5));n=+h[b+8>>3];f=~~(n+(n>=0.0?.5:-.5));l=g-j|0;i=((l|0)>-1?l:0-l|0)<<1;l=l>>31|1;m=f-a|0;k=((m|0)>-1?m:0-m|0)<<1;m=m>>31|1;a:do if((i|0)>(k|0)){e=0-i|0;d=k-(i>>1)|0;b=j;while(1){xx(c,b,a);if((b|0)==(g|0))break a;j=(d|0)>-1;d=d+k+(j?e:0)|0;b=b+l|0;a=(j?m:0)+a|0}}else{e=0-k|0;d=j;b=i-(k>>1)|0;while(1){xx(c,d,a);if((a|0)==(f|0))break a;k=(b|0)>-1;d=(k?l:0)+d|0;b=b+i+(k?e:0)|0;a=a+m|0}}while(0);return}function Gs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;k=n;j=n+4|0;do if((a|0)<1)d=0;else{f=e+16|0;if((c[f>>2]|0)>>>0<4){d=Hs(a,b,d,e)|0;break}m=rw(a<<5)|0;d=0;while(1){if((d|0)==(a|0))break;g=c[b+(d<<2)>>2]|0;_A(g);h=m+(d<<5)|0;g=(c[g+16>>2]|0)+16|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];c[h+24>>2]=c[g+24>>2];c[h+28>>2]=c[g+28>>2];d=d+1|0}if((c[f>>2]|0)==4){h=e+28|0;a:do if(c[h>>2]&2|0){f=e+24|0;c[f>>2]=qw(a<<2)|0;d=0;while(1){if((d|0)==(a|0))break a;g=Hm(c[b+(d<<2)>>2]|0,84153)|0;if(g|0?(c[k>>2]=j,g=(_L(g,122187,k)|0)>0,i=c[j>>2]|0,g&(i|0)>-1):0)c[(c[f>>2]|0)+(d<<2)>>2]=i;d=d+1|0}}while(0);d=Is(a,m,e)|0;if(c[h>>2]&2)XI(c[e+24>>2]|0)}else d=0;XI(m)}while(0);l=n;return d|0}function Hs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0.0,K=0.0;G=l;l=l+144|0;B=G+136|0;A=G+64|0;F=G+48|0;v=G+40|0;u=G;t=G+120|0;x=G+104|0;C=G+96|0;D=c[f+20>>2]|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;a:do if((b|0)>=1){o=(D|0)==0;E=c[13918]|0;p=t+4|0;q=t+8|0;r=t+12|0;y=x+4|0;w=x+8|0;z=x+12|0;n=0;g=0;while(1){if((n|0)==(b|0))break;s=c[d+(n<<2)>>2]|0;_A(s);if(!o?(a[D+n>>0]|0)!=0:0){m=c[s+16>>2]|0;H=+h[m+16>>3];i=~~(H+(H>=0.0?.5:-.5));c[t>>2]=i;H=+h[m+24>>3];j=~~(H+(H>=0.0?.5:-.5));c[p>>2]=j;H=+h[m+32>>3];k=~~(H+(H>=0.0?.5:-.5));c[q>>2]=k;H=+h[m+40>>3];m=~~(H+(H>=0.0?.5:-.5));c[r>>2]=m;if(!g){c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=c[t+12>>2]}else{c[x>>2]=c[((c[x>>2]|0)>(i|0)?t:x)>>2];c[y>>2]=c[((c[y>>2]|0)>(j|0)?t:x)+4>>2];c[w>>2]=c[((c[w>>2]|0)<(k|0)?t:x)+8>>2];c[z>>2]=c[((c[z>>2]|0)<(m|0)?t:x)+12>>2]}g=g+1|0}if(0>2){m=Cn(s)|0;s=c[s+16>>2]|0;K=+h[s+16>>3];J=+h[s+24>>3];I=+h[s+32>>3];H=+h[s+40>>3];c[u>>2]=m;h[u+8>>3]=K;h[u+16>>3]=J;h[u+24>>3]=I;h[u+32>>3]=H;vL(E,84220,u)|0}n=n+1|0}q=rw(b<<5)|0;g=0;while(1){if((g|0)==(b|0))break;u=q+(g<<5)|0;t=(c[(c[d+(g<<2)>>2]|0)+16>>2]|0)+16|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[u+20>>2]=c[t+20>>2];c[u+24>>2]=c[t+24>>2];c[u+28>>2]=c[t+28>>2];g=g+1|0}o=f+8|0;p=Ls(b,q,c[o>>2]|0)|0;if(0){c[v>>2]=p;vL(E,84248,v)|0}if((p|0)>=1){n=(D|0)!=0;if(n){i=((c[w>>2]|0)+(c[x>>2]|0)|0)/2|0;g=((c[z>>2]|0)+(c[y>>2]|0)|0)/2|0}else{i=0;g=0}c[C+4>>2]=g;c[C>>2]=i;m=qw(b<<4)|0;k=f+16|0;g=0;while(1){if((g|0)>=(b|0))break;i=c[d+(g<<2)>>2]|0;j=m+(g<<4)|0;c[m+(g<<4)+12>>2]=g;if((c[k>>2]|0)==3){x=(c[i+16>>2]|0)+16|0;y=c[o>>2]|0;z=Cn(i)|0;c[A>>2]=c[x>>2];c[A+4>>2]=c[x+4>>2];c[A+8>>2]=c[x+8>>2];c[A+12>>2]=c[x+12>>2];c[A+16>>2]=c[x+16>>2];c[A+20>>2]=c[x+20>>2];c[A+24>>2]=c[x+24>>2];c[A+28>>2]=c[x+28>>2];c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];Ms(A,j,p,y,B,z)}else{c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];Ns(e,i,j,p,f,B)}g=g+1|0}j=qw(b<<2)|0;g=0;while(1){if((g|0)>=(b|0))break;c[j+(g<<2)>>2]=m+(g<<4);g=g+1|0}nL(j,b,4,23);k=rx()|0;g=qw(b<<3)|0;b:do if(n){i=0;while(1){if((i|0)>=(b|0)){i=0;break}if(a[D+i>>0]|0){e=c[j+(i<<2)>>2]|0;f=g+(c[e+12>>2]<<3)|0;c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];Ps(e,k,f,B)}i=i+1|0}while(1){if((i|0)>=(b|0))break b;if(!(a[D+i>>0]|0)){C=c[j+(i<<2)>>2]|0;Qs(i,C,k,g+(c[C+12>>2]<<3)|0,p,c[o>>2]|0,q)}i=i+1|0}}else{i=0;while(1){if((i|0)>=(b|0))break b;D=c[j+(i<<2)>>2]|0;Qs(i,D,k,g+(c[D+12>>2]<<3)|0,p,c[o>>2]|0,q);i=i+1|0}}while(0);XI(j);i=0;while(1){if((i|0)>=(b|0))break;XI(c[m+(i<<4)+4>>2]|0);i=i+1|0}XI(m);ux(k);XI(q);if(0>1){i=0;while(1){if((i|0)>=(b|0))break a;C=c[g+(i<<3)>>2]|0;D=c[g+(i<<3)+4>>2]|0;c[F>>2]=i;c[F+4>>2]=C;c[F+8>>2]=D;vL(E,84264,F)|0;i=i+1|0}}}else g=0}else g=0;while(0);l=G;return g|0}function Is(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+16|0;g=z;x=qw(a<<3)|0;f=c[d+4>>2]|0;y=d+28|0;e=(f|0)>0;do if(!(c[y>>2]&1))if(e){k=1;w=(a+-1+f|0)/(f|0)|0;break}else{f=~~+N(+(+C(+(+(a|0)))));k=1;w=(a+-1+f|0)/(f|0)|0;break}else if(e){k=0;w=f;f=(a+-1+f|0)/(f|0)|0;break}else{f=~~+N(+(+C(+(+(a|0)))));k=0;w=f;f=(a+-1+f|0)/(f|0)|0;break}while(0);if(0){v=c[13918]|0;c[g>>2]=k|0?84159:84169;c[g+4>>2]=w;c[g+8>>2]=f;vL(v,84182,g)|0}t=qw((f<<3)+8|0)|0;u=qw((w<<3)+8|0)|0;v=qw(a*24|0)|0;j=d+8|0;e=0;g=v;while(1){if((e|0)>=(a|0))break;p=+h[b+(e<<5)+8>>3];o=+h[b+(e<<5)+24>>3];q=+((c[j>>2]|0)>>>0);h[g>>3]=+h[b+(e<<5)+16>>3]-+h[b+(e<<5)>>3]+q;h[g+8>>3]=o-p+q;c[g+16>>2]=e;e=e+1|0;g=g+24|0}s=qw(a<<2)|0;e=0;while(1){if((e|0)>=(a|0))break;c[s+(e<<2)>>2]=v+(e*24|0);e=e+1|0}e=c[d+24>>2]|0;if(!e){if(!(c[y>>2]&64))nL(s,a,4,25)}else{c[42101]=e;nL(s,a,4,24)}r=(k|0)==0;e=0;g=0;j=0;while(1){if((j|0)>=(a|0)){i=0.0;e=0;break}k=c[s+(j<<2)>>2]|0;d=t+(g<<3)|0;q=+h[d>>3];p=+h[k>>3];h[d>>3]=q>p?q:p;d=u+(e<<3)|0;p=+h[d>>3];q=+h[k+8>>3];h[d>>3]=p>q?p:q;if(r){e=e+1|0;d=(e|0)==(w|0);e=d?0:e;g=g+(d&1)|0}else{g=g+1|0;d=(g|0)==(f|0);e=e+(d&1)|0;g=d?0:g}j=j+1|0}while(1){if((e|0)>(f|0)){i=0.0;e=w;break}d=t+(e<<3)|0;q=+h[d>>3];h[d>>3]=i;i=q+i;e=e+1|0}while(1){if((e|0)<=0)break;d=e+-1|0;q=+h[u+(d<<3)>>3];h[u+(e<<3)>>3]=i;i=q+i;e=d}h[u>>3]=i;e=0;g=0;d=0;while(1){if((d|0)>=(a|0))break;k=c[(c[s+(d<<2)>>2]|0)+16>>2]|0;i=+h[b+(k<<5)>>3];m=-i;p=+h[b+(k<<5)+8>>3];q=-p;n=+h[b+(k<<5)+16>>3];o=+h[b+(k<<5)+24>>3];j=c[y>>2]|0;do if(!(j&4))if(!(j&8)){i=(m-n+ +h[t+(g<<3)>>3]+ +h[t+(g+1<<3)>>3])*.5;break}else{i=i-n+ +h[t+(g+1<<3)>>3];break}else i=+h[t+(g<<3)>>3];while(0);c[x+(k<<3)>>2]=~~i;do if(!(j&16))if(!(j&32)){i=(q-o+ +h[u+(e<<3)>>3]+ +h[u+(e+1<<3)>>3])*.5;break}else{i=+h[u+(e+1<<3)>>3];break}else i=p-o+ +h[u+(e<<3)>>3];while(0);c[x+(k<<3)+4>>2]=~~i;if(r){e=e+1|0;k=(e|0)==(w|0);e=k?0:e;g=g+(k&1)|0}else{g=g+1|0;k=(g|0)==(f|0);e=e+(k&1)|0;g=k?0:g}d=d+1|0}XI(v);XI(s);XI(t);XI(u);l=z;return x|0}function Js(a,b){a=a|0;b=b|0;var d=0;d=c[42101]|0;a=c[d+(c[(c[a>>2]|0)+16>>2]<<2)>>2]|0;b=c[d+(c[(c[b>>2]|0)+16>>2]<<2)>>2]|0;return ((a|0)>(b|0)?1:((a|0)<(b|0))<<31>>31)|0}function Ks(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;a=c[a>>2]|0;b=c[b>>2]|0;e=+h[a>>3]+ +h[a+8>>3];d=+h[b>>3]+ +h[b+8>>3];return (e<d?1:(e>d)<<31>>31)|0}function Ls(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0;s=l;l=l+96|0;q=s+80|0;r=s+48|0;p=s+8|0;m=s;k=(a*100|0)+-1|0;e=+(d<<1|0);n=0.0;o=0.0;d=0;while(1){if((d|0)>=(a|0))break;j=+h[b+(d<<5)+16>>3]-+h[b+(d<<5)>>3]+e;i=+h[b+(d<<5)+24>>3]-+h[b+(d<<5)+8>>3]+e;n=n-j-i;o=o-i*j;d=d+1|0}i=+(k|0);j=n*n-i*4.0*o;if(!(j<0.0)){e=+C(+j);g=i*2.0;f=(e-n)/g;g=(-n-e)/g;d=~~f;d=(d|0)==0?1:d;if(0>2){m=c[13918]|0;TL(84407,27,1,m)|0;h[p>>3]=i;h[p+8>>3]=n;h[p+16>>3]=o;h[p+24>>3]=j;h[p+32>>3]=e;vL(m,84435,p)|0;c[r>>2]=d;h[r+8>>3]=f;c[r+16>>2]=~~g;h[r+24>>3]=g;vL(m,84461,r)|0;h[q>>3]=(f*i+n)*f+o;h[q+8>>3]=(g*i+n)*g+o;vL(m,84483,q)|0}}else{h[m>>3]=j;Zl(1,84380,m)|0;d=-1}l=s;return d|0}function Ms(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0;u=l;l=l+32|0;t=u+16|0;s=u;p=+h[a>>3];q=+h[a+8>>3];n=+h[a+16>>3];o=+h[a+24>>3];r=rx()|0;j=c[f>>2]|0;a=j-e|0;k=c[f+4>>2]|0;i=k-e|0;j=e-~~(p+(p>=0.0?.5:-.5))+j+~~(n+(n>=0.0?.5:-.5))|0;k=e-~~(q+(q>=0.0?.5:-.5))+k+~~(o+(o>=0.0?.5:-.5))|0;if((a|0)>-1)f=(a|0)/(d|0)|0;else f=((a+1|0)/(d|0)|0)+-1|0;if((i|0)>-1)m=(i|0)/(d|0)|0;else m=((i+1|0)/(d|0)|0)+-1|0;if((j|0)>-1)j=(j|0)/(d|0)|0;else j=((j+1|0)/(d|0)|0)+-1|0;if((k|0)>-1)i=(k|0)/(d|0)|0;else i=((k+1|0)/(d|0)|0)+-1|0;while(1){if((f|0)>(j|0))break;else a=m;while(1){if((a|0)>(i|0))break;xx(r,f,a);a=a+1|0}f=f+1|0}k=b+4|0;c[k>>2]=Bx(r)|0;j=Ax(r)|0;m=b+8|0;c[m>>2]=j;w=+(e<<1|0);v=+(d|0);i=~~+N(+((n+w-p)/v));a=~~+N(+((o+w-q)/v));c[b>>2]=a+i;a:do if(0>2){f=c[13918]|0;c[s>>2]=g;c[s+4>>2]=j;c[s+8>>2]=i;c[s+12>>2]=a;vL(f,84339,s)|0;a=0;while(1){if((a|0)>=(c[m>>2]|0))break a;g=c[k>>2]|0;s=c[g+(a<<3)+4>>2]|0;c[t>>2]=c[g+(a<<3)>>2];c[t+4>>2]=s;vL(f,84366,t)|0;a=a+1|0}}while(0);ux(r);l=u;return}function Ns(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0.0,R=0.0;P=l;l=l+128|0;F=P+112|0;E=P+104|0;O=P+16|0;M=P;H=P+64|0;I=P+56|0;z=P+40|0;A=P+96|0;y=P+88|0;v=P+24|0;w=P+80|0;x=P+72|0;K=c[f+8>>2]|0;G=c[f+12>>2]|0;C=(a|0)==0?b:a;L=rx()|0;J=b+16|0;B=c[J>>2]|0;t=+h[B+16>>3];D=(c[g>>2]|0)-~~(t+(t>=0.0?.5:-.5))|0;t=+h[B+24>>3];B=(c[g+4>>2]|0)-~~(t+(t>=0.0?.5:-.5))|0;a:do if((c[f+16>>2]|0)==1){v=rw((ln(b)|0)<<2)|0;a=0;g=bo(b)|0;while(1){if(!g)break;x=g+16|0;c[v+(a<<2)>>2]=c[(c[x>>2]|0)+112>>2];c[(c[x>>2]|0)+112>>2]=0;a=a+1|0;g=co(b,g)|0}o=D-K|0;p=B-K|0;q=D+K|0;r=B+K|0;n=1;while(1){a=c[J>>2]|0;if((n|0)>(c[a+180>>2]|0))break;m=c[(c[a+184>>2]|0)+(n<<2)>>2]|0;i=c[m+16>>2]|0;t=+h[i+16>>3];a=~~(t+(t>=0.0?.5:-.5));t=+h[i+24>>3];g=~~(t+(t>=0.0?.5:-.5));t=+h[i+32>>3];f=~~(t+(t>=0.0?.5:-.5));t=+h[i+40>>3];i=~~(t+(t>=0.0?.5:-.5));b:do if((f|0)>(a|0)&(i|0)>(g|0)){a=o+a|0;j=p+g|0;f=q+f|0;k=r+i|0;if((a|0)>-1)g=(a|0)/(e|0)|0;else g=((a+1|0)/(e|0)|0)+-1|0;if((j|0)>-1)j=(j|0)/(e|0)|0;else j=((j+1|0)/(e|0)|0)+-1|0;if((f|0)>-1)i=(f|0)/(e|0)|0;else i=((f+1|0)/(e|0)|0)+-1|0;if((k|0)>-1)f=(k|0)/(e|0)|0;else f=((k+1|0)/(e|0)|0)+-1|0;while(1){if((g|0)>(i|0))break;else a=j;while(1){if((a|0)>(f|0))break;xx(L,g,a);a=a+1|0}g=g+1|0}a=bo(m)|0;while(1){if(!a)break b;c[(c[a+16>>2]|0)+212>>2]=m;a=co(m,a)|0}}while(0);n=n+1|0}r=z+8|0;s=H+4|0;t=+(K|0);u=I+4|0;q=A+4|0;p=y+4|0;o=bo(b)|0;while(1){if(!o)break;JA(z,o);R=+h[z>>3];Q=+h[r>>3];m=D+~~(R+(R>=0.0?.5:-.5))|0;c[H>>2]=m;n=B+~~(Q+(Q>=0.0?.5:-.5))|0;c[s>>2]=n;g=o+16|0;a=c[g>>2]|0;c:do if(!(c[a+212>>2]|0)){c[I>>2]=~~((+h[a+96>>3]+ +h[a+88>>3])*.5+t);c[u>>2]=~~(+h[a+80>>3]*.5+t);c[E>>2]=c[H>>2];c[E+4>>2]=c[H+4>>2];c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];Ss(A,E,F);a=c[A>>2]|0;f=c[q>>2]|0;c[E>>2]=c[H>>2];c[E+4>>2]=c[H+4>>2];c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];Ts(y,E,F);i=c[y>>2]|0;j=c[p>>2]|0;if((a|0)>-1)g=(a|0)/(e|0)|0;else g=((a+1|0)/(e|0)|0)+-1|0;if((f|0)>-1)k=(f|0)/(e|0)|0;else k=((f+1|0)/(e|0)|0)+-1|0;if((i|0)>-1)i=(i|0)/(e|0)|0;else i=((i+1|0)/(e|0)|0)+-1|0;if((j|0)>-1)f=(j|0)/(e|0)|0;else f=((j+1|0)/(e|0)|0)+-1|0;while(1){if((g|0)>(i|0))break;else a=k;while(1){if((a|0)>(f|0))break;xx(L,g,a);a=a+1|0}g=g+1|0}if((m|0)>-1)a=(m|0)/(e|0)|0;else a=((m+1|0)/(e|0)|0)+-1|0;c[H>>2]=a;if((n|0)>-1)a=(n|0)/(e|0)|0;else a=((n+1|0)/(e|0)|0)+-1|0;c[s>>2]=a;a=Om(C,o)|0;while(1){if(!a)break c;c[F>>2]=c[H>>2];c[F+4>>2]=c[H+4>>2];Us(a,F,L,D,B,e,G);a=Qm(C,a)|0}}else{if((m|0)>-1)a=(m|0)/(e|0)|0;else a=((m+1|0)/(e|0)|0)+-1|0;c[H>>2]=a;if((n|0)>-1)a=(n|0)/(e|0)|0;else a=((n+1|0)/(e|0)|0)+-1|0;c[s>>2]=a;a=Om(C,o)|0;while(1){if(!a)break c;if((c[(c[g>>2]|0)+212>>2]|0)!=(c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)){c[F>>2]=c[H>>2];c[F+4>>2]=c[H+4>>2];Us(a,F,L,D,B,e,G)}a=Qm(C,a)|0}}while(0);o=co(b,o)|0}a=0;g=bo(b)|0;while(1){if(!g)break;c[(c[g+16>>2]|0)+112>>2]=c[v+(a<<2)>>2];a=a+1|0;g=co(b,g)|0}XI(v)}else{r=v+8|0;s=H+4|0;t=+(K|0);u=I+4|0;q=w+4|0;p=x+4|0;o=bo(b)|0;while(1){if(!o)break a;JA(v,o);Q=+h[v>>3];R=+h[r>>3];m=D+~~(Q+(Q>=0.0?.5:-.5))|0;c[H>>2]=m;n=B+~~(R+(R>=0.0?.5:-.5))|0;c[s>>2]=n;a=c[o+16>>2]|0;c[I>>2]=~~((+h[a+96>>3]+ +h[a+88>>3])*.5+t);c[u>>2]=~~(+h[a+80>>3]*.5+t);c[E>>2]=c[H>>2];c[E+4>>2]=c[H+4>>2];c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];Ss(w,E,F);a=c[w>>2]|0;f=c[q>>2]|0;c[E>>2]=c[H>>2];c[E+4>>2]=c[H+4>>2];c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];Ts(x,E,F);i=c[x>>2]|0;j=c[p>>2]|0;if((a|0)>-1)g=(a|0)/(e|0)|0;else g=((a+1|0)/(e|0)|0)+-1|0;if((f|0)>-1)k=(f|0)/(e|0)|0;else k=((f+1|0)/(e|0)|0)+-1|0;if((i|0)>-1)i=(i|0)/(e|0)|0;else i=((i+1|0)/(e|0)|0)+-1|0;if((j|0)>-1)f=(j|0)/(e|0)|0;else f=((j+1|0)/(e|0)|0)+-1|0;while(1){if((g|0)>(i|0))break;else a=k;while(1){if((a|0)>(f|0))break;xx(L,g,a);a=a+1|0}g=g+1|0}if((m|0)>-1)a=(m|0)/(e|0)|0;else a=((m+1|0)/(e|0)|0)+-1|0;c[H>>2]=a;if((n|0)>-1)a=(n|0)/(e|0)|0;else a=((n+1|0)/(e|0)|0)+-1|0;c[s>>2]=a;a=Om(C,o)|0;while(1){if(!a)break;c[F>>2]=c[H>>2];c[F+4>>2]=c[H+4>>2];Us(a,F,L,D,B,e,G);a=Qm(C,a)|0}o=co(b,o)|0}}while(0);i=d+4|0;c[i>>2]=Bx(L)|0;j=d+8|0;c[j>>2]=Ax(L)|0;g=c[J>>2]|0;Q=+(K<<1|0);R=+(e|0);a=~~+N(+((+h[g+32>>3]+Q-+h[g+16>>3])/R));g=~~+N(+((+h[g+40>>3]+Q-+h[g+24>>3])/R));c[d>>2]=g+a;d:do if(0>2){f=c[13918]|0;d=Cn(b)|0;b=c[j>>2]|0;c[M>>2]=d;c[M+4>>2]=b;c[M+8>>2]=a;c[M+12>>2]=g;vL(f,84339,M)|0;a=0;while(1){if((a|0)>=(c[j>>2]|0))break d;b=c[i>>2]|0;M=c[b+(a<<3)+4>>2]|0;c[O>>2]=c[b+(a<<3)>>2];c[O+4>>2]=M;vL(f,84366,O)|0;a=a+1|0}}while(0);ux(L);l=P;return}function Os(a,b){a=a|0;b=b|0;return (c[c[b>>2]>>2]|0)-(c[c[a>>2]>>2]|0)|0}function Ps(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+32|0;h=j+16|0;i=j;k=c[a+4>>2]|0;g=c[a+8>>2]|0;c[d>>2]=0-(c[e>>2]|0);f=d+4|0;c[f>>2]=0-(c[e+4>>2]|0);a=0;e=k;while(1){if((a|0)>=(g|0))break;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];vx(b,h);a=a+1|0;e=e+8|0}if(0>1){k=c[13918]|0;b=c[d>>2]|0;d=c[f>>2]|0;c[i>>2]=g;c[i+4>>2]=b;c[i+8>>2]=d;vL(k,84313,i)|0}l=j;return}function Qs(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;k=c[b+12>>2]|0;l=+h[i+(k<<5)>>3];m=+h[i+(k<<5)+8>>3];n=+h[i+(k<<5)+16>>3];o=+h[i+(k<<5)+24>>3];if(!((a|0)==0?(q=+(g<<1|0),p=+(f|0),(Rs((~~+N(+((q-l+n)/p))|0)/-2|0,(~~+N(+((q-m+o)/p))|0)/-2|0,b,d,e,f,i)|0)!=0):0))j=3;a:do if((j|0)==3?(Rs(0,0,b,d,e,f,i)|0)==0:0)if((~~+N(+(n-l))|0)<(~~+N(+(o-m))|0)){k=1;while(1){j=0-k|0;a=0;while(1){if((a|0)<=(j|0)){g=j;break}if(Rs(j,a,b,d,e,f,i)|0)break a;a=a+-1|0}while(1){if((g|0)>=(k|0))break;if(Rs(g,a,b,d,e,f,i)|0)break a;g=g+1|0}while(1){if((a|0)>=(k|0))break;if(Rs(g,a,b,d,e,f,i)|0)break a;a=a+1|0}while(1){if((g|0)<=(j|0))break;if(Rs(g,a,b,d,e,f,i)|0)break a;g=g+-1|0}while(1){if((a|0)<=0)break;if(!(Rs(g,a,b,d,e,f,i)|0))a=a+-1|0;else break a}k=k+1|0}}else{k=1;while(1){j=0-k|0;a=0;while(1){if((a|0)>=(k|0)){g=j;break}if(Rs(a,j,b,d,e,f,i)|0)break a;a=a+1|0}while(1){if((g|0)>=(k|0))break;if(Rs(a,g,b,d,e,f,i)|0)break a;g=g+1|0}while(1){if((a|0)<=(j|0))break;if(Rs(a,g,b,d,e,f,i)|0)break a;a=a+-1|0}while(1){if((g|0)<=(j|0))break;if(Rs(a,g,b,d,e,f,i)|0)break a;g=g+-1|0}while(1){if((a|0)>=0)break;if(!(Rs(a,g,b,d,e,f,i)|0))a=a+1|0;else break a}k=k+1|0}}while(0);return}function Rs(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0;t=l;l=l+48|0;r=t+32|0;s=t+8|0;q=t;m=d+4|0;o=c[d+8>>2]|0;p=q+4|0;j=c[m>>2]|0;k=0;while(1){if((k|0)>=(o|0)){n=5;break}v=j;u=c[v+4>>2]|0;c[q>>2]=(c[v>>2]|0)+a;c[p>>2]=u+b;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];if(yx(e,r)|0){j=0;break}j=j+8|0;k=k+1|0}if((n|0)==5){d=c[d+12>>2]|0;x=+h[i+(d<<5)>>3];w=+h[i+(d<<5)+8>>3];c[f>>2]=(O(g,a)|0)-~~(x+(x>=0.0?.5:-.5));d=f+4|0;c[d>>2]=(O(g,b)|0)-~~(w+(w>=0.0?.5:-.5));j=c[m>>2]|0;k=0;while(1){if((k|0)>=(o|0))break;u=j;v=c[u+4>>2]|0;c[q>>2]=(c[u>>2]|0)+a;c[p>>2]=v+b;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];vx(e,r);j=j+8|0;k=k+1|0}if(0>1){j=c[13918]|0;u=c[f>>2]|0;v=c[d>>2]|0;c[s>>2]=o;c[s+4>>2]=a;c[s+8>>2]=b;c[s+12>>2]=u;c[s+16>>2]=v;vL(j,84279,s)|0;j=1}else j=1}l=t;return j|0}function Ss(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[b+4>>2]|0)-(c[d+4>>2]|0)|0;c[a>>2]=(c[b>>2]|0)-(c[d>>2]|0);c[a+4>>2]=e;return}function Ts(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[d+4>>2]|0)+(c[b+4>>2]|0)|0;c[a>>2]=(c[d>>2]|0)+(c[b>>2]|0);c[a+4>>2]=e;return}function Us(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+112|0;x=A+96|0;w=A+80|0;r=A+48|0;s=A+32|0;y=A+16|0;z=A;n=A+64|0;h[y>>3]=+(c[b>>2]|0);t=y+8|0;h[t>>3]=+(c[b+4>>2]|0);a:do if((i|0)!=0?(u=a+16|0,m=c[(c[u>>2]|0)+8>>2]|0,(m|0)!=0):0){q=+(e|0);p=+(f|0);o=1.0/+(g|0);n=z+8|0;i=0;while(1){if((i|0)>=(c[m+4>>2]|0))break a;f=c[m>>2]|0;a=c[f+(i*48|0)>>2]|0;b=c[f+(i*48|0)+4>>2]|0;g=c[f+(i*48|0)+8>>2]|0;e=c[f+(i*48|0)+12>>2]|0;m=f+(i*48|0)+16|0;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[r+8>>2]=c[m+8>>2];c[r+12>>2]=c[m+12>>2];f=f+(i*48|0)+32|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];if(!g){c[y>>2]=c[a>>2];c[y+4>>2]=c[a+4>>2];c[y+8>>2]=c[a+8>>2];c[y+12>>2]=c[a+12>>2];m=a+16|0;c[z>>2]=c[m>>2];c[z+4>>2]=c[m+4>>2];c[z+8>>2]=c[m+8>>2];c[z+12>>2]=c[m+12>>2];m=2}else{c[y>>2]=c[r>>2];c[y+4>>2]=c[r+4>>2];c[y+8>>2]=c[r+8>>2];c[y+12>>2]=c[r+12>>2];c[z>>2]=c[a>>2];c[z+4>>2]=c[a+4>>2];c[z+8>>2]=c[a+8>>2];c[z+12>>2]=c[a+12>>2];m=1}j=+h[y>>3]+q;h[y>>3]=j;k=+h[t>>3]+p;h[t>>3]=k;if(!(j>=0.0))j=(j+1.0)*o+-1.0;else j=j*o;h[y>>3]=j;if(!(k>=0.0))j=(k+1.0)*o+-1.0;else j=k*o;h[t>>3]=j;j=+h[z>>3]+q;h[z>>3]=j;k=+h[n>>3]+p;h[n>>3]=k;if(!(j>=0.0))j=(j+1.0)*o+-1.0;else j=j*o;h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)*o+-1.0;else j=k*o;h[n>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];Fs(w,x,d);while(1){if((m|0)>=(b|0))break;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];g=a+(m<<4)|0;c[z>>2]=c[g>>2];c[z+4>>2]=c[g+4>>2];c[z+8>>2]=c[g+8>>2];c[z+12>>2]=c[g+12>>2];j=+h[z>>3]+q;h[z>>3]=j;k=+h[n>>3]+p;h[n>>3]=k;if(!(j>=0.0))j=(j+1.0)*o+-1.0;else j=j*o;h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)*o+-1.0;else j=k*o;h[n>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];Fs(w,x,d);m=m+1|0}if(e|0){c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];c[z>>2]=c[s>>2];c[z+4>>2]=c[s+4>>2];c[z+8>>2]=c[s+8>>2];c[z+12>>2]=c[s+12>>2];j=+h[z>>3]+q;h[z>>3]=j;k=+h[n>>3]+p;h[n>>3]=k;if(!(j>=0.0))j=(j+1.0)*o+-1.0;else j=j*o;h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)*o+-1.0;else j=k*o;h[n>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];Fs(w,x,d)}i=i+1|0;m=c[(c[u>>2]|0)+8>>2]|0}}else v=4;while(0);if((v|0)==4){JA(n,c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0);c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];c[z+8>>2]=c[n+8>>2];c[z+12>>2]=c[n+12>>2];j=+h[z>>3]+ +(e|0);h[z>>3]=j;m=z+8|0;k=+h[m>>3]+ +(f|0);h[m>>3]=k;if(!(j>=0.0))j=(j+1.0)/+(g|0)+-1.0;else j=j/+(g|0);h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)/+(g|0)+-1.0;else j=k/+(g|0);h[m>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];Fs(w,x,d)}l=A;return}function Vs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0;a:do if((a|0)<1)f=0-a|0;else{s=(e|0)==0;q=(f|0)==0;j=0;while(1){if((j|0)==(a|0)){f=0;break a}r=c[b+(j<<2)>>2]|0;g=s?r:e;k=c[d+(j<<3)>>2]|0;l=c[d+(j<<3)+4>>2]|0;m=+(k|0);n=m*.013888888888888888;o=+(l|0);p=o*.013888888888888888;i=bo(r)|0;while(1){if(!i)break;f=c[i+16>>2]|0;t=c[f+132>>2]|0;h[t>>3]=+h[t>>3]+n;t=t+8|0;h[t>>3]=+h[t>>3]+p;t=f+16|0;h[t>>3]=+h[t>>3]+m;t=f+24|0;h[t>>3]=+h[t>>3]+o;f=c[f+108>>2]|0;if(f|0){t=f+56|0;h[t>>3]=+h[t>>3]+m;t=f+64|0;h[t>>3]=+h[t>>3]+o}b:do if(!q){f=Om(g,i)|0;while(1){if(!f)break b;Ws(f,k,l);f=Qm(g,f)|0}}while(0);i=co(r,i)|0}Xs(r,k,l);j=j+1|0}}while(0);return f|0}function Ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0,l=0.0,m=0,n=0;e=c[a+16>>2]|0;a=c[e+96>>2]|0;if(a|0){m=a+56|0;h[m>>3]=+h[m>>3]+ +(b|0);m=a+64|0;h[m>>3]=+h[m>>3]+ +(d|0)}a=c[e+108>>2]|0;if(a|0){m=a+56|0;h[m>>3]=+h[m>>3]+ +(b|0);m=a+64|0;h[m>>3]=+h[m>>3]+ +(d|0)}a=c[e+100>>2]|0;if(a|0){m=a+56|0;h[m>>3]=+h[m>>3]+ +(b|0);m=a+64|0;h[m>>3]=+h[m>>3]+ +(d|0)}a=c[e+104>>2]|0;if(a|0){m=a+56|0;h[m>>3]=+h[m>>3]+ +(b|0);m=a+64|0;h[m>>3]=+h[m>>3]+ +(d|0)}m=c[e+8>>2]|0;a:do if(m|0){l=+(b|0);j=+(d|0);b=c[m+4>>2]|0;a=0;while(1){if((a|0)>=(b|0))break a;k=c[m>>2]|0;d=c[k+(a*48|0)>>2]|0;f=c[k+(a*48|0)+4>>2]|0;g=c[k+(a*48|0)+8>>2]|0;i=c[k+(a*48|0)+12>>2]|0;e=0;while(1){if((e|0)>=(f|0))break;n=d+(e<<4)|0;h[n>>3]=+h[n>>3]+l;n=d+(e<<4)+8|0;h[n>>3]=+h[n>>3]+j;e=e+1|0}if(g|0){n=k+(a*48|0)+16|0;h[n>>3]=+h[n>>3]+l;n=k+(a*48|0)+24|0;h[n>>3]=+h[n>>3]+j}if(i|0){n=k+(a*48|0)+32|0;h[n>>3]=+h[n>>3]+l;n=k+(a*48|0)+40|0;h[n>>3]=+h[n>>3]+j}a=a+1|0}}while(0);return}function Xs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0;j=b+16|0;b=c[j>>2]|0;o=b+16|0;m=b+24|0;f=b+32|0;b=b+40|0;g=+(d|0);l=+h[f>>3]+g;i=+(e|0);n=+h[m>>3]+i;k=+h[b>>3]+i;h[o>>3]=+h[o>>3]+g;h[m>>3]=n;h[f>>3]=l;h[b>>3]=k;b=c[j>>2]|0;f=c[b+12>>2]|0;if((f|0)!=0?(a[f+81>>0]|0)!=0:0){o=f+56|0;h[o>>3]=+h[o>>3]+g;f=f+64|0;h[f>>3]=+h[f>>3]+i;f=1}else f=1;while(1){if((f|0)>(c[b+180>>2]|0))break;Xs(c[(c[b+184>>2]|0)+(f<<2)>>2]|0,d,e);f=f+1|0;b=c[j>>2]|0}return}function Ys(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=Gs(a,b,d,e)|0;if(!f)a=1;else{a=Vs(a,b,f,d,c[e+12>>2]|0)|0;XI(f)}return a|0}function Zs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;p=l;l=l+32|0;o=p;n=Ys(a,b,d,e)|0;if(!n){_A(d);m=(c[d+16>>2]|0)+16|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];c[o+16>>2]=c[m+16>>2];c[o+20>>2]=c[m+20>>2];c[o+24>>2]=c[m+24>>2];c[o+28>>2]=c[m+28>>2];f=o+8|0;g=o+16|0;i=o+24|0;e=0;while(1){if((e|0)>=(a|0))break;k=c[(c[b+(e<<2)>>2]|0)+16>>2]|0;j=c[k+180>>2]|0;k=k+184|0;d=1;while(1){if((d|0)>(j|0))break;r=(c[(c[(c[k>>2]|0)+(d<<2)>>2]|0)+16>>2]|0)+16|0;h[o>>3]=+h[(+h[o>>3]<+h[r>>3]?o:r)>>3];r=c[(c[(c[k>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;q=r+16|0;h[f>>3]=+h[(+h[f>>3]<+h[r+24>>3]?o:q)+8>>3];h[g>>3]=+h[(+h[g>>3]>+h[r+32>>3]?o:q)+16>>3];h[i>>3]=+h[(+h[i>>3]>+h[r+40>>3]?o:q)+24>>3];d=d+1|0}e=e+1|0}c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];c[m+16>>2]=c[o+16>>2];c[m+20>>2]=c[o+20>>2];c[m+24>>2]=c[o+24>>2];c[m+28>>2]=c[o+28>>2]}l=p;return n|0}function _s(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=l;l=l+16|0;f=g;if(!e)ma(84497,84503,1400,84510);d=$s(a,d,d)|0;c[e+8>>2]=d;if(0){h=c[13918]|0;c[f>>2]=d;vL(h,84522,f)|0}c[e+12>>2]=0;c[e+20>>2]=0;at(a,b,e)|0;l=g;return c[e+16>>2]|0}function $s(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;f=i+4|0;g=Hm(b,84652)|0;a:do if(g){c[h>>2]=f;h=(_L(g,122187,h)|0)==1;b=c[f>>2]|0;if(h&(b|0)>-1)d=b;else{switch(a[g>>0]|0){case 84:case 116:break;default:break a}d=e}}while(0);l=i;return d|0}function at(a,b,c){a=a|0;b=b|0;c=c|0;return bt(Hm(a,84535)|0,b,c)|0}function bt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=l;l=l+64|0;r=u+40|0;q=u+32|0;t=u+24|0;s=u+16|0;m=u+8|0;k=u;i=u+48|0;j=u+44|0;if(!e)ma(84497,84503,1292,84544);o=e+28|0;c[o>>2]=0;p=e+16|0;c[p>>2]=d;n=e+4|0;c[n>>2]=0;c[e+24>>2]=0;a:do if(b|0?(f=a[b>>0]|0,f<<24>>24):0)switch(f<<24>>24|0){case 97:if(!(SJ(b,84562,5)|0)){c[p>>2]=4;m=ct(b+5|0,e)|0;c[k>>2]=j;m=(_L(m,122187,k)|0)>0;d=c[j>>2]|0;if(!(m&(d|0)>0))break a;c[n>>2]=d;break a}else{if(SJ(b,84568,6)|0)break a;c[p>>2]=5;c[m>>2]=i;m=(_L(b+5|0,84575,m)|0)>0;v=+g[i>>2];g[e>>2]=m&v>0.0?v:1.0;break a}case 99:{if(f<<24>>24!=99)break a;if(uJ(b,92983)|0)break a;c[p>>2]=1;break a}case 103:{if(f<<24>>24!=103)break a;if(uJ(b,96286)|0)break a;c[p>>2]=3;break a}case 110:{if(f<<24>>24!=110)break a;if(uJ(b,96273)|0)break a;c[p>>2]=2;break a}default:break a}while(0);if(0){d=c[13918]|0;TL(84578,11,1,d)|0;c[s>>2]=dt(c[p>>2]|0)|0;vL(d,84590,s)|0;if((c[p>>2]|0)==5){h[t>>3]=+g[e>>2];vL(d,84603,t)|0}c[q>>2]=c[n>>2];vL(d,84616,q)|0;c[r>>2]=c[o>>2];vL(d,84629,r)|0}l=u;return c[p>>2]|0}function ct(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;a:do if((a[b>>0]|0)==95){f=d+28|0;e=1;while(1){b=b+1|0;b:while(1){if(!e)break a;d=a[b>>0]|0;if(!(d<<24>>24))break a;switch(d<<24>>24|0){case 99:{g=10;break b}case 105:{g=9;break b}case 117:{g=11;break b}case 116:{g=12;break b}case 98:{d=32;break b}case 108:{g=7;break b}case 114:{g=8;break b}default:e=0}}if((g|0)==7){g=0;d=4}else if((g|0)==8){g=0;d=8}else if((g|0)==9){g=0;d=64}else if((g|0)==10){g=0;d=1}else if((g|0)==11){g=0;d=2}else if((g|0)==12){g=0;d=16}c[f>>2]=c[f>>2]|d}}while(0);return b|0}function dt(a){a=a|0;switch(a|0){case 1:{a=92983;break}case 2:{a=96273;break}case 3:{a=96286;break}case 4:{a=84562;break}case 5:{a=84568;break}default:a=84642}return a|0}function et(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+96|0;k=n;m=n+80|0;do if(a){if(!e){e=YI(1,20)|0;c[e+4>>2]=d>>>0>80?d:80}d=c[e>>2]|0;j=c[e+4>>2]|0;if(!d){h=100;d=a;i=YI(100,j)|0}else{h=d+100|0;i=ZI(c[e+8>>2]|0,O(h,j)|0)|0;RN(i+(O(j,d)|0)|0,0,j*100|0)|0;d=a}while(1){d=ft(k,d,b,m)|0;if(!d)break;a=c[e>>2]|0;f=h<<1;g=O(h,j)|0;if((a|0)==(h|0)){i=ZI(i,O(f,j)|0)|0;RN(i+g|0,0,g|0)|0;a=c[e>>2]|0}else f=h;a=i+(O(a,j)|0)|0;g=k;h=a+80|0;do{c[a>>2]=c[g>>2];a=a+4|0;g=g+4|0}while((a|0)<(h|0));c[e>>2]=(c[e>>2]|0)+1;h=f}if(c[m>>2]|0){m=e+16|0;c[m>>2]=c[m>>2]|1}d=c[e>>2]|0;if(!d){XI(i);XI(e);e=0;break}else{c[e+8>>2]=ZI(i,O(d,j)|0)|0;break}}while(0);l=n;return e|0}function ft(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+80|0;h=j+64|0;i=j;c[f>>2]=0;do{g=a[d>>0]|0;d=d+1|0}while((UJ(g)|0)!=0);a:do switch(g|0){case 69:{c[b>>2]=0;d=gt(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e>>2];break}case 101:{c[b>>2]=1;d=gt(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e>>2];break}case 80:{c[b>>2]=2;d=ht(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+4>>2];break}case 112:{c[b>>2]=3;d=ht(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+4>>2];break}case 98:{c[b>>2]=4;d=ht(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+8>>2];break}case 66:{c[b>>2]=5;d=ht(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+8>>2];break}case 99:{d=it(d,h)|0;if(!d){c[f>>2]=1;d=0;break a}g=jt(c[h>>2]|0,i)|0;c[h>>2]=g;if(!g){c[f>>2]=1;d=0;break a}if(!(c[i>>2]|0)){c[b>>2]=9;c[b+8>>2]=c[i+8>>2];if(!e)break a;c[b+72>>2]=c[e+24>>2];break a}else{c[b>>2]=14;f=b+8|0;g=i;h=f+64|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if(!e)break a;c[b+72>>2]=c[e+40>>2];break a}}case 67:{d=it(d,h)|0;if(!d){c[f>>2]=1;d=0;break a}g=jt(c[h>>2]|0,i)|0;c[h>>2]=g;if(!g){c[f>>2]=1;d=0;break a}if(!(c[i>>2]|0)){c[b>>2]=8;c[b+8>>2]=c[i+8>>2];if(!e)break a;c[b+72>>2]=c[e+20>>2];break a}else{c[b>>2]=13;f=b+8|0;g=i;h=f+64|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if(!e)break a;c[b+72>>2]=c[e+40>>2];break a}}case 76:{c[b>>2]=6;d=ht(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+12>>2];break}case 84:{c[b>>2]=7;d=kt(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=kt(d,b+16|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=lt(d,b+24|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=kt(d,b+32|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=it(d,b+40|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+16>>2];break}case 70:{c[b>>2]=10;d=kt(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=it(d,b+16|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+28>>2];break}case 83:{c[b>>2]=11;d=it(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+32>>2];break}case 73:{c[b>>2]=12;d=gt(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=it(d,b+40|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+36>>2];break}case 116:{c[b>>2]=15;d=mt(d,b+8|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(e)c[b+72>>2]=c[e+44>>2];break}case 0:{d=0;break}default:{c[f>>2]=1;d=0}}while(0);l=j;return d|0}function gt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0;i=l;l=l+16|0;e=i;h[b>>3]=+pM(a,e);f=c[e>>2]|0;if(((f|0)!=(a|0)?(h[b+8>>3]=+pM(f,e),g=c[e>>2]|0,(f|0)!=(g|0)):0)?(h[b+16>>3]=+pM(g,e),d=c[e>>2]|0,(g|0)!=(d|0)):0){h[b+24>>3]=+pM(d,e);a=c[e>>2]|0;a=(d|0)==(a|0)?0:a}else a=0;l=i;return a|0}function ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+4|0;g=k;a=nt(a,j)|0;do if(a){d=c[j>>2]|0;i=YI(d,24)|0;c[b>>2]=d;e=i;f=0;while(1){if((f|0)>=(d|0)){d=9;break}h[e>>3]=+pM(a,g);d=c[g>>2]|0;if((a|0)==(d|0)){d=5;break}h[e+8>>3]=+pM(d,g);a=c[g>>2]|0;if((d|0)==(a|0)){d=7;break}h[e+16>>3]=0.0;e=e+24|0;d=c[b>>2]|0;f=f+1|0}if((d|0)==5){c[j>>2]=f;XI(i);a=0;break}else if((d|0)==7){c[j>>2]=f;XI(i);a=0;break}else if((d|0)==9){c[j>>2]=f;c[b+4>>2]=i;break}}else a=0;while(0);l=k;return a|0}function it(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;b=nt(b,i)|0;f=c[i>>2]|0;do if(!((b|0)==0|(f|0)<1)){while(1){h=a[b>>0]|0;e=h<<24>>24==0;if(e^h<<24>>24!=45)b=b+1|0;else break}if(!e){h=YI(f+1|0,1)|0;g=h;e=f;while(1){b=b+1|0;if((e|0)<=0){e=9;break}e=a[b>>0]|0;if(!(e<<24>>24)){e=8;break}a[g>>0]=e;e=(c[i>>2]|0)+-1|0;c[i>>2]=e;g=g+1|0}if((e|0)==8){XI(h);b=0;break}else if((e|0)==9){a[g>>0]=0;c[d>>2]=h;break}}else b=0}else b=0;while(0);l=j;return b|0}function jt(b,d){b=b|0;d=d|0;var e=0;e=a[b>>0]|0;switch(e|0){case 91:{b=ot(b+1|0,d)|0;break}case 40:{b=pt(b+1|0,d)|0;break}case 47:case 35:{c[d>>2]=0;c[d+8>>2]=b;break}default:if(!(cK(e)|0))b=0;else{c[d>>2]=0;c[d+8>>2]=b}}return b|0}function kt(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0;f=l;l=l+16|0;d=f;e=+pM(a,d);d=c[d>>2]|0;if((d|0)==(a|0))d=0;else h[b>>3]=e;l=f;return d|0}function lt(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=nt(a,e)|0;e=c[e>>2]|0;c[b>>2]=(e|0)<0?0:e|0?2:1;l=d;return a|0}function mt(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[b>>2]=VJ(a,e,10)|0;b=c[e>>2]|0;l=d;return ((b|0)==(a|0)?0:b)|0}function nt(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[b>>2]=xL(a,e,10)|0;b=c[e>>2]|0;l=d;return ((b|0)==(a|0)?0:b)|0}function ot(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;m=o;c[b>>2]=1;n=b+8|0;i=kt(a,n)|0;do if(((((i|0)!=0?(j=kt(i,b+16|0)|0,(j|0)!=0):0)?(e=kt(j,b+24|0)|0,(e|0)!=0):0)?(f=kt(e,b+32|0)|0,(f|0)!=0):0)?(k=b+40|0,d=nt(f,k)|0,(d|0)!=0):0){b=c[k>>2]|0;f=YI(b,8)|0;e=0;while(1){if((e|0)>=(b|0)){d=13;break}d=kt(d,m)|0;if(!d){d=9;break}g[f+(e<<3)>>2]=+h[m>>3];d=it(d,f+(e<<3)+4|0)|0;if(!d){d=12;break}e=e+1|0;b=c[k>>2]|0}if((d|0)==9){XI(f);a=0;break}else if((d|0)==12){XI(f);a=0;break}else if((d|0)==13){c[n+36>>2]=f;break}}else a=0;while(0);l=o;return a|0}function pt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;n=p;c[b>>2]=2;k=kt(a,b+8|0)|0;do if(((((((k|0)!=0?(m=kt(k,b+16|0)|0,(m|0)!=0):0)?(e=kt(m,b+24|0)|0,(e|0)!=0):0)?(f=kt(e,b+32|0)|0,(f|0)!=0):0)?(i=kt(f,b+40|0)|0,(i|0)!=0):0)?(j=kt(i,b+48|0)|0,(j|0)!=0):0)?(o=b+56|0,d=nt(j,o)|0,(d|0)!=0):0){e=c[o>>2]|0;i=YI(e,8)|0;f=0;while(1){if((f|0)>=(e|0)){d=15;break}d=kt(d,n)|0;if(!d){d=11;break}g[i+(f<<3)>>2]=+h[n>>3];d=it(d,i+(f<<3)+4|0)|0;if(!d){d=14;break}f=f+1|0;e=c[o>>2]|0}if((d|0)==11){XI(i);a=0;break}else if((d|0)==14){XI(i);a=0;break}else if((d|0)==15){c[b+60>>2]=i;break}}else a=0;while(0);l=p;return a|0}function qt(a,b,c){a=a|0;b=b|0;c=c|0;return et(a,b,c,0)|0}function rt(a){a=a|0;return qt(a,0,0)|0}function st(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=c[a+12>>2]|0;if(a|0){f=c[a+8>>2]|0;g=a+4|0;h=(e|0)==0;b=0;while(1){if((b|0)>=(c[a>>2]|0))break;d=f+(O(c[g>>2]|0,b)|0)|0;if(!h)gb[e&127](d);tt(d);b=b+1|0}XI(f);XI(a)}return}function tt(a){a=a|0;switch(c[a>>2]|0){case 3:case 2:{XI(c[a+8+4>>2]|0);break}case 5:case 4:{XI(c[a+8+4>>2]|0);break}case 6:{XI(c[a+8+4>>2]|0);break}case 7:{XI(c[a+40>>2]|0);break}case 9:case 8:{XI(c[a+8>>2]|0);break}case 14:case 13:{ut(a+8|0);break}case 10:{XI(c[a+16>>2]|0);break}case 11:{XI(c[a+8>>2]|0);break}case 12:{XI(c[a+40>>2]|0);break}default:{}}return}function ut(a){a=a|0;var b=0,d=0,e=0;switch(c[a>>2]|0){case 1:{e=a+40|0;b=a+8+36|0;a=0;while(1){d=c[b>>2]|0;if((a|0)>=(c[e>>2]|0))break;XI(c[d+(a<<3)+4>>2]|0);a=a+1|0}XI(d);break}case 2:{e=a+56|0;d=a+60|0;a=0;while(1){b=c[d>>2]|0;if((a|0)>=(c[e>>2]|0))break;XI(c[b+(a<<3)+4>>2]|0);a=a+1|0}XI(b);break}default:{}}return}function vt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;k=o+4|0;n=o;c[d>>2]=0;c[e>>2]=(pn(qo(b)|0)|0)!=0&1;f=c[42227]|0;a:do if(f|0?(h=Im(b,f)|0,i=a[h>>0]|0,i<<24>>24):0){f=19444;while(1){g=c[f>>2]|0;if(!g)break a;if(i<<24>>24==(a[g>>0]|0)?(uJ(h,g)|0)==0:0)break;f=f+12|0}c[d>>2]=c[f+4>>2];c[e>>2]=c[f+8>>2]}while(0);f=c[42238]|0;if((f|0?(c[e>>2]|0)==1:0)?(j=Im(b,f)|0,a[j>>0]|0):0)wt(j,e);f=c[42239]|0;if((f|0?(c[d>>2]|0)==1:0)?(m=Im(b,f)|0,a[m>>0]|0):0)wt(m,d);if(a[(c[b+16>>2]|0)+153>>0]|0){j=b+-48|0;i=qo(c[((c[b>>2]&3|0)==2?b:j)+40>>2]|0)|0;m=c[b>>2]&3;vt($m(i,c[((m|0)==2?b:j)+40>>2]|0,c[((m|0)==3?b:b+48|0)+40>>2]|0,0,0)|0,k,n);c[e>>2]=c[k>>2]|c[e>>2];c[d>>2]=c[n>>2]|c[d>>2]}l=o;return}function wt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;m=o;k=o+4|0;j=0;e=0;a:while(1){c[d>>2]=e;g=(j|0)<4;h=(j|0)==3;i=(j|0)==0;while(1){if(!(g&(a[b>>0]|0)!=0))break a;c[k>>2]=0;f=xt(b,k)|0;e=c[k>>2]|0;if(!e){n=5;break a}b=(e|0)==8;if(!(h&b)){if(!(i&b))break;if(a[f>>0]|0)break}c[k>>2]=0;b=f}e=c[d>>2]|e<<(j<<3);j=j+1|0;b=f}if((n|0)==5){c[m>>2]=b;Zl(0,84657,m)|0}l=o;return}function xt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;c[e>>2]=0;d=yt(a,19504,e)|0;if((d|0)==(a|0)){while(1){d=yt(a,19520,e)|0;if((a|0)==(d|0))break;else a=d}d=yt(a,19568,e)|0}a=c[e>>2]|0;if((a|0)!=0&(a&15|0)==0){a=a|1;c[e>>2]=a}c[b>>2]=c[b>>2]|a;l=f;return d|0}function yt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;while(1){e=c[b>>2]|0;if(!e)break;f=oJ(e)|0;if(!(SJ(a,e,f)|0)){g=4;break}b=b+8|0}if((g|0)==4){c[d>>2]=c[d>>2]|c[b+4>>2];a=a+f|0}return a|0}function zt(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,i=0;g=0;d=0.0;while(1){if((g|0)==4)break;f=b>>(g<<3)&15;e=1336;while(1){if(!(c[e+16>>2]|0))break;if((f|0)==(c[e>>2]|0)){i=6;break}e=e+24|0}if((i|0)==6){i=0;d=+h[e+8>>3]+d}g=g+1|0}return +(d*10.0*+zA(a,c[42231]|0,1.0,0.0))}function At(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0.0,m=0,n=0.0,o=0,p=0;p=l;l=l+96|0;m=p+80|0;o=p;k=f>4.0?f*.0875:.35;i=+h[d+8>>3];n=i*k;j=+h[d>>3];k=j*k;e=+h[b>>3];j=e+j;h[m>>3]=j;f=+h[b+8>>3];i=i+f;h[m+8>>3]=i;d=o+64|0;if(!(g&32)){c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];m=o+32|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];f=i;e=j}else{c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];b=o+32|0;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];c[b+12>>2]=c[m+12>>2]}h[o+16>>3]=e+n;h[o+24>>3]=f-k;h[o+48>>3]=e-n;h[o+56>>3]=f+k;do if(!(g&64))if(!(g&128)){CD(a,o+16|0,3,g>>>4&1^1);break}else{CD(a,o+32|0,3,g>>>4&1^1);break}else CD(a,o,3,g>>>4&1^1);while(0);l=p;return}function Bt(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0;x=l;l=l+160|0;n=x+144|0;w=x;q=e*4.0;y=(g&32|0)==0;q=!(q<f)|y?.45:f/q*.45;s=!(f>1.0)|y?0.0:(f+-1.0)*.05/e;u=+h[d+8>>3];r=-u;v=q*r;t=+h[d>>3];q=t*q;r=s*r;s=t*s;p=+h[b>>3];e=p+t;h[n>>3]=e;o=+h[b+8>>3];f=u+o;h[n+8>>3]=f;t=t*.5+p;u=u*.5+o;d=w+128|0;if(y){c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];y=w+64|0;c[y>>2]=c[b>>2];c[y+4>>2]=c[b+4>>2];c[y+8>>2]=c[b+8>>2];c[y+12>>2]=c[b+12>>2];i=o;j=p;k=o;m=p;f=o;e=p}else{c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[w>>2]=c[b>>2];c[w+4>>2]=c[b+4>>2];c[w+8>>2]=c[b+8>>2];c[w+12>>2]=c[b+12>>2];y=w+64|0;c[y>>2]=c[n>>2];c[y+4>>2]=c[n+4>>2];c[y+8>>2]=c[n+8>>2];c[y+12>>2]=c[n+12>>2];i=f+s;j=e+r;k=f-s;m=e-r}h[w+16>>3]=e-v;h[w+24>>3]=f-q;h[w+32>>3]=t-r;h[w+40>>3]=u-s;h[w+48>>3]=m;h[w+56>>3]=k;h[w+80>>3]=j;h[w+88>>3]=i;h[w+96>>3]=t+r;h[w+104>>3]=u+s;h[w+112>>3]=e+v;h[w+120>>3]=f+q;do if(!(g&64))if(!(g&128)){CD(a,w,9,1);break}else{CD(a,w+48|0,6,1);break}else CD(a,w,6,1);while(0);l=x;return}function Ct(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;q=l;l=l+64|0;p=q;t=+h[d+8>>3];s=+h[d>>3];k=+h[b>>3];e=k+s;m=+h[b+8>>3];f=m+t;i=k+s*.2;j=m+t*.2;k=k+s*.6;m=m+t*.6;h[p>>3]=i-t;h[p+8>>3]=j+s;n=p+16|0;h[n>>3]=i+t;o=p+24|0;h[o>>3]=j-s;h[p+32>>3]=k+t;h[p+40>>3]=m-s;h[p+48>>3]=k-t;h[p+56>>3]=m+s;if(!(g&64)){if(g&128|0){d=2;g=1;r=3}}else{d=3;g=0;r=3}if((r|0)==3){h[p+(g<<4)>>3]=i;h[p+(g<<4)+8>>3]=j;h[p+(d<<4)>>3]=k;h[p+(d<<4)+8>>3]=m}CD(a,p,4,1);c[p>>2]=c[b>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];h[n>>3]=e;h[o>>3]=f;FD(a,p,2);l=q;return}function Dt(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0;o=l;l=l+64|0;n=o;j=+h[d+8>>3];r=j*-.4;i=+h[d>>3];q=i*.4;t=+h[b>>3];e=t+i*.8;s=+h[b+8>>3];f=s+j*.8;i=t+i;j=s+j;h[n>>3]=t+r;k=n+8|0;h[k>>3]=s+q;d=n+16|0;h[d>>3]=t-r;m=n+24|0;h[m>>3]=s-q;h[n+32>>3]=e-r;h[n+40>>3]=f-q;h[n+48>>3]=e+r;h[n+56>>3]=f+q;if(!(g&64)){if(g&128|0){c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];d=2;p=5}}else{c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];d=3;p=5}if((p|0)==5){h[n+(d<<4)>>3]=e;h[n+(d<<4)+8>>3]=f}CD(a,n,4,g>>>4&1^1);h[n>>3]=e;h[k>>3]=f;h[n+16>>3]=i;h[m>>3]=j;FD(a,n,2);l=o;return}function Et(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;j=l;l=l+80|0;i=j;n=+h[d+8>>3];k=n*-.3333333333333333;p=+h[d>>3];f=p*.3333333333333333;q=+h[b>>3];m=q+p*.5;o=+h[b+8>>3];e=o+n*.5;d=i+64|0;h[i+64>>3]=q+p;h[i+72>>3]=o+n;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];h[i+16>>3]=m+k;h[i+24>>3]=e+f;d=i+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];h[i+48>>3]=m-k;h[i+56>>3]=e-f;do if(!(g&64)){d=g>>>4&1^1;if(!(g&128)){CD(a,i,4,d);break}else{CD(a,i,3,d);break}}else CD(a,d,3,g>>>4&1^1);while(0);l=j;return}function Ft(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;var g=0,i=0,j=0.0,k=0.0,m=0.0;g=l;l=l+32|0;i=g;k=+h[c>>3];e=+h[c+8>>3];d=+C(+(e*e+k*k))*.5;m=+h[b>>3];k=k*.5;h[i>>3]=m+k-d;j=+h[b+8>>3];e=e*.5;h[i+8>>3]=j-d+e;h[i+16>>3]=m+d+k;h[i+24>>3]=j+d+e;BD(a,i,2,f>>>4&1^1);l=g;return}function Gt(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0;t=l;l=l+112|0;q=t+48|0;r=t+16|0;s=t;n=f>4.0?f*.125:.5;p=+h[b>>3];o=+h[d>>3];i=+h[b+8>>3];m=+h[d+8>>3];e=m*n;f=o*n;c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];h[r+16>>3]=o+p;h[r+24>>3]=m+i;h[q>>3]=n*(o-m)+p;j=n*(m+o);k=j+i;h[q+8>>3]=k;h[q+48>>3]=j+p;i=n*(m-o)+i;h[q+56>>3]=i;o=e*-.95;m=o+f+p;n=f*1.3333333333333333;if(!(g&32)){e=e*1.3333333333333333;j=f*-.33333333333333326;i=i-e;f=k-e;e=m-n}else{e=e*1.3333333333333333;j=f*2.333333333333333;i=i+e;f=k+e;e=m+n}h[q+16>>3]=e;h[q+24>>3]=f;h[q+32>>3]=j-o+p;h[q+40>>3]=i;FD(a,r,2);if(!(g&64)){if(g&128|0)KA(s,q,3,.5,q,0)}else KA(s,q,3,.5,0,q);ED(a,q,4,0,0,0);l=t;return}function Ht(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0;g=l;l=l+32|0;i=g;e=+h[d>>3]+ +h[b>>3];f=+h[d+8>>3]+ +h[b+8>>3];c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];h[i+16>>3]=e;h[i+24>>3]=f;FD(a,i,2);l=g;return}function It(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;n=l;l=l+80|0;j=n+72|0;k=n+8|0;m=n;i=+zt(a,g);i=i*i;h[m>>3]=i;c[f+12>>2]=g;g=f+32|0;a=e+3|0;f=b+(a<<4)|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];if((e|0)>(d|0)?(o=+h[b+(e<<4)>>3]-+h[f>>3],p=+h[b+(e<<4)+8>>3]-+h[b+(a<<4)+8>>3],p*p+o*o<i):0)e=e+-3|0;s=k+48|0;r=b+(e<<4)|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];q=k+32|0;a=b+(e+1<<4)|0;c[q>>2]=c[a>>2];c[q+4>>2]=c[a+4>>2];c[q+8>>2]=c[a+8>>2];c[q+12>>2]=c[a+12>>2];f=k+16|0;d=b+(e+2<<4)|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];c[j>>2]=k;c[j+4>>2]=m;Az(j,26,k,1);c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];c[a>>2]=c[q>>2];c[a+4>>2]=c[q+4>>2];c[a+8>>2]=c[q+8>>2];c[a+12>>2]=c[q+12>>2];c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];m=b+(e+3<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];l=n;return e|0}function Jt(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[a>>2]|0;d=+h[b>>3]-+h[f>>3];e=+h[b+8>>3]-+h[f+8>>3];return e*e+d*d<=+h[c[a+4>>2]>>3]|0}function Kt(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0;o=l;l=l+80|0;k=o+72|0;m=o+8|0;n=o;j=+zt(a,g);j=j*j;h[n>>3]=j;c[f+8>>2]=g;f=f+16|0;a=b+(d<<4)|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];if(!((e|0)>(d|0)?(i=d+3|0,p=+h[a>>3]-+h[b+(i<<4)>>3],q=+h[b+(d<<4)+8>>3]-+h[b+(i<<4)+8>>3],q*q+p*p<j):0))i=d;e=b+(i+3<<4)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];g=m+16|0;d=b+(i+2<<4)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];r=m+32|0;a=b+(i+1<<4)|0;c[r>>2]=c[a>>2];c[r+4>>2]=c[a+4>>2];c[r+8>>2]=c[a+8>>2];c[r+12>>2]=c[a+12>>2];s=m+48|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];c[k>>2]=s;c[k+4>>2]=n;Az(k,26,m,0);n=b+(i<<4)|0;c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];c[n+8>>2]=c[s+8>>2];c[n+12>>2]=c[s+12>>2];c[a>>2]=c[r>>2];c[a+4>>2]=c[r+4>>2];c[a+8>>2]=c[r+8>>2];c[a+12>>2]=c[r+12>>2];c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[e+8>>2]=c[m+8>>2];c[e+12>>2]=c[m+12>>2];l=o;return i|0}function Lt(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0,v=0,w=0;u=(g|0)!=0;l=(i|0)!=0;if(!((e|0)==(d|0)&(u&l))){if(l){j=+zt(a,i);k=+h[b+(e<<4)>>3];p=+h[b+(e<<4)+8>>3];l=e+3|0;r=b+(l<<4)|0;n=+h[r>>3];l=b+(l<<4)+8|0;o=+h[l>>3];t=k-n;s=p-o;t=+C(+(s*s+t*t))*.9;j=j>=t?t:j;if(p==o){m=(k<n?-j:j)+n;j=p}else{m=k;j=(p<o?-j:j)+o}w=e+1|0;h[b+(w<<4)>>3]=k;h[b+(w<<4)+8>>3]=p;e=b+(e+2<<4)|0;h[r>>3]=m;h[l>>3]=j;c[e>>2]=c[r>>2];c[e+4>>2]=c[r+4>>2];c[e+8>>2]=c[r+8>>2];c[e+12>>2]=c[r+12>>2];c[f+12>>2]=i;h[f+32>>3]=n;h[f+40>>3]=o}if(u){m=+zt(a,g);l=b+(d<<4)|0;k=+h[l>>3];j=+h[b+(d<<4)+8>>3];w=d+3|0;o=+h[b+(w<<4)>>3];p=+h[b+(w<<4)+8>>3];t=k-o;s=j-p;t=+C(+(s*s+t*t))*.9;m=m>=t?t:m;if(j==p){n=(k<o?m:-m)+k;m=j}else{n=k;m=(j<p?m:-m)+j}w=d+1|0;v=b+(w<<4)|0;h[v>>3]=n;h[b+(w<<4)+8>>3]=m;c[l>>2]=c[v>>2];c[l+4>>2]=c[v+4>>2];c[l+8>>2]=c[v+8>>2];c[l+12>>2]=c[v+12>>2];v=d+2|0;h[b+(v<<4)>>3]=o;h[b+(v<<4)+8>>3]=p;v=16}}else{r=b+(e<<4)|0;s=+h[r>>3];t=+h[b+(e<<4)+8>>3];l=e+3|0;u=b+(l<<4)|0;k=+h[u>>3];l=b+(l<<4)+8|0;j=+h[l>>3];m=+zt(a,g);q=+zt(a,i);n=s-k;p=t-j;n=+C(+(p*p+n*n));w=!(q+m>=n);n=n*.3333333333333333;m=w?m:n;n=w?q:n;if(t==j){w=s<k;p=(w?-n:n)+k;q=(w?m:-m)+s;o=t;m=t}else{w=t<j;p=s;q=s;o=(w?m:-m)+t;m=(w?-n:n)+j}w=e+1|0;v=b+(w<<4)|0;h[v>>3]=q;h[b+(w<<4)+8>>3]=o;c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];c[r+12>>2]=c[v+12>>2];v=b+(e+2<<4)|0;h[u>>3]=p;h[l>>3]=m;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];c[f+12>>2]=i;h[f+32>>3]=s;h[f+40>>3]=t;v=16}if((v|0)==16){c[f+8>>2]=g;h[f+16>>3]=k;h[f+24>>3]=j}return}function Mt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;n=+h[b>>3];k=+h[c>>3]-n;o=+h[b+8>>3];l=+h[c+8>>3]-o;j=d*10.0/(+C(+(k*k+l*l))+.0001);k=j*((k>=0.0?.0001:-.0001)+k);j=((l>=0.0?.0001:-.0001)+l)*j;l=k*.5;m=j*.5;i=n-m;f=o-l;n=m+n;l=o+l;o=i+k;m=f+j;k=n+k;j=l+j;g=o>k?o:k;g=n>g?n:g;d=m>j?m:j;d=l>d?l:d;k=o<k?o:k;k=n<k?n:k;j=m<j?m:j;j=l<j?l:j;h[a>>3]=i<k?i:k;h[a+8>>3]=f<j?f:j;h[a+16>>3]=i>g?i:g;h[a+24>>3]=f>d?f:d;return}function Nt(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=+g;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0;q=l;l=l+48|0;m=q+32|0;k=q+16|0;p=q;n=(c[a+16>>2]|0)+12|0;o=c[n>>2]|0;c[n>>2]=b;AD(a,c[(c[a>>2]|0)+336>>2]|0);JD(a,g);t=+h[e>>3]-+h[d>>3];b=e+8|0;s=+h[b>>3]-+h[d+8>>3];r=10.0/(+C(+(t*t+s*s))+.0001);h[e>>3]=r*((t>=0.0?.0001:-.0001)+t);h[b>>3]=((s>=0.0?.0001:-.0001)+s)*r;b=0;while(1){if((b|0)>=4)break;j=i>>(b<<3)&255;if(!j)break;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];Ot(p,a,k,m,f,g,j);c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];b=b+1|0}c[n>>2]=o;l=q;return}function Ot(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=+g;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+32|0;m=q+16|0;k=q;n=i&15;j=1336;while(1){o=c[j>>2]|0;if(!o)break;if((n|0)==(o|0)){p=4;break}j=j+24|0}if((p|0)==4){r=+h[j+8>>3]*f;h[e>>3]=r*+h[e>>3];o=e+8|0;h[o>>3]=r*+h[o>>3];p=c[j+16>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];jb[p&15](b,k,m,f,g,i);h[d>>3]=+h[e>>3]+ +h[d>>3];p=d+8|0;h[p>>3]=+h[o>>3]+ +h[p>>3]};c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];l=q;return}function Pt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i+8|0;f=i;d=Hm(b,84759)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else{d=Hm(b,84771)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else d=0}if((h|0)==5){d=qt(e,0,120)|0;if(!d){c[f>>2]=Cn(b)|0;Zl(0,84778,f)|0;c[g>>2]=e;Zl(3,84831,g)|0}}l=i;return d|0}function Qt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+16|0;f=qw(304)|0;if(!f)Zl(1,84839,g)|0;e=a+16|0;a=c[e>>2]|0;c[f>>2]=a;c[e>>2]=f;if(!a){c[f+144>>2]=3;c[f+148>>2]=0;h[f+152>>3]=1.0}else{b=f+16|0;d=a+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=f+56|0;d=a+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));c[f+144>>2]=c[a+144>>2];c[f+148>>2]=c[a+148>>2];h[f+152>>3]=+h[a+152>>3];c[f+136>>2]=c[a+136>>2];b=f+96|0;d=a+96|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0))}l=g;return f|0}function Rt(a){a=a|0;var b=0;a=a+16|0;b=c[a>>2]|0;if(!b)ma(84865,84869,117,84876);else{XI(c[b+212>>2]|0);XI(c[b+208>>2]|0);XI(c[b+216>>2]|0);XI(c[b+220>>2]|0);XI(c[b+224>>2]|0);XI(c[b+228>>2]|0);XI(c[b+232>>2]|0);XI(c[b+236>>2]|0);XI(c[b+240>>2]|0);XI(c[b+244>>2]|0);XI(c[b+248>>2]|0);XI(c[b+252>>2]|0);XI(c[b+256>>2]|0);XI(c[b+272>>2]|0);XI(c[b+284>>2]|0);XI(c[b+280>>2]|0);c[a>>2]=c[b>>2];XI(b);return}}function St(d,e,f,g,h,i,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;l=c[d+16>>2]|0;k=c[d+152>>2]|0;if((e|0)!=0&(k&32768|0)!=0)c[l+192>>2]=e;if(((k&65536|0)!=0?(c[l+212>>2]=lw(i,j)|0,(f|0)!=0):0)?(a[f>>0]|0)!=0:0){c[l+208>>2]=lw(f,j)|0;d=1}else d=0;do if(k&4194304){if(g|0?a[g>>0]|0:0){c[l+228>>2]=lw(g,j)|0;d=l+260|0;b[d>>1]=b[d>>1]|1;d=1;break}e=c[l+192>>2]|0;if(e){c[l+228>>2]=CL(e)|0;d=1}}while(0);if((h|0)!=0&(k&8388608|0)!=0?(a[h>>0]|0)!=0:0){c[l+244>>2]=lw(h,j)|0;d=1}return d|0}function Tt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+80|0;i=j;h=j+8|0;g=c[(c[b>>2]|0)+168>>2]|0;f=c[(c[(c[g+16>>2]|0)+8>>2]|0)+92>>2]|0;Ut(b,e);b=Hm(d,86743)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0){em(e,b)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){cm(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}else{if((g|0)!=(d|0)&(f|0)!=0){em(e,f)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){cm(e,1)|0;b=c[f>>2]|0}c[f>>2]=b+1;a[b>>0]=95}switch(Bo(d)|0){case 0:{f=(g|0)==(d|0)?96286:84890;b=(c[d>>2]|0)>>>4;break}case 1:{f=96273;b=(c[d>>2]|0)>>>4;break}case 2:{f=96237;b=(c[d>>2]|0)>>>4;break}default:{f=0;b=0}}em(e,f)|0;c[i>>2]=b;lL(h,84896,i)|0;em(e,h)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){cm(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}l=j;return b|0}function Ut(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+144|0;h=i;g=i+8|0;e=c[b+160>>2]|0;if((e|0)>1?c[b+152>>2]&64|0:0){em(d,c[(c[(c[b>>2]|0)+308>>2]|0)+(e<<2)>>2]|0)|0;f=d+4|0;e=c[f>>2]|0;if(e>>>0>=(c[d+8>>2]|0)>>>0){cm(d,1)|0;e=c[f>>2]|0}c[f>>2]=e+1;a[e>>0]=95}f=c[b+196>>2]|0;e=c[b+200>>2]|0;if((f|0)>0|(e|0)>0){c[h>>2]=f;c[h+4>>2]=e;lL(g,84900,h)|0;em(d,g)|0}l=i;return}function Vt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,i=0.0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0;s=l;l=l+48|0;p=s+16|0;f=s+32|0;q=s;r=+h[(c[a+16>>2]|0)+152>>3];o=Wt(d,0,f)|0;if((o+-1|0)>>>0>=2){e=+h[b+16>>3];k=(e+ +h[b>>3])*.5;h[q>>3]=k;i=+h[b+24>>3];m=(i+ +h[b+8>>3])*.5;h[q+8>>3]=m;k=e-k;m=i-m;n=r>.5;if(n)JD(a,.5);j=c[f>>2]|0;i=0.0;f=c[j+8>>2]|0;while(1){d=c[f>>2]|0;if(!d)break;b=f+4|0;if(+g[b>>2]==0.0)e=i;else{yD(a,d);if(!(c[f+12>>2]|0))e=6.283185307179586;else e=+g[b>>2]*6.283185307179586+i;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];b=XE(p,k,m,i,e)|0;ED(a,c[b>>2]|0,c[b+4>>2]|0,0,0,1);UI(b)}i=e;f=f+12|0}if(n)JD(a,r);Xt(j)}l=s;return o|0}function Wt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+16|0;o=r+8|0;n=r;q=qw(12)|0;i=CL(b)|0;a:do if(!d){d=1;f=i;while(1){switch(a[f>>0]|0){case 0:break a;case 58:{d=d+1|0;break}default:{}}f=f+1|0}}while(0);c[q+4>>2]=i;p=qw((d*12|0)+12|0)|0;c[q+8>>2]=p;m=1.0;h=0;d=0;f=i;while(1){f=zL(f,92961)|0;if(!f){f=20;break}j=+Yt(f);if(!(j>=0.0)){f=17;break}k=j-m;if(k>0.0)if((c[4920]|0)!=0?!(k<1.0e-05&k>-1.0e-05):0){c[n>>2]=b;Zl(0,84911,n)|0;c[4920]=0;j=m;d=3}else j=m;k=m-j;if(j>0.0)a[p+(h*12|0)+8>>0]=1;if(a[f>>0]|0)c[p+(h*12|0)>>2]=f;f=h+1|0;g[p+(h*12|0)+4>>2]=j;if(k<1.0e-05&k>-1.0e-05){h=f;f=30;break}else{m=k;h=f;f=0}}b:do if((f|0)==17){if(!(c[4920]|0))d=1;else{c[o>>2]=b;Zl(1,84946,o)|0;c[4920]=0;d=2}Xt(q)}else if((f|0)==20)if(m>0.0){f=0;i=0;while(1){if((f|0)>=(h|0))break;o=i+(+g[p+(f*12|0)+4>>2]==0.0&1)|0;f=f+1|0;i=o}if((i|0)<=0){f=p+((h+-1|0)*12|0)+4|0;g[f>>2]=m+ +g[f>>2];f=30;break}j=m/+(i|0);f=0;while(1){if((f|0)>=(h|0)){f=30;break b}i=p+(f*12|0)+4|0;if(+g[i>>2]==0.0)g[i>>2]=j;f=f+1|0}}else f=30;while(0);if((f|0)==30){while(1){f=h+-1|0;if((h|0)<=0)break;if(+g[p+(f*12|0)+4>>2]>0.0)break;else h=f}c[p+(h*12|0)>>2]=0;c[q>>2]=h;c[e>>2]=q}l=r;return d|0}function Xt(a){a=a|0;XI(c[a+4>>2]|0);XI(c[a+8>>2]|0);XI(a);return}function Yt(b){b=b|0;var d=0.0,e=0,f=0,g=0;f=l;l=l+16|0;e=f;b=TJ(b,59)|0;if(!b)d=0.0;else{g=b+1|0;a[b>>0]=0;d=+pM(g,e);d=(d>=0.0?(c[e>>2]|0)!=(g|0):0)?d:-1.0}l=f;return +d}function Zt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0.0,t=0;t=l;l=l+80|0;i=t+64|0;r=t;s=+h[(c[a+16>>2]|0)+152>>3];q=Wt(d,0,i)|0;if((q+-1|0)>>>0>=2){if(!e){c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];p=r+16|0;o=b+16|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];p=r+32|0;o=b+32|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];p=r+48|0;o=b+48|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2]}else{p=b+32|0;c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];p=r+16|0;o=b+48|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];p=r+32|0;c[p>>2]=c[b>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];p=r+48|0;o=b+16|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2]}k=r+16|0;m=+h[k>>3];f=+h[r>>3];n=m-f;o=r+32|0;h[o>>3]=f;h[k>>3]=f;p=s>.5;if(p)JD(a,.5);i=c[i>>2]|0;j=r+48|0;e=c[i+8>>2]|0;while(1){d=c[e>>2]|0;if(!d)break;b=e+4|0;if(!(+g[b>>2]==0.0)){yD(a,d);if(!(c[e+12>>2]|0))f=m;else f=n*+g[b>>2]+ +h[r>>3];h[o>>3]=f;h[k>>3]=f;CD(a,r,4,1);f=+h[k>>3];h[j>>3]=f;h[r>>3]=f}e=e+12|0}if(p)JD(a,s);Xt(i)}l=t;return q|0}function _t(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840|0){f=e&131072;g=f>>>16^2;c[d+264>>2]=g;h=d+268|0;c[h>>2]=g+2;g=d+272|0;XI(c[g>>2]|0);d=qw(c[h>>2]<<4)|0;c[g>>2]=d;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];g=d+16|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];if(!(e&8192))aD(a,d,d,2)|0;if(!f)Uv(d)}return}function $t(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,f=0,g=0,i=0.0,j=0.0,k=0.0,m=0.0,n=0.0,o=0,p=0,q=0;q=l;l=l+144|0;c=q+80|0;e=q+16|0;f=q;k=+h[b>>3];o=a+16|0;m=+h[o>>3];if(!(((((((((!(k>m)?(n=+h[a>>3],!(k<n)):0)?(d=+h[b+8>>3],i=+h[a+24>>3],!(d>i)):0)?(j=+h[a+8>>3],!(d<j)):0)?(k=+h[b+16>>3],!(k>m|k<n)):0)?(k=+h[b+24>>3],!(k>i|k<j)):0)?(k=+h[b+32>>3],!(k>m|k<n)):0)?(k=+h[b+40>>3],!(k>i|k<j)):0)?(k=+h[b+48>>3],!(k>m|k<n)):0)?(n=+h[b+56>>3],!(n>i|n<j)):0))p=11;a:do if((p|0)==11){if(!(au(b)|0)){KA(f,b,3,.5,c,e);$t(a,c);$t(a,e);break}f=a+24|0;g=a+8|0;e=0;while(1){if((e|0)==4)break a;d=+h[b+(e<<4)>>3];if(!(d>+h[o>>3])){if(d<+h[a>>3]){c=a;p=16}}else{c=o;p=16}if((p|0)==16){p=0;h[c>>3]=d}d=+h[b+(e<<4)+8>>3];if(!(d>+h[f>>3])){if(d<+h[g>>3]){c=a;p=19}}else{c=o;p=19}if((p|0)==19){p=0;h[c+8>>3]=d}e=e+1|0}}while(0);l=q;return}function au(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,h=0,i=0;b=l;l=l+48|0;d=b+32|0;e=b+16|0;f=b;i=a+48|0;h=a+16|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];g=+Zv(f,e,d);h=a+32|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];a=g<4.0&+Zv(f,e,d)<4.0&1;l=b;return a|0}function bu(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0.0;m=l;l=l+16|0;k=m;j=c[b+152>>2]|0;n=+h[b+432>>3];i=+h[b+352>>3]*.013888888888888888;f=i*n;h[b+488>>3]=f;g=+h[b+440>>3];i=i*g;h[b+496>>3]=i;h[b+520>>3]=n*.013888888888888888;e=b+528|0;h[e>>3]=g*.013888888888888888;if(j&4096|0)h[e>>3]=g*-.013888888888888888;e=(c[b+360>>2]|0)==0;n=+((c[b+448>>2]|0)>>>0);g=+((c[b+452>>2]|0)>>>0);h[b+368>>3]=(e?n:g)/f;h[b+376>>3]=(e?g:n)/i;GD(b,AA(d,xm(d,0,86539,0)|0,174177)|0);c[b+160>>2]=0;cu(b,d);if(j&2|0)du(b,d);e=bo(d)|0;while(1){if(!e)break;a[(c[e+16>>2]|0)+116>>0]=0;e=co(d,e)|0}eu(b,k);while(1){if(!((fu(b)|0)<<24>>24))break;if((gu(b)|0)>1)fD(b);hu(b);while(1){if(!((iu(b)|0)<<24>>24))break;ju(b,d);ku(b)}if((gu(b)|0)>1)gD(b);lu(b,k)}mu(b);l=m;return}function cu(a,b){a=a|0;b=b|0;var d=0;d=Qt(a)|0;c[d+4>>2]=0;c[d+8>>2]=b;c[d+12>>2]=0;lv(a,c[(c[b+16>>2]|0)+12>>2]|0,b);bD(a,b);return}function du(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;yD(b,119592);d=Hm(c,85367)|0;if(d|0?a[d>>0]|0:0)yD(b,d);d=Hm(c,86447)|0;if(d|0?a[d>>0]|0:0)wD(b,d);xv(b,c);g=bo(c)|0;while(1){if(!g)break;d=Hm(g,122540)|0;if(d|0?a[d>>0]|0:0)wD(b,d);d=Hm(g,122531)|0;if(d|0?a[d>>0]|0:0)yD(b,d);d=Hm(g,86413)|0;do if(d|0?a[d>>0]|0:0){if(!(TJ(d,58)|0)){wD(b,d);break}e=CL(d)|0;d=e;while(1){d=zL(d,92961)|0;if(!d)break;if(!(a[d>>0]|0)){d=0;continue}wD(b,d);d=0}XI(e)}while(0);d=Hm(g,86447)|0;if(d|0?a[d>>0]|0:0)wD(b,d);f=Om(c,g)|0;while(1){if(!f)break;d=Hm(f,122540)|0;do if(d|0?a[d>>0]|0:0){if(!(TJ(d,58)|0)){wD(b,d);break}e=CL(d)|0;d=e;while(1){d=zL(d,92961)|0;if(!d)break;if(!(a[d>>0]|0)){d=0;continue}wD(b,d);d=0}XI(e)}while(0);d=Hm(f,86447)|0;if(d|0?a[d>>0]|0:0)wD(b,d);f=Qm(c,f)|0}g=co(c,g)|0}return}function eu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;e=i+8|0;g=i;h=c[a>>2]|0;d=c[h+312>>2]|0;f=a+156|0;c[f>>2]=d;h=c[h+316>>2]|0;if(!h)if((d|0)>1?(c[a+152>>2]&64|0)==0:0){c[e>>2]=c[a+52>>2];Zl(0,85542,e)|0;c[f>>2]=1;e=1;d=0}else{e=1;d=0}else{d=h+4|0;if((c[h>>2]|0)>1?(c[a+152>>2]&64|0)==0:0){c[g>>2]=c[a+52>>2];Zl(0,85542,g)|0;c[h+8>>2]=(c[f>>2]|0)+1}e=c[d>>2]|0;d=h+8|0}c[a+160>>2]=e;c[b>>2]=d;l=i;return}function fu(a){a=a|0;return (c[a+160>>2]|0)<=(c[a+156>>2]|0)|0}function gu(a){a=a|0;var b=0;b=c[(c[a>>2]|0)+316>>2]|0;return c[((b|0)==0?a+156|0:b)>>2]|0}function hu(a){a=a|0;var b=0,d=0;d=a+172|0;b=c[d+4>>2]|0;a=a+196|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function iu(a){a=a|0;var b=0,d=0;d=c[a+196>>2]|0;if(((d|0)>-1?(d|0)<(c[a+164>>2]|0):0)?(b=c[a+200>>2]|0,(b|0)>-1):0)a=(b|0)<(c[a+168>>2]|0)&1;else a=0;return a|0}function ju(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+176|0;k=p;f=p+48|0;m=p+32|0;n=c[d+16>>2]|0;o=c[d+152>>2]|0;if((c[d+160>>2]|0)<=1?(c[d+196>>2]|0)<=0:0)h=0;else{bm(m,128,f);g=n+212|0;h=c[g>>2]|0;Ut(d,m);em(m,h)|0;i=m+4|0;f=c[i>>2]|0;if(f>>>0>=(c[m+8>>2]|0)>>>0){cm(m,1)|0;f=c[i>>2]|0}a[f>>0]=0;f=c[m>>2]|0;c[i>>2]=f;c[g>>2]=f}WE(Hm(e,84992)|0);ou(d);dD(d);wD(d,122106);yD(d,119592);do if(o&4259840|0){if((c[n+208>>2]|0)==0?(b[n+260>>1]&1)==0:0)break;if(o&655360){i=o&131072;c[n+264>>2]=i>>>16^2;f=qw((i>>>12^32)+32|0)|0;g=d+288|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];g=f+16|0;q=d+304|0;c[g>>2]=c[q>>2];c[g+4>>2]=c[q+4>>2];c[g+8>>2]=c[q+8>>2];c[g+12>>2]=c[q+12>>2];if(!i){Uv(f);g=4}else g=2}else{f=0;g=0}if(!(o&8192))aD(d,f,f,g)|0;c[n+272>>2]=f;c[n+268>>2]=g}while(0);if(o&32768|0?(j=c[(c[e+16>>2]|0)+12>>2]|0,j|0):0)c[n+192>>2]=c[j>>2];g=(o&4|0)!=0;do if(!g){f=n+208|0;if((c[f>>2]|0)==0?(b[n+260>>1]&1)==0:0)break;q=d+256|0;c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[k+12>>2]=c[q+12>>2];c[k+16>>2]=c[q+16>>2];c[k+20>>2]=c[q+20>>2];c[k+24>>2]=c[q+24>>2];c[k+28>>2]=c[q+28>>2];_t(d,k);rD(d,c[f>>2]|0,c[n+228>>2]|0,c[n+244>>2]|0,c[n+212>>2]|0)}while(0);pu(d,e);f=c[(c[e+16>>2]|0)+12>>2]|0;if(f|0)kw(d,4,f);do if(!g){if((c[n+208>>2]|0)==0?(b[n+260>>1]&1)==0:0)break;sD(d)}while(0);qu(d,e,o);eD(d);if(h|0){fm(m);c[n+212>>2]=h}l=p;return}function ku(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=l;l=l+32|0;d=h+24|0;b=h+16|0;j=h+8|0;f=h;g=a+196|0;i=a+188|0;c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];nu(j,b,d);i=c[j+4>>2]|0;e=g;c[e>>2]=c[j>>2];c[e+4>>2]=i;if(!((iu(a)|0)<<24>>24)){e=a+180|0;if(!(c[a+184>>2]|0))c[a+200>>2]=c[a+176>>2];else c[g>>2]=c[a+172>>2];c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];nu(f,b,d);i=c[f+4>>2]|0;j=g;c[j>>2]=c[f>>2];c[j+4>>2]=i}l=h;return}function lu(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;if(!d){d=a+160|0;c[d>>2]=(c[d>>2]|0)+1}else{c[a+160>>2]=c[d>>2];c[b>>2]=d+4}return}function mu(a){a=a|0;cD(a);Rt(a);return}function nu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[d+4>>2]|0)+(c[b+4>>2]|0)|0;c[a>>2]=(c[d>>2]|0)+(c[b>>2]|0);c[a+4>>2]=e;return}function ou(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=l;l=l+48|0;n=t+32|0;f=t+24|0;j=t+8|0;k=t+16|0;m=t;r=a+196|0;q=c[r>>2]|0;r=c[r+4>>2]|0;p=f;c[p>>2]=q;c[p+4>>2]=r;p=a+164|0;i=c[p>>2]|0;p=c[p+4>>2]|0;s=j;c[s>>2]=i;c[s+4>>2]=p;s=a+360|0;if(!(c[s>>2]|0)){k=q;j=r}else{c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];wv(k,n);r=k;k=c[r>>2]|0;r=c[r+4>>2]|0;p=f;c[p>>2]=k;c[p+4>>2]=r;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];wv(m,n);p=m;i=c[p>>2]|0;p=c[p+4>>2]|0;c[j>>2]=i;c[j+4>>2]=p;j=r}d=+h[a+320>>3];g=d*+(k|0)-+h[a+240>>3];h[a+288>>3]=g;e=+h[a+328>>3];o=e*+(j|0)-+h[a+248>>3];h[a+296>>3]=o;h[a+304>>3]=d+g;h[a+312>>3]=e+o;f=a+472|0;if(!(c[(c[a+12>>2]|0)+28>>2]|0)){r=a+456|0;c[f>>2]=c[r>>2];c[f+4>>2]=c[r+4>>2];c[f+8>>2]=c[r+8>>2];c[f+12>>2]=c[r+12>>2]}else{q=a+456|0;c[f>>2]=c[((c[f>>2]|0)<(c[q>>2]|0)?f:q)>>2];r=a+476|0;c[r>>2]=c[((c[r>>2]|0)<(c[a+460>>2]|0)?f:q)+4>>2];r=a+480|0;c[r>>2]=c[((c[r>>2]|0)>(c[a+464>>2]|0)?f:q)+8>>2];r=a+484|0;c[r>>2]=c[((c[r>>2]|0)>(c[a+468>>2]|0)?f:q)+12>>2]}m=c[a+152>>2]|0;b=+h[a+336>>3];if(!(m&128)){b=(+(k|0)-+(i|0)*.5)*d+b;h[a+256>>3]=b;g=(+(j|0)-+(p|0)*.5)*e+ +h[a+344>>3];o=g;d=d+b;g=g+e}else{d=+h[a+368>>3]*.5;e=b-d;h[a+256>>3]=e;g=+h[a+344>>3];u=+h[a+376>>3]*.5;o=g-u;d=d+b;g=u+g;b=e}h[a+264>>3]=o;h[a+272>>3]=d;h[a+280>>3]=g;if(!(c[s>>2]|0)){e=+h[a+352>>3];h[a+504>>3]=+h[a+384>>3]/e-b;if(!(m&4096)){d=+h[a+392>>3]/e;b=o}else{d=-g;b=+h[a+392>>3]/e}h[a+512>>3]=d-b}else{f=a+384|0;e=+h[a+352>>3];h[a+512>>3]=-g-+h[a+392>>3]/e;if(!(m&4096))d=+h[f>>3]/e;else{d=-d;b=+h[f>>3]/e}h[a+504>>3]=d-b}l=t;return}function pu(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;q=s;o=s+40|0;p=s+36|0;r=s+32|0;e=Hm(d,85367)|0;if(!e){j=1;e=121990}else{i=(a[e>>0]|0)==0;j=i&1;e=i?121990:e}h=c[b+152>>2]|0;i=(a[e>>0]|0)==116;if(!(h&256))if(i){m=(uJ(e,122171)|0)==0;k=m?121990:e;m=m?1:j;n=8}else{k=e;m=j;n=8}else if(!(i?!(uJ(e,122171)|0):0)){k=e;m=j;n=8}if((n|0)==8?!((m|0)!=0&(h&33554432|0)!=0):0)if(!((sv(k,o,p)|0)<<24>>24)){yD(b,k);wD(b,122171);r=b+256|0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[q+16>>2]=c[r+16>>2];c[q+20>>2]=c[r+20>>2];c[q+24>>2]=c[r+24>>2];c[q+28>>2]=c[r+28>>2];DD(b,q,1)}else{c[r>>2]=0;i=c[o>>2]|0;yD(b,i);wD(b,122171);rv(d,r)|0;e=c[o+4>>2]|0;h=yA(d,c[42186]|0,0,0)|0;f=+g[p>>2];if(!e)zD(b,122106,h,f);else zD(b,e,h,f);r=(c[r>>2]|0)>>>1&1|2;p=b+256|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[q+16>>2]=c[p+16>>2];c[q+20>>2]=c[p+20>>2];c[q+24>>2]=c[p+24>>2];c[q+28>>2]=c[p+28>>2];DD(b,q,r);XI(i)}e=c[(c[(c[d+16>>2]|0)+8>>2]|0)+88>>2]|0;if(e|0)uv(b,e);l=s;return}function qu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=(c[a>>2]|0)+28|0;c[g>>2]=(c[g>>2]|0)+1;g=(d&4|0)!=0;if(!g)ru(a,b,d);a:do if(!(d&1)){if(d&16|0){lD(a);f=bo(b)|0;while(1){if(!f)break;e=Om(b,f)|0;while(1){if(!e)break;tu(a,e);e=Qm(b,e)|0}f=co(b,f)|0}mD(a);jD(a);e=bo(b)|0;while(1){if(!e)break;su(a,e);e=co(b,e)|0}kD(a);break}if(!(d&8)){f=bo(b)|0;while(1){if(!f)break a;su(a,f);e=Om(b,f)|0;while(1){if(!e)break;su(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0);tu(a,e);e=Qm(b,e)|0}f=co(b,f)|0}}jD(a);e=bo(b)|0;while(1){if(!e)break;if((uu(b,e)|0)<<24>>24)su(a,e);e=co(b,e)|0}kD(a);lD(a);f=bo(b)|0;while(1){if(!f)break;e=Om(b,f)|0;while(1){if(!e)break;if((vu(b,e)|0)<<24>>24)tu(a,e);e=Qm(b,e)|0}f=co(b,f)|0}mD(a)}else{jD(a);e=bo(b)|0;while(1){if(!e)break;su(a,e);e=co(b,e)|0}kD(a);lD(a);f=bo(b)|0;while(1){if(!f)break;e=Om(b,f)|0;while(1){if(!e)break;tu(a,e);e=Qm(b,e)|0}f=co(b,f)|0}mD(a)}while(0);if(g)ru(a,b,d);return}function ru(e,f,i){e=e|0;f=f|0;i=i|0;var j=0,k=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;P=l;l=l+128|0;w=P+72|0;N=P+64|0;H=P+112|0;I=P;J=P+104|0;K=f+16|0;L=(i&4|0)!=0;M=e+16|0;x=I+32|0;y=I+16|0;A=I+8|0;B=I+24|0;C=I+48|0;D=I+40|0;E=I+56|0;F=(i&8|0)==0;G=J+4|0;v=1;while(1){j=c[K>>2]|0;if((v|0)>(c[j+180>>2]|0))break;u=c[(c[j+184>>2]|0)+(v<<2)>>2]|0;if((pv(e,u)|0)<<24>>24){if(L)ru(e,u,i);qv(e,u);r=c[M>>2]|0;s=r+208|0;if(!(c[s>>2]|0))t=(b[r+260>>1]&1)!=0;else t=1;WE(Hm(u,84992)|0);if(!(L|t^1)){q=(c[u+16>>2]|0)+16|0;c[w>>2]=c[q>>2];c[w+4>>2]=c[q+4>>2];c[w+8>>2]=c[q+8>>2];c[w+12>>2]=c[q+12>>2];c[w+16>>2]=c[q+16>>2];c[w+20>>2]=c[q+20>>2];c[w+24>>2]=c[q+24>>2];c[w+28>>2]=c[q+28>>2];_t(e,w);rD(e,c[s>>2]|0,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0)}c[H>>2]=0;j=rv(u,H)|0;if(!j)p=0;else{AD(e,j);p=c[H>>2]&1}q=u+16|0;j=d[(c[q>>2]|0)+112>>0]|0;do if(!(j&1)){if(j&2|0){j=BA(u,0,91244)|0;k=BA(u,0,91252)|0;O=29;break}if(j&8|0){j=BA(u,0,91260)|0;k=BA(u,0,91268)|0;O=29;break}if(j&4|0){j=BA(u,0,91276)|0;k=BA(u,0,91284)|0;O=29;break}j=Hm(u,122540)|0;if(!j)k=0;else k=(a[j>>0]|0)==0?0:j;j=Hm(u,122531)|0;if(!j)j=k;else j=(a[j>>0]|0)==0?k:j;m=Hm(u,86413)|0;if(m)k=(a[m>>0]|0)==0?k:m;if(!((p|0)!=0&(k|0)!=0)){m=Hm(u,85367)|0;if(m|0?a[m>>0]|0:0){k=m;O=29;break}j=(j|0)==0?122106:j;n=(k|0)==0?119592:k;c[J>>2]=0;if(!p)k=0;else O=31}else O=29}else{j=BA(u,0,91228)|0;k=BA(u,0,91236)|0;O=29}while(0);if((O|0)==29){c[J>>2]=0;j=(j|0)==0?122106:j;n=(k|0)==0?119592:k;O=31}if((O|0)==31){O=0;if(!((sv(n,J,w)|0)<<24>>24)){yD(e,n);k=1}else{yD(e,c[J>>2]|0);k=c[G>>2]|0;m=yA(u,c[42186]|0,0,0)|0;o=+g[w>>2];if(!k)zD(e,122106,m,o);else zD(e,k,m,o);k=(c[H>>2]|0)>>>1&1|2}}m=c[42185]|0;if((m|0?(z=Im(u,m)|0,z|0):0)?a[z>>0]|0:0)JD(e,+zA(u,c[42185]|0,1.0,0.0));p=c[H>>2]|0;do if(p&4){m=yA(u,c[42184]|0,1,0)|0;if(m|k|0){n=c[q>>2]|0;Q=n+16|0;c[I>>2]=c[Q>>2];c[I+4>>2]=c[Q+4>>2];c[I+8>>2]=c[Q+8>>2];c[I+12>>2]=c[Q+12>>2];n=n+32|0;c[x>>2]=c[n>>2];c[x+4>>2]=c[n+4>>2];c[x+8>>2]=c[n+8>>2];c[x+12>>2]=c[n+12>>2];h[y>>3]=+h[x>>3];h[B>>3]=+h[A>>3];h[C>>3]=+h[I>>3];h[E>>3]=+h[D>>3];if(!m)wD(e,122171);else wD(e,j);ty(e,I,4,p,k)}}else{if(!(p&64)){if(yA(u,c[42184]|0,1,0)|0){wD(e,j);Q=(c[q>>2]|0)+16|0;c[w>>2]=c[Q>>2];c[w+4>>2]=c[Q+4>>2];c[w+8>>2]=c[Q+8>>2];c[w+12>>2]=c[Q+12>>2];c[w+16>>2]=c[Q+16>>2];c[w+20>>2]=c[Q+20>>2];c[w+24>>2]=c[Q+24>>2];c[w+28>>2]=c[Q+28>>2];DD(e,w,k);break}if(!k)break;wD(e,122171);Q=(c[q>>2]|0)+16|0;c[w>>2]=c[Q>>2];c[w+4>>2]=c[Q+4>>2];c[w+8>>2]=c[Q+8>>2];c[w+12>>2]=c[Q+12>>2];c[w+16>>2]=c[Q+16>>2];c[w+20>>2]=c[Q+20>>2];c[w+24>>2]=c[Q+24>>2];c[w+28>>2]=c[Q+28>>2];DD(e,w,k);break}Q=c[q>>2]|0;p=Q+16|0;c[I>>2]=c[p>>2];c[I+4>>2]=c[p+4>>2];c[I+8>>2]=c[p+8>>2];c[I+12>>2]=c[p+12>>2];Q=Q+32|0;c[x>>2]=c[Q>>2];c[x+4>>2]=c[Q+4>>2];c[x+8>>2]=c[Q+8>>2];c[x+12>>2]=c[Q+12>>2];h[y>>3]=+h[x>>3];h[B>>3]=+h[A>>3];h[C>>3]=+h[I>>3];h[E>>3]=+h[D>>3];if(!(yA(u,c[42184]|0,1,0)|0))wD(e,122171);else wD(e,j);if((Zt(e,I,n,0)|0)>1){c[N>>2]=Cn(u)|0;Zl(3,85375,N)|0}Q=(c[q>>2]|0)+16|0;c[w>>2]=c[Q>>2];c[w+4>>2]=c[Q+4>>2];c[w+8>>2]=c[Q+8>>2];c[w+12>>2]=c[Q+12>>2];c[w+16>>2]=c[Q+16>>2];c[w+20>>2]=c[Q+20>>2];c[w+24>>2]=c[Q+24>>2];c[w+28>>2]=c[Q+28>>2];DD(e,w,0)}while(0);XI(c[J>>2]|0);j=c[(c[q>>2]|0)+12>>2]|0;if(j|0)kw(e,5,j);if(t){if(L){Q=(c[q>>2]|0)+16|0;c[w>>2]=c[Q>>2];c[w+4>>2]=c[Q+4>>2];c[w+8>>2]=c[Q+8>>2];c[w+12>>2]=c[Q+12>>2];c[w+16>>2]=c[Q+16>>2];c[w+20>>2]=c[Q+20>>2];c[w+24>>2]=c[Q+24>>2];c[w+28>>2]=c[Q+28>>2];_t(e,w);rD(e,c[s>>2]|0,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0)}sD(e)}a:do if(!F){k=bo(u)|0;while(1){if(!k)break a;su(e,k);j=Om(u,k)|0;while(1){if(!j)break;tu(e,j);j=Qm(u,j)|0}k=co(u,k)|0}}while(0);tv(e,f);if(!L)ru(e,u,i)}v=v+1|0}l=P;return}function su(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+32|0;e=j;h=c[b>>2]|0;i=d+16|0;a:do if(((c[(c[i>>2]|0)+8>>2]|0?(hv(b,qo(d)|0,d)|0)<<24>>24:0)?(k=b+256|0,c[e>>2]=c[k>>2],c[e+4>>2]=c[k+4>>2],c[e+8>>2]=c[k+8>>2],c[e+12>>2]=c[k+12>>2],c[e+16>>2]=c[k+16>>2],c[e+20>>2]=c[k+20>>2],c[e+24>>2]=c[k+24>>2],c[e+28>>2]=c[k+28>>2],(iv(d,e)|0)<<24>>24):0)?(f=(c[i>>2]|0)+116|0,g=c[h+28>>2]|0,(g|0)!=(a[f>>0]|0)):0){a[f>>0]=g;GD(b,Cn(d)|0);e=AA(d,c[42212]|0,174177)|0;if(a[e>>0]|0)GD(b,e);e=AA(d,c[42200]|0,174177)|0;b:do if(a[e>>0]|0){yu(e)|0;e=168408;while(1){f=e;e=e+4|0;f=c[f>>2]|0;if(!f)break b;if((a[f>>0]|0)!=105)continue;if(!(uJ(f,119127)|0))break a}}while(0);jv(b,d);hb[c[(c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]|0)+20>>2]&31](b,d);e=c[(c[i>>2]|0)+108>>2]|0;if(e|0?a[e+81>>0]|0:0)kw(b,10,e);kv(b)}while(0);l=j;return}function tu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+32|0;g=h;e=b+256|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];c[g+20>>2]=c[e+20>>2];c[g+24>>2]=c[e+24>>2];c[g+28>>2]=c[e+28>>2];a:do if((wu(d,g)|0)<<24>>24?(f=d+-48|0,(xu(b,d)|0)<<24>>24):0){i=d+48|0;e=oJ(Cn(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0;e=WI(e+3+(oJ(Cn(c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0)|0)|0)|0)|0;tK(e,Cn(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0;i=(pn(qo(c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0)|0)|0)==0;g=e+(oJ(e)|0)|0;if(i){a[g>>0]=a[122549]|0;a[g+1>>0]=a[122550]|0;a[g+2>>0]=a[122551]|0}else{a[g>>0]=a[122546]|0;a[g+1>>0]=a[122547]|0;a[g+2>>0]=a[122548]|0}EL(e,Cn(c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0)|0)|0;GD(b,e);XI(e);e=AA(d,c[42234]|0,174177)|0;if(a[e>>0]|0)GD(b,e);e=AA(d,c[42228]|0,174177)|0;b:do if(!(a[e>>0]|0))e=0;else{yu(e)|0;e=168408;while(1){f=e;e=e+4|0;f=c[f>>2]|0;if(!f){e=168408;break b}if((a[f>>0]|0)!=105)continue;if(!(uJ(f,119127)|0))break a}}while(0);zu(b,d,e);Au(b,d,e);Bu(b)}while(0);l=h;return}function uu(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;a=1;while(1){e=c[d>>2]|0;if((a|0)>(c[e+180>>2]|0)){a=1;break}if(!(Ao(c[(c[e+184>>2]|0)+(a<<2)>>2]|0,b)|0))a=a+1|0;else{a=0;break}}return a|0}function vu(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;a=1;while(1){e=c[d>>2]|0;if((a|0)>(c[e+180>>2]|0)){a=1;break}if(!(Ao(c[(c[e+184>>2]|0)+(a<<2)>>2]|0,b)|0))a=a+1|0;else{a=0;break}}return a|0}function wu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+64|0;i=j+32|0;f=j;g=b+16|0;b=c[g>>2]|0;e=c[b+8>>2]|0;if((e|0)!=0?(e=e+8|0,c[f>>2]=c[e>>2],c[f+4>>2]=c[e+4>>2],c[f+8>>2]=c[e+8>>2],c[f+12>>2]=c[e+12>>2],c[f+16>>2]=c[e+16>>2],c[f+20>>2]=c[e+20>>2],c[f+24>>2]=c[e+24>>2],c[f+28>>2]=c[e+28>>2],c[i>>2]=c[d>>2],c[i+4>>2]=c[d+4>>2],c[i+8>>2]=c[d+8>>2],c[i+12>>2]=c[d+12>>2],c[i+16>>2]=c[d+16>>2],c[i+20>>2]=c[d+20>>2],c[i+24>>2]=c[d+24>>2],c[i+28>>2]=c[d+28>>2],(gv(f,i)|0)!=0):0)b=1;else h=3;do if((h|0)==3){e=c[b+96>>2]|0;if(e){c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];c[i+20>>2]=c[d+20>>2];c[i+24>>2]=c[d+24>>2];c[i+28>>2]=c[d+28>>2];if((xB(e,i)|0)<<24>>24){b=1;break}b=c[g>>2]|0}b=c[b+108>>2]|0;if((b|0?a[b+81>>0]|0:0)?(c[i>>2]=c[d>>2],c[i+4>>2]=c[d+4>>2],c[i+8>>2]=c[d+8>>2],c[i+12>>2]=c[d+12>>2],c[i+16>>2]=c[d+16>>2],c[i+20>>2]=c[d+20>>2],c[i+24>>2]=c[d+24>>2],c[i+28>>2]=c[d+28>>2],(xB(b,i)|0)<<24>>24):0){b=1;break}b=0}while(0);l=j;return b|0}function xu(b,d){b=b|0;d=d|0;var e=0,f=0;a:do if((c[b+156>>2]|0)>=2?(e=AA(d,c[42233]|0,174177)|0,(cv(b,e)|0)<<24>>24==0):0)if(!(a[e>>0]|0)){e=0;while(1){if((e|0)>=2){e=0;break a}f=(e|0)==1;f=AA(c[((c[d>>2]&3|0)==((f?2:3)|0)?d:d+((f?-1:1)*48|0)|0)+40>>2]|0,c[42210]|0,174177)|0;if(!(a[f>>0]|0)){e=1;break a}if(!((cv(b,f)|0)<<24>>24))e=e+1|0;else{e=1;break}}}else e=0;else e=1;while(0);return e|0}function yu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+192|0;o=p+24|0;n=p+16|0;m=p+8|0;k=p;g=p+48|0;j=p+32|0;if(a[85249]|0){bm(168672,128,173944);a[85249]=0}bm(j,128,p+56|0);c[g>>2]=b;h=j+4|0;i=j+8|0;d=0;e=0;a:while(1){f=d;b:while(1)switch(av(g,j)|0){case 0:{d=21;break a}case 40:if(!(f<<24>>24)){f=1;continue b}else{d=7;break a}case 41:if(!(f<<24>>24)){d=9;break a}else{f=0;continue b}default:break b}if(!(f<<24>>24)){if((e|0)==63){d=12;break}d=c[42169]|0;if(d>>>0>=(c[42170]|0)>>>0){cm(168672,1)|0;d=c[42169]|0}c[42169]=d+1;a[d>>0]=0;c[168408+(e<<2)>>2]=c[42169];e=e+1|0}d=c[h>>2]|0;if(d>>>0>=(c[i>>2]|0)>>>0){cm(j,1)|0;d=c[h>>2]|0}a[d>>0]=0;d=c[j>>2]|0;c[h>>2]=d;em(168672,d)|0;d=c[42169]|0;if(d>>>0>=(c[42170]|0)>>>0){cm(168672,1)|0;d=c[42169]|0}c[42169]=d+1;a[d>>0]=0;d=f}do if((d|0)==7){c[k>>2]=b;Zl(1,85250,k)|0;c[42102]=0;fm(j)}else if((d|0)==9){c[m>>2]=b;Zl(1,85284,m)|0;c[42102]=0;fm(j)}else if((d|0)==12){c[n>>2]=b;Zl(0,85312,n)|0;c[42165]=0;fm(j)}else if((d|0)==21){if(f<<24>>24){c[o>>2]=b;Zl(1,85335,o)|0;c[42102]=0;fm(j);break}c[168408+(e<<2)>>2]=0;fm(j);d=c[42169]|0;if(d>>>0>=(c[42170]|0)>>>0){cm(168672,1)|0;d=c[42169]|0}a[d>>0]=0;c[42169]=c[42168]}while(0);l=p;return 168408}function zu(d,f,g){d=d|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+160|0;y=A+24|0;w=A+20|0;v=A+16|0;o=A;p=A+32|0;x=c[d+152>>2]|0;c[y>>2]=0;c[w>>2]=0;c[v>>2]=0;z=Qt(d)|0;c[z+4>>2]=3;c[z+8>>2]=f;c[z+12>>2]=9;t=f+16|0;n=c[(c[t>>2]|0)+96>>2]|0;if((n|0?(a[n+82>>0]|0)==0:0)?(EA(Hm(f,85065)|0,0)|0)<<24>>24:0){n=z+260|0;b[n>>1]=b[n>>1]|512}if(g|0?c[(c[t>>2]|0)+8>>2]|0:0)AD(d,g);g=c[42249]|0;if((g|0?(i=Im(f,g)|0,i|0):0)?a[i>>0]|0:0)JD(d,+zA(f,c[42249]|0,1.0,0.0));do if(x&16777216|0){g=f+48|0;if((e[(c[(qo(c[((c[f>>2]&3|0)==3?f:g)+40>>2]|0)|0)+16>>2]|0)+178>>1]|0)>2){m=+h[(c[(c[(c[((c[f>>2]&3|0)==3?f:g)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[z+176>>3]=+(~~(m+(m>=0.0?.5:-.5))|0);m=+h[(c[(c[(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[z+184>>3]=+(~~(m+(m>=0.0?.5:-.5))|0);break}else{n=z+176|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;break}}while(0);if(x&32768|0){n=c[t>>2]|0;g=c[n+96>>2]|0;if(!g)g=c[z+192>>2]|0;else{g=c[g>>2]|0;c[z+192>>2]=g}i=z+196|0;c[i>>2]=g;k=z+204|0;c[k>>2]=g;j=z+200|0;c[j>>2]=g;g=c[n+108>>2]|0;if(g|0)c[i>>2]=c[g>>2];g=c[n+104>>2]|0;if(g|0)c[j>>2]=c[g>>2];g=c[n+100>>2]|0;if(g|0)c[k>>2]=c[g>>2]}if(!(x&65536))j=0;else{bm(o,128,p);c[z+212>>2]=lw(Tt(d,f,o)|0,f)|0;fm(o);g=Hm(f,96264)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)q=31;else{g=Hm(f,96269)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)q=31;else i=0}if((q|0)==31)i=lw(g,f)|0;g=Hm(f,85078)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)q=36;else q=34;do if((q|0)==34){g=Hm(f,85087)|0;if(g|0?a[g>>0]|0:0){q=36;break}if(i|0){g=CL(i)|0;q=39}}while(0);if((q|0)==36){g=lw(g,f)|0;q=39}if((q|0)==39)c[z+208>>2]=g;g=Hm(f,85095)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)q=44;else q=42;do if((q|0)==42){g=Hm(f,85105)|0;if(g|0?a[g>>0]|0:0){q=44;break}if(i|0){g=CL(i)|0;q=47}}while(0);if((q|0)==44){g=lw(g,f)|0;q=47}if((q|0)==47)c[z+216>>2]=g;g=Hm(f,85114)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)q=52;else q=50;do if((q|0)==50){g=Hm(f,85123)|0;if(g|0?a[g>>0]|0:0){q=52;break}if(i|0)c[z+220>>2]=CL(i)|0}while(0);if((q|0)==52){c[z+220>>2]=lw(g,f)|0;q=z+260|0;b[q>>1]=b[q>>1]|128}g=Hm(f,85131)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)q=59;else q=57;do if((q|0)==57){g=Hm(f,85140)|0;if(g|0?a[g>>0]|0:0){q=59;break}if(i|0)c[z+224>>2]=CL(i)|0}while(0);if((q|0)==59){c[z+224>>2]=lw(g,f)|0;q=z+260|0;b[q>>1]=b[q>>1]|256}j=i}do if(x&8388608){g=Hm(f,85148)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)i=lw(g,f)|0;else i=0;g=Hm(f,85155)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){q=z+260|0;b[q>>1]=b[q>>1]|64;g=lw(g,f)|0;q=72}else q=70;if((q|0)==70?i|0:0){g=CL(i)|0;q=72}if((q|0)==72)c[z+244>>2]=g;g=Hm(f,85166)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){g=lw(g,f)|0;q=78}else q=76;if((q|0)==76?i|0:0){g=CL(i)|0;q=78}if((q|0)==78)c[z+248>>2]=g;g=Hm(f,85178)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){c[z+252>>2]=lw(g,f)|0;p=z+260|0;b[p>>1]=b[p>>1]|16}else q=82;if((q|0)==82?i|0:0)c[z+252>>2]=CL(i)|0;g=Hm(f,85189)|0;if(g|0?a[g>>0]|0:0){q=z+260|0;b[q>>1]=b[q>>1]|32;c[z+256>>2]=lw(g,f)|0;break}if(i)c[z+256>>2]=CL(i)|0;else i=0}else i=0;while(0);do if(x&4194304|0){g=Hm(f,96229)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)q=94;else q=92;do if((q|0)==92){g=Hm(f,85200)|0;if(g|0?a[g>>0]|0:0){q=94;break}g=c[z+192>>2]|0;if(g|0)c[z+228>>2]=CL(g)|0}while(0);if((q|0)==94){p=Uu(g,f)|0;c[z+228>>2]=lw(p,f)|0;XI(p);p=z+260|0;b[p>>1]=b[p>>1]|1}g=Hm(f,85212)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){p=Uu(g,f)|0;c[z+232>>2]=lw(p,f)|0;XI(p);p=z+260|0;b[p>>1]=b[p>>1]|8}else q=100;if((q|0)==100?(r=c[z+192>>2]|0,r|0):0)c[z+232>>2]=CL(r)|0;g=Hm(f,85225)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){r=Uu(g,f)|0;c[z+236>>2]=lw(r,f)|0;XI(r);r=z+260|0;b[r>>1]=b[r>>1]|2}else q=105;if((q|0)==105?(s=c[z+200>>2]|0,s|0):0)c[z+236>>2]=CL(s)|0;g=Hm(f,85237)|0;if(g|0?a[g>>0]|0:0){s=Uu(g,f)|0;c[z+240>>2]=lw(s,f)|0;XI(s);s=z+260|0;b[s>>1]=b[s>>1]|4;break}g=c[z+204>>2]|0;if(g|0)c[z+240>>2]=CL(g)|0}while(0);XI(j);XI(i);do if(x&4259840|0?(u=c[(c[t>>2]|0)+8>>2]|0,u|0):0){if(!(c[z+208>>2]|0)){if((x&524288|0)==0|(c[z+228>>2]|0)==0)break}else if(!(x&524288))break;m=+h[(c[d+16>>2]|0)+152>>3]*.5;m=m>2.0?m:2.0;i=c[u+4>>2]|0;g=0;while(1){if((g|0)>=(i|0))break;Vu(y,w,v,(c[u>>2]|0)+(g*48|0)|0,m);g=g+1|0}j=c[v>>2]|0;c[z+276>>2]=j;k=c[w>>2]|0;c[z+280>>2]=k;if(!(x&8192)){g=0;i=0;while(1){if((i|0)>=(j|0))break;g=(c[k+(i<<2)>>2]|0)+g|0;i=i+1|0}y=c[y>>2]|0;aD(d,y,y,g)|0;g=y}else g=c[y>>2]|0;c[z+284>>2]=g;c[z+264>>2]=2;c[z+272>>2]=g;c[z+268>>2]=c[k>>2]}while(0);pD(d,f);g=c[z+208>>2]|0;if(!((g|0)==0?!(b[z+260>>1]&1):0))rD(d,g,c[z+228>>2]|0,c[z+244>>2]|0,c[z+212>>2]|0);l=A;return}function Au(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0;P=l;l=l+240|0;L=P+224|0;K=P+208|0;x=P+128|0;w=P+112|0;O=P+64|0;C=P+48|0;D=P+32|0;E=P+16|0;F=P;G=P+192|0;H=P+176|0;y=P+160|0;B=P+144|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;M=+h[(c[b+16>>2]|0)+152>>3];WE(Hm(e,84992)|0);J=e+16|0;a:do if(c[(c[J>>2]|0)+8>>2]|0){N=+zA(e,c[42231]|0,1.0,0.0);k=AA(e,c[42219]|0,174177)|0;v=(f|0)!=0;b:do if(v){g=f;while(1){i=g;g=g+4|0;i=c[i>>2]|0;if(!i){o=0;break b}if((a[i>>0]|0)!=116)continue;if(!(uJ(i,95883)|0)){o=1;break}}}else o=0;while(0);j=k;q=0;i=0;c:while(1){switch(a[j>>0]|0){case 0:break c;case 58:{g=q+1|0;break}case 59:{g=q;i=i+1|0;break}default:g=q}j=j+1|0;q=g}n=(q|0)!=0;if((i|0)!=0&n)if(!(Iu(b,e,f,k,q+1|0,N,M)|0))break;else m=122106;else m=k;g=d[(c[J>>2]|0)+115>>0]|0;if(!(g&1))if(!(g&2))if(!(g&8))if(!(g&4)){i=m;j=BA(e,c[42220]|0,m)|0}else{j=91284;g=91276;k=168884;i=168884;p=18}else{j=91268;g=91260;k=168884;i=168884;p=18}else{j=91252;g=91244;k=168884;i=168884;p=18}else{j=91236;g=91228;k=168884;i=168884;p=18}if((p|0)==18){i=c[i>>2]|0;i=BA(e,i,Ju(m,g)|0)|0;g=BA(e,c[k>>2]|0,j)|0;if((i|0)==(m|0)){i=m;j=g}else{wD(b,i);j=g}}if((j|0)!=(m|0))yD(b,j);if(o<<24>>24){i=(a[i>>0]|0)==0?122106:i;g=(a[j>>0]|0)==0?122106:j;wD(b,122171);yD(b,i);u=O;r=c[c[(c[J>>2]|0)+8>>2]>>2]|0;s=u+48|0;do{c[u>>2]=c[r>>2];u=u+4|0;r=r+4|0}while((u|0)<(s|0));J=_z(O,Ku(e)|0,M,0,0)|0;CD(b,c[J+8>>2]|0,c[J>>2]|0,1);Lu(J);wD(b,i);if((g|0)!=(i|0))yD(b,g);g=c[O+8>>2]|0;if(g|0){I=O+16|0;J=c[O>>2]|0;c[K>>2]=c[I>>2];c[K+4>>2]=c[I+4>>2];c[K+8>>2]=c[I+8>>2];c[K+12>>2]=c[I+12>>2];c[L>>2]=c[J>>2];c[L+4>>2]=c[J+4>>2];c[L+8>>2]=c[J+8>>2];c[L+12>>2]=c[J+12>>2];Nt(b,2,K,L,N,M,g)}g=c[O+12>>2]|0;if(!g)break;J=O+32|0;O=(c[O>>2]|0)+((c[O+4>>2]|0)+-1<<4)|0;c[K>>2]=c[J>>2];c[K+4>>2]=c[J+4>>2];c[K+8>>2]=c[J+8>>2];c[K+12>>2]=c[J+12>>2];c[L>>2]=c[O>>2];c[L+4>>2]=c[O+4>>2];c[L+8>>2]=c[O+8>>2];c[L+12>>2]=c[O+12>>2];Nt(b,3,K,L,N,M,g);break}g=c[J>>2]|0;if(!n){do if(!(a[g+115>>0]&3)){if(a[i>>0]|0){wD(b,i);yD(b,j);break}wD(b,122106);if(!(a[j>>0]|0)){yD(b,122106);break}else{yD(b,j);break}}while(0);k=b+152|0;m=O+4|0;n=O+8|0;o=O+12|0;p=O+32|0;q=O+16|0;j=0;while(1){g=c[(c[J>>2]|0)+8>>2]|0;if((j|0)>=(c[g+4>>2]|0))break a;u=O;r=(c[g>>2]|0)+(j*48|0)|0;s=u+48|0;do{c[u>>2]=c[r>>2];u=u+4|0;r=r+4|0}while((u|0)<(s|0));g=c[O>>2]|0;i=c[m>>2]|0;do if(!(c[k>>2]&16384)){ED(b,g,i,0,0,0);g=c[n>>2]|0;if(g|0){I=c[O>>2]|0;c[K>>2]=c[q>>2];c[K+4>>2]=c[q+4>>2];c[K+8>>2]=c[q+8>>2];c[K+12>>2]=c[q+12>>2];c[L>>2]=c[I>>2];c[L+4>>2]=c[I+4>>2];c[L+8>>2]=c[I+8>>2];c[L+12>>2]=c[I+12>>2];Nt(b,2,K,L,N,M,g)}g=c[o>>2]|0;if(g|0){I=(c[O>>2]|0)+((c[m>>2]|0)+-1<<4)|0;c[K>>2]=c[p>>2];c[K+4>>2]=c[p+4>>2];c[K+8>>2]=c[p+8>>2];c[K+12>>2]=c[p+12>>2];c[L>>2]=c[I>>2];c[L+4>>2]=c[I+4>>2];c[L+8>>2]=c[I+8>>2];c[L+12>>2]=c[I+12>>2];Nt(b,3,K,L,N,M,g)}if((c[(c[(c[J>>2]|0)+8>>2]|0)+4>>2]|0)>1){if(!(c[n>>2]|0)){if(!(v&(c[o>>2]|0)!=0))break}else if(!v)break;AD(b,f)}}else ED(b,g,i,c[n>>2]|0,c[o>>2]|0,0);while(0);j=j+1|0}}I=c[(c[g+8>>2]|0)+4>>2]|0;A=I*48|0;z=WI(A)|0;A=WI(A)|0;t=+(q+2|0)*.5;v=O+4|0;p=C+8|0;q=D+8|0;e=E+8|0;f=F+8|0;o=0;while(1){if((o|0)>=(I|0))break;u=O;r=(c[c[(c[J>>2]|0)+8>>2]>>2]|0)+(o*48|0)|0;s=u+48|0;do{c[u>>2]=c[r>>2];u=u+4|0;r=r+4|0}while((u|0)<(s|0));g=c[v>>2]|0;c[z+(o*48|0)+4>>2]=g;c[A+(o*48|0)+4>>2]=g;n=g<<4;m=WI(n)|0;c[z+(o*48|0)>>2]=m;n=WI(n)|0;c[A+(o*48|0)>>2]=n;k=c[O>>2]|0;c[F>>2]=c[k>>2];c[F+4>>2]=c[k+4>>2];c[F+8>>2]=c[k+8>>2];c[F+12>>2]=c[k+12>>2];k=0;while(1){if((k|0)>=(g+-1|0))break;c[C>>2]=c[F>>2];c[C+4>>2]=c[F+4>>2];c[C+8>>2]=c[F+8>>2];c[C+12>>2]=c[F+12>>2];g=k+1|0;j=(c[O>>2]|0)+(g<<4)|0;c[D>>2]=c[j>>2];c[D+4>>2]=c[j+4>>2];c[D+8>>2]=c[j+8>>2];c[D+12>>2]=c[j+12>>2];j=m+(k<<4)|0;if(!k){c[K>>2]=c[C>>2];c[K+4>>2]=c[C+4>>2];c[K+8>>2]=c[C+8>>2];c[K+12>>2]=c[C+12>>2];c[L>>2]=c[D>>2];c[L+4>>2]=c[D+4>>2];c[L+8>>2]=c[D+8>>2];c[L+12>>2]=c[D+12>>2];Mu(G,K,L);c[j>>2]=c[G>>2];c[j+4>>2]=c[G+4>>2];c[j+8>>2]=c[G+8>>2];c[j+12>>2]=c[G+12>>2]}else{c[K>>2]=c[E>>2];c[K+4>>2]=c[E+4>>2];c[K+8>>2]=c[E+8>>2];c[K+12>>2]=c[E+12>>2];c[L>>2]=c[D>>2];c[L+4>>2]=c[D+4>>2];c[L+8>>2]=c[D+8>>2];c[L+12>>2]=c[D+12>>2];Mu(H,K,L);c[j>>2]=c[H>>2];c[j+4>>2]=c[H+4>>2];c[j+8>>2]=c[H+8>>2];c[j+12>>2]=c[H+12>>2]}R=c[O>>2]|0;s=k+2|0;S=R+(s<<4)|0;c[E>>2]=c[S>>2];c[E+4>>2]=c[S+4>>2];c[E+8>>2]=c[S+8>>2];c[E+12>>2]=c[S+12>>2];u=k+3|0;R=R+(u<<4)|0;c[F>>2]=c[R>>2];c[F+4>>2]=c[R+4>>2];c[F+8>>2]=c[R+8>>2];c[F+12>>2]=c[R+12>>2];Q=m+(g<<4)|0;r=m+(s<<4)|0;c[w>>2]=c[C>>2];c[w+4>>2]=c[C+4>>2];c[w+8>>2]=c[C+8>>2];c[w+12>>2]=c[C+12>>2];c[x>>2]=c[D>>2];c[x+4>>2]=c[D+4>>2];c[x+8>>2]=c[D+8>>2];c[x+12>>2]=c[D+12>>2];c[K>>2]=c[S>>2];c[K+4>>2]=c[S+4>>2];c[K+8>>2]=c[S+8>>2];c[K+12>>2]=c[S+12>>2];c[L>>2]=c[R>>2];c[L+4>>2]=c[R+4>>2];c[L+8>>2]=c[R+8>>2];c[L+12>>2]=c[R+12>>2];Nu(y,w,x,K,L);c[r>>2]=c[y>>2];c[r+4>>2]=c[y+4>>2];c[r+8>>2]=c[y+8>>2];c[r+12>>2]=c[y+12>>2];c[Q>>2]=c[y>>2];c[Q+4>>2]=c[y+4>>2];c[Q+8>>2]=c[y+8>>2];c[Q+12>>2]=c[y+12>>2];h[n+(k<<4)>>3]=+h[C>>3]-+h[j>>3]*t;h[n+(k<<4)+8>>3]=+h[p>>3]-+h[m+(k<<4)+8>>3]*t;h[n+(g<<4)>>3]=+h[D>>3]-+h[Q>>3]*t;h[n+(g<<4)+8>>3]=+h[q>>3]-+h[m+(g<<4)+8>>3]*t;h[n+(s<<4)>>3]=+h[E>>3]-+h[r>>3]*t;h[n+(s<<4)+8>>3]=+h[e>>3]-+h[m+(s<<4)+8>>3]*t;k=u;g=c[v>>2]|0}S=m+(k<<4)|0;c[K>>2]=c[E>>2];c[K+4>>2]=c[E+4>>2];c[K+8>>2]=c[E+8>>2];c[K+12>>2]=c[E+12>>2];c[L>>2]=c[F>>2];c[L+4>>2]=c[F+4>>2];c[L+8>>2]=c[F+8>>2];c[L+12>>2]=c[F+12>>2];Mu(B,K,L);c[S>>2]=c[B>>2];c[S+4>>2]=c[B+4>>2];c[S+8>>2]=c[B+8>>2];c[S+12>>2]=c[B+12>>2];h[n+(k<<4)>>3]=+h[F>>3]-+h[S>>3]*t;h[n+(k<<4)+8>>3]=+h[f>>3]-+h[m+(k<<4)+8>>3]*t;o=o+1|0}s=CL(i)|0;f=0;r=i;g=i;j=i;i=s;while(1){i=zL(i,92961)|0;if(!i)break;e=(a[i>>0]|0)==0?122106:i;if((e|0)!=(j|0))if(!(a[(c[J>>2]|0)+115>>0]&3)){wD(b,e);yD(b,e);j=e}else j=e;m=(f|0)==0;n=f>>>0<2;i=0;while(1){if((i|0)>=(I|0))break;o=c[A+(i*48|0)>>2]|0;p=c[z+(i*48|0)>>2]|0;q=c[A+(i*48|0)+4>>2]|0;k=0;while(1){if((k|0)>=(q|0))break;S=o+(k<<4)|0;h[S>>3]=+h[S>>3]+ +h[p+(k<<4)>>3];S=o+(k<<4)+8|0;h[S>>3]=+h[S>>3]+ +h[p+(k<<4)+8>>3];k=k+1|0}ED(b,o,q,0,0,0);i=i+1|0}f=f+1|0;r=m?e:r;g=n?e:g;i=0}i=c[O+8>>2]|0;if(!i)i=0;else{if(g){if(!(a[(c[J>>2]|0)+115>>0]&3)){wD(b,g);yD(b,g)}}else g=0;R=O+16|0;S=c[O>>2]|0;c[K>>2]=c[R>>2];c[K+4>>2]=c[R+4>>2];c[K+8>>2]=c[R+8>>2];c[K+12>>2]=c[R+12>>2];c[L>>2]=c[S>>2];c[L+4>>2]=c[S+4>>2];c[L+8>>2]=c[S+8>>2];c[L+12>>2]=c[S+12>>2];Nt(b,2,K,L,N,M,i);i=g}j=O+12|0;g=c[j>>2]|0;if(g|0){if((i|0)!=(r|0)?(a[(c[J>>2]|0)+115>>0]&3)==0:0){wD(b,r);yD(b,r);g=c[j>>2]|0}R=O+32|0;S=(c[O>>2]|0)+((c[v>>2]|0)+-1<<4)|0;c[K>>2]=c[R>>2];c[K+4>>2]=c[R+4>>2];c[K+8>>2]=c[R+8>>2];c[K+12>>2]=c[R+12>>2];c[L>>2]=c[S>>2];c[L+4>>2]=c[S+4>>2];c[L+8>>2]=c[S+8>>2];c[L+12>>2]=c[S+12>>2];Nt(b,3,K,L,N,M,g)}XI(s);g=0;while(1){if((g|0)>=(I|0))break;XI(c[z+(g*48|0)>>2]|0);XI(c[A+(g*48|0)>>2]|0);g=g+1|0}XI(z);XI(A)}while(0);l=P;return}function Bu(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=l;l=l+64|0;r=x+48|0;u=x+32|0;t=x+16|0;s=x;w=c[a+16>>2]|0;v=c[w+8>>2]|0;q=w+208|0;if(!((c[q>>2]|0)==0?!(b[w+260>>1]&1):0))d=3;a:do if((d|0)==3?(sD(a),p=w+276|0,e=c[p>>2]|0,e|0):0){h=w+280|0;d=c[h>>2]|0;i=w+268|0;j=w+284|0;k=w+272|0;m=w+228|0;n=w+244|0;o=w+212|0;f=c[d>>2]|0;g=1;while(1){if((g|0)>=(e|0))break a;c[i>>2]=c[d+(g<<2)>>2];c[k>>2]=(c[j>>2]|0)+(f<<4);rD(a,c[q>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0);sD(a);y=c[h>>2]|0;f=(c[y+(g<<2)>>2]|0)+f|0;g=g+1|0;e=c[p>>2]|0;d=y}}while(0);c[w+268>>2]=0;c[w+272>>2]=0;q=v+16|0;d=c[q>>2]|0;e=c[d+8>>2]|0;if(!e)f=w+260|0;else{p=c[e>>2]|0;d=c[p>>2]|0;y=c[p+8>>2]|0;o=p+16|0;c[t>>2]=c[o>>2];c[t+4>>2]=c[o+4>>2];c[t+8>>2]=c[o+8>>2];c[t+12>>2]=c[o+12>>2];p=p+32|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2];if(!y){c[u>>2]=c[d>>2];c[u+4>>2]=c[d+4>>2];c[u+8>>2]=c[d+8>>2];c[u+12>>2]=c[d+12>>2]}else{c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2]}f=w+260|0;p=b[f>>1]|0;o=c[w+220>>2]|0;c[r>>2]=c[u>>2];c[r+4>>2]=c[u+4>>2];c[r+8>>2]=c[u+8>>2];c[r+12>>2]=c[u+12>>2];Cu(a,r,(p<<8&65535)<<16>>16>>15&255,o,(p<<14&65535)<<16>>16>>15&255);p=c[(c[q>>2]|0)+8>>2]|0;o=c[p>>2]|0;p=(c[p+4>>2]|0)+-1|0;d=c[o+(p*48|0)>>2]|0;e=c[o+(p*48|0)+4>>2]|0;y=c[o+(p*48|0)+12>>2]|0;n=o+(p*48|0)+16|0;c[t>>2]=c[n>>2];c[t+4>>2]=c[n+4>>2];c[t+8>>2]=c[n+8>>2];c[t+12>>2]=c[n+12>>2];t=o+(p*48|0)+32|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];if(!y){y=d+(e+-1<<4)|0;c[u>>2]=c[y>>2];c[u+4>>2]=c[y+4>>2];c[u+8>>2]=c[y+8>>2];c[u+12>>2]=c[y+12>>2]}else{c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];c[u+8>>2]=c[s+8>>2];c[u+12>>2]=c[s+12>>2]}d=b[f>>1]|0;y=c[w+224>>2]|0;c[r>>2]=c[u>>2];c[r+4>>2]=c[u+4>>2];c[r+8>>2]=c[u+8>>2];c[r+12>>2]=c[u+12>>2];Cu(a,r,(d<<7&65535)<<16>>16>>15&255,y,(d<<13&65535)<<16>>16>>15&255);d=c[q>>2]|0}e=c[d+96>>2]|0;g=(b[f>>1]<<12&65535)<<16>>16>>15<<16>>16;m=w+216|0;h=c[m>>2]|0;n=w+232|0;i=c[n>>2]|0;o=w+248|0;j=c[o>>2]|0;p=w+212|0;k=c[p>>2]|0;if(!((DA(AA(v,c[42229]|0,122100)|0)|0)<<24>>24))d=0;else d=c[(c[q>>2]|0)+8>>2]|0;Du(a,e,11,g,h,i,j,k,d);j=c[(c[q>>2]|0)+108>>2]|0;k=(b[f>>1]<<12&65535)<<16>>16>>15<<16>>16;i=c[m>>2]|0;h=c[n>>2]|0;e=c[o>>2]|0;g=c[p>>2]|0;if(!((DA(AA(v,c[42229]|0,122100)|0)|0)<<24>>24))d=0;else d=c[(c[q>>2]|0)+8>>2]|0;Du(a,j,11,k,i,h,e,g,d);Du(a,c[(c[q>>2]|0)+100>>2]|0,7,(b[f>>1]<<13&65535)<<16>>16>>15<<16>>16,c[w+224>>2]|0,c[w+240>>2]|0,c[w+256>>2]|0,c[p>>2]|0,0);Du(a,c[(c[q>>2]|0)+104>>2]|0,6,(b[f>>1]<<14&65535)<<16>>16>>15<<16>>16,c[w+220>>2]|0,c[w+236>>2]|0,c[w+252>>2]|0,c[p>>2]|0,0);qD(a);Rt(a);l=x;return}function Cu(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+16|0;h=j;i=c[a+16>>2]|0;if(!(e<<24>>24))f=c[i+208>>2]|0;if(!(g<<24>>24==0?((f|0)==0?(b[i+260>>1]&1)==0:0):0)){c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];Hu(a,h)}l=j;return}function Du(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+16|0;o=r;q=c[b+152>>2]|0;if(d|0?a[d+81>>0]|0:0){if(!j)n=0;else{n=qw((oJ(j)|0)+11|0)|0;switch(e|0){case 11:{m=86184;break}case 7:{m=86600;break}case 6:{m=86610;break}default:ma(123205,84869,2730,85004)}c[o>>2]=j;c[o+4>>2]=m;lL(n,85020,o)|0}o=b+16|0;j=(c[o>>2]|0)+12|0;p=c[j>>2]|0;c[j>>2]=e;j=(f|0)!=0|(g|0)!=0;m=(q&4|0)==0;if(j&m){Eu(b,d);rD(b,g,h,i,n)}kw(b,e,d);if(k|0)Fu(b,d,k);if(j){if(!m){Eu(b,d);rD(b,g,h,i,n)}sD(b)}XI(n);c[(c[o>>2]|0)+12>>2]=p}l=r;return}function Eu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840|0){f=e&131072;i=f>>>16^2;c[d+264>>2]=i;j=d+268|0;c[j>>2]=i+2;i=d+272|0;XI(c[i>>2]|0);d=qw(c[j>>2]<<4)|0;c[i>>2]=d;i=b+56|0;j=b+24|0;h[d>>3]=+h[i>>3]-+h[j>>3]*.5;g=b+64|0;b=b+32|0;h[d+8>>3]=+h[g>>3]-+h[b>>3]*.5;h[d+16>>3]=+h[j>>3]*.5+ +h[i>>3];h[d+24>>3]=+h[b>>3]*.5+ +h[g>>3];if(!(e&8192))aD(a,d,d,2)|0;if(!f)Uv(d)}return}function Fu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+96|0;g=o+80|0;i=o+32|0;j=o+16|0;k=o;f=c[d>>2]|0;while(1){m=a[f>>0]|0;if(!(m<<24>>24))break;if(!(UJ(m&255)|0)){n=4;break}else f=f+1|0}if((n|0)==4){p=+h[d+24>>3];m=d+56|0;Gu(i,+h[m>>3]+p*.5,+h[d+64>>3]-+h[d+32>>3]*.5);n=i+16|0;Gu(j,+h[i>>3]-p,+h[i+8>>3]);c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];n=i+32|0;c[g>>2]=c[m>>2];c[g+4>>2]=c[m+4>>2];c[g+8>>2]=c[m+8>>2];c[g+12>>2]=c[m+12>>2];QA(k,e,g);c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];AD(b,c[(c[b>>2]|0)+336>>2]|0);wD(b,c[d+8>>2]|0);FD(b,i,3)}l=o;return}function Gu(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function Hu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,j=0,k=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840|0){f=e&131072;j=f>>>16^2;c[d+264>>2]=j;k=d+268|0;c[k>>2]=j+2;j=d+272|0;XI(c[j>>2]|0);d=qw(c[k>>2]<<4)|0;c[j>>2]=d;i=+h[b>>3];h[d>>3]=i+-3.0;g=+h[b+8>>3];h[d+8>>3]=g+-3.0;h[d+16>>3]=i+3.0;h[d+24>>3]=g+3.0;if(!(e&8192))aD(a,d,d,2)|0;if(!f)Uv(d)}return}function Iu(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;i=+i;var j=0,k=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=l;l=l+256|0;D=J+224|0;C=J+208|0;j=J+192|0;F=J+144|0;G=J+96|0;H=J+48|0;E=J;k=J+240|0;e=Wt(e,f,k)|0;if((e|0)>1){z=b+48|0;A=qo(c[((c[b>>2]&3|0)==3?b:z)+40>>2]|0)|0;z=Cn(c[((c[b>>2]&3|0)==3?b:z)+40>>2]|0)|0;A=(pn(A)|0)!=0;B=Cn(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[j>>2]=z;c[j+4>>2]=A?85039:85044;c[j+8>>2]=B;Zl(3,85049,j)|0;if((e|0)==2)e=1;else I=4}else if((e|0)==1)e=1;else I=4;if((I|0)==4){B=b+16|0;r=c[k>>2]|0;s=r+8|0;t=H+4|0;u=F+8|0;v=F+12|0;w=(d|0)!=0;q=(d|0)==0;x=F+32|0;y=F+4|0;z=F+16|0;A=E+4|0;e=0;p=0;while(1){f=c[(c[B>>2]|0)+8>>2]|0;if((p|0)>=(c[f+4>>2]|0))break;j=F;f=(c[f>>2]|0)+(p*48|0)|0;b=j+48|0;do{c[j>>2]=c[f>>2];j=j+4|0;f=f+4|0}while((j|0)<(b|0));b=1;m=1.0;o=c[s>>2]|0;a:while(1){f=c[o>>2]|0;if(!f)break;k=o+4|0;n=+g[k>>2];do if(n<1.0e-05&n>-1.0e-05)f=b;else{wD(a,f);n=+g[k>>2];m=m-n;e=c[o>>2]|0;if(b|0){Su(F,n,H,E);k=c[H>>2]|0;ED(a,k,c[t>>2]|0,0,0,0);XI(k);if(m<1.0e-05&m>-1.0e-05){I=11;break a}else{f=0;break}}if(m<1.0e-05&m>-1.0e-05){I=13;break a}j=G;f=E;b=j+48|0;do{c[j>>2]=c[f>>2];j=j+4|0;f=f+4|0}while((j|0)<(b|0));n=+g[k>>2];Su(G,n/(m+n),H,E);XI(c[G>>2]|0);f=c[H>>2]|0;ED(a,f,c[t>>2]|0,0,0,0);XI(f);f=0}while(0);b=f;o=o+12|0}if((I|0)==11){I=0;XI(c[E>>2]|0)}else if((I|0)==13){I=0;o=c[E>>2]|0;ED(a,o,c[A>>2]|0,0,0,0);XI(o)}if(c[u>>2]|0){wD(a,c[c[s>>2]>>2]|0);yD(a,c[c[s>>2]>>2]|0);k=c[F>>2]|0;o=c[u>>2]|0;c[C>>2]=c[z>>2];c[C+4>>2]=c[z+4>>2];c[C+8>>2]=c[z+8>>2];c[C+12>>2]=c[z+12>>2];c[D>>2]=c[k>>2];c[D+4>>2]=c[k+4>>2];c[D+8>>2]=c[k+8>>2];c[D+12>>2]=c[k+12>>2];Nt(a,2,C,D,h,i,o)}if(c[v>>2]|0){wD(a,e);yD(a,e);k=(c[F>>2]|0)+((c[y>>2]|0)+-1<<4)|0;o=c[v>>2]|0;c[C>>2]=c[x>>2];c[C+4>>2]=c[x+4>>2];c[C+8>>2]=c[x+8>>2];c[C+12>>2]=c[x+12>>2];c[D>>2]=c[k>>2];c[D+4>>2]=c[k+4>>2];c[D+8>>2]=c[k+8>>2];c[D+12>>2]=c[k+12>>2];Nt(a,3,C,D,h,i,o)}do if((c[(c[(c[B>>2]|0)+8>>2]|0)+4>>2]|0)>1){if(!(c[u>>2]|0)){if(!(w&(c[v>>2]|0)!=0))break}else if(q)break;AD(a,d)}while(0);p=p+1|0}Xt(r);e=0}l=J;return e|0}function Ju(b,d){b=b|0;d=d|0;var e=0,f=0;e=1;a:while(1){switch(a[b>>0]|0){case 0:break a;case 58:{e=e+1|0;break}default:{}}b=b+1|0}f=O((oJ(d)|0)+1|0,e)|0;b=f+10|0;if((c[42166]|0)<(f|0)){c[42166]=b;b=ZI(c[42167]|0,b)|0;c[42167]=b}else b=c[42167]|0;tK(b,d)|0;while(1){e=e+-1|0;b=c[42167]|0;if(!e)break;f=b+(oJ(b)|0)|0;a[f>>0]=58;a[f+1>>0]=0;EL(b,d)|0}return b|0}function Ku(b){b=b|0;var d=0,e=0;d=c[42227]|0;a:do if(!d)e=7;else{d=Im(b,d)|0;switch(a[d>>0]|0){case 110:if(!(uJ(d,120501)|0)){d=1;break a}else{e=7;break a}case 102:if(!(uJ(d,85026)|0)){d=2;break a}else{e=7;break a}case 98:{if(!(uJ(d,85034)|0)){d=3;break a}if(!(uJ(d,96e3)|0)){d=4;break a}else{e=7;break a}}default:{e=7;break a}}}while(0);if((e|0)==7){d=(pn(qo(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)|0)!=0;d=d?2:1}return d|0}function Lu(a){a=a|0;if(a|0){XI(c[a+8>>2]|0);XI(a)}return}function Mu(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;e=+h[b>>3]-+h[c>>3];f=+h[b+8>>3]-+h[c+8>>3];d=2.0/+C(+(e*e+.0001+f*f));h[a>>3]=d*f;h[a+8>>3]=-(e*d);return}function Nu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0;g=+h[c>>3]-+h[d>>3];i=+h[c+8>>3]-+h[d+8>>3];f=+C(+(i*i+g*g));if(f<.0001){j=+h[b>>3]-+h[e>>3];f=+h[b+8>>3]-+h[e+8>>3];i=f;g=j;f=+C(+(j*j+.0001+f*f))}j=2.0/f;h[a>>3]=i*j;h[a+8>>3]=-(j*g);return}function Ou(a,b,c){a=+a;b=+b;c=+c;return +(c*.5*(1.0-a/b))}function Pu(a,b,c){a=+a;b=+b;c=+c;return +(c*.5)}function Qu(a,b,c){a=+a;b=+b;c=+c;return +(c*.5*(a/b))}function Ru(a,b,c){a=+a;b=+b;c=+c;b=a/b;return +((!(b<=.5)?1.0-b:b)*c)}function Su(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0;p=l;l=l+16|0;o=p;n=c[a+4>>2]|0;j=(n+-1|0)/3|0;if((n+-4|0)>>>0<3){c[d+4>>2]=4;c[d>>2]=qw(64)|0;c[e+4>>2]=4;n=qw(64)|0;c[e>>2]=n;KA(o,c[a>>2]|0,3,b,c[d>>2]|0,n)}else{n=qw(j<<3)|0;g=0;i=c[a>>2]|0;f=0.0;while(1){if((g|0)>=(j|0))break;q=+Tu(i);h[n+(g<<3)>>3]=q;g=g+1|0;i=i+48|0;f=q+f}b=f*b;m=0;f=0.0;while(1){if((j|0)<=(m|0))break;f=+h[n+(m<<3)>>3]+f;if(f>=b)break;m=m+1|0}k=m*3|0;g=k+4|0;i=d+4|0;c[i>>2]=g;c[d>>2]=qw(g<<4)|0;g=((j-m|0)*3|0)+1|0;j=e+4|0;c[j>>2]=g;c[e>>2]=qw(g<<4)|0;g=0;while(1){if((g|0)>=(c[i>>2]|0))break;r=(c[d>>2]|0)+(g<<4)|0;s=(c[a>>2]|0)+(g<<4)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];g=g+1|0}g=g+-4|0;i=0;while(1){if((i|0)>=(c[j>>2]|0))break;s=(c[e>>2]|0)+(i<<4)|0;r=(c[a>>2]|0)+(g<<4)|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];g=g+1|0;i=i+1|0}q=+h[n+(m<<3)>>3];KA(o,(c[a>>2]|0)+(k<<4)|0,3,(b-f+q)/q,(c[d>>2]|0)+(k<<4)|0,c[e>>2]|0);XI(n)}l=p;return}function Tu(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0;e=+h[a+16>>3];d=+h[a>>3]-e;f=+h[a+24>>3];b=+h[a+8>>3]-f;d=+C(+(b*b+d*d));b=+h[a+32>>3];e=e-b;c=+h[a+40>>3];f=f-c;d=+C(+(f*f+e*e))+d;b=b-+h[a+48>>3];c=c-+h[a+56>>3];return +(d+ +C(+(c*c+b*b)))}function Uu(b,d){b=b|0;d=d|0;d=ro(d)|0;if((a[(c[d+16>>2]|0)+115>>0]|0)==1)d=tB(b)|0;else d=qB(b,d)|0;return $u(d)|0}function Vu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+1664|0;m=q+1600|0;n=q+800|0;o=q;p=rw(24)|0;c[p+16>>2]=1;j=((c[e+4>>2]|0)+-1|0)/3|0;h=0;i=p;while(1){if((h|0)>=(j|0))break;k=h*3|0;g=0;while(1){if((g|0)==4)break;r=m+(g<<4)|0;s=(c[e>>2]|0)+(g+k<<4)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];g=g+1|0}h=h+1|0;i=Wu(m,i)|0}g=0;h=0;i=p;while(1){if(!i){h=p;g=p;break}j=c[i+16>>2]|0;k=n+(g<<4)|0;e=o+(g<<4)|0;Xu(h,i,j,k,e,f);g=g+1|0;if(!((g|0)==50|(j|0)==0)){h=i;i=j;continue}Yu(a,b,d,g,n,o);c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];c[o>>2]=c[e>>2];c[o+4>>2]=c[e+4>>2];c[o+8>>2]=c[e+8>>2];c[o+12>>2]=c[e+12>>2];h=i;g=1;i=j}while(1){if(!h)break;s=c[h+16>>2]|0;XI(g);h=s;g=s}l=q;return}function Wu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+144|0;f=g+128|0;d=g+64|0;e=g;if(!(au(a)|0)){KA(f,a,3,.5,d,e);d=Wu(e,Wu(d,b)|0)|0}else{d=b+16|0;if((c[d>>2]|0)==1){c[d>>2]=0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2]}d=a+48|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];d=_u(f,b)|0}l=g;return d|0}function Xu(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;r=l;l=l+96|0;n=r+80|0;m=r+64|0;k=r+48|0;o=r+32|0;p=r+16|0;q=r;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];do if(a){c[p>>2]=c[a>>2];c[p+4>>2]=c[a+4>>2];c[p+8>>2]=c[a+8>>2];c[p+12>>2]=c[a+12>>2];if(!d){i=+h[o>>3];h[q>>3]=i*2.0-+h[p>>3];j=+h[o+8>>3];h[q+8>>3]=j*2.0-+h[p+8>>3];break}else{c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];i=+h[o>>3];j=+h[o+8>>3];break}}else{c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];i=+h[o>>3];h[p>>3]=i*2.0-+h[q>>3];j=+h[o+8>>3];h[p+8>>3]=j*2.0-+h[q+8>>3]}while(0);c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];c[n+12>>2]=c[q+12>>2];t=+Zu(k,m,n);s=+E(+t)*g;g=+F(+t)*g;h[e>>3]=i+s;h[e+8>>3]=j+g;h[f>>3]=i-s;h[f+8>>3]=j-g;l=r;return}function Yu(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;i=e<<1;j=c[d>>2]|0;h=0;k=0;while(1){if((h|0)>=(j|0))break;l=(c[(c[b>>2]|0)+(h<<2)>>2]|0)+k|0;h=h+1|0;k=l}l=j+1|0;c[d>>2]=l;l=tw(c[b>>2]|0,l<<2)|0;c[b>>2]=l;c[l+(h<<2)>>2]=i;c[a>>2]=tw(c[a>>2]|0,k+i<<4)|0;b=i+-1+k|0;h=0;while(1){if((h|0)>=(e|0))break;l=(c[a>>2]|0)+(h+k<<4)|0;j=f+(h<<4)|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];l=(c[a>>2]|0)+(b-h<<4)|0;j=g+(h<<4)|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];h=h+1|0}return}function Zu(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;f=+h[b+8>>3];d=+h[b>>3];e=+K(+(+h[c+8>>3]-f),+(+h[c>>3]-d));d=+K(+(+h[a+8>>3]-f),+(+h[a>>3]-d));e=e-d;return +((e>0.0?e+-6.283185307179586:e)*.5+d)}function _u(a,b){a=a|0;b=b|0;var d=0;d=rw(24)|0;c[d+16>>2]=0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[b+16>>2]=d;return d|0}function $u(b){b=b|0;var c=0,d=0,e=0,f=0,g=0;c=b;f=b;a:while(1){e=0;while(1){d=c;c=c+1|0;d=a[d>>0]|0;if(!(d<<24>>24))break a;if(e<<24>>24){g=5;break}if(d<<24>>24!=92)break;else e=1}b:do if((g|0)==5){g=0;switch(d<<24>>24|0){case 114:{d=13;break b}case 108:case 110:{d=10;break b}default:break b}}while(0);a[f>>0]=d;f=f+1|0}a[f>>0]=0;return b|0}function av(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b>>2]|0;while(1){g=a[e>>0]|0;if(!(g<<24>>24)){f=0;break}f=g<<24>>24;if(!(g<<24>>24==44|(UJ(f)|0)!=0)){h=5;break}e=e+1|0}a:do if((h|0)==5){switch(f|0){case 0:{f=0;break a}case 41:case 40:{e=e+1|0;break a}default:{}}h=d+4|0;i=d+8|0;while(1){if((bv(g<<24>>24)|0)<<24>>24){f=1;break a}f=c[h>>2]|0;if(f>>>0>=(c[i>>2]|0)>>>0){cm(d,1)|0;f=c[h>>2]|0}c[h>>2]=f+1;a[f>>0]=g;f=e+1|0;e=f;g=a[f>>0]|0}}while(0);c[b>>2]=e;return f|0}function bv(a){a=a|0;switch(a|0){case 0:case 44:case 41:case 40:{a=1;break}default:a=0}return a|0}function cv(a,b){a=a|0;b=b|0;return dv(c[a>>2]|0,c[a+160>>2]|0,c[a+156>>2]|0,b)|0}function dv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+160|0;k=o+20|0;m=o+16|0;n=o;c[k>>2]=0;c[m>>2]=0;bm(n,128,o+24|0);em(n,f)|0;g=n+4|0;f=c[g>>2]|0;if(f>>>0>=(c[n+8>>2]|0)>>>0){cm(n,1)|0;f=c[g>>2]|0}a[f>>0]=0;h=c[n>>2]|0;c[g>>2]=h;i=b+300|0;j=b+296|0;f=0;g=h;a:while(1){if(f){f=1;break}f=BL(g,c[i>>2]|0,k)|0;if(!f){f=0;break}g=BL(f,c[j>>2]|0,m)|0;h=(g|0)!=0;if(h)f=BL(0,c[j>>2]|0,m)|0;else f=0;switch(((f|0)!=0&1)+(h&1)&3){case 2:{g=ev(b,g,0)|0;f=ev(b,f,e)|0;h=(g|0)>(f|0);f=(f&g|0)>-1&(((h?g:f)|0)>=(d|0)&((h?f:g)|0)<=(d|0));g=0;continue a}case 1:{f=(ev(b,g,d)|0)==(d|0);g=0;continue a}default:{f=0;g=0;continue a}}}fm(n);l=o;return f|0}function ev(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=a[d>>0]|0;if(!(h<<24>>24==97?(uJ(d,85363)|0)==0:0))f=3;a:do if((f|0)==3){if((fv(d)|0)<<24>>24){e=nM(d)|0;break}g=c[b+308>>2]|0;if(!g)e=-1;else{b=c[b+312>>2]|0;e=1;while(1){if((e|0)>(b|0)){e=-1;break a}f=c[g+(e<<2)>>2]|0;if(h<<24>>24==(a[f>>0]|0)?(uJ(d,f)|0)==0:0)break a;e=e+1|0}}}while(0);return e|0}function fv(b){b=b|0;var c=0;while(1){c=a[b>>0]|0;if(!(c<<24>>24)){b=1;break}if(((c&255)+-48|0)>>>0<10)b=b+1|0;else{b=0;break}}return b|0}function gv(a,b){a=a|0;b=b|0;if((+h[a+16>>3]>=+h[b>>3]?+h[b+16>>3]>=+h[a>>3]:0)?+h[a+24>>3]>=+h[b+8>>3]:0)a=+h[b+24>>3]>=+h[a+8>>3]&1;else a=0;return a|0}function hv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;a:do if((c[b+156>>2]|0)>=2?(f=AA(e,c[42210]|0,174177)|0,(cv(b,f)|0)<<24>>24==0):0)if(!(a[f>>0]|0))if(!(Tm(d,e)|0))f=1;else{f=Tm(d,e)|0;while(1){if(!f){f=0;break a}g=AA(f,c[42233]|0,174177)|0;if(!(a[g>>0]|0)){f=1;break a}if((cv(b,g)|0)<<24>>24){f=1;break a}f=Um(d,f,e)|0}}else f=0;else f=1;while(0);return f|0}function iv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+64|0;e=d+32|0;f=d;a=(c[a+16>>2]|0)+48|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[f+28>>2]=c[a+28>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];c[e+24>>2]=c[b+24>>2];c[e+28>>2]=c[b+28>>2];b=(gv(f,e)|0)&255;l=d;return b|0}function jv(a,d){a=a|0;d=d|0;var f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0.0,v=0.0;r=c[a+152>>2]|0;s=Qt(a)|0;c[s+4>>2]=2;c[s+8>>2]=d;c[s+12>>2]=8;if(r&16777216|0){if((e[(c[(qo(d)|0)+16>>2]|0)+178>>1]|0)>2){f=+h[(c[(c[d+16>>2]|0)+132>>2]|0)+16>>3]*72.0;f=+(~~(f+(f>=0.0?.5:-.5))|0)}else f=0.0;h[s+168>>3]=f}k=d+16|0;lv(a,c[(c[k>>2]|0)+104>>2]|0,d);do if(r&4259840|0){if((c[s+208>>2]|0)==0?(b[s+260>>1]&1)==0:0)break;p=wy(d)|0;l=c[k>>2]|0;f=+h[l+16>>3];q=+h[l+24>>3];l=mv(d)|0;a:do if((p|2|0)==3){n=c[(c[k>>2]|0)+12>>2]|0;if(!((nv(n)|0)<<24>>24))g=0;else g=(c[n+4>>2]|l|0)!=0;if(!((r&524288|0)==0|((n|0)==0|g))){i=n+8|0;o=c[i>>2]|0;o=(o|0)<3?1:o;j=n+4|0;m=c[j>>2]|0;m=(m|0)>1?m:1;p=c[n+44>>2]|0;g=Hm(d,87683)|0;if(!g)g=0;else g=nM(g)|0;g=(g+-4|0)>>>0>56?20:g;if(!(c[j>>2]|l)){c[s+264>>2]=0;i=qw(32)|0;g=c[k>>2]|0;v=+h[g+88>>3];h[i>>3]=f-v;u=+h[g+80>>3]*.5;h[i+8>>3]=q-u;h[i+16>>3]=v+f;h[i+24>>3]=u+q;g=2;break}i=c[i>>2]|0;if(((i|0)<3?+h[n+32>>3]==0.0:0)?+h[n+24>>3]==0.0:0){i=s+264|0;if(c[n>>2]|0){c[i>>2]=1;i=qw(32)|0;h[i>>3]=f;h[i+8>>3]=q;g=(m<<1)+-1|0;h[i+16>>3]=+h[p+(g<<4)>>3]+f;h[i+24>>3]=+h[p+(g<<4)+8>>3]+q;g=2;break}c[i>>2]=2;i=(m<<1)+-1|0;i=ov(+h[p+(i<<4)>>3],+h[p+(i<<4)+8>>3],g)|0;j=0;while(1){if((j|0)>=(g|0))break a;p=i+(j<<4)|0;h[p>>3]=+h[p>>3]+f;p=i+(j<<4)+8|0;h[p>>3]=+h[p>>3]+q;j=j+1|0}}m=O(i,m+-1|0)|0;c[s+264>>2]=2;if((i|0)<(g|0)){i=qw(o<<4)|0;g=0;while(1){if((g|0)>=(o|0)){g=o;break a}n=g+m|0;h[i+(g<<4)>>3]=+h[p+(n<<4)>>3]+f;h[i+(g<<4)+8>>3]=+h[p+(n<<4)+8>>3]+q;g=g+1|0}}else{l=(i|0)/(g|0)|0;i=qw(g<<4)|0;j=0;k=0;while(1){if((j|0)>=(g|0))break a;o=k+m|0;h[i+(j<<4)>>3]=+h[p+(o<<4)>>3]+f;h[i+(j<<4)+8>>3]=+h[p+(o<<4)+8>>3]+q;j=j+1|0;k=k+l|0}}}else t=31}else t=31;while(0);if((t|0)==31){c[s+264>>2]=0;i=qw(32)|0;g=c[k>>2]|0;h[i>>3]=f-+h[g+88>>3];v=+h[g+80>>3]*.5;h[i+8>>3]=q-v;h[i+16>>3]=+h[g+96>>3]+f;h[i+24>>3]=v+q;g=2}if(!(r&8192))aD(a,i,i,g)|0;c[s+272>>2]=i;c[s+268>>2]=g}while(0);WE(Hm(d,84992)|0);nD(a,d);return}function kv(a){a=a|0;oD(a);Rt(a);return}function lv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+144|0;j=m;f=Hm(e,96264)|0;i=Hm(e,96229)|0;k=Hm(e,85148)|0;bm(j,128,m+16|0);if(!d)h=0;else h=c[d>>2]|0;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=Hm(e,96269)|0;g=Tt(b,e,j)|0;if(!i)d=0;else d=Uu(i,e)|0;St(b,h,f,d,k,g,e)|0;XI(d);fm(j);l=m;return}function mv(b){b=b|0;var d=0,e=0;b=BA(b,c[42200]|0,174177)|0;a:do if(!(a[b>>0]|0))b=0;else{yu(b)|0;b=0;d=168408;while(1){e=c[d>>2]|0;if(!e)break a;e=(uJ(e,95867)|0)==0;b=e?1:b;d=d+4|0}}while(0);return b|0}function nv(a){a=a|0;var b=0.0;if(((c[a+8>>2]|0)==4?(b=+h[a+16>>3],((~~(b+(b>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[a+24>>3]==0.0:0)a=+h[a+32>>3]==0.0&1;else a=0;return a|0}function ov(a,b,c){a=+a;b=+b;c=c|0;var d=0.0,e=0,f=0.0,g=0;f=6.283185307179586/+(c|0);g=qw(c<<4)|0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;h[g+(e<<4)>>3]=+E(+d)*a;h[g+(e<<4)+8>>3]=+F(+d)*b;d=d+f;e=e+1|0}return g|0}function pv(b,d){b=b|0;d=d|0;var e=0;a:do if((c[b+156>>2]|0)>=2?(e=AA(d,xm(d,0,86527,0)|0,174177)|0,(cv(b,e)|0)<<24>>24==0):0)if(!(a[e>>0]|0)){e=bo(d)|0;while(1){if(!e){e=0;break a}if((hv(b,d,e)|0)<<24>>24){e=1;break a}e=co(d,e)|0}}else e=0;else e=1;while(0);return e|0}function qv(a,b){a=a|0;b=b|0;var d=0;d=Qt(a)|0;c[d+4>>2]=1;c[d+8>>2]=b;c[d+12>>2]=1;lv(a,c[(c[b+16>>2]|0)+12>>2]|0,b);hD(a,b);return}function rv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;b=Hm(b,86423)|0;a:do if((b|0)!=0?(a[b>>0]|0)!=0:0){yu(b)|0;e=168408;b=0;while(1){while(1){f=c[e>>2]|0;if(!f){e=168408;break a}if(!(uJ(f,95867)|0)){g=10;break}if(!(uJ(f,91322)|0)){f=e;g=12;break}if(!(uJ(f,91329)|0)){f=e;g=14;break}if(!(uJ(f,91304)|0)){f=e;g=16;break}e=e+4|0}if((g|0)==10){e=e+4|0;b=b|1;continue}else if((g|0)==12){while(1){h=f;f=f+4|0;g=c[f>>2]|0;c[h>>2]=g;if(!g)break;else g=12}b=b|3;continue}else if((g|0)==14){while(1){g=f;f=f+4|0;h=c[f>>2]|0;c[g>>2]=h;if(!h)break;else g=14}b=b|64;continue}else if((g|0)==16){while(1){g=f;f=f+4|0;h=c[f>>2]|0;c[g>>2]=h;if(!h)break;else g=16}b=b|4;continue}}}else{e=0;b=0}while(0);c[d>>2]=b;return e|0}function sv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+16|0;i=k;j=k+4|0;c[j>>2]=0;m=(Wt(b,0,j)|0)==0;j=c[j>>2]|0;if((m?(f=c[j>>2]|0,(f|0)>=2):0)?(h=j+8|0,(c[c[h>>2]>>2]|0)!=0):0){if((f|0)>2)Zl(0,85390,i)|0;m=rw((oJ(b)|0)+1|0)|0;c[d>>2]=m;tK(m,c[c[h>>2]>>2]|0)|0;if(!(c[(c[h>>2]|0)+12>>2]|0))c[d+4>>2]=0;else{m=c[d>>2]|0;m=m+((oJ(m)|0)+1)|0;c[d+4>>2]=m;tK(m,c[(c[h>>2]|0)+12>>2]|0)|0}b=c[h>>2]|0;do if(!(a[b+8>>0]|0))if(!(a[b+20>>0]|0)){g[e>>2]=0.0;break}else{g[e>>2]=1.0-+g[b+16>>2];break}else c[e>>2]=c[b+4>>2];while(0);Xt(j);b=1}else{c[d>>2]=0;Xt(j);b=0}l=k;return b|0}function tv(a,b){a=a|0;b=b|0;iD(a,b);Rt(a);return}function uv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0,k=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=l;l=l+96|0;p=x+48|0;s=x+16|0;w=x+8|0;v=x;t=x+80|0;c[t>>2]=1e3;f=rw(16e3)|0;u=a+256|0;e=1;j=1;i=0;q=0;r=c[b+8>>2]|0;while(1){if((q|0)>=(c[b>>2]|0))break;d=c[r>>2]|0;a:do switch(d|0){case 1:case 0:{n=r+80|0;c[s>>2]=c[n>>2];c[s+4>>2]=c[n+4>>2];c[s+8>>2]=c[n+8>>2];c[s+12>>2]=c[n+12>>2];c[s+16>>2]=c[n+16>>2];c[s+20>>2]=c[n+20>>2];c[s+24>>2]=c[n+24>>2];c[s+28>>2]=c[n+28>>2];c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];c[p+16>>2]=c[u+16>>2];c[p+20>>2]=c[u+20>>2];c[p+24>>2]=c[u+24>>2];c[p+28>>2]=c[u+28>>2];if(!(gv(s,p)|0))d=j;else{z=r+8|0;A=r+24|0;h[f>>3]=+h[z>>3]-+h[A>>3];n=r+16|0;y=r+32|0;h[f+8>>3]=+h[n>>3]-+h[y>>3];h[f+16>>3]=+h[A>>3]+ +h[z>>3];h[f+24>>3]=+h[y>>3]+ +h[n>>3];BD(a,f,2,(d|0)==0?j:0);d=j}break}case 3:case 2:{A=r+80|0;c[s>>2]=c[A>>2];c[s+4>>2]=c[A+4>>2];c[s+8>>2]=c[A+8>>2];c[s+12>>2]=c[A+12>>2];c[s+16>>2]=c[A+16>>2];c[s+20>>2]=c[A+20>>2];c[s+24>>2]=c[A+24>>2];c[s+28>>2]=c[A+28>>2];c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];c[p+16>>2]=c[u+16>>2];c[p+20>>2]=c[u+20>>2];c[p+24>>2]=c[u+24>>2];c[p+28>>2]=c[u+28>>2];if(!(gv(s,p)|0))d=j;else{d=r+8|0;f=vv(f,t,c[d+4>>2]|0,c[d>>2]|0)|0;CD(a,f,c[d>>2]|0,(c[r>>2]|0)==2?j:0);d=j}break}case 5:case 4:{A=r+80|0;c[s>>2]=c[A>>2];c[s+4>>2]=c[A+4>>2];c[s+8>>2]=c[A+8>>2];c[s+12>>2]=c[A+12>>2];c[s+16>>2]=c[A+16>>2];c[s+20>>2]=c[A+20>>2];c[s+24>>2]=c[A+24>>2];c[s+28>>2]=c[A+28>>2];c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];c[p+16>>2]=c[u+16>>2];c[p+20>>2]=c[u+20>>2];c[p+24>>2]=c[u+24>>2];c[p+28>>2]=c[u+28>>2];if(!(gv(s,p)|0))d=j;else{d=r+8|0;f=vv(f,t,c[d+4>>2]|0,c[d>>2]|0)|0;ED(a,f,c[d>>2]|0,0,0,(c[r>>2]|0)==4?j&255:0);d=j}break}case 6:{A=r+80|0;c[s>>2]=c[A>>2];c[s+4>>2]=c[A+4>>2];c[s+8>>2]=c[A+8>>2];c[s+12>>2]=c[A+12>>2];c[s+16>>2]=c[A+16>>2];c[s+20>>2]=c[A+20>>2];c[s+24>>2]=c[A+24>>2];c[s+28>>2]=c[A+28>>2];c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];c[p+16>>2]=c[u+16>>2];c[p+20>>2]=c[u+20>>2];c[p+24>>2]=c[u+24>>2];c[p+28>>2]=c[u+28>>2];if(!(gv(s,p)|0))d=j;else{d=r+8|0;f=vv(f,t,c[d+4>>2]|0,c[d>>2]|0)|0;FD(a,f,c[d>>2]|0);d=j}break}case 7:{A=r+80|0;c[s>>2]=c[A>>2];c[s+4>>2]=c[A+4>>2];c[s+8>>2]=c[A+8>>2];c[s+12>>2]=c[A+12>>2];c[s+16>>2]=c[A+16>>2];c[s+20>>2]=c[A+20>>2];c[s+24>>2]=c[A+24>>2];c[s+28>>2]=c[A+28>>2];c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];c[p+16>>2]=c[u+16>>2];c[p+20>>2]=c[u+20>>2];c[p+24>>2]=c[u+24>>2];c[p+28>>2]=c[u+28>>2];if(!(gv(s,p)|0))d=j;else{h[f>>3]=+h[r+8>>3];h[f+8>>3]=+h[r+16>>3];d=c[r+112>>2]|0;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];vD(a,p,d);d=j}break}case 8:{yD(a,c[r+8>>2]|0);d=1;break}case 9:{wD(a,c[r+8>>2]|0);d=1;break}case 13:{if((c[r+8>>2]|0)!=2){d=r+16|0;z=c[d+36>>2]|0;A=c[z+12>>2]|0;o=+g[z+8>>2];d=~~(+K(+(+h[r+40>>3]-+h[r+24>>3]),+(+h[r+32>>3]-+h[d>>3]))*57.29577951308232);yD(a,c[z+4>>2]|0);zD(a,A,d,o);d=2;break a}A=c[r+68>>2]|0;j=c[A+4>>2]|0;n=c[A+12>>2]|0;o=+g[A+8>>2];k=+h[r+40>>3];m=+h[r+16>>3];if(k==m?+h[r+48>>3]==+h[r+24>>3]:0)d=0;else d=~~(+H(+((m-k)/+h[r+32>>3]))*57.29577951308232);yD(a,j);zD(a,n,d,o);d=3;break}case 14:{Zl(0,85456,v)|0;d=j;break}case 12:{if(!e){e=0;d=j}else{Zl(0,85496,w)|0;e=0;d=j}break}case 11:{yu(c[r+8>>2]|0)|0;AD(a,168408);i=168408;d=j;break}default:d=j}while(0);j=d;q=q+1|0;r=r+120|0}if(i|0)AD(a,c[(c[a>>2]|0)+336>>2]|0);XI(f);l=x;return}function vv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[b>>2]|0;f=g<<1;f=(f|0)>(e|0)?f:e;if((g|0)<(e|0)){a=tw(a,f<<4)|0;c[b>>2]=f}b=0;while(1){if((b|0)>=(e|0))break;h[a+(b<<4)>>3]=+h[d+(b*24|0)>>3];h[a+(b<<4)+8>>3]=+h[d+(b*24|0)+8>>3];b=b+1|0}return a|0}function wv(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;c[a>>2]=c[b+4>>2];c[a+4>>2]=d;return}function xv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+16|0;f=1;while(1){d=c[g>>2]|0;if((f|0)>(c[d+180>>2]|0))break;e=c[(c[d+184>>2]|0)+(f<<2)>>2]|0;xv(b,e);d=Hm(e,122540)|0;if(d|0?a[d>>0]|0:0)wD(b,d);d=Hm(e,122531)|0;if(d|0?a[d>>0]|0:0)wD(b,d);d=Hm(e,85367)|0;if(d|0?a[d>>0]|0:0)wD(b,d);d=Hm(e,86413)|0;if(d|0?a[d>>0]|0:0)yD(b,d);d=Hm(e,86447)|0;if(d|0?a[d>>0]|0:0)wD(b,d);f=f+1|0}return}function yv(a){a=a|0;var b=0,d=0,e=0;b=c[42172]|0;if(!b){b=Pl(19684,c[4345]|0)|0;c[42172]=b}if(!(bb[c[b>>2]&31](b,a,4)|0)){d=c[42172]|0;e=c[d>>2]|0;b=CL(a)|0;bb[e&31](d,b,1)|0;b=1}else b=0;return b|0}function zv(a,b,c){a=a|0;b=b|0;c=c|0;XI(b);return}function Av(a){a=a|0;var b=0;b=c[42173]|0;if(!a){if((b|0)>0?(b=b+-1|0,c[42173]=b,(b|0)==0):0){ZK(1,c[42174]|0)|0;XI(c[42174]|0)}}else{c[42173]=b+1;if(!b){c[42174]=CL(ZK(1,0)|0)|0;ZK(1,134865)|0}}return}function Bv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=l;l=l+96|0;r=u+72|0;q=u+56|0;p=u+48|0;t=u+32|0;s=u+24|0;e=u+8|0;d=u;if(0)sA();do if((Mo(b,122277,0,1)|0)!=0?(o=b+16|0,(c[(c[o>>2]|0)+8>>2]|0)!=0):0){Cv(b);Dv(a,b);Ev(a,b);Av(1);j=a+56|0;k=a+184|0;m=a+192|0;n=a+28|0;i=xr(a)|0;a:while(1){if(!i){g=33;break}d=c[j>>2]|0;if(!d){c[i+20>>2]=0;d=0}else{c[i+20>>2]=c[d+8>>2];d=c[d+12>>2]|0}c[i+24>>2]=d;c[i+12>>2]=a;c[i+28>>2]=c[k>>2];c[i+620>>2]=24748;c[i+624>>2]=14;if(!(c[(c[o>>2]|0)+8>>2]|0)){g=13;break}e=i+52|0;g=YC(i,c[e>>2]|0)|0;c[i+56>>2]=g;switch(g|0){case 999:{g=16;break a}case 21:{d=1;break}case 24:{d=520;break}default:d=Fv(b)|0}f=i+152|0;c[f>>2]=c[f>>2]|d;d=c[m>>2]|0;do if(!d)g=24;else{if(c[d+152>>2]&32|0?(uJ(c[e>>2]|0,c[d+52>>2]|0)|0)==0:0){d=c[42175]|0;if(!d){g=27;break}c[d+8>>2]=i;c[i+36>>2]=c[d+36>>2];g=29;break}_C(d);c[m>>2]=0;c[n>>2]=0;g=24}while(0);if((g|0)==24){c[42175]=0;g=27}if((g|0)==27?(g=0,(ZC(i)|0)==0):0){c[m>>2]=i;g=29}if((g|0)==29){c[i+8>>2]=0;c[i+104>>2]=24860;Gv(i);Hv(i);Iv(i,b);Jv(i,b);Kv(i,b);if(!(c[f>>2]&128))bu(i,b);c[42175]=i}i=yr(a)|0}if((g|0)==13){Zl(1,85654,s)|0;Av(0);if(!0){d=-1;break}d=c[13918]|0;s=Cn(b)|0;v=+tA();c[t>>2]=s;h[t+8>>3]=v;vL(d,85625,t)|0;d=-1;break}else if((g|0)==16){c[p>>2]=c[e>>2];Zl(1,85675,p)|0;Av(0);if(!0){d=-1;break}d=c[13918]|0;t=Cn(b)|0;v=+tA();c[q>>2]=t;h[q+8>>3]=v;vL(d,85625,q)|0;d=-1;break}else if((g|0)==33){Av(0);if(!0){d=0;break}d=c[13918]|0;t=Cn(b)|0;v=+tA();c[r>>2]=t;h[r+8>>3]=v;vL(d,85625,r)|0;d=0;break}}else g=5;while(0);if((g|0)==5){Zl(1,85577,d)|0;if(!0)d=-1;else{d=c[13918]|0;t=Cn(b)|0;v=+tA();c[e>>2]=t;h[e+8>>3]=v;vL(d,85625,e)|0;d=-1}}l=u;return d|0}function Cv(a){a=a|0;var b=0;b=bo(a)|0;while(1){if(!b)break;Pv(a,b);b=co(a,b)|0}return}function Dv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+32|0;k=o+24|0;f=o+16|0;j=o+8|0;n=o;c[b+168>>2]=d;g=b+293|0;a[g>>0]=0;e=Hm(d,90474)|0;if(e|0?(c[f>>2]=j,c[f+4>>2]=n,i=_L(e,90481,f)|0,(i|0)>0):0){p=+h[j>>3]*72.0;e=b+208|0;h[e>>3]=p;h[b+200>>3]=p;if((i|0)!=1)h[e>>3]=+h[n>>3]*72.0;a[g>>0]=1}f=b+292|0;a[f>>0]=0;e=Hm(d,86077)|0;if(e|0?(c[k>>2]=j,c[k+4>>2]=n,m=_L(e,90481,k)|0,(m|0)>0):0){p=+h[j>>3]*72.0;e=b+224|0;h[e>>3]=p;h[b+216>>3]=p;if((m|0)!=1)h[e>>3]=+h[n>>3]*72.0;a[f>>0]=1}e=b+294|0;a[e>>0]=0;f=b+232|0;g=d+16|0;n=(c[(c[g>>2]|0)+8>>2]|0)+48|0;c[f>>2]=c[n>>2];c[f+4>>2]=c[n+4>>2];c[f+8>>2]=c[n+8>>2];c[f+12>>2]=c[n+12>>2];f=c[(c[g>>2]|0)+8>>2]|0;if(+h[f+48>>3]>.001?+h[f+56>>3]>.001:0)a[e>>0]=1;c[b+288>>2]=a[f+81>>0]|0?90:0;e=b+196|0;c[e>>2]=86081;f=Hm(d,86084)|0;if(f|0?a[f>>0]|0:0)c[e>>2]=f;n=b+256|0;m=(c[g>>2]|0)+16|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[n+16>>2]=c[m+16>>2];c[n+20>>2]=c[m+20>>2];c[n+24>>2]=c[m+24>>2];c[n+28>>2]=c[m+28>>2];c[42184]=xm(d,0,86479,0)|0;c[42185]=xm(d,0,86464,0)|0;c[b+320>>2]=BA(0,c[42194]|0,92971)|0;h[b+328>>3]=+zA(0,c[42193]|0,14.0,1.0);c[b+336>>2]=19720;c[b+188>>2]=Cn(d)|0;l=o;return}function Ev(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=b+304|0;f=c[e>>2]|0;if(f|0){XI(f);c[e>>2]=0}f=b+308|0;e=c[f>>2]|0;if(e|0){XI(e);c[f>>2]=0}g=b+316|0;e=c[g>>2]|0;if(e|0){XI(e);c[g>>2]=0}e=Hm(d,85828)|0;if(e){c[b+312>>2]=Nv(b,d,e)|0;e=Hm(d,85835)|0;if(e|0?a[e>>0]|0:0)c[g>>2]=Ov(b,e)|0}else{c[f>>2]=0;c[b+312>>2]=1}return}function Fv(b){b=b|0;b=Hm(b,85796)|0;a:do if(!b)b=0;else switch(a[b>>0]|0){case 110:{if(!(uJ(b+1|0,85808)|0))b=1;else{b=0;break a}break}case 101:{if(!(uJ(b+1|0,85818)|0))b=16;else{b=0;break a}break}default:{b=0;break a}}while(0);return b|0}function Gv(b){b=b|0;var d=0.0,e=0;e=c[b>>2]|0;if(!(a[e+292>>0]|0)){if((c[b+56>>2]|0)==300)d=+h[(c[b+68>>2]|0)+8>>3];else d=4.0;h[b+248>>3]=d;h[b+240>>3]=d}else{b=b+240|0;e=e+216|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2]}return}function Hv(b){b=b|0;var d=0;d=c[b>>2]|0;a:do if(!(a[d+293>>0]|0))switch(c[b+56>>2]|0){case 300:{d=b+416|0;b=(c[b+84>>2]|0)+8|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];break a}case 30:case 21:case 22:case 4:case 3:case 2:{h[b+424>>3]=36.0;h[b+416>>3]=36.0;break a}default:{d=b+416|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;break a}}else{b=b+416|0;d=d+200|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2]}while(0);return}function Iv(b,d){b=b|0;d=d|0;var e=0.0,f=0;f=c[(c[b>>2]|0)+192>>2]|0;e=+h[(c[(c[d+16>>2]|0)+8>>2]|0)+24>>3];do if(!(e!=0.0)){if(f|0?a[f+128>>0]|0:0){b=b+432|0;f=f+112|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];break}d=b+432|0;if((c[b+56>>2]|0)==300){b=(c[b+84>>2]|0)+40|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];break}else{h[b+440>>3]=96.0;h[d>>3]=96.0;break}}else{h[b+440>>3]=e;h[b+432>>3]=e}while(0);return}function Jv(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+112|0;t=A+80|0;u=A+56|0;s=A+40|0;v=A+32|0;w=A+24|0;x=A+16|0;y=A+8|0;z=A;m=c[b>>2]|0;o=+h[m+272>>3];q=+h[m+280>>3];p=+h[m+256>>3];r=+h[m+264>>3];f=+h[b+240>>3];e=p-f;h[b+208>>3]=e;i=+h[b+248>>3];j=r-i;h[b+216>>3]=j;f=f+o;h[b+224>>3]=f;i=i+q;h[b+232>>3]=i;e=f-e;j=i-j;h[x>>3]=1.0;g=c[(c[d+16>>2]|0)+8>>2]|0;i=+h[g+64>>3];do if(i>.001?(k=+h[g+72>>3],k>.001):0){e=e==0.0?i:e;f=j==0.0?k:j;if(!(i<e|k<f)?!(k>f&(i>e&(a[g+80>>0]|0)!=0)):0){k=e;j=f;i=1.0;break}n=i/e<k/f;i=(n?i:k)/(n?e:f);h[x>>3]=i;k=e;j=f}else{k=e;i=1.0}while(0);f=(p+o)*.5;h[y>>3]=f;e=(r+q)*.5;h[z>>3]=e;c[b+360>>2]=c[m+288>>2];k=i*k;h[v>>3]=k;j=i*j;h[w>>3]=j;g=Hm(d,85727)|0;if(g){m=WI((oJ(g)|0)+1|0)|0;n=WI((oJ(g)|0)+1|0)|0;c[s>>2]=v;c[s+4>>2]=w;c[s+8>>2]=x;c[s+12>>2]=m;do if((_L(g,85736,s)|0)==4){g=mo(c[d+60>>2]|0,m,0)|0;if(g|0){u=c[g+16>>2]|0;h[y>>3]=+h[u+16>>3];h[z>>3]=+h[u+24>>3]}}else{c[u>>2]=v;c[u+4>>2]=w;c[u+8>>2]=x;c[u+12>>2]=m;c[u+16>>2]=n;if((_L(g,85756,u)|0)!=4){c[t>>2]=v;c[t+4>>2]=w;c[t+8>>2]=x;c[t+12>>2]=y;c[t+16>>2]=z;_L(g,85776,t)|0;break}g=mo(c[d+60>>2]|0,m,0)|0;if(g|0){u=c[g+16>>2]|0;h[y>>3]=+h[u+16>>3];h[z>>3]=+h[u+24>>3]}}while(0);XI(m);XI(n);k=+h[v>>3];j=+h[w>>3];i=+h[x>>3];f=+h[y>>3];e=+h[z>>3]}h[b+368>>3]=k;h[b+376>>3]=j;h[b+352>>3]=i;h[b+336>>3]=f;h[b+344>>3]=e;l=A;return}function Kv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,P=0.0,Q=0.0;M=l;l=l+224|0;J=M+200|0;z=M+168|0;E=M+144|0;I=M+120|0;F=M+96|0;G=M+64|0;e=M+184|0;v=M+176|0;w=M+160|0;y=M+136|0;x=M+112|0;A=M+80|0;B=M+48|0;C=M+32|0;D=M+16|0;K=M+8|0;L=M;u=c[b>>2]|0;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=0;H=b+368|0;c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2];H=b+360|0;if(c[H>>2]|0){c[J>>2]=c[I>>2];c[J+4>>2]=c[I+4>>2];c[J+8>>2]=c[I+8>>2];c[J+12>>2]=c[I+12>>2];Lv(e,J);c[I>>2]=c[e>>2];c[I+4>>2]=c[e+4>>2];c[I+8>>2]=c[e+8>>2];c[I+12>>2]=c[e+12>>2]}t=b+416|0;c[F>>2]=c[t>>2];c[F+4>>2]=c[t+4>>2];c[F+8>>2]=c[t+8>>2];c[F+12>>2]=c[t+12>>2];if((a[u+294>>0]|0)!=0?(c[b+152>>2]&32|0)!=0:0){i=+h[u+232>>3]-+h[F>>3]*2.0;h[E>>3]=i;k=+h[u+240>>3]-+h[F+8>>3]*2.0;p=E+8|0;h[p>>3]=k;if(!(i<.0001)){o=+h[I>>3];e=~~(o/i);f=b+164|0;c[f>>2]=e;if(o-i*+(e|0)>.0001){e=e+1|0;c[f>>2]=e}}else{c[b+164>>2]=1;e=1}if(!(k<.0001)){g=+h[I+8>>3];f=~~(g/k);j=b+168|0;c[j>>2]=f;if(g-k*+(f|0)>.0001){f=f+1|0;c[j>>2]=f}}else{c[b+168>>2]=1;f=1;g=+h[I+8>>3]}c[b+204>>2]=O(f,e)|0;o=+h[(+h[I>>3]<i?I:E)>>3];h[I>>3]=o;e=p;f=I;m=+h[(g<k?I:E)+8>>3];g=o;j=21}else{if(c[b+68>>2]|0){e=c[b+84>>2]|0;i=+h[e+24>>3]-+h[F>>3]*2.0;i=i<0.0?0.0:i;h[E>>3]=i;o=+h[e+32>>3]-+h[F+8>>3]*2.0;e=E+8|0;h[e>>3]=o;if(o<0.0){f=E;j=17}else e=E}else{h[E+8>>3]=0.0;f=E;e=E;j=17}if((j|0)==17){h[e>>3]=0.0;e=f;i=+h[f>>3]}c[b+204>>2]=1;c[b+168>>2]=1;c[b+164>>2]=1;g=+h[I>>3];if(i<g){h[e>>3]=g;i=g}e=E+8|0;k=+h[e>>3];m=+h[I+8>>3];if(k<m){f=E;j=21}else{r=e;m=k}}if((j|0)==21){h[f+8>>3]=m;r=e;m=+h[e>>3]}n=+h[F>>3];s=b+432|0;k=+h[s>>3]*.013888888888888888*(n*2.0+i);c[b+448>>2]=~~(k+(k>=0.0?.5:-.5));q=F+8|0;k=+h[q>>3];t=b+440|0;o=+h[t>>3]*.013888888888888888*(k*2.0+m);c[b+452>>2]=~~(o+(o>=0.0?.5:-.5));j=b+188|0;p=b+180|0;e=b+172|0;f=u+196|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;Mv(v,b,a[c[f>>2]>>0]|0);u=v;v=c[u+4>>2]|0;e=p;c[e>>2]=c[u>>2];c[e+4>>2]=v;Mv(w,b,a[(c[f>>2]|0)+1>>0]|0);e=w;w=c[e>>2]|0;e=c[e+4>>2]|0;v=j;c[v>>2]=w;c[v+4>>2]=e;w=(c[p>>2]|0)+w|0;if(!((((w|0)>-1?w:0-w|0)|0)==1?(w=(c[b+184>>2]|0)+e|0,(((w|0)>-1?w:0-w|0)|0)==1):0)){Mv(y,b,66);v=y;y=c[v+4>>2]|0;w=p;c[w>>2]=c[v>>2];c[w+4>>2]=y;Mv(x,b,76);w=x;x=c[w+4>>2]|0;y=j;c[y>>2]=c[w>>2];c[y+4>>2]=x;c[z>>2]=c[f>>2];Zl(0,85707,z)|0}if(a[(c[(c[d+16>>2]|0)+8>>2]|0)+82>>0]|0){if(i>g){m=(i-g)*.5;h[G>>3]=m}else m=0.0;i=+h[r>>3];o=+h[I+8>>3];if(i>o){i=(i-o)*.5;h[G+8>>3]=i}else i=0.0}else{i=0.0;m=0.0}if(!(c[H>>2]|0))j=1;else{c[J>>2]=c[I>>2];c[J+4>>2]=c[I+4>>2];c[J+8>>2]=c[I+8>>2];c[J+12>>2]=c[I+12>>2];Lv(A,J);c[I>>2]=c[A>>2];c[I+4>>2]=c[A+4>>2];c[I+8>>2]=c[A+8>>2];c[I+12>>2]=c[A+12>>2];c[J>>2]=c[E>>2];c[J+4>>2]=c[E+4>>2];c[J+8>>2]=c[E+8>>2];c[J+12>>2]=c[E+12>>2];Lv(B,J);c[E>>2]=c[B>>2];c[E+4>>2]=c[B+4>>2];c[E+8>>2]=c[B+8>>2];c[E+12>>2]=c[B+12>>2];c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];c[J+12>>2]=c[F+12>>2];Lv(C,J);c[F>>2]=c[C>>2];c[F+4>>2]=c[C+4>>2];c[F+8>>2]=c[C+8>>2];c[F+12>>2]=c[C+12>>2];c[J>>2]=c[G>>2];c[J+4>>2]=c[G+4>>2];c[J+8>>2]=c[G+8>>2];c[J+12>>2]=c[G+12>>2];Lv(D,J);c[G>>2]=c[D>>2];c[G+4>>2]=c[D+4>>2];c[G+8>>2]=c[D+8>>2];c[G+12>>2]=c[D+12>>2];n=+h[F>>3];m=+h[G>>3];k=+h[q>>3];i=+h[G+8>>3];g=+h[I>>3];j=(c[H>>2]|0)==0}o=m+n;h[b+384>>3]=o;P=i+k;h[b+392>>3]=P;N=m+n+g;h[b+400>>3]=N;Q=+h[I+8>>3];n=i+k+Q;h[b+408>>3]=n;m=+h[b+352>>3];h[b+320>>3]=g/m;h[b+328>>3]=Q/m;m=+h[s>>3];o=o*.013888888888888888*m;f=b+456|0;c[f>>2]=~~(o+(o>=0.0?.5:-.5));o=+h[t>>3];k=P*.013888888888888888*o;c[b+460>>2]=~~(k+(k>=0.0?.5:-.5));m=N*.013888888888888888*m;e=b+464|0;c[e>>2]=~~(m+(m>=0.0?.5:-.5));o=n*.013888888888888888*o;c[b+468>>2]=~~(o+(o>=0.0?.5:-.5));if(!j){c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];wv(K,J);I=K;K=c[I+4>>2]|0;b=f;c[b>>2]=c[I>>2];c[b+4>>2]=K;c[J>>2]=c[e>>2];c[J+4>>2]=c[e+4>>2];wv(L,J);b=L;K=c[b+4>>2]|0;L=e;c[L>>2]=c[b>>2];c[L+4>>2]=K}l=M;return}function Lv(a,b){a=a|0;b=b|0;var c=0.0;c=+h[b>>3];h[a>>3]=+h[b+8>>3];h[a+8>>3]=c;return}function Mv(a,b,d){a=a|0;b=b|0;d=d|0;d=(d<<24>>24)+-66|0;switch(d>>>1|d<<31|0){case 9:{c[b+176>>2]=(c[b+168>>2]|0)+-1;b=0;d=-1;break}case 0:{b=0;d=1;break}case 5:{b=1;d=0;break}case 8:{c[b+172>>2]=(c[b+164>>2]|0)+-1;b=-1;d=0;break}default:{b=0;d=0}}c[a>>2]=b;c[a+4>>2]=d;return}function Nv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j;f=Hm(d,85948)|0;i=b+296|0;c[i>>2]=(f|0)==0?85957:f;d=Hm(d,85961)|0;f=b+300|0;d=(d|0)==0?85974:d;c[f>>2]=d;d=FL(c[i>>2]|0,d)|0;if(d|0){c[g>>2]=a[d>>0];Zl(0,85976,g)|0;c[f>>2]=174177}d=CL(e)|0;c[b+304>>2]=d;h=b+308|0;f=0;b=0;while(1){e=zL(d,c[i>>2]|0)|0;if(!e)break;g=b+1|0;if((b|0)<(f|0))d=c[h>>2]|0;else{f=f+128|0;d=c[h>>2]|0;if(!d)d=rw(f<<2)|0;else d=tw(d,f<<2)|0;c[h>>2]=d}c[d+(g<<2)>>2]=e;b=g;d=0}if(b|0){i=tw(c[h>>2]|0,(b<<2)+8|0)|0;c[h>>2]=i;c[i>>2]=0;c[(c[h>>2]|0)+(b+1<<2)>>2]=0}l=j;return b|0}function Ov(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k;i=a+312|0;d=rw((c[i>>2]<<2)+8|0)|0;e=0;h=1;while(1){g=c[i>>2]|0;if((h|0)>(g|0))break;f=e+1|0;if((dv(a,h,g,b)|0)<<24>>24){c[d+(f<<2)>>2]=h;e=f}h=h+1|0}if(!e){c[j>>2]=b;Zl(0,85847,j)|0;XI(d);d=0}else{c[d>>2]=e;c[d+(e+1<<2)>>2]=(c[i>>2]|0)+1}l=k;return d|0}function Pv(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0;d=c[b+16>>2]|0;g=+h[d+16>>3];h[d+48>>3]=g-+h[d+88>>3];e=+h[d+24>>3];f=+h[d+80>>3]*.5;h[d+56>>3]=e-f;h[d+64>>3]=+h[d+96>>3]+g;h[d+72>>3]=f+e;b=Om(a,b)|0;while(1){if(!b)break;Qv(b);b=Qm(a,b)|0}return}function Qv(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(a|0)Rv(a);return}function Rv(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+240|0;v=C+192|0;u=C+176|0;w=C+64|0;x=C+32|0;y=C;z=C+144|0;A=C+112|0;B=a+4|0;if((c[B>>2]|0)<=0)ma(86115,84869,3994,86129);b=c[a>>2]|0;d=w;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));d=v;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));Sv(x,v);i=x+8|0;j=y+8|0;k=x+16|0;m=y+16|0;n=x+24|0;o=y+24|0;p=w+8|0;q=w+12|0;r=w+32|0;s=w+4|0;t=w+16|0;g=0;while(1){if((g|0)>=(c[B>>2]|0))break;if((g|0)>0){b=(c[a>>2]|0)+(g*48|0)|0;d=w;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));d=v;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));Sv(y,v);h[x>>3]=+h[(+h[x>>3]<+h[y>>3]?x:y)>>3];h[i>>3]=+h[(+h[i>>3]<+h[j>>3]?x:y)+8>>3];h[k>>3]=+h[(+h[k>>3]>+h[m>>3]?x:y)+16>>3];h[n>>3]=+h[(+h[n>>3]>+h[o>>3]?x:y)+24>>3]}b=c[p>>2]|0;if(b|0){f=c[w>>2]|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];c[v+12>>2]=c[f+12>>2];Mt(z,u,v,1.0,b);c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];c[y+16>>2]=c[z+16>>2];c[y+20>>2]=c[z+20>>2];c[y+24>>2]=c[z+24>>2];c[y+28>>2]=c[z+28>>2];h[x>>3]=+h[(+h[x>>3]<+h[y>>3]?x:y)>>3];h[i>>3]=+h[(+h[i>>3]<+h[j>>3]?x:y)+8>>3];h[k>>3]=+h[(+h[k>>3]>+h[m>>3]?x:y)+16>>3];h[n>>3]=+h[(+h[n>>3]>+h[o>>3]?x:y)+24>>3]}b=c[q>>2]|0;if(b|0){f=(c[w>>2]|0)+((c[s>>2]|0)+-1<<4)|0;c[u>>2]=c[r>>2];c[u+4>>2]=c[r+4>>2];c[u+8>>2]=c[r+8>>2];c[u+12>>2]=c[r+12>>2];c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];c[v+12>>2]=c[f+12>>2];Mt(A,u,v,1.0,b);c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];c[y+8>>2]=c[A+8>>2];c[y+12>>2]=c[A+12>>2];c[y+16>>2]=c[A+16>>2];c[y+20>>2]=c[A+20>>2];c[y+24>>2]=c[A+24>>2];c[y+28>>2]=c[A+28>>2];h[x>>3]=+h[(+h[x>>3]<+h[y>>3]?x:y)>>3];h[i>>3]=+h[(+h[i>>3]<+h[j>>3]?x:y)+8>>3];h[k>>3]=+h[(+h[k>>3]>+h[m>>3]?x:y)+16>>3];h[n>>3]=+h[(+h[n>>3]>+h[o>>3]?x:y)+24>>3]}g=g+1|0}B=a+8|0;c[B>>2]=c[x>>2];c[B+4>>2]=c[x+4>>2];c[B+8>>2]=c[x+8>>2];c[B+12>>2]=c[x+12>>2];c[B+16>>2]=c[x+16>>2];c[B+20>>2]=c[x+20>>2];c[B+24>>2]=c[x+24>>2];c[B+28>>2]=c[x+28>>2];l=C;return}function Sv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0;n=l;l=l+48|0;i=n+32|0;j=n;k=c[b+4>>2]|0;if((k|0)<=0)ma(86145,84869,3968,86157);if(((k>>>0)%3|0|0)!=1)ma(86167,84869,3969,86157);m=j+16|0;d=c[b>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];e=i+8|0;f=j+8|0;g=j+24|0;b=1;while(1){if((b|0)>=(k|0))break;p=+h[d+(b<<4)+8>>3];t=b+1|0;o=+h[d+(t<<4)+8>>3];r=(+h[d+(t<<4)>>3]+ +h[d+(b<<4)>>3])*.5;h[i>>3]=r;p=(o+p)*.5;h[e>>3]=p;o=+h[(+h[j>>3]<r?j:i)>>3];h[j>>3]=o;s=+h[(+h[f>>3]<p?j:i)+8>>3];h[f>>3]=s;r=+h[(+h[m>>3]>r?m:i)>>3];h[m>>3]=r;p=+h[(+h[g>>3]>p?m:i)+8>>3];h[g>>3]=p;t=d+(b+2<<4)|0;c[i>>2]=c[t>>2];c[i+4>>2]=c[t+4>>2];c[i+8>>2]=c[t+8>>2];c[i+12>>2]=c[t+12>>2];q=+h[i>>3];h[j>>3]=+h[(o<q?j:i)>>3];o=+h[e>>3];h[f>>3]=+h[(s<o?j:i)+8>>3];h[m>>3]=+h[(r>q?m:i)>>3];h[g>>3]=+h[(p>o?m:i)+8>>3];b=b+3|0}c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];c[a+20>>2]=c[j+20>>2];c[a+24>>2]=c[j+24>>2];c[a+28>>2]=c[j+28>>2];l=n;return}function Tv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;q=+h[a>>3];r=+h[c>>3];k=!(q>=r);if((!k?q<=+h[c+16>>3]:0)?(e=+h[a+8>>3],e>=+h[c+8>>3]):0)i=e<=+h[c+24>>3];else i=0;e=+h[b>>3];if((e>=r?e<=+h[c+16>>3]:0)?(f=+h[b+8>>3],f>=+h[c+8>>3]):0){d=f<=+h[c+24>>3];if(!(i^d))if(i&d)d=1;else l=11;else d=0}else if(i)d=0;else l=11;a:do if((l|0)==11){p=+h[a+8>>3];do if(q==e){r=+h[c+8>>3];if(!(k|p>=r^+h[b+8>>3]>=r^1)?q<=+h[c+16>>3]:0){d=0;break a}}else{j=+h[b+8>>3];if(p==j){if(!(q>=r^e>=r))break;if(!(p>=+h[c+8>>3]))break;if(!(p<=+h[c+24>>3]))break;else{d=0;break a}}o=(j-p)/(e-q);l=q<e;g=l?q:e;e=l?e:q;f=(r-q)*o+p;m=+h[c+8>>3];if(!(!(r>=g)|!(r<=e)|!(f>=m))?f<=+h[c+24>>3]:0){d=0;break a}n=+h[c+16>>3];f=(n-r)*o+f;if(f>=m?!(!(n<=e)|(n>=g?!(f<=+h[c+24>>3]):1)):0){d=0;break a}l=p<j;g=l?p:j;f=l?j:p;e=(m-p)/o+q;if(e>=r?!(!(m<=f)|(!(m>=g)|!(e<=n))):0){d=0;break a}p=+h[c+24>>3];q=(p-m)/o+e;if(q>=r?!(!(p<=f)|(!(p>=g)|!(q<=n))):0){d=0;break a}}while(0);d=-1}while(0);return d|0}function Uv(a){a=a|0;var b=0,c=0.0;b=a+16|0;c=+h[b>>3];h[a+32>>3]=c;h[a+48>>3]=c;h[a+40>>3]=+h[a+24>>3];h[a+56>>3]=+h[a+8>>3];h[b>>3]=+h[a>>3];return}function Vv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;if((c[42176]|0)!=(d|0)){PJ(+(d|0)*.15915494309189535,167112,167120);c[42176]=d}g=+h[b>>3];e=+h[20890];f=+h[b+8>>3];i=+h[20889];h[a>>3]=e*g-i*f;h[a+8>>3]=i*g+f*e;return}function Wv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0,j=0,k=0;k=l;l=l+16|0;f=k;e=+h[b>>3];i=b+8|0;g=+h[i>>3];a:do switch(d|0){case 0:{j=11;break}case 90:{h[b>>3]=g;e=-e;j=10;break}case 180:{e=-g;j=10;break}case 270:{h[b>>3]=g;j=10;break}default:{if((d|0)<0){c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Xv(a,f,0-d|0);break a}if((d|0)>360){c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Wv(a,f,(d>>>0)%360|0);break a}else{c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Vv(a,f,d);break a}}}while(0);if((j|0)==10){h[i>>3]=e;j=11}if((j|0)==11){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}l=k;return}function Xv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0,j=0,k=0;k=l;l=l+16|0;f=k;e=+h[b>>3];i=b+8|0;g=+h[i>>3];a:do switch(d|0){case 0:{j=11;break}case 90:{h[b>>3]=-g;j=10;break}case 180:{e=-g;j=10;break}case 270:{h[b>>3]=g;j=10;break}default:{if((d|0)<0){c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Wv(a,f,0-d|0);break a}if((d|0)>360){c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Xv(a,f,(d>>>0)%360|0);break a}else{c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Vv(a,f,360-d|0);break a}}}while(0);if((j|0)==10){h[i>>3]=e;j=11}if((j|0)==11){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}l=k;return}function Yv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;g=+h[c>>3];d=+h[c+8>>3];f=d+ +h[b>>3];e=g+ +h[b+24>>3];d=d+ +h[b+16>>3];h[a>>3]=g+ +h[b+8>>3];h[a+8>>3]=f;h[a+16>>3]=e;h[a+24>>3]=d;return}function Zv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;f=+h[a>>3];d=+h[b>>3]-f;g=+h[a+8>>3];e=+h[b+8>>3]-g;f=(+h[c+8>>3]-g)*d-(+h[c>>3]-f)*e;f=f*f;return +(f<1.0e-10?0.0:f/(e*e+d*d))}function _v(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;g=n+8|0;i=n;e=qw(96)|0;m=b+16|0;c[(c[m>>2]|0)+8>>2]=e;e=Hm(b,86194)|0;if(!e){e=Na(86203)|0;if(e|0)k=3}else k=3;if((k|0)==3)Va(86215,e|0,1)|0;e=($v(b)|0)&255;a[(c[m>>2]|0)+115>>0]=e;if(0==0?(e=Hm(b,86226)|0,c[42178]=e,(e|0)==0):0)c[42178]=c[42177];f=+zA(b,xm(b,0,86236,0)|0,0.0,0.0);h[c[(c[m>>2]|0)+8>>2]>>3]=f;e=Hm(b,86244)|0;a:do if(!e)e=0;else{switch(a[e>>0]|0){case 76:{if(!(uJ(e,86252)|0)){e=1;break a}break}case 66:{if(!(uJ(e,86255)|0)){e=2;break a}break}case 82:{e=(uJ(e,86258)|0)==0;e=e?3:0;break a}default:{e=0;break a}}e=0}while(0);c[(c[m>>2]|0)+116>>2]=e<<2|(d<<24>>24==0?0:e);f=+zA(b,xm(b,0,86261,0)|0,.25,.02);h[i>>3]=f;f=f*72.0;c[(c[m>>2]|0)+248>>2]=~~(f+(f>=0.0?.5:-.5));e=AA(b,xm(b,0,86269,0)|0,0)|0;if(e){c[g>>2]=i;if(_L(e,86190,g)|0){f=+h[i>>3];if(f<.02){h[i>>3]=.02;f=.02}}else{h[i>>3]=.5;f=.5}if(dL(e,86277)|0)a[(c[m>>2]|0)+276>>0]=1}else{h[i>>3]=.5;f=.5}f=f*72.0;c[(c[m>>2]|0)+252>>2]=~~(f+(f>=0.0?.5:-.5));i=(yA(b,xm(b,0,86285,0)|0,0,0)|0)&255;a[(c[m>>2]|0)+243>>0]=i;i=PA(AA(b,xm(b,0,86295,0)|0,0)|0,19732,19748)|0;c[(c[m>>2]|0)+244>>2]=i;aw(b);i=bw(b,86305,(c[(c[m>>2]|0)+8>>2]|0)+64|0)|0;e=c[(c[m>>2]|0)+8>>2]|0;a[e+80>>0]=i;bw(b,86310,e+48|0)|0;e=DA(Hm(b,86315)|0)|0;a[(c[(c[m>>2]|0)+8>>2]|0)+82>>0]=e;e=Hm(b,86322)|0;do if(!e){e=Hm(b,86329)|0;if(e|0){e=(a[e>>0]|32)<<24>>24==108&1;k=27;break}e=Hm(b,86341)|0;if(e|0){e=DA(e)|0;k=27}}else{e=(nM(e)|0)==90&1;k=27}while(0);if((k|0)==27)a[(c[(c[m>>2]|0)+8>>2]|0)+81>>0]=e;c[42179]=PA(Hm(b,86351)|0,19764,19780)|0;a[174072]=DA(Hm(b,86363)|0)|0;c[42181]=0;c[42182]=0;h[(c[(c[m>>2]|0)+8>>2]|0)+24>>3]=0.0;e=Hm(b,86375)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0)k=32;else k=30;if(((k|0)==30?(j=Hm(b,86379)|0,j|0):0)?a[j>>0]|0:0){e=j;k=32}if((k|0)==32){f=+oM(e);h[(c[(c[m>>2]|0)+8>>2]|0)+24>>3]=f}cw(b);c[42183]=xm(b,0,86390,0)|0;c[42186]=xm(b,0,86399,0)|0;c[42187]=xm(b,0,90474,0)|0;c[42188]=xm(b,1,95993,0)|0;c[42189]=xm(b,1,95987,0)|0;c[42190]=xm(b,1,90615,0)|0;c[42191]=xm(b,1,122540,0)|0;c[42192]=xm(b,1,86413,0)|0;c[42200]=xm(b,1,86423,0)|0;c[42193]=xm(b,1,86429,0)|0;c[42194]=xm(b,1,86438,0)|0;c[42195]=xm(b,1,86447,0)|0;k=xm(b,1,86184,0)|0;c[42197]=k;if(!k)c[42197]=xm(b,1,86184,90471)|0;c[42198]=xm(b,1,86457,0)|0;c[42201]=xm(b,1,86285,0)|0;c[42215]=xm(b,1,86464,0)|0;c[42204]=xm(b,1,86390,0)|0;c[42196]=xm(b,1,90474,0)|0;c[42202]=xm(b,1,86473,0)|0;c[42203]=xm(b,1,86479,0)|0;c[42206]=xm(b,1,86491,0)|0;c[42205]=xm(b,1,86329,0)|0;c[42207]=xm(b,1,86496,0)|0;c[42208]=xm(b,1,86507,0)|0;c[42209]=xm(b,1,122089,0)|0;c[42199]=xm(b,1,86517,0)|0;c[42210]=xm(b,1,86527,0)|0;c[42211]=xm(b,1,86533,0)|0;c[42212]=xm(b,1,86539,0)|0;c[42213]=xm(b,1,86547,0)|0;c[42214]=xm(b,1,86556,0)|0;c[42216]=xm(b,1,86399,0)|0;c[42217]=xm(b,2,86558,0)|0;c[42219]=xm(b,2,122540,0)|0;c[42220]=xm(b,2,86413,0)|0;c[42222]=xm(b,2,86429,0)|0;c[42223]=xm(b,2,86438,0)|0;c[42224]=xm(b,2,86447,0)|0;c[42225]=xm(b,2,86184,0)|0;c[42226]=xm(b,2,86457,0)|0;c[42235]=xm(b,2,86565,0)|0;c[42227]=xm(b,2,86576,0)|0;c[42238]=xm(b,2,86580,0)|0;c[42239]=xm(b,2,86590,0)|0;c[42240]=xm(b,2,86600,0)|0;c[42241]=xm(b,2,86610,0)|0;c[42242]=xm(b,2,86620,0)|0;c[42243]=xm(b,2,86634,0)|0;c[42244]=xm(b,2,86648,0)|0;c[42245]=xm(b,2,86663,0)|0;c[42246]=xm(b,2,86677,0)|0;c[42218]=xm(b,2,86688,0)|0;c[42230]=xm(b,2,86285,0)|0;c[42228]=xm(b,2,86423,0)|0;c[42229]=xm(b,2,86695,0)|0;c[42231]=xm(b,2,86704,0)|0;c[42232]=xm(b,2,86714,0)|0;c[42233]=xm(b,2,86527,0)|0;c[42234]=xm(b,2,86539,0)|0;c[42247]=xm(b,2,86725,0)|0;c[42248]=xm(b,2,86734,0)|0;c[42249]=xm(b,2,86464,0)|0;e=Pt(b)|0;c[(c[(c[m>>2]|0)+8>>2]|0)+88>>2]=e;e=Hm(b,86743)|0;if(e|0?a[e>>0]|0:0){b=lw(e,b)|0;c[(c[(c[m>>2]|0)+8>>2]|0)+92>>2]=b}l=n;return}function $v(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;a=BA(a,xm(a,0,86827,0)|0,86835)|0;if(((((((eK(a,86841)|0)!=0?(eK(a,86849)|0)!=0:0)?(eK(a,86856)|0)!=0:0)?(eK(a,86859)|0)!=0:0)?(eK(a,86870)|0)!=0:0)?(eK(a,86881)|0)!=0:0)?(eK(a,86891)|0)!=0:0)if((eK(a,86902)|0)!=0?(eK(a,86908)|0)!=0:0)if((eK(a,86835)|0)!=0?(eK(a,86913)|0)!=0:0){c[b>>2]=a;Zl(0,86918,b)|0;a=0}else a=0;else a=2;else a=1;l=d;return a|0}function aw(b){b=b|0;var d=0.0,e=0,f=0;e=Hm(b,86785)|0;a:do if(e|0?(f=a[e>>0]|0,f<<24>>24):0)switch(f<<24>>24|0){case 97:{if(f<<24>>24!=97)break a;if(uJ(e,86791)|0)break a;c[(c[(c[b+16>>2]|0)+8>>2]|0)+84>>2]=4;break a}case 99:{if(f<<24>>24!=99)break a;if(uJ(e,86796)|0)break a;c[(c[(c[b+16>>2]|0)+8>>2]|0)+84>>2]=3;break a}case 101:{if(f<<24>>24!=101)break a;if(uJ(e,86805)|0)break a;c[(c[(c[b+16>>2]|0)+8>>2]|0)+84>>2]=5;break a}case 102:{if(f<<24>>24!=102)break a;if(uJ(e,86812)|0)break a;c[(c[(c[b+16>>2]|0)+8>>2]|0)+84>>2]=2;break a}default:{d=+oM(e);if(!(d>0.0))break a;b=c[(c[b+16>>2]|0)+8>>2]|0;c[b+84>>2]=1;h[b+16>>3]=d;break a}}while(0);return}function bw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;m=o+32|0;i=o+16|0;k=o+8|0;j=o;n=o+40|0;a[n>>0]=0;b=Hm(b,d)|0;do if(b){c[i>>2]=k;c[i+4>>2]=j;c[i+8>>2]=n;i=(_L(b,86769,i)|0)>1;g=+h[k>>3];f=+h[j>>3];if(i&g>0.0&f>0.0){g=g*72.0;h[e>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);g=f*72.0;h[e+8>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);b=(a[n>>0]|0)==33;break}a[n>>0]=0;c[m>>2]=k;c[m+4>>2]=n;m=(_L(b,86779,m)|0)>0;f=+h[k>>3];if(m&f>0.0){g=f*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0);h[e>>3]=g;h[e+8>>3]=g;b=(a[n>>0]|0)==33}else b=0}else b=0;while(0);l=o;return b&1|0}function cw(b){b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0;d=Hm(b,86184)|0;do if(d|0?a[d>>0]|0:0){e=(c[(c[b+60>>2]|0)+16>>2]|0)+113|0;a[e>>0]=a[e>>0]|8;e=(bp(d)|0)!=0;g=+zA(b,xm(b,0,86429,0)|0,14.0,1.0);i=BA(b,xm(b,0,86438,0)|0,92971)|0;d=gw(b,d,e?2:0,g,i,BA(b,xm(b,0,86447,0)|0,122106)|0)|0;i=b+16|0;c[(c[i>>2]|0)+12>>2]=d;d=Hm(b,90606)|0;e=(d|0)!=0;do if((ro(b)|0)==(b|0)){if(e?(a[d>>0]|0)==116:0){d=1;break}d=0}else{if(e?(a[d>>0]|0)==98:0){d=0;break}d=1}while(0);e=Hm(b,86746)|0;a:do if(e)switch(a[e>>0]|0){case 108:{d=d|2;break a}case 114:{d=d|4;break a}default:break a}while(0);a[(c[i>>2]|0)+275>>0]=d;if((ro(b)|0)!=(b|0)){d=c[(c[i>>2]|0)+12>>2]|0;f=+h[d+24>>3]+16.0;g=+h[d+32>>3]+8.0;b=(c[(c[(ro(b)|0)+16>>2]|0)+116>>2]&1|0)==0;d=c[i>>2]|0;e=a[d+275>>0]<<1&2;if(b){b=e&255;h[d+48+(b<<4)>>3]=f;h[d+48+(b<<4)+8>>3]=g;break}else{b=(e^3)&255;h[d+48+(b<<4)>>3]=g;h[d+48+(b<<4)+8>>3]=f;break}}}while(0);return}function dw(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;d=c[e>>2]|0;b=c[d+8>>2]|0;do if(!b)b=d;else{d=c[b+88>>2]|0;if(d){st(d);d=c[e>>2]|0;b=c[d+8>>2]|0;if(!b){b=d;break}}XI(c[b+92>>2]|0);b=c[e>>2]|0}while(0);XI(c[b+8>>2]|0);e=c[e>>2]|0;c[e+8>>2]=0;jw(c[e+12>>2]|0);So(a,0,122277);return}function ew(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=c[d>>2]|0;l=d+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;if(a[f>>0]|0){i=rw((oJ(f)|0)+1|0)|0;a[i>>0]=0;j=d+12|0;e=i;a:while(1){b:while(1){h=f+1|0;g=a[f>>0]|0;if(!(g<<24>>24))break a;if(!(g<<24>>24==-1|((g&255)<161|(c[j>>2]|0)!=2))){a[e>>0]=g;h=a[h>>0]|0;g=e+2|0;a[e+1>>0]=h;if(!(h<<24>>24)){e=g;break a}else{e=g;f=f+2|0;continue}}switch(g<<24>>24){case 92:break b;case 10:{k=12;break b}default:{}}a[e>>0]=g;e=e+1|0;f=h}if((k|0)==12){k=0;f=e+1|0;a[e>>0]=0;fw(b,d,i,110);e=f;i=f;f=h;continue}g=a[h>>0]|0;switch(g<<24>>24|0){case 114:case 108:case 110:{g=e+1|0;a[e>>0]=0;fw(b,d,i,a[h>>0]|0);e=g;break}default:{a[e>>0]=g;e=e+1|0;g=i}}i=g;f=(a[h>>0]|0)==0?h:f+2|0}if((i|0)!=(e|0)){a[e>>0]=0;fw(b,d,i,110)}d=d+40|0;c[d>>2]=c[l>>2];c[d+4>>2]=c[l+4>>2];c[d+8>>2]=c[l+8>>2];c[d+12>>2]=c[l+12>>2]}return}function fw(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+32|0;q=s+16|0;p=s;r=e+76|0;k=b[r>>1]|0;o=e+72|0;m=c[o>>2]|0;if(!m)n=qw((k*56|0)+112|0)|0;else n=sw(m,k+2|0,56,k+1|0)|0;c[o>>2]=n;k=b[r>>1]|0;m=n+(k*56|0)|0;c[m>>2]=f;a[n+(k*56|0)+48>>0]=g;if((f|0)!=0?(a[f>>0]|0)!=0:0){c[41782]=c[e+4>>2];h[20893]=+h[e+16>>3];g=c[d+144>>2]|0;c[n+(k*56|0)+4>>2]=bb[c[g>>2]&31](g,167128,1)|0;kA(p,d,m);j=+h[p>>3];h[q>>3]=j;i=+h[p+8>>3]}else{h[q>>3]=0.0;i=+(~~(+h[e+16>>3]*1.2)|0);h[n+(k*56|0)+40>>3]=i;j=0.0}b[r>>1]=(b[r>>1]|0)+1<<16>>16;r=e+24|0;h[r>>3]=+h[(+h[r>>3]>j?r:q)>>3];r=e+32|0;h[r>>3]=+h[r>>3]+i;l=s;return}function gw(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+32|0;r=u+16|0;q=u+8|0;p=u;t=qw(88)|0;switch(Bo(b)|0){case 0:{m=0;s=c[b+60>>2]|0;n=b;o=0;break}case 1:{m=0;s=ro(qo(b)|0)|0;n=0;o=b;break}case 2:{m=b;s=ro(qo(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)|0;n=0;o=0;break}default:{m=0;s=0;n=0;o=0}}c[t+4>>2]=i;c[t+8>>2]=j;h[t+16>>3]=g;k=s+16|0;j=t+12|0;c[j>>2]=d[(c[k>>2]|0)+115>>0];a:do if(f&4){c[t>>2]=CL(e)|0;if(f&2|0)a[t+82>>0]=1}else switch(f|0){case 2:{c[t>>2]=CL(e)|0;a[t+82>>0]=1;if(!(QF(b,t)|0))break a;switch(Bo(b)|0){case 0:{c[p>>2]=Cn(n)|0;Zl(3,86961,p)|0;break a}case 1:{c[q>>2]=Cn(o)|0;Zl(3,86983,q)|0;break a}case 2:{p=Cn(c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0)|0;q=(pn(s)|0)!=0;s=Cn(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)|0;c[r>>2]=p;c[r+4>>2]=q?122546:122549;c[r+8>>2]=s;Zl(3,87004,r)|0;break a}default:break a}}case 0:{i=hw(e,b,0)|0;c[t>>2]=i;if((c[j>>2]|0)==1)i=tB(i)|0;else i=qB(i,s)|0;XI(c[t>>2]|0);c[t>>2]=i;ew(c[(c[k>>2]|0)+144>>2]|0,t);break a}default:ma(87031,87047,166,87056)}while(0);l=u;return t|0}function hw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;switch(Bo(d)|0){case 0:{i=Cn(d)|0;g=oJ(i)|0;f=c[(c[d+16>>2]|0)+12>>2]|0;if(f){f=c[f>>2]|0;if(!b){v=0;t=2;u=2;s=2;h=2;y=87079;m=87076;j=90471;o=174177;q=174177;p=0;r=0;n=2;w=f;x=87073}else{v=0;t=2;u=2;s=2;h=2;y=87079;m=87076;j=90471;o=174177;q=174177;p=0;r=0;n=oJ(f)|0;w=f;x=87073}}else{v=0;t=2;u=2;s=2;h=2;y=87079;m=87076;j=90471;o=174177;q=174177;p=0;r=0;n=2;w=87067;x=87073}break}case 1:{i=Cn(qo(d)|0)|0;g=oJ(i)|0;j=Cn(d)|0;h=oJ(j)|0;f=c[(c[d+16>>2]|0)+104>>2]|0;if(f){f=c[f>>2]|0;if(!b){v=0;t=2;u=2;s=2;y=87079;m=87076;o=174177;q=174177;p=0;r=0;n=2;w=f;x=87073}else{v=0;t=2;u=2;s=2;y=87079;m=87076;o=174177;q=174177;p=0;r=0;n=oJ(f)|0;w=f;x=87073}}else{v=0;t=2;u=2;s=2;y=87079;m=87076;o=174177;q=174177;p=0;r=0;n=2;w=87067;x=87073}break}case 2:{h=d+48|0;i=Cn(ro(qo(c[((c[d>>2]&3|0)==3?d:h)+40>>2]|0)|0)|0)|0;g=oJ(i)|0;l=Cn(c[((c[d>>2]&3|0)==3?d:h)+40>>2]|0)|0;k=oJ(l)|0;f=d+16|0;q=c[(c[f>>2]|0)+52>>2]|0;if(!q)r=0;else r=oJ(q)|0;m=Cn(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;f=c[f>>2]|0;o=c[f+92>>2]|0;if(!o)p=0;else p=oJ(o)|0;j=oJ(m)|0;f=c[f+96>>2]|0;if(f){f=c[f>>2]|0;if(!b)n=2;else n=oJ(f)|0}else{n=2;f=87067}x=(pn(ro(qo(c[((c[d>>2]&3|0)==3?d:h)+40>>2]|0)|0)|0)|0)==0;v=1;t=k;u=j;s=k+2+(r|0?r+1|0:0)+j+(p|0?p+1|0:0)|0;h=2;y=l;j=90471;w=f;x=x?122549:122546;break}default:{v=0;t=2;u=2;s=2;h=2;g=2;y=87079;m=87076;j=90471;i=87070;o=174177;q=174177;p=0;r=0;n=2;w=87067;x=87073}}e=(e|0)==0;l=0;f=b;a:while(1){d=f+1|0;b:do switch(a[f>>0]|0){case 0:break a;case 92:{f=f+2|0;switch(a[d>>0]|0){case 78:{k=h;break b}case 71:{k=g;break b}case 69:{k=s;break b}case 72:{k=u;break b}case 84:{k=t;break b}case 76:{k=n;break b}case 92:{if(!e){k=1;break b}break}default:{}}k=2;break}default:{k=1;f=d}}while(0);l=l+k|0}s=rw(l+1|0)|0;n=(v|0)==0;l=(r|0)==0;d=(p|0)==0;f=s;g=b;c:while(1){k=g+1|0;h=a[g>>0]|0;switch(h<<24>>24){case 0:break c;case 92:break;default:{a[f>>0]=h;f=f+1|0;g=k;continue c}}h=g+2|0;g=a[k>>0]|0;switch(g<<24>>24|0){case 71:{g=i;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=h;continue c}g=g+1|0;f=f+1|0}}case 78:{g=j;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=h;continue c}g=g+1|0;f=f+1|0}}case 69:{if(n){g=h;continue c}else g=y;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24))break;g=g+1|0;f=f+1|0}if(l)g=x;else{a[f>>0]=58;g=q;while(1){f=f+1|0;b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=x;break}else g=g+1|0}}while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=m;break}g=g+1|0;f=f+1|0}while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24))break;g=g+1|0;f=f+1|0}if(d){g=h;continue c}a[f>>0]=58;g=o;while(1){f=f+1|0;b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=h;continue c}else g=g+1|0}}case 84:{g=y;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=h;continue c}g=g+1|0;f=f+1|0}}case 72:{g=m;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=h;continue c}f=f+1|0;g=g+1|0}}case 76:{g=w;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=h;continue c}f=f+1|0;g=g+1|0}}case 92:{if(!e){a[f>>0]=92;f=f+1|0;g=h;continue c}break}default:{}}a[f>>0]=92;a[f+1>>0]=g;f=f+2|0;g=h}a[f>>0]=0;return s|0}function iw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(a|0){d=a;e=0;while(1){if((e|0)>=(b|0))break;if(!e)XI(c[d>>2]|0);g=c[d+8>>2]|0;if(g|0?(f=c[d+12>>2]|0,f|0):0)gb[f&127](g);d=d+56|0;e=e+1|0}XI(a)}return}function jw(d){d=d|0;var e=0;if(d|0){XI(c[d>>2]|0);e=d+72|0;if(a[d+82>>0]|0){e=c[e>>2]|0;if(e|0)BF(e,1)}else iw(c[e>>2]|0,b[d+76>>1]|0);XI(d)}return}function kw(d,e,f){d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+32|0;q=u+16|0;r=u;k=c[d+16>>2]|0;s=k+12|0;t=c[s>>2]|0;c[s>>2]=e;if(!(a[f+82>>0]|0)){p=f+76|0;if((b[p>>1]|0)>=1){tD(d,0);wD(d,c[f+8>>2]|0);switch(a[f+80>>0]|0){case 116:{j=+h[f+64>>3];g=+h[f+48>>3]*.5+j;break}case 98:{j=+h[f+64>>3];g=+h[f+48>>3]*-.5+j+ +h[f+32>>3];break}default:{j=+h[f+64>>3];g=+h[f+32>>3]*.5+j}}g=g-+h[f+16>>3];o=r+8|0;h[o>>3]=g;if(b[k+260>>1]&512)h[o>>3]=g-j;m=f+72|0;n=f+56|0;i=f+40|0;e=0;while(1){if((e|0)>=(b[p>>1]|0))break;k=c[m>>2]|0;switch(a[k+(e*56|0)+48>>0]|0){case 108:{g=+h[n>>3]-+h[i>>3]*.5;break}case 114:{g=+h[i>>3]*.5+ +h[n>>3];break}default:g=+h[n>>3]}h[r>>3]=g;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];vD(d,q,k+(e*56|0)|0);h[o>>3]=+h[o>>3]-+h[(c[m>>2]|0)+(e*56|0)+40>>3];e=e+1|0}uD(d);i=18}}else{gF(d,c[f+72>>2]|0,f);i=18}if((i|0)==18)c[s>>2]=t;l=u;return}function lw(a,b){a=a|0;b=b|0;return hw(a,b,1)|0}function mw(a){a=a|0;return nw(a,0)|0}function nw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=c[42250]|0;if(!e){c[42251]=64;e=rw(64)|0;c[42250]=e}j=d<<24>>24==0;i=0;f=0;h=b;while(1){if(!h)break;d=a[h>>0]|0;if(!(d<<24>>24))break;b=c[42251]|0;if((i|0)>(b+-8|0)){e=b<<1;c[42251]=e;e=tw(c[42250]|0,e)|0;c[42250]=e;e=e+i|0;d=a[h>>0]|0}a:do switch(d<<24>>24){case 38:{if(j?(ow(h)|0)!=0:0)k=18;else{f=5;d=87108}break}case 60:{f=4;d=87131;break}case 62:{f=4;d=87114;break}case 45:{f=5;d=87125;break}default:{if((f|0)!=0&d<<24>>24==32)if((a[f>>0]|0)==32){f=6;d=87101;break a}else{k=18;break a}switch(d<<24>>24){case 34:{f=6;d=87094;break a}case 39:{f=5;d=87119;break a}case 10:if(j){k=18;break a}else{f=5;d=87088;break a}default:{k=18;break a}}}}while(0);if((k|0)==18){k=0;d=j|d<<24>>24!=13;f=d?1:5;d=d?h:87082}g=e+f|0;b=f;while(1){if(!b)break;a[e>>0]=a[d>>0]|0;b=b+-1|0;d=d+1|0;e=e+1|0}b=h;i=f+i|0;e=g;h=h+1|0;f=b}a[e>>0]=0;return c[42250]|0}function ow(b){b=b|0;var c=0,d=0;d=b+1|0;c=a[d>>0]|0;a:do if(c<<24>>24==35){d=b+2|0;c=a[d>>0]|0;switch(c<<24>>24){case 88:case 120:break;default:{b=d;while(1){d=b+1|0;if((c+-48&255)>=10)break a;b=d;c=a[d>>0]|0}}}d=b+3|0;while(1){c=a[d>>0]|0;if((c+-48&255)>=10)switch(c<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break a}d=d+1|0}}else while(1){b=d+1|0;if(((c&-33)+-65&255)>=26)break a;d=b;c=a[b>>0]|0}while(0);return c<<24>>24==59|0}function pw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[42252]|0;if(!d){c[42253]=64;d=rw(64)|0;c[42252]=d;i=0}else i=0;while(1){if(!b)break;e=a[b>>0]|0;if(!(e<<24>>24))break;f=c[42253]|0;if((i|0)>(f+-8|0)){d=f<<1;c[42253]=d;d=tw(c[42252]|0,d)|0;c[42252]=d;d=d+i|0;e=a[b>>0]|0}switch(e<<24>>24){case 38:{if(!(ow(b)|0)){g=5;e=87108}else j=12;break}case 60:{g=4;e=87131;break}case 62:{g=4;e=87114;break}case 34:{g=6;e=87094;break}case 39:{g=5;e=87119;break}default:j=12}if((j|0)==12){j=0;g=1;e=b}h=d+g|0;f=g;while(1){if(!f)break;a[d>>0]=a[e>>0]|0;f=f+-1|0;e=e+1|0;d=d+1|0}i=g+i|0;d=h;b=b+1|0}a[d>>0]=0;return c[42252]|0}function qw(a){a=a|0;var b=0;if(!a)a=0;else{b=rw(a)|0;RN(b|0,0,a|0)|0;a=b}return a|0}function rw(a){a=a|0;if(a){a=WI(a)|0;if(!a){TL(96532,14,1,c[13918]|0)|0;a=0}}else a=0;return a|0}function sw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=ZI(a,O(d,b)|0)|0;if(!((b|0)!=0&(a|0)==0)){if(b>>>0>e>>>0)RN(a+(O(e,d)|0)|0,0,O(b-e|0,d)|0)|0}else TL(96532,14,1,c[13918]|0)|0;return a|0}function tw(a,b){a=a|0;b=b|0;a=ZI(a,b)|0;if((b|0)!=0&(a|0)==0)TL(96532,14,1,c[13918]|0)|0;return a|0}function uw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0,n=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+80|0;r=u+40|0;q=u+32|0;n=u+24|0;m=u;s=4;t=WI(40)|0;c[t>>2]=0;f=u+68|0;g=u+64|0;if(0){o=0;ha(57,a|0,f|0,g|0);i=o;o=0;if((i|0)!=0&(p|0)!=0){j=ON(c[i>>2]|0,t|0,s|0)|0;if(!j)Ua(i|0,p|0);z=p}else j=-1;if((j|0)!=1){j=c[13918]|0;i=c[f>>2]|0;f=c[g>>2]|0;o=0;c[m>>2]=87180;c[m+4>>2]=i;c[m+8>>2]=f;c[m+12>>2]=d;c[m+16>>2]=b;aa(13,j|0,87136,m|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)!=1){o=0;ea(1);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)!=1)j=6;else{f=z;j=15}}else{f=z;j=15}}else{f=z;j=15}}else j=6;do if((j|0)==6){o=0;f=_(20,a|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=ON(c[g>>2]|0,t|0,s|0)|0;if(!i)Ua(g|0,p|0);z=p}else i=-1;if((i|0)!=1){if(!f){o=0;ea(2);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;break}}if((d|0)<1){o=0;ea(3);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;break}f=0;break}else{c[42254]=(e|0)>-1?e:30;t=NN(169020,1,t|0,s|0)|0;s=z;o=0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;break}f=0;j=15;break}}else{f=z;j=15}}while(0);a:do if((j|0)==15){b:while(1){if(f|0){f=2;break a}o=0;ea(4);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue}a=c[13918]|0;m=0;while(1){o=0;j=Z(1)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}if(!j)break;o=0;f=_(21,j|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=ON(c[g>>2]|0,t|0,s|0)|0;if(!i)Ua(g|0,p|0);z=p}else i=-1;if((i|0)==1){f=z;j=15;continue b}o=0;ga(24,j|0,f|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}m=m+1|0;do if(((m|0)%100|0|0)==0&0!=0){f=(m|0)%1e3|0;if((f|0)==100){o=0;$(27,87180,a|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}o=0;c[n>>2]=m;aa(13,a|0,87198,n|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}break}o=0;c[q>>2]=m;aa(13,a|0,87198,q|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=ON(c[g>>2]|0,t|0,s|0)|0;if(!i)Ua(g|0,p|0);z=p}else i=-1;if((i|0)==1){f=z;j=15;continue b}if(!f){o=0;$(28,10,a|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}}}while(0);if((m|0)>=(d|0))break}switch(b|0){case 1:{o=0;ea(5);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}break}case 2:{o=0;ea(6);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}break}default:{o=0;ea(7);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}o=0;ea(3);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue b}}}if(!0){f=0;break a}if((m|0)>99){o=0;$(28,10,a|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15;continue}}f=c[42294]|0;g=c[42295]|0;o=0;k=+X(1);i=o;o=0;if((i|0)!=0&(p|0)!=0){j=ON(c[i>>2]|0,t|0,s|0)|0;if(!j)Ua(i|0,p|0);z=p}else j=-1;if((j|0)==1){f=z;j=15;continue}o=0;c[r>>2]=87180;c[r+4>>2]=f;c[r+8>>2]=g;c[r+12>>2]=m;h[r+16>>3]=k;aa(13,a|0,87202,r|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,s|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){f=z;j=15}else break}f=0}while(0);XI(t|0);l=u;return f|0}function vw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;a=(c[a+16>>2]|0)+192|0;e=0;h=0;while(1){a=c[a>>2]|0;if(!a)break;g=c[a+16>>2]|0;f=c[g+180>>2]|0;a=0;while(1){if(!(c[f+(a<<2)>>2]|0))break;a=a+1|0;e=e+1|0}a=g+164|0;h=h+1|0}c[b>>2]=h;c[d>>2]=e;return}function ww(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c[42297]=b;c[42304]=0;c[42295]=0;c[42294]=0;i=b+16|0;b=(c[i>>2]|0)+192|0;h=0;f=0;while(1){b=c[b>>2]|0;if(!b)break;g=c[b+16>>2]|0;a[g+157>>0]=0;h=h+1|0;c[42294]=h;d=c[g+180>>2]|0;b=0;while(1){if(!(c[d+(b<<2)>>2]|0))break;k=f+1|0;c[42295]=k;b=b+1|0;f=k}b=g+164|0}b=c[42305]|0;if(!b)b=rw(h<<2)|0;else b=tw(b,h<<2)|0;c[42305]=b;c[42306]=0;b=c[42299]|0;if(!b)b=rw(c[42294]<<2)|0;else b=tw(b,c[42294]<<2)|0;c[42299]=b;c[42298]=0;d=1;b=(c[i>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;k=b+16|0;i=c[k>>2]|0;j=i+292|0;c[j>>2]=0;i=c[i+172>>2]|0;h=d;g=0;b=0;while(1){d=c[i+(g<<2)>>2]|0;if(!d)break;f=b+1|0;c[j>>2]=f;b=c[d+16>>2]|0;c[b+160>>2]=0;c[b+164>>2]=-1;if(!h)b=0;else{l=c[d>>2]&3;b=((c[(c[(c[((l|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((l|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)<(e[b+170>>1]|0|0)?0:h}h=b;g=g+1|0;b=f}b=qw((g<<2)+4|0)|0;d=c[k>>2]|0;c[d+264>>2]=b;c[d+268>>2]=0;d=c[d+180>>2]|0;b=0;do{l=b;b=b+1|0}while((c[d+(l<<2)>>2]|0)!=0);d=qw(b<<2)|0;b=c[k>>2]|0;c[b+272>>2]=d;c[b+276>>2]=0;d=h;b=b+164|0}return d|0}function xw(){var a=0,b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;k=o;m=uA(c[42294]|0)|0;a=(c[(c[42297]|0)+16>>2]|0)+192|0;while(1){b=c[a>>2]|0;if(!b){j=0;break}d=b+16|0;a=c[d>>2]|0;if(!(c[a+292>>2]|0)){wA(m,b);a=c[d>>2]|0}a=a+164|0}while(1){a=xA(m)|0;if(!a)break;i=a+16|0;a=c[i>>2]|0;f=a+232|0;c[f>>2]=0;d=c[a+172>>2]|0;b=0;h=0;while(1){g=c[d+(b<<2)>>2]|0;if(!g){f=0;break}g=(c[(c[(c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)+(e[(c[g+16>>2]|0)+170>>1]|0)|0;g=(h|0)>(g|0)?h:g;c[f>>2]=g;b=b+1|0;h=g}while(1){b=c[(c[a+180>>2]|0)+(f<<2)>>2]|0;if(!b)break;d=b+-48|0;g=(c[(c[((c[b>>2]&3|0)==2?b:d)+40>>2]|0)+16>>2]|0)+292|0;h=c[g>>2]|0;c[g>>2]=h+-1;if((h|0)<2){wA(m,c[((c[b>>2]&3|0)==2?b:d)+40>>2]|0);a=c[i>>2]|0}f=f+1|0}j=j+1|0}a:do if((j|0)!=(c[42294]|0)){Zl(1,87534,k)|0;a=(c[(c[42297]|0)+16>>2]|0)+192|0;while(1){b=c[a>>2]|0;if(!b)break a;d=b+16|0;a=c[d>>2]|0;if(c[a+292>>2]|0){k=Cn(b)|0;a=c[(c[d>>2]|0)+292>>2]|0;c[n>>2]=k;c[n+4>>2]=a;Zl(3,87556,n)|0;a=c[d>>2]|0}a=a+164|0}}while(0);vA(m);l=o;return}function yw(){var b=0,d=0,e=0;b=(c[(c[42297]|0)+16>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;e=b+16|0;b=c[e>>2]|0;d=c[b+264>>2]|0;if(d){XI(d);b=c[e>>2]|0}d=c[b+272>>2]|0;if(d){XI(d);b=c[e>>2]|0}a[b+157>>0]=0;b=b+164|0}return}function zw(){var a=0,b=0,d=0,e=0,f=0;a=(c[(c[42297]|0)+16>>2]|0)+192|0;while(1){a=c[a>>2]|0;if(!a)break;a=c[a+16>>2]|0;c[a+280>>2]=0;a=a+164|0}f=qw(c[42294]<<2)|0;e=0;a=(c[(c[42297]|0)+16>>2]|0)+192|0;while(1){b=c[a>>2]|0;if(!b)break;d=b+16|0;a=c[d>>2]|0;if(!(c[a+280>>2]|0)){c[f+(e<<2)>>2]=Mw(b)|0;b=e+1|0;a=c[d>>2]|0}else b=e;e=b;a=a+164|0}a=Nw(f,e)|0;while(1){if((Ow(a)|0)<=1)break;Sw(a,c[(Rw(Qw(Pw(a)|0)|0)|0)+8>>2]|0)}XI(a);a=0;while(1){if((a|0)>=(e|0))break;XI(c[f+(a<<2)>>2]|0);a=a+1|0}XI(f);if((c[42298]|0)==((c[42294]|0)+-1|0)){Tw();return}else ma(87279,87309,523,87314)}function Aw(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c[42304]|0;f=c[42298]|0;j=c[42299]|0;k=c[42254]|0;b=0;a=0;g=i;while(1){if((g|0)>=(f|0)){h=8;break}e=c[j+(g<<2)>>2]|0;d=c[(c[e+16>>2]|0)+160>>2]|0;if((d|0)<0){if(!a)a=e;else a=(c[(c[a+16>>2]|0)+160>>2]|0)>(d|0)?e:a;b=b+1|0;if((b|0)>=(k|0))break}e=g+1|0;c[42304]=e;g=e}if((h|0)==8)if((i|0)>0){f=0;while(1){if((f|0)>=(i|0))break;d=c[j+(f<<2)>>2]|0;e=c[(c[d+16>>2]|0)+160>>2]|0;if((e|0)<0){if(!a)a=d;else a=(c[(c[a+16>>2]|0)+160>>2]|0)>(e|0)?d:a;b=b+1|0;if((b|0)>=(k|0))break}f=f+1|0}c[42304]=f}return a|0}function Bw(a){a=a|0;var b=0,d=0;b=c[a>>2]&3;d=c[((b|0)==3?a:a+48|0)+40>>2]|0;a=c[((b|0)==2?a:a+-48|0)+40>>2]|0;b=(c[(c[d+16>>2]|0)+288>>2]|0)<(c[(c[a+16>>2]|0)+288>>2]|0);a=b?d:a;c[42300]=0;c[42301]=2147483647;d=c[a+16>>2]|0;c[42302]=c[d+284>>2];c[42303]=c[d+288>>2];if(b)Lw(a);else Kw(a);return c[42300]|0}function Cw(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;g=c[b>>2]&3;m=b+-48|0;j=b+48|0;k=b+16|0;g=(c[(c[(c[((g|0)==2?b:m)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((g|0)==3?b:j)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[k>>2]|0)+170>>1]|0)|0;do if((g|0)>0){d=c[a>>2]&3;h=c[((d|0)==3?a:a+48|0)+40>>2]|0;i=c[h+16>>2]|0;if(((c[i+276>>2]|0)+(c[i+268>>2]|0)|0)==1){Gw(h,g);break}d=c[((d|0)==2?a:a+-48|0)+40>>2]|0;f=c[d+16>>2]|0;if(((c[f+276>>2]|0)+(c[f+268>>2]|0)|0)==1){Gw(d,0-g|0);break}if((c[i+288>>2]|0)<(c[f+288>>2]|0)){Gw(h,g);break}else{Gw(d,0-g|0);break}}while(0);d=a+16|0;f=c[(c[d>>2]|0)+160>>2]|0;g=c[b>>2]&3;g=Hw(c[((g|0)==3?b:j)+40>>2]|0,c[((g|0)==2?b:m)+40>>2]|0,f,1)|0;i=c[b>>2]&3;if((Hw(c[((i|0)==2?b:m)+40>>2]|0,c[((i|0)==3?b:j)+40>>2]|0,f,0)|0)==(g|0)){c[(c[k>>2]|0)+160>>2]=0-f;c[(c[d>>2]|0)+160>>2]=0;Iw(a,b);n=c[g+16>>2]|0;Jw(g,c[n+280>>2]|0,c[n+284>>2]|0)|0;l=o;return}else{Zl(1,87240,n)|0;Ua(169020,1)}}function Dw(){var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;Fw();m=qw((c[42296]<<2)+4|0)|0;d=c[42296]|0;b=0;while(1){if((b|0)>(d|0))break;c[m+(b<<2)>>2]=0;b=b+1|0}b=(c[(c[42297]|0)+16>>2]|0)+192|0;d=b;while(1){d=c[d>>2]|0;if(!d)break;d=c[d+16>>2]|0;if(!(a[d+156>>0]|0)){l=m+(c[d+232>>2]<<2)|0;c[l>>2]=(c[l>>2]|0)+1}d=d+164|0}while(1){b=c[b>>2]|0;if(!b)break;l=b+16|0;b=c[l>>2]|0;if(!(a[b+156>>0]|0)){h=c[42296]|0;f=c[b+172>>2]|0;k=0;j=0;d=0;while(1){g=c[f+(d<<2)>>2]|0;if(!g)break;n=c[g+16>>2]|0;i=(c[(c[(c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)+(e[n+170>>1]|0)|0;k=(c[n+156>>2]|0)+k|0;j=(j|0)>(i|0)?j:i;d=d+1|0}g=c[b+180>>2]|0;i=0;d=0;while(1){f=c[g+(d<<2)>>2]|0;if(!f)break;o=c[f+16>>2]|0;n=(c[(c[(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[o+170>>1]|0)|0;i=(c[o+156>>2]|0)+i|0;h=(h|0)<(n|0)?h:n;d=d+1|0}d=(j|0)>0?j:0;if((k|0)==(i|0)){g=d;f=d;while(1){d=f+1|0;if((f|0)>=(h|0))break;g=(c[m+(d<<2)>>2]|0)<(c[m+(g<<2)>>2]|0)?d:g;f=d}o=b+232|0;n=m+(c[o>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+-1;n=m+(g<<2)|0;c[n>>2]=(c[n>>2]|0)+1;c[o>>2]=g}d=c[b+264>>2]|0;if(d){XI(d);b=c[l>>2]|0}d=c[b+272>>2]|0;if(d){XI(d);b=c[l>>2]|0}a[b+157>>0]=0}b=b+164|0}XI(m);return}function Ew(){var a=0,b=0,d=0,f=0,g=0,h=0;b=0;while(1){if((b|0)>=(c[42298]|0))break;a=c[(c[42299]|0)+(b<<2)>>2]|0;do if(((c[(c[a+16>>2]|0)+160>>2]|0)==0?(d=Bw(a)|0,d|0):0)?(f=c[d>>2]&3,f=(c[(c[(c[((f|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((f|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0,(f|0)>=2):0){h=c[a>>2]&3;g=c[((h|0)==3?a:a+48|0)+40>>2]|0;a=c[((h|0)==2?a:a+-48|0)+40>>2]|0;if((c[(c[g+16>>2]|0)+288>>2]|0)<(c[(c[a+16>>2]|0)+288>>2]|0)){Gw(g,f>>>1);break}else{Gw(a,(f|0)/-2|0);break}}while(0);b=b+1|0}yw();return}function Fw(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+16|0;h=i;c[h>>2]=0;c[h>>2]=2147483647;c[42296]=-2147483647;b=(c[(c[42297]|0)+16>>2]|0)+192|0;e=b;g=2147483647;f=-2147483647;while(1){d=c[e>>2]|0;if(!d)break;e=c[d+16>>2]|0;if(!(a[e+156>>0]|0)){j=c[e+232>>2]|0;d=(g|0)<(j|0)?g:j;c[h>>2]=d;f=(f|0)>(j|0)?f:j;c[42296]=f}else d=g;e=e+164|0;g=d}if(g|0){while(1){b=c[b>>2]|0;if(!b)break;b=c[b+16>>2]|0;j=b+232|0;c[j>>2]=(c[j>>2]|0)-g;b=b+164|0}c[42296]=f-g;c[h>>2]=0}l=i;return}function Gw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+16|0;a=c[f>>2]|0;e=a+232|0;c[e>>2]=(c[e>>2]|0)-b;e=0;while(1){d=c[(c[a+272>>2]|0)+(e<<2)>>2]|0;if(!d){e=0;break}if((d|0)!=(c[a+280>>2]|0)){Gw(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0}while(1){d=c[(c[a+264>>2]|0)+(e<<2)>>2]|0;if(!d)break;if((d|0)!=(c[a+280>>2]|0)){Gw(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0}return}function Hw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=(e|0)==0&1;h=0-d|0;f=c[(c[b+16>>2]|0)+288>>2]|0;b=a;while(1){a=c[b+16>>2]|0;if((c[a+284>>2]|0)<=(f|0)?(f|0)<=(c[a+288>>2]|0):0)break;a=c[a+280>>2]|0;i=a+48|0;j=(c[a+16>>2]|0)+160|0;c[j>>2]=(((b|0)==(c[((c[a>>2]&3|0)==3?a:i)+40>>2]|0)?e:g)|0?d:h)+(c[j>>2]|0);j=c[a>>2]&3;i=c[((j|0)==3?a:i)+40>>2]|0;a=c[((j|0)==2?a:a+-48|0)+40>>2]|0;b=(c[(c[i+16>>2]|0)+288>>2]|0)>(c[(c[a+16>>2]|0)+288>>2]|0)?i:a}return b|0}function Iw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=a+16|0;e=(c[i>>2]|0)+164|0;c[(c[b+16>>2]|0)+164>>2]=c[e>>2];c[(c[42299]|0)+(c[e>>2]<<2)>>2]=b;c[(c[i>>2]|0)+164>>2]=-1;i=(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16|0;e=c[i>>2]|0;g=e+276|0;f=c[g>>2]|0;j=f+-1|0;c[g>>2]=j;g=e+272|0;h=0;while(1){if((h|0)>=(f|0)){k=3;break}d=c[g>>2]|0;if((c[d+(h<<2)>>2]|0)==(a|0))break;h=h+1|0}if((k|0)==3)d=c[e+272>>2]|0;c[d+(h<<2)>>2]=c[d+(j<<2)>>2];c[(c[(c[i>>2]|0)+272>>2]|0)+(j<<2)>>2]=0;i=(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16|0;e=c[i>>2]|0;g=e+268|0;f=c[g>>2]|0;j=f+-1|0;c[g>>2]=j;g=e+264|0;h=0;while(1){if((h|0)>=(f|0)){k=8;break}d=c[g>>2]|0;if((c[d+(h<<2)>>2]|0)==(a|0))break;h=h+1|0}if((k|0)==8)d=c[e+264>>2]|0;c[d+(h<<2)>>2]=c[d+(j<<2)>>2];c[(c[(c[i>>2]|0)+264>>2]|0)+(j<<2)>>2]=0;k=(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)+16|0;a=c[k>>2]|0;j=c[a+272>>2]|0;a=a+276|0;i=c[a>>2]|0;c[a>>2]=i+1;c[j+(i<<2)>>2]=b;k=c[k>>2]|0;c[(c[k+272>>2]|0)+(c[k+276>>2]<<2)>>2]=0;k=(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)+16|0;i=c[k>>2]|0;j=c[i+264>>2]|0;i=i+268|0;a=c[i>>2]|0;c[i>>2]=a+1;c[j+(a<<2)>>2]=b;k=c[k>>2]|0;c[(c[k+264>>2]|0)+(c[k+268>>2]<<2)>>2]=0;return}function Jw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=a+16|0;a=c[g>>2]|0;c[a+280>>2]=b;c[a+284>>2]=d;f=0;while(1){e=c[(c[a+272>>2]|0)+(f<<2)>>2]|0;if(!e){f=0;break}if((e|0)!=(b|0)){d=Jw(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0}while(1){e=c[(c[a+264>>2]|0)+(f<<2)>>2]|0;if(!e)break;if((e|0)!=(b|0)){d=Jw(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0}c[a+288>>2]=d;return d+1|0}function Kw(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0;i=a+16|0;g=0;while(1){a=c[i>>2]|0;d=c[(c[a+180>>2]|0)+(g<<2)>>2]|0;if(!d){d=0;break}f=c[d+16>>2]|0;if((c[f+164>>2]|0)<0){a=c[d>>2]&3;b=c[(c[((a|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0;j=c[b+288>>2]|0;if((c[42302]|0)>(j|0)|(j|0)>(c[42303]|0)?(h=(c[b+232>>2]|0)-(c[(c[(c[((a|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[f+170>>1]|0)|0,(h|0)<(c[42301]|0)|(c[42300]|0)==0):0){c[42300]=d;c[42301]=h}}else{b=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;if((c[(c[b+16>>2]|0)+288>>2]|0)<(c[a+288>>2]|0))Kw(b)}g=g+1|0}while(1){b=c[(c[a+264>>2]|0)+(d<<2)>>2]|0;if(!((b|0)!=0&(c[42301]|0)>0))break;b=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;if((c[(c[b+16>>2]|0)+288>>2]|0)<(c[a+288>>2]|0)){Kw(b);a=c[i>>2]|0}d=d+1|0}return}function Lw(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0;i=a+16|0;g=0;while(1){a=c[i>>2]|0;d=c[(c[a+172>>2]|0)+(g<<2)>>2]|0;if(!d){d=0;break}f=c[d+16>>2]|0;if((c[f+164>>2]|0)<0){a=c[d>>2]&3;b=c[(c[((a|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0;j=c[b+288>>2]|0;if((c[42302]|0)>(j|0)|(j|0)>(c[42303]|0)?(h=(c[(c[(c[((a|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[b+232>>2]|0)-(e[f+170>>1]|0)|0,(h|0)<(c[42301]|0)|(c[42300]|0)==0):0){c[42300]=d;c[42301]=h}}else{b=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((c[(c[b+16>>2]|0)+288>>2]|0)<(c[a+288>>2]|0))Lw(b)}g=g+1|0}while(1){b=c[(c[a+272>>2]|0)+(d<<2)>>2]|0;if(!((b|0)!=0&(c[42301]|0)>0))break;b=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;if((c[(c[b+16>>2]|0)+288>>2]|0)<(c[a+288>>2]|0)){Lw(b);a=c[i>>2]|0}d=d+1|0}return}function Mw(a){a=a|0;var b=0;b=qw(16)|0;c[b>>2]=a;c[b+4>>2]=ax(a,b)|0;c[b+12>>2]=b;return b|0}function Nw(a,b){a=a|0;b=b|0;var d=0,e=0;e=qw(8)|0;c[e>>2]=a;c[e+4>>2]=b;d=0;while(1){if((d|0)>=(b|0))break;c[(c[a+(d<<2)>>2]|0)+8>>2]=d;d=d+1|0}d=(b|0)/2|0;while(1){if((d|0)<=-1)break;Sw(e,d);d=d+-1|0}return e|0}function Ow(a){a=a|0;return c[a+4>>2]|0}function Pw(a){a=a|0;var b=0,d=0,e=0,f=0;f=c[a>>2]|0;b=c[f>>2]|0;c[b+8>>2]=-1;d=a+4|0;e=(c[d>>2]|0)+-1|0;c[f>>2]=c[f+(e<<2)>>2];f=c[a>>2]|0;c[(c[f>>2]|0)+8>>2]=0;c[f+(e<<2)>>2]=b;c[d>>2]=e;Sw(a,0);return b|0}function Qw(a){a=a|0;return $w(c[a>>2]|0,0,0)|0}function Rw(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0;b=a+16|0;if((c[(c[b>>2]|0)+164>>2]|0)>-1)ma(87328,87309,463,87342);g=a+48|0;d=Xw(c[((c[a>>2]&3|0)==3?a:g)+40>>2]|0)|0;i=a+-48|0;f=Xw(c[((c[a>>2]&3|0)==2?a:i)+40>>2]|0)|0;h=c[a>>2]&3;b=(c[(c[(c[((h|0)==2?a:i)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((h|0)==3?a:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[b>>2]|0)+170>>1]|0)|0;if((c[d+8>>2]|0)==-1)Yw(c[d>>2]|0,0,b);else Yw(c[f>>2]|0,0,0-b|0);Zw(a);return _w(d,f)|0}function Sw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a>>2]|0;g=c[a+4>>2]|0;while(1){a=b<<1;f=a+2|0;a=a|1;if(!((a|0)<(g|0)?(c[(c[h+(a<<2)>>2]|0)+4>>2]|0)<(c[(c[h+(b<<2)>>2]|0)+4>>2]|0):0))a=b;if((f|0)>=(g|0))break;d=h+(f<<2)|0;e=c[d>>2]|0;if((f|0)==(b|0)?1:(c[e+4>>2]|0)>=(c[(c[h+(a<<2)>>2]|0)+4>>2]|0))break;i=h+(b<<2)|0;a=c[i>>2]|0;c[i>>2]=e;c[d>>2]=a;c[(c[i>>2]|0)+8>>2]=b;c[a+8>>2]=f;b=f}return}function Tw(){Jw(c[(c[(c[42297]|0)+16>>2]|0)+192>>2]|0,0,1)|0;Uw(c[(c[(c[42297]|0)+16>>2]|0)+192>>2]|0,0);return}function Uw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+16|0;d=0;while(1){a=c[f>>2]|0;e=c[(c[a+272>>2]|0)+(d<<2)>>2]|0;if(!e){e=0;break}if((e|0)!=(b|0))Uw(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,e);d=d+1|0}while(1){d=c[(c[a+264>>2]|0)+(e<<2)>>2]|0;if(!d)break;if((d|0)!=(b|0)){Uw(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,d);a=c[f>>2]|0}e=e+1|0}if(b|0)Vw(b);return}function Vw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=c[a>>2]&3;d=c[((b|0)==3?a:a+48|0)+40>>2]|0;e=c[d+16>>2]|0;if((c[e+280>>2]|0)==(a|0))i=1;else{e=c[((b|0)==2?a:a+-48|0)+40>>2]|0;i=-1;d=e;e=c[e+16>>2]|0}g=c[e+180>>2]|0;b=0;f=0;while(1){h=c[g+(f<<2)>>2]|0;if(!h)break;b=(Ww(h,d,i)|0)+b|0;f=f+1|0}g=c[e+172>>2]|0;e=0;while(1){f=c[g+(e<<2)>>2]|0;if(!f)break;b=(Ww(f,d,i)|0)+b|0;e=e+1|0}c[(c[a+16>>2]|0)+160>>2]=b;return}function Ww(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;i=(h|0)==3?a:a+48|0;e=c[i+40>>2]|0;if((e|0)==(b|0))e=c[((h|0)==2?a:a+-48|0)+40>>2]|0;g=c[b+16>>2]|0;f=c[(c[e+16>>2]|0)+288>>2]|0;if((c[g+284>>2]|0)<=(f|0)?(f|0)<=(c[g+288>>2]|0):0){f=c[a+16>>2]|0;if((c[f+164>>2]|0)>-1)e=c[f+160>>2]|0;else e=0;g=1;e=e-(c[f+156>>2]|0)|0}else{g=0;e=c[(c[a+16>>2]|0)+156>>2]|0}i=(c[((d|0)>0?((h|0)==2?a:a+-48|0):i)+40>>2]|0)==(b|0)?1:-1;return (((g?i:0-i|0)|0)<0?0-e|0:e)|0}function Xw(a){a=a|0;var b=0,d=0;a=c[(c[a+16>>2]|0)+280>>2]|0;while(1){b=a+12|0;d=c[b>>2]|0;if(!((d|0)!=(a|0)&(d|0)!=0))break;a=c[d+12>>2]|0;if(!a){a=d;continue}c[b>>2]=a}return a|0}function Yw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=a+16|0;e=c[h>>2]|0;g=e+232|0;c[g>>2]=(c[g>>2]|0)+d;g=0;while(1){f=c[(c[e+264>>2]|0)+(g<<2)>>2]|0;if(!f){g=0;break}f=c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0;if((f|0)!=(b|0)){Yw(f,a,d);e=c[h>>2]|0}g=g+1|0}while(1){f=c[(c[e+272>>2]|0)+(g<<2)>>2]|0;if(!f)break;f=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((f|0)!=(b|0)){Yw(f,a,d);e=c[h>>2]|0}g=g+1|0}return}function Zw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+32|0;d=(c[b+16>>2]|0)+164|0;if((c[d>>2]|0)>-1){Zl(1,87431,h)|0;Ua(169020,1)}g=c[42298]|0;c[d>>2]=g;d=c[42299]|0;c[42298]=g+1;c[d+(g<<2)>>2]=b;d=c[b>>2]|0;g=b+48|0;e=c[((d&3|0)==3?b:g)+40>>2]|0;if(!(a[(c[e+16>>2]|0)+157>>0]|0)){f=c[42305]|0;d=c[42306]|0;c[42306]=d+1;c[f+(d<<2)>>2]=e;d=c[b>>2]|0}f=b+-48|0;e=c[((d&3|0)==2?b:f)+40>>2]|0;if(!(a[(c[e+16>>2]|0)+157>>0]|0)){i=c[42305]|0;d=c[42306]|0;c[42306]=d+1;c[i+(d<<2)>>2]=e;d=c[b>>2]|0}i=(c[((d&3|0)==3?b:g)+40>>2]|0)+16|0;d=c[i>>2]|0;a[d+157>>0]=1;e=c[d+272>>2]|0;d=d+276|0;g=c[d>>2]|0;c[d>>2]=g+1;c[e+(g<<2)>>2]=b;g=c[i>>2]|0;c[(c[g+272>>2]|0)+(c[g+276>>2]<<2)>>2]=0;i=c[i>>2]|0;if(!(c[(c[i+180>>2]|0)+((c[i+276>>2]|0)+-1<<2)>>2]|0)){Zl(1,87465,h+8|0)|0;Ua(169020,1)}i=(c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0)+16|0;e=c[i>>2]|0;a[e+157>>0]=1;f=c[e+264>>2]|0;e=e+268|0;g=c[e>>2]|0;c[e>>2]=g+1;c[f+(g<<2)>>2]=b;b=c[i>>2]|0;c[(c[b+264>>2]|0)+(c[b+268>>2]<<2)>>2]=0;i=c[i>>2]|0;if(!(c[(c[i+172>>2]|0)+((c[i+268>>2]|0)+-1<<2)>>2]|0)){Zl(1,87500,h+16|0)|0;Ua(169020,1)}else{l=h;return}}function _w(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;while(1){g=a+12|0;d=c[g>>2]|0;if((d|0)==0|(d|0)==(a|0))break;else a=d}while(1){f=b+12|0;d=c[f>>2]|0;if((d|0)==0|(d|0)==(b|0))break;else b=d}if((a|0)!=(b|0)){e=c[a+8>>2]|0;d=c[b+8>>2]|0;do if((e|0)>-1)if((d|0)==-1)h=a;else j=10;else if((d|0)>-1)if((e|0)==-1){h=b;break}else{j=10;break}else ma(87354,87309,327,87401);while(0);if((j|0)==10)h=(c[b+4>>2]|0)<(c[a+4>>2]|0)?a:b;c[f>>2]=h;c[g>>2]=h;c[h+4>>2]=(c[b+4>>2]|0)+(c[a+4>>2]|0);if((c[h+8>>2]|0)>-1)i=h;else ma(87412,87309,335,87401)}else i=a;return i|0}function $w(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=Xw(a)|0;if(d){k=c[d>>2]&3;if(((c[(c[(c[((k|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((k|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)!=(e[(c[d+16>>2]|0)+170>>1]|0|0))f=3}else{d=0;f=3}a:do if((f|0)==3){k=a+16|0;j=0;while(1){f=c[k>>2]|0;i=c[(c[f+180>>2]|0)+(j<<2)>>2]|0;if(!i){j=0;break}f=i+16|0;g=i+-48|0;h=c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0;do if((c[(c[f>>2]|0)+164>>2]|0)>-1){if((h|0)!=(b|0))d=$w(h,a,d)|0}else if((Xw(h)|0)!=(l|0)){if(d|0?(m=c[i>>2]&3,h=c[d>>2]&3,((c[(c[(c[((m|0)==2?i:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[f>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((h|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((h|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=i}while(0);j=j+1|0}while(1){f=c[(c[f+172>>2]|0)+(j<<2)>>2]|0;if(!f)break a;g=f+16|0;h=f+48|0;i=c[((c[f>>2]&3|0)==3?f:h)+40>>2]|0;do if((c[(c[g>>2]|0)+164>>2]|0)>-1){if((i|0)!=(b|0))d=$w(i,a,d)|0}else if((Xw(i)|0)!=(l|0)){if(d|0?(i=c[f>>2]&3,m=c[d>>2]&3,((c[(c[(c[((i|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((i|0)==3?f:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[g>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((m|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=f}while(0);j=j+1|0;f=c[k>>2]|0}}while(0);return d|0}function ax(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=a+16|0;d=c[l>>2]|0;c[d+280>>2]=b;a=1;h=0;while(1){g=c[(c[d+172>>2]|0)+(h<<2)>>2]|0;if(!g){h=0;break}f=c[g+16>>2]|0;if(((c[f+164>>2]|0)<=-1?(i=c[g>>2]&3,j=g+48|0,k=c[(c[((i|0)==3?g:j)+40>>2]|0)+16>>2]|0,(c[k+280>>2]|0)==0):0)?((c[(c[(c[((i|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[k+232>>2]|0)|0)==(e[f+170>>1]|0|0):0){Zw(g);a=(ax(c[((c[g>>2]&3|0)==3?g:j)+40>>2]|0,b)|0)+a|0;d=c[l>>2]|0}h=h+1|0}while(1){f=c[(c[d+180>>2]|0)+(h<<2)>>2]|0;if(!f)break;g=c[f+16>>2]|0;if(((c[g+164>>2]|0)<=-1?(m=c[f>>2]&3,n=f+-48|0,o=c[(c[((m|0)==2?f:n)+40>>2]|0)+16>>2]|0,(c[o+280>>2]|0)==0):0)?((c[o+232>>2]|0)-(c[(c[(c[((m|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)==(e[g+170>>1]|0|0):0){Zw(f);a=(ax(c[((c[f>>2]&3|0)==2?f:n)+40>>2]|0,b)|0)+a|0;d=c[l>>2]|0}h=h+1|0}return a|0}function bx(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=Hm(a,87564)|0;if(!d)d=30;else d=nM(d)|0;return uw(a,b,c,d)|0}function cx(a){a=+a;return +(0==0?a:+h[20895]-a)}function dx(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0;r=l;l=l+16|0;q=r;c[42307]=c[(c[(c[d+64>>2]|0)+8>>2]|0)+4>>2];ex(d);i=c[d+16>>2]|0;t=+h[i+32>>3];s=+h[i+40>>3];fx(e,87575,+h[b+352>>3]);fx(e,87582,t*.013888888888888888);fx(e,87582,s*.013888888888888888);gx(e);i=bo(d)|0;while(1){if(!i)break;g=i+16|0;if(!(a[(c[g>>2]|0)+118>>0]|0)){hx(e,87584,Up(Cn(i)|0)|0);p=(c[g>>2]|0)+16|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];ix(e,q);if(!(a[(c[(c[g>>2]|0)+104>>2]|0)+82>>0]|0)){b=qo(i)|0;b=jx(b,c[c[(c[g>>2]|0)+104>>2]>>2]|0)|0}else b=Up(Im(i,c[42197]|0)|0)|0;fx(e,87582,+h[(c[g>>2]|0)+32>>3]);fx(e,87582,+h[(c[g>>2]|0)+40>>3]);hx(e,87582,b);hx(e,87582,BA(i,c[42200]|0,95833)|0);hx(e,87582,c[c[(c[g>>2]|0)+8>>2]>>2]|0);hx(e,87582,BA(i,c[42191]|0,122106)|0);b=BA(i,c[42192]|0,174177)|0;if(!(a[b>>0]|0))b=BA(i,c[42191]|0,119592)|0;hx(e,87582,b);gx(e)}i=co(d,i)|0}o=f<<24>>24==0;n=bo(d)|0;while(1){if(!n)break;m=Om(d,n)|0;while(1){if(!m)break;if(o){f=174177;j=174177}else{j=Hm(m,96242)|0;f=Hm(m,96251)|0;f=f|0?f:174177;j=j|0?j:174177}p=m+16|0;b=c[p>>2]|0;k=c[b+8>>2]|0;a:do if(k){i=c[k+4>>2]|0;b=0;g=0;while(1){if((b|0)>=(i|0))break;u=(c[(c[k>>2]|0)+(b*48|0)+4>>2]|0)+g|0;b=b+1|0;g=u}hx(e,0,96237);kx(e,c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0,j);kx(e,c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0,f);lx(e,g);f=0;while(1){b=c[p>>2]|0;g=c[b+8>>2]|0;if((f|0)>=(c[g+4>>2]|0))break a;i=c[g>>2]|0;g=c[i+(f*48|0)>>2]|0;i=c[i+(f*48|0)+4>>2]|0;b=0;while(1){if((b|0)>=(i|0))break;u=g+(b<<4)|0;c[q>>2]=c[u>>2];c[q+4>>2]=c[u+4>>2];c[q+8>>2]=c[u+8>>2];c[q+12>>2]=c[u+12>>2];ix(e,q);b=b+1|0}f=f+1|0}}while(0);if(c[b+96>>2]|0){u=qo(c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0)|0;hx(e,87582,jx(u,c[c[(c[p>>2]|0)+96>>2]>>2]|0)|0);u=(c[(c[p>>2]|0)+96>>2]|0)+56|0;c[q>>2]=c[u>>2];c[q+4>>2]=c[u+4>>2];c[q+8>>2]=c[u+8>>2];c[q+12>>2]=c[u+12>>2];ix(e,q)}hx(e,87582,BA(m,c[42228]|0,95833)|0);hx(e,87582,BA(m,c[42219]|0,122106)|0);gx(e);m=Qm(d,m)|0}n=co(d,n)|0}mx(87590,e);l=r;return}function ex(a){a=a|0;var b=0.0;if(0){a=c[a+16>>2]|0;b=+h[a+24>>3]+ +h[a+40>>3];h[20895]=b;h[20896]=b*.013888888888888888}return}function fx(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0,f=0;f=l;l=l+1040|0;e=f;d=f+8|0;if(b|0)mx(b,a);h[e>>3]=c;lL(d,87596,e)|0;mx(d,a);l=f;return}function gx(b){b=b|0;a[174073]=10;ab[c[42307]&63](b,174073)|0;return}function hx(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)mx(b,a);mx(c,a);return}function ix(a,b){a=a|0;b=b|0;var c=0.0;fx(a,87582,+h[b>>3]*.013888888888888888);if(!0)c=+h[b+8>>3];else c=+h[20895]-+h[b+8>>3];fx(a,87582,c*.013888888888888888);return}function jx(a,b){a=a|0;b=b|0;var c=0;c=_o(a,b)|0;b=Up(c)|0;ap(a,c)|0;return b|0}function kx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if(!(a[(c[d+16>>2]|0)+118>>0]|0))d=Up(Cn(d)|0)|0;else{f=qo(d)|0;d=jx(f,(TJ(Cn(d)|0,58)|0)+1|0)|0}hx(b,87582,d);if(e|0?a[e>>0]|0:0)hx(b,92961,Up(e)|0);return}function lx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+1040|0;f=d;e=d+8|0;mx(87582,a);c[f>>2]=b;lL(e,122187,f)|0;mx(e,a);l=d;return}function mx(a,b){a=a|0;b=b|0;ab[c[42307]&63](b,a)|0;return}+function nx(d,f,g){d=d|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;Y=l;l=l+2288|0;W=Y+208|0;V=Y+192|0;U=Y+176|0;T=Y+160|0;S=Y+144|0;R=Y+128|0;P=Y+112|0;O=Y+96|0;N=Y+80|0;M=Y+64|0;L=Y+56|0;K=Y+48|0;X=Y+32|0;Q=Y+24|0;J=Y;G=Y+1264|0;H=Y+224|0;I=d+16|0;C=(e[(c[I>>2]|0)+178>>1]|0)>2;Av(1);ex(d);bm(H,1024,Y+240|0);oB(d,1,87601,174177)|0;oB(d,1,87605,174177)|0;c[42189]=oB(d,1,95987,174177)|0;c[42188]=oB(d,1,95993,174177)|0;oB(d,2,87601,174177)|0;i=a[(c[I>>2]|0)+113>>0]|0;if(i&16){oB(d,1,87611,174177)|0;i=a[(c[I>>2]|0)+113>>0]|0}if(i&1){oB(d,2,87615,174177)|0;i=a[(c[I>>2]|0)+113>>0]|0}if(i&32){oB(d,2,87611,174177)|0;i=a[(c[I>>2]|0)+113>>0]|0}if(i&2){oB(d,2,87618,174177)|0;i=a[(c[I>>2]|0)+113>>0]|0}if(i&4){oB(d,2,87626,174177)|0;i=a[(c[I>>2]|0)+113>>0]|0}if(!(i&8)){v=0;w=0;x=0}else{x=oB(d,0,87615,174177)|0;w=oB(d,0,87634,174177)|0;v=oB(d,0,87641,174177)|0}z=oB(d,0,87649,174177)|0;A=H+4|0;B=H+8|0;u=0;i=0;y=bo(d)|0;while(1){if(!y)break;t=y+16|0;k=c[t>>2]|0;o=+h[k+16>>3];j=0==0;if(C){if(j)m=+h[k+24>>3];else m=+h[20895]-+h[k+24>>3];q=+h[(c[k+132>>2]|0)+16>>3]*72.0;h[J>>3]=o;h[J+8>>3]=m;h[J+16>>3]=q;lL(G,87652,J)|0;em(H,G)|0;j=3;while(1){if((j|0)>=(e[(c[I>>2]|0)+178>>1]|0))break;h[Q>>3]=+h[(c[(c[t>>2]|0)+132>>2]|0)+(j<<3)>>3]*72.0;lL(G,87667,Q)|0;em(H,G)|0;j=j+1|0}j=c[A>>2]|0;if(j>>>0>=(c[B>>2]|0)>>>0){cm(H,1)|0;j=c[A>>2]|0}a[j>>0]=0;s=c[H>>2]|0;c[A>>2]=s;Jm(y,87601,s)|0;s=y}else{if(j)m=+h[k+24>>3];else m=+h[20895]-+h[k+24>>3];h[X>>3]=o;h[X+8>>3]=m;lL(G,87673,X)|0;Jm(y,87601,G)|0;s=y}h[K>>3]=+h[(c[t>>2]|0)+80>>3]*.013888888888888888;lL(G,87596,K)|0;Bm(s,c[42188]|0,G)|0;j=c[t>>2]|0;h[L>>3]=(+h[j+96>>3]+ +h[j+88>>3])*.013888888888888888;lL(G,87596,L)|0;Bm(s,c[42189]|0,G)|0;j=c[t>>2]|0;k=c[j+108>>2]|0;if((k|0)!=0?(a[k+81>>0]|0)!=0:0){q=+h[k+64>>3];q=0==0?q:+h[20895]-q;h[M>>3]=+h[k+56>>3];h[M+8>>3]=q;lL(G,87673,M)|0;Jm(s,87611,G)|0;j=c[t>>2]|0}if(uJ(c[c[j+8>>2]>>2]|0,91208)|0){if(c[42213]|0?(Jy(y)|0)<<24>>24:0){k=c[(c[t>>2]|0)+12>>2]|0;r=k+8|0;j=c[r>>2]|0;if((j|0)<3){j=Hm(s,87683)|0;if(!j)j=8;else j=nM(j)|0;j=(j|0)<3?8:j}p=k+44|0;q=1.0/+(j|0);n=0;while(1){if((n|0)>=(j|0))break;if((n|0)>0){k=c[A>>2]|0;if(k>>>0>=(c[B>>2]|0)>>>0){cm(H,1)|0;k=c[A>>2]|0}c[A>>2]=k+1;a[k>>0]=32}if((c[r>>2]|0)>2){k=c[p>>2]|0;if(!0)m=+h[k+(n<<4)+8>>3]*.013888888888888888;else m=+h[20896]-+h[k+(n<<4)+8>>3]*.013888888888888888;h[N>>3]=+h[k+(n<<4)>>3]*.013888888888888888;h[N+8>>3]=m;lL(G,87696,N)|0}else{k=c[t>>2]|0;m=q*+(n|0)*6.283185307179586;o=+h[k+32>>3]*.5*+E(+m);if(!0)m=+h[k+40>>3]*.5*+F(+m);else m=+h[20896]-+h[k+40>>3]*.5*+F(+m);h[O>>3]=o;h[O+8>>3]=m;lL(G,87696,O)|0}em(H,G)|0;n=n+1|0}k=c[42213]|0;j=c[A>>2]|0;if(j>>>0>=(c[B>>2]|0)>>>0){cm(H,1)|0;j=c[A>>2]|0}a[j>>0]=0;t=c[H>>2]|0;c[A>>2]=t;Bm(s,k,t)|0}}else{ox(y,c[j+12>>2]|0,H);gm(H)|0;j=c[A>>2]|0;if(j>>>0>=(c[B>>2]|0)>>>0){cm(H,1)|0;j=c[A>>2]|0}a[j>>0]=0;t=c[H>>2]|0;c[A>>2]=t;Jm(s,87605,t)|0}a:do if((c[42181]|0)>0){t=Om(d,y)|0;j=u;while(1){if(!t)break a;s=t+16|0;k=c[s>>2]|0;do if((a[k+112>>0]|0)!=6?(D=c[k+8>>2]|0,(D|0)!=0):0){r=0;k=D;while(1){if((r|0)>=(c[k+4>>2]|0))break;if((r|0)>0){k=c[A>>2]|0;if(k>>>0>=(c[B>>2]|0)>>>0){cm(H,1)|0;k=c[A>>2]|0}c[A>>2]=k+1;a[k>>0]=59;k=c[(c[s>>2]|0)+8>>2]|0}k=c[k>>2]|0;if(c[k+(r*48|0)+8>>2]|0){if(!0)m=+h[k+(r*48|0)+24>>3];else m=+h[20895]-+h[k+(r*48|0)+24>>3];h[P>>3]=+h[k+(r*48|0)+16>>3];h[P+8>>3]=m;lL(G,87706,P)|0;em(H,G)|0;i=1;k=c[c[(c[s>>2]|0)+8>>2]>>2]|0}if(c[k+(r*48|0)+12>>2]|0){if(!0)m=+h[k+(r*48|0)+40>>3];else m=+h[20895]-+h[k+(r*48|0)+40>>3];h[R>>3]=+h[k+(r*48|0)+32>>3];h[R+8>>3]=m;lL(G,87719,R)|0;em(H,G)|0;j=1}p=0;while(1){k=c[(c[s>>2]|0)+8>>2]|0;n=c[k>>2]|0;if((p|0)>=(c[n+(r*48|0)+4>>2]|0))break;if((p|0)>0){k=c[A>>2]|0;if(k>>>0>=(c[B>>2]|0)>>>0){cm(H,1)|0;k=c[A>>2]|0}c[A>>2]=k+1;a[k>>0]=32;k=c[c[(c[s>>2]|0)+8>>2]>>2]|0}else k=n;u=c[k+(r*48|0)>>2]|0;q=+h[u+(p<<4)+8>>3];q=0==0?q:+h[20895]-q;h[S>>3]=+h[u+(p<<4)>>3];h[S+8>>3]=q;lL(G,87673,S)|0;em(H,G)|0;p=p+1|0}r=r+1|0}k=c[A>>2]|0;if(k>>>0>=(c[B>>2]|0)>>>0){cm(H,1)|0;k=c[A>>2]|0}a[k>>0]=0;k=c[H>>2]|0;c[A>>2]=k;Jm(t,87601,k)|0;k=c[s>>2]|0;n=c[k+96>>2]|0;if(n){q=+h[n+64>>3];q=0==0?q:+h[20895]-q;h[T>>3]=+h[n+56>>3];h[T+8>>3]=q;lL(G,87673,T)|0;Jm(t,87615,G)|0;k=c[s>>2]|0}n=c[k+108>>2]|0;do if(n){if(!(a[n+81>>0]|0))break;q=+h[n+64>>3];q=0==0?q:+h[20895]-q;h[U>>3]=+h[n+56>>3];h[U+8>>3]=q;lL(G,87673,U)|0;Jm(t,87611,G)|0;k=c[s>>2]|0}while(0);n=c[k+100>>2]|0;if(n){q=+h[n+64>>3];q=0==0?q:+h[20895]-q;h[V>>3]=+h[n+56>>3];h[V+8>>3]=q;lL(G,87673,V)|0;Jm(t,87618,G)|0;k=c[s>>2]|0}k=c[k+104>>2]|0;if(!k)break;q=+h[k+64>>3];q=0==0?q:+h[20895]-q;h[W>>3]=+h[k+56>>3];h[W+8>>3]=q;lL(G,87673,W)|0;Jm(t,87626,G)|0}while(0);t=Qm(d,t)|0}}else j=u;while(0);u=j;y=co(d,y)|0}px(d,z,x,w,v);fm(H);if(b[(c[I>>2]|0)+136>>1]&1)iB(d);c[f>>2]=i;c[g>>2]=u;Av(0);l=Y;return}function ox(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0.0;n=l;l=l+1056|0;k=n;j=n+32|0;m=b+48|0;if(!(c[m>>2]|0)){e=c[a+16>>2]|0;i=+h[e+16>>3];if(!0){g=+h[e+24>>3];f=g+ +h[b+24>>3];g=g+ +h[b+40>>3]}else{g=+h[e+24>>3];f=+h[20895]-+h[b+24>>3]-g;g=+h[20895]-+h[b+40>>3]-g}o=i+ +h[b+32>>3];h[k>>3]=i+ +h[b+16>>3];h[k+8>>3]=f;h[k+16>>3]=o;h[k+24>>3]=g;lL(j,87757,k)|0;em(d,j)|0}b=b+56|0;e=0;while(1){if((e|0)>=(c[m>>2]|0))break;ox(a,c[(c[b>>2]|0)+(e<<2)>>2]|0,d);e=e+1|0}l=n;return}function px(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=l;l=l+1088|0;o=s+56|0;q=s+48|0;p=s+32|0;j=s;n=s+64|0;r=b+16|0;i=c[r>>2]|0;if(!0){k=+h[i+24>>3];m=+h[i+40>>3]}else{m=+h[20895];k=m-+h[i+24>>3];m=m-+h[i+40>>3]}t=+h[i+32>>3];h[j>>3]=+h[i+16>>3];h[j+8>>3]=k;h[j+16>>3]=t;h[j+24>>3]=m;lL(n,87732,j)|0;Bm(b,d,n)|0;i=c[(c[r>>2]|0)+12>>2]|0;if((i|0)!=0?(a[c[i>>2]>>0]|0)!=0:0){t=+h[i+64>>3];t=0==0?t:+h[20895]-t;h[p>>3]=+h[i+56>>3];h[p+8>>3]=t;lL(n,87673,p)|0;Bm(b,e,n)|0;i=c[(c[r>>2]|0)+12>>2]|0;t=+h[i+32>>3];h[q>>3]=+h[i+24>>3]*.013888888888888888;lL(n,87752,q)|0;Bm(b,f,n)|0;h[o>>3]=t*.013888888888888888;lL(n,87752,o)|0;Bm(b,g,n)|0;i=1}else i=1;while(1){j=c[r>>2]|0;if((i|0)>(c[j+180>>2]|0))break;px(c[(c[j+184>>2]|0)+(i<<2)>>2]|0,d,e,f,g);i=i+1|0}l=s;return}function qx(a){a=a|0;var b=0;b=l;l=l+16|0;nx(a,b,b+4|0);l=b;return}function rx(){return Pl(19796,c[4345]|0)|0}function sx(a,b,c){a=a|0;b=b|0;c=c|0;XI(b);return}function tx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;e=c[d>>2]|0;if((a|0)<=(e|0))if((a|0)<(e|0))a=-1;else{b=c[b+4>>2]|0;d=c[d+4>>2]|0;return ((b|0)>(d|0)?1:((b|0)<(d|0))<<31>>31)|0}else a=1;return a|0}function ux(a){a=a|0;Jl(a)|0;return}function vx(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];b=wx(e)|0;if((bb[c[a>>2]&31](a,b,1)|0)!=(b|0))XI(b);l=d;return}function wx(a){a=a|0;var b=0,d=0,e=0;b=qw(16)|0;e=a;d=c[e+4>>2]|0;a=b+8|0;c[a>>2]=c[e>>2];c[a+4>>2]=d;return b|0}function xx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[g>>2]=b;c[g+4>>2]=d;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];b=wx(f)|0;if((bb[c[a>>2]&31](a,b,1)|0)!=(b|0))XI(b);l=e;return}function yx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d;g=b;f=c[g+4>>2]|0;b=e+8|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;b=(bb[c[a>>2]&31](a,e,4)|0)!=0&1;l=d;return b|0}function zx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f+8>>2]=b;c[f+12>>2]=d;d=(bb[c[a>>2]&31](a,f,4)|0)!=0&1;l=e;return d|0}function Ax(a){a=a|0;return Rl(a)|0}function Bx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=qw((Rl(a)|0)<<3)|0;b=d;a=Nl(a)|0;while(1){if(!a)break;g=a+8|0;f=c[g+4>>2]|0;e=b;c[e>>2]=c[g>>2];c[e+4>>2]=f;b=b+8|0;a=c[a>>2]|0}return d|0}function Cx(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+160|0;q=t+144|0;d=t+48|0;j=t+128|0;k=t+112|0;m=t+96|0;n=t+80|0;o=t+32|0;p=t+16|0;r=t;s=a+16|0;a=c[s>>2]|0;e=+h[a+16>>3];f=+h[a+24>>3];g=+h[a+32>>3];i=+h[a+40>>3];if((b+-1|0)>>>0<2){Dx(j,e,i);c[q>>2]=c[j>>2];c[q+4>>2]=c[j+4>>2];c[q+8>>2]=c[j+8>>2];c[q+12>>2]=c[j+12>>2];Ex(d,q);p=d+16|0;Dx(k,g,f);c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];Ex(m,q);c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2]}else{Dx(n,e,f);c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];Ex(d,q);n=d+16|0;Dx(o,g,i);c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];Ex(p,q);c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2]}a=(c[s>>2]|0)+16|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];c[a+28>>2]=c[d+28>>2];a=c[(c[s>>2]|0)+12>>2]|0;if(!a)a=1;else{a=a+56|0;c[q>>2]=c[a>>2];c[q+4>>2]=c[a+4>>2];c[q+8>>2]=c[a+8>>2];c[q+12>>2]=c[a+12>>2];Ex(r,q);c[a>>2]=c[r>>2];c[a+4>>2]=c[r+4>>2];c[a+8>>2]=c[r+8>>2];c[a+12>>2]=c[r+12>>2];a=1}while(1){d=c[s>>2]|0;if((a|0)>(c[d+180>>2]|0))break;Cx(c[(c[d+184>>2]|0)+(a<<2)>>2]|0,b);a=a+1|0}l=t;return}function Dx(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function Ex(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;g=d+16|0;e=d;f=(c[42308]|0)*90|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];Xv(e,g,f);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];h[b>>3]=+h[b>>3]-+h[20897];e=b+8|0;h[e>>3]=+h[e>>3]-+h[20898];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];l=d;return}function Fx(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0.0,k=0.0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+1168|0;s=w+144|0;v=w+96|0;u=w+64|0;t=w+48|0;o=w+32|0;p=w+16|0;q=w;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;r=b+16|0;m=c[(c[r>>2]|0)+116>>2]|0;c[42308]=m&3;m=m&1;a[174075]=m;if(!(m<<24>>24))Hx(b);else Gx(b);Ix(b);m=c[r>>2]|0;e=c[m+12>>2]|0;do if(e|0?(a[e+81>>0]|0)==0:0){g=e+24|0;c[t>>2]=c[g>>2];c[t+4>>2]=c[g+4>>2];c[t+8>>2]=c[g+8>>2];c[t+12>>2]=c[g+12>>2];n=+h[t>>3]+16.0;h[t>>3]=n;g=t+8|0;f=+h[g>>3]+8.0;h[g>>3]=f;g=(a[m+275>>0]&1)!=0;if(a[174075]|0){if(g){i=m+32|0;h[i>>3]=+h[i>>3]+f}else{i=m+16|0;h[i>>3]=+h[i>>3]-f}g=m+40|0;f=+h[g>>3];i=m+24|0;j=+h[i>>3];k=f-j;if(!(n>k))break;n=(n-k)*.5;h[i>>3]=j-n;h[g>>3]=f+n;break}i=(c[42308]|0)==0;do if(g)if(i){i=m+40|0;h[i>>3]=+h[i>>3]+f;break}else{i=m+24|0;h[i>>3]=+h[i>>3]-f;break}else if(i){i=m+24|0;h[i>>3]=+h[i>>3]-f;break}else{i=m+40|0;h[i>>3]=+h[i>>3]+f;break}while(0);g=m+32|0;f=+h[g>>3];i=m+16|0;j=+h[i>>3];k=f-j;if(n>k){n=(n-k)*.5;h[i>>3]=j-n;h[g>>3]=f+n}}while(0);if(d){switch(c[42308]|0){case 0:{q=m+16|0;c[41794]=c[q>>2];c[41795]=c[q+4>>2];c[41796]=c[q+8>>2];c[41797]=c[q+12>>2];break}case 1:{Dx(o,-+h[m+40>>3],+h[m+16>>3]);c[41794]=c[o>>2];c[41795]=c[o+4>>2];c[41796]=c[o+8>>2];c[41797]=c[o+12>>2];break}case 2:{Dx(p,+h[m+16>>3],-+h[m+40>>3]);c[41794]=c[p>>2];c[41795]=c[p+4>>2];c[41796]=c[p+8>>2];c[41797]=c[p+12>>2];break}case 3:{Dx(q,+h[m+24>>3],+h[m+16>>3]);c[41794]=c[q>>2];c[41795]=c[q+4>>2];c[41796]=c[q+8>>2];c[41797]=c[q+12>>2];break}default:{}}Jx(b);e=c[(c[r>>2]|0)+12>>2]|0}if(e|0?(a[e+81>>0]|0)==0:0){c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];Kx(b,s)}if(!0){l=w;return}if(!(a[174075]|0)){n=+h[20898];k=+h[20897];h[v>>3]=n;h[v+8>>3]=k;h[v+16>>3]=n;h[v+24>>3]=k;h[v+32>>3]=-k;h[v+40>>3]=-n;lL(s,87993,v)|0}else{k=+h[20897];n=+h[20898];h[u>>3]=k;h[u+8>>3]=n;h[u+16>>3]=k;h[u+24>>3]=n;lL(s,87778,u)|0}CL(s)|0;Ta()}function Gx(b){b=b|0;var d=0,e=0.0,f=0.0,g=0,i=0,j=0;j=b+16|0;if(((ro(b)|0)!=(b|0)?(g=c[j>>2]|0,i=c[g+12>>2]|0,(i|0)!=0):0)?(a[i+81>>0]|0)==0:0){d=a[g+275>>0]|0;if(!(d&1)){f=+h[g+16>>3]+ +h[g+96>>3]*.5;b=g+104|0}else{f=+h[g+32>>3]-+h[g+64>>3]*.5;b=g+72|0}e=+h[b>>3];b=d<<24>>24;do if(!(b&4))if(!(b&2)){e=(+h[g+40>>3]+ +h[g+24>>3])*.5;break}else{e=+h[g+40>>3]-e*.5;break}else e=+h[g+24>>3]+e*.5;while(0);h[i+56>>3]=f;h[i+64>>3]=e;a[(c[(c[j>>2]|0)+12>>2]|0)+81>>0]=1;b=1}else b=1;while(1){d=c[j>>2]|0;if((b|0)>(c[d+180>>2]|0))break;Gx(c[(c[d+184>>2]|0)+(b<<2)>>2]|0);b=b+1|0}return}function Hx(b){b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,j=0,k=0;k=b+16|0;if(((ro(b)|0)!=(b|0)?(i=c[k>>2]|0,j=c[i+12>>2]|0,(j|0)!=0):0)?(a[j+81>>0]|0)==0:0){d=a[i+275>>0]|0;if(!(d&1)){g=+h[i+24>>3]+ +h[i+56>>3]*.5;b=i+48|0}else{g=+h[i+40>>3]-+h[i+88>>3]*.5;b=i+80|0}f=+h[b>>3];b=d<<24>>24;do if(!(b&4)){e=+h[i+16>>3];if(!(b&2)){e=(+h[i+32>>3]+e)*.5;break}else{e=e+f*.5;break}}else e=+h[i+32>>3]-f*.5;while(0);h[j+56>>3]=e;h[j+64>>3]=g;a[(c[(c[k>>2]|0)+12>>2]|0)+81>>0]=1;b=1}else b=1;while(1){d=c[k>>2]|0;if((b|0)>(c[d+180>>2]|0))break;Hx(c[(c[d+184>>2]|0)+(b<<2)>>2]|0);b=b+1|0}return}function Ix(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;S=l;l=l+544|0;L=S+504|0;R=S+416|0;Q=S+376|0;K=S+352|0;J=S+312|0;I=S+288|0;H=S+248|0;M=S+200|0;B=S+152|0;O=S+96|0;p=S+488|0;C=S+456|0;D=S+424|0;E=S+384|0;F=S+360|0;G=S+320|0;w=S+296|0;x=S+256|0;y=S+232|0;z=S+168|0;A=S+136|0;f=S+56|0;N=S+16|0;P=S;o=e+16|0;u=c[o>>2]|0;g=b[u+136>>1]&14;u=d[u+113>>0]|0;if(!((u&54|0)==0?(u&1|0)==0|(c[42182]|0)!=0:0)){u=g<<16>>16==0;n=bo(e)|0;h=0;j=0;i=0;while(1){if(!n)break;g=c[(c[n+16>>2]|0)+108>>2]|0;do if(g)if(!(a[g+81>>0]|0)){i=i+1|0;break}else{h=h+1|0;break}while(0);m=Om(e,n)|0;g=j;while(1){if(!m)break;k=c[m+16>>2]|0;j=c[k+108>>2]|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(!u)g=g+((c[k+8>>2]|0)!=0&1)|0}while(0);j=c[k+100>>2]|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(!u)g=g+((c[k+8>>2]|0)!=0&1)|0}while(0);j=c[k+104>>2]|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(!u)g=g+((c[k+8>>2]|0)!=0&1)|0}while(0);j=c[k+96>>2]|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(!u)g=g+((c[k+8>>2]|0)!=0&1)|0}while(0);m=Qm(e,m)|0}n=co(e,n)|0;j=g}if(!(a[(c[o>>2]|0)+113>>0]&8))o=0;else o=Mx(e)|0;t=j+i|0;if(t|0){q=h+j+o+(ln(e)|0)|0;r=qw(q*40|0)|0;s=qw(t*40|0)|0;Dx(M,2147483647.0,2147483647.0);g=M+16|0;Dx(p,-2147483647.0,-2147483647.0);c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];g=s;i=r;n=bo(e)|0;while(1){if(!n)break;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];Nx(C,n,i,L);c[M>>2]=c[C>>2];c[M+4>>2]=c[C+4>>2];c[M+8>>2]=c[C+8>>2];c[M+12>>2]=c[C+12>>2];c[M+16>>2]=c[C+16>>2];c[M+20>>2]=c[C+20>>2];c[M+24>>2]=c[C+24>>2];c[M+28>>2]=c[C+28>>2];h=c[(c[n+16>>2]|0)+108>>2]|0;do if(h)if(!(a[h+81>>0]|0)){c[L>>2]=c[B>>2];c[L+4>>2]=c[B+4>>2];c[L+8>>2]=c[B+8>>2];c[L+12>>2]=c[B+12>>2];Px(h,i,g,0,L);g=g+40|0;break}else{i=i+40|0;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];Ox(D,h,i,L);c[M>>2]=c[D>>2];c[M+4>>2]=c[D+4>>2];c[M+8>>2]=c[D+8>>2];c[M+12>>2]=c[D+12>>2];c[M+16>>2]=c[D+16>>2];c[M+20>>2]=c[D+20>>2];c[M+24>>2]=c[D+24>>2];c[M+28>>2]=c[D+28>>2];break}while(0);m=Om(e,n)|0;i=i+40|0;while(1){if(!m)break;k=m+16|0;h=c[k>>2]|0;j=c[h+96>>2]|0;a:do if(!j)v=52;else{do if(!(a[j+81>>0]|0)){if(!u?c[h+8>>2]|0:0){Wz(F,e,m);c[L>>2]=c[F>>2];c[L+4>>2]=c[F+4>>2];c[L+8>>2]=c[F+8>>2];c[L+12>>2]=c[F+12>>2];Px(j,i,g,1,L);g=g+40|0;break}c[H>>2]=c[j>>2];Zl(0,88805,H)|0;break a}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];Ox(E,j,i,L);c[M>>2]=c[E>>2];c[M+4>>2]=c[E+4>>2];c[M+8>>2]=c[E+8>>2];c[M+12>>2]=c[E+12>>2];c[M+16>>2]=c[E+16>>2];c[M+20>>2]=c[E+20>>2];c[M+24>>2]=c[E+24>>2];c[M+28>>2]=c[E+28>>2]}while(0);i=i+40|0;h=c[k>>2]|0;v=52}while(0);b:do if((v|0)==52){v=0;j=c[h+104>>2]|0;if(j){do if(!(a[j+81>>0]|0)){if(!u?c[h+8>>2]|0:0){Qx(w,m);c[L>>2]=c[w>>2];c[L+4>>2]=c[w+4>>2];c[L+8>>2]=c[w+8>>2];c[L+12>>2]=c[w+12>>2];Px(j,i,g,1,L);g=g+40|0;break}c[I>>2]=c[j>>2];Zl(0,88840,I)|0;break b}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];Ox(G,j,i,L);c[M>>2]=c[G>>2];c[M+4>>2]=c[G+4>>2];c[M+8>>2]=c[G+8>>2];c[M+12>>2]=c[G+12>>2];c[M+16>>2]=c[G+16>>2];c[M+20>>2]=c[G+20>>2];c[M+24>>2]=c[G+24>>2];c[M+28>>2]=c[G+28>>2]}while(0);i=i+40|0;h=c[k>>2]|0}j=c[h+100>>2]|0;if(j){do if(!(a[j+81>>0]|0)){if(!u?c[h+8>>2]|0:0){Rx(y,m);c[L>>2]=c[y>>2];c[L+4>>2]=c[y+4>>2];c[L+8>>2]=c[y+8>>2];c[L+12>>2]=c[y+12>>2];Px(j,i,g,1,L);g=g+40|0;break}c[J>>2]=c[j>>2];Zl(0,88880,J)|0;break b}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];Ox(x,j,i,L);c[M>>2]=c[x>>2];c[M+4>>2]=c[x+4>>2];c[M+8>>2]=c[x+8>>2];c[M+12>>2]=c[x+12>>2];c[M+16>>2]=c[x+16>>2];c[M+20>>2]=c[x+20>>2];c[M+24>>2]=c[x+24>>2];c[M+28>>2]=c[x+28>>2]}while(0);i=i+40|0;h=c[k>>2]|0}j=c[h+108>>2]|0;if(j){do if(!(a[j+81>>0]|0)){if(!u?c[h+8>>2]|0:0){Wz(A,e,m);c[L>>2]=c[A>>2];c[L+4>>2]=c[A+4>>2];c[L+8>>2]=c[A+8>>2];c[L+12>>2]=c[A+12>>2];Px(j,i,g,1,L);g=g+40|0;break}c[K>>2]=c[j>>2];Zl(0,88920,K)|0;break b}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];Ox(z,j,i,L);c[M>>2]=c[z>>2];c[M+4>>2]=c[z+4>>2];c[M+8>>2]=c[z+8>>2];c[M+12>>2]=c[z+12>>2];c[M+16>>2]=c[z+16>>2];c[M+20>>2]=c[z+20>>2];c[M+24>>2]=c[z+24>>2];c[M+28>>2]=c[z+28>>2]}while(0);i=i+40|0}}while(0);m=Qm(e,m)|0}n=co(e,n)|0}if(o|0){c[f>>2]=c[M>>2];c[f+4>>2]=c[M+4>>2];c[f+8>>2]=c[M+8>>2];c[f+12>>2]=c[M+12>>2];c[f+16>>2]=c[M+16>>2];c[f+20>>2]=c[M+20>>2];c[f+24>>2]=c[M+24>>2];c[f+28>>2]=c[M+28>>2];c[f+32>>2]=i;h=L;g=h+40|0;do{c[h>>2]=c[f>>2];h=h+4|0;f=f+4|0}while((h|0)<(g|0));Sx(N,e,L);c[M>>2]=c[N>>2];c[M+4>>2]=c[N+4>>2];c[M+8>>2]=c[N+8>>2];c[M+12>>2]=c[N+12>>2];c[M+16>>2]=c[N+16>>2];c[M+20>>2]=c[N+20>>2];c[M+24>>2]=c[N+24>>2];c[M+28>>2]=c[N+28>>2]}a[O+32>>0]=CA(e,xm(e,0,88956,0)|0,1)|0;c[O>>2]=c[M>>2];c[O+4>>2]=c[M+4>>2];c[O+8>>2]=c[M+8>>2];c[O+12>>2]=c[M+12>>2];c[O+16>>2]=c[M+16>>2];c[O+20>>2]=c[M+20>>2];c[O+24>>2]=c[M+24>>2];c[O+28>>2]=c[M+28>>2];wE(r,q,s,t,O)|0;if(0)Tx(r,q,s,t,O);f=0;g=0;h=s;while(1){if((g|0)>=(t|0))break;if(a[h+36>>0]|0){O=c[h+32>>2]|0;a[O+81>>0]=1;N=O+56|0;Ux(P,h);c[N>>2]=c[P>>2];c[N+4>>2]=c[P+4>>2];c[N+8>>2]=c[P+8>>2];c[N+12>>2]=c[P+12>>2];YA(e,O);f=f+1|0}g=g+1|0;h=h+40|0}if(!0){if((f|0)!=(t|0)){c[R>>2]=f;c[R+4>>2]=t;Zl(0,89001,R)|0}}else{R=c[13918]|0;c[Q>>2]=f;c[Q+4>>2]=t;vL(R,88968,Q)|0}XI(r);XI(s)}}l=S;return}function Jx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0;i=l;l=l+48|0;e=i+32|0;f=i+16|0;g=i;if(+h[20897]!=0.0|+h[20898]!=0.0|(c[42308]|0)!=0){d=bo(a)|0;while(1){if(!d)break;if(c[42308]|0)FB(d,0);b=d+16|0;j=(c[b>>2]|0)+16|0;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];Ex(f,e);c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];b=c[(c[b>>2]|0)+108>>2]|0;if(b|0){j=b+56|0;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];Ex(g,e);c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2]}a:do if((c[42181]|0)==1){b=Om(a,d)|0;while(1){if(!b)break a;Lx(b);b=Qm(a,b)|0}}while(0);d=co(a,d)|0}Cx(a,c[(c[a+16>>2]|0)+116>>2]&3)}l=i;return}function Kx(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0;i=b+16|0;j=c[i>>2]|0;g=a[j+275>>0]|0;b=g<<24>>24;do if(!(b&4)){e=+h[j+16>>3];if(!(b&2)){f=(+h[j+32>>3]+e)*.5;break}else{f=+h[d>>3]*.5+e;break}}else f=+h[j+32>>3]-+h[d>>3]*.5;while(0);if(!(g&1))e=+h[d+8>>3]*.5+ +h[j+24>>3];else e=+h[j+40>>3]-+h[d+8>>3]*.5;j=c[j+12>>2]|0;h[j+56>>3]=f;h[j+64>>3]=e;a[(c[(c[i>>2]|0)+12>>2]|0)+81>>0]=1;return}function Lx(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=l;l=l+144|0;q=s+120|0;e=s+16|0;i=s+104|0;j=s+88|0;k=s+72|0;m=s+56|0;n=s+40|0;o=s+24|0;r=s;p=b+16|0;d=c[p>>2]|0;f=c[d+8>>2]|0;if(!f){if((a[174072]|0)==0?(a[d+112>>0]|0)!=6:0){q=Cn(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;r=Cn(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[e>>2]=q;c[e+4>>2]=r;Zl(1,88788,e)|0}}else{h=0;b=f;while(1){if((h|0)>=(c[b+4>>2]|0))break;g=c[b>>2]|0;b=c[g+(h*48|0)>>2]|0;e=c[g+(h*48|0)+4>>2]|0;f=c[g+(h*48|0)+8>>2]|0;g=c[g+(h*48|0)+12>>2]|0;d=0;while(1){if((d|0)>=(e|0))break;t=b+(d<<4)|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];Ex(i,q);c[t>>2]=c[i>>2];c[t+4>>2]=c[i+4>>2];c[t+8>>2]=c[i+8>>2];c[t+12>>2]=c[i+12>>2];d=d+1|0}if(f|0){t=(c[c[(c[p>>2]|0)+8>>2]>>2]|0)+(h*48|0)+16|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];Ex(j,q);c[t>>2]=c[j>>2];c[t+4>>2]=c[j+4>>2];c[t+8>>2]=c[j+8>>2];c[t+12>>2]=c[j+12>>2]}if(g|0){t=(c[c[(c[p>>2]|0)+8>>2]>>2]|0)+(h*48|0)+32|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];Ex(k,q);c[t>>2]=c[k>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];c[t+12>>2]=c[k+12>>2]}d=c[p>>2]|0;h=h+1|0;b=c[d+8>>2]|0}b=c[d+96>>2]|0;if(b){d=b+56|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];Ex(m,q);c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];d=c[p>>2]|0}b=c[d+108>>2]|0;if(b){d=b+56|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];Ex(n,q);c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];d=c[p>>2]|0}b=c[d+100>>2]|0;if(b){d=b+56|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];Ex(o,q);c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];d=c[p>>2]|0}d=c[d+104>>2]|0;if(d|0){t=d+56|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];Ex(r,q);c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2]}}l=s;return}function Mx(b){b=b|0;var d=0,e=0,f=0;f=b+16|0;if((ro(b)|0)!=(b|0)?(d=c[(c[f>>2]|0)+12>>2]|0,(d|0)!=0):0){e=1;b=(a[d+81>>0]|0)!=0&1}else{e=1;b=0}while(1){d=c[f>>2]|0;if((e|0)>(c[d+180>>2]|0))break;d=(Mx(c[(c[d+184>>2]|0)+(e<<2)>>2]|0)|0)+b|0;e=e+1|0;b=d}return b|0}function Nx(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0.0,m=0,n=0;g=l;l=l+32|0;i=g;n=(a[174075]|0)==0;d=d+16|0;m=c[d>>2]|0;k=+h[(n?m+32|0:m+40|0)>>3];h[e+16>>3]=k*72.0;j=+h[(n?m+40|0:m+32|0)>>3];h[e+24>>3]=j*72.0;d=(c[d>>2]|0)+16|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];h[e>>3]=+h[e>>3]-k*36.0;d=e+8|0;h[d>>3]=+h[d>>3]-j*36.0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];c[i+28>>2]=c[f+28>>2];Vx(b,e,i);l=g;return}function Ox(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0.0,m=0,n=0;g=l;l=l+32|0;i=g;n=(a[174075]|0)==0;m=d+24|0;k=+h[(n?m:d+32|0)>>3];h[e+16>>3]=k;j=+h[(n?d+32|0:m)>>3];h[e+24>>3]=j;d=d+56|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];h[e>>3]=+h[e>>3]-k*.5;d=e+8|0;h[d>>3]=+h[d>>3]-j*.5;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];c[i+28>>2]=c[f+28>>2];Vx(b,e,i);l=g;return}function Px(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(f|0){f=d+16|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2]}if(!(a[174075]|0)){g=b+24|0;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2]}else{h[e>>3]=+h[b+32>>3];h[e+8>>3]=+h[b+24>>3]}c[e+32>>2]=b;a[e+36>>0]=0;c[d+32>>2]=e;return}function Qx(a,b){a=a|0;b=b|0;b=Vz(b)|0;do if(b){b=c[b>>2]|0;if(!(c[b+8>>2]|0)){b=c[b>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{b=b+16|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while(0);return}function Rx(a,b){a=a|0;b=b|0;var d=0;b=Vz(b)|0;do if(b){d=c[b>>2]|0;b=(c[b+4>>2]|0)+-1|0;if(!(c[d+(b*48|0)+12>>2]|0)){d=(c[d+(b*48|0)>>2]|0)+((c[d+(b*48|0)+4>>2]|0)+-1<<4)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}else{d=d+(b*48|0)+32|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while(0);return}function Sx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+112|0;k=q+72|0;n=q+32|0;o=q;p=d+16|0;j=1;while(1){f=c[p>>2]|0;if((j|0)>(c[f+180>>2]|0))break;f=c[(c[f+184>>2]|0)+(j<<2)>>2]|0;g=k;h=e;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));Sx(n,f,k);g=e;h=n;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));j=j+1|0}if(((ro(d)|0)!=(d|0)?(m=c[(c[p>>2]|0)+12>>2]|0,m|0):0)?a[m+81>>0]|0:0){p=e+32|0;n=c[p>>2]|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[k+16>>2]=c[e+16>>2];c[k+20>>2]=c[e+20>>2];c[k+24>>2]=c[e+24>>2];c[k+28>>2]=c[e+28>>2];Ox(o,m,n,k);c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2];c[e+16>>2]=c[o+16>>2];c[e+20>>2]=c[o+20>>2];c[e+24>>2]=c[o+24>>2];c[e+28>>2]=c[o+28>>2];c[p>>2]=(c[p>>2]|0)+40}g=b;h=e;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));l=q;return}function Tx(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+160|0;r=s+96|0;p=s+48|0;o=s;q=c[13918]|0;n=d[g+32>>0]|0;i=+h[g>>3];j=+h[g+8>>3];k=+h[g+16>>3];m=+h[g+24>>3];c[o>>2]=b;c[o+4>>2]=f;c[o+8>>2]=n;h[o+16>>3]=i;h[o+24>>3]=j;h[o+32>>3]=k;h[o+40>>3]=m;vL(q,89043,o)|0;a:do if(0>=2){TL(89103,8,1,q)|0;o=0;while(1){if((o|0)>=(b|0))break;g=c[a+32>>2]|0;i=+h[a>>3];j=+h[a+8>>3];k=+h[a+16>>3];m=+h[a+24>>3];if(!g)n=174177;else n=c[c[g+32>>2]>>2]|0;c[p>>2]=o;h[p+8>>3]=i;h[p+16>>3]=j;h[p+24>>3]=k;h[p+32>>3]=m;c[p+40>>2]=g;c[p+44>>2]=n;vL(q,89112,p)|0;o=o+1|0;a=a+40|0}TL(89155,8,1,q)|0;g=0;while(1){if((g|0)>=(f|0))break a;b=d[e+36>>0]|0;i=+h[e+16>>3];j=+h[e+24>>3];k=+h[e>>3];m=+h[e+8>>3];p=c[c[e+32>>2]>>2]|0;c[r>>2]=g;c[r+4>>2]=e;c[r+8>>2]=b;h[r+16>>3]=i;h[r+24>>3]=j;h[r+32>>3]=k;h[r+40>>3]=m;c[r+48>>2]=p;vL(q,89164,r)|0;e=e+40|0;g=g+1|0}}while(0);l=s;return}function Ux(a,b){a=a|0;b=b|0;var c=0.0;c=+h[b+8>>3]*.5+ +h[b+24>>3];h[a>>3]=+h[b>>3]*.5+ +h[b+16>>3];h[a+8>>3]=c;return}function Vx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0.0;e=l;l=l+16|0;f=e;j=+h[b>>3];h[d>>3]=+h[(+h[d>>3]<j?d:b)>>3];g=d+8|0;i=+h[b+8>>3];h[g>>3]=+h[(+h[g>>3]<i?d:b)+8>>3];j=+h[b+16>>3]+j;h[f>>3]=j;i=+h[b+24>>3]+i;h[f+8>>3]=i;g=d+16|0;h[g>>3]=+h[(+h[g>>3]>j?g:f)>>3];b=d+24|0;h[b>>3]=+h[(+h[b>>3]>i?g:f)+8>>3];c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];c[a+28>>2]=c[d+28>>2];l=e;return}function Wx(a){a=a|0;Fx(a,1);return}function Xx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=l;l=l+16|0;d=e;b=MA(Hm(a,90504)|0)|0;if(b){b=Yx(b)|0;if(b|0){f=c[b+40>>2]|0;d=c[b+44>>2]|0;g=a+16|0;a=c[g>>2]|0;h[a+32>>3]=+(f|0)*.013888888888888888;h[a+40>>3]=+(d|0)*.013888888888888888;a=qw(12)|0;c[(c[g>>2]|0)+12>>2]=a;c[a>>2]=c[b+12>>2];c[a+4>>2]=((f|0)/-2|0)-(c[b+32>>2]|0);c[a+8>>2]=((d|0)/-2|0)-(c[b+36>>2]|0)}}else{c[d>>2]=Cn(a)|0;Zl(0,89212,d)|0}l=e;return}function Yx(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+1152|0;i=p+24|0;h=p+8|0;e=p;f=p+120|0;j=p+44|0;k=p+40|0;m=p+36|0;n=p+32|0;o=p+28|0;d=c[42309]|0;if(!d){d=Pl(19832,c[4345]|0)|0;c[42309]=d}d=bb[c[d>>2]&31](d,b,512)|0;do if(!d){g=YL(b,123632)|0;if(!g){c[e>>2]=b;Zl(0,89261,e)|0;d=0;break}else{d=0;e=0}while(1){if(!(cL(f,1024,g)|0)){f=11;break}c[h>>2]=k;c[h+4>>2]=m;c[h+8>>2]=n;c[h+12>>2]=o;q=(_L(f,89289,h)|0)==4;e=q?1:e;if((a[f>>0]|0)!=37){q=(dL(f,89318)|0)==0;d=q?d:1}if((e|0)!=0&(d|0)!=0){f=12;break}}if((f|0)==11)if(!e){c[i>>2]=b;Zl(0,89323,i)|0;d=0}else f=12;if((f|0)==12){q=rw(64)|0;k=c[k>>2]|0;c[q+32>>2]=k;m=c[m>>2]|0;c[q+40>>2]=(c[n>>2]|0)-k;c[q+36>>2]=(c[o>>2]|0)-m;c[q+8>>2]=b;o=c[42310]|0;c[42310]=o+1;c[q+12>>2]=o;WL(vN(g)|0,j)|0;o=c[j+36>>2]|0;n=rw(o+1|0)|0;c[q+52>>2]=n;kM(g,0,0)|0;sN(n,o,1,g)|0;a[n+o>>0]=0;o=c[42309]|0;bb[c[o>>2]&31](o,q,1)|0;a[q+16>>0]=d;d=q}HL(g)|0}while(0);l=p;return d|0}function Zx(a,b,d){a=a|0;b=b|0;d=d|0;XI(c[b+52>>2]|0);return}function _x(a){a=a|0;XI(c[(c[a+16>>2]|0)+12>>2]|0);return}function $x(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;m=n+8|0;k=n;j=(d|0)!=0;a:do if(j){h=0;f=0;b:while(1)while(1){if(h)break a;g=c[d+(f<<2)>>2]|0;if(!g){i=6;break a}f=f+1|0;if(!(a[g>>0]|0)){h=1;continue b}}}else i=6;while(0);c:do if((i|0)==6)while(1){f=c[e>>2]|0;if(!f)break c;hr(b,f)|0;hr(b,134901)|0;e=e+4|0;i=6}while(0);d:do if(j){h=0;while(1){f=c[d+(h<<2)>>2]|0;if(!f)break d;do if(a[f>>0]|0){e=MA(f)|0;if(!e){c[k>>2]=f;Zl(0,89362,k)|0;break}g=YL(e,123632)|0;if(!g){c[m>>2]=e;Zl(0,89390,m)|0;break}while(1){f=LA(g)|0;if(!f)break;hr(b,f)|0}hr(b,134901)|0;HL(g)|0}while(0);h=h+1|0}}while(0);l=n;return}function ay(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;d=c[d+52>>2]|0;a:while(1){e=a[d>>0]|0;b:do switch(e<<24>>24){case 0:break a;case 37:{if((a[d+1>>0]|0)==37){e=d+2|0;if((((lK(e,89418,3)|0)!=0?(lK(e,89422,5)|0)!=0:0)?(lK(e,89428,3)|0)!=0:0)?(lK(e,89432,7)|0)!=0:0){e=37;break b}else g=37;c:while(1){switch(g<<24>>24){case 13:{f=10;break c}case 10:case 0:{f=12;break c}default:{}}g=d+1|0;d=g;g=a[g>>0]|0}if((f|0)==10){e=d+1|0;if((a[e>>0]|0)==10){d=d+2|0;continue a}}else if((f|0)==12)e=d+1|0;d=g<<24>>24==0?d:e;continue a}else e=37;break}default:{}}while(0);d:while(1){switch(e<<24>>24){case 10:case 13:case 0:break d;default:{}}ir(b,e<<24>>24)|0;g=d+1|0;d=g;e=a[g>>0]|0}f=d+1|0;if(e<<24>>24==13?(a[f>>0]|0)==10:0)d=d+2|0;else d=e<<24>>24==0?d:f;ir(b,10)|0}return}function by(b){b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f;d=c[42309]|0;a:do if(d|0){d=bb[c[d>>2]&31](d,0,128)|0;while(1){if(!d)break a;if(!(a[d+16>>0]|0)){c[e>>2]=c[d+12>>2];nr(b,89440,e);hr(b,89458)|0;ay(b,d);hr(b,89476)|0;hr(b,89491)|0}g=c[42309]|0;d=bb[c[g>>2]&31](g,d,8)|0}}while(0);l=f;return}function cy(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do switch(d|0){case 0:{f=b;break}case 1:{f=uB(b)|0;break}default:{switch(dy(b)|0){case 2:break;case 1:{f=uB(b)|0;break a}default:{f=b;break a}}if(!(c[42311]|0)){Zl(0,89503,e)|0;c[42311]=1;f=b}else f=b}}while(0);if(!(c[42312]|0))bm(169248,0,0);d=c[42313]|0;if(d>>>0>=(c[42314]|0)>>>0){cm(169248,1)|0;d=c[42313]|0}c[42313]=d+1;a[d>>0]=40;e=f;b:while(1){switch(a[e>>0]|0){case 0:break b;case 92:case 41:case 40:{d=c[42313]|0;if(d>>>0>=(c[42314]|0)>>>0){cm(169248,1)|0;d=c[42313]|0}c[42313]=d+1;a[d>>0]=92;break}default:{}}d=c[42313]|0;if(d>>>0>=(c[42314]|0)>>>0){cm(169248,1)|0;d=c[42313]|0}h=a[e>>0]|0;c[42313]=d+1;a[d>>0]=h;e=e+1|0}d=c[42313]|0;if(d>>>0>=(c[42314]|0)>>>0){cm(169248,1)|0;d=c[42313]|0}c[42313]=d+1;a[d>>0]=41;if((f|0)!=(b|0))XI(f);d=c[42313]|0;if(d>>>0>=(c[42314]|0)>>>0){cm(169248,1)|0;d=c[42313]|0}a[d>>0]=0;h=c[42312]|0;c[42313]=h;l=g;return h|0}function dy(b){b=b|0;var c=0,d=0;c=0;a:while(1){while(1){d=a[b>>0]|0;if(!(d<<24>>24))break a;if((d&255)<127)b=b+1|0;else break}if((d&-4)<<24>>24==-64){c=1;b=b+2|0}else{c=2;break}}return c|0}function ey(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+96|0;i=n+80|0;j=n+72|0;m=n+64|0;g=n+32|0;k=n;h[g>>3]=+h[a>>3];h[g+8>>3]=+h[a+8>>3];h[g+16>>3]=+h[b>>3];h[g+24>>3]=+h[b+8>>3];do if((AI(d,g,j)|0)>=0){if(!f){b=d+4|0;a=c[b>>2]|0;f=c[42317]|0;if((a|0)>(c[42316]|0)){if(!f)a=rw(a<<5)|0;else a=tw(f,a<<5)|0;c[42317]=a;g=c[b>>2]|0;c[42316]=g;f=a}else g=a;b=c[d>>2]|0;a=0;while(1){if((a|0)>=(g|0))break;o=f+(a<<5)|0;d=b+(a<<4)|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];o=f+(a<<5)+16|0;d=a+1|0;p=b+(((d|0)%(g|0)|0)<<4)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];a=d}c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];if((eI(f,g,i,k,m)|0)<0){a=0;break}}else{c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];VI(i,m)}a=m+4|0;if(!(fy(c[a>>2]|0)|0)){g=c[a>>2]|0;a=c[42318]|0;f=c[m>>2]|0;b=0;while(1){if((b|0)>=(g|0))break;p=a+(b<<4)|0;o=f+(b<<4)|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];b=b+1|0}c[e>>2]=g}else a=0}else a=0;while(0);l=n;return a|0}function fy(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=c[42319]|0;do if((b|0)<(a|0)){a=a+300-((a|0)%300|0)+b|0;b=tw(c[42318]|0,a<<4)|0;c[42318]=b;if(!b){Zl(1,89593,d)|0;a=1;break}else{c[42319]=a;a=0;break}}else a=0;while(0);l=e;return a|0}function gy(){var a=0,b=0,d=0;b=l;l=l+16|0;a=b;d=c[42320]|0;c[42320]=d+1;do if((d|0)<=0){d=rw(4800)|0;c[42318]=d;if(!d){Zl(1,89616,a)|0;a=1;break}c[42319]=300;c[42321]=0;c[42322]=0;if(0){sA();a=0}else a=0}else a=0;while(0);l=b;return a|0}function hy(){var a=0,b=0,d=0,e=0.0,f=0,g=0;b=l;l=l+16|0;a=b;d=c[42320]|0;c[42320]=d+-1;if((d|0)<=1?(XI(c[42318]|0),0):0){d=c[13918]|0;g=c[42321]|0;f=c[42322]|0;e=+tA();c[a>>2]=g;c[a+4>>2]=f;h[a+8>>3]=e;vL(d,89654,a)|0}l=b;return}function iy(a,b){a=a|0;b=b|0;return jy(a,b,0)|0}function jy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;L=l;l=l+176|0;G=L+168|0;K=L+128|0;x=L+120|0;v=L+112|0;i=L+104|0;s=L+88|0;n=L+72|0;g=L+64|0;t=L+160|0;I=L+152|0;y=L+144|0;u=L+32|0;w=L;J=L+136|0;c[42321]=(c[42321]|0)+1;H=c[b+80>>2]|0;c[42322]=(c[42322]|0)+H;f=b+88|0;while(1){C=c[f>>2]|0;if(!C){D=4;break}f=c[C+16>>2]|0;if(!(a[f+112>>0]|0)){D=5;break}else f=f+116|0}do if((D|0)==4){Zl(1,89697,g)|0;f=0}else if((D|0)==5){B=c[b+84>>2]|0;if(!(ky(H,B,b)|0)){g=H<<3;if((g|0)>(c[42323]|0)){f=c[42324]|0;if(!f)f=rw(H<<7)|0;else f=tw(f,H<<7)|0;c[42324]=f;c[42323]=g}a:do if((H|0)>1?+h[B+8>>3]>+h[B+40>>3]:0){f=0;while(1){if((f|0)==(H|0)){p=1;break a}z=B+(f<<5)+24|0;m=+h[z>>3];A=B+(f<<5)+8|0;h[z>>3]=-+h[A>>3];h[A>>3]=-m;f=f+1|0}}else p=0;while(0);r=c[C>>2]&3;z=C+48|0;f=c[((r|0)==3?C:z)+40>>2]|0;A=C+-48|0;if((f|0)==(c[((r|0)==2?C:A)+40>>2]|0)){c[i>>2]=Cn(f)|0;Zl(1,89804,i)|0;f=0;break}o=H+-1|0;q=c[42324]|0;r=q;f=0;j=0;b:while(1){if((j|0)>=(H|0)){j=o;n=f;break}if((j|0)>0)g=+h[B+(j<<5)+8>>3]>+h[B+(j+-1<<5)+8>>3]?-1:1;else g=0;if((j|0)<(o|0))i=+h[B+(j+1<<5)+8>>3]>+h[B+(j<<5)+8>>3]?1:-1;else i=0;c:do if((g|0)!=(i|0))if((g|0)==1|(i|0)==-1){g=B+(j<<5)|0;h[q+(f<<4)>>3]=+h[g>>3];i=f+1|0;h[q+(f<<4)+8>>3]=+h[B+(j<<5)+24>>3];h[q+(i<<4)>>3]=+h[g>>3];g=B+(j<<5)+8|0;D=29;break}else{g=B+(j<<5)+16|0;h[q+(f<<4)>>3]=+h[g>>3];i=f+1|0;h[q+(f<<4)+8>>3]=+h[B+(j<<5)+8>>3];h[q+(i<<4)>>3]=+h[g>>3];g=B+(j<<5)+24|0;D=29;break}else{switch(g|0){case -1:break c;case 0:break;default:{D=28;break b}}g=B+(j<<5)|0;h[q+(f<<4)>>3]=+h[g>>3];i=f+1|0;h[q+(f<<4)+8>>3]=+h[B+(j<<5)+24>>3];h[q+(i<<4)>>3]=+h[g>>3];g=B+(j<<5)+8|0;D=29}while(0);if((D|0)==29){D=0;h[q+(i<<4)+8>>3]=+h[g>>3];f=f+2|0}j=j+1|0}if((D|0)==28){c[n>>2]=g;c[n+4>>2]=g;c[n+8>>2]=480;Zl(1,89739,n)|0;f=0;break}d:while(1){if((j|0)<=-1)break;if((j|0)<(o|0))f=+h[B+(j<<5)+8>>3]>+h[B+(j+1<<5)+8>>3]?-1:1;else f=0;if((j|0)>0)g=+h[B+(j+-1<<5)+8>>3]>+h[B+(j<<5)+8>>3]?1:-1;else g=0;e:do if((f|0)!=(g|0))if((f|0)==1|(g|0)==-1){f=B+(j<<5)|0;h[q+(n<<4)>>3]=+h[f>>3];g=n+1|0;h[q+(n<<4)+8>>3]=+h[B+(j<<5)+24>>3];h[q+(g<<4)>>3]=+h[f>>3];f=B+(j<<5)+8|0;i=2;break}else{f=B+(j<<5)+16|0;h[q+(n<<4)>>3]=+h[f>>3];g=n+1|0;h[q+(n<<4)+8>>3]=+h[B+(j<<5)+8>>3];h[q+(g<<4)>>3]=+h[f>>3];f=B+(j<<5)+24|0;i=2;break}else switch(f|0){case 0:{f=B+(j<<5)+16|0;h[q+(n<<4)>>3]=+h[f>>3];g=n+1|0;h[q+(n<<4)+8>>3]=+h[B+(j<<5)+8>>3];h[q+(g<<4)>>3]=+h[f>>3];f=B+(j<<5)+24|0;i=2;break e}case -1:{N=B+(j<<5)+16|0;h[q+(n<<4)>>3]=+h[N>>3];f=B+(j<<5)+8|0;i=n+1|0;h[q+(n<<4)+8>>3]=+h[f>>3];h[q+(i<<4)>>3]=+h[N>>3];N=B+(j<<5)+24|0;M=n+2|0;h[q+(i<<4)+8>>3]=+h[N>>3];i=B+(j<<5)|0;h[q+(M<<4)>>3]=+h[i>>3];g=n+3|0;h[q+(M<<4)+8>>3]=+h[N>>3];h[q+(g<<4)>>3]=+h[i>>3];i=4;break e}default:{D=42;break d}}while(0);h[q+(g<<4)+8>>3]=+h[f>>3];j=j+-1|0;n=n+i|0}if((D|0)==42){c[s>>2]=f;c[s+4>>2]=f;c[s+8>>2]=513;Zl(1,89739,s)|0;f=0;break}f:do if(!p)f=0;else{f=0;while(1){if((f|0)>=(H|0)){f=0;break}M=B+(f<<5)+24|0;m=+h[M>>3];N=B+(f<<5)+8|0;h[M>>3]=-+h[N>>3];h[N>>3]=-m;f=f+1|0}while(1){if((f|0)>=(n|0)){f=0;break f}N=q+(f<<4)+8|0;h[N>>3]=-+h[N>>3];f=f+1|0}}while(0);while(1){if((f|0)>=(H|0))break;h[B+(f<<5)>>3]=2147483647.0;h[B+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}c[t>>2]=r;i=t+4|0;c[i>>2]=n;h[u>>3]=+h[b>>3];h[u+8>>3]=+h[b+8>>3];h[u+16>>3]=+h[b+40>>3];h[u+24>>3]=+h[b+48>>3];if((AI(t,u,I)|0)<0){Zl(1,89843,v)|0;f=0;break}if(!e){g=c[i>>2]|0;f=c[42317]|0;if((g|0)>(c[42316]|0)){if(!f)f=rw(g<<5)|0;else f=tw(f,g<<5)|0;c[42317]=f;g=c[i>>2]|0;c[42316]=g}j=c[42324]|0;i=0;while(1){if((i|0)>=(g|0))break;M=f+(i<<5)|0;N=j+(i<<4)|0;c[M>>2]=c[N>>2];c[M+4>>2]=c[N+4>>2];c[M+8>>2]=c[N+8>>2];c[M+12>>2]=c[N+12>>2];M=f+(i<<5)+16|0;N=i+1|0;v=j+(((N|0)%(g|0)|0)<<4)|0;c[M>>2]=c[v>>2];c[M+4>>2]=c[v+4>>2];c[M+8>>2]=c[v+8>>2];c[M+12>>2]=c[v+12>>2];i=N}if(!(a[b+29>>0]|0)){k=0.0;m=0.0}else{m=+h[b+16>>3];k=+E(+m);m=+F(+m)}h[w+8>>3]=m;h[w>>3]=k;if(!(a[b+69>>0]|0)){k=0.0;m=0.0}else{m=+h[b+56>>3];k=-+E(+m);m=-+F(+m)}h[w+24>>3]=m;h[w+16>>3]=k;c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];if((eI(f,g,G,w,y)|0)<0){Zl(1,89882,x)|0;f=0;break}}else{c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];VI(G,y)}n=y+4|0;if(!(fy(c[n>>2]|0)|0)){f=0;while(1){if((f|0)>=(H|0))break;h[B+(f<<5)>>3]=2147483647.0;h[B+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}i=c[n>>2]|0;j=c[42318]|0;g=c[y>>2]|0;f=0;while(1){if((f|0)>=(i|0)){i=1;f=10;g=0;break}N=j+(f<<4)|0;M=g+(f<<4)|0;c[N>>2]=c[M>>2];c[N+4>>2]=c[M+4>>2];c[N+8>>2]=c[M+8>>2];c[N+12>>2]=c[M+12>>2];f=f+1|0}while(1){if(!((g|0)<15&i<<24>>24!=0))break;ly(B,H,c[42318]|0,c[n>>2]|0,f);j=0;while(1){if((j|0)>=(H|0))break;if(+h[B+(j<<5)>>3]==2147483647.0){D=82;break}if(+h[B+(j<<5)+16>>3]==-2147483648.0){D=82;break}j=j+1|0}if((D|0)==82){D=0;N=f<<1;f=N;g=(N|0)>(2147483647/(H|0)|0|0)?15:g}i=(j|0)==(H|0)?0:i;g=g+1|0}if(i<<24>>24){M=Cn(c[((c[C>>2]&3|0)==3?C:z)+40>>2]|0)|0;N=Cn(c[((c[C>>2]&3|0)==2?C:A)+40>>2]|0)|0;c[K>>2]=M;c[K+4>>2]=N;Zl(0,89920,K)|0;c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];VI(G,J);ly(B,H,c[J>>2]|0,c[J+4>>2]|0,10);XI(c[J>>2]|0)}c[d>>2]=c[n>>2];f=c[42318]|0}else f=0}else f=0}while(0);l=L;return f|0}function ky(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,M=0,N=0,O=0.0,P=0,Q=0,R=0;R=l;l=l+32|0;I=R+16|0;H=R+8|0;k=R;e=0;j=0;while(1){if((j|0)>=(a|0))break;i=b+(j<<5)|0;s=+h[b+(j<<5)+8>>3]-+h[b+(j<<5)+24>>3];if(!((s>=0.0?s:-s)<.01)?(s=+h[i>>3]-+h[b+(j<<5)+16>>3],!((s>=0.0?s:-s)<.01)):0){if((e|0)!=(j|0)){P=b+(e<<5)|0;c[P>>2]=c[i>>2];c[P+4>>2]=c[i+4>>2];c[P+8>>2]=c[i+8>>2];c[P+12>>2]=c[i+12>>2];c[P+16>>2]=c[i+16>>2];c[P+20>>2]=c[i+20>>2];c[P+24>>2]=c[i+24>>2];c[P+28>>2]=c[i+28>>2]}e=e+1|0}j=j+1|0}J=b+16|0;do if(!(+h[b>>3]>+h[J>>3])?(L=b+8|0,N=b+24|0,!(+h[L>>3]>+h[N>>3])):0){P=e+-1|0;M=c[13918]|0;w=0;while(1){if((w|0)>=(P|0))break;D=w+1|0;E=b+(D<<5)|0;f=+h[E>>3];F=b+(D<<5)+16|0;g=+h[F>>3];if(f>g){Q=16;break}A=b+(D<<5)+8|0;m=+h[A>>3];B=b+(D<<5)+24|0;n=+h[B>>3];if(m>n){Q=16;break}G=b+(w<<5)+16|0;v=+h[G>>3]<f;e=v&1;C=b+(w<<5)|0;u=+h[C>>3]>g;a=u&1;z=b+(w<<5)+24|0;t=+h[z>>3]<m;j=t&1;y=b+(w<<5)+8|0;k=+h[y>>3]>n;i=k&1;x=a+e+j+i|0;o=(x|0)!=0;if(!(0==0|o^1)){c[I>>2]=w;c[I+4>>2]=D;vL(M,90120,I)|0;my(d)}a:do if(o){if(!v)if(!u)if(!t){if(k){k=0;o=e;e=B;i=y;Q=24}}else{k=i;j=0;o=e;e=A;i=z;Q=24}else{k=i;a=0;o=e;e=F;i=C;Q=24}else{k=i;o=0;e=E;i=G;Q=24}if((Q|0)==24){Q=0;w=~~+h[i>>3];h[i>>3]=+h[e>>3];h[e>>3]=+(w|0);i=k;e=o}o=x+-1|0;k=0;while(1){if((k|0)>=(o|0))break a;do if((e|0)!=1){if((a|0)==1){s=+(~~((+h[F>>3]+ +h[C>>3])*.5+.5)|0);h[F>>3]=s;h[C>>3]=s;a=0;break}if((j|0)==1){s=+(~~((+h[A>>3]+ +h[z>>3])*.5+.5)|0);h[A>>3]=s;h[z>>3]=s;j=0;break}if((i|0)==1){s=+(~~((+h[B>>3]+ +h[y>>3])*.5+.5)|0);h[B>>3]=s;h[y>>3]=s;i=0}}else{s=+(~~((+h[E>>3]+ +h[G>>3])*.5+.5)|0);h[E>>3]=s;h[G>>3]=s;e=0}while(0);k=k+1|0}}while(0);p=+h[C>>3];q=+h[G>>3];r=+h[E>>3];s=+h[F>>3];i=ny(~~p,~~q,~~r,~~s)|0;n=+h[y>>3];m=+h[z>>3];g=+h[A>>3];f=+h[B>>3];e=ny(~~n,~~m,~~g,~~f)|0;if(!((i|0)!=0&(e|0)!=0)){w=D;continue}if((i|0)<(e|0)){B=q-p>s-r;w=q<s;h[(B?(w?G:C):w?E:F)>>3]=B?(w?r:s):w?q:p;w=D;continue}else{B=m-n>f-g;w=m<f;h[(B?(w?G:C):w?E:F)+8>>3]=B?(w?g:f):w?m:n;w=D;continue}}if((Q|0)==16){c[H>>2]=D;Zl(1,90074,H)|0;my(d);e=1;break}f=+h[d>>3];g=+h[b>>3];if(!(((!(f<g)?!(f>+h[J>>3]):0)?(K=+h[d+8>>3],!(K<+h[L>>3])):0)?!(K>+h[N>>3]):0)){if(0){TL(90163,42,1,M)|0;my(d);g=+h[b>>3];f=+h[d>>3]}if(f<g)h[d>>3]=g;else g=f;f=+h[J>>3];if(g>f)h[d>>3]=f;e=d+8|0;g=+h[e>>3];f=+h[L>>3];if(g<f){h[e>>3]=f;g=f}f=+h[N>>3];if(g>f)h[e>>3]=f}i=d+40|0;f=+h[i>>3];e=b+(P<<5)|0;g=+h[e>>3];if(((!(f<g)?!(f>+h[b+(P<<5)+16>>3]):0)?(O=+h[d+48>>3],!(O<+h[b+(P<<5)+8>>3])):0)?!(O>+h[b+(P<<5)+24>>3]):0){e=0;break}if(0){TL(90206,39,1,M)|0;my(d);g=+h[e>>3];f=+h[i>>3]}if(f<g){h[i>>3]=g;f=g}g=+h[b+(P<<5)+16>>3];if(f>g)h[i>>3]=g;e=d+48|0;f=+h[e>>3];g=+h[b+(P<<5)+8>>3];if(f<g)h[e>>3]=g;else g=f;f=+h[b+(P<<5)+24>>3];if(g>f){h[e>>3]=f;e=0}else e=0}else Q=12;while(0);if((Q|0)==12){Zl(1,90029,k)|0;my(d);e=1}l=R;return e|0}function ly(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;s=O(e,b)|0;t=1.0/+(s|0);e=0;a:while(1){u=e+3|0;if((u|0)>=(d|0))break;o=c+(e<<4)|0;p=c+(e<<4)+8|0;r=e+1|0;q=c+(r<<4)|0;r=c+(r<<4)+8|0;j=e+2|0;i=c+(j<<4)|0;j=c+(j<<4)+8|0;k=c+(u<<4)|0;l=c+(u<<4)+8|0;g=0;while(1){if((g|0)>(s|0)){e=u;continue a}v=t*+(g|0);m=+h[o>>3];n=+h[p>>3];y=+h[q>>3];w=+h[r>>3];z=+h[i>>3];x=+h[j>>3];m=(y-m)*v+m;n=(w-n)*v+n;y=(z-y)*v+y;w=(x-w)*v+w;m=(y-m)*v+m;n=(w-n)*v+n;m=((z-y+(+h[k>>3]-z)*v)*v+y-m)*v+m;n=((x-w+(+h[l>>3]-x)*v)*v+w-n)*v+n;f=0;while(1){if((f|0)>=(b|0))break;if(n<=+h[a+(f<<5)+24>>3]+.0001?n>=+h[a+(f<<5)+8>>3]+-.0001:0){e=a+(f<<5)|0;if(+h[e>>3]>m)h[e>>3]=m;e=a+(f<<5)+16|0;if(+h[e>>3]<m)h[e>>3]=m}f=f+1|0}g=g+1|0}}return}function my(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0;m=l;l=l+112|0;j=m+80|0;k=m+48|0;i=m+8|0;g=m;e=c[13918]|0;f=b+80|0;c[g>>2]=c[f>>2];vL(e,90246,g)|0;g=b+84|0;d=0;while(1){if((d|0)>=(c[f>>2]|0))break;r=c[g>>2]|0;q=+h[r+(d<<5)>>3];p=+h[r+(d<<5)+8>>3];o=+h[r+(d<<5)+16>>3];n=+h[r+(d<<5)+24>>3];c[i>>2]=d;h[i+8>>3]=q;h[i+16>>3]=p;h[i+24>>3]=o;h[i+32>>3]=n;vL(e,90257,i)|0;d=d+1|0}q=+h[b+8>>3];p=+h[b+16>>3];r=a[b+29>>0]|0?90288:90300;h[k>>3]=+h[b>>3];h[k+8>>3]=q;h[k+16>>3]=p;c[k+24>>2]=r;vL(e,90316,k)|0;p=+h[b+48>>3];q=+h[b+56>>3];r=a[b+69>>0]|0?90288:90300;h[j>>3]=+h[b+40>>3];h[j+8>>3]=p;h[j+16>>3]=q;c[j+24>>2]=r;vL(e,90367,j)|0;l=m;return}function ny(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;do if((b|0)>(c|0)&(d|0)>(a|0)){if(!((c|0)>(a|0)|(d|0)<(a|0))){a=d-a|0;break}if((b|0)<(c|0)|(b|0)>(d|0)){b=b-a|0;a=d-c|0;a=(b|0)<(a|0)?b:a;break}else{a=b-c|0;break}}else a=0;while(0);return a|0}function oy(a,b){a=a|0;b=b|0;return jy(a,b,1)|0}function py(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,P=0,Q=0;K=l;l=l+304|0;A=K+272|0;z=K+208|0;G=K+96|0;H=K+32|0;I=K+16|0;J=K;r=K+192|0;y=K+176|0;i=K+160|0;B=K+296|0;D=K+288|0;j=c[d>>2]|0;w=c[j>>2]&3;k=j+-48|0;E=c[((w|0)==2?j:k)+40>>2]|0;t=G+16|0;w=(c[(c[((w|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+16|0;x=j+16|0;F=(c[x>>2]|0)+16|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];c[z+12>>2]=c[w+12>>2];c[A>>2]=c[F>>2];c[A+4>>2]=c[F+4>>2];c[A+8>>2]=c[F+8>>2];c[A+12>>2]=c[F+12>>2];qy(r,z,A);c[G>>2]=c[r>>2];c[G+4>>2]=c[r+4>>2];c[G+8>>2]=c[r+8>>2];c[G+12>>2]=c[r+12>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];c[I>>2]=c[r>>2];c[I+4>>2]=c[r+4>>2];c[I+8>>2]=c[r+8>>2];c[I+12>>2]=c[r+12>>2];r=G+32|0;F=G+48|0;w=(c[E+16>>2]|0)+16|0;x=(c[x>>2]|0)+56|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];c[z+12>>2]=c[w+12>>2];c[A>>2]=c[x>>2];c[A+4>>2]=c[x+4>>2];c[A+8>>2]=c[x+8>>2];c[A+12>>2]=c[x+12>>2];qy(y,z,A);c[F>>2]=c[y>>2];c[F+4>>2]=c[y+4>>2];c[F+8>>2]=c[y+8>>2];c[F+12>>2]=c[y+12>>2];c[r>>2]=c[y>>2];c[r+4>>2]=c[y+4>>2];c[r+8>>2]=c[y+8>>2];c[r+12>>2]=c[y+12>>2];c[J>>2]=c[y>>2];c[J+4>>2]=c[y+4>>2];c[J+8>>2]=c[y+8>>2];c[J+12>>2]=c[y+12>>2];a:do if((e|0)!=1&(a[174072]|0)==0){m=+h[G>>3];n=+h[F>>3];L=m-n;o=+h[G+8>>3];p=+h[G+56>>3];s=o-p;q=s*s;if(q+L*L<1.0e-06){c[t>>2]=c[G>>2];c[t+4>>2]=c[G+4>>2];c[t+8>>2]=c[G+8>>2];c[t+12>>2]=c[G+12>>2];c[r>>2]=c[F>>2];c[r+4>>2]=c[F+4>>2];c[r+8>>2]=c[F+8>>2];c[r+12>>2]=c[F+12>>2];y=G+24|0;x=G+40|0;n=0.0;m=0.0}else{M=n-m;L=+C(+(q+M*M));w=c[(c[(c[b+60>>2]|0)+16>>2]|0)+248>>2]|0;N=+((O(w,e+-1|0)|0)/2|0|0);q=s*N/L;h[t>>3]=q+m;m=M*N/L;y=G+24|0;h[y>>3]=m+o;h[r>>3]=q+n;x=G+40|0;h[x>>3]=p+m;m=+(0-w|0);n=M*m/L;m=s*m/L}f=(f|0)==6;u=D+4|0;v=B+4|0;j=0;while(1){if((j|0)>=(e|0))break a;w=c[d+(j<<2)>>2]|0;k=w+-48|0;b:do if((c[((c[w>>2]&3|0)==2?w:k)+40>>2]|0)==(E|0)){c[I>>2]=c[G>>2];c[I+4>>2]=c[G+4>>2];c[I+8>>2]=c[G+8>>2];c[I+12>>2]=c[G+12>>2];c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];c[J+12>>2]=c[F+12>>2];i=0;while(1){if((i|0)==4)break b;P=H+(i<<4)|0;Q=G+(i<<4)|0;c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];i=i+1|0}}else{c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];c[I+8>>2]=c[F+8>>2];c[I+12>>2]=c[F+12>>2];c[J>>2]=c[G>>2];c[J+4>>2]=c[G+4>>2];c[J+8>>2]=c[G+8>>2];c[J+12>>2]=c[G+12>>2];i=0;while(1){if((i|0)==4)break b;Q=H+(3-i<<4)|0;P=G+(i<<4)|0;c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];i=i+1|0}}while(0);if(f){c[u>>2]=4;c[D>>2]=z;i=0;while(1){if((i|0)==4)break;Q=z+(i<<4)|0;P=H+(i<<4)|0;c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];i=i+1|0}c[A>>2]=c[D>>2];c[A+4>>2]=c[D+4>>2];VI(A,B);Ez(w,c[((c[w>>2]&3|0)==2?w:k)+40>>2]|0,c[B>>2]|0,c[v>>2]|0,g)}else Ez(w,c[((c[w>>2]&3|0)==2?w:k)+40>>2]|0,H,4,g);c[z>>2]=c[I>>2];c[z+4>>2]=c[I+4>>2];c[z+8>>2]=c[I+8>>2];c[z+12>>2]=c[I+12>>2];c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];Zz(b,w,z,A);h[t>>3]=+h[t>>3]+m;h[y>>3]=+h[y>>3]+n;h[r>>3]=+h[r>>3]+m;h[x>>3]=+h[x>>3]+n;j=j+1|0}}else{if((f|0)==4){ry(i,b);c[A>>2]=c[i>>2];c[A+4>>2]=c[i+4>>2];c[A+8>>2]=c[i+8>>2];c[A+12>>2]=c[i+12>>2];sy(G,A)}Ez(j,c[((c[j>>2]&3|0)==2?j:k)+40>>2]|0,G,4,g);c[z>>2]=c[I>>2];c[z+4>>2]=c[I+4>>2];c[z+8>>2]=c[I+8>>2];c[z+12>>2]=c[I+12>>2];c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];Zz(b,j,z,A)}while(0);l=K;return}function qy(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[c+8>>3]+ +h[b+8>>3];h[a>>3]=+h[c>>3]+ +h[b>>3];h[a+8>>3]=d;return}function ry(a,b){a=a|0;b=b|0;b=c[b+16>>2]|0;h[20899]=(+h[b+32>>3]+ +h[b+16>>3])*.5;h[20900]=(+h[b+40>>3]+ +h[b+24>>3])*.5;c[a>>2]=c[41798];c[a+4>>2]=c[41799];c[a+8>>2]=c[41800];c[a+12>>2]=c[41801];return}function sy(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;f=+h[a>>3];d=+h[a+48>>3];i=(d+f)*.5;g=+h[a+8>>3];c=+h[a+56>>3];e=(c+g)*.5;f=d-f;g=c-g;f=+C(+(g*g+f*f))*.2;g=+h[b>>3]-i;c=+h[b+8>>3]-e;d=+C(+(c*c+g*g));if(!(d==0.0)){g=i-g/d*f;i=e-c/d*f;h[a+32>>3]=g;h[a+16>>3]=g;h[a+40>>3]=i;h[a+24>>3]=i}return}function ty(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0.0,G=0,H=0.0,I=0.0,J=0.0;E=l;l=l+208|0;t=E+192|0;s=E+176|0;B=E+32|0;w=E+16|0;x=E;y=E+160|0;z=E+144|0;u=E+128|0;v=E+112|0;g=e&2130706432;A=(e&8|0)==0?((g|0)==0?4:g):8;if((A|0)==436207616)uy(a,b,d,f);else{D=qw((d<<6)+64|0)|0;p=d+-1|0;q=x+8|0;r=w+8|0;o=12.0;e=0;while(1){if((e|0)>=(d|0))break;n=b+(e<<4)|0;c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];if((e|0)<(p|0)){e=e+1|0;n=b+(e<<4)|0;c[x>>2]=c[n>>2];c[x+4>>2]=c[n+4>>2];c[x+8>>2]=c[n+8>>2];c[x+12>>2]=c[n+12>>2]}else{c[x>>2]=c[b>>2];c[x+4>>2]=c[b+4>>2];c[x+8>>2]=c[b+8>>2];c[x+12>>2]=c[b+12>>2];e=e+1|0}m=+h[x>>3]-+h[w>>3];F=+h[q>>3]-+h[r>>3];m=+C(+(F*F+m*m))*.3333333333333333;o=o<m?o:m}k=(g|16777216|0)==83886080;n=(A|0)==4;j=(g|0)==16777216;e=0;i=0;while(1){if((i|0)>=(d|0))break;g=b+(i<<4)|0;c[w>>2]=c[g>>2];c[w+4>>2]=c[g+4>>2];c[w+8>>2]=c[g+8>>2];c[w+12>>2]=c[g+12>>2];if((i|0)<(p|0)){g=b+(i+1<<4)|0;c[x>>2]=c[g>>2];c[x+4>>2]=c[g+4>>2];c[x+8>>2]=c[g+8>>2];c[x+12>>2]=c[g+12>>2]}else{c[x>>2]=c[b>>2];c[x+4>>2]=c[b+4>>2];c[x+8>>2]=c[b+8>>2];c[x+12>>2]=c[b+12>>2]}m=+h[x>>3]-+h[w>>3];F=+h[q>>3]-+h[r>>3];m=o/+C(+(F*F+m*m));m=k?m*.3333333333333333:j?m*.5:m;g=D+(e<<4)|0;if(n){c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];vy(y,m*.5,s,t);c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[g+12>>2]=c[y+12>>2]}else{c[g>>2]=c[w>>2];c[g+4>>2]=c[w+4>>2];c[g+8>>2]=c[w+8>>2];c[g+12>>2]=c[w+12>>2]}g=D+(e+1<<4)|0;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];vy(z,m,s,t);c[g>>2]=c[z>>2];c[g+4>>2]=c[z+4>>2];c[g+8>>2]=c[z+8>>2];c[g+12>>2]=c[z+12>>2];g=e+3|0;G=D+(e+2<<4)|0;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];vy(u,1.0-m,s,t);c[G>>2]=c[u>>2];c[G+4>>2]=c[u+4>>2];c[G+8>>2]=c[u+8>>2];c[G+12>>2]=c[u+12>>2];if(n){G=D+(g<<4)|0;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];vy(v,1.0-m*.5,s,t);c[G>>2]=c[v>>2];c[G+4>>2]=c[v+4>>2];c[G+8>>2]=c[v+8>>2];c[G+12>>2]=c[v+12>>2];e=e+4|0}else e=g;i=i+1|0}k=D+(e<<4)|0;c[k>>2]=c[D>>2];c[k+4>>2]=c[D+4>>2];c[k+8>>2]=c[D+8>>2];c[k+12>>2]=c[D+12>>2];k=D+(e+1<<4)|0;j=D+16|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];e=D+(e+2<<4)|0;k=D+32|0;c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];e=A&2147483647;a:do if((e|0)<201326592){if((e|0)>=83886080){if((e|0)<134217728){if((e|0)<100663296){switch(e|0){case 83886080:break;default:break a}if((d|0)==4){G=qw(192)|0;c[G>>2]=c[b>>2];c[G+4>>2]=c[b+4>>2];c[G+8>>2]=c[b+8>>2];c[G+12>>2]=c[b+12>>2];p=G+16|0;t=b+16|0;c[p>>2]=c[t>>2];c[p+4>>2]=c[t+4>>2];c[p+8>>2]=c[t+8>>2];c[p+12>>2]=c[t+12>>2];p=D+48|0;t=D+64|0;o=+h[t>>3];n=G+32|0;h[n>>3]=o;q=D+56|0;r=D+72|0;H=+h[r>>3];z=G+40|0;h[z>>3]=H;F=+h[p>>3]+o-+h[k>>3];u=G+48|0;h[u>>3]=F;J=+h[q>>3]+H-+h[D+40>>3];x=G+56|0;h[x>>3]=J;I=+h[t>>3]+F-+h[p>>3];p=G+64|0;h[p>>3]=I;m=+h[r>>3]+J-+h[q>>3];q=G+72|0;h[q>>3]=m;r=G+80|0;h[r>>3]=o+I-F;h[G+88>>3]=H+m-J;t=D+96|0;v=D+80|0;J=+h[v>>3];d=G+144|0;h[d>>3]=J;w=D+104|0;s=D+88|0;m=+h[s>>3];h[G+152>>3]=m;H=+h[t>>3]+J-+h[D+112>>3];y=G+128|0;h[y>>3]=H;F=+h[w>>3]+m-+h[D+120>>3];A=G+136|0;h[A>>3]=F;I=+h[v>>3]+H-+h[t>>3];t=G+112|0;h[t>>3]=I;o=+h[s>>3]+F-+h[w>>3];w=G+120|0;h[w>>3]=o;s=G+96|0;h[s>>3]=J+I-H;v=G+104|0;h[v>>3]=m+o-F;k=G+160|0;j=b+32|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];k=G+176|0;b=b+48|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];CD(a,G,12,f);c[B>>2]=c[n>>2];c[B+4>>2]=c[n+4>>2];c[B+8>>2]=c[n+8>>2];c[B+12>>2]=c[n+12>>2];F=+h[n>>3];o=+h[u>>3];F=F+F-o;u=B+16|0;h[u>>3]=F;m=+h[z>>3];H=+h[x>>3];m=m+m-H;x=B+24|0;h[x>>3]=m;z=B+32|0;h[z>>3]=+h[p>>3]+F-o;b=B+40|0;h[b>>3]=+h[q>>3]+m-H;f=B+48|0;c[f>>2]=c[r>>2];c[f+4>>2]=c[r+4>>2];c[f+8>>2]=c[r+8>>2];c[f+12>>2]=c[r+12>>2];FD(a,B,4);c[B>>2]=c[s>>2];c[B+4>>2]=c[s+4>>2];c[B+8>>2]=c[s+8>>2];c[B+12>>2]=c[s+12>>2];H=+h[s>>3];m=+h[t>>3];H=H-(m-H);h[u>>3]=H;o=+h[v>>3];F=+h[w>>3];o=o-(F-o);h[x>>3]=o;h[z>>3]=+h[y>>3]+H-m;h[b>>3]=+h[A>>3]+o-F;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];FD(a,B,4);XI(G);break}else ma(90416,90427,737,90436)}if((e|0)<117440512){switch(e|0){case 100663296:break;default:break a}y=d+5|0;G=qw(y<<4)|0;z=b+16|0;H=+h[z>>3];H=(+h[b>>3]-H)*.625+H;h[G>>3]=H;A=b+40|0;J=+h[A>>3];d=b+24|0;v=D+48|0;w=D+56|0;x=D+72|0;J=(+h[d>>3]-J)*.5+J+(+h[w>>3]-+h[x>>3])*1.5;h[G+8>>3]=J;I=+h[z>>3];I=(+h[b>>3]-I)*.25+I;h[G+16>>3]=I;h[G+24>>3]=J;h[G+32>>3]=I;F=+h[A>>3];h[G+40>>3]=(+h[d>>3]-F)*.5+F;I=(+h[k>>3]-+h[v>>3])*.5+I;h[G+48>>3]=I;F=+h[A>>3];h[G+56>>3]=(+h[d>>3]-F)*.5+F;h[G+64>>3]=I;I=+h[A>>3];I=(+h[d>>3]-I)*.5+I+(+h[w>>3]-+h[x>>3]);h[G+72>>3]=I;h[G+80>>3]=H;h[G+88>>3]=I;h[G+96>>3]=H;I=I-(+h[w>>3]-+h[x>>3])*.25;h[G+104>>3]=I;h[G+112>>3]=+h[k>>3]+H-+h[v>>3];h[G+120>>3]=(+h[w>>3]-+h[x>>3])*.5+I;h[G+128>>3]=+h[G>>3];h[G+136>>3]=(+h[w>>3]-+h[x>>3])*.25+J;CD(a,G,y,f);h[B>>3]=+h[z>>3];J=+h[A>>3];h[B+8>>3]=(+h[d>>3]-J)*.5+J;h[B+16>>3]=+h[b>>3];h[B+24>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}else{switch(e|0){case 117440512:break;default:break a}d=d+1|0;G=qw(d<<4)|0;h[G>>3]=+h[j>>3];z=D+56|0;A=D+72|0;h[G+8>>3]=+h[D+24>>3]-(+h[z>>3]-+h[A>>3])*.5;h[G+16>>3]=+h[D+48>>3];J=+h[z>>3];h[G+24>>3]=J-(J-+h[A>>3])*.5;h[G+32>>3]=+h[b+32>>3];B=b+40|0;h[G+40>>3]=(+h[z>>3]-+h[A>>3])*.5+ +h[B>>3];h[G+48>>3]=+h[j>>3];h[G+56>>3]=(+h[z>>3]-+h[A>>3])*.5+ +h[B>>3];J=+h[b+8>>3];h[G+72>>3]=J-(J-+h[b+56>>3])*.5;h[G+64>>3]=+h[b>>3];CD(a,G,d,f);XI(G);break}}if((e|0)<167772160)if((e|0)<150994944){switch(e|0){case 134217728:break;default:break a}y=d+4|0;G=qw(y<<4)|0;z=b+16|0;F=+h[z>>3];x=D+48|0;F=(+h[b>>3]-F)*.5+F+(+h[k>>3]-+h[x>>3])*.25;h[G>>3]=F;A=b+40|0;J=+h[A>>3];d=b+24|0;J=(+h[d>>3]-J)*.5+J;h[G+8>>3]=J;h[G+16>>3]=F;v=D+56|0;w=D+72|0;H=(+h[v>>3]-+h[w>>3])*.5+J;h[G+24>>3]=H;F=(+h[k>>3]-+h[x>>3])*.5+F;h[G+32>>3]=F;h[G+40>>3]=H;h[G+48>>3]=F;F=(+h[v>>3]-+h[w>>3])*.5+H;h[G+56>>3]=F;I=+h[z>>3];I=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[x>>3])*-.75;h[G+64>>3]=I;h[G+72>>3]=F;h[G+80>>3]=I;h[G+88>>3]=H;I=+h[z>>3];I=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[x>>3])*-.25;h[G+96>>3]=I;h[G+104>>3]=H;h[G+112>>3]=I;h[G+120>>3]=J;CD(a,G,y,f);h[B>>3]=+h[z>>3];J=+h[A>>3];h[B+8>>3]=(+h[d>>3]-J)*.5+J;h[B+16>>3]=+h[b>>3];h[B+24>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}else{switch(e|0){case 150994944:break;default:break a}y=d+2|0;G=qw(y<<4)|0;z=b+16|0;H=+h[z>>3];x=D+48|0;H=(+h[b>>3]-H)*.5+H+(+h[k>>3]-+h[x>>3])*.75;h[G>>3]=H;A=b+40|0;J=+h[A>>3];d=b+24|0;J=(+h[d>>3]-J)*.5+J;h[G+8>>3]=J;h[G+16>>3]=H;v=D+56|0;w=D+72|0;H=(+h[v>>3]-+h[w>>3])*.25+J;h[G+24>>3]=H;I=+h[z>>3];h[G+32>>3]=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[x>>3])*.25;I=(+h[v>>3]-+h[w>>3])*.5+H;h[G+40>>3]=I;F=+h[z>>3];h[G+48>>3]=(+h[b>>3]-F)*.5+F+(+h[k>>3]-+h[x>>3])*-.25;h[G+56>>3]=I;I=+h[z>>3];I=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[x>>3])*-.75;h[G+64>>3]=I;h[G+72>>3]=H;h[G+80>>3]=I;h[G+88>>3]=J;CD(a,G,y,f);h[B>>3]=+h[z>>3];J=+h[A>>3];h[B+8>>3]=(+h[d>>3]-J)*.5+J;h[B+16>>3]=+h[b>>3];h[B+24>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}else if((e|0)<184549376){switch(e|0){case 167772160:break;default:break a}y=d+1|0;G=qw(y<<4)|0;z=b+16|0;H=+h[z>>3];v=D+48|0;H=+h[k>>3]+H+(+h[b>>3]-H)*.5-+h[v>>3];h[G>>3]=H;A=b+40|0;J=+h[A>>3];d=b+24|0;w=D+56|0;x=D+72|0;J=(+h[d>>3]-J)*.5+J+(+h[w>>3]-+h[x>>3])*.25;h[G+8>>3]=J;H=H-+h[k>>3]+ +h[v>>3];h[G+16>>3]=H;h[G+24>>3]=+h[w>>3]+J-+h[x>>3];h[G+32>>3]=H;H=(+h[w>>3]-+h[x>>3])*.5+J;h[G+40>>3]=H;I=+h[z>>3];I=(+h[b>>3]-I)*.25+I;h[G+48>>3]=I;h[G+56>>3]=H;h[G+64>>3]=I;h[G+72>>3]=J;CD(a,G,y,f);h[B>>3]=+h[z>>3];J=+h[A>>3];h[B+8>>3]=(+h[d>>3]-J)*.5+J;h[B+16>>3]=+h[b>>3];h[B+24>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}else{switch(e|0){case 184549376:break;default:break a}z=d+4|0;G=qw(z<<4)|0;y=b+16|0;H=+h[y>>3];I=+h[b>>3]-H;u=D+48|0;I=I*.125+H+(+h[k>>3]-+h[u>>3]+I)*.5;h[G>>3]=I;w=b+40|0;H=+h[w>>3];x=b+24|0;d=D+56|0;v=D+72|0;H=(+h[x>>3]-H)*.5+H+(+h[d>>3]-+h[v>>3])*.25;h[G+8>>3]=H;J=+h[y>>3];J=(+h[b>>3]-J)*.375+J;h[G+16>>3]=J;h[G+24>>3]=H;h[G+32>>3]=J;H=(+h[d>>3]-+h[v>>3])*.5+H;h[G+40>>3]=H;J=J-(+h[k>>3]-+h[u>>3])*.5;h[G+48>>3]=J;h[G+56>>3]=H;A=G+64|0;h[A>>3]=J;J=+h[w>>3];J=(+h[x>>3]-J)*.5+J+(+h[d>>3]-+h[v>>3])*-.25;h[G+72>>3]=J;H=I-(+h[k>>3]-+h[u>>3])*.5;h[G+80>>3]=H;h[G+88>>3]=J;h[G+96>>3]=H;J=J-(+h[d>>3]-+h[v>>3])*.5;h[G+104>>3]=J;v=G+112|0;h[v>>3]=I;h[G+120>>3]=J;CD(a,G,z,f);h[B>>3]=+h[y>>3];J=+h[w>>3];y=B+8|0;h[y>>3]=(+h[x>>3]-J)*.5+J;z=B+16|0;h[z>>3]=+h[A>>3];A=b+8|0;d=b+56|0;f=B+24|0;h[f>>3]=(+h[A>>3]-+h[d>>3])*.5+J;FD(a,B,2);h[B>>3]=+h[v>>3];J=+h[w>>3];h[y>>3]=(+h[x>>3]-J)*.5+J;h[z>>3]=+h[b>>3];h[f>>3]=(+h[A>>3]-+h[d>>3])*.5+J;FD(a,B,2);XI(G);break}}if((e|0)<33554432){if((e|0)<8){switch(e|0){case 4:break;default:break a}i=rw((d*96|0)+32|0)|0;e=0;g=0;while(1){j=g|1;k=i+(g<<4)|0;if((e|0)>=(d|0))break;b=e<<2;G=D+(b<<4)|0;c[k>>2]=c[G>>2];c[k+4>>2]=c[G+4>>2];c[k+8>>2]=c[G+8>>2];c[k+12>>2]=c[G+12>>2];G=i+(j<<4)|0;B=D+((b|1)<<4)|0;c[G>>2]=c[B>>2];c[G+4>>2]=c[B+4>>2];c[G+8>>2]=c[B+8>>2];c[G+12>>2]=c[B+12>>2];G=i+(g+2<<4)|0;c[G>>2]=c[B>>2];c[G+4>>2]=c[B+4>>2];c[G+8>>2]=c[B+8>>2];c[G+12>>2]=c[B+12>>2];G=i+(g+3<<4)|0;B=D+((b|2)<<4)|0;c[G>>2]=c[B>>2];c[G+4>>2]=c[B+4>>2];c[G+8>>2]=c[B+8>>2];c[G+12>>2]=c[B+12>>2];G=i+(g+4<<4)|0;c[G>>2]=c[B>>2];c[G+4>>2]=c[B+4>>2];c[G+8>>2]=c[B+8>>2];c[G+12>>2]=c[B+12>>2];G=i+(g+5<<4)|0;b=D+((b|3)<<4)|0;c[G>>2]=c[b>>2];c[G+4>>2]=c[b+4>>2];c[G+8>>2]=c[b+8>>2];c[G+12>>2]=c[b+12>>2];e=e+1|0;g=g+6|0}c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];d=i+(j<<4)|0;G=i+16|0;c[d>>2]=c[G>>2];c[d+4>>2]=c[G+4>>2];c[d+8>>2]=c[G+8>>2];c[d+12>>2]=c[G+12>>2];ED(a,G,j,0,0,f&255);XI(i);break}if((e|0)<16777216){switch(e|0){case 8:break;default:break a}CD(a,b,d,f);g=B+16|0;e=0;while(1){if((e|0)>=(d|0))break a;G=e*3|0;f=D+(G+2<<4)|0;c[B>>2]=c[f>>2];c[B+4>>2]=c[f+4>>2];c[B+8>>2]=c[f+8>>2];c[B+12>>2]=c[f+12>>2];G=D+(G+4<<4)|0;c[g>>2]=c[G>>2];c[g+4>>2]=c[G+4>>2];c[g+8>>2]=c[G+8>>2];c[g+12>>2]=c[G+12>>2];FD(a,B,2);e=e+1|0}}switch(e|0){case 16777216:break;default:break a}g=d+1|0;i=qw(g<<4)|0;e=1;while(1){if((e|0)>=(d|0))break;G=i+(e<<4)|0;A=b+(e<<4)|0;c[G>>2]=c[A>>2];c[G+4>>2]=c[A+4>>2];c[G+8>>2]=c[A+8>>2];c[G+12>>2]=c[A+12>>2];e=e+1|0}b=d*3|0;A=D+(b+1<<4)|0;c[i>>2]=c[A>>2];c[i+4>>2]=c[A+4>>2];c[i+8>>2]=c[A+8>>2];c[i+12>>2]=c[A+12>>2];d=i+(d<<4)|0;G=D+(b+-1<<4)|0;c[d>>2]=c[G>>2];c[d+4>>2]=c[G+4>>2];c[d+8>>2]=c[G+8>>2];c[d+12>>2]=c[G+12>>2];CD(a,i,g,f);XI(i);c[B>>2]=c[G>>2];c[B+4>>2]=c[G+4>>2];c[B+8>>2]=c[G+8>>2];c[B+12>>2]=c[G+12>>2];G=B+16|0;c[G>>2]=c[A>>2];c[G+4>>2]=c[A+4>>2];c[G+8>>2]=c[A+8>>2];c[G+12>>2]=c[A+12>>2];f=B+32|0;h[f>>3]=+h[B>>3]+ +h[G>>3]-+h[D+(b<<4)>>3];h[B+40>>3]=+h[B+8>>3]+ +h[B+24>>3]-+h[D+(b<<4)+8>>3];FD(a,G,2);c[G>>2]=c[f>>2];c[G+4>>2]=c[f+4>>2];c[G+8>>2]=c[f+8>>2];c[G+12>>2]=c[f+12>>2];FD(a,B,2);break}else{if((e|0)<50331648){switch(e|0){case 33554432:break;default:break a}g=d+2|0;i=qw(g<<4)|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];j=i+16|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];j=D+48|0;d=D+64|0;h[i+32>>3]=(+h[j>>3]-+h[d>>3])*.3333333333333333+ +h[k>>3];G=D+56|0;e=D+72|0;h[i+40>>3]=(+h[G>>3]-+h[e>>3])*.3333333333333333+ +h[D+40>>3];J=+h[j>>3];h[i+48>>3]=(J-+h[d>>3])*.3333333333333333+J;J=+h[G>>3];h[i+56>>3]=(J-+h[e>>3])*.3333333333333333+J;e=4;while(1){if((e|0)>=(g|0))break;G=i+(e<<4)|0;d=b+(e+-2<<4)|0;c[G>>2]=c[d>>2];c[G+4>>2]=c[d+4>>2];c[G+8>>2]=c[d+8>>2];c[G+12>>2]=c[d+12>>2];e=e+1|0}CD(a,i,g,f);XI(i);c[B>>2]=c[j>>2];c[B+4>>2]=c[j+4>>2];c[B+8>>2]=c[j+8>>2];c[B+12>>2]=c[j+12>>2];G=B+16|0;c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];FD(a,B,2);break}if((e|0)>=67108864){switch(e|0){case 67108864:break;default:break a}if((d|0)==4){G=qw(96)|0;c[G>>2]=c[b>>2];c[G+4>>2]=c[b+4>>2];c[G+8>>2]=c[b+8>>2];c[G+12>>2]=c[b+12>>2];d=G+16|0;c[d>>2]=c[k>>2];c[d+4>>2]=c[k+4>>2];c[d+8>>2]=c[k+8>>2];c[d+12>>2]=c[k+12>>2];d=G+32|0;A=D+64|0;c[d>>2]=c[A>>2];c[d+4>>2]=c[A+4>>2];c[d+8>>2]=c[A+8>>2];c[d+12>>2]=c[A+12>>2];d=G+48|0;b=b+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];b=G+64|0;d=D+128|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=G+80|0;z=D+160|0;c[b>>2]=c[z>>2];c[b+4>>2]=c[z+4>>2];c[b+8>>2]=c[z+8>>2];c[b+12>>2]=c[z+12>>2];CD(a,G,6,f);XI(G);h[B>>3]=+h[D+176>>3]+ +h[j>>3]-+h[D>>3];h[B+8>>3]=+h[D+184>>3]+ +h[D+24>>3]-+h[D+8>>3];G=B+16|0;c[G>>2]=c[A>>2];c[G+4>>2]=c[A+4>>2];c[G+8>>2]=c[A+8>>2];c[G+12>>2]=c[A+12>>2];FD(a,B,2);c[G>>2]=c[d>>2];c[G+4>>2]=c[d+4>>2];c[G+8>>2]=c[d+8>>2];c[G+12>>2]=c[d+12>>2];FD(a,B,2);c[G>>2]=c[D>>2];c[G+4>>2]=c[D+4>>2];c[G+8>>2]=c[D+8>>2];c[G+12>>2]=c[D+12>>2];FD(a,B,2);break}else ma(90416,90427,714,90436)}switch(e|0){case 50331648:break;default:break a}g=d+3|0;i=qw(g<<4)|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];J=+h[b>>3];h[i+16>>3]=J-(J-+h[j>>3])*.25;e=D+56|0;J=(+h[e>>3]-+h[D+72>>3])*.3333333333333333+ +h[b+8>>3];h[i+24>>3]=J;I=+h[b>>3];h[i+32>>3]=I-(I-+h[j>>3])*2.0;h[i+40>>3]=J;J=+h[b>>3];h[i+48>>3]=J-(J-+h[j>>3])*2.25;h[i+56>>3]=+h[e>>3];h[i+64>>3]=+h[D+48>>3];h[i+72>>3]=+h[e>>3];e=4;while(1){if((e|0)>=(g|0))break;G=i+(e<<4)|0;d=b+(e+-3<<4)|0;c[G>>2]=c[d>>2];c[G+4>>2]=c[d+4>>2];c[G+8>>2]=c[d+8>>2];c[G+12>>2]=c[d+12>>2];e=e+1|0}CD(a,i,g,f);XI(i);break}}else if((e|0)<318767104){if((e|0)<251658240){if((e|0)<218103808){switch(e|0){case 201326592:break;default:break a}G=d<<4;u=qw(G)|0;v=b+16|0;J=+h[v>>3];h[u>>3]=J;z=b+40|0;I=+h[z>>3];A=b+24|0;y=D+48|0;w=D+56|0;x=D+72|0;I=(+h[A>>3]-I)*.5+I+(+h[w>>3]-+h[x>>3])*.125;h[u+8>>3]=I;H=(+h[k>>3]-+h[y>>3])*2.0+J;h[u+16>>3]=H;h[u+24>>3]=I;h[u+32>>3]=H;I=(+h[w>>3]-+h[x>>3])*.5+I;h[u+40>>3]=I;h[u+48>>3]=J;h[u+56>>3]=I;CD(a,u,d,f);XI(u);G=qw(G)|0;I=+h[k>>3]+ +h[v>>3]-+h[y>>3];h[G>>3]=I;J=+h[z>>3];J=(+h[A>>3]-J)*.5+J+(+h[w>>3]-+h[x>>3])*-.625;h[G+8>>3]=J;H=+h[k>>3]-+h[y>>3]+I;y=G+16|0;h[y>>3]=H;h[G+24>>3]=J;h[G+32>>3]=H;J=(+h[w>>3]-+h[x>>3])*.5+J;h[G+40>>3]=J;h[G+48>>3]=I;h[G+56>>3]=J;CD(a,G,d,f);h[B>>3]=+h[y>>3];J=+h[z>>3];h[B+8>>3]=(+h[A>>3]-J)*.5+J;h[B+16>>3]=+h[b>>3];h[B+24>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}if((e|0)<234881024){switch(e|0){case 218103808:break;default:break a}G=d<<4;w=qw(G)|0;J=+h[b>>3];h[w>>3]=J;y=b+40|0;I=+h[y>>3];z=b+24|0;x=D+56|0;A=D+72|0;I=(+h[z>>3]-I)*.5+I+(+h[x>>3]-+h[A>>3])*.125;h[w+8>>3]=I;h[w+16>>3]=J;H=(+h[x>>3]-+h[A>>3])*.5+I;h[w+24>>3]=H;J=J-(+h[x>>3]-+h[A>>3])*2.0;h[w+32>>3]=J;h[w+40>>3]=H;h[w+48>>3]=J;h[w+56>>3]=I;CD(a,w,d,f);XI(w);G=qw(G)|0;I=+h[b>>3]-+h[k>>3]+ +h[D+48>>3];h[G>>3]=I;J=+h[y>>3];J=(+h[z>>3]-J)*.5+J+(+h[x>>3]-+h[A>>3])*-.625;h[G+8>>3]=J;h[G+16>>3]=I;H=(+h[x>>3]-+h[A>>3])*.5+J;h[G+24>>3]=H;I=I-(+h[x>>3]-+h[A>>3]);h[G+32>>3]=I;h[G+40>>3]=H;A=G+48|0;h[A>>3]=I;h[G+56>>3]=J;CD(a,G,d,f);h[B>>3]=+h[b+16>>3];J=+h[y>>3];h[B+8>>3]=(+h[z>>3]-J)*.5+J;h[B+16>>3]=+h[A>>3];h[B+24>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}else{switch(e|0){case 234881024:break;default:break a}G=d<<4;y=qw(G)|0;u=b+16|0;I=+h[u>>3];v=D+48|0;I=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[v>>3])*-1.125;h[y>>3]=I;w=b+40|0;J=+h[w>>3];x=b+24|0;A=D+56|0;z=D+72|0;J=(+h[x>>3]-J)*.5+J+(+h[A>>3]-+h[z>>3])*.125;h[y+8>>3]=J;H=+h[k>>3]-+h[v>>3]+I;h[y+16>>3]=H;h[y+24>>3]=J;h[y+32>>3]=H;J=(+h[A>>3]-+h[z>>3])*.5+J;h[y+40>>3]=J;h[y+48>>3]=I;h[y+56>>3]=J;CD(a,y,d,f);XI(y);y=qw(G)|0;J=+h[u>>3];J=(+h[b>>3]-J)*.5+J+(+h[k>>3]-+h[v>>3])*-1.125;h[y>>3]=J;I=+h[w>>3];I=(+h[x>>3]-I)*.5+I+(+h[A>>3]-+h[z>>3])*-.625;h[y+8>>3]=I;H=+h[k>>3]-+h[v>>3]+J;h[y+16>>3]=H;h[y+24>>3]=I;h[y+32>>3]=H;I=(+h[A>>3]-+h[z>>3])*.5+I;h[y+40>>3]=I;h[y+48>>3]=J;h[y+56>>3]=I;CD(a,y,d,f);XI(y);y=qw(G)|0;I=+h[u>>3];I=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[v>>3])*.125;h[y>>3]=I;J=+h[w>>3];J=(+h[x>>3]-J)*.5+J+(+h[A>>3]-+h[z>>3])*-.625;h[y+8>>3]=J;H=+h[k>>3]-+h[v>>3]+I;h[y+16>>3]=H;h[y+24>>3]=J;h[y+32>>3]=H;J=(+h[A>>3]-+h[z>>3])*.5+J;h[y+40>>3]=J;h[y+48>>3]=I;h[y+56>>3]=J;CD(a,y,d,f);XI(y);G=qw(G)|0;J=+h[u>>3];J=(+h[b>>3]-J)*.5+J+(+h[k>>3]-+h[v>>3])*.125;h[G>>3]=J;I=+h[w>>3];I=(+h[x>>3]-I)*.5+I+(+h[A>>3]-+h[z>>3])*.125;h[G+8>>3]=I;H=+h[k>>3]-+h[v>>3]+J;y=G+16|0;h[y>>3]=H;h[G+24>>3]=I;h[G+32>>3]=H;I=(+h[A>>3]-+h[z>>3])*.5+I;h[G+40>>3]=I;h[G+48>>3]=J;h[G+56>>3]=I;CD(a,G,d,f);h[B>>3]=+h[y>>3];I=+h[w>>3];y=B+8|0;h[y>>3]=(+h[x>>3]-I)*.5+I;z=B+16|0;h[z>>3]=+h[b>>3];A=b+8|0;d=b+56|0;f=B+24|0;h[f>>3]=(+h[A>>3]-+h[d>>3])*.5+I;FD(a,B,2);I=+h[u>>3];h[B>>3]=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[v>>3])*-1.125;J=+h[w>>3];h[y>>3]=(+h[x>>3]-J)*.5+J;h[z>>3]=I;h[f>>3]=(+h[A>>3]-+h[d>>3])*.5+J;FD(a,B,2);XI(G);break}}if((e|0)<285212672)if((e|0)<268435456){switch(e|0){case 251658240:break;default:break a}G=d<<4;u=qw(G)|0;v=b+16|0;J=+h[v>>3];y=D+48|0;J=J-+h[k>>3]+(+h[b>>3]-J)*.5+ +h[y>>3];h[u>>3]=J;w=b+40|0;I=+h[w>>3];x=b+24|0;A=D+56|0;z=D+72|0;I=(+h[x>>3]-I)*.5+I+(+h[A>>3]-+h[z>>3])*.125;h[u+8>>3]=I;H=(+h[k>>3]-+h[y>>3])*2.0+J;h[u+16>>3]=H;h[u+24>>3]=I;h[u+32>>3]=H;I=(+h[A>>3]-+h[z>>3])*.5+I;h[u+40>>3]=I;h[u+48>>3]=J;h[u+56>>3]=I;CD(a,u,d,f);XI(u);G=qw(G)|0;I=+h[v>>3];I=I-+h[k>>3]+(+h[b>>3]-I)*.5+ +h[y>>3];h[G>>3]=I;J=+h[w>>3];J=(+h[x>>3]-J)*.5+J+(+h[A>>3]-+h[z>>3])*-.625;h[G+8>>3]=J;H=(+h[k>>3]-+h[y>>3])*2.0+I;y=G+16|0;h[y>>3]=H;h[G+24>>3]=J;h[G+32>>3]=H;J=(+h[A>>3]-+h[z>>3])*.5+J;h[G+40>>3]=J;h[G+48>>3]=I;h[G+56>>3]=J;CD(a,G,d,f);h[B>>3]=+h[y>>3];J=+h[w>>3];y=B+8|0;h[y>>3]=(+h[x>>3]-J)*.5+J;z=B+16|0;h[z>>3]=+h[b>>3];A=b+8|0;d=b+56|0;f=B+24|0;h[f>>3]=(+h[A>>3]-+h[d>>3])*.5+J;FD(a,B,2);h[B>>3]=+h[v>>3];J=+h[w>>3];h[y>>3]=(+h[x>>3]-J)*.5+J;h[z>>3]=+h[G>>3];h[f>>3]=(+h[A>>3]-+h[d>>3])*.5+J;FD(a,B,2);XI(G);break}else{switch(e|0){case 268435456:break;default:break a}G=qw(d<<4)|0;h[G>>3]=+h[b>>3];v=D+48|0;x=D+56|0;y=D+72|0;h[G+8>>3]=+h[D+24>>3]-(+h[x>>3]-+h[y>>3])*.5;h[G+16>>3]=+h[v>>3];J=+h[x>>3];h[G+24>>3]=J-(J-+h[y>>3])*.5;h[G+32>>3]=+h[b+32>>3];z=b+40|0;h[G+40>>3]=(+h[x>>3]-+h[y>>3])*.5+ +h[z>>3];h[G+48>>3]=+h[b>>3];h[G+56>>3]=(+h[x>>3]-+h[y>>3])*.5+ +h[z>>3];CD(a,G,d,f);w=b+16|0;J=(+h[k>>3]-+h[v>>3])*.25;I=J+ +h[w>>3];h[B>>3]=I;H=+h[z>>3];u=b+24|0;F=+h[x>>3]-+h[y>>3];H=(+h[u>>3]-H)*.5+H+F*.125;A=B+8|0;h[A>>3]=H;d=B+16|0;h[d>>3]=J+I;f=B+24|0;h[f>>3]=H-F*.25;FD(a,B,2);F=(+h[k>>3]-+h[v>>3])*.25;H=F+ +h[w>>3];h[B>>3]=H;I=+h[z>>3];J=+h[x>>3]-+h[y>>3];I=(+h[u>>3]-I)*.5+I+J*-.125;h[A>>3]=I;h[d>>3]=F+H;h[f>>3]=J*.25+I;FD(a,B,2);I=(+h[k>>3]-+h[v>>3])*.25;h[B>>3]=I+ +h[w>>3];J=(+h[x>>3]-+h[y>>3])*.75+ +h[z>>3];h[A>>3]=J;h[d>>3]=+h[b>>3]-I;h[f>>3]=J;FD(a,B,2);XI(G);break}else if((e|0)<301989888){switch(e|0){case 285212672:break;default:break a}y=qw(d<<4)|0;v=b+16|0;I=+h[v>>3];z=D+48|0;I=(+h[k>>3]-+h[z>>3]+(+h[b>>3]-I))*.5+I;h[y>>3]=I;w=b+40|0;F=+h[w>>3];x=b+24|0;F=(+h[k>>3]-+h[z>>3]+(+h[x>>3]-F))*.5+F;h[y+8>>3]=F;h[y+16>>3]=I;I=+h[w>>3];o=+h[k>>3]-+h[z>>3];I=(+h[x>>3]-I-o)*.5+I;h[y+24>>3]=I;J=+h[v>>3];J=(+h[b>>3]-J-o)*.5+J;h[y+32>>3]=J;h[y+40>>3]=I;h[y+48>>3]=J;h[y+56>>3]=F;CD(a,y,d,f);XI(y);F=+h[v>>3];F=(+h[b>>3]-F)*.5+F;J=+h[k>>3]-+h[z>>3];I=J*.75;o=F+I;h[B>>3]=o;H=+h[w>>3];H=(+h[x>>3]-H)*.5+H;I=H+I;y=B+8|0;h[y>>3]=I;A=B+16|0;h[A>>3]=o;J=J*-.75;H=H+J;G=B+24|0;h[G>>3]=H;J=F+J;h[B+32>>3]=J;h[B+40>>3]=H;h[B+48>>3]=J;h[B+56>>3]=I;d=B+64|0;c[d>>2]=c[B>>2];c[d+4>>2]=c[B+4>>2];c[d+8>>2]=c[B+8>>2];c[d+12>>2]=c[B+12>>2];FD(a,B,5);I=+h[v>>3];J=+h[b>>3];h[B>>3]=(J-I)*.5+I+(+h[k>>3]-+h[z>>3])*.75;I=+h[w>>3];h[y>>3]=(+h[x>>3]-I)*.5+I;h[A>>3]=J;d=b+8|0;f=b+56|0;h[G>>3]=(+h[d>>3]-+h[f>>3])*.5+I;FD(a,B,2);I=+h[v>>3];h[B>>3]=I;J=+h[w>>3];h[y>>3]=(+h[x>>3]-J)*.5+J;h[A>>3]=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[z>>3])*-.75;h[G>>3]=(+h[d>>3]-+h[f>>3])*.5+J;FD(a,B,2);break}else{switch(e|0){case 301989888:break;default:break a}A=d+12|0;G=qw(A<<4)|0;x=b+16|0;m=+h[x>>3];s=D+48|0;m=(+h[b>>3]-m)*.5+m+(+h[k>>3]-+h[s>>3])*.25;h[G>>3]=m;y=b+40|0;F=+h[y>>3];z=b+24|0;v=D+56|0;w=D+72|0;F=(+h[v>>3]-+h[w>>3]+(+h[z>>3]-F))*.5+F;u=G+8|0;h[u>>3]=F;h[G+16>>3]=m;F=(+h[v>>3]-+h[w>>3])*.125+F;t=G+24|0;h[t>>3]=F;H=m-(+h[k>>3]-+h[s>>3])*.125;d=G+32|0;h[d>>3]=H;o=(+h[v>>3]-+h[w>>3])*.125+F;h[G+40>>3]=o;h[G+48>>3]=m;I=(+h[v>>3]-+h[w>>3])*.125+o;h[G+56>>3]=I;h[G+64>>3]=m;m=(+h[v>>3]-+h[w>>3])*.125+I;h[G+72>>3]=m;h[G+80>>3]=H;h[G+88>>3]=m;H=+h[x>>3];H=(+h[b>>3]-H)*.5+H;h[G+96>>3]=H;h[G+104>>3]=I;J=H-(+h[k>>3]-+h[s>>3])*.125;h[G+112>>3]=J;h[G+120>>3]=m;J=J-(+h[k>>3]-+h[s>>3])*.125;h[G+128>>3]=J;h[G+136>>3]=m;h[G+144>>3]=J;h[G+152>>3]=I;I=(+h[k>>3]-+h[s>>3])*.125+J;h[G+160>>3]=I;h[G+168>>3]=o;h[G+176>>3]=J;h[G+184>>3]=F;h[G+192>>3]=J;J=+h[u>>3];h[G+200>>3]=J;h[G+208>>3]=I;h[G+216>>3]=J;u=G+224|0;h[u>>3]=H;h[G+232>>3]=+h[t>>3];h[G+240>>3]=+h[d>>3];h[G+248>>3]=J;CD(a,G,A,f);J=+h[u>>3];h[B>>3]=J;H=+h[y>>3];H=(+h[z>>3]-H)*.5+H;A=B+8|0;h[A>>3]=H;d=B+16|0;h[d>>3]=J;f=B+24|0;h[f>>3]=(+h[v>>3]-+h[w>>3])*.125+H;FD(a,B,2);H=+h[u>>3];h[B>>3]=H;J=+h[y>>3];I=+h[v>>3]-+h[w>>3];J=(+h[z>>3]-J)*.5+J+I*.25;h[A>>3]=J;h[d>>3]=H;h[f>>3]=I*.125+J;FD(a,B,2);h[B>>3]=+h[x>>3];J=+h[y>>3];h[A>>3]=(+h[z>>3]-J)*.5+J;h[d>>3]=+h[b>>3];h[f>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}}else{if((e|0)<369098752){if((e|0)<335544320){switch(e|0){case 318767104:break;default:break a}A=d+4|0;G=qw(A<<4)|0;x=b+16|0;H=+h[x>>3];d=D+48|0;H=(+h[b>>3]-H)*.5+H+(+h[k>>3]-+h[d>>3])*.125;h[G>>3]=H;y=b+40|0;J=+h[y>>3];z=b+24|0;v=D+56|0;w=D+72|0;J=(+h[v>>3]-+h[w>>3]+(+h[z>>3]-J))*.5+J;h[G+8>>3]=J;o=(+h[k>>3]-+h[d>>3])*.125+H;h[G+16>>3]=o;I=(+h[v>>3]-+h[w>>3])*.125+J;h[G+24>>3]=I;h[G+32>>3]=o;o=(+h[v>>3]-+h[w>>3])*.25+I;h[G+40>>3]=o;h[G+48>>3]=H;F=(+h[v>>3]-+h[w>>3])*.125+o;h[G+56>>3]=F;H=H-(+h[k>>3]-+h[d>>3])*.25;h[G+64>>3]=H;h[G+72>>3]=F;F=H-(+h[k>>3]-+h[d>>3])*.125;h[G+80>>3]=F;h[G+88>>3]=o;h[G+96>>3]=F;h[G+104>>3]=I;h[G+112>>3]=H;h[G+120>>3]=J;CD(a,G,A,f);J=+h[x>>3];J=(+h[b>>3]-J)*.5+J;h[B>>3]=J;H=+h[y>>3];H=(+h[z>>3]-H)*.5+H;A=B+8|0;h[A>>3]=H;d=B+16|0;h[d>>3]=J;f=B+24|0;h[f>>3]=(+h[v>>3]-+h[w>>3])*.125+H;FD(a,B,2);H=+h[x>>3];H=(+h[b>>3]-H)*.5+H;h[B>>3]=H;J=+h[y>>3];I=+h[v>>3]-+h[w>>3];J=(+h[z>>3]-J)*.5+J+I*.25;h[A>>3]=J;h[d>>3]=H;h[f>>3]=I*.125+J;FD(a,B,2);h[B>>3]=+h[x>>3];J=+h[y>>3];h[A>>3]=(+h[z>>3]-J)*.5+J;h[d>>3]=+h[b>>3];h[f>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}if((e|0)<352321536){switch(e|0){case 335544320:break;default:break a}x=d+12|0;G=qw(x<<4)|0;y=b+16|0;m=+h[y>>3];u=D+48|0;m=(+h[b>>3]-m)*.5+m+(+h[k>>3]-+h[u>>3])*.25;h[G>>3]=m;z=b+40|0;F=+h[z>>3];A=b+24|0;s=D+56|0;t=D+72|0;F=(+h[s>>3]-+h[t>>3]+(+h[A>>3]-F))*.5+F;d=G+8|0;h[d>>3]=F;h[G+16>>3]=m;F=(+h[s>>3]-+h[t>>3])*.125+F;v=G+24|0;h[v>>3]=F;I=m-(+h[k>>3]-+h[u>>3])*.125;w=G+32|0;h[w>>3]=I;o=(+h[s>>3]-+h[t>>3])*.125+F;h[G+40>>3]=o;h[G+48>>3]=m;H=(+h[s>>3]-+h[t>>3])*.125+o;h[G+56>>3]=H;h[G+64>>3]=m;m=(+h[s>>3]-+h[t>>3])*.125+H;h[G+72>>3]=m;h[G+80>>3]=I;h[G+88>>3]=m;I=+h[y>>3];I=(+h[b>>3]-I)*.5+I;h[G+96>>3]=I;h[G+104>>3]=H;J=I-(+h[k>>3]-+h[u>>3])*.125;h[G+112>>3]=J;h[G+120>>3]=m;J=J-(+h[k>>3]-+h[u>>3])*.125;h[G+128>>3]=J;h[G+136>>3]=m;h[G+144>>3]=J;h[G+152>>3]=H;H=(+h[k>>3]-+h[u>>3])*.125+J;h[G+160>>3]=H;h[G+168>>3]=o;h[G+176>>3]=J;h[G+184>>3]=F;h[G+192>>3]=J;J=+h[d>>3];h[G+200>>3]=J;h[G+208>>3]=H;h[G+216>>3]=J;d=G+224|0;h[d>>3]=I;h[G+232>>3]=+h[v>>3];h[G+240>>3]=+h[w>>3];h[G+248>>3]=J;CD(a,G,x,f);c[B>>2]=c[d>>2];c[B+4>>2]=c[d+4>>2];c[B+8>>2]=c[d+8>>2];c[B+12>>2]=c[d+12>>2];d=B+16|0;h[d>>3]=+h[B>>3];J=+h[z>>3];f=B+24|0;h[f>>3]=(+h[A>>3]-J)*.5+J;FD(a,B,2);h[B>>3]=+h[y>>3];J=+h[z>>3];h[B+8>>3]=(+h[A>>3]-J)*.5+J;h[d>>3]=+h[b>>3];h[f>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}else{switch(e|0){case 352321536:break;default:break a}A=d+4|0;G=qw(A<<4)|0;x=b+16|0;I=+h[x>>3];w=D+48|0;I=(+h[b>>3]-I)*.5+I+(+h[k>>3]-+h[w>>3])*.125;h[G>>3]=I;y=b+40|0;J=+h[y>>3];z=b+24|0;u=D+56|0;v=D+72|0;J=(+h[u>>3]-+h[v>>3]+(+h[z>>3]-J))*.5+J;d=G+8|0;h[d>>3]=J;o=(+h[k>>3]-+h[w>>3])*.125+I;h[G+16>>3]=o;H=(+h[u>>3]-+h[v>>3])*.125+J;h[G+24>>3]=H;h[G+32>>3]=o;o=(+h[u>>3]-+h[v>>3])*.25+H;h[G+40>>3]=o;h[G+48>>3]=I;F=(+h[u>>3]-+h[v>>3])*.125+o;h[G+56>>3]=F;I=I-(+h[k>>3]-+h[w>>3])*.25;h[G+64>>3]=I;h[G+72>>3]=F;F=I-(+h[k>>3]-+h[w>>3])*.125;h[G+80>>3]=F;h[G+88>>3]=o;h[G+96>>3]=F;h[G+104>>3]=H;h[G+112>>3]=I;h[G+120>>3]=J;CD(a,G,A,f);J=+h[x>>3];J=(+h[b>>3]-J)*.5+J;h[B>>3]=J;A=B+8|0;h[A>>3]=+h[d>>3];d=B+16|0;h[d>>3]=J;J=+h[y>>3];f=B+24|0;h[f>>3]=(+h[z>>3]-J)*.5+J;FD(a,B,2);h[B>>3]=+h[x>>3];J=+h[y>>3];h[A>>3]=(+h[z>>3]-J)*.5+J;h[d>>3]=+h[b>>3];h[f>>3]=(+h[b+8>>3]-+h[b+56>>3])*.5+J;FD(a,B,2);XI(G);break}}if((e|0)<402653184)if((e|0)<385875968){switch(e|0){case 369098752:break;default:break a}d=d+5|0;G=qw(d<<4)|0;B=D+48|0;h[G>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;y=D+56|0;A=D+72|0;h[G+8>>3]=+h[D+24>>3]-(+h[y>>3]-+h[A>>3])*.5;h[G+16>>3]=+h[B>>3];J=+h[y>>3];h[G+24>>3]=J-(J-+h[A>>3])*.5;h[G+32>>3]=+h[b+32>>3];z=b+40|0;h[G+40>>3]=+h[z>>3];J=+h[k>>3];h[G+48>>3]=(J-+h[B>>3])*.5+J;h[G+56>>3]=+h[z>>3];J=+h[k>>3];h[G+64>>3]=(J-+h[B>>3])*.5+J;h[G+72>>3]=(+h[y>>3]-+h[A>>3])*.5+ +h[z>>3];h[G+80>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;h[G+88>>3]=(+h[y>>3]-+h[A>>3])*.5+ +h[z>>3];h[G+96>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;z=b+56|0;h[G+104>>3]=+h[z>>3];A=b+8|0;J=+h[A>>3];h[G+120>>3]=J-(J-+h[z>>3])*.5;h[G+112>>3]=+h[b>>3];h[G+136>>3]=+h[A>>3];h[G+128>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;CD(a,G,d,f);XI(G);break}else{switch(e|0){case 385875968:break;default:break a}d=d+3|0;G=qw(d<<4)|0;B=D+48|0;h[G>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;y=D+56|0;A=D+72|0;h[G+8>>3]=+h[D+24>>3]-(+h[y>>3]-+h[A>>3])*.5;h[G+16>>3]=+h[B>>3];J=+h[y>>3];h[G+24>>3]=J-(J-+h[A>>3])*.5;h[G+32>>3]=+h[b+32>>3];z=b+40|0;h[G+40>>3]=(+h[y>>3]-+h[A>>3])*.5+ +h[z>>3];h[G+48>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;h[G+56>>3]=(+h[y>>3]-+h[A>>3])*.5+ +h[z>>3];h[G+64>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;z=b+56|0;h[G+72>>3]=+h[z>>3];A=b+8|0;J=+h[A>>3];h[G+88>>3]=J-(J-+h[z>>3])*.5;h[G+80>>3]=+h[b>>3];h[G+104>>3]=+h[A>>3];h[G+96>>3]=+h[j>>3]-(+h[k>>3]-+h[B>>3])*.5;CD(a,G,d,f);XI(G);break}else if((e|0)<419430400){switch(e|0){case 402653184:break;default:break a}d=d+3|0;G=qw(d<<4)|0;h[G>>3]=+h[b>>3];y=b+8|0;z=D+48|0;A=D+56|0;B=D+72|0;h[G+8>>3]=+h[y>>3]-(+h[A>>3]-+h[B>>3])*.5;J=+h[k>>3];h[G+16>>3]=(J-+h[z>>3])*.5+J;h[G+24>>3]=+h[y>>3]-(+h[A>>3]-+h[B>>3])*.5;J=+h[k>>3];h[G+32>>3]=(J-+h[z>>3])*.5+J;h[G+40>>3]=+h[D+40>>3];h[G+48>>3]=+h[b+16>>3];J=+h[b+24>>3];y=b+40|0;h[G+56>>3]=J-(J-+h[y>>3])*.5;J=+h[k>>3];h[G+64>>3]=(J-+h[z>>3])*.5+J;h[G+72>>3]=+h[y>>3];h[G+88>>3]=(+h[A>>3]-+h[B>>3])*.5+ +h[y>>3];J=+h[k>>3];h[G+80>>3]=(J-+h[z>>3])*.5+J;h[G+104>>3]=(+h[A>>3]-+h[B>>3])*.5+ +h[b+56>>3];h[G+96>>3]=+h[b>>3];CD(a,G,d,f);XI(G);break}else{switch(e|0){case 419430400:break;default:break a}d=d+5|0;G=qw(d<<4)|0;h[G>>3]=+h[b>>3];B=b+8|0;A=D+48|0;y=D+56|0;z=D+72|0;h[G+8>>3]=+h[B>>3]-(+h[y>>3]-+h[z>>3])*.5;J=+h[k>>3];h[G+16>>3]=(J-+h[A>>3])*.5+J;h[G+24>>3]=+h[B>>3]-(+h[y>>3]-+h[z>>3])*.5;J=+h[k>>3];h[G+32>>3]=(J-+h[A>>3])*.5+J;h[G+40>>3]=+h[D+40>>3];h[G+48>>3]=+h[b+16>>3];J=+h[b+24>>3];B=b+40|0;h[G+56>>3]=J-(J-+h[B>>3])*.5;J=+h[k>>3];h[G+64>>3]=(J-+h[A>>3])*.5+J;h[G+72>>3]=+h[B>>3];h[G+88>>3]=(+h[y>>3]-+h[z>>3])*.5+ +h[B>>3];J=+h[k>>3];h[G+80>>3]=(J-+h[A>>3])*.5+J;B=b+56|0;h[G+104>>3]=(+h[y>>3]-+h[z>>3])*.5+ +h[B>>3];h[G+96>>3]=+h[j>>3]-(+h[k>>3]-+h[A>>3])*.5;h[G+112>>3]=+h[j>>3]-(+h[k>>3]-+h[A>>3])*.5;h[G+120>>3]=+h[B>>3];h[G+128>>3]=+h[b+48>>3];h[G+136>>3]=+h[B>>3];CD(a,G,d,f);XI(G);break}}while(0);XI(D)}l=E;return}function uy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0;f=l;l=l+112|0;g=f;k=+h[b+8>>3]*2.0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[g+16>>3]=+h[b+16>>3];h[g+24>>3]=k-+h[b+24>>3];h[g+32>>3]=+h[b+32>>3];h[g+40>>3]=k-+h[b+40>>3];h[g+48>>3]=+h[b+48>>3];h[g+56>>3]=k-+h[b+56>>3];h[g+64>>3]=+h[b+64>>3];h[g+72>>3]=k-+h[b+72>>3];h[g+80>>3]=+h[b+80>>3];h[g+88>>3]=k-+h[b+88>>3];i=g+96|0;j=b+96|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];ED(a,b,d,0,0,e&255);ED(a,g,7,0,0,0);l=f;return}function vy(a,b,c,d){a=a|0;b=+b;c=c|0;d=d|0;var e=0.0,f=0.0;f=+h[c>>3];e=+h[c+8>>3];e=(+h[d+8>>3]-e)*b+e;h[a>>3]=(+h[d>>3]-f)*b+f;h[a+8>>3]=e;return}function wy(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(a){a=c[c[a+4>>2]>>2]|0;if((a|0)!=75)if((a|0)==78)a=2;else return ((a|0)==77?3:(a|0)==80?4:0)|0;else a=1}else a=0;return a|0}function xy(b){b=b|0;var d=0,e=0,f=0.0,g=0,i=0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,D=0,G=0,H=0,I=0,J=0,L=0,M=0,N=0,P=0.0,Q=0.0,R=0,S=0,T=0.0,U=0.0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0;aa=l;l=l+144|0;J=aa+112|0;N=aa+104|0;G=aa+96|0;H=aa+88|0;i=aa+80|0;Y=aa+64|0;_=aa+48|0;R=aa+40|0;S=aa+32|0;j=aa+24|0;p=aa+16|0;D=aa+136|0;A=aa+128|0;L=aa;$=qw(48)|0;Z=b+16|0;W=c[(c[(c[Z>>2]|0)+8>>2]|0)+8>>2]|0;g=(W|0)==1552;X=c[W>>2]|0;d=c[W+4>>2]|0;e=c[W+8>>2]|0;m=+h[W+16>>3];n=+h[W+32>>3];o=+h[W+24>>3];X=X|(DA(Hm(b,90489)|0)|0)&255;do if(!g){if(!X){W=c[Z>>2]|0;k=+h[W+32>>3]*72.0;f=+h[W+40>>3]*72.0;f=+(~~(f+(f>=0.0?.5:-.5))|0);k=+(~~(k+(k>=0.0?.5:-.5))|0);break}k=+Hy(b);if(k>0.0)f=k;else{W=c[Z>>2]|0;f=+h[W+32>>3];k=+h[W+40>>3];k=(f<k?f:k)*72.0;k=+(~~(k+(k>=0.0?.5:-.5))|0);f=k}}else{f=0.0;k=0.0}while(0);W=yA(b,c[42203]|0,d,0)|0;V=+zA(b,c[42205]|0,0.0,-360.0)+m;if(!e){U=+zA(b,c[42206]|0,0.0,-100.0);I=yA(b,c[42202]|0,4,0)|0;T=+zA(b,c[42207]|0,0.0,-100.0)}else{I=e;U=n;T=o}d=c[(c[Z>>2]|0)+104>>2]|0;e=d+24|0;c[Y>>2]=c[e>>2];c[Y+4>>2]=c[e+4>>2];c[Y+8>>2]=c[e+8>>2];c[Y+12>>2]=c[e+12>>2];q=+h[Y>>3];if(q>0.0){if(!g)M=11}else if(!(g|!(+h[Y+8>>3]>0.0)))M=11;if((M|0)==11){d=Hm(b,90474)|0;do if(d){h[p>>3]=0.0;h[j>>3]=0.0;c[i>>2]=j;c[i+4>>2]=p;d=_L(d,90481,i)|0;m=+h[j>>3];if(m<0.0){h[j>>3]=0.0;m=0.0}n=+h[p>>3];if(n<0.0){h[p>>3]=0.0;o=0.0}else o=n;if((d|0)<=0){n=q+16.0;h[Y>>3]=n;m=8.0;break}m=m*72.0;m=+(~~(m+(m>=0.0?.5:-.5))<<1|0);n=q+m;h[Y>>3]=n;if((d|0)!=1){m=o*72.0;m=+(~~(m+(m>=0.0?.5:-.5))<<1|0)}}else{n=q+16.0;h[Y>>3]=n;m=8.0}while(0);d=Y+8|0;h[d>>3]=+h[d>>3]+m;d=c[(c[Z>>2]|0)+104>>2]|0;q=n}s=+h[d+24>>3];m=+h[c[(c[(qo(b)|0)+16>>2]|0)+8>>2]>>3];if(m>0.0){P=m*72.0;P=+(~~(P+(P>=0.0?.5:-.5))|0);Q=+Iy(q,P);h[Y>>3]=Q;p=Y+8|0;h[p>>3]=+Iy(+h[p>>3],P)}else Q=q;d=c[(c[Z>>2]|0)+8>>2]|0;do if(!(a[d+12>>0]|0)){e=Hm(b,93791)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){Kr(A,qo(b)|0,e);d=c[A>>2]|0;g=c[A+4>>2]|0;if((g&d|0)==-1){d=Cn(b)|0;c[G>>2]=e;c[G+4>>2]=d;Zl(0,90565,G)|0;e=0;d=0;break}else{a[(c[(qo(b)|0)+16>>2]|0)+114>>0]=1;e=d+2|0;d=g+2|0;break}}else{e=0;d=0}}else{d=c[d>>2]|0;if((a[d>>0]|0)==99?(uJ(d,90497)|0)==0:0){e=Hm(b,90504)|0;Kr(D,qo(b)|0,e);d=c[D>>2]|0;g=c[D+4>>2]|0;if((g&d|0)==-1){d=Cn(b)|0;c[H>>2]=e|0?e:90514;c[H+4>>2]=d;Zl(0,90520,H)|0;e=0;d=0;break}else{a[(c[(qo(b)|0)+16>>2]|0)+114>>0]=1;e=d+2|0;d=g+2|0;break}}else{e=0;d=0}}while(0);P=+(e|0);h[_>>3]=Q>P?Q:P;P=+h[Y+8>>3];r=+(d|0);d=_+8|0;h[d>>3]=P>r?P:r;e=(I|0)<3&(T!=0.0|U!=0.0)?120:I;g=Hm(b,90606)|0;if(!g)i=99;else{i=a[g>>0]|0;i=i<<24>>24==116?116:i<<24>>24==98?98:99}g=c[Z>>2]|0;a[(c[g+104>>2]|0)+80>>0]=i;if((e|0)==4?(T==0.0?((~~(V+(V>=0.0?.5:-.5))|0)%90|0|0)==0:0)&U==0.0:0)p=1;else M=39;do if((M|0)==39){g=c[(c[(c[g+8>>2]|0)+8>>2]|0)+44>>2]|0;if(g|0){p=c[g>>2]|0;c[J>>2]=c[_>>2];c[J+4>>2]=c[_+4>>2];c[J+8>>2]=c[_+8>>2];c[J+12>>2]=c[_+12>>2];hb[p&31](L,J);c[_>>2]=c[L>>2];c[_+4>>2]=c[L+4>>2];c[_+8>>2]=c[L+8>>2];c[_+12>>2]=c[L+12>>2];p=0;break}m=+h[d>>3];n=m*1.4142135623730951;if(f>n&i<<24>>24==99){o=m/f;o=+C(+(1.0/(1.0-o*o)));o=+h[_>>3]*o;h[_>>3]=o}else{o=+h[_>>3]*1.4142135623730951;h[_>>3]=o;h[d>>3]=n;m=n}if((e|0)>2){z=+E(+(3.141592653589793/+(e|0)));h[_>>3]=o/z;h[d>>3]=m/z;p=0}else p=0}while(0);m=+h[d>>3];g=AA(b,c[42208]|0,122100)|0;if((a[g>>0]|0)==115?(uJ(g,90615)|0)==0:0){h[_>>3]=k;h[d>>3]=f;N=$+40|0;c[N>>2]=c[N>>2]|2048}else{if(!((DA(g)|0)<<24>>24)){z=+h[_>>3];k=k>z?k:z;h[_>>3]=k;z=+h[d>>3];f=f>z?f:z}else{M=c[(c[Z>>2]|0)+104>>2]|0;if(!(!(k<+h[M+24>>3])?!(f<+h[M+32>>3]):0)){L=Cn(b)|0;M=Cn(qo(b)|0)|0;c[N>>2]=L;c[N+4>>2]=M;Zl(0,90621,N)|0}h[_>>3]=k}h[d>>3]=f}if(!X){z=f;y=k}else{y=k>f?k:f;h[d>>3]=y;h[_>>3]=y;z=y}do if(!((DA(AA(b,c[42199]|0,122100)|0)|0)<<24>>24)){if(p){f=+h[(Q>+h[_>>3]?Y:_)>>3];break}f=+h[d>>3];if(P<f){f=+h[_>>3]*+C(+(1.0-P*P/(f*f)));f=Q>f?Q:f}else f=Q}else f=Q;while(0);g=c[(c[Z>>2]|0)+104>>2]|0;h[g+40>>3]=s-q+f;A=$+40|0;if(!(c[A>>2]&2048)){x=+h[d>>3]-m;h[g+48>>3]=(P<r?r-P+x:x)+P}j=(W|0)>1;g=j?W:1;a:do if((e|0)<3){g=qw(g<<5)|0;k=+h[_>>3]*.5;f=+h[d>>3]*.5;h[g>>3]=-k;h[g+8>>3]=-f;h[g+16>>3]=k;h[g+24>>3]=f;if(j){e=1;i=2;while(1){if((e|0)==(W|0))break;y=k+4.0;z=f+4.0;h[g+(i<<4)>>3]=-y;h[g+(i<<4)+8>>3]=-z;S=i|1;h[g+(S<<4)>>3]=y;h[g+(S<<4)+8>>3]=z;e=e+1|0;i=i+2|0;k=y;f=z}h[_>>3]=k*2.0;h[d>>3]=f*2.0;e=2}else e=2}else{g=qw(O(g<<4,e)|0)|0;i=c[(c[(c[(c[Z>>2]|0)+8>>2]|0)+8>>2]|0)+44>>2]|0;b:do if(!i){q=6.283185307179586/+(e|0);t=q*.5;r=+F(+t);s=+NJ(+B(+U)+ +B(+T),1.0);t=T*1.4142135623730951/+E(+t);u=U*.5;PJ((q+-3.141592653589793)*.5,R,S);v=V*.017453292519943295;k=0.0;f=0.0;m=0.0;i=0;n=+h[S>>3]*.5;o=+h[R>>3]*.5;while(1){if((i|0)>=(e|0))break b;m=m+q;PJ(m,R,S);n=+h[S>>3]*r+n;o=+h[R>>3]*r+o;x=(o*t+s)*n+u*o;PJ(+K(+o,+x)+v,R,S);x=+NJ(x,o);w=+h[S>>3]*x*+h[_>>3];x=+h[R>>3]*x*+h[d>>3];ba=+B(+w);f=ba>f?ba:f;ba=+B(+x);k=ba>k?ba:k;h[g+(i<<4)>>3]=w;h[g+(i<<4)+8>>3]=x;if(p)break;else i=i+1|0}ba=-w;h[g+16>>3]=ba;h[g+24>>3]=x;h[g+32>>3]=ba;ba=-x;h[g+40>>3]=ba;h[g+48>>3]=w;h[g+56>>3]=ba}else{hb[c[i+4>>2]&31](g,_);k=+h[d>>3]*.5;f=+h[_>>3]*.5}while(0);f=f*2.0;k=k*2.0;y=y>f?y:f;h[_>>3]=y;ba=z>k?z:k;h[d>>3]=ba;f=y/f;k=ba/k;i=0;while(1){if((i|0)>=(e|0))break;N=g+(i<<4)|0;b=g+(i<<4)+8|0;ba=+h[b>>3]*k;h[N>>3]=+h[N>>3]*f;h[b>>3]=ba;i=i+1|0}if(j){j=e+-1|0;k=+h[g>>3];m=+h[g+8>>3];f=+K(+(m-+h[g+(j<<4)+8>>3]),+(k-+h[g+(j<<4)>>3]));j=0;c:while(1){if((j|0)>=(e|0))break;p=j+1|0;i=(p|0)%(e|0)|0;n=+h[g+(i<<4)>>3];o=+h[g+(i<<4)+8>>3];q=+K(+(o-m),+(n-k));z=(f+3.141592653589793-q)*.5;ba=4.0/+F(+z);PJ(f-z,R,S);h[R>>3]=+h[R>>3]*ba;h[S>>3]=+h[S>>3]*ba;i=1;f=m;while(1){if((i|0)==(W|0)){f=q;j=p;k=n;m=o;continue c}z=+h[S>>3]+k;ba=+h[R>>3]+f;b=(O(i,e)|0)+j|0;h[g+(b<<4)>>3]=z;h[g+(b<<4)+8>>3]=ba;i=i+1|0;k=z;f=ba}}j=O(e,W+-1|0)|0;i=0;while(1){if((i|0)>=(e|0))break a;S=i+j|0;z=+h[g+(S<<4)+8>>3];y=+B(+(+h[g+(S<<4)>>3]))*2.0;ba=+h[_>>3];h[_>>3]=y>ba?y:ba;z=+B(+z)*2.0;ba=+h[d>>3];h[d>>3]=z>ba?z:ba;i=i+1|0}}}while(0);c[$>>2]=X;c[$+4>>2]=W;c[$+8>>2]=e;h[$+16>>3]=V;h[$+32>>3]=U;h[$+24>>3]=T;c[$+44>>2]=g;f=+h[_>>3];if(!(c[A>>2]&2048)){e=c[Z>>2]|0;h[e+32>>3]=f*.013888888888888888}else{e=c[Z>>2]|0;h[e+32>>3]=+h[(Q>f?Y:_)>>3]*.013888888888888888;d=(P>+h[d>>3]?Y:_)+8|0}h[e+40>>3]=+h[d>>3]*.013888888888888888;c[e+12>>2]=$;l=aa;return}function yy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+64|0;j=o+40|0;e=o+32|0;k=o+16|0;n=o;d=(c[(c[(qo(a)|0)+16>>2]|0)+116>>2]|0)>>>2&1^1;m=a+16|0;f=c[c[(c[m>>2]|0)+104>>2]>>2]|0;c[42325]=f;f=oJ(f)|0;f=qw(((f|0)>1?f:1)+1|0)|0;b=Ay(a,d,1,f)|0;if(!b){c[e>>2]=c[c[(c[m>>2]|0)+104>>2]>>2];Zl(1,90450,e)|0;c[42325]=90471;b=Ay(a,d,1,f)|0}XI(f);By(j,a,b);d=c[m>>2]|0;i=+h[d+32>>3]*72.0;i=+(~~(i+(i>=0.0?.5:-.5))|0);h[n>>3]=i;g=+h[d+40>>3]*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0);d=n+8|0;h[d>>3]=g;if(!((DA(AA(a,c[42208]|0,122100)|0)|0)<<24>>24)){i=+h[(+h[b>>3]>i?b:n)>>3];h[n>>3]=i;e=b+8|0;g=+h[(+h[e>>3]>g?b:n)+8>>3];h[d>>3]=g;d=e;e=b}else{d=b+8|0;e=b}a=(DA(AA(a,c[42199]|0,122100)|0)|0)&255;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];Cy(b,j,a);Dy(k,i*-.5,g*.5);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];Ey(b,j,15);n=c[m>>2]|0;h[n+32>>3]=+h[e>>3]*.013888888888888888;h[n+40>>3]=(+h[d>>3]+1.0)*.013888888888888888;c[n+12>>2]=b;l=o;return}function zy(a){a=a|0;var b=0.0,d=0,e=0.0,f=0.0,g=0,i=0,j=0,k=0,l=0.0,m=0;j=qw(48)|0;k=a+16|0;g=c[(c[(c[(c[k>>2]|0)+8>>2]|0)+8>>2]|0)+4>>2]|0;f=+zA(a,c[42189]|0,1797693134862315708145274.0e284,0.0);b=+zA(a,c[42188]|0,1797693134862315708145274.0e284,0.0);f=f<b?f:b;f=b==1797693134862315708145274.0e284&f==1797693134862315708145274.0e284?.05:f>0.0?(f>.0003?f:.0003):f;i=c[k>>2]|0;h[i+40>>3]=f;h[i+32>>3]=f;b=f*72.0;g=yA(a,c[42203]|0,g,0)|0;i=qw((g|0)<1?32:g<<5)|0;f=f*36.0;e=-f;h[i>>3]=e;h[i+8>>3]=e;h[i+16>>3]=f;h[i+24>>3]=f;if((g|0)>1){a=1;d=2;e=f;b=f;while(1){if((a|0)==(g|0))break;l=e+4.0;f=b+4.0;h[i+(d<<4)>>3]=-l;h[i+(d<<4)+8>>3]=-f;m=d|1;h[i+(m<<4)>>3]=l;h[i+(m<<4)+8>>3]=f;a=a+1|0;d=d+2|0;e=l;b=f}b=e*2.0}c[j>>2]=1;c[j+4>>2]=g;c[j+8>>2]=2;m=j+16|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;c[j+44>>2]=i;l=b*.013888888888888888;m=c[k>>2]|0;h[m+32>>3]=l;h[m+40>>3]=l;c[m+12>>2]=j;return}function Ay(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=qw(72)|0;n=c[(c[b+16>>2]|0)+104>>2]|0;m=0;i=1;j=c[42325]|0;a:while(1){k=a[j>>0]|0;switch(k<<24>>24){case 0:break a;case 92:{j=j+1|0;k=a[j>>0]|0;switch(k<<24>>24){case 124:case 125:case 123:case 92:{l=m;break}default:E=4}break}default:E=4}if((E|0)==4){E=0;switch(k<<24>>24){case 123:{l=m+1|0;break}case 125:{l=m+-1|0;break}default:{l=m;i=i+((m|0)==0&k<<24>>24==124&1)|0}}if((l|0)<0)break}m=l;j=j+1|0}B=g+56|0;c[B>>2]=qw(i<<2)|0;a[g+64>>0]=d;y=(d|0)==0&1;z=n+82|0;A=f+1|0;v=(e|0)!=0;w=n+16|0;x=n+4|0;u=n+8|0;k=0;m=0;d=0;t=0;l=0;e=0;n=f;i=0;j=0;b:while(1){p=k;k=0;c:while(1){d:while(1){s=e;e:while(1){r=k;o=i;f:while(1){q=m;g:while(1){while(1){if(t){E=78;break b}m=c[42325]|0;i=a[m>>0]|0;if((i+-1&255)>=31)break;c[42325]=m+1}switch(i<<24>>24|0){case 92:{E=53;break d}case 0:case 124:case 125:break e;case 60:break f;case 62:break g;case 123:break;default:{k=d;i=m;break d}}i=m+1|0;c[42325]=i;if(l|0){E=34;break b}if(!(a[i>>0]|0)){E=34;break b}e=Ay(b,y,0,f)|0;c[(c[B>>2]|0)+(q<<2)>>2]=e;if(!e){E=36;break b}else{q=q+1|0;l=4}}if(a[z>>0]|0){k=d;i=m;break d}if(!(l&16)){E=27;break b}if(o>>>0>A>>>0?(C=o+-1|0,(C|0)!=(s|0)):0)i=(a[C>>0]|0)==32?C:o;else i=o;a[i>>0]=0;r=CL(f)|0;c[42325]=(c[42325]|0)+1;m=q;l=l&-17;o=i}if(l&6|0){E=22;break b}if(a[z>>0]|0){k=d;i=m;break d}c[42325]=m+1;m=q;l=l|18;k=r;s=f;i=f}if(!((l&16|0)==0&(v|i<<24>>24!=0))){E=38;break b}if(!(l&4)){k=qw(72)|0;c[(c[B>>2]|0)+(q<<2)>>2]=k;m=q+1|0}else{k=p;m=q}if(r|0)c[k+60>>2]=r;if(!(l&5)){a[f+j>>0]=32;l=l|1;j=j+1|0}i=f+j|0;if(l&1){if((j|0)>1?(D=i+-1|0,(D|0)!=(n|0)):0)i=(a[D>>0]|0)==32?D:i;a[i>>0]=0;n=CL(f)|0;c[k+52>>2]=gw(b,n,a[z>>0]|0?2:0,+h[w>>3],c[x>>2]|0,c[u>>2]|0)|0;a[k+64>>0]=1;n=f;j=0}i=c[42325]|0;switch(a[i>>0]|0){case 0:{t=1;e=s;i=o;continue b}case 125:{E=51;break b}default:{}}c[42325]=i+1;p=k;l=0;k=0;e=s;i=o}h:do if((E|0)==53){E=0;k=f+j|0;i=m+1|0;switch(a[i>>0]|0){case 0:{k=d;i=m;break h}case 62:case 60:case 124:case 125:case 123:{k=d;break}case 32:{if(!(a[z>>0]|0))k=1;else E=55;break}default:E=55}if((E|0)==55){E=0;a[k>>0]=92;k=d;l=l|9;j=j+1|0}c[42325]=i}while(0);d=f+j|0;if(l&4|0?(a[i>>0]|0)!=32:0){E=59;break b}if(!(l&24))l=(a[i>>0]|0)==32?l:l|9;if(!(l&8))if(!(l&16))e=s;else{m=a[i>>0]|0;d=(k|0)!=0;if(!(d|m<<24>>24!=32))if((o|0)!=(f|0))if((a[o+-1>>0]|0)==32)m=o;else E=73;else m=f;else E=73;if((E|0)==73){E=0;a[o>>0]=m;m=o+1|0;i=c[42325]|0}e=d?m+-1|0:s;o=m}else{m=a[i>>0]|0;e=(k|0)!=0;if(!((!(e|m<<24>>24!=32)?(a[d+-1>>0]|0)==32:0)?(a[z>>0]|0)==0:0)){a[d>>0]=m;j=j+1|0}if(e){e=s;n=f+j+-1|0}else e=s}i=i+1|0;c[42325]=i;while(1){if((a[i>>0]|0)>=0){m=q;d=k;k=r;i=o;continue c}s=i+1|0;c[42325]=s;a[f+j>>0]=a[i>>0]|0;j=j+1|0;i=s}}}if((E|0)==22){Fy(g,r);g=0}else if((E|0)==27){Fy(g,r);g=0}else if((E|0)==34){Fy(g,r);g=0}else if((E|0)==36){Fy(g,r);g=0}else if((E|0)==38){Fy(g,r);g=0}else if((E|0)==51){c[42325]=i+1;c[g+48>>2]=m}else if((E|0)==59){Fy(g,r);g=0}else if((E|0)==78)c[g+48>>2]=q;return g|0}function By(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+64|0;k=u+48|0;m=u+40|0;n=u+32|0;t=u+16|0;s=u;j=c[e+52>>2]|0;a:do if(!j){n=t+8|0;o=e+48|0;p=e+56|0;q=e+64|0;r=s+8|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;j=0;while(1){if((j|0)>=(c[o>>2]|0))break a;By(s,d,c[(c[p>>2]|0)+(j<<2)>>2]|0);if(!(a[q>>0]|0)){h[n>>3]=+h[n>>3]+ +h[r>>3];k=t;m=+h[t>>3]>+h[s>>3]?t:s}else{h[t>>3]=+h[t>>3]+ +h[s>>3];k=n;m=(+h[n>>3]>+h[r>>3]?t:s)+8|0}h[k>>3]=+h[m>>3];j=j+1|0}}else{g=+h[j+24>>3];f=+h[j+32>>3];if(g>0.0|f>0.0){j=Hm(d,90474)|0;do if(j){c[k>>2]=m;c[k+4>>2]=n;j=_L(j,90481,k)|0;if((j|0)<=0){i=8.0;g=g+16.0;break}i=+h[m>>3]*72.0;i=+(~~(i+(i>=0.0?.5:-.5))<<1|0);g=g+i;if((j|0)!=1){i=+h[n>>3]*72.0;i=+(~~(i+(i>=0.0?.5:-.5))<<1|0)}}else{i=8.0;g=g+16.0}while(0);f=i+f}h[t>>3]=g;h[t+8>>3]=f}while(0);c[e>>2]=c[t>>2];c[e+4>>2]=c[t+4>>2];c[e+8>>2]=c[t+8>>2];c[e+12>>2]=c[t+12>>2];c[b>>2]=c[t>>2];c[b+4>>2]=c[t+4>>2];c[b+8>>2]=c[t+8>>2];c[b+12>>2]=c[t+12>>2];l=u;return}function Cy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0;s=l;l=l+32|0;o=s+16|0;p=s;q=+h[d>>3];i=q-+h[b>>3];r=+h[d+8>>3];f=r-+h[b+8>>3];c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];d=c[b+52>>2]|0;if(!((e|0)!=0|(d|0)==0)){n=d+40|0;h[n>>3]=+h[n>>3]+i;n=d+48|0;h[n>>3]=+h[n>>3]+f}m=b+48|0;d=c[m>>2]|0;a:do if(d|0){n=b+64|0;f=((a[n>>0]|0)==0?f:i)/+(d|0);k=b+56|0;j=0;while(1){if((j|0)>=(d|0))break a;b=c[(c[k>>2]|0)+(j<<2)>>2]|0;g=j+1|0;d=~~(f*+(g|0))-~~(f*+(j|0))|0;if(!(a[n>>0]|0))Dy(p,q,+h[b+8>>3]+ +(d|0));else Dy(p,+h[b>>3]+ +(d|0),r);c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];Cy(b,o,e);j=g;d=c[m>>2]|0}}while(0);l=s;return}function Dy(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function Ey(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;q=l;l=l+48|0;j=q+32|0;n=q+16|0;m=q;a[b+65>>0]=e;k=b+16|0;s=+h[d>>3];p=d+8|0;r=+h[p>>3];Dy(n,s,r-+h[b+8>>3]);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];k=b+32|0;Dy(m,+h[b>>3]+s,r);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];k=c[b+48>>2]|0;m=k+-1|0;n=(e|0)==0;o=b+56|0;i=b+64|0;g=0;while(1){if((g|0)>=(k|0))break;do if(!n){b=(g|0)==0;f=(g|0)==(m|0);if(!(a[i>>0]|0))if(b){b=f?15:14;break}else{b=f?11:10;break}else if(b){b=f?15:13;break}else{b=f?7:5;break}}else b=0;while(0);f=c[(c[o>>2]|0)+(g<<2)>>2]|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];Ey(f,j,b&e);if(!(a[i>>0]|0))h[p>>3]=+h[p>>3]-+h[(c[(c[o>>2]|0)+(g<<2)>>2]|0)+8>>3];else h[d>>3]=+h[c[(c[o>>2]|0)+(g<<2)>>2]>>3]+ +h[d>>3];g=g+1|0}l=q;return}function Fy(a,b){a=a|0;b=b|0;Gy(a);XI(b);return}function Gy(a){a=a|0;var b=0,d=0,e=0;d=a+48|0;e=a+56|0;b=0;while(1){if((b|0)>=(c[d>>2]|0))break;Gy(c[(c[e>>2]|0)+(b<<2)>>2]|0);b=b+1|0}XI(c[a+60>>2]|0);jw(c[a+52>>2]|0);XI(c[e>>2]|0);XI(a);return}function Hy(a){a=a|0;var b=0.0,d=0.0;d=+zA(a,c[42189]|0,0.0,.01);b=+zA(a,c[42188]|0,0.0,.02);b=(d>b?d:b)*72.0;return +(+(~~(b+(b>=0.0?.5:-.5))|0))}function Iy(a,b){a=+a;b=+b;var c=0;c=~~(a/b);return +(+((+(c|0)*b+1.0e-05<a&1)+c|0)*b)}function Jy(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(!a)a=0;else a=(c[c[a+4>>2]>>2]|0)==75&1;return a|0}function Ky(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[42326]|0;a:do if(!f)d=0;else{g=c[42327]|0;e=0;while(1){if((e|0)>=(g|0)){d=0;break a}d=c[f+(e<<2)>>2]|0;h=c[d>>2]|0;if((a[h>>0]|0)==(a[b>>0]|0)?(uJ(h,b)|0)==0:0)break a;e=e+1|0}}while(0);return d|0}function Ly(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if(MA(Hm(d,90504)|0)|0)if((a[b>>0]|0)==101?(uJ(b,90669)|0)==0:0){d=101;g=6}else{b=90497;g=4}else g=4;if((g|0)==4){d=a[b>>0]|0;if(d<<24>>24==99)if(!(uJ(b,90497)|0))g=11;else{d=99;g=6}else g=6}a:do if((g|0)==6){e=19868;while(1){f=c[e>>2]|0;if(!f){g=11;break a}if((a[f>>0]|0)==d<<24>>24?(uJ(f,b)|0)==0:0){b=e;break a}e=e+16|0}}while(0);if((g|0)==11)b=My(b)|0;return b|0}function My(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;d=Ky(b)|0;if(!d){f=c[42327]|0;d=f+1|0;c[42327]=d;e=c[42326]|0;if(!e)d=rw(d<<2)|0;else d=tw(e,d<<2)|0;c[42326]=d;d=qw(16)|0;c[(c[42326]|0)+(f<<2)>>2]=d;c[d>>2]=c[4967];c[d+4>>2]=c[4968];c[d+8>>2]=c[4969];c[d+12>>2]=c[4970];e=CL(b)|0;c[d>>2]=e;do if(!0){if((a[b>>0]|0)==99?(uJ(b,90497)|0)==0:0){e=1;break}c[g>>2]=c[4967];c[g+4>>2]=e;Zl(0,90674,g)|0;e=0}else e=1;while(0);a[d+12>>0]=e}l=h;return d|0}function Ny(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[b>>3]*.5257311121191336;c=+h[b+8>>3]*.8944271909999159;c=d>c?d:c;h[a>>3]=c*4.97979656976556;h[a+8>>3]=c*4.73606797749979;return}function Oy(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0.0;d=+h[b>>3];k=b+8|0;e=+h[k>>3];c=e/d;if(!(c>.9510565162951536))if(c<.9510565162951536){j=d;e=d*.9510565162951536}else j=d;else j=e*1.0514622242382672;d=j*.5257311121191336;g=j*.20081141588622725;i=j*.05020285397155681;c=.3141592653589793;f=0;while(1){if((f|0)>=10)break;h[a+(f<<4)>>3]=+E(+c)*d;h[a+(f<<4)+8>>3]=+F(+c)*d-i;m=c+.6283185307179586;l=f|1;h[a+(l<<4)>>3]=+E(+m)*g;h[a+(l<<4)+8>>3]=+F(+m)*g-i;c=c+1.2566370614359172;f=f+2|0}h[b>>3]=j;h[k>>3]=e;return}function Py(a){a=a|0;a=c[(c[a+16>>2]|0)+12>>2]|0;if(a|0){XI(c[a+44>>2]|0);XI(a)}return}function Qy(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+80|0;k=o+40|0;g=o;n=o+64|0;h=o+56|0;if(!(a[e>>0]|0)){g=4144;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}else{i=(f|0)==0?91344:f;c[n>>2]=15;j=d+16|0;f=c[j>>2]|0;do if(a[(c[f+104>>2]|0)+82>>0]|0){f=EF(d,e,n)|0;if(!f){f=c[j>>2]|0;m=8;break}if(cz(d,f,g,i,c[n>>2]|0,0)|0){c[k>>2]=Cn(d)|0;c[k+4>>2]=e;c[k+8>>2]=i;Zl(0,91346,k)|0}}else m=8;while(0);if((m|0)==8){if((c[(c[f+8>>2]|0)+8>>2]|0)==1600)h=0;else{c[h>>2]=d;c[h+4>>2]=0}if(cz(d,0,g,e,c[n>>2]|0,h)|0)dz(d,e)}c[g+36>>2]=0;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}l=o;return}function Ry(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0;r=l;l=l+112|0;n=r+96|0;m=r+80|0;p=r+64|0;k=r+48|0;q=r+32|0;o=r;f=r+16|0;if(!a){c[42330]=0;a=0}else{g=c[a+4>>2]|0;a=c[a>>2]|0;i=(c[(c[(qo(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];Xv(f,n,i);c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];a:do if(g){d=+h[g+8>>3];e=+h[g+24>>3];s=+h[q>>3];if((+h[g>>3]<=s?s<=+h[g+16>>3]:0)?(j=+h[q+8>>3],d<=j):0)a=j<=e&1;else a=0}else{if((a|0)==(c[42330]|0)){f=c[42331]|0;g=c[42333]|0;i=c[42332]|0}else{g=c[(c[a+16>>2]|0)+12>>2]|0;c[42334]=g;i=c[g+44>>2]|0;c[42332]=i;f=c[g+8>>2]|0;c[42331]=f;g=O((c[g+4>>2]|0)+-1|0,f)|0;g=(g|0)>0?g:0;c[42333]=g;c[42330]=a}a=0;b=0;while(1){if((a|0)>=(f|0)){a=1;break a}t=i+(g+a<<4)|0;c[o>>2]=c[t>>2];c[o+4>>2]=c[t+4>>2];c[o+8>>2]=c[t+8>>2];c[o+12>>2]=c[t+12>>2];t=i+(g+((a+4|0)%(f|0)|0)<<4)|0;c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[k+12>>2]=c[q+12>>2];c[p>>2]=c[41802];c[p+4>>2]=c[41803];c[p+8>>2]=c[41804];c[p+12>>2]=c[41805];c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];c[n>>2]=c[t>>2];c[n+4>>2]=c[t+4>>2];c[n+8>>2]=c[t+8>>2];c[n+12>>2]=c[t+12>>2];b=b+((bz(k,p,m,n)|0)==0&1)|0;if((b|0)==2){a=0;break}else a=a+2|0}}while(0)}l=r;return a|0}function Sy(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;e=c[b+16>>2]|0;if((a[(c[e+104>>2]|0)+82>>0]|0)!=0?(a[e+145>>0]|0)!=0:0)b=HF(b,d,0,f,g)|0;else b=0;return b|0}function Ty(e,f){e=e|0;f=f|0;var i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0;P=l;l=l+48|0;H=P+24|0;G=P+16|0;A=P+8|0;z=P;L=P+32|0;n=P+28|0;M=c[e+16>>2]|0;N=M+208|0;i=c[N>>2]|0;if((i|0)==0?(b[M+260>>1]&1)==0:0)J=0;else E=4;if((E|0)==4)if(!(c[e+152>>2]&4)){rD(e,i,c[M+228>>2]|0,c[M+244>>2]|0,c[M+212>>2]|0);J=1}else J=1;I=f+16|0;i=c[I>>2]|0;r=c[i+12>>2]|0;F=c[r+44>>2]|0;K=c[r+8>>2]|0;r=c[r+4>>2]|0;if((c[42328]|0)<(K|0)){i=K+5|0;c[42328]=i;j=c[42329]|0;if(!j)i=rw(i<<4)|0;else i=tw(j,i<<4)|0;c[42329]=i;i=c[I>>2]|0}D=(c[i+104>>2]|0)+56|0;i=i+16|0;c[D>>2]=c[i>>2];c[D+4>>2]=c[i+4>>2];c[D+8>>2]=c[i+8>>2];c[D+12>>2]=c[i+12>>2];D=c[I>>2]|0;B=+h[D+32>>3]*72.0;B=(+h[D+96>>3]+ +h[D+88>>3])/+(~~(B+(B>=0.0?.5:-.5))|0);C=+h[D+40>>3]*72.0;C=+h[D+80>>3]/+(~~(C+(C>=0.0?.5:-.5))|0);D=Uy(e,f)|0;c[L>>2]=0;i=d[(c[I>>2]|0)+117>>0]|0;do if(!(i&1)){if(i&2|0){s=BA(f,0,91244)|0;wD(e,s);yD(e,BA(f,0,91252)|0);j=0;i=1;break}if(i&8|0){s=BA(f,0,91260)|0;wD(e,s);yD(e,BA(f,0,91268)|0);j=0;i=1;break}if(i&4|0){s=BA(f,0,91276)|0;wD(e,s);yD(e,BA(f,0,91284)|0);j=0;i=1;break}if(!(D&1))if(!(D&576)){j=0;i=0}else{j=Vy(f)|0;i=1}else{j=Vy(f)|0;if(!((sv(j,L,n)|0)<<24>>24)){yD(e,j);i=1}else{yD(e,c[L>>2]|0);i=c[L+4>>2]|0;m=yA(f,c[42216]|0,0,0)|0;k=+g[n>>2];if(!i)zD(e,122106,m,k);else zD(e,i,m,k);i=(D&2)>>>1|2}}s=Wy(e,f)|0}else{s=BA(f,0,91228)|0;wD(e,s);yD(e,BA(f,0,91236)|0);j=0;i=1}while(0);m=c[(c[I>>2]|0)+8>>2]|0;if(a[m+12>>0]|0){m=c[m>>2]|0;if((a[m>>0]|0)==99){m=(uJ(m,90497)|0)==0;E=33}else u=1}else{m=1;E=33}if((E|0)==33){m=m^1;if((r|0)!=0|i<<24>>24==0|m)u=m;else{wD(e,122171);r=1;u=0}}v=(K|0)<3;w=(D&512|0)!=0;y=(D&8|0)==0;x=(D&64|0)==0;p=(D&1024|0)==0;q=(D&2130706444|0)==0;t=0;while(1){if((t|0)>=(r|0))break;n=O(t,K)|0;o=c[42329]|0;m=0;while(1){if((m|0)>=(K|0))break;R=m+n|0;k=+h[F+(R<<4)+8>>3];Q=c[I>>2]|0;h[o+(m<<4)>>3]=+h[Q+16>>3]+ +h[F+(R<<4)>>3]*B;h[o+(m<<4)+8>>3]=+h[Q+24>>3]+k*C;m=m+1|0}do if(v){if(w&(t|0)==0?(TJ(j,58)|0)!=0:0)if((Vt(e,o,j)|0)>1){c[z>>2]=Cn(f)|0;Zl(3,91292,z)|0;i=0}else i=0;BD(e,c[42329]|0,K,i&255);if(!y)Xy(e,f)}else{if(!x){if((t|0)==0?(Zt(e,o,j,1)|0)>1:0){c[A>>2]=Cn(f)|0;Zl(3,91292,A)|0}CD(e,c[42329]|0,K,0);break}if(!p){wD(e,122171);CD(e,c[42329]|0,K,i&255);wD(e,s);FD(e,(c[42329]|0)+32|0,2);break}i=i&255;if(q){CD(e,o,K,i);break}else{ty(e,o,K,D,i);break}}while(0);t=t+1|0;i=0}m=c[(c[I>>2]|0)+8>>2]|0;if(!(a[m+12>>0]|0)){m=Hm(f,93791)|0;if(m|0?a[m>>0]|0:0){o=m;E=65}}else{m=c[m>>2]|0;if((a[m>>0]|0)==99?(uJ(m,90497)|0)==0:0){m=Hm(f,90504)|0;if(m|0?a[m>>0]|0:0){o=m;E=65}}else{o=m;E=65}}if((E|0)==65){n=c[42329]|0;m=0;while(1){if((m|0)>=(K|0))break;k=+h[F+(m<<4)+8>>3];R=c[I>>2]|0;h[n+(m<<4)>>3]=+h[R+16>>3]+ +h[F+(m<<4)>>3]*B;h[n+(m<<4)+8>>3]=+h[R+24>>3]+k*C;m=m+1|0}m=i&255;do if(!(u|i<<24>>24==0)){if(v){if(w&(t|0)==0?(TJ(j,58)|0)!=0:0)if((Vt(e,n,j)|0)>1){c[G>>2]=Cn(f)|0;Zl(3,91292,G)|0;i=0}else i=0;BD(e,c[42329]|0,K,i&255);if(y)break;Xy(e,f);break}if(x)if(!(D&12)){CD(e,n,K,m);break}else{ty(e,n,K,D,m);break}else{if((Zt(e,n,j,1)|0)>1){c[H>>2]=Cn(f)|0;Zl(3,91292,H)|0}CD(e,c[42329]|0,K,0);break}}while(0);R=c[42329]|0;HD(e,o,R,K,i,AA(f,c[42209]|0,122100)|0)}XI(c[L>>2]|0);kw(e,10,c[(c[I>>2]|0)+104>>2]|0);if(J){if(c[e+152>>2]&4|0)rD(e,c[N>>2]|0,c[M+228>>2]|0,c[M+244>>2]|0,c[M+212>>2]|0);sD(e)}l=P;return}function Uy(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;e=_y(d,f)|0;if(e|0)AD(b,e);e=c[42215]|0;if((e|0?(g=Im(d,e)|0,g|0):0)?a[g>>0]|0:0)JD(b,+zA(d,c[42215]|0,1.0,0.0));l=h;return c[f>>2]|0}function Vy(a){a=a|0;return Zy(a,119592)|0}function Wy(b,d){b=b|0;d=d|0;d=BA(d,c[42191]|0,174177)|0;d=a[d>>0]|0?d:122106;wD(b,d);return d|0}function Xy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0,i=0.0,j=0,k=0,m=0;d=l;l=l+96|0;j=d+80|0;k=d+64|0;e=d+32|0;m=d+16|0;g=d;b=c[b+16>>2]|0;f=+h[b+80>>3];h[m+8>>3]=f*.375;i=+h[b+96>>3];h[m>>3]=i*.6614;b=b+16|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Yy(g,k,j);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];g=e+8|0;b=e+24|0;h[b>>3]=+h[g>>3];h[e+16>>3]=+h[e>>3]-i*1.3228;FD(a,e,2);f=+h[g>>3]-f*.75;h[g>>3]=f;h[b>>3]=f;FD(a,e,2);l=d;return}function Yy(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[c+8>>3]+ +h[b+8>>3];h[a>>3]=+h[c>>3]+ +h[b>>3];h[a+8>>3]=d;return}function Zy(b,d){b=b|0;d=d|0;var e=0;e=BA(b,c[42192]|0,174177)|0;if(!(a[e>>0]|0)){e=BA(b,c[42191]|0,174177)|0;return ((a[e>>0]|0)==0?d:e)|0}else return e|0;return 0}function _y(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=BA(b,c[42200]|0,174177)|0;a:do if(!(a[e>>0]|0)){g=0;e=0}else{g=yu(e)|0;h=g;e=0;b:while(1){f=c[h>>2]|0;if(!f)break a;switch(a[f>>0]|0){case 102:{if(!(uJ(f,95867)|0)){h=h+4|0;e=e|1;continue b}break}case 114:{if(!(uJ(f,91304)|0)){f=h;do{j=f;f=f+4|0;i=c[f>>2]|0;c[j>>2]=i}while((i|0)!=0);j=h;e=e|4;h=j;continue b}if(!(uJ(f,91322)|0)){f=h;do{i=f;f=f+4|0;j=c[f>>2]|0;c[i>>2]=j}while((j|0)!=0);j=h;e=e|3;h=j;continue b}break}case 100:{if(!(uJ(f,91312)|0)){f=h;do{i=f;f=f+4|0;j=c[f>>2]|0;c[i>>2]=j}while((j|0)!=0);j=h;e=e|8;h=j;continue b}break}case 105:{if(!(uJ(f,119127)|0)){h=h+4|0;e=e|32;continue b}break}case 115:{if((uJ(f,91329)|0)==0?$y(b)|0:0){f=h;do{i=f;f=f+4|0;j=c[f>>2]|0;c[i>>2]=j}while((j|0)!=0);j=h;e=e|64;h=j;continue b}break}case 119:{if((uJ(f,91337)|0)==0?az(b)|0:0){f=h;do{i=f;f=f+4|0;j=c[f>>2]|0;c[i>>2]=j}while((j|0)!=0);j=h;e=e|512;h=j;continue b}break}default:{}}h=h+4|0}}while(0);f=c[(c[(c[b+16>>2]|0)+8>>2]|0)+8>>2]|0;if(f)e=c[f+40>>2]|e;c[d>>2]=e;return g|0}function $y(a){a=a|0;var b=0.0;a=c[(c[(c[a+16>>2]|0)+8>>2]|0)+8>>2]|0;if((((a|0)!=0?(c[a+8>>2]|0)==4:0)?(b=+h[a+16>>3],((~~(b+(b>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[a+24>>3]==0.0:0)a=+h[a+32>>3]==0.0&1;else a=0;return a|0}function az(a){a=a|0;a=c[(c[(c[a+16>>2]|0)+8>>2]|0)+8>>2]|0;if(!a)a=0;else a=(c[a+8>>2]|0)<3&1;return a|0}function bz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;i=+h[c+8>>3];g=-(+h[d+8>>3]-i);f=+h[c>>3];e=+h[d>>3]-f;f=e*i+f*g;return (+h[a+8>>3]*e+ +h[a>>3]*g-f>=0.0^+h[b>>3]*g-f+ +h[b+8>>3]*e>=0.0^1)&1|0}function cz(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;G=l;l=l+192|0;B=G+176|0;E=G+160|0;m=G+144|0;z=G+128|0;A=G+112|0;n=G+96|0;o=G+80|0;p=G+64|0;v=G+48|0;w=G+32|0;x=G+16|0;D=G;if(!d){c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;m=(c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&1|0)==0;C=c[b+16>>2]|0;q=+h[C+80>>3]*.5;j=+h[C+88>>3];t=m?q:j;q=m?j:q;m=0;C=E;j=0.0;k=-q;r=t;F=E+8|0;s=0.0;t=-t}else{k=+h[d>>3];t=+h[d+8>>3];q=+h[d+16>>3];r=+h[d+24>>3];Dy(m,(q+k)*.5,(r+t)*.5);c[E>>2]=c[m>>2];c[E+4>>2]=c[m+4>>2];c[E+8>>2]=c[m+8>>2];c[E+12>>2]=c[m+12>>2];H=E+8|0;m=1;C=E;j=+h[E>>3];F=H;s=+h[H>>3]}u=(q>r?q:r)*4.0;a:do if((f|0)!=0?(y=a[f>>0]|0,y<<24>>24!=0):0){f=f+1|0;switch(y<<24>>24|0){case 99:{p=1;g=0;f=0;n=0;j=0.0;o=0;break a}case 101:{if(a[f>>0]|0){p=1;g=0;f=0;n=0;j=0.0;o=1;break a}if(!i)h[C>>3]=q;else{ez(z,i,s,u);c[E>>2]=c[z>>2];c[E+4>>2]=c[z+4>>2];c[E+8>>2]=c[z+8>>2];c[E+12>>2]=c[z+12>>2]}p=0;g=g&2;f=0;n=1;j=0.0;o=0;m=1;break a}case 115:{h[F>>3]=t;switch(a[f>>0]|0){case 0:{if(!i)h[C>>3]=j;else{ez(A,i,-u,j);c[E>>2]=c[A>>2];c[E+4>>2]=c[A+4>>2];c[E+8>>2]=c[A+8>>2];c[E+12>>2]=c[A+12>>2]}p=0;g=g&1;f=0;n=1;j=-1.5707963267948966;o=0;m=1;break a}case 101:{if(!i)h[C>>3]=q;else{ez(n,i,-u,u);c[E>>2]=c[n>>2];c[E+4>>2]=c[n+4>>2];c[E+8>>2]=c[n+8>>2];c[E+12>>2]=c[n+12>>2]}p=0;g=g&3;f=0;n=1;j=-.7853981633974483;o=0;m=1;break a}case 119:{if(!i)h[C>>3]=k;else{u=-u;ez(o,i,u,u);c[E>>2]=c[o>>2];c[E+4>>2]=c[o+4>>2];c[E+8>>2]=c[o+8>>2];c[E+12>>2]=c[o+12>>2]}p=0;g=g&9;f=0;n=1;j=-2.356194490192345;o=0;m=1;break a}default:{h[F>>3]=s;p=1;g=0;f=0;n=0;j=0.0;o=1;break a}}}case 119:{if(a[f>>0]|0){p=1;g=0;f=0;n=0;j=0.0;o=1;break a}if(!i)h[C>>3]=k;else{ez(p,i,s,-u);c[E>>2]=c[p>>2];c[E+4>>2]=c[p+4>>2];c[E+8>>2]=c[p+8>>2];c[E+12>>2]=c[p+12>>2]}p=0;g=g&8;f=0;n=1;j=3.141592653589793;o=0;m=1;break a}case 110:{h[F>>3]=r;switch(a[f>>0]|0){case 0:{if(!i)h[C>>3]=j;else{ez(v,i,u,j);c[E>>2]=c[v>>2];c[E+4>>2]=c[v+4>>2];c[E+8>>2]=c[v+8>>2];c[E+12>>2]=c[v+12>>2]}p=0;g=g&4;f=0;n=1;j=1.5707963267948966;o=0;m=1;break a}case 101:{if(!i)h[C>>3]=q;else{ez(w,i,u,u);c[E>>2]=c[w>>2];c[E+4>>2]=c[w+4>>2];c[E+8>>2]=c[w+8>>2];c[E+12>>2]=c[w+12>>2]}p=0;g=g&6;f=0;n=1;j=.7853981633974483;o=0;m=1;break a}case 119:{if(!i)h[C>>3]=k;else{ez(x,i,u,-u);c[E>>2]=c[x>>2];c[E+4>>2]=c[x+4>>2];c[E+8>>2]=c[x+8>>2];c[E+12>>2]=c[x+12>>2]}p=0;g=g&12;f=0;n=1;j=2.356194490192345;o=0;m=1;break a}default:{h[F>>3]=s;p=1;g=0;f=0;n=0;j=0.0;o=1;break a}}}case 95:{p=1;f=1;n=0;j=0.0;o=0;break a}default:{p=1;g=0;f=0;n=0;j=0.0;o=1;break a}}}else{p=1;g=0;f=0;n=0;j=0.0;o=0}while(0);H=(c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&3)*90|0;c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2];Wv(D,B,H);c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];if(!(f<<24>>24))g=fz(g,c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&3)|0;a[e+33>>0]=g;c[e+24>>2]=d;k=+h[C>>3];h[e>>3]=+(~~(k+(k>=0.0?.5:-.5))|0);k=+h[F>>3];h[e+8>>3]=+(~~(k+(k>=0.0?.5:-.5))|0);h[e+16>>3]=+gz(j,c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&3);k=+h[C>>3];j=+h[F>>3];if(k==0.0&j==0.0)g=-128;else{u=+K(+j,+k);t=u+4.71238898038469;g=~~((!(t>=6.283185307179586)?t:u+-1.5707963267948966)*40.74366543152521)&255}a[e+32>>0]=g;a[e+29>>0]=n;a[e+28>>0]=m;a[e+30>>0]=p;a[e+31>>0]=f;l=G;return o|0}function dz(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=Cn(a)|0;c[e+4>>2]=b;Zl(0,91407,e)|0;l=d;return}function ez(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+128|0;g=p+112|0;j=p+48|0;k=p+16|0;m=p+32|0;n=p;o=c[b>>2]|0;i=c[(c[(qo(o)|0)+16>>2]|0)+116>>2]&3;h[k>>3]=e;h[k+8>>3]=d;f=(i|0)!=0;if(f){c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];Wv(m,g,i*90|0);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2]}m=j+48|0;q=j+32|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];Az(b,c[(c[(c[(c[o+16>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0,j,1);if(f){c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];Xv(n,g,i*90|0);c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2]};c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];l=p;return}function fz(a,b){a=a|0;b=b|0;a:do switch(b|0){case 3:switch(a|0){case 4:{a=2;break a}case 1:{a=8;break a}case 8:{a=1;break a}case 2:{a=4;break a}default:break a}case 2:switch(a|0){case 4:{a=1;break a}case 1:{a=4;break a}default:break a}case 1:switch(a|0){case 4:{a=2;break a}case 1:{a=8;break a}case 8:{a=4;break a}case 2:{a=1;break a}default:break a}default:{}}while(0);return a|0}function gz(a,b){a=+a;b=b|0;switch(b|0){case 3:{if(!(a==3.141592653589793))if(!(a==2.356194490192345))if(!(a==1.5707963267948966))if(!(a==0.0))if(!(a==-.7853981633974483)){if(a==-1.5707963267948966)a=3.141592653589793}else a=2.356194490192345;else a=1.5707963267948966;else a=0.0;else a=-.7853981633974483;else a=-1.5707963267948966;break}case 2:{a=-a;break}case 1:{a=a+-1.5707963267948966;break}default:{}}return +a}function hz(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0.0,i=0,j=0,k=0;e=l;l=l+32|0;k=e+16|0;i=e;a=c[a>>2]|0;j=(c[(c[(qo(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];Xv(i,k,j);d=+h[i>>3];g=+h[i+8>>3];a=c[a+16>>2]|0;f=+h[a+80>>3]*.5;if(!(!(g>=-f)|!(g<=f))?d>=-+h[a+88>>3]:0)a=d<=+h[a+96>>3]&1;else a=0;l=e;return a|0}function iz(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;n=l;l=l+32|0;m=n;i=c[a+16>>2]|0;j=i+208|0;g=c[j>>2]|0;if(!g)k=(b[i+260>>1]&1)!=0;else k=1;e=d+16|0;d=c[e>>2]|0;f=c[d+12>>2]|0;if(f|0){if(k?(c[a+152>>2]&4|0)==0:0){rD(a,g,c[i+228>>2]|0,c[i+244>>2]|0,c[i+212>>2]|0);d=c[e>>2]|0}g=c[a+36>>2]|0;p=+h[d+24>>3]+ +(c[f+8>>2]|0);o=c[f>>2]|0;h[m>>3]=+h[d+16>>3]+ +(c[f+4>>2]|0);h[m+8>>3]=p;c[m+16>>2]=o;vL(g,91438,m)|0;g=c[e>>2]|0;m=(c[g+104>>2]|0)+56|0;g=g+16|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];kw(a,10,c[(c[e>>2]|0)+104>>2]|0);if(k){if(c[a+152>>2]&4|0)rD(a,c[j>>2]|0,c[i+228>>2]|0,c[i+244>>2]|0,c[i+212>>2]|0);sD(a)}}l=n;return}function jz(a){a=a|0;Gy(c[(c[a+16>>2]|0)+12>>2]|0);return}function kz(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0;m=l;l=l+64|0;k=m+40|0;h=m;if(!(a[f>>0]|0)){h=4144;g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}else{g=(g|0)==0?91344:g;i=c[(c[e+16>>2]|0)+12>>2]|0;j=qz(i,f)|0;if(!j){if(cz(e,i+16|0,h,f,15,0)|0)dz(e,f)}else if(cz(e,j+16|0,h,g,d[j+65>>0]|0,0)|0){c[k>>2]=Cn(e)|0;c[k+4>>2]=f;c[k+8>>2]=g;Zl(0,91346,k)|0}g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}l=m;return}function lz(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,i=0,j=0.0,k=0,m=0,n=0.0;k=l;l=l+32|0;m=k+16|0;i=k;f=c[a+4>>2]|0;a=c[a>>2]|0;g=(c[(c[(qo(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];Xv(i,m,g);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[b+12>>2]=c[i+12>>2];if(!f){f=c[(c[a+16>>2]|0)+12>>2]|0;g=f+16|0;a=f+24|0;i=f+32|0;f=f+40|0}else{g=f;a=f+8|0;i=f+16|0;f=f+24|0}e=+h[a>>3];d=+h[f>>3];n=+h[b>>3];if((+h[g>>3]<=n?n<=+h[i>>3]:0)?(j=+h[b+8>>3],e<=j):0)a=j<=d&1;else a=0;l=k;return a|0}function mz(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0.0;u=l;l=l+80|0;r=u+64|0;q=u+32|0;t=u;a:do if(!(a[d+28>>0]|0))e=0;else{i=+h[d>>3];p=b+16|0;m=c[(c[p>>2]|0)+12>>2]|0;k=m+48|0;m=m+56|0;d=0;while(1){if((d|0)>=(c[k>>2]|0))break a;n=(c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&1|0)==0;o=c[(c[m>>2]|0)+(d<<2)>>2]|0;j=+(~~+h[(n?o+16|0:o+24|0)>>3]|0);if(i>=j?(s=+(~~+h[(n?o+32|0:o+40|0)>>3]|0),i<=s):0)break;d=d+1|0}if(!(c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&1)){t=c[p>>2]|0;v=+h[t+16>>3];h[f>>3]=v+j;j=+h[t+24>>3];i=+h[t+80>>3];h[f+8>>3]=j-i*.5;h[f+16>>3]=v+s}else{o=(c[(c[m>>2]|0)+(d<<2)>>2]|0)+16|0;b=(c[p>>2]|0)+16|0;c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];c[q+28>>2]=c[o+28>>2];c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];Yv(t,q,r);c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[f+16>>2]=c[t+16>>2];c[f+20>>2]=c[t+20>>2];c[f+24>>2]=c[t+24>>2];c[f+28>>2]=c[t+28>>2];t=c[p>>2]|0;i=+h[t+80>>3];j=+h[t+24>>3]}h[f+24>>3]=i*.5+j;c[g>>2]=1}while(0);l=u;return e|0}function nz(d,e){d=d|0;e=e|0;var f=0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0;w=l;l=l+144|0;n=w+96|0;p=w+64|0;r=w;s=w+128|0;t=c[d+16>>2]|0;u=t+208|0;f=c[u>>2]|0;if(!f)v=(b[t+260>>1]&1)!=0;else v=1;m=e+16|0;q=c[m>>2]|0;o=c[q+12>>2]|0;j=o+16|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];c[p+16>>2]=c[j+16>>2];c[p+20>>2]=c[j+20>>2];c[p+24>>2]=c[j+24>>2];c[p+28>>2]=c[j+28>>2];x=+h[q+16>>3];h[p>>3]=+h[p>>3]+x;k=+h[q+24>>3];q=p+8|0;h[q>>3]=+h[q>>3]+k;q=p+16|0;h[q>>3]=+h[q>>3]+x;j=p+24|0;h[j>>3]=+h[j>>3]+k;if(v?(c[d+152>>2]&4|0)==0:0)rD(d,f,c[t+228>>2]|0,c[t+244>>2]|0,c[t+212>>2]|0);f=Uy(d,e)|0;Wy(d,e)|0;c[s>>2]=0;if(!(f&1))i=0;else{i=Vy(e)|0;if(!((sv(i,s,n)|0)<<24>>24)){yD(d,i);i=1}else{yD(d,c[s>>2]|0);i=c[s+4>>2]|0;j=yA(e,c[42216]|0,0,0)|0;k=+g[n>>2];if(!i)zD(d,122106,j,k);else zD(d,i,j,k);i=f>>>1&1|2}}j=c[c[(c[m>>2]|0)+8>>2]>>2]|0;if((a[j>>0]|0)==77){m=(uJ(j,91215)|0)==0;f=m?f|4:f}if(!(f&2130706444)){c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];c[n+16>>2]=c[p+16>>2];c[n+20>>2]=c[p+20>>2];c[n+24>>2]=c[p+24>>2];c[n+28>>2]=c[p+28>>2];DD(d,n,i)}else{c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];p=r+32|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];h[r+16>>3]=+h[p>>3];h[r+24>>3]=+h[r+8>>3];h[r+48>>3]=+h[r>>3];h[r+56>>3]=+h[r+40>>3];ty(d,r,4,f,i)}oz(d,e,o);XI(c[s>>2]|0);if(v){if(c[d+152>>2]&4|0)rD(d,c[u>>2]|0,c[t+228>>2]|0,c[t+244>>2]|0,c[t+212>>2]|0);sD(d)}l=w;return}function oz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+144|0;p=u+128|0;o=u+112|0;q=u+16|0;r=u;g=u+96|0;i=u+80|0;s=u+64|0;t=u+48|0;j=e+52|0;f=c[j>>2]|0;if(!f)f=d+16|0;else{n=f+56|0;m=e+16|0;f=e+32|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];pz(g,o,p);f=d+16|0;m=(c[f>>2]|0)+16|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];Yy(i,o,p);c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];kw(b,10,c[j>>2]|0);Wy(b,d)|0}k=(c[f>>2]|0)+16|0;c[r>>2]=c[k>>2];c[r+4>>2]=c[k+4>>2];c[r+8>>2]=c[k+8>>2];c[r+12>>2]=c[k+12>>2];k=e+48|0;m=e+64|0;n=q+16|0;j=e+56|0;e=q+16|0;i=0;while(1){if((i|0)>=(c[k>>2]|0))break;if((i|0)>0){f=(c[j>>2]|0)+(i<<2)|0;g=c[f>>2]|0;if(!(a[m>>0]|0)){g=g+32|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];h[q>>3]=+h[(c[f>>2]|0)+16>>3];f=n;g=0}else{g=g+16|0;c[q>>2]=c[g>>2];c[q+4>>2]=c[g+4>>2];c[q+8>>2]=c[g+8>>2];c[q+12>>2]=c[g+12>>2];h[e>>3]=+h[q>>3];f=(c[f>>2]|0)+32|0;g=1}h[q+(g<<4)+8>>3]=+h[f+8>>3];c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];Yy(s,o,p);c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];c[q+8>>2]=c[s+8>>2];c[q+12>>2]=c[s+12>>2];c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];Yy(t,o,p);c[n>>2]=c[t>>2];c[n+4>>2]=c[t+4>>2];c[n+8>>2]=c[t+8>>2];c[n+12>>2]=c[t+12>>2];FD(b,q,2)}oz(b,d,c[(c[j>>2]|0)+(i<<2)>>2]|0);i=i+1|0}l=u;return}function pz(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=(+h[c+8>>3]+ +h[b+8>>3])*.5;h[a>>3]=(+h[c>>3]+ +h[b>>3])*.5;h[a+8>>3]=d;return}function qz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[b+60>>2]|0;if(!(((e|0)!=0?(a[e>>0]|0)==(a[d>>0]|0):0)?(uJ(e,d)|0)==0:0))f=4;a:do if((f|0)==4){g=b+56|0;f=c[b+48>>2]|0;e=0;while(1){if((e|0)>=(f|0)){b=0;break a}b=qz(c[(c[g>>2]|0)+(e<<2)>>2]|0,d)|0;if(!b)e=e+1|0;else break}}while(0);return b|0}function rz(a,b){a=a|0;b=b|0;var d=0;d=b+8|0;h[d>>3]=+h[d>>3]*1.375;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function sz(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;k=+h[b>>3];f=k*.5;m=+h[b+8>>3];i=m*.5;h[a>>3]=f;e=m*.40909090909090906;h[a+8>>3]=e;h[a+16>>3]=f;g=m*.4592530909090909;h[a+24>>3]=g;j=k*.275892;h[a+32>>3]=j;h[a+40>>3]=i;h[a+48>>3]=0.0;h[a+56>>3]=i;k=k*-.275892;h[a+64>>3]=k;h[a+72>>3]=i;l=-f;h[a+80>>3]=l;h[a+88>>3]=g;d=a+96|0;h[d>>3]=l;h[a+104>>3]=e;b=a+112|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+128|0;h[b>>3]=l;h[a+136>>3]=m*-.40909090909090906;d=a+144|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];h[a+160>>3]=l;g=-g;h[a+168>>3]=g;h[a+176>>3]=k;i=-i;h[a+184>>3]=i;h[a+192>>3]=0.0;h[a+200>>3]=i;h[a+208>>3]=j;h[a+216>>3]=i;h[a+224>>3]=f;h[a+232>>3]=g;d=a+240|0;h[d>>3]=f;h[a+248>>3]=-e;b=a+256|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+288|0;d=a+272|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];return}function tz(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+144|0;u=x+112|0;t=x+96|0;v=x+80|0;s=x+64|0;w=x+32|0;q=x+16|0;r=x;g=x+48|0;do if(a){j=c[a+4>>2]|0;k=c[a>>2]|0;o=(c[(c[(qo(k)|0)+16>>2]|0)+116>>2]&3)*90|0;c[u>>2]=c[b>>2];c[u+4>>2]=c[b+4>>2];c[u+8>>2]=c[b+8>>2];c[u+12>>2]=c[b+12>>2];Xv(g,u,o);c[w>>2]=c[g>>2];c[w+4>>2]=c[g+4>>2];c[w+8>>2]=c[g+8>>2];c[w+12>>2]=c[g+12>>2];if(j|0){d=+h[w>>3];if(!(+h[j>>3]<=d)){a=0;break}if(!(d<=+h[j+16>>3])){a=0;break}d=+h[w+8>>3];if(!(+h[j+8>>3]<=d)){a=0;break}a=d<=+h[j+24>>3];break}if((k|0)==(c[42335]|0)){d=+h[20903];e=+h[20904];i=+h[20905]}else{a=k+16|0;b=c[(c[a>>2]|0)+12>>2]|0;c[42336]=b;c[42337]=c[b+44>>2];c[42338]=c[b+8>>2];if(!(c[b+40>>2]&2048)){n=(c[(c[(qo(k)|0)+16>>2]|0)+116>>2]&1|0)==0;o=c[a>>2]|0;h[(n?167248:167256)>>3]=+h[o+96>>3]+ +h[o+88>>3];h[(n?167256:167248)>>3]=+h[o+80>>3];i=+h[o+32>>3]*72.0;f=+h[o+40>>3]*72.0;f=+(~~(f+(f>=0.0?.5:-.5))|0);i=+(~~(i+(i>=0.0?.5:-.5))|0)}else{XA(u,b);i=+h[u+16>>3]-+h[u>>3];f=+h[u+24>>3]-+h[u+8>>3];o=(c[(c[(qo(k)|0)+16>>2]|0)+116>>2]&1|0)==0;h[(o?167248:167256)>>3]=i;h[(o?167256:167248)>>3]=f}d=+h[20906];if(d==0.0){h[20906]=1.0;d=1.0}e=+h[20907];if(e==0.0){h[20907]=1.0;e=1.0}d=i/d;h[20903]=d;e=f/e;h[20904]=e;i=i*.5;h[20905]=i;h[20908]=f*.5;o=O((c[(c[42336]|0)+4>>2]|0)+-1|0,c[42338]|0)|0;c[42339]=(o|0)>0?o:0;c[42335]=k}f=+h[w>>3]*d;h[w>>3]=f;o=w+8|0;d=+h[o>>3]*e;h[o>>3]=d;if(!(+B(+f)>i)?(e=+B(+d),p=+h[20908],!(e>p)):0){o=c[42338]|0;if((o|0)<3){a=+NJ(f/i,d/p)<1.0;break}b=(c[42340]|0)%(o|0)|0;a=(b+1|0)%(o|0)|0;k=c[42337]|0;m=c[42339]|0;n=k+(m+b<<4)|0;c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];n=k+(m+a<<4)|0;c[r>>2]=c[n>>2];c[r+4>>2]=c[n+4>>2];c[r+8>>2]=c[n+8>>2];c[r+12>>2]=c[n+12>>2];c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[v>>2]=c[41818];c[v+4>>2]=c[41819];c[v+8>>2]=c[41820];c[v+12>>2]=c[41821];c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];c[u>>2]=c[n>>2];c[u+4>>2]=c[n+4>>2];c[u+8>>2]=c[n+8>>2];c[u+12>>2]=c[n+12>>2];if(bz(s,v,t,u)|0){c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];c[v+8>>2]=c[q+8>>2];c[v+12>>2]=c[q+12>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];c[u>>2]=c[41818];c[u+4>>2]=c[41819];c[u+8>>2]=c[41820];c[u+12>>2]=c[41821];n=(bz(s,v,t,u)|0)!=0;if(n?(c[s>>2]=c[w>>2],c[s+4>>2]=c[w+4>>2],c[s+8>>2]=c[w+8>>2],c[s+12>>2]=c[w+12>>2],c[v>>2]=c[r>>2],c[v+4>>2]=c[r+4>>2],c[v+8>>2]=c[r+8>>2],c[v+12>>2]=c[r+12>>2],c[t>>2]=c[41818],c[t+4>>2]=c[41819],c[t+8>>2]=c[41820],c[t+12>>2]=c[41821],c[u>>2]=c[q>>2],c[u+4>>2]=c[q+4>>2],c[u+8>>2]=c[q+8>>2],c[u+12>>2]=c[q+12>>2],(bz(s,v,t,u)|0)!=0):0){a=1;break}else{j=b;b=1}while(1){if((b|0)>=(o|0)){b=31;break}if(n){g=a;a=(a+1|0)%(o|0)|0}else{g=(j+-1+o|0)%(o|0)|0;a=j}q=k+(m+g<<4)|0;r=k+(m+a<<4)|0;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[v>>2]=c[41818];c[v+4>>2]=c[41819];c[v+8>>2]=c[41820];c[v+12>>2]=c[41821];c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];c[u>>2]=c[r>>2];c[u+4>>2]=c[r+4>>2];c[u+8>>2]=c[r+8>>2];c[u+12>>2]=c[r+12>>2];if(!(bz(s,v,t,u)|0)){b=30;break}else{j=g;b=b+1|0}}if((b|0)==30){c[42340]=g;a=0;break}else if((b|0)==31){c[42340]=j;a=1;break}}else a=0}else a=0}else{c[42335]=0;a=0}while(0);l=x;return a&1|0}function uz(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0.0,i=0,j=0,k=0;j=l;l=l+32|0;f=j+16|0;i=j;if(a){a=c[a>>2]|0;k=(c[(c[(qo(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Xv(i,f,k);g=+h[i>>3];e=+h[i+8>>3];if((a|0)==(c[42343]|0))d=+h[20911];else{i=c[(c[a+16>>2]|0)+12>>2]|0;k=(c[i+4>>2]<<1)+-2|0;d=+h[(c[i+44>>2]|0)+((((k|0)>0?k:0)|1)<<4)>>3];h[20911]=d;c[42343]=a}if(+B(+g)>d|+B(+e)>d)a=0;else a=+NJ(g,e)<=d&1}else{c[42343]=0;a=0}l=j;return a|0}function vz(e,f){e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0;t=l;l=l+16|0;j=t;r=c[e+16>>2]|0;s=r+208|0;g=c[s>>2]|0;if((g|0)==0?(b[r+260>>1]&1)==0:0)q=0;else if(!(c[e+152>>2]&4)){rD(e,g,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0);q=1}else q=1;n=f+16|0;k=c[(c[n>>2]|0)+12>>2]|0;o=c[k+44>>2]|0;p=c[k+8>>2]|0;k=c[k+4>>2]|0;if((c[42341]|0)<(p|0)){g=p+2|0;c[42341]=g;i=c[42342]|0;if(!i)g=rw(g<<4)|0;else g=tw(i,g<<4)|0;c[42342]=g}_y(f,j)|0;if(!(c[j>>2]&32))AD(e,21040);else AD(e,21036);g=c[42215]|0;if(g|0)JD(e,+zA(f,g,1.0,0.0));g=d[(c[n>>2]|0)+117>>0]|0;do if(!(g&1)){if(g&2|0){wD(e,BA(f,0,91244)|0);g=BA(f,0,91252)|0;yD(e,g);break}if(g&8|0){wD(e,BA(f,0,91260)|0);g=BA(f,0,91268)|0;yD(e,g);break}if(!(g&4)){g=Zy(f,122106)|0;yD(e,g);Wy(e,f)|0;break}else{wD(e,BA(f,0,91276)|0);g=BA(f,0,91284)|0;yD(e,g);break}}else{wD(e,BA(f,0,91228)|0);g=BA(f,0,91236)|0;yD(e,g)}while(0);if(!k)if(!(a[g>>0]|0))i=1;else{wD(e,g);i=1}else i=k;j=1;f=0;while(1){if((f|0)>=(i|0))break;k=O(f,p)|0;m=c[42342]|0;g=0;while(1){if((g|0)>=(p|0))break;w=g+k|0;u=+h[o+(w<<4)+8>>3];v=c[n>>2]|0;h[m+(g<<4)>>3]=+h[v+16>>3]+ +h[o+(w<<4)>>3];h[m+(g<<4)+8>>3]=+h[v+24>>3]+u;g=g+1|0}BD(e,m,p,j);j=0;f=f+1|0}if(q){if(c[e+152>>2]&4|0)rD(e,c[s>>2]|0,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0);sD(e)}l=t;return}function wz(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0;g=l;l=l+48|0;h=g;e=xz(b,e,f)|0;c[h+36>>2]=c[f+36>>2];cz(b,c[f+24>>2]|0,h,e,d[f+33>>0]|0,0)|0;b=h;e=a+40|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(e|0));l=g;return}function xz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0;z=l;l=l+32|0;y=z;g=z+24|0;k=z+16|0;x=c[(c[(c[(qo(b)|0)+60>>2]|0)+16>>2]|0)+116>>2]&3;f=b+16|0;w=(c[f>>2]|0)+16|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];yz(g,y,x);w=(c[d+16>>2]|0)+16|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];yz(k,y,x);x=a[e+33>>0]|0;y=x&255;a:do switch(x<<24>>24){case 0:case 15:{d=0;break}default:{d=c[e+24>>2]|0;if(!d){x=(c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&1|0)==0;w=c[f>>2]|0;B=+h[w+80>>3]*.5;A=-B;m=+h[w+88>>3];j=-m;n=x?j:A;i=x?m:B;m=x?B:m;j=x?A:j}else{n=+h[d>>3];i=+h[d+16>>3];m=+h[d+24>>3];j=+h[d+8>>3]}x=c[g>>2]|0;v=c[g+4>>2]|0;w=c[k>>2]|0;s=c[k+4>>2]|0;t=~~j;u=~~((i+n)*.5);r=~~i;q=~~((m+j)*.5);p=~~m;o=~~n;g=0;k=0;d=0;e=0;b=0;while(1){if((k|0)==4)break a;if(1<<k&y){switch(k|0){case 0:{e=u;b=t;break}case 1:{e=r;b=q;break}case 2:{e=u;b=p;break}case 3:{e=o;b=q;break}default:{}}e=x+e|0;b=v+b|0;f=e-w|0;C=b-s|0;f=(O(C,C)|0)+(O(f,f)|0)|0;if((d|0)==0|(f|0)<(g|0))d=c[21048+(k<<2)>>2]|0;else f=g}else f=g;g=f;k=k+1|0}}}while(0);l=z;return d|0}function yz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0;switch(d|0){case 0:{f=+h[b>>3];e=+h[b+8>>3];break}case 2:{f=+h[b>>3];e=-+h[b+8>>3];break}case 1:{f=-+h[b+8>>3];e=+h[b>>3];break}case 3:{f=+h[b+8>>3];e=+h[b>>3];break}default:{f=0.0;e=0.0}}c[a>>2]=~~(f+(f>=0.0?.5:-.5));c[a+4>>2]=~~(e+(e>=0.0?.5:-.5));return}function zz(){var a=0,b=0,d=0;a=l;l=l+32|0;b=a+16|0;d=a;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];tz(0,b)|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];uz(0,b)|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];Ry(0,b)|0;l=a;return}function Az(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=l;l=l+192|0;s=z+176|0;x=z+112|0;y=z+48|0;t=z+32|0;u=z+24|0;v=z+16|0;w=z;if(!(e<<24>>24)){k=d+48|0;c[t>>2]=c[k>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];c[t+12>>2]=c[k+12>>2];k=u;m=v;n=x;o=0}else{c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2];k=v;m=u;n=0;o=x}h[u>>3]=0.0;h[v>>3]=1.0;q=t+8|0;f=0.0;g=1.0;j=0;p=+h[t>>3];while(1){r=+h[q>>3];f=(f+g)*.5;KA(w,d,3,f,n,o);c[t>>2]=c[w>>2];c[t+4>>2]=c[w+4>>2];c[t+8>>2]=c[w+8>>2];c[t+12>>2]=c[w+12>>2];c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];a:do if(!((ab[b&63](a,s)|0)<<24>>24)){e=0;while(1){if((e|0)==4){e=k;j=1;break a}j=y+(e<<4)|0;A=x+(e<<4)|0;c[j>>2]=c[A>>2];c[j+4>>2]=c[A+4>>2];c[j+8>>2]=c[A+8>>2];c[j+12>>2]=c[A+12>>2];e=e+1|0}}else e=m;while(0);h[e>>3]=f;i=+h[t>>3];p=p-i;if(!((p>=0.0?p:-p)>.5)?(r=r-+h[q>>3],!((r>=0.0?r:-r)>.5)):0)break;f=+h[u>>3];g=+h[v>>3];p=i}b:do if(!(j<<24>>24)){e=0;while(1){if((e|0)==4)break b;A=d+(e<<4)|0;y=x+(e<<4)|0;c[A>>2]=c[y>>2];c[A+4>>2]=c[y+4>>2];c[A+8>>2]=c[y+8>>2];c[A+12>>2]=c[y+12>>2];e=e+1|0}}else{e=0;while(1){if((e|0)==4)break b;A=d+(e<<4)|0;x=y+(e<<4)|0;c[A>>2]=c[x>>2];c[A+4>>2]=c[x+4>>2];c[A+8>>2]=c[x+8>>2];c[A+12>>2]=c[x+12>>2];e=e+1|0}}while(0);l=z;return}function Bz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0;m=l;l=l+48|0;d=m+16|0;e=m;f=m+32|0;g=a+16|0;i=c[g>>2]|0;j=c[i+8>>2]|0;if(j|0?(k=j+4|0,c[(c[k>>2]|0)+12>>2]|0):0){c[f>>2]=a;c[f+4>>2]=0;n=+h[i+96>>3];h[e>>3]=+h[b>>3]-+h[i+16>>3];h[e+8>>3]=+h[b+8>>3]-+h[i+24>>3];k=c[(c[k>>2]|0)+12>>2]|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];k=ab[k&63](f,d)|0;h[(c[g>>2]|0)+96>>3]=n;Cz(f,a,b,k)}l=m;return}function Cz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0,n=0;n=l;l=l+64|0;m=n;j=b+16|0;g=c[j>>2]|0;k=+h[g+96>>3];i=g+16|0;f=g+24|0;b=0;while(1){if((b|0)==4)break;h[m+(b<<4)>>3]=+h[d+(b<<4)>>3]-+h[i>>3];h[m+(b<<4)+8>>3]=+h[d+(b<<4)+8>>3]-+h[f>>3];b=b+1|0}Az(a,c[(c[(c[g+8>>2]|0)+4>>2]|0)+12>>2]|0,m,e);b=0;while(1){if((b|0)==4)break;e=c[j>>2]|0;h[d+(b<<4)>>3]=+h[e+16>>3]+ +h[m+(b<<4)>>3];h[d+(b<<4)+8>>3]=+h[e+24>>3]+ +h[m+(b<<4)+8>>3];b=b+1|0}h[(c[j>>2]|0)+96>>3]=k;l=n;return}function Dz(b,d){b=b|0;d=d|0;var e=0,f=0;while(1){f=b+16|0;b=c[f>>2]|0;if(!(a[b+112>>0]|0))break;b=c[b+116>>2]|0}b=c[b+8>>2]|0;if(!b){b=qw(40)|0;c[(c[f>>2]|0)+8>>2]=b}e=c[b>>2]|0;if(!e)b=rw(((c[b+4>>2]|0)*48|0)+48|0)|0;else b=tw(e,((c[b+4>>2]|0)*48|0)+48|0)|0;f=c[(c[f>>2]|0)+8>>2]|0;c[f>>2]=b;f=f+4|0;e=c[f>>2]|0;c[f>>2]=e+1;f=b+(e*48|0)|0;c[f>>2]=qw(d<<4)|0;c[b+(e*48|0)+4>>2]=d;b=b+(e*48|0)+8|0;e=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));return f|0}function Ez(b,e,f,g,i){b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0;D=l;l=l+96|0;A=D+16|0;u=D;x=D+92|0;y=D+88|0;v=D+80|0;m=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;z=qo(m)|0;B=Dz(b,g)|0;n=b;while(1){o=c[n+16>>2]|0;if(!(a[o+112>>0]|0))break;n=c[o+116>>2]|0}if((a[i+8>>0]|0)==0?(j=c[m+16>>2]|0,k=c[e+16>>2]|0,(c[j+232>>2]|0)==(c[k+232>>2]|0)):0){p=(c[j+236>>2]|0)>(c[k+236>>2]|0);w=p?m:e;m=p?e:m}else w=e;if((m|0)==(c[((c[n>>2]&3|0)==3?n:n+48|0)+40>>2]|0)){j=o+80|0;k=o+40|0;p=d[o+86>>0]|0;e=d[o+46>>0]|0}else{j=o+40|0;k=o+80|0;p=d[o+46>>0]|0;e=d[o+86>>0]|0}o=c[j>>2]|0;j=c[k>>2]|0;if(((e|0)!=0?(r=m+16|0,q=c[(c[r>>2]|0)+8>>2]|0,(q|0)!=0):0)?(c[(c[q+4>>2]|0)+12>>2]|0)!=0:0){c[v>>2]=m;c[v+4>>2]=j;j=g+-4|0;e=u+8|0;k=0;while(1){if((k|0)>=(j|0))break;n=k+3|0;q=c[r>>2]|0;h[u>>3]=+h[f+(n<<4)>>3]-+h[q+16>>3];h[e>>3]=+h[f+(n<<4)+8>>3]-+h[q+24>>3];q=c[(c[(c[q+8>>2]|0)+4>>2]|0)+12>>2]|0;c[A>>2]=c[u>>2];c[A+4>>2]=c[u+4>>2];c[A+8>>2]=c[u+8>>2];c[A+12>>2]=c[u+12>>2];if(!((ab[q&63](v,A)|0)<<24>>24))break;else k=n}c[x>>2]=k;Cz(v,m,f+(k<<4)|0,1)}else{c[x>>2]=0;k=0}if(((p|0)!=0?(t=w+16|0,s=c[(c[t>>2]|0)+8>>2]|0,(s|0)!=0):0)?(c[(c[s+4>>2]|0)+12>>2]|0)!=0:0){c[v>>2]=w;c[v+4>>2]=o;m=g+-4|0;e=u+8|0;j=m;while(1){if((j|0)<=0)break;g=c[t>>2]|0;h[u>>3]=+h[f+(j<<4)>>3]-+h[g+16>>3];h[e>>3]=+h[f+(j<<4)+8>>3]-+h[g+24>>3];g=c[(c[(c[g+8>>2]|0)+4>>2]|0)+12>>2]|0;c[A>>2]=c[u>>2];c[A+4>>2]=c[u+4>>2];c[A+8>>2]=c[u+8>>2];c[A+12>>2]=c[u+12>>2];if(!((ab[g&63](v,A)|0)<<24>>24))break;j=j+-3|0}c[y>>2]=j;Cz(v,w,f+(j<<4)|0,0)}else{m=g+-4|0;c[y>>2]=m;j=m}while(1){if((k|0)>=(m|0))break;e=k+3|0;E=+h[f+(k<<4)>>3]-+h[f+(e<<4)>>3];F=+h[f+(k<<4)+8>>3]-+h[f+(e<<4)+8>>3];if(F*F+E*E<1.0e-06)k=e;else break}c[x>>2]=k;while(1){if((j|0)<=0)break;v=j+3|0;F=+h[f+(j<<4)>>3]-+h[f+(v<<4)>>3];E=+h[f+(j<<4)+8>>3]-+h[f+(v<<4)+8>>3];if(!(E*E+F*F<1.0e-06))break;j=j+-3|0}c[y>>2]=j;Fz(b,w,f,x,y,B,i);r=c[x>>2]|0;n=c[y>>2]|0;m=n+4|0;n=n+3|0;o=A+16|0;p=A+32|0;q=A+48|0;k=z+16|0;j=r;while(1){if((j|0)>=(m|0))break;z=(c[B>>2]|0)+(j-r<<4)|0;e=f+(j<<4)|0;c[z>>2]=c[e>>2];c[z+4>>2]=c[e+4>>2];c[z+8>>2]=c[e+8>>2];c[z+12>>2]=c[e+12>>2];c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];e=j+1|0;if((j|0)>=(n|0)){C=38;break}y=(c[B>>2]|0)+(e-r<<4)|0;z=f+(e<<4)|0;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];c[o>>2]=c[z>>2];c[o+4>>2]=c[z+4>>2];c[o+8>>2]=c[z+8>>2];c[o+12>>2]=c[z+12>>2];z=j+2|0;y=(c[B>>2]|0)+(z-r<<4)|0;z=f+(z<<4)|0;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];c[p>>2]=c[z>>2];c[p+4>>2]=c[z+4>>2];c[p+8>>2]=c[z+8>>2];c[p+12>>2]=c[z+12>>2];z=j+3|0;y=f+(z<<4)|0;c[q>>2]=c[y>>2];c[q+4>>2]=c[y+4>>2];c[q+8>>2]=c[y+8>>2];c[q+12>>2]=c[y+12>>2];$t((c[k>>2]|0)+16|0,A);j=z}c[B+4>>2]=m-r;l=D;return}function Fz(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;m=p+4|0;n=p;o=b;while(1){j=c[(c[o+16>>2]|0)+116>>2]|0;if(!j)break;else o=j}if(!(a[i+8>>0]|0))j=($a[c[i>>2]&31](o)|0)&255;else j=0;vt(o,m,n);k=i+4|0;if(($a[c[k>>2]&31](d)|0)<<24>>24)c[n>>2]=0;if(($a[c[k>>2]&31](c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)<<24>>24)c[m>>2]=0;if(j|0){d=c[m>>2]|0;c[m>>2]=c[n>>2];c[n>>2]=d}if(!(a[i+9>>0]|0)){j=c[m>>2]|0;if(j|0)c[f>>2]=Kt(o,e,c[f>>2]|0,c[g>>2]|0,h,j)|0;j=c[n>>2]|0;if(j|0)c[g>>2]=It(o,e,c[f>>2]|0,c[g>>2]|0,h,j)|0}else{k=c[n>>2]|0;j=c[m>>2]|0;if(j|k|0)Lt(o,e,c[f>>2]|0,c[g>>2]|0,h,j,k)}l=p;return}function Gz(a,b){a=a|0;b=b|0;var d=0,e=0;if(+h[b>>3]<+h[b+16>>3]?+h[b+8>>3]<+h[b+24>>3]:0){d=c[a+84>>2]|0;e=a+80|0;a=c[e>>2]|0;c[e>>2]=a+1;a=d+(a<<5)|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2]}return}function Hz(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;x=l;l=l+112|0;u=x+72|0;o=x+56|0;n=x+16|0;q=x;j=c[d>>2]&3;p=d+48|0;w=c[((j|0)==3?d:p)+40>>2]|0;t=d+16|0;r=c[t>>2]|0;i=r+16|0;if(a[r+47>>0]|0){wz(n,w,c[((j|0)==2?d:d+-48|0)+40>>2]|0,i);j=n;n=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(n|0))}r=w+16|0;j=c[r>>2]|0;i=c[j+8>>2]|0;if(!i)n=0;else n=c[(c[i+4>>2]|0)+16>>2]|0;i=j+16|0;j=(c[t>>2]|0)+16|0;c[o>>2]=c[i>>2];c[o+4>>2]=c[i+4>>2];c[o+8>>2]=c[i+8>>2];c[o+12>>2]=c[i+12>>2];c[u>>2]=c[j>>2];c[u+4>>2]=c[j+4>>2];c[u+8>>2]=c[j+8>>2];c[u+12>>2]=c[j+12>>2];Iz(q,o,u);c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];if(!(g<<24>>24)){i=c[t>>2]|0;if(!(a[i+45>>0]|0))i=0;else{k=+h[i+32>>3];v=9}}else{k=+Jz(c[((c[d>>2]&3|0)==3?d:p)+40>>2]|0);v=9}if((v|0)==9){h[b+16>>3]=k;i=1}a[b+29>>0]=i;c[b+80>>2]=0;c[b+88>>2]=d;q=f+32|0;c[q>>2]=c[b>>2];c[q+4>>2]=c[b+4>>2];c[q+8>>2]=c[b+8>>2];c[q+12>>2]=c[b+12>>2];switch(e|0){case 1:{j=c[r>>2]|0;if((a[j+156>>0]|0)==0?(q=a[(c[t>>2]|0)+49>>0]|0,s=q&255,q<<24>>24!=0):0){c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];c[u+12>>2]=c[f+12>>2];c[u+16>>2]=c[f+16>>2];c[u+20>>2]=c[f+20>>2];c[u+24>>2]=c[f+24>>2];c[u+28>>2]=c[f+28>>2];do if(!(s&4)){if(s&1|0){c[f+48>>2]=1;i=u+24|0;h[i>>3]=+h[(+h[i>>3]>+h[b+8>>3]?u+16|0:b)+8>>3];i=f+56|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=1;break}i=f+48|0;if(!(s&8)){c[i>>2]=2;h[u>>3]=+h[b>>3];h[u+8>>3]=+h[j+24>>3]-+h[j+80>>3]*.5;h[u+24>>3]=+h[b+8>>3];i=f+56|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=1;break}else{c[i>>2]=8;h[u+16>>3]=+h[b>>3];h[u+8>>3]=+h[j+24>>3]-+h[j+80>>3]*.5;h[u+24>>3]=+h[b+8>>3];i=f+56|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=1;break}}else{c[f+48>>2]=4;k=+h[u>>3];if(+h[b>>3]<+h[j+16>>3]){z=k+-1.0;y=+h[b+8>>3];b=u+16|0;k=+h[b>>3];m=+h[j+80>>3]*.5+ +h[j+24>>3];m=m+ +((c[(c[(qo(w)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[r>>2]|0;h[b>>3]=+h[i+16>>3]-+h[i+88>>3];h[u+24>>3]=y;h[u+8>>3]=+h[i+24>>3]-+h[i+80>>3]*.5;h[u>>3]=z;h[f+56>>3]=z;h[f+64>>3]=y;h[f+72>>3]=k;h[f+80>>3]=m;i=f+88|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=2;break}else{m=+h[b+8>>3];i=u+16|0;y=+h[i>>3]+1.0;z=+h[j+80>>3]*.5+ +h[j+24>>3];z=z+ +((c[(c[(qo(w)|0)+16>>2]|0)+252>>2]|0)/2|0|0);b=c[r>>2]|0;h[u>>3]=+h[b+96>>3]+ +h[b+16>>3];h[u+24>>3]=m;h[u+8>>3]=+h[b+24>>3]-+h[b+80>>3]*.5;h[i>>3]=y;h[f+56>>3]=k;h[f+64>>3]=m;h[f+72>>3]=y;h[f+80>>3]=z;i=f+88|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=2;break}}while(0);c[f+52>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((w|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)?i+16|0:i+56|0)+30>>0]=0}else{j=1;v=47}break}case 2:{s=a[(c[t>>2]|0)+49>>0]|0;j=s&255;if(!(s<<24>>24))v=46;else{c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];c[u+12>>2]=c[f+12>>2];c[u+16>>2]=c[f+16>>2];c[u+20>>2]=c[f+20>>2];c[u+24>>2]=c[f+24>>2];c[u+28>>2]=c[f+28>>2];do if(!(j&4)){if(j&1|0)if((c[f+48>>2]|0)==4){i=c[r>>2]|0;z=+h[i+24>>3]-+h[i+80>>3]*.5;i=u+16|0;y=+h[i>>3]+1.0;k=+h[b>>3];m=z-+((c[(c[(qo(w)|0)+16>>2]|0)+252>>2]|0)/2|0|0);b=c[r>>2]|0;h[u>>3]=+h[b+96>>3]+ +h[b+16>>3];h[u+8>>3]=z;h[u+24>>3]=+h[b+80>>3]*.5+ +h[b+24>>3];h[i>>3]=y;h[f+56>>3]=k;h[f+64>>3]=m;h[f+72>>3]=y;h[f+80>>3]=z;i=f+88|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=2;break}else{i=u+24|0;h[i>>3]=+h[(+h[i>>3]>+h[b+8>>3]?u+16|0:b)+8>>3];i=f+56|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=1;break}k=+h[b>>3];if(!(j&8)){h[u>>3]=k;e=c[r>>2]|0;k=+h[e+24>>3];m=+h[e+80>>3]*.5;if((c[f+48>>2]|0)==4){h[u+24>>3]=m+k;k=+h[b+8>>3];i=u}else{h[u+8>>3]=k-m;k=+h[b+8>>3]+1.0;i=u+16|0}h[i+8>>3]=k;i=f+56|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=1;break}else{i=u+16|0;h[i>>3]=k+1.0;e=c[r>>2]|0;k=+h[e+24>>3];m=+h[e+80>>3]*.5;if((c[f+48>>2]|0)==4){h[u+24>>3]=m+k;k=+h[b+8>>3]+-1.0;i=u}else{h[u+8>>3]=k-m;k=+h[b+8>>3]+1.0}h[i+8>>3]=k;i=f+56|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=1;break}}else{i=u+8|0;h[i>>3]=+h[(+h[i>>3]<+h[b+8>>3]?u:b)+8>>3];i=f+56|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];c[i+12>>2]=c[u+12>>2];c[i+16>>2]=c[u+16>>2];c[i+20>>2]=c[u+20>>2];c[i+24>>2]=c[u+24>>2];c[i+28>>2]=c[u+28>>2];i=1}while(0);c[f+52>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((w|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)?i+16|0:i+56|0)+30>>0]=0;c[f+48>>2]=j}break}default:v=46}if((v|0)==46){j=c[f+48>>2]|0;v=47}a:do if((v|0)==47){if(n){d=f+56|0;i=f+52|0;j=db[n&3](w,(c[t>>2]|0)+16|0,j,d,i)|0;if(j){c[f+48>>2]=j;break}}else{i=f+52|0;d=f+56|0};c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];c[d+24>>2]=c[f+24>>2];c[d+28>>2]=c[f+28>>2];c[i>>2]=1;switch(e|0){case 8:{ma(123205,91502,569,91512);break}case 2:{h[((c[f+48>>2]|0)==4?f+56|0:f+72|0)+8>>3]=+h[b+8>>3];break a}case 1:{h[f+80>>3]=+h[b+8>>3];c[f+48>>2]=1;break a}default:break a}}while(0);l=x;return}function Iz(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[c+8>>3]+ +h[b+8>>3];h[a>>3]=+h[c>>3]+ +h[b>>3];h[a+8>>3]=d;return}function Jz(a){a=a|0;var b=0.0,d=0,e=0,f=0.0,g=0,i=0,j=0,k=0.0,l=0.0;i=c[a+16>>2]|0;j=c[i+172>>2]|0;f=0.0;g=0;while(1){a=c[j+(g<<2)>>2]|0;if(!a)break;f=+h[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+16>>3]+f;g=g+1|0}e=c[i+180>>2]|0;b=0.0;a=0;while(1){d=c[e+(a<<2)>>2]|0;if(!d)break;b=+h[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+16>>3]+b;a=a+1|0}k=+h[i+16>>3];l=+h[i+24>>3];j=c[j>>2]|0;f=+K(+(l-+h[(c[(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+24>>3]),+(k-f/+(g|0)));j=c[e>>2]|0;return +((+K(+(+h[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+24>>3]-l),+(b/+(a|0)-k))+f)*.5)}function Kz(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0;z=l;l=l+112|0;w=z+72|0;p=z+56|0;n=z+16|0;t=z;j=c[d>>2]&3;r=d+-48|0;y=c[((j|0)==2?d:r)+40>>2]|0;u=d+16|0;s=c[u>>2]|0;i=s+56|0;if(a[s+87>>0]|0){wz(n,y,c[((j|0)==3?d:d+48|0)+40>>2]|0,i);j=n;n=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(n|0))}s=y+16|0;j=c[s>>2]|0;i=c[j+8>>2]|0;if(!i)o=0;else o=c[(c[i+4>>2]|0)+16>>2]|0;n=b+40|0;i=j+16|0;j=(c[u>>2]|0)+56|0;c[p>>2]=c[i>>2];c[p+4>>2]=c[i+4>>2];c[p+8>>2]=c[i+8>>2];c[p+12>>2]=c[i+12>>2];c[w>>2]=c[j>>2];c[w+4>>2]=c[j+4>>2];c[w+8>>2]=c[j+8>>2];c[w+12>>2]=c[j+12>>2];Iz(t,p,w);c[n>>2]=c[t>>2];c[n+4>>2]=c[t+4>>2];c[n+8>>2]=c[t+8>>2];c[n+12>>2]=c[t+12>>2];if(!(g<<24>>24)){i=c[u>>2]|0;if(!(a[i+85>>0]|0))q=0;else{h[b+56>>3]=+h[i+72>>3];q=1}}else{m=+Jz(c[((c[d>>2]&3|0)==2?d:r)+40>>2]|0)+3.141592653589793;h[b+56>>3]=m;if(m<6.283185307179586)q=1;else ma(91522,91502,606,91546)}a[b+69>>0]=q;t=f+32|0;c[t>>2]=c[n>>2];c[t+4>>2]=c[n+4>>2];c[t+8>>2]=c[n+8>>2];c[t+12>>2]=c[n+12>>2];switch(e|0){case 1:{j=c[s>>2]|0;if((a[j+156>>0]|0)==0?(t=a[(c[u>>2]|0)+89>>0]|0,v=t&255,t<<24>>24!=0):0){c[w>>2]=c[f>>2];c[w+4>>2]=c[f+4>>2];c[w+8>>2]=c[f+8>>2];c[w+12>>2]=c[f+12>>2];c[w+16>>2]=c[f+16>>2];c[w+20>>2]=c[f+20>>2];c[w+24>>2]=c[f+24>>2];c[w+28>>2]=c[f+28>>2];do if(!(v&4))if(!(v&1)){i=f+48|0;if(!(v&8)){c[i>>2]=2;h[w>>3]=+h[n>>3];h[w+24>>3]=+h[j+80>>3]*.5+ +h[j+24>>3];h[w+8>>3]=+h[b+48>>3];i=f+56|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=1;break}else{c[i>>2]=8;h[w+16>>3]=+h[n>>3];h[w+24>>3]=+h[j+80>>3]*.5+ +h[j+24>>3];h[w+8>>3]=+h[b+48>>3];i=f+56|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=1;break}}else{c[f+48>>2]=1;k=+h[w>>3];if(+h[n>>3]<+h[j+16>>3]){B=k+-1.0;m=+h[b+48>>3];b=w+16|0;k=+h[b>>3];A=+h[j+80>>3]*-.5+ +h[j+24>>3];A=A-+((c[(c[(qo(y)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[s>>2]|0;h[b>>3]=+h[i+16>>3]-+h[i+88>>3];h[w+8>>3]=m;h[w+24>>3]=+h[i+80>>3]*.5+ +h[i+24>>3];h[w>>3]=B;h[f+56>>3]=B;h[f+64>>3]=A;h[f+72>>3]=k;h[f+80>>3]=m;i=f+88|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=2;break}else{B=+h[b+48>>3];i=w+16|0;A=+h[i>>3]+1.0;m=+h[j+80>>3]*-.5+ +h[j+24>>3];m=m-+((c[(c[(qo(y)|0)+16>>2]|0)+252>>2]|0)/2|0|0);b=c[s>>2]|0;h[w>>3]=+h[b+96>>3]+ +h[b+16>>3];h[w+8>>3]=B;h[w+24>>3]=+h[b+80>>3]*.5+ +h[b+24>>3];h[i>>3]=A;h[f+56>>3]=k;h[f+64>>3]=m;h[f+72>>3]=A;h[f+80>>3]=B;i=f+88|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=2;break}}else{c[f+48>>2]=4;i=w+8|0;h[i>>3]=+h[(+h[i>>3]<+h[b+48>>3]?w:n)+8>>3];i=f+56|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=1}while(0);c[f+52>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((y|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)?i+56|0:i+16|0)+30>>0]=0;c[f+48>>2]=v}else{j=4;x=47}break}case 2:{v=a[(c[u>>2]|0)+89>>0]|0;j=v&255;if(!(v<<24>>24))x=46;else{c[w>>2]=c[f>>2];c[w+4>>2]=c[f+4>>2];c[w+8>>2]=c[f+8>>2];c[w+12>>2]=c[f+12>>2];c[w+16>>2]=c[f+16>>2];c[w+20>>2]=c[f+20>>2];c[w+24>>2]=c[f+24>>2];c[w+28>>2]=c[f+28>>2];do if(!(j&4)){if(j&1|0)if((c[f+48>>2]|0)==4){k=+h[w>>3]+-1.0;i=c[s>>2]|0;B=+h[i+24>>3]-+h[i+80>>3]*.5;A=+h[n>>3];m=B-+((c[(c[(qo(y)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[s>>2]|0;h[w+16>>3]=+h[i+16>>3]+-2.0-+h[i+88>>3];h[w+8>>3]=B;h[w+24>>3]=+h[i+80>>3]*.5+ +h[i+24>>3];h[w>>3]=k;h[f+56>>3]=k;h[f+64>>3]=m;h[f+72>>3]=A;h[f+80>>3]=B;i=f+88|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=2;break}else{i=w+24|0;h[i>>3]=+h[(+h[i>>3]>+h[b+8>>3]?w+16|0:b)+8>>3];i=f+56|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=1;break}k=+h[n>>3];if(!(j&8)){h[w>>3]=k+-1.0;e=c[s>>2]|0;k=+h[e+24>>3];m=+h[e+80>>3]*.5;if((c[f+48>>2]|0)==4){h[w+24>>3]=m+k;k=+h[b+48>>3]+-1.0;i=w}else{h[w+8>>3]=k-m;k=+h[b+48>>3];i=w+16|0}h[i+8>>3]=k;i=f+56|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=1;break}else{i=w+16|0;h[i>>3]=k+1.0;e=c[s>>2]|0;k=+h[e+24>>3];m=+h[e+80>>3]*.5;if((c[f+48>>2]|0)==4){h[w+24>>3]=m+k;k=+h[b+48>>3]+-1.0;i=w}else{h[w+8>>3]=k-m;k=+h[b+48>>3]+1.0}h[i+8>>3]=k;i=f+56|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=1;break}}else{i=w+8|0;h[i>>3]=+h[(+h[i>>3]<+h[b+48>>3]?w:n)+8>>3];i=f+56|0;c[i>>2]=c[w>>2];c[i+4>>2]=c[w+4>>2];c[i+8>>2]=c[w+8>>2];c[i+12>>2]=c[w+12>>2];c[i+16>>2]=c[w+16>>2];c[i+20>>2]=c[w+20>>2];c[i+24>>2]=c[w+24>>2];c[i+28>>2]=c[w+28>>2];i=1}while(0);c[f+52>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((y|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)?i+56|0:i+16|0)+30>>0]=0;c[f+48>>2]=j}break}default:x=46}if((x|0)==46){j=c[f+48>>2]|0;x=47}a:do if((x|0)==47){if(o){d=f+56|0;i=f+52|0;j=db[o&3](y,(c[u>>2]|0)+56|0,j,d,i)|0;if(j){c[f+48>>2]=j;break}}else{i=f+52|0;d=f+56|0};c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];c[d+24>>2]=c[f+24>>2];c[d+28>>2]=c[f+28>>2];c[i>>2]=1;switch(e|0){case 8:{ma(123205,91502,765,91546);break}case 2:{h[((c[f+48>>2]|0)==4?f+56|0:f+72|0)+8>>3]=+h[b+48>>3];break a}case 1:{h[f+64>>3]=+h[b+48>>3];c[f+48>>2]=4;break a}default:break a}}while(0);l=z;return}function Lz(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;g=c[b+16>>2]|0;i=c[g+96>>2]|0;if((a[g+44>>0]|0)==0?(a[g+84>>0]|0)==0:0)j=6;else{d=a[g+49>>0]|0;e=d&255;if(((e&8|0)==0?(f=a[g+89>>0]|0,(f&8)==0):0)?((e&5|0)==0?1:d<<24>>24!=f<<24>>24):0)j=6;else b=0}if((j|0)==6)if(!i)b=18;else{b=(c[(c[(qo(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)!=0;b=~~(+h[(b?i+32|0:i+24|0)>>3]+18.0)}return b|0}function Mz(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=+g;h=+h;i=i|0;var j=0,k=0,l=0,m=0;b=c[(c[d+(e<<2)>>2]|0)+16>>2]|0;if((a[b+44>>0]|0)==0?(a[b+84>>0]|0)==0:0)l=6;else l=3;do if((l|0)==3){j=a[b+49>>0]|0;k=j&255;if(!(k&8)){m=a[b+89>>0]|0;if((m&8)==0?((k&5|0)==0?1:j<<24>>24!=m<<24>>24):0){l=6;break}if(!(a[b+89>>0]&8)){if(k&4|0){Oz(d,e,f,g,h,i);break}if(!(k&1))ma(123205,91502,1231,91554);else{Qz(d,e,f,g,h,i);break}}}if((j&2)==0?(a[b+89>>0]&2)==0:0){Pz(d,e,f,g,h,i);break}Oz(d,e,f,g,h,i)}while(0);if((l|0)==6)Nz(d,e,f,g,h,i);return}function Nz(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0;P=l;l=l+16080|0;L=P+80|0;M=P+64|0;N=P+48|0;O=P+32|0;J=P+16|0;K=P;B=c[b+(e<<2)>>2]|0;n=i*.5/+(f|0);n=n>2.0?n:2.0;D=(c[((c[B>>2]&3|0)==3?B:B+48|0)+40>>2]|0)+16|0;A=c[D>>2]|0;C=+h[A+16>>3];H=+h[A+24>>3];B=c[B+16>>2]|0;m=+h[B+16>>3];E=m+C;F=+h[B+24>>3]+H;i=+h[B+56>>3];G=i+C;H=+h[B+64>>3]+H;k=!(F>=H)?-1:1;p=+h[A+96>>3];switch(Rz(d[B+49>>0]|0,d[B+89>>0]|0)|0){case 65:case 32:{if(F==H)k=0-k|0;break}default:{}}Q=(p-m)*3.0;m=(p-i)*3.0;v=n*+(k|0);u=L+8|0;w=L+16|0;x=L+32|0;y=L+48|0;z=(H+F)*.5;A=L+64|0;B=L+80|0;s=L+96|0;t=L+104|0;r=0;o=0.0;i=p;n=p<Q?p:Q;m=p<m?p:m;while(1){if((r|0)>=(f|0))break;q=e+1|0;e=c[b+(e<<2)>>2]|0;p=i+g;n=n+g;m=m+g;o=o+v;h[L>>3]=E;h[u>>3]=F;Q=o+F;Sz(M,n*.3333333333333333+E,Q);c[w>>2]=c[M>>2];c[w+4>>2]=c[M+4>>2];c[w+8>>2]=c[M+8>>2];c[w+12>>2]=c[M+12>>2];R=p+C;Sz(N,R,Q);c[x>>2]=c[N>>2];c[x+4>>2]=c[N+4>>2];c[x+8>>2]=c[N+8>>2];c[x+12>>2]=c[N+12>>2];Sz(O,R,z);c[y>>2]=c[O>>2];c[y+4>>2]=c[O+4>>2];c[y+8>>2]=c[O+8>>2];c[y+12>>2]=c[O+12>>2];Q=H-o;Sz(J,R,Q);c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];Sz(K,m*.3333333333333333+G,Q);c[B>>2]=c[K>>2];c[B+4>>2]=c[K+4>>2];c[B+8>>2]=c[K+8>>2];c[B+12>>2]=c[K+12>>2];h[s>>3]=G;h[t>>3]=H;k=e+16|0;if((c[(c[k>>2]|0)+96>>2]|0)!=0?(S=(c[(c[(qo(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,k=c[(c[k>>2]|0)+96>>2]|0,I=+h[(S?k+24|0:k+32|0)>>3],S=c[D>>2]|0,h[k+56>>3]=I*.5+p+ +h[S+16>>3],h[k+64>>3]=+h[S+24>>3],a[k+81>>0]=1,I>g):0)i=I+i;else i=p;Ez(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,L,7,j);e=q;r=r+1|0}l=P;return}function Oz(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0.0,E=0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0.0,S=0;Q=l;l=l+16080|0;M=Q+80|0;N=Q+64|0;O=Q+48|0;P=Q+32|0;K=Q+16|0;L=Q;C=c[b+(e<<2)>>2]|0;q=g*.5/+(f|0);q=q>2.0?q:2.0;E=(c[((c[C>>2]&3|0)==3?C:C+48|0)+40>>2]|0)+16|0;m=c[E>>2]|0;H=+h[m+16>>3];D=+h[m+24>>3];C=c[C+16>>2]|0;k=+h[C+16>>3];p=+h[C+24>>3];F=k+H;G=p+D;g=+h[C+56>>3];o=+h[C+64>>3];H=g+H;I=o+D;n=!(F>=H)?-1.0:1.0;s=+h[m+80>>3]*.5;switch(Rz(d[C+49>>0]|0,d[C+89>>0]|0)|0){case 15:{k=(q-g+ +h[m+96>>3])*n;break}case 38:{k=(g+q+ +h[m+88>>3])*n;break}case 41:{k=(q-k+ +h[m+96>>3])*n;break}case 48:{k=(q-k+ +h[m+96>>3])*n;break}case 58:case 57:case 51:case 47:case 37:case 14:{k=n*.3333333333333333*(k-g+ +h[m+88>>3]+ +h[m+96>>3]);break}case 73:{k=(k+q+ +h[m+88>>3])*n;break}case 83:{k=(+h[m+88>>3]+k)*n;break}case 84:{k=((k-g+ +h[m+88>>3]+ +h[m+96>>3])*.5+q)*n;break}case 85:case 75:case 74:{k=((k-g+ +h[m+88>>3]+ +h[m+96>>3])*.5+q*2.0)*n;break}default:k=0.0}p=(s-p)*3.0;o=(s-o)*3.0;q=n*q;w=M+8|0;x=M+16|0;y=M+32|0;z=M+48|0;A=(H+F)*.5;B=M+64|0;C=M+80|0;u=M+96|0;v=M+104|0;t=0;g=s;p=s<p?s:p;n=s<o?s:o;while(1){if((t|0)>=(f|0))break;r=e+1|0;e=c[b+(e<<2)>>2]|0;o=g+i;p=p+i;n=n+i;k=k+q;h[M>>3]=F;h[w>>3]=G;s=k+F;Sz(N,s,p*.3333333333333333+G);c[x>>2]=c[N>>2];c[x+4>>2]=c[N+4>>2];c[x+8>>2]=c[N+8>>2];c[x+12>>2]=c[N+12>>2];R=o+D;Sz(O,s,R);c[y>>2]=c[O>>2];c[y+4>>2]=c[O+4>>2];c[y+8>>2]=c[O+8>>2];c[y+12>>2]=c[O+12>>2];Sz(P,A,R);c[z>>2]=c[P>>2];c[z+4>>2]=c[P+4>>2];c[z+8>>2]=c[P+8>>2];c[z+12>>2]=c[P+12>>2];s=H-k;Sz(K,s,R);c[B>>2]=c[K>>2];c[B+4>>2]=c[K+4>>2];c[B+8>>2]=c[K+8>>2];c[B+12>>2]=c[K+12>>2];Sz(L,s,n*.3333333333333333+I);c[C>>2]=c[L>>2];c[C+4>>2]=c[L+4>>2];c[C+8>>2]=c[L+8>>2];c[C+12>>2]=c[L+12>>2];h[u>>3]=H;h[v>>3]=I;m=e+16|0;if((c[(c[m>>2]|0)+96>>2]|0)!=0?(S=(c[(c[(qo(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,m=c[(c[m>>2]|0)+96>>2]|0,J=+h[(S?m+32|0:m+24|0)>>3],S=c[E>>2]|0,h[m+64>>3]=J*.5+o+ +h[S+24>>3],h[m+56>>3]=+h[S+16>>3],a[m+81>>0]=1,J>i):0)g=J+g;else g=o;Ez(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,M,7,j);e=r;t=t+1|0}l=Q;return}function Pz(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0;P=l;l=l+16080|0;L=P+80|0;M=P+64|0;N=P+48|0;O=P+32|0;J=P+16|0;K=P;B=c[b+(e<<2)>>2]|0;n=i*.5/+(f|0);n=n>2.0?n:2.0;D=(c[((c[B>>2]&3|0)==3?B:B+48|0)+40>>2]|0)+16|0;A=c[D>>2]|0;C=+h[A+16>>3];H=+h[A+24>>3];B=c[B+16>>2]|0;m=+h[B+16>>3];E=m+C;F=+h[B+24>>3]+H;i=+h[B+56>>3];G=i+C;H=+h[B+64>>3]+H;k=!(F>=H)?-1:1;p=+h[A+88>>3];switch(Rz(d[B+49>>0]|0,d[B+89>>0]|0)|0){case 67:case 12:{if(F==H)k=0-k|0;break}default:{}}Q=(m+p)*3.0;m=(i+p)*3.0;v=n*+(k|0);u=L+8|0;w=L+16|0;x=L+32|0;y=L+48|0;z=(H+F)*.5;A=L+64|0;B=L+80|0;s=L+96|0;t=L+104|0;r=0;o=0.0;i=p;n=p<Q?p:Q;m=p<m?p:m;while(1){if((r|0)>=(f|0))break;q=e+1|0;e=c[b+(e<<2)>>2]|0;p=i+g;n=n+g;m=m+g;o=o+v;h[L>>3]=E;h[u>>3]=F;Q=o+F;Sz(M,E-n*.3333333333333333,Q);c[w>>2]=c[M>>2];c[w+4>>2]=c[M+4>>2];c[w+8>>2]=c[M+8>>2];c[w+12>>2]=c[M+12>>2];R=C-p;Sz(N,R,Q);c[x>>2]=c[N>>2];c[x+4>>2]=c[N+4>>2];c[x+8>>2]=c[N+8>>2];c[x+12>>2]=c[N+12>>2];Sz(O,R,z);c[y>>2]=c[O>>2];c[y+4>>2]=c[O+4>>2];c[y+8>>2]=c[O+8>>2];c[y+12>>2]=c[O+12>>2];Q=H-o;Sz(J,R,Q);c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];Sz(K,G-m*.3333333333333333,Q);c[B>>2]=c[K>>2];c[B+4>>2]=c[K+4>>2];c[B+8>>2]=c[K+8>>2];c[B+12>>2]=c[K+12>>2];h[s>>3]=G;h[t>>3]=H;k=e+16|0;if((c[(c[k>>2]|0)+96>>2]|0)!=0?(S=(c[(c[(qo(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,k=c[(c[k>>2]|0)+96>>2]|0,I=+h[(S?k+24|0:k+32|0)>>3],S=c[D>>2]|0,h[k+56>>3]=I*-.5-p+ +h[S+16>>3],h[k+64>>3]=+h[S+24>>3],a[k+81>>0]=1,I>g):0)i=I+i;else i=p;Ez(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,L,7,j);e=q;r=r+1|0}l=P;return}function Qz(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0;P=l;l=l+16080|0;L=P+80|0;M=P+64|0;N=P+48|0;O=P+32|0;J=P+16|0;K=P;C=c[b+(e<<2)>>2]|0;B=g*.5/+(f|0);w=(c[((c[C>>2]&3|0)==3?C:C+48|0)+40>>2]|0)+16|0;D=c[w>>2]|0;z=+h[D+16>>3];v=+h[D+24>>3];C=c[C+16>>2]|0;m=+h[C+24>>3];x=+h[C+16>>3]+z;y=m+v;n=+h[C+64>>3];z=+h[C+56>>3]+z;A=n+v;u=!(x>=z)?-1:1;o=+h[D+80>>3]*.5;C=(Rz(d[C+49>>0]|0,d[C+89>>0]|0)|0)==67;m=(m+o)*3.0;n=(n+o)*3.0;B=(B>2.0?B:2.0)*+((C?0-u|0:u)|0);u=L+8|0;C=L+16|0;D=L+32|0;E=L+48|0;F=(z+x)*.5;G=L+64|0;H=L+80|0;s=L+96|0;t=L+104|0;g=o;k=0.0;m=o<m?o:m;n=o<n?o:n;q=0;while(1){if((q|0)>=(f|0))break;r=e+1|0;p=c[b+(e<<2)>>2]|0;o=g+i;m=m+i;n=n+i;k=k+B;h[L>>3]=x;h[u>>3]=y;Q=k+x;Sz(M,Q,y-m*.3333333333333333);c[C>>2]=c[M>>2];c[C+4>>2]=c[M+4>>2];c[C+8>>2]=c[M+8>>2];c[C+12>>2]=c[M+12>>2];R=v-o;Sz(N,Q,R);c[D>>2]=c[N>>2];c[D+4>>2]=c[N+4>>2];c[D+8>>2]=c[N+8>>2];c[D+12>>2]=c[N+12>>2];Sz(O,F,R);c[E>>2]=c[O>>2];c[E+4>>2]=c[O+4>>2];c[E+8>>2]=c[O+8>>2];c[E+12>>2]=c[O+12>>2];Q=z-k;Sz(J,Q,R);c[G>>2]=c[J>>2];c[G+4>>2]=c[J+4>>2];c[G+8>>2]=c[J+8>>2];c[G+12>>2]=c[J+12>>2];Sz(K,Q,A-n*.3333333333333333);c[H>>2]=c[K>>2];c[H+4>>2]=c[K+4>>2];c[H+8>>2]=c[K+8>>2];c[H+12>>2]=c[K+12>>2];h[s>>3]=z;h[t>>3]=A;e=p+16|0;if((c[(c[e>>2]|0)+96>>2]|0)!=0?(S=(c[(c[(qo(c[((c[p>>2]&3|0)==3?p:p+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,e=c[(c[e>>2]|0)+96>>2]|0,I=+h[(S?e+32|0:e+24|0)>>3],S=c[w>>2]|0,h[e+64>>3]=I*-.5-o+ +h[S+24>>3],h[e+56>>3]=+h[S+16>>3],a[e+81>>0]=1,I>i):0)g=I+g;else g=o;Ez(p,c[((c[p>>2]&3|0)==2?p:p+-48|0)+40>>2]|0,L,7,j);e=r;q=q+1|0}l=P;return}function Rz(a,b){a=a|0;b=b|0;var d=0;d=0;while(1){if((d|0)>=8){b=-1;break}if((c[21064+(d<<2)>>2]|0)==(b|0)){b=d;break}d=d+1|0}d=0;while(1){if((d|0)>=8){d=-1;break}if((c[21064+(d<<2)>>2]|0)==(a|0))break;d=d+1|0}if((d|b|0)<0)d=0;else d=c[21096+(d<<5)+(b<<2)>>2]|0;return d|0}function Sz(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function Tz(b){b=b|0;var d=0,e=0;if((c[42246]|0)!=0|(c[42245]|0)!=0){d=b+16|0;e=c[(c[d>>2]|0)+100>>2]|0;if((e|0?(a[e+81>>0]|0)==0:0)?Uz(b,1)|0:0){e=qo(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;YA(e,c[(c[d>>2]|0)+100>>2]|0)}e=c[(c[d>>2]|0)+104>>2]|0;if((e|0?(a[e+81>>0]|0)==0:0)?Uz(b,0)|0:0){e=qo(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;YA(e,c[(c[d>>2]|0)+104>>2]|0)}}return}function Uz(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+96|0;o=q+32|0;m=q+16|0;n=q;i=b+16|0;do if((a[(c[i>>2]|0)+112>>0]|0)!=6){e=c[42246]|0;if(!((e|0)!=0?(a[(Im(b,e)|0)>>0]|0)!=0:0)){e=c[42245]|0;if(!e){e=0;break}if(!(a[(Im(b,e)|0)>>0]|0)){e=0;break}}d=d<<24>>24==0;p=c[i>>2]|0;p=c[(d?p+104|0:p+100|0)>>2]|0;e=Vz(b)|0;if(e){k=c[e>>2]|0;do if(d){if(c[k+8>>2]|0){e=c[k>>2]|0;j=+h[e>>3];g=+h[k+16>>3];e=e+8|0;f=+h[k+24>>3];break}e=c[k>>2]|0;g=+h[e>>3];f=+h[e+8>>3];e=0;while(1){if((e|0)==4)break;n=o+(e<<4)|0;i=(c[k>>2]|0)+(e<<4)|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];e=e+1|0}KA(m,o,3,.1,0,0);j=+h[m>>3];e=m+8|0}else{d=(c[e+4>>2]|0)+-1|0;i=k+(d*48|0)|0;if(c[k+(d*48|0)+12>>2]|0){o=c[i>>2]|0;e=(c[k+(d*48|0)+4>>2]|0)+-1|0;j=+h[o+(e<<4)>>3];g=+h[k+(d*48|0)+32>>3];e=o+(e<<4)+8|0;f=+h[k+(d*48|0)+40>>3];break}m=c[i>>2]|0;d=k+(d*48|0)+4|0;e=(c[d>>2]|0)+-1|0;g=+h[m+(e<<4)>>3];f=+h[m+(e<<4)+8>>3];e=0;while(1){if((e|0)==4)break;m=o+(e<<4)|0;k=(c[i>>2]|0)+(e+-4+(c[d>>2]|0)<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];e=e+1|0}KA(n,o,3,.9,0,0);j=+h[n>>3];e=n+8|0}while(0);r=+K(+(+h[e>>3]-f),+(j-g));r=+zA(b,c[42246]|0,-25.0,-180.0)*.017453292519943295+r;j=+zA(b,c[42245]|0,1.0,0.0)*10.0;h[p+56>>3]=j*+E(+r)+g;h[p+64>>3]=+F(+r)*j+f;a[p+81>>0]=1;e=1}else e=0}else e=0;while(0);l=q;return e|0}function Vz(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;d=b;while(1){e=c[d+16>>2]|0;d=c[e+8>>2]|0;if(d|0)break;if(!(a[e+112>>0]|0)){g=5;break}d=c[e+116>>2]|0}if((g|0)==5){g=Cn(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;d=Cn(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[f>>2]=g;c[f+4>>2]=d;Zl(1,91567,f)|0;d=0}l=h;return d|0}function Wz(a,d,e){a=a|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0;s=l;l=l+96|0;m=s+80|0;n=s+64|0;o=s+48|0;p=s+32|0;q=s+16|0;r=s;k=b[(c[d+16>>2]|0)+136>>1]|0;d=e+16|0;Xz(c[(c[d>>2]|0)+8>>2]|0,p,q);f=+h[p>>3];g=+h[q>>3];t=f-g;i=+h[p+8>>3];j=+h[q+8>>3];u=i-j;a:do if(u*u+t*t<1.0e-06){c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2]}else switch(k&14){case 4:case 10:{h[n>>3]=(g+f)*.5;h[n+8>>3]=(j+i)*.5;q=c[(c[d>>2]|0)+8>>2]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];QA(r,q,m);c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];c[o+12>>2]=c[r+12>>2];break a}default:{Yz(o,c[(c[d>>2]|0)+8>>2]|0,p,q);break a}}while(0);c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];l=s;return}function Xz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l+32|0;g=h+16|0;f=h;j=c[a>>2]|0;e=c[j>>2]|0;i=c[j+8>>2]|0;k=j+16|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];j=j+32|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];if(!i){c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2]}else{c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2]}i=c[a>>2]|0;j=(c[a+4>>2]|0)+-1|0;e=c[i+(j*48|0)>>2]|0;a=c[i+(j*48|0)+4>>2]|0;k=c[i+(j*48|0)+12>>2]|0;b=i+(j*48|0)+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];j=i+(j*48|0)+32|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];if(!k){k=e+(a+-1<<4)|0;c[d>>2]=c[k>>2];c[d+4>>2]=c[k+4>>2];c[d+8>>2]=c[k+8>>2];c[d+12>>2]=c[k+12>>2]}else{c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2]}l=h;return}function Yz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0;r=c[b+4>>2]|0;g=0.0;f=0;while(1){if((f|0)>=(r|0))break;l=c[b>>2]|0;k=c[l+(f*48|0)>>2]|0;l=c[l+(f*48|0)+4>>2]|0;i=3;j=0;while(1){if((i|0)>=(l|0))break;q=+h[k+(j<<4)>>3]-+h[k+(i<<4)>>3];p=+h[k+(j<<4)+8>>3]-+h[k+(i<<4)+8>>3];i=i+3|0;j=j+3|0;g=+C(+(p*p+q*q))+g}f=f+1|0}l=0;g=g*.5;a:while(1){if((l|0)>=(r|0)){f=15;break}k=c[b>>2]|0;j=c[k+(l*48|0)>>2]|0;k=c[k+(l*48|0)+4>>2]|0;f=3;i=0;while(1){if((f|0)>=(k|0))break;m=+h[j+(i<<4)>>3];p=+h[j+(i<<4)+8>>3];n=+h[j+(f<<4)>>3];o=+h[j+(f<<4)+8>>3];q=m-n;s=p-o;q=+C(+(s*s+q*q));if(q>=g){f=12;break a}f=f+3|0;i=i+3|0;g=g-q}l=l+1|0}if((f|0)==12){h[d>>3]=m;h[d+8>>3]=p;h[e>>3]=n;h[e+8>>3]=o;s=q-g;h[a>>3]=(s*m+n*g)/q;h[a+8>>3]=(s*p+o*g)/q;return}else if((f|0)==15)ma(123523,91502,1316,91629)}function Zz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Tz(b);return}function _z(b,d,e,f,g){b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0,G=0,H=0,I=0,J=0,K=0,L=0;J=$z(b)|0;I=c[J+4>>2]|0;K=c[J>>2]|0;H=I+-1|0;B=+h[K+(H<<6)+16>>3];C=+(I|0);D=(g|0)==2;G=(f|0)!=0;n=0;j=0.0;i=0.0;l=0.0;m=0.0;while(1){if((n|0)>=(I|0))break;b=~~+aA(+(n+-1|0),C);A=n+1|0;L=~~+aA(+(A|0),C);o=K+(n<<6)|0;m=+h[o>>3];z=K+(n<<6)+8|0;l=+h[z>>3];s=K+(n<<6)+16|0;t=+h[s>>3];u=K+(n<<6)+24|0;v=K+(n<<6)+32|0;w=K+(n<<6)+40|0;x=K+(n<<6)+48|0;y=K+(n<<6)+56|0;k=+bA(+h[K+(L<<6)+8>>3]-l,+h[K+(L<<6)>>3]-m);q=+bA(+h[K+(b<<6)+8>>3]-l,+h[K+(b<<6)>>3]-m);r=+Za[d&7](t,B,e);b=(n|0)==0;do if(b|(n|0)==(H|0))if(b){i=k+1.5707963267948966;if(!D){b=0;p=i;j=r;break}b=0;p=i;j=r;l=l-+F(+k)*r;m=m-+E(+k)*r;break}else{i=q+-1.5707963267948966;if(!D){b=0;p=i;j=r;break}b=0;p=i;j=r;l=l-+F(+q)*r;m=m-+E(+q)*r;break}else{p=k-q;p=1.5707963267948966-(p<0.0?p+6.283185307179586:p)*.5;j=+E(+p);j=j==0.0?0.0:r/j;i=k+1.5707963267948966;k=p+i;if(G|j>r*10.0){q=+aA(q+-1.5707963267948966,6.283185307179586);b=1;p=+aA(i,6.283185307179586);j=r;i=q}else{b=0;p=k;i=k}}while(0);h[o>>3]=m;h[z>>3]=l;h[s>>3]=t;a[u>>0]=108;h[v>>3]=i;h[w>>3]=j;c[x>>2]=b;h[y>>3]=p;n=A}o=qw(12)|0;b=0;while(1){if((b|0)>=(I|0))break;m=+h[K+(b<<6)>>3];l=+h[K+(b<<6)+8>>3];i=+h[K+(b<<6)+32>>3];j=+h[K+(b<<6)+40>>3];L=c[K+(b<<6)+48>>2]|0;k=+h[K+(b<<6)+56>>3];cA(o,+E(+i)*j+m,+F(+i)*j+l);if(L|0)dA(m,l,j,1,i,k,f,o);b=b+1|0}n=(g|0)==1;k=i+3.141592653589793;if(n)eA(o,m,l,j,i,k);else{cA(o,+E(+k)*j+m,+F(+k)*j+l);i=k}b=I+-2|0;k=m;while(1){if((b|0)<=-1)break;m=+h[K+(b<<6)>>3];l=+h[K+(b<<6)+8>>3];j=+h[K+(b<<6)+40>>3];L=c[K+(b<<6)+48>>2]|0;i=+h[K+(b<<6)+32>>3]+3.141592653589793;k=+h[K+(b<<6)+56>>3]+3.141592653589793;cA(o,+E(+k)*j+m,+F(+k)*j+l);if(L|0)dA(m,l,j,0,i,k,f,o);b=b+-1|0;k=m}if(n)eA(o,k,l,j,i,i+3.141592653589793);fA(J);return o|0}function $z(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;q=l;l=l+144|0;i=q+128|0;h=q+112|0;j=q+96|0;k=q+64|0;m=q;n=q+80|0;o=gA()|0;p=c[a+4>>2]|0;f=c[a>>2]|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];hA(o,i,0.0);g=m+48|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];d=0;b=0.0;a:while(1){e=d+3|0;if((e|0)>=(p|0))break;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];a=1;while(1){if((a|0)==4)break;r=m+(a<<4)|0;s=f+(a+d<<4)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];a=a+1|0}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];a=1;while(1){if((a|0)==21){d=e;continue a}KA(n,m,3,+(a|0)*.05,0,0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];c[i+12>>2]=c[n+12>>2];t=+iA(h,i)+b;c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];hA(o,i,t);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];a=a+1|0;b=t}}jA(o);l=q;return o|0}function aA(a,b){a=+a;b=+b;var c=0.0;c=a-+A(+(a/b))*b;return +(!(a<0.0)&!(a>=b)?a:c)}function bA(a,b){a=+a;b=+b;if(!(a==0.0&b==0.0)){a=+K(+a,+b);if(!(a>=0.0))a=a+6.283185307179586}else a=0.0;return +a}function cA(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0;e=c[a>>2]|0;f=a+4|0;if((e|0)<(c[f>>2]|0))f=c[a+8>>2]|0;else{c[f>>2]=2e3;e=a+8|0;f=tw(c[e>>2]|0,32e3)|0;c[e>>2]=f;e=c[a>>2]|0}c[a>>2]=e+1;h[f+(e<<4)>>3]=b;h[f+(e<<4)+8>>3]=d;return}function dA(a,b,c,d,e,f,g,h){a=+a;b=+b;c=+c;d=d|0;e=+e;f=+f;g=g|0;h=h|0;var i=0.0;d=(d|0)==0;i=d?e:f;do if((g|0)==1){e=(d?f:e)-i;e=!(e<=1.7453292519943296e-03)?e:e+6.283185307179586;if(e<3.141592653589793){eA(h,a,b,c,e+i,i);break}else{cA(h,+E(+i)*c+a,+F(+i)*c+a);break}}else cA(h,+E(+i)*c+a,+F(+i)*c+a);while(0);return}function eA(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0,h=0.0;cA(a,+E(+e)*d+b,+F(+e)*d+c);a:do if(!(d==0.0)){while(1){if(!(f>e))break;f=f+-6.283185307179586}f=e-f;while(1){if(!(f>6.283185307179586))break;f=f+-6.283185307179586}f=f*.05263157894736842;g=1;while(1){if((g|0)==20)break a;h=e-f*+(g|0);cA(a,+E(+h)*d+b,+F(+h)*d+c);g=g+1|0}}while(0);return}function fA(a){a=a|0;XI(c[a>>2]|0);XI(a);return}function gA(){var a=0;a=qw(12)|0;c[a+4>>2]=0;c[a+8>>2]=2e3;c[a>>2]=qw(128e3)|0;return a|0}function hA(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0;i=a+4|0;e=c[i>>2]|0;f=a+8|0;g=c[f>>2]|0;if((e|0)<(g|0))a=c[a>>2]|0;else{c[f>>2]=g<<1;e=tw(c[a>>2]|0,g<<7)|0;c[a>>2]=e;a=e;e=c[i>>2]|0}h[a+(e<<6)>>3]=+h[b>>3];h[a+(e<<6)+8>>3]=+h[b+8>>3];c[i>>2]=e+1;h[a+(e<<6)+16>>3]=d;return}function iA(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a>>3]-+h[b>>3];d=+h[a+8>>3]-+h[b+8>>3];return +(+C(+(d*d+c*c)))}function jA(a){a=a|0;var b=0;b=c[a+4>>2]|0;if((c[a+8>>2]|0)>(b|0))c[a>>2]=tw(c[a>>2]|0,b<<6)|0;return}function kA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;i=k;g=k+12|0;c[g>>2]=0;h=c[d+4>>2]|0;if(!h)ma(91646,91657,203,91668);e=c[h>>2]|0;if(!e)ma(91682,91657,206,91668);f=h+8|0;if(!(c[f>>2]|0))c[f>>2]=lA(e)|0;if(!0)e=0;else{e=(yv(c[h>>2]|0)|0)==0;e=e?0:g}if(!((sE(b,d,e)|0)<<24>>24))mA(d,e);do if(e|0){f=c[g>>2]|0;b=c[13918]|0;e=c[h>>2]|0;if(!f){c[j>>2]=e;vL(b,91725,j)|0;break}else{c[i>>2]=e;c[i+4>>2]=f;vL(b,91693,i)|0;break}}while(0);j=d+32|0;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];l=k;return}function lA(a){a=a|0;var b=0;b=c[42344]|0;if((b|0)!=0?(eK(b,a)|0)==0:0)a=c[42353]|0;else{XI(b);c[42344]=CL(a)|0;a=rM(169376,21352,35,36,29)|0;c[42353]=a}return a|0}function mA(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0.0,j=0,k=0.0;j=c[b+4>>2]|0;e=c[j>>2]|0;i=+h[j+16>>3];j=b+32|0;h[j>>3]=0.0;h[b+40>>3]=i*1.2;h[b+16>>3]=0.0;h[b+24>>3]=i*.1;c[b+8>>2]=0;c[b+12>>2]=0;if(lK(e,91759,4)|0)if((lK(e,91764,5)|0)!=0?(lK(e,91770,9)|0)!=0:0){g=4184;e=91780}else{g=8280;e=91816}else{g=6232;e=91797}if(d|0)c[d>>2]=e;e=c[b>>2]|0;if(e|0){f=0.0;while(1){b=a[e>>0]|0;if(!(b<<24>>24))break;k=f+ +h[g+((b&255)<<3)>>3];h[j>>3]=k;e=e+1|0;f=k}h[j>>3]=f*i}return}function nA(a,b){a=a|0;b=b|0;return eK(c[a>>2]|0,c[b>>2]|0)|0}function oA(a){a=a|0;var b=0;b=a+108|0;c[b>>2]=0;c[a+112>>2]=32;c[a+116>>2]=-1;c[a+120>>2]=14;c[a+124>>2]=58;c[a+128>>2]=20;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=0;b=Pl(b,c[4345]|0)|0;c[a+144>>2]=b;return b|0}function pA(a,b,d){a=a|0;b=b|0;d=d|0;d=YI(1,32)|0;a=c[b>>2]|0;if(a|0)c[d>>2]=CL(a)|0;a=c[b+4>>2]|0;if(a|0)c[d+4>>2]=CL(a)|0;c[d+24>>2]=c[b+24>>2]&127;h[d+16>>3]=+h[b+16>>3];c[d+8>>2]=c[b+8>>2];return d|0}function qA(a,b,d){a=a|0;b=b|0;d=d|0;XI(c[b>>2]|0);XI(c[b+4>>2]|0);XI(b);return}function rA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0;a=c[b>>2]|0;e=c[d>>2]|0;i=(e|0)==0;if(!a)if(i)j=5;else a=-1;else if(!i){a=uJ(a,e)|0;if(!a)j=5}else a=1;do if((j|0)==5){a=c[b+4>>2]|0;e=c[d+4>>2]|0;i=(e|0)==0;if(!a){if(!i){a=-1;break}}else{if(i){a=1;break}a=uJ(a,e)|0;if(a|0)break}a=(c[b+24>>2]&127)-(c[d+24>>2]&127)|0;if(!a){g=+h[b+16>>3];f=+h[d+16>>3];if(g<f)a=-1;else a=g>f&1}}while(0);return a|0}function sA(){Wa(169416)|0;return}function tA(){var a=0,b=0;b=l;l=l+16|0;a=b;Wa(a|0)|0;l=b;return +(+((c[a+4>>2]|0)+(c[a>>2]|0)-(c[42354]|0)-(c[42355]|0)|0)*.016666666666666666)}function uA(a){a=a|0;var b=0,d=0;b=qw(16)|0;a=(a|0)>2?a:2;d=qw(a<<2)|0;c[b>>2]=d;c[b+12>>2]=d;c[b+8>>2]=d;c[b+4>>2]=d+(a<<2);return b|0}function vA(a){a=a|0;XI(c[a>>2]|0);XI(a);return}function wA(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+12|0;e=c[d>>2]|0;c[d>>2]=e+4;c[e>>2]=b;if((c[d>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2];return}function xA(a){a=a|0;var b=0,d=0,e=0;d=a+8|0;b=c[d>>2]|0;if((b|0)!=(c[a+12>>2]|0)){e=b+4|0;c[d>>2]=e;b=c[b>>2]|0;if(e>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2]}else b=0;return b|0}function yA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=l;l=l+16|0;g=i;if(((d|0)!=0?(h=Im(b,d)|0,(h|0)!=0):0)?(a[h>>0]|0)!=0:0){d=xL(h,g,10)|0;e=(h|0)==(c[g>>2]|0)?e:(d|0)<(f|0)?f:d}l=i;return e|0}function zA(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,i=0,j=0.0;i=l;l=l+16|0;g=i;if(((b|0)!=0&(d|0)!=0?(h=Im(b,d)|0,(h|0)!=0):0)?(a[h>>0]|0)!=0:0){j=+pM(h,g);e=(h|0)==(c[g>>2]|0)?e:j<f?f:j}l=i;return +e}function AA(a,b,c){a=a|0;b=b|0;c=c|0;if((a|0)!=0&(b|0)!=0)c=Im(a,b)|0;return c|0}function BA(b,c,d){b=b|0;c=c|0;d=d|0;b=AA(b,c,d)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0)d=b;return d|0}function CA(a,b,c){a=a|0;b=b|0;c=c|0;if(!b)a=c&255;else a=DA(Im(a,b)|0)|0;return a|0}function DA(a){a=a|0;return EA(a,0)|0}function EA(b,c){b=b|0;c=c|0;var d=0;if((b|0)!=0?(d=a[b>>0]|0,d<<24>>24!=0):0)if((eK(b,122100)|0)!=0?(eK(b,92626)|0)!=0:0)if((eK(b,92629)|0)!=0?(eK(b,92634)|0)!=0:0){if(((d<<24>>24)+-48|0)>>>0<10)c=(nM(b)|0)&255}else c=1;else c=0;return c|0}function FA(a){a=a|0;var b=0,d=0;while(1){b=(c[a+16>>2]|0)+220|0;d=c[b>>2]|0;if(!((d|0)!=(a|0)&(d|0)!=0))break;a=c[(c[d+16>>2]|0)+220>>2]|0;if(!a){a=d;continue}c[b>>2]=a}return a|0}function GA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if((a|0)!=(b|0)){d=c[a+16>>2]|0;e=d+220|0;if(!(c[e>>2]|0)){c[e>>2]=a;c[d+216>>2]=1}else a=FA(a)|0;d=c[b+16>>2]|0;e=d+220|0;if(!(c[e>>2]|0)){c[e>>2]=b;c[d+216>>2]=1}else{d=FA(b)|0;b=d;d=c[d+16>>2]|0}g=a+16|0;e=c[g>>2]|0;f=b+16|0;h=(c[e+120>>2]|0)>(c[d+120>>2]|0);a=h?b:a;c[(h?e:d)+220>>2]=a;e=(c[(h?f:g)>>2]|0)+216|0;c[e>>2]=(c[e>>2]|0)+(c[(c[(h?g:f)>>2]|0)+216>>2]|0)}return a|0}function HA(b){b=b|0;b=c[b+16>>2]|0;c[b+216>>2]=1;c[b+220>>2]=0;a[b+159>>0]=0;return}function IA(a,b){a=a|0;b=b|0;if((FA(a)|0)==(a|0)){a=c[a+16>>2]|0;c[a+220>>2]=b;b=(c[b+16>>2]|0)+216|0;c[b>>2]=(c[b>>2]|0)+(c[a+216>>2]|0);return}else ma(92646,92638,194,92662)}function JA(a,b){a=a|0;b=b|0;var d=0.0;b=c[(c[b+16>>2]|0)+132>>2]|0;d=+h[b+8>>3]*72.0;h[a>>3]=+h[b>>3]*72.0;h[a+8>>3]=d;return}function KA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0,o=0,p=0;o=l;l=l+576|0;n=o;i=0;while(1){if((i|0)>(d|0))break;k=n+(i<<4)|0;j=b+(i<<4)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];i=i+1|0}m=1.0-e;i=1;while(1){if((i|0)>(d|0))break;j=d-i|0;k=i+-1|0;b=0;while(1){if((b|0)>(j|0))break;p=b+1|0;h[n+(i*96|0)+(b<<4)>>3]=+h[n+(k*96|0)+(p<<4)>>3]*e+ +h[n+(k*96|0)+(b<<4)>>3]*m;h[n+(i*96|0)+(b<<4)+8>>3]=+h[n+(k*96|0)+(p<<4)+8>>3]*e+ +h[n+(k*96|0)+(b<<4)+8>>3]*m;b=p}i=i+1|0}a:do if(f|0){i=0;while(1){if((i|0)>(d|0))break a;p=f+(i<<4)|0;k=n+(i*96|0)|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];i=i+1|0}}while(0);b:do if(g|0){i=0;while(1){if((i|0)>(d|0))break b;p=g+(i<<4)|0;f=n+((d-i|0)*96|0)+(i<<4)|0;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];i=i+1|0}}while(0);p=n+(d*96|0)|0;c[a>>2]=c[p>>2];c[a+4>>2]=c[p+4>>2];c[a+8>>2]=c[p+8>>2];c[a+12>>2]=c[p+12>>2];l=o;return}function LA(b){b=b|0;var d=0,e=0,f=0,g=0;e=0;do{d=c[42358]|0;f=d+1024|0;if((d-e|0)<1024){c[42358]=f;f=tw(c[42359]|0,f)|0;c[42359]=f;d=c[42358]|0}else f=c[42359]|0;d=cL(f+e|0,d-e|0,b)|0;if(!d){g=6;break}e=(oJ(d)|0)+e|0;d=c[42359]|0}while((a[d+(e+-1)>>0]|0)!=10);if((g|0)==6)d=c[42359]|0;return ((e|0)>0?d:0)|0}function MA(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;do if((b|0)!=0?(a[b>>0]|0)!=0:0)if(!0){d=c[42178]|0;e=c[42361]|0;if((c[42360]|0)==(d|0))d=e;else{if(e){XI(c[e>>2]|0);XI(c[42361]|0);c[42361]=0;d=c[42178]|0}c[42360]=d;if(!d)break;if(!(a[d>>0]|0))break;d=NA(d)|0;c[42361]=d}if(!((a[b>>0]|0)!=47&(d|0)!=0))break;b=OA(d,c[42362]|0,b)|0;break}else S();else b=0;while(0);l=f;return b|0}function NA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=0;f=0;g=0;b=CL(a)|0;d=0;while(1){b=zL(b,92961)|0;if(!b)break;a=(g<<2)+8|0;if(!f)a=rw(a)|0;else a=tw(d,a)|0;c[a+(g<<2)>>2]=b;f=oJ(b)|0;e=e>>>0>f>>>0?e:f;f=a;g=g+1|0;b=0;d=a}c[f+(g<<2)>>2]=0;c[42362]=e;return f|0}function OA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;h=c[42363]|0;c[42363]=ZI(h,b+2+(oJ(d)|0)|0)|0;while(1){b=c[a>>2]|0;if(!b){a=0;break}h=c[42363]|0;c[e>>2]=b;c[e+4>>2]=92959;c[e+8>>2]=d;lL(h,92952,e)|0;if(!(XL(c[42363]|0,4)|0)){f=4;break}else a=a+4|0}if((f|0)==4)a=c[42363]|0;l=g;return a|0}function PA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=(b|0)==0;f=0;while(1){h=c[d+(f<<2)>>2]|0;if(!h)break;if((!g?(a[b>>0]|0)==(a[h>>0]|0):0)?(uJ(b,h)|0)==0:0)break;f=f+1|0}return c[e+(f<<2)>>2]|0}function QA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;z=l;l=l+80|0;x=z+16|0;y=z;u=c[b+4>>2]|0;v=c[b>>2]|0;w=d+8|0;f=0;e=-1;g=1.e+38;b=-1;while(1){if((f|0)>=(u|0))break;s=c[v+(f*48|0)>>2]|0;t=c[v+(f*48|0)+4>>2]|0;r=0;while(1){if((r|0)>=(t|0))break;q=+h[s+(r<<4)>>3]-+h[d>>3];p=+h[s+(r<<4)+8>>3]-+h[w>>3];q=p*p+q*q;A=(e|0)==-1|q<g;C=A?r:e;r=r+1|0;b=A?f:b;e=C;g=A?q:g}f=f+1|0}f=c[v+(b*48|0)>>2]|0;e=e+(((e|0)==((c[v+(b*48|0)+4>>2]|0)+-1|0))<<31>>31)|0;e=e-((e|0)%3|0)|0;b=0;while(1){if((b|0)==4)break;C=b+e|0;h[x+(b<<4)>>3]=+h[f+(C<<4)>>3];h[x+(b<<4)+8>>3]=+h[f+(C<<4)+8>>3];b=b+1|0}q=+h[d>>3];k=+h[x>>3]-q;o=+h[w>>3];p=+h[x+8>>3]-o;j=+h[x+48>>3]-q;n=+h[x+56>>3]-o;b=y+8|0;g=1.0;i=0.0;j=n*n+j*j;k=p*p+k*k;while(1){p=(g+i)*.5;KA(y,x,3,p,0,0);m=+h[y>>3];n=+h[b>>3];if(+B(+(k-j))<1.0)break;if(+B(+(g-i))<1.0e-05)break;C=k<j;m=m-q;n=n-o;n=n*n+m*m;g=C?p:g;i=C?i:p;j=C?n:j;k=C?k:n}h[a>>3]=m;h[a+8>>3]=n;l=z;return}function RA(b){b=b|0;var d=0.0,e=0,f=0,g=0,i=0,j=0,k=0,l=0;d=+zA(b,c[42189]|0,.75,.01);g=b+16|0;h[(c[g>>2]|0)+32>>3]=d;d=+zA(b,c[42188]|0,.5,.02);h[(c[g>>2]|0)+40>>3]=d;l=Ly(BA(b,c[42190]|0,92963)|0,b)|0;c[(c[g>>2]|0)+8>>2]=l;l=Im(b,c[42197]|0)|0;d=+zA(b,c[42193]|0,14.0,1.0);e=BA(b,c[42194]|0,92971)|0;f=BA(b,c[42195]|0,122106)|0;i=(bp(l)|0)!=0;k=(wy(b)|0)==2;i=gw(b,l,(k?4:0)|(i?2:0),d,e,f)|0;c[(c[g>>2]|0)+104>>2]=i;i=c[42198]|0;if((i|0?(j=Im(b,i)|0,j|0):0)?a[j>>0]|0:0){l=(bp(j)|0)!=0;l=gw(b,j,l?2:0,d,e,f)|0;c[(c[g>>2]|0)+108>>2]=l;l=(c[(qo(b)|0)+16>>2]|0)+113|0;a[l>>0]=a[l>>0]|16}k=(yA(b,c[42201]|0,0,0)|0)&255;l=c[g>>2]|0;a[l+144>>0]=k;gb[c[c[(c[l+8>>2]|0)+4>>2]>>2]&127](b);return}function SA(b){b=b|0;var d=0,e=0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+112|0;m=v+96|0;n=v+80|0;s=v+40|0;u=v;r=b+48|0;p=qo(c[((c[b>>2]&3|0)==3?b:r)+40>>2]|0)|0;g=m+8|0;c[g>>2]=0;o=n+8|0;c[o>>2]=0;d=c[42225]|0;if(((d|0)!=0?(e=Im(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0){TA(b,m);t=(bp(e)|0)!=0;i=+h[m>>3];f=c[g>>2]|0;d=c[m+12>>2]|0;e=gw(b,e,t?2:0,i,f,d)|0;t=b+16|0;c[(c[t>>2]|0)+96>>2]=e;e=(c[p+16>>2]|0)+113|0;a[e>>0]=a[e>>0]|1;e=DA(AA(b,c[42235]|0,122100)|0)|0;a[(c[t>>2]|0)+114>>0]=e;t=1;e=f}else{t=0;d=0;i=0.0;e=0}f=c[42226]|0;if((f|0?(j=Im(b,f)|0,j|0):0)?a[j>>0]|0:0){if(!e){TA(b,m);i=+h[m>>3];e=c[g>>2]|0;d=c[m+12>>2]|0}g=(bp(j)|0)!=0;j=gw(b,j,g?2:0,i,e,d)|0;c[(c[b+16>>2]|0)+108>>2]=j;j=(c[p+16>>2]|0)+113|0;a[j>>0]=a[j>>0]|32}d=c[42240]|0;if(((d|0)!=0?(k=Im(b,d)|0,(k|0)!=0):0)?(a[k>>0]|0)!=0:0){UA(b,m,n);j=(bp(k)|0)!=0;i=+h[n>>3];d=c[o>>2]|0;e=c[n+12>>2]|0;k=gw(b,k,j?2:0,i,d,e)|0;c[(c[b+16>>2]|0)+100>>2]=k;k=(c[p+16>>2]|0)+113|0;a[k>>0]=a[k>>0]|2}else{e=0;i=0.0;d=0}f=c[42241]|0;if((f|0?(q=Im(b,f)|0,q|0):0)?a[q>>0]|0:0){if(!d){UA(b,m,n);e=c[n+12>>2]|0;i=+h[n>>3];d=c[o>>2]|0}o=(bp(q)|0)!=0;q=gw(b,q,o?2:0,i,d,e)|0;c[(c[b+16>>2]|0)+104>>2]=q;q=(c[p+16>>2]|0)+113|0;a[q>>0]=a[q>>0]|4}d=Hm(b,96242)|0;d=d|0?d:174177;if(a[d>>0]|0)a[(c[(c[((c[b>>2]&3|0)==3?b:r)+40>>2]|0)+16>>2]|0)+145>>0]=1;g=b+16|0;f=(c[g>>2]|0)+16|0;e=c[((c[b>>2]&3|0)==3?b:r)+40>>2]|0;VA(s,c[(c[(c[(c[e+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,e,d);d=s;e=f+40|0;do{c[f>>2]=c[d>>2];f=f+4|0;d=d+4|0}while((f|0)<(e|0));if((WA(b,c[42247]|0)|0)<<24>>24)a[(c[g>>2]|0)+46>>0]=0;d=Hm(b,96251)|0;d=d|0?d:174177;if(!(a[d>>0]|0))e=b+-48|0;else{e=b+-48|0;a[(c[(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)+16>>2]|0)+145>>0]=1}f=(c[g>>2]|0)+56|0;e=c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0;VA(u,c[(c[(c[(c[e+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,e,d);d=u;e=f+40|0;do{c[f>>2]=c[d>>2];f=f+4|0;d=d+4|0}while((f|0)<(e|0));if((WA(b,c[42248]|0)|0)<<24>>24)a[(c[g>>2]|0)+86>>0]=0;l=v;return t|0}function TA(a,b){a=a|0;b=b|0;h[b>>3]=+zA(a,c[42222]|0,14.0,1.0);c[b+8>>2]=BA(a,c[42223]|0,92971)|0;c[b+12>>2]=BA(a,c[42224]|0,122106)|0;return}function UA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=b+8|0;if(!(c[e>>2]|0))TA(a,b);h[d>>3]=+zA(a,c[42242]|0,+h[b>>3],1.0);c[d+8>>2]=BA(a,c[42243]|0,c[e>>2]|0)|0;c[d+12>>2]=BA(a,c[42244]|0,c[b+12>>2]|0)|0;return}function VA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+128|0;k=m+80|0;h=m+40|0;g=m;if((f|0)!=0?(j=TJ(f,58)|0,(j|0)!=0):0){a[j>>0]=0;i=j+1|0;kb[d&31](h,e,f,i);e=k;g=h;d=e+36|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0));a[j>>0]=58;f=i}else{kb[d&31](g,e,f,0);e=k;d=e+36|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0))}e=b;g=k;d=e+36|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0));c[b+36>>2]=f;l=m;return}function WA(b,c){b=b|0;c=c|0;var d=0;if(((c|0)!=0?(d=Im(b,c)|0,(d|0)!=0):0)?(a[d>>0]|0)!=0:0)b=(DA(d)|0)<<24>>24==0&1;else b=0;return b|0}function XA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0;k=l;l=l+32|0;i=k;j=c[b+8>>2]|0;d=c[b+4>>2]|0;d=(c[b+44>>2]|0)+((O((d|0)>1?d+-1|0:0,j)|0)<<4)|0;e=i+16|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];f=i+8|0;g=i+24|0;b=1;while(1){if((b|0)>=(j|0))break;m=d+(b<<4)|0;o=+h[m>>3];h[i>>3]=+h[(+h[i>>3]<o?i:m)>>3];n=+h[m+8>>3];h[f>>3]=+h[(+h[f>>3]<n?i:m)+8>>3];h[e>>3]=+h[(+h[e>>3]>o?e:m)>>3];h[g>>3]=+h[(+h[g>>3]>n?e:m)+8>>3];b=b+1|0}c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[a+28>>2]=c[i+28>>2];l=k;return}function YA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+64|0;g=d+32|0;e=d;f=c[a+16>>2]|0;a=f+16|0;f=c[f+116>>2]&1;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];c[g+20>>2]=c[a+20>>2];c[g+24>>2]=c[a+24>>2];c[g+28>>2]=c[a+28>>2];ZA(e,g,b,f);c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];l=d;return}function ZA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0;g=+h[d+56>>3];l=+h[d+64>>3];j=e<<24>>24==0;k=+h[d+24>>3];i=+h[d+32>>3];m=(j?k:i)*.5;f=g-m;g=m+g;if(f<+h[b>>3])h[b>>3]=f;e=b+16|0;if(g>+h[e>>3])h[e>>3]=g;g=(j?i:k)*.5;f=l-g;g=g+l;e=b+8|0;if(f<+h[e>>3])h[e>>3]=f;e=b+24|0;if(g>+h[e>>3])h[e>>3]=g;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];return}function _A(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0;L=l;l=l+448|0;H=L+416|0;t=L+384|0;u=L+304|0;K=L+256|0;G=L+192|0;B=L+144|0;C=L+96|0;d=L+400|0;e=L+368|0;f=L+352|0;g=L+336|0;v=L+288|0;w=L+224|0;x=L+160|0;y=L+112|0;z=L+64|0;A=L+32|0;I=L;J=b+16|0;if((ln(b)|0)==0?(c[(c[J>>2]|0)+180>>2]|0)==0:0){$A(d,0.0,0.0);c[K>>2]=c[d>>2];c[K+4>>2]=c[d+4>>2];c[K+8>>2]=c[d+8>>2];c[K+12>>2]=c[d+12>>2];K=K+16|0;$A(e,0.0,0.0);c[K>>2]=c[e>>2];c[K+4>>2]=c[e+4>>2];c[K+8>>2]=c[e+8>>2];c[K+12>>2]=c[e+12>>2]}else{$A(f,2147483647.0,2147483647.0);c[K>>2]=c[f>>2];c[K+4>>2]=c[f+4>>2];c[K+8>>2]=c[f+8>>2];c[K+12>>2]=c[f+12>>2];F=K+16|0;$A(g,-2147483647.0,-2147483647.0);c[F>>2]=c[g>>2];c[F+4>>2]=c[g+4>>2];c[F+8>>2]=c[g+8>>2];c[F+12>>2]=c[g+12>>2];o=C+8|0;p=u+16|0;D=K+8|0;q=u+8|0;E=K+24|0;r=u+24|0;s=B+8|0;n=bo(b)|0;while(1){if(!n)break;JA(B,n);d=n+16|0;m=c[d>>2]|0;h[C>>3]=(+h[m+96>>3]+ +h[m+88>>3])*.5;h[o>>3]=+h[m+80>>3]*.5;c[t>>2]=c[B>>2];c[t+4>>2]=c[B+4>>2];c[t+8>>2]=c[B+8>>2];c[t+12>>2]=c[B+12>>2];c[H>>2]=c[C>>2];c[H+4>>2]=c[C+4>>2];c[H+8>>2]=c[C+8>>2];c[H+12>>2]=c[C+12>>2];aB(u,t,H);c[t>>2]=c[B>>2];c[t+4>>2]=c[B+4>>2];c[t+8>>2]=c[B+8>>2];c[t+12>>2]=c[B+12>>2];c[H>>2]=c[C>>2];c[H+4>>2]=c[C+4>>2];c[H+8>>2]=c[C+8>>2];c[H+12>>2]=c[C+12>>2];bB(v,t,H);c[p>>2]=c[v>>2];c[p+4>>2]=c[v+4>>2];c[p+8>>2]=c[v+8>>2];c[p+12>>2]=c[v+12>>2];h[K>>3]=+h[(+h[K>>3]<+h[u>>3]?K:u)>>3];h[D>>3]=+h[(+h[D>>3]<+h[q>>3]?K:u)+8>>3];h[F>>3]=+h[(+h[F>>3]>+h[p>>3]?K:u)+16>>3];h[E>>3]=+h[(+h[E>>3]>+h[r>>3]?K:u)+24>>3];d=c[(c[d>>2]|0)+108>>2]|0;if(d|0?a[d+81>>0]|0:0){m=c[(c[J>>2]|0)+116>>2]&1;c[H>>2]=c[K>>2];c[H+4>>2]=c[K+4>>2];c[H+8>>2]=c[K+8>>2];c[H+12>>2]=c[K+12>>2];c[H+16>>2]=c[K+16>>2];c[H+20>>2]=c[K+20>>2];c[H+24>>2]=c[K+24>>2];c[H+28>>2]=c[K+28>>2];ZA(w,H,d,m);c[K>>2]=c[w>>2];c[K+4>>2]=c[w+4>>2];c[K+8>>2]=c[w+8>>2];c[K+12>>2]=c[w+12>>2];c[K+16>>2]=c[w+16>>2];c[K+20>>2]=c[w+20>>2];c[K+24>>2]=c[w+24>>2];c[K+28>>2]=c[w+28>>2]}m=Om(b,n)|0;while(1){if(!m)break;k=m+16|0;d=c[k>>2]|0;j=d+8|0;e=c[j>>2]|0;if(e|0){i=0;while(1){if((i|0)<(c[e+4>>2]|0))g=0;else break;while(1){f=c[e>>2]|0;if((g|0)>=(c[f+(i*48|0)+4>>2]|0))break;e=(c[f+(i*48|0)>>2]|0)+(g<<4)|0;c[B>>2]=c[e>>2];c[B+4>>2]=c[e+4>>2];c[B+8>>2]=c[e+8>>2];c[B+12>>2]=c[e+12>>2];N=+h[B>>3];h[K>>3]=+h[(+h[K>>3]<N?K:B)>>3];M=+h[s>>3];h[D>>3]=+h[(+h[D>>3]<M?K:B)+8>>3];h[F>>3]=+h[(+h[F>>3]>N?F:B)>>3];h[E>>3]=+h[(+h[E>>3]>M?F:B)+8>>3];g=g+1|0;e=c[j>>2]|0}i=i+1|0}e=c[d+96>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[(c[J>>2]|0)+116>>2]&1;c[H>>2]=c[K>>2];c[H+4>>2]=c[K+4>>2];c[H+8>>2]=c[K+8>>2];c[H+12>>2]=c[K+12>>2];c[H+16>>2]=c[K+16>>2];c[H+20>>2]=c[K+20>>2];c[H+24>>2]=c[K+24>>2];c[H+28>>2]=c[K+28>>2];ZA(x,H,e,d);c[K>>2]=c[x>>2];c[K+4>>2]=c[x+4>>2];c[K+8>>2]=c[x+8>>2];c[K+12>>2]=c[x+12>>2];c[K+16>>2]=c[x+16>>2];c[K+20>>2]=c[x+20>>2];c[K+24>>2]=c[x+24>>2];c[K+28>>2]=c[x+28>>2];d=c[k>>2]|0}e=c[d+100>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[(c[J>>2]|0)+116>>2]&1;c[H>>2]=c[K>>2];c[H+4>>2]=c[K+4>>2];c[H+8>>2]=c[K+8>>2];c[H+12>>2]=c[K+12>>2];c[H+16>>2]=c[K+16>>2];c[H+20>>2]=c[K+20>>2];c[H+24>>2]=c[K+24>>2];c[H+28>>2]=c[K+28>>2];ZA(y,H,e,d);c[K>>2]=c[y>>2];c[K+4>>2]=c[y+4>>2];c[K+8>>2]=c[y+8>>2];c[K+12>>2]=c[y+12>>2];c[K+16>>2]=c[y+16>>2];c[K+20>>2]=c[y+20>>2];c[K+24>>2]=c[y+24>>2];c[K+28>>2]=c[y+28>>2];d=c[k>>2]|0}e=c[d+104>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[(c[J>>2]|0)+116>>2]&1;c[H>>2]=c[K>>2];c[H+4>>2]=c[K+4>>2];c[H+8>>2]=c[K+8>>2];c[H+12>>2]=c[K+12>>2];c[H+16>>2]=c[K+16>>2];c[H+20>>2]=c[K+20>>2];c[H+24>>2]=c[K+24>>2];c[H+28>>2]=c[K+28>>2];ZA(z,H,e,d);c[K>>2]=c[z>>2];c[K+4>>2]=c[z+4>>2];c[K+8>>2]=c[z+8>>2];c[K+12>>2]=c[z+12>>2];c[K+16>>2]=c[z+16>>2];c[K+20>>2]=c[z+20>>2];c[K+24>>2]=c[z+24>>2];c[K+28>>2]=c[z+28>>2];d=c[k>>2]|0}d=c[d+108>>2]|0;if(d|0?a[d+81>>0]|0:0){k=c[(c[J>>2]|0)+116>>2]&1;c[H>>2]=c[K>>2];c[H+4>>2]=c[K+4>>2];c[H+8>>2]=c[K+8>>2];c[H+12>>2]=c[K+12>>2];c[H+16>>2]=c[K+16>>2];c[H+20>>2]=c[K+20>>2];c[H+24>>2]=c[K+24>>2];c[H+28>>2]=c[K+28>>2];ZA(A,H,d,k);c[K>>2]=c[A>>2];c[K+4>>2]=c[A+4>>2];c[K+8>>2]=c[A+8>>2];c[K+12>>2]=c[A+12>>2];c[K+16>>2]=c[A+16>>2];c[K+20>>2]=c[A+20>>2];c[K+24>>2]=c[A+24>>2];c[K+28>>2]=c[A+28>>2]}}m=Qm(b,m)|0}n=co(b,n)|0}d=c[J>>2]|0;f=c[d+180>>2]|0;g=d+184|0;i=G+8|0;j=G+16|0;k=G+24|0;e=1;while(1){if((e|0)>(f|0))break;P=+h[(c[(c[(c[g>>2]|0)+(e<<2)>>2]|0)+16>>2]|0)+16>>3];h[G>>3]=P;C=c[(c[(c[g>>2]|0)+(e<<2)>>2]|0)+16>>2]|0;O=+h[C+24>>3];h[i>>3]=O;M=+h[C+32>>3];h[j>>3]=M;N=+h[C+40>>3];h[k>>3]=N;h[K>>3]=+h[(+h[K>>3]<P?K:G)>>3];h[D>>3]=+h[(+h[D>>3]<O?K:G)+8>>3];h[F>>3]=+h[(+h[F>>3]>M?K:G)+16>>3];h[E>>3]=+h[(+h[E>>3]>N?K:G)+24>>3];e=e+1|0}e=c[d+12>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[d+116>>2]&1;c[H>>2]=c[K>>2];c[H+4>>2]=c[K+4>>2];c[H+8>>2]=c[K+8>>2];c[H+12>>2]=c[K+12>>2];c[H+16>>2]=c[K+16>>2];c[H+20>>2]=c[K+20>>2];c[H+24>>2]=c[K+24>>2];c[H+28>>2]=c[K+28>>2];ZA(I,H,e,d);c[K>>2]=c[I>>2];c[K+4>>2]=c[I+4>>2];c[K+8>>2]=c[I+8>>2];c[K+12>>2]=c[I+12>>2];c[K+16>>2]=c[I+16>>2];c[K+20>>2]=c[I+20>>2];c[K+24>>2]=c[I+24>>2];c[K+28>>2]=c[I+28>>2];d=c[J>>2]|0}J=d+16|0;c[J>>2]=c[K>>2];c[J+4>>2]=c[K+4>>2];c[J+8>>2]=c[K+8>>2];c[J+12>>2]=c[K+12>>2];c[J+16>>2]=c[K+16>>2];c[J+20>>2]=c[K+20>>2];c[J+24>>2]=c[K+24>>2];c[J+28>>2]=c[K+28>>2]}l=L;return}function $A(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function aB(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]-+h[c+8>>3];h[a>>3]=+h[b>>3]-+h[c>>3];h[a+8>>3]=d;return}function bB(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[c+8>>3]+ +h[b+8>>3];h[a>>3]=+h[c>>3]+ +h[b>>3];h[a+8>>3]=d;return}function cB(a){a=a|0;if((c[a+60>>2]|0)==(a|0))a=1;else a=(lK(Cn(a)|0,92983,7)|0)==0&1;return a|0}function dB(a){a=a|0;var b=0;b=Pl(22612,c[4345]|0)|0;gB(a,b);return b|0}function eB(a,b){a=a|0;b=b|0;a=bb[c[a>>2]&31](a,b,512)|0;if(!a)a=0;else a=c[a+12>>2]|0;return a|0}function fB(a,b,c){a=a|0;b=b|0;c=c|0;c=$m(qo(b)|0,b,c,0,1)|0;Mo(c,122254,176,1)|0;Lm(a,c)|0;return c|0}function gB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+16|0;g=h;f=a+16|0;e=1;while(1){a=c[f>>2]|0;if((e|0)>(c[a+180>>2]|0))break;a=c[(c[a+184>>2]|0)+(e<<2)>>2]|0;d=Cn(a)|0;if(!(bb[c[b>>2]&31](b,d,512)|0)){i=qw(16)|0;c[i+8>>2]=d;c[i+12>>2]=a;bb[c[b>>2]&31](b,i,1)|0}else{c[g>>2]=d;Zl(0,93006,g)|0}gB(a,b);e=e+1|0}l=h;return}function hB(a,b,c){a=a|0;b=b|0;c=c|0;XI(b);return}function iB(a){a=a|0;var b=0,c=0,d=0;d=Gp(a,92991,1)|0;Mo(d,122277,280,1)|0;b=bo(a)|0;while(1){if(!b)break;c=Om(a,b)|0;while(1){if(!c)break;jB(c,d);c=Qm(a,c)|0}b=co(a,b)|0}b=bo(d)|0;while(1){if(!b)break;c=co(d,b)|0;kB(b);po(a,b)|0;b=c}kn(d)|0;return}function jB(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b>>2]&3;f=c[((e|0)==3?b:b+48|0)+40>>2]|0;e=c[((e|0)==2?b:b+-48|0)+40>>2]|0;if(!((a[(c[f+16>>2]|0)+118>>0]|0)==0?!(a[(c[e+16>>2]|0)+118>>0]|0):0)){f=lB(f,d)|0;e=fB(b,f,lB(e,d)|0)|0;f=c[b+16>>2]|0;d=f+8|0;e=c[e+16>>2]|0;c[e+8>>2]=c[d>>2];c[d>>2]=0;d=f+96|0;c[e+96>>2]=c[d>>2];c[d>>2]=0;d=f+108|0;c[e+108>>2]=c[d>>2];c[d>>2]=0;d=f+100|0;c[e+100>>2]=c[d>>2];c[d>>2]=0;f=f+104|0;c[e+104>>2]=c[f>>2];c[f>>2]=0;mB(b)}return}function kB(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+132>>2]|0;if(d){XI(d);b=c[e>>2]|0}d=c[b+8>>2]|0;if(d){gb[c[(c[d+4>>2]|0)+4>>2]&127](a);b=c[e>>2]|0}jw(c[b+104>>2]|0);jw(c[(c[e>>2]|0)+108>>2]|0);Oo(a,122241)|0;return}function lB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=qo(b)|0;a:do if(a[(c[b+16>>2]|0)+118>>0]|0){ho(d,b,1)|0;b=TJ(Cn(b)|0,58)|0;if(!b)ma(95974,92638,1225,93058);d=b+1|0;b=mo(f,d,0)|0;if(!b){b=mo(f,d,1)|0;Mo(b,122241,304,1)|0;d=Cm(f,1,0)|0;while(1){if(!d)break a;g=Im(b,d)|0;e=c[d+12>>2]|0;if((g|0)!=(e|0))Bm(b,d,e)|0;d=Cm(f,1,d)|0}}}while(0);return b|0}function mB(a){a=a|0;var b=0;b=a+16|0;XI(c[(c[b>>2]|0)+144>>2]|0);nB(a);jw(c[(c[b>>2]|0)+96>>2]|0);jw(c[(c[b>>2]|0)+108>>2]|0);jw(c[(c[b>>2]|0)+100>>2]|0);jw(c[(c[b>>2]|0)+104>>2]|0);Oo(a,122254)|0;return}function nB(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;a=c[e>>2]|0;b=c[a+8>>2]|0;if(b){d=0;while(1){a=c[b>>2]|0;if((d|0)>=(c[b+4>>2]|0))break;XI(c[a+(d*48|0)>>2]|0);d=d+1|0;b=c[(c[e>>2]|0)+8>>2]|0}XI(a);XI(c[(c[e>>2]|0)+8>>2]|0);a=c[e>>2]|0}c[a+8>>2]=0;return}function oB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=xm(a,b,c,0)|0;if(!e)e=xm(a,b,c,d)|0;return e|0}function pB(a,b){a=a|0;b=b|0;return uJ(c[a>>2]|0,c[b>>2]|0)|0}function qB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+1072|0;k=q+8|0;j=q;i=q+16|0;o=q+24|0;c[i>>2]=b;if((c[42364]|0)!=(d|0)){c[42364]=d;a[174076]=0}bm(o,1024,q+40|0);p=o+4|0;n=o+8|0;while(1){f=b+1|0;c[i>>2]=f;e=a[b>>0]|0;if(!(e<<24>>24))break;do if((e&255)<192)if(e<<24>>24==38){f=sB(i)|0;if(!f)e=38;else{if(f>>>0<127){e=f&255;break}b=c[p>>2]|0;e=b>>>0>=(c[n>>2]|0)>>>0;if(f>>>0<2047){if(e){cm(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=f>>>6|192;e=(f&63|128)&255;break}if(e){cm(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=f>>>12|224;b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){cm(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=f>>>6&63|128;e=(f&63|128)&255}}else{h=0;m=9}else if((e&255)>=224)if((e&255)>=240)if((e&255)<248){h=3;m=9}else{if(!(a[174076]|0)){c[j>>2]=Cn(d)|0;Zl(0,94473,j)|0;a[174076]=1}h=-1;e=rB(e,o)|0;m=9}else{h=2;m=9}else{h=1;m=9}while(0);do if((m|0)==9){m=0;g=0;while(1){if((g|0)>=(h|0)){m=34;break}if((a[f>>0]&-64)<<24>>24!=-128)break;b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){cm(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=e;g=g+1|0;e=a[f>>0]|0;f=f+1|0}if((m|0)==34){m=0;c[i>>2]=f;break}c[i>>2]=f;if(!(a[174076]|0)){g=Cn(d)|0;c[k>>2]=h+1;c[k+4>>2]=g;Zl(0,94594,k)|0;a[174076]=1}e=rB(e,o)|0}while(0);b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){cm(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=e;b=c[i>>2]|0}b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){cm(o,1)|0;b=c[p>>2]|0}a[b>>0]=0;n=c[o>>2]|0;c[p>>2]=n;p=CL(n)|0;fm(o);l=q;return p|0}function rB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+16|0;g=j;a[g>>0]=b;a[g+1>>0]=0;g=tB(g)|0;h=d+4|0;i=d+8|0;e=oJ(g)|0;f=g;while(1){if((e|0)<=1)break;b=c[h>>2]|0;if(b>>>0>=(c[i>>2]|0)>>>0){cm(d,1)|0;b=c[h>>2]|0}k=a[f>>0]|0;c[h>>2]=b+1;a[b>>0]=k;e=e+-1|0;f=f+1|0}k=a[f>>0]|0;XI(g);l=j;return k|0}function sB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i;d=i+8|0;e=c[b>>2]|0;a:do if((a[e>>0]|0)!=35){c[h>>2]=d;g=0;b:while(1){if((g|0)>=8){d=0;break a}f=a[e+g>>0]|0;switch(f<<24>>24){case 0:{d=0;break a}case 59:break b;default:{}}a[d>>0]=f;d=d+1|0;g=g+1|0}a[d>>0]=0;d=rM(h,22648,252,8,30)|0;if(!d)d=0;else{e=e+(g+1)|0;d=c[d+4>>2]|0}}else{h=a[e+1>>0]|0;d=h&255;c:do if((h|32)<<24>>24==120){h=0;g=2;while(1){if((g|0)>=8){f=h;break c}f=a[e+g>>0]|0;d=f&255;if((f+-65&255)>=6)if((f+-97&255)>=6)if((f+-48&255)<10)f=-48;else{f=h;break c}else f=-87;else f=-55;d=f+d|0;h=d+(h<<4)|0;g=g+1|0}}else{f=0;g=1;while(1){if((g|0)>=8)break c;h=a[e+g>>0]|0;d=h&255;if((h+-48&255)>=10)break c;f=(f*10|0)+-48+d|0;g=g+1|0}}while(0);d=(d|0)==59;e=d?e+(g+1)|0:e;d=d?f:0}while(0);c[b>>2]=e;l=i;return d|0}function tB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+1056|0;g=k;i=k+8|0;c[g>>2]=b;bm(i,1024,k+24|0);j=i+4|0;h=i+8|0;while(1){c[g>>2]=b+1;d=a[b>>0]|0;if(!(d<<24>>24))break;b=d&255;if(d<<24>>24==38){b=sB(g)|0;if(!b){b=38;f=6}else f=5}else f=5;do if((f|0)==5){f=0;if(b>>>0<127)f=6;else{d=c[j>>2]|0;e=d>>>0>=(c[h>>2]|0)>>>0;if(b>>>0<2047){if(e){cm(i,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>6|192;d=c[j>>2]|0;if(d>>>0>=(c[h>>2]|0)>>>0){cm(i,1)|0;d=c[j>>2]|0}b=b&63|128;break}if(e){cm(i,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>12|224;d=c[j>>2]|0;if(d>>>0>=(c[h>>2]|0)>>>0){cm(i,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>6&63|128;d=c[j>>2]|0;if(d>>>0>=(c[h>>2]|0)>>>0){cm(i,1)|0;d=c[j>>2]|0}b=b&63|128}}while(0);if((f|0)==6){d=c[j>>2]|0;if(d>>>0>=(c[h>>2]|0)>>>0){cm(i,1)|0;d=c[j>>2]|0}}c[j>>2]=d+1;a[d>>0]=b;b=c[g>>2]|0}b=c[j>>2]|0;if(b>>>0>=(c[h>>2]|0)>>>0){cm(i,1)|0;b=c[j>>2]|0}a[b>>0]=0;h=c[i>>2]|0;c[j>>2]=h;j=CL(h)|0;fm(i);l=k;return j|0}function uB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+1040|0;g=i;bm(g,1024,i+16|0);h=g+4|0;f=g+8|0;while(1){d=b+1|0;e=a[b>>0]|0;if(!(e<<24>>24))break;if((e&255)<127){b=c[h>>2]|0;if(b>>>0>=(c[f>>2]|0)>>>0){cm(g,1)|0;b=c[h>>2]|0}c[h>>2]=b+1;a[b>>0]=e;b=d;continue}else{e=a[d>>0]&63|e<<6&255;d=c[h>>2]|0;if(d>>>0>=(c[f>>2]|0)>>>0){cm(g,1)|0;d=c[h>>2]|0}c[h>>2]=d+1;a[d>>0]=e;b=b+2|0;continue}}b=c[h>>2]|0;if(b>>>0>=(c[f>>2]|0)>>>0){cm(g,1)|0;b=c[h>>2]|0}a[b>>0]=0;f=c[g>>2]|0;c[h>>2]=f;h=CL(f)|0;fm(g);l=i;return h|0}function vB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+80|0;e=n+48|0;d=n+32|0;f=n+64|0;g=n+16|0;i=n;j=b+16|0;k=a+16|0;m=c[k>>2]|0;if(((+h[j>>3]>=+h[m+48>>3]?+h[m+64>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=+h[m+56>>3]:0)?+h[m+72>>3]>=+h[b+8>>3]:0){m=m+16|0;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[d+12>>2]=c[j+12>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];wB(g,d,e);c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];aB(i,d,e);c[f>>2]=a;c[f+4>>2]=0;d=c[(c[(c[(c[k>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0;c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];d=ab[d&63](f,e)|0}else d=0;l=n;return d|0}function wB(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=(+h[c+8>>3]+ +h[b+8>>3])*.5;h[a>>3]=(+h[c>>3]+ +h[b>>3])*.5;h[a+8>>3]=d;return}function xB(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0;e=l;l=l+80|0;j=e+64|0;k=e+48|0;m=e;n=e+32|0;g=e+16|0;h[m>>3]=+h[a+24>>3]*.5;h[m+8>>3]=+h[a+32>>3]*.5;a=a+56|0;c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];aB(n,k,j);i=+h[n>>3];f=+h[n+8>>3];c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];bB(g,k,j);d=+h[g+8>>3];if((+h[b+16>>3]>=i?+h[g>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=f:0)a=d>=+h[b+8>>3]&1;else a=0;l=e;return a|0}function yB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+80|0;k=n+48|0;j=n;h=a+16|0;a=c[h>>2]|0;i=c[a+8>>2]|0;a:do if((i|0)!=0?(g=i+8|0,c[j>>2]=c[g>>2],c[j+4>>2]=c[g+4>>2],c[j+8>>2]=c[g+8>>2],c[j+12>>2]=c[g+12>>2],c[j+16>>2]=c[g+16>>2],c[j+20>>2]=c[g+20>>2],c[j+24>>2]=c[g+24>>2],c[j+28>>2]=c[g+28>>2],c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(zB(j,k)|0)!=0):0){d=i+4|0;a=0;while(1){if((a|0)>=(c[d>>2]|0))break;e=j;f=(c[i>>2]|0)+(a*48|0)|0;g=e+48|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];c[k+16>>2]=c[b+16>>2];c[k+20>>2]=c[b+20>>2];c[k+24>>2]=c[b+24>>2];c[k+28>>2]=c[b+28>>2];if(!((AB(j,k)|0)<<24>>24))a=a+1|0;else{a=1;break a}}a=c[h>>2]|0;m=7}else m=7;while(0);do if((m|0)==7){a=c[a+96>>2]|0;if(a|0?(c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(xB(a,k)|0)<<24>>24):0){a=1;break}a=0}while(0);l=n;return a|0}+function ri(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=a+16|0;i=qw((b[(c[h>>2]|0)+238>>1]<<2)+8|0)|0;g=bo(a)|0;while(1){if(!g)break;f=i+(c[(c[g+16>>2]|0)+232>>2]<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=Om(a,g)|0;while(1){if(!f)break;j=c[f>>2]&3;d=c[(c[(c[((j|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;j=c[(c[(c[((j|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;k=(d|0)>(j|0);e=k?d:j;d=k?j:d;while(1){d=d+1|0;if((d|0)>=(e|0))break;k=i+(d<<2)|0;c[k>>2]=(c[k>>2]|0)+1}f=Qm(a,f)|0}g=co(a,g)|0}f=qw((b[(c[h>>2]|0)+238>>1]<<6)+128|0)|0;e=c[h>>2]|0;c[e+196>>2]=f;d=b[e+236>>1]|0;while(1){if((d|0)>(b[e+238>>1]|0))break;j=i+(d<<2)|0;e=c[j>>2]|0;c[f+(d<<6)>>2]=e;c[f+(d<<6)+8>>2]=e;j=qw((c[j>>2]<<2)+4|0)|0;e=c[h>>2]|0;k=c[e+196>>2]|0;c[k+(d<<6)+4>>2]=j;c[k+(d<<6)+12>>2]=j;d=d+1|0;f=k}XI(i);return}function si(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0;m=a+16|0;i=1;while(1){g=c[m>>2]|0;if((i|0)>(c[g+180>>2]|0))break;l=si(c[(c[g+184>>2]|0)+(i<<2)>>2]|0,d,e,f)|0;i=i+1|0;f=l}a:do if((Uf(a)|0)!=(a|0)){RN(d|0,0,e<<2|0)|0;g=bo(a)|0;while(1){if(!g)break;k=g+16|0;c[d+(c[(c[k>>2]|0)+232>>2]<<2)>>2]=1;i=Om(a,g)|0;while(1){if(!i)break;l=i+-48|0;j=c[(c[k>>2]|0)+232>>2]|0;while(1){e=j+1|0;if((j|0)>=(c[(c[(c[((c[i>>2]&3|0)==2?i:l)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;c[d+(e<<2)>>2]=1;j=e}i=Qm(a,i)|0}g=co(a,g)|0}g=c[m>>2]|0;i=b[g+236>>1]|0;while(1){if((i|0)>(b[g+238>>1]|0))break a;if(!(c[d+(i<<2)>>2]|0)){if(!f)f=Gp(Uf(a)|0,79522,1)|0;g=mo(f,0,1)|0;Mo(g,122241,304,1)|0;l=g+16|0;j=c[l>>2]|0;c[j+232>>2]=i;h[j+96>>3]=.5;h[j+88>>3]=.5;h[j+80>>3]=1.0;c[j+216>>2]=1;c[j+176>>2]=0;j=qw(20)|0;k=c[l>>2]|0;c[k+172>>2]=j;c[k+184>>2]=0;k=qw(20)|0;c[(c[l>>2]|0)+180>>2]=k;ho(a,g,1)|0;g=c[m>>2]|0}i=i+1|0}}while(0);return f|0}function ti(a){a=a|0;var b=0,d=0;Jh(a);b=a+16|0;a=1;while(1){d=c[b>>2]|0;if((a|0)>(c[d+180>>2]|0))break;ti(c[(c[d+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0}return}function ui(a){a=a|0;var b=0,d=0;b=c[a>>2]&3;d=vi(c[((b|0)==3?a:a+48|0)+40>>2]|0)|0;b=c[17236+(d*12|0)+((vi(c[((b|0)==2?a:a+-48|0)+40>>2]|0)|0)<<2)>>2]|0;a=(c[a+16>>2]|0)+156|0;c[a>>2]=O(c[a>>2]|0,b)|0;return}function vi(b){b=b|0;b=c[b+16>>2]|0;if((a[b+156>>0]|0)==1)b=2;else b=(a[b+160>>0]|0)<2&1;return b|0}function wi(b,d){b=b|0;d=d|0;if(c[(c[b+16>>2]|0)+192>>2]|0){Xk(b);xi(b);if(a[174072]|0)jl(b);yi(b);if(Bl(b)|0)xi(b);zi(b);if(bx(b,2,Ai(b)|0)|0?(Bi(b),bx(b,2,Ai(b)|0)|0):0)ma(79540,79568,134,79579);Ci(b);Di(b,d);Ei(b)}return}function xi(d){d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;v=d+16|0;e=c[v>>2]|0;w=c[e+196>>2]|0;t=b[e+236>>1]|0;while(1){if((t|0)>(b[e+238>>1]|0))break;n=w+(t<<6)|0;o=w+(t<<6)+4|0;p=w+(t<<6)+40|0;q=w+(t<<6)+24|0;r=w+(t<<6)+32|0;s=w+(t<<6)+16|0;m=0;while(1){if((m|0)>=(c[n>>2]|0))break;l=(c[(c[o>>2]|0)+(m<<2)>>2]|0)+16|0;e=c[l>>2]|0;j=+h[e+80>>3]*.5;i=c[e+204>>2]|0;a:do if(i){g=0;while(1){f=c[i+(g<<2)>>2]|0;if(!f)break a;x=c[f>>2]&3;if((c[((x|0)==3?f:f+48|0)+40>>2]|0)==(c[((x|0)==2?f:f+-48|0)+40>>2]|0)?(u=c[(c[f+16>>2]|0)+96>>2]|0,(u|0)!=0):0){k=+h[u+32>>3]*.5;j=j>k?j:k}g=g+1|0}}while(0);if(+h[p>>3]<j){h[q>>3]=j;h[p>>3]=j}if(+h[r>>3]<j){h[s>>3]=j;h[r>>3]=j}f=c[e+212>>2]|0;if(f|0){if((f|0)==(d|0))g=0;else{g=yA(f,c[42187]|0,8,0)|0;e=c[l>>2]|0}i=c[e+232>>2]|0;f=c[f+16>>2]|0;e=f+128|0;j=j+ +(g|0);if((i|0)==(b[f+236>>1]|0)){k=+h[e>>3];h[e>>3]=k>j?k:j}e=f+120|0;if((i|0)==(b[f+238>>1]|0)){k=+h[e>>3];h[e>>3]=k>j?k:j}}m=m+1|0}t=t+1|0;e=c[v>>2]|0}m=dj(d)|0;g=c[v>>2]|0;e=b[g+238>>1]|0;h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+h[w+(e<<6)+16>>3];f=b[g+236>>1]|0;i=g+252|0;k=0.0;while(1){l=e+-1|0;if((e|0)<=(f|0))break;y=+h[w+(l<<6)+32>>3]+ +h[w+(e<<6)+40>>3]+ +(c[i>>2]|0);j=+h[w+(e<<6)+24>>3]+8.0+ +h[w+(l<<6)+16>>3];j=y>j?y:j;if((c[w+(l<<6)>>2]|0)>0)h[(c[(c[c[w+(l<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+j;k=k>j?k:j;e=l}b:do if((m|0)!=0?(c[g+116>>2]&1|0)!=0:0){ej(d,0);g=c[v>>2]|0;if(a[g+276>>0]|0){e=b[g+238>>1]|0;f=b[g+236>>1]|0;j=+h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];k=0.0;while(1){i=e+-1|0;if((e|0)<=(f|0))break b;z=+h[(c[(c[c[w+(i<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];y=z-j;j=z;k=k>y?k:y;e=i}}}while(0);c:do if(a[g+276>>0]|0){i=b[g+236>>1]|0;f=b[g+238>>1]|0;while(1){e=f+-1|0;if((f|0)<=(i|0))break c;if((c[w+(e<<6)>>2]|0)<=0){f=e;continue}h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+h[(c[(c[c[w+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+k;f=e}}while(0);e=g+192|0;while(1){e=c[e>>2]|0;if(!e)break;e=c[e+16>>2]|0;h[e+24>>3]=+h[(c[(c[c[w+(c[e+232>>2]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];e=e+164|0}return}function yi(a){a=a|0;var b=0,d=0,e=0;$i(a);b=(c[a+16>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;e=b+16|0;b=c[e>>2]|0;d=c[b+224>>2]|0;if(d){aj(a,d);b=c[e>>2]|0}d=c[b+228>>2]|0;if(!d)d=b;else{aj(a,d);d=c[e>>2]|0}e=c[d+204>>2]|0;if(e|0){b=0;while(1)if(!(c[e+(b<<2)>>2]|0))break;else b=b+1|0}b=d+164|0}return}function zi(a){a=a|0;Ni(a);Oi(a);Pi(a);Qi(a);Ri(a);return}function Ai(a){a=a|0;var b=0,c=0.0;b=Hm(a,79768)|0;if(!b)a=2147483647;else{c=+oM(b);a=~~(c*+(ln(a)|0))}return a|0}function Bi(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=d+16|0;e=c[r>>2]|0;q=b[e+236>>1]|0;while(1){p=b[e+238>>1]|0;if((q|0)>(p|0)){s=19;break}n=c[e+196>>2]|0;o=n+(q<<6)|0;m=c[o>>2]|0;n=n+(q<<6)+4|0;l=0;f=0;a:while(1){if((l|0)>=(m|0)){s=14;break}f=c[(c[n>>2]|0)+(l<<2)>>2]|0;h=c[f+16>>2]|0;i=c[h+256>>2]|0;b:do if(i|0){g=0;while(1){j=c[i+(g<<2)>>2]|0;if(!j)break b;k=c[j>>2]&3;if((c[(c[(c[((k|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;if((c[(c[(c[((k|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;else g=g+1|0}}while(0);h=c[h+248>>2]|0;c:do if(h|0){g=0;while(1){i=c[h+(g<<2)>>2]|0;if(!i)break c;j=c[i>>2]&3;if((c[(c[(c[((j|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;if((c[(c[(c[((j|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;else g=g+1|0}}while(0);l=l+1|0}if((s|0)==14){s=0;if(f){f=c[c[n>>2]>>2]|0;e=c[c[o+(((q|0)<(p|0)?1:-1)<<6)+4>>2]>>2]|0;if(!e){s=16;break}o=eh(d)|0;p=o+16|0;a[(c[p>>2]|0)+156>>0]=2;Li(o,f,0.0,0)|0;Li(o,e,0.0,0)|0;c[(c[p>>2]|0)+232>>2]=c[(c[((c[(c[f+16>>2]|0)+232>>2]|0)<(c[(c[e+16>>2]|0)+232>>2]|0)?f:e)+16>>2]|0)+232>>2];e=c[r>>2]|0}}q=q+1|0}if((s|0)==16)ma(79676,79568,111,79679);else if((s|0)==19)return}function Ci(a){a=a|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;a=c[a+16>>2]|0;i=c[a+196>>2]|0;e=b[a+238>>1]|0;a=b[a+236>>1]|0;while(1){if((a|0)>(e|0))break;f=c[i+(a<<6)>>2]|0;g=i+(a<<6)+4|0;d=0;while(1){if((d|0)>=(f|0))break;k=c[(c[(c[g>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;j=k+232|0;h[k+16>>3]=+(c[j>>2]|0);c[j>>2]=a;d=d+1|0}a=a+1|0}return}function Di(a,d){a=a|0;d=d|0;var e=0,f=0.0,g=0,i=0.0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0;Fi(a,a);g=a+16|0;k=c[g>>2]|0;a:do if((b[k+238>>1]|0)>0?(j=c[k+8>>2]|0,e=c[j+84>>2]|0,e|0):0){o=~~(+h[k+32>>3]-+h[k+16>>3]);m=~~(+h[k+40>>3]-+h[k+24>>3]);p=(c[k+116>>2]&1|0)==0;n=p?m:o;m=p?o:m;if((e|0)==4){e=Gi(a)|0;k=c[g>>2]|0;j=c[k+8>>2]|0}else e=(e|0)==2&1;b:do if(!(e<<24>>24)){switch(c[j+84>>2]|0){case 5:{f=+h[j+64>>3];if(f<=0.0)break a;i=f/+h[k+32>>3];l=+h[j+72>>3]/+h[k+40>>3];f=i<l?i:l;if(i>1.0&l>1.0){l=f;break b}else break a}case 1:break;default:break a}i=+h[j+16>>3];f=+(n|0)/+(m|0);if(f<i){l=1.0;f=i/f;break}else{l=f/i;f=1.0;break}}else{f=+h[j+64>>3];if(f<=0.0)break a;i=f/+(m|0);f=+h[j+72>>3]/+(n|0);if(i<1.0|f<1.0)if(i<f){l=1.0;f=f/i;break}else{l=i/f;f=1.0;break}else l=i}while(0);e=(c[k+116>>2]&1|0)==0;i=e?f:l;f=e?l:f;e=k+192|0;while(1){e=c[e>>2]|0;if(!e)break;e=c[e+16>>2]|0;p=e+16|0;l=+h[p>>3]*f;h[p>>3]=+(~~(l+(l>=0.0?.5:-.5))|0);p=e+24|0;l=+h[p>>3]*i;h[p>>3]=+(~~(l+(l>=0.0?.5:-.5))|0);e=e+164|0}Hi(a,f,i)}while(0);if(d|0)Ii(a,d);return}function Ei(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=b+16|0;b=(c[h>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;g=b+16|0;d=0;while(1){b=c[g>>2]|0;f=c[b+180>>2]|0;e=c[f+(d<<2)>>2]|0;if(!e)break;XI(c[e+16>>2]|0);XI(e);d=d+1|0}if(f){XI(f);b=c[g>>2]|0}d=c[b+172>>2]|0;if(d){XI(d);b=c[g>>2]|0}f=b+256|0;e=c[f+4>>2]|0;b=b+180|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;b=c[g>>2]|0;e=b+248|0;f=c[e+4>>2]|0;b=b+172|0;c[b>>2]=c[e>>2];c[b+4>>2]=f;b=(c[g>>2]|0)+164|0}b=0;d=c[(c[h>>2]|0)+192>>2]|0;a:while(1){g=(b|0)==0;f=b+16|0;b=d;while(1){if(!b)break a;e=c[b+16>>2]|0;d=c[e+164>>2]|0;if((a[e+156>>0]|0)!=2)continue a;if(g)c[(c[h>>2]|0)+192>>2]=d;else c[(c[f>>2]|0)+164>>2]=d;XI(e);XI(b);b=d}}c[(c[(c[(c[h>>2]|0)+192>>2]|0)+16>>2]|0)+168>>2]=0;return}function Fi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+16|0;d=1;while(1){f=c[e>>2]|0;if((d|0)>(c[f+180>>2]|0))break;Fi(c[(c[f+184>>2]|0)+(d<<2)>>2]|0,b);d=d+1|0}Ki(a,b);return}function Gi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0;s=l;l=l+80|0;e=s+64|0;d=s+48|0;f=s+16|0;m=s;r=s+32|0;a=a+16|0;b=c[(c[a>>2]|0)+8>>2]|0;t=b+48|0;c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];if((!(+h[f>>3]<.001)?(g=f+8|0,!(+h[g>>3]<.001)):0)?(i=b+32|0,c[m>>2]=c[i>>2],c[m+4>>2]=c[i+4>>2],c[m+8>>2]=c[i+8>>2],c[m+12>>2]=c[i+12>>2],c[d>>2]=c[f>>2],c[d+4>>2]=c[f+4>>2],c[d+8>>2]=c[f+8>>2],c[d+12>>2]=c[f+12>>2],c[e>>2]=c[i>>2],c[e+4>>2]=c[i+4>>2],c[e+8>>2]=c[i+8>>2],c[e+12>>2]=c[i+12>>2],Ji(r,d,e),c[f>>2]=c[r>>2],c[f+4>>2]=c[r+4>>2],c[f+8>>2]=c[r+8>>2],c[f+12>>2]=c[r+12>>2],c[d>>2]=c[r>>2],c[d+4>>2]=c[r+4>>2],c[d+8>>2]=c[r+8>>2],c[d+12>>2]=c[r+12>>2],c[e>>2]=c[m>>2],c[e+4>>2]=c[m+4>>2],c[e+8>>2]=c[m+8>>2],c[e+12>>2]=c[m+12>>2],Ji(f,d,e),i=c[a>>2]|0,j=+h[i+32>>3],k=+h[i+40>>3],n=+h[f>>3],o=n/j,p=+h[g>>3],q=p/k,!(o>=1.0&q>=1.0)):0){o=o<q?o:q;o=o>.5?o:.5;q=+N(+(o*k/p))*p/k;p=+N(+(o*j/n))*n/j*j;a=c[i+8>>2]|0;h[a+64>>3]=p;h[a+72>>3]=q*k;a=1}else a=0;l=s;return a|0}function Hi(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0;e=a+16|0;a=1;while(1){f=c[e>>2]|0;if((a|0)>(c[f+180>>2]|0))break;Hi(c[(c[f+184>>2]|0)+(a<<2)>>2]|0,b,d);a=a+1|0}e=f+16|0;h[e>>3]=+h[e>>3]*b;e=f+24|0;h[e>>3]=+h[e>>3]*d;e=f+32|0;h[e>>3]=+h[e>>3]*b;f=f+40|0;h[f>>3]=+h[f>>3]*d;return}function Ii(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;j=m+24|0;g=m+16|0;f=m;n=c[a+16>>2]|0;e=+h[n+32>>3]-+h[n+16>>3];d=+h[n+40>>3]-+h[n+24>>3];i=e/d;if(0){n=c[13918]|0;h[f>>3]=i;h[f+8>>3]=e*.0001*d;vL(n,79592,f)|0;c[g>>2]=jk(a)|0;vL(n,79617,g)|0}d=+h[b>>3];do if(!(i>d*1.1)){a=b+24|0;if(!(i<=d*.8)){c[a>>2]=0;k=9;break}c[a>>2]=-1;if(0){TL(79627,34,1,c[13918]|0)|0;k=9}}else{c[b+24>>2]=~~(d*+((c[b+20>>2]|0)-(c[b+16>>2]|0)|0)/i);k=9}while(0);if((k|0)==9?0:0){n=c[13918]|0;c[j>>2]=c[b+24>>2];vL(n,79662,j)|0}l=m;return}function Ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]-+h[c+8>>3];h[a>>3]=+h[b>>3]-+h[c>>3];h[a+8>>3]=d;return}function Ki(d,e){d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0;s=(Uf(d)|0)==(d|0);v=d+16|0;w=c[v>>2]|0;a:do if(s){f=b[w+236>>1]|0;d=b[w+238>>1]|0;q=d<<16>>16;r=w+196|0;s=w+196|0;p=f<<16>>16;i=-2147483647.0;g=2147483647.0;while(1){if((p|0)>(q|0))break;j=c[r>>2]|0;o=c[j+(p<<6)>>2]|0;if((o|0)!=0?(t=c[j+(p<<6)+4>>2]|0,u=c[t>>2]|0,(u|0)!=0):0){l=1;j=u;while(1){j=c[j+16>>2]|0;k=a[j+156>>0]|0;if(!((l|0)<(o|0)&k<<24>>24!=0))break;j=c[t+(l<<2)>>2]|0;l=l+1|0}if(!(k<<24>>24)){m=+h[j+16>>3]-+h[j+88>>3];n=g<m;l=c[(c[s>>2]|0)+(p<<6)+4>>2]|0;k=o+-2|0;j=o+-1|0;while(1){j=c[(c[l+(j<<2)>>2]|0)+16>>2]|0;if(!(a[j+156>>0]|0))break;else{j=k;k=k+-1|0}}x=+h[j+96>>3]+ +h[j+16>>3];i=i>x?i:x;g=n?g:m}}p=p+1|0}k=c[w+180>>2]|0;l=w+184|0;j=1;while(1){if((j|0)>(k|0))break a;u=c[(c[(c[l>>2]|0)+(j<<2)>>2]|0)+16>>2]|0;x=+h[u+16>>3]+-8.0;m=+h[u+32>>3]+8.0;j=j+1|0;i=i>m?i:m;g=g<x?g:x}}else{i=+(c[(c[(c[w+260>>2]|0)+16>>2]|0)+232>>2]|0);g=+(c[(c[(c[w+256>>2]|0)+16>>2]|0)+232>>2]|0);f=b[w+236>>1]|0;d=b[w+238>>1]|0}while(0);e=c[(c[e+16>>2]|0)+196>>2]|0;m=+h[(c[(c[c[e+(d<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[w+120>>3];x=+h[w+128>>3]+ +h[(c[(c[c[e+(f<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];h[w+16>>3]=g;h[w+24>>3]=m;e=c[v>>2]|0;h[e+32>>3]=i;h[e+40>>3]=x;return}function Li(a,d,e,f){a=a|0;d=d|0;e=+e;f=f|0;var g=0,h=0,i=0,j=0;i=qw(96)|0;j=i+48|0;c[j>>2]=c[j>>2]|3;c[i>>2]=c[i>>2]&-4|2;g=qw(176)|0;h=i+16|0;c[h>>2]=g;c[((c[i>>2]&3|0)==3?i:j)+40>>2]=a;c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]=d;if(e>65535.0){Mi(e);e=65535.0;g=c[h>>2]|0}b[g+170>>1]=~~(e+(e>=0.0?.5:-.5));c[g+156>>2]=f;Ug(i)|0;return i|0}function Mi(a){a=+a;var b=0,d=0;b=l;l=l+16|0;d=b;h[d>>3]=a;c[d+8>>2]=65535;Zl(1,79692,d)|0;l=b;return}function Ni(a){a=a|0;var b=0,d=0,e=0,f=0;a=(c[a+16>>2]|0)+192|0;while(1){a=c[a>>2]|0;if(!a)break;f=a+16|0;e=c[f>>2]|0;a=e+172|0;d=c[a+4>>2]|0;e=e+248|0;c[e>>2]=c[a>>2];c[e+4>>2]=d;e=c[f>>2]|0;d=e+180|0;a=c[d+4>>2]|0;e=e+256|0;c[e>>2]=c[d>>2];c[e+4>>2]=a;e=c[f>>2]|0;a=c[e+180>>2]|0;d=0;while(1)if(!(c[a+(d<<2)>>2]|0))break;else d=d+1|0;b=c[e+172>>2]|0;a=0;while(1)if(!(c[b+(a<<2)>>2]|0))break;else a=a+1|0;c[e+176>>2]=0;a=qw((a+d<<2)+16|0)|0;e=c[f>>2]|0;c[e+172>>2]=a;c[e+184>>2]=0;e=qw(16)|0;a=c[f>>2]|0;c[a+180>>2]=e;a=a+164|0}return}function Oi(d){d=d|0;var f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0;z=l;l=l+16|0;w=z;x=d+16|0;u=c[x>>2]|0;y=c[u+196>>2]|0;d=(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1)!=0;v=c[u+248>>2]|0;c[w>>2]=v;c[w+4>>2]=d?5:v;v=b[u+236>>1]|0;d=u;while(1){if((v|0)>(b[d+238>>1]|0))break;r=y+(v<<6)+4|0;c[(c[(c[c[r>>2]>>2]|0)+16>>2]|0)+232>>2]=0;s=y+(v<<6)|0;t=+(c[w+((v&1)<<2)>>2]|0);p=0.0;k=0;a:while(1){if((k|0)>=(c[s>>2]|0))break;f=c[r>>2]|0;m=c[f+(k<<2)>>2]|0;u=m+16|0;d=c[u>>2]|0;i=+h[d+96>>3];h[d+240>>3]=i;if((c[d+208>>2]|0)>0){j=0;f=0;while(1){g=c[(c[d+204>>2]|0)+(j<<2)>>2]|0;if(!g)break;q=c[g>>2]&3;if((c[((q|0)==3?g:g+48|0)+40>>2]|0)==(c[((q|0)==2?g:g+-48|0)+40>>2]|0)){f=(Lz(g)|0)+f|0;d=c[u>>2]|0}j=j+1|0}q=d+96|0;i=+h[q>>3]+ +(f|0);h[q>>3]=i;f=c[r>>2]|0}q=k+1|0;f=c[f+(q<<2)>>2]|0;if(f){o=f+16|0;i=i+t+ +h[(c[o>>2]|0)+88>>3];Li(m,f,i,0)|0;d=~~(i+p);c[(c[o>>2]|0)+232>>2]=d;p=+(d|0);d=c[u>>2]|0}f=c[d+112>>2]|0;if(f){j=c[d+256>>2]|0;k=c[j>>2]|0;j=c[j+4>>2]|0;d=(c[(c[(c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0);g=d?j:k;j=d?k:j;k=f+16|0;d=c[k>>2]|0;i=+((O(c[(c[x>>2]|0)+248>>2]|0,e[d+170>>1]|0)|0)/2|0|0);o=c[g>>2]&3;f=c[((o|0)==2?g:g+-48|0)+40>>2]|0;g=c[((o|0)==3?g:g+48|0)+40>>2]|0;if(!(Zi(g,f)|0))Li(f,g,+(~~(+h[(c[f+16>>2]|0)+96>>3]+i+ +h[(c[g+16>>2]|0)+88>>3])|0),c[d+156>>2]|0)|0;d=c[j>>2]&3;f=c[((d|0)==3?j:j+48|0)+40>>2]|0;d=c[((d|0)==2?j:j+-48|0)+40>>2]|0;if(!(Zi(d,f)|0)){Li(f,d,+(~~(+h[(c[f+16>>2]|0)+96>>3]+i+ +h[(c[d+16>>2]|0)+88>>3])|0),c[(c[k>>2]|0)+156>>2]|0)|0;o=0}else o=0}else o=0;while(1){d=c[u>>2]|0;if((o|0)>=(c[d+192>>2]|0)){k=q;continue a}m=c[(c[d+188>>2]|0)+(o<<2)>>2]|0;k=c[m>>2]&3;g=c[((k|0)==3?m:m+48|0)+40>>2]|0;k=c[((k|0)==2?m:m+-48|0)+40>>2]|0;j=(c[(c[g+16>>2]|0)+236>>2]|0)<(c[(c[k+16>>2]|0)+236>>2]|0);f=j?g:k;g=j?k:g;i=+h[(c[g+16>>2]|0)+88>>3]+ +h[(c[f+16>>2]|0)+96>>3];k=m+16|0;j=~~(i+ +(O(c[(c[x>>2]|0)+248>>2]|0,e[(c[k>>2]|0)+170>>1]|0)|0));n=Rg(f,g)|0;if(!n){d=c[k>>2]|0;if(!(c[d+96>>2]|0))Li(f,g,+(j|0),c[d+156>>2]|0)|0}else{A=+(j|0);d=c[k>>2]|0;B=+h[d+136>>3];i=i+ +(c[(c[x>>2]|0)+248>>2]|0)+ +(~~(B+(B>=0.0?.5:-.5))|0);f=~~(i<A?A:i);if((f|0)>65535){Mi(+(f|0));f=65535;d=c[k>>2]|0}k=c[n+16>>2]|0;j=k+170|0;g=e[j>>1]|0;b[j>>1]=(f|0)<(g|0)?g:f;k=k+156|0;c[k>>2]=c[(c[((c[k>>2]|0)>(c[d+156>>2]|0)?n:m)+16>>2]|0)+156>>2]}o=o+1|0}}v=v+1|0;d=c[x>>2]|0}l=z;return}function Pi(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;d=(c[b+16>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;g=d+16|0;d=c[g>>2]|0;e=c[d+256>>2]|0;a:do if(e){f=0;while(1){e=c[e+(f<<2)>>2]|0;if(!e)break a;n=eh(b)|0;d=n+16|0;a[(c[d>>2]|0)+156>>0]=2;l=e+16|0;k=c[l>>2]|0;i=~~(+h[k+56>>3]-+h[k+16>>3]);m=(i|0)>0;j=m?0:0-i|0;i=m?i:0;m=e+48|0;Li(n,c[((c[e>>2]&3|0)==3?e:m)+40>>2]|0,+(i+1|0),c[k+156>>2]|0)|0;k=e+-48|0;Li(n,c[((c[e>>2]&3|0)==2?e:k)+40>>2]|0,+(j+1|0),c[(c[l>>2]|0)+156>>2]|0)|0;l=c[e>>2]&3;i=(c[(c[(c[((l|0)==3?e:m)+40>>2]|0)+16>>2]|0)+232>>2]|0)-i|0;e=(c[(c[(c[((l|0)==2?e:k)+40>>2]|0)+16>>2]|0)+232>>2]|0)-j|0;c[(c[d>>2]|0)+232>>2]=((i|0)<(e|0)?i:e)+-1;d=c[g>>2]|0;f=f+1|0;e=c[d+256>>2]|0}}while(0);d=d+164|0}return}function Qi(a){a=a|0;if((c[(c[a+16>>2]|0)+180>>2]|0)>0){Ui(a);Vi(a);Wi(a);Xi(a)}return}function Ri(a){a=a|0;var b=0.0,d=0.0,e=0,f=0;e=a+16|0;f=c[(c[e>>2]|0)+8>>2]|0;if((c[f+84>>2]|0)==3?(b=+h[f+64>>3],d=+h[f+72>>3],!(d*b<=1.0)):0){Si(a);f=c[e>>2]|0;d=(c[f+116>>2]&1|0)==0?b:d;Li(c[f+256>>2]|0,c[f+260>>2]|0,d<65535.0?d:65535.0,1e3)|0}return}function Si(a){a=a|0;var d=0,e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;m=n;e=yA(a,c[42187]|0,8,0)|0;Ti(a);i=a+16|0;g=c[i>>2]|0;j=c[g+256>>2]|0;k=c[g+260>>2]|0;f=+(e|0);e=b[g+236>>1]|0;while(1){if((e|0)>(b[g+238>>1]|0))break;d=c[g+196>>2]|0;do if(c[d+(e<<6)>>2]|0){d=c[c[d+(e<<6)+4>>2]>>2]|0;if(!d){c[m>>2]=Cn(a)|0;c[m+4>>2]=e;Zl(1,79776,m)|0;break}else{Li(j,d,+h[(c[d+16>>2]|0)+88>>3]+f+ +h[g+96>>3],0)|0;g=c[i>>2]|0;d=c[g+196>>2]|0;d=c[(c[d+(e<<6)+4>>2]|0)+((c[d+(e<<6)>>2]|0)+-1<<2)>>2]|0;Li(d,k,+h[(c[d+16>>2]|0)+96>>3]+f+ +h[g+64>>3],0)|0;break}}while(0);e=e+1|0;g=c[i>>2]|0}l=n;return}function Ti(b){b=b|0;var d=0,e=0,f=0;d=b+16|0;if(!(c[(c[d>>2]|0)+256>>2]|0)){f=eh(Uf(b)|0)|0;a[(c[f+16>>2]|0)+156>>0]=2;e=eh(Uf(b)|0)|0;a[(c[e+16>>2]|0)+156>>0]=2;if((c[(c[d>>2]|0)+12>>2]|0?(Uf(b)|0)!=(b|0):0)?(c[(c[(ro(b)|0)+16>>2]|0)+116>>2]&1|0)==0:0){b=c[d>>2]|0;Li(f,e,+(~~+h[b+48+((+h[b+48>>3]>+h[b+80>>3]?0:2)<<4)>>3]|0),0)|0}d=c[d>>2]|0;c[d+256>>2]=f;c[d+260>>2]=e}return}function Ui(a){a=a|0;var b=0,d=0;do if((Uf(a)|0)!=(a|0)){Si(a);a=a+16|0;b=c[a>>2]|0;b=Rg(c[b+256>>2]|0,c[b+260>>2]|0)|0;if(!b){d=c[a>>2]|0;Li(c[d+256>>2]|0,c[d+260>>2]|0,1.0,128)|0;break}else{d=(c[b+16>>2]|0)+156|0;c[d>>2]=(c[d>>2]|0)+128;break}}else a=a+16|0;while(0);b=1;while(1){d=c[a>>2]|0;if((b|0)>(c[d+180>>2]|0))break;Ui(c[(c[d+184>>2]|0)+(b<<2)>>2]|0);b=b+1|0}return}function Vi(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0;k=yA(d,c[42187]|0,8,0)|0;o=d+16|0;e=c[o>>2]|0;m=+(k|0);k=b[e+236>>1]|0;while(1){if((k|0)>(b[e+238>>1]|0)){f=1;break}e=c[e+196>>2]|0;a:do if(c[e+(k<<6)>>2]|0?(l=c[c[e+(k<<6)+4>>2]>>2]|0,l|0):0){i=l+16|0;f=c[(c[i>>2]|0)+236>>2]|0;while(1){if((f|0)<=0)break;f=f+-1|0;j=c[(c[(c[(c[(Uf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(f<<2)>>2]|0;g=j+16|0;e=c[g>>2]|0;if(!(a[e+156>>0]|0)){n=10;break}if(Yi(d,j)|0){n=9;break}}if((n|0)==9){e=c[g>>2]|0;n=10}if((n|0)==10){n=0;Li(j,c[(c[o>>2]|0)+256>>2]|0,+h[e+96>>3]+m,0)|0}f=(c[(c[(c[o>>2]|0)+196>>2]|0)+(k<<6)>>2]|0)+(c[(c[i>>2]|0)+236>>2]|0)|0;while(1){if((f|0)>=(c[(c[(c[(Uf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)>>2]|0))break a;i=c[(c[(c[(c[(Uf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(f<<2)>>2]|0;g=i+16|0;e=c[g>>2]|0;if(!(a[e+156>>0]|0))break;if(!(Yi(d,i)|0))f=f+1|0;else{n=15;break}}if((n|0)==15){n=0;e=c[g>>2]|0}Li(c[(c[o>>2]|0)+260>>2]|0,i,+h[e+88>>3]+m,0)|0}while(0);k=k+1|0;e=c[o>>2]|0}while(1){if((f|0)>(c[e+180>>2]|0))break;Vi(c[(c[e+184>>2]|0)+(f<<2)>>2]|0);f=f+1|0;e=c[o>>2]|0}return}function Wi(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0;e=yA(a,c[42187]|0,8,0)|0;Ti(a);b=a+16|0;d=+(e|0);a=1;while(1){e=c[b>>2]|0;if((a|0)>(c[e+180>>2]|0))break;e=c[(c[e+184>>2]|0)+(a<<2)>>2]|0;Ti(e);f=c[b>>2]|0;g=e+16|0;Li(c[f+256>>2]|0,c[(c[g>>2]|0)+256>>2]|0,+h[f+96>>3]+d,0)|0;f=c[b>>2]|0;Li(c[(c[g>>2]|0)+260>>2]|0,c[f+260>>2]|0,+h[f+64>>3]+d,0)|0;Wi(e);a=a+1|0}return}function Xi(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0;d=yA(a,c[42187]|0,8,0)|0;n=a+16|0;a=1;while(1){f=c[n>>2]|0;e=c[f+180>>2]|0;if((a|0)>(e|0))break;Ti(c[(c[f+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0}m=+(d|0);l=1;a=e;d=f;while(1){if((l|0)>(a|0))break;k=l+1|0;j=k;while(1){e=c[d+184>>2]|0;f=c[e+(l<<2)>>2]|0;if((j|0)>(a|0))break;e=c[e+(j<<2)>>2]|0;g=(b[(c[f+16>>2]|0)+236>>1]|0)>(b[(c[e+16>>2]|0)+236>>1]|0);i=g?e:f;e=g?f:e;f=c[i+16>>2]|0;g=c[e+16>>2]|0;o=b[g+236>>1]|0;h=o<<16>>16;if((b[f+238>>1]|0)>=o<<16>>16){a=(c[(c[(c[c[(c[f+196>>2]|0)+(h<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[c[(c[g+196>>2]|0)+(h<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0);Li(c[(c[(a?i:e)+16>>2]|0)+260>>2]|0,c[(c[(a?e:i)+16>>2]|0)+256>>2]|0,m,0)|0;a=c[n>>2]|0;d=a;a=c[a+180>>2]|0}j=j+1|0}Xi(f);d=c[n>>2]|0;l=k;a=c[d+180>>2]|0}return}function Yi(b,d){b=b|0;d=d|0;var e=0;d=c[d+16>>2]|0;if((a[d+156>>0]|0)==1){d=c[c[d+256>>2]>>2]|0;while(1){e=c[(c[d+16>>2]|0)+116>>2]|0;if(!e)break;else d=e}if(!(Ao(b,c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0))d=(Ao(b,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0)==0&1;else d=0}else d=0;return d|0}function Zi(a,b){a=a|0;b=b|0;return _i(a,b)|0}function _i(a,b){a=a|0;b=b|0;var d=0,e=0;a:do if((a|0)==(b|0))a=1;else{d=c[(c[a+16>>2]|0)+180>>2]|0;a=0;while(1){e=c[d+(a<<2)>>2]|0;if(!e){a=0;break a}if(!(_i(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,b)|0))a=a+1|0;else{a=1;break}}}while(0);return a|0}function $i(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=d+16|0;d=c[k>>2]|0;j=b[d+236>>1]|0;while(1){if((j|0)>(b[d+238>>1]|0))break;h=c[d+196>>2]|0;g=c[h+(j<<6)>>2]|0;h=h+(j<<6)+4|0;i=0;f=0;while(1){if((f|0)>=(g|0))break;e=c[(c[(c[h>>2]|0)+(f<<2)>>2]|0)+16>>2]|0;c[e+236>>2]=i;if((a[e+159>>0]|0)==6)e=c[e+216>>2]|0;else e=1;i=e+i|0;f=f+1|0}if((i|0)>(g|0)){d=c[h>>2]|0;if(!d)d=rw((i<<2)+4|0)|0;else d=tw(d,(i<<2)+4|0)|0;f=c[(c[k>>2]|0)+196>>2]|0;c[f+(j<<6)+4>>2]=d;e=c[f+(j<<6)>>2]|0;while(1){d=e+-1|0;if((e|0)<=0)break;h=c[f+(j<<6)+4>>2]|0;e=c[h+(d<<2)>>2]|0;c[h+(c[(c[e+16>>2]|0)+236>>2]<<2)>>2]=e;e=d;f=c[(c[k>>2]|0)+196>>2]|0}c[f+(j<<6)>>2]=i;c[(c[f+(j<<6)+4>>2]|0)+(i<<2)>>2]=0;d=c[k>>2]|0}j=j+1|0}return}function aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+48|0;n=o+32|0;m=o+8|0;d=o+24|0;k=o+16|0;j=o;e=b+16|0;f=c[e>>2]|0;a:do if((c[f+216>>2]|0)>=2){c[m>>2]=~~(+h[f+16>>3]-+h[f+88>>3]);c[m+4>>2]=~~+h[f+24>>3];c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];bj(d,b,n);g=d;i=c[g+4>>2]|0;d=m;c[d>>2]=c[g>>2];c[d+4>>2]=i;d=c[e>>2]|0;if((c[d+184>>2]|0)>0){j=c[c[d+180>>2]>>2]|0;d=(c[d+236>>2]|0)+1|0;j=Rm(a,c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)|0;while(1){if(!j)break a;i=(c[j>>2]&3|0)==2?j:j+-48|0;e=i+48|0;f=c[((c[i>>2]&3|0)==3?i:e)+40>>2]|0;if((f|0)!=(b|0)?(FA(f)|0)==(b|0):0){f=c[((c[i>>2]&3|0)==3?i:e)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];cj(k,a,f,n,d);f=k;e=c[f+4>>2]|0;g=m;c[g>>2]=c[f>>2];c[g+4>>2]=e;jh(i);g=i+-48|0;e=c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0;f=c[e+172>>2]|0;if(!f)e=rw((c[e+176>>2]<<2)+8|0)|0;else e=tw(f,(c[e+176>>2]<<2)+8|0)|0;c[(c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0)+172>>2]=e;p=c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0;e=c[p+172>>2]|0;p=p+176|0;f=c[p>>2]|0;c[p>>2]=f+1;c[e+(f<<2)>>2]=i;i=c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0;d=d+1|0}j=Sm(a,j)|0}}else{i=c[c[d+172>>2]>>2]|0;d=(c[d+236>>2]|0)+1|0;i=Om(a,c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)|0;while(1){if(!i)break a;e=i+-48|0;f=c[((c[i>>2]&3|0)==2?i:e)+40>>2]|0;if((f|0)!=(b|0)?(FA(f)|0)==(b|0):0){f=c[((c[i>>2]&3|0)==2?i:e)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];cj(j,a,f,n,d);f=j;e=c[f+4>>2]|0;g=m;c[g>>2]=c[f>>2];c[g+4>>2]=e;jh(i);g=i+48|0;e=c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0;f=c[e+180>>2]|0;if(!f)e=rw((c[e+184>>2]<<2)+8|0)|0;else e=tw(f,(c[e+184>>2]<<2)+8|0)|0;c[(c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0)+180>>2]=e;f=c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0;k=c[f+180>>2]|0;f=f+184|0;p=c[f>>2]|0;c[f>>2]=p+1;c[k+(p<<2)>>2]=i;p=c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0;c[(c[p+180>>2]|0)+(c[p+184>>2]<<2)>>2]=0;d=d+1|0}i=Qm(a,i)|0}}}while(0);l=o;return}function bj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0;FB(b,c[(c[(qo(b)|0)+16>>2]|0)+116>>2]&1);e=c[b+16>>2]|0;h[e+24>>3]=+(c[d+4>>2]|0);f=+h[e+88>>3]+ +(c[d>>2]|0);h[e+16>>3]=f;f=f+ +h[e+96>>3];c[d>>2]=~~(f+ +(c[(c[(qo(b)|0)+16>>2]|0)+248>>2]|0));e=d;b=c[e+4>>2]|0;d=a;c[d>>2]=c[e>>2];c[d+4>>2]=b;return}function cj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=l;l=l+16|0;h=i;b=Uf(b)|0;g=FA(d)|0;if((g|0)!=(d|0))bh(g,d);j=c[d+16>>2]|0;c[j+236>>2]=f;g=c[(c[g+16>>2]|0)+232>>2]|0;c[j+232>>2]=g;c[(c[(c[(c[b+16>>2]|0)+196>>2]|0)+(g<<6)+4>>2]|0)+(f<<2)>>2]=d;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];bj(a,d,h);l=i;return}function dj(a){a=a|0;var d=0.0,e=0.0,f=0,g=0,i=0,j=0.0,k=0,l=0,m=0,n=0.0;m=c[(c[(Uf(a)|0)+16>>2]|0)+196>>2]|0;if((Uf(a)|0)==(a|0))j=8.0;else j=+(yA(a,c[42187]|0,8,0)|0);l=a+16|0;g=c[l>>2]|0;f=0;k=1;e=+h[g+120>>3];d=+h[g+128>>3];while(1){if((k|0)>(c[g+180>>2]|0))break;i=c[(c[g+184>>2]|0)+(k<<2)>>2]|0;f=dj(i)|0|f;i=c[i+16>>2]|0;g=c[l>>2]|0;if((b[i+238>>1]|0)==(b[g+238>>1]|0)){n=+h[i+120>>3]+j;e=e>n?e:n}if((b[i+236>>1]|0)==(b[g+236>>1]|0)){n=+h[i+128>>3]+j;d=d>n?d:n}k=k+1|0}if((Uf(a)|0)!=(a|0)?(c[(c[l>>2]|0)+12>>2]|0)!=0:0)if(!(c[(c[(ro(a)|0)+16>>2]|0)+116>>2]&1)){k=c[l>>2]|0;f=1;e=+h[k+56>>3]+e;d=+h[k+88>>3]+d}else f=1;k=c[l>>2]|0;h[k+120>>3]=e;h[k+128>>3]=d;if((Uf(a)|0)!=(a|0)){l=c[l>>2]|0;a=m+(b[l+236>>1]<<6)+24|0;n=+h[a>>3];h[a>>3]=n>d?n:d;m=m+(b[l+238>>1]<<6)+16|0;n=+h[m>>3];h[m>>3]=n>e?n:e}return f|0}function ej(a,d){a=a|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=c[(c[(Uf(a)|0)+16>>2]|0)+196>>2]|0;if((Uf(a)|0)==(a|0))e=0;else e=yA(a,c[42187]|0,8,0)|0;l=a+16|0;i=c[l>>2]|0;m=e+d|0;k=+(e|0);j=1;f=+h[i+128>>3];g=+h[i+120>>3];e=i;while(1){if((j|0)>(c[e+180>>2]|0))break;i=c[(c[e+184>>2]|0)+(j<<2)>>2]|0;ej(i,m);i=c[i+16>>2]|0;e=c[l>>2]|0;if((b[i+238>>1]|0)==(b[e+238>>1]|0)){q=+h[i+120>>3]+k;g=g>q?g:q}if((b[i+236>>1]|0)==(b[e+236>>1]|0)){q=+h[i+128>>3]+k;f=f>q?f:q}j=j+1|0}h[e+120>>3]=g;h[e+128>>3]=f;if(((Uf(a)|0)!=(a|0)?(n=c[l>>2]|0,c[n+12>>2]|0):0)?(p=-g-f+ +h[n+48+((+h[n+104>>3]>+h[n+72>>3]?3:1)<<4)+8>>3]-+h[(c[(c[c[o+(b[n+236>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[(c[(c[c[o+(b[n+238>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3],p>0.0):0)fj(a,~~p,d);if((Uf(a)|0)!=(a|0)){n=c[l>>2]|0;m=o+(b[n+236>>1]<<6)+24|0;q=+h[m>>3];p=+h[n+128>>3];h[m>>3]=q>p?q:p;o=o+(b[n+238>>1]<<6)+16|0;p=+h[o>>3];q=+h[n+120>>3];h[o>>3]=p>q?p:q}return}function fj(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0;k=c[(Uf(a)|0)+16>>2]|0;q=c[k+196>>2]|0;p=c[a+16>>2]|0;a=b[p+238>>1]|0;f=b[p+236>>1]|0;l=(d+1|0)/2|0;m=p+120|0;n=+h[m>>3];o=+(l|0);i=+(e|0);e=~~(o+i+n-+h[q+(a<<6)+16>>3]);if((e|0)>0){g=+(e|0);while(1){if((a|0)<(f|0))break;if((c[q+(a<<6)>>2]|0)>0){r=(c[(c[c[q+(a<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[r>>3]=+h[r>>3]+g}a=a+-1|0}j=+h[p+128>>3];a=e;g=j+ +(d-l|0)}else{j=+h[p+128>>3];a=d-l|0;g=j}a=~~(+(a|0)+i+g-+h[q+(f<<6)+24>>3]);a:do if((a|0)>0){e=b[k+236>>1]|0;g=+(a|0);while(1){a=f+-1|0;if((f|0)<=(e|0))break a;if((c[q+(a<<6)>>2]|0)<=0){f=a;continue}f=(c[(c[c[q+(a<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[f>>3]=+h[f>>3]+g;f=a}}while(0);h[p+128>>3]=j+ +(d-l|0);h[m>>3]=n+o;return}function gj(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+16>>2]|0;f=a[e+84>>0]|0;b=c[d+16>>2]|0;do if(f<<24>>24==(a[b+84>>0]|0)){if(+h[e+56>>3]==+h[b+56>>3]){if(!(f<<24>>24==0?1:+h[e+64>>3]==+h[b+64>>3])){b=0;break}}else if(f<<24>>24){b=0;break}if(+h[e+16>>3]==+h[b+16>>3]?+h[e+24>>3]==+h[b+24>>3]:0){b=1;break}b=(a[e+44>>0]|0)==0&1}else b=0;while(0);return b|0}function hj(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+16|0;d=c[i>>2]|0;b[d+236>>1]=32767;b[d+238>>1]=-1;d=0;h=bo(a)|0;while(1){e=c[i>>2]|0;if(!h)break;f=e+238|0;g=c[(c[h+16>>2]|0)+232>>2]|0;if((g|0)>(b[f>>1]|0))b[f>>1]=g;e=e+236|0;if((g|0)<(b[e>>1]|0))b[e>>1]=g;if(!d)d=h;else d=(g|0)<(c[(c[d+16>>2]|0)+232>>2]|0)?h:d;h=co(a,h)|0}c[e+264>>2]=d;return}function ij(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0;b=Hm(a,79821)|0;if(!b)b=2147483647;else{g=+oM(b);b=~~(g*+(ln(a)|0))}e=a+16|0;d=0;while(1){f=c[e>>2]|0;if((d|0)>=(c[f+220>>2]|0))break;c[f+192>>2]=c[(c[f+216>>2]|0)+(d<<2)>>2];bx(a,(c[f+180>>2]|0)==0&1,b)|0;d=d+1|0}return}function jj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+16|0;e=f;if(!(Hm(a,79830)|0))lj(a,d);else{g=(c[a+16>>2]|0)+136|0;b[g>>1]=b[g>>1]|16;kj(a,d)}if(0){g=c[13918]|0;a=c[a+16>>2]|0;d=b[a+236>>1]|0;c[e>>2]=b[a+238>>1];c[e+4>>2]=d;vL(g,79838,e)|0}l=f;return}function kj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0.0;i=l;l=l+16|0;h=i;c[41933]=0;a[h>>0]=a[17644]|0;a[h+1>>0]=a[17645]|0;a[h+2>>0]=a[17646]|0;a[h+3>>0]=a[17647]|0;h=fn(80048,h,0)|0;Mo(h,80077,280,1)|0;yo(h,17332,17272);mj(b);e=Hm(b,79821)|0;if(!e)f=2147483647;else{j=+oM(e);f=~~(j*+(ln(b)|0))}Cj(b,0);Dj(b,h);Ej(b,h);Fj(b,h,0,0);Gj(h);g=Hj(h)|0;Ij(h);if(d|0){wk(h);kk(h)}e=Hm(b,87564)|0;if(!e)e=-1;else e=nM(e)|0;uw(h,1,f,e)|0;Jj(b,h,g);kn(h)|0;l=i;return}function lj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=l;l=l+32|0;f=g+16|0;e=g+8|0;d=g;mj(a);do if(!b){nj(a,a);zk(a);oj(d,a);h=d;d=c[h+4>>2]|0;b=e;c[b>>2]=c[h>>2];c[b+4>>2]=d;sl(a,0);b=0}else{wk(a);kk(a);nj(a,a);zk(a);oj(d,a);i=d;d=c[i+4>>2]|0;h=e;c[h>>2]=c[i>>2];c[h+4>>2]=d;sl(a,0);h=c[a+16>>2]|0;if((c[h+220>>2]|0)<=1?(c[h+180>>2]|0)<=0:0)break;c[b+32>>2]=1;b=0}while(0);hk(a);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];if(pj(a,f)|0)sl(a,0);if(!b)ij(a);else lk(a,b);qj(a,b);rj(a);l=g;return}function mj(d){d=d|0;var f=0,g=0,h=0;if(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1){g=bo(d)|0;while(1){if(!g)break;f=Om(d,g)|0;while(1){if(!f)break;h=(c[f+16>>2]|0)+170|0;b[h>>1]=(e[h>>1]|0)<<1;f=Qm(d,f)|0}g=co(d,g)|0}h=(c[d+16>>2]|0)+252|0;c[h>>2]=((c[h>>2]|0)+1|0)/2|0}return}function nj(a,b){a=a|0;b=b|0;var d=0;b=Hp(b)|0;while(1){if(!b)break;d=zj(b)|0;do if(d)if((d|0)==7&(c[42179]|0)==100){vj(a,b);break}else{Aj(a,b,d);break}else nj(a,b);while(0);b=Ip(b)|0}return}function oj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d+16|0;e=c[i>>2]|0;d=c[e+228>>2]|0;e=c[e+224>>2]|0;f=(e|0)==0;if(!d)if(f){j=0;k=0}else g=4;else if(f)g=5;else g=4;if((g|0)==4){d=FA(e)|0;e=c[i>>2]|0;c[e+224>>2]=d;d=c[e+228>>2]|0;if(!d){h=0;d=e;g=12}else g=5}do if((g|0)==5){d=FA(d)|0;e=c[i>>2]|0;c[e+228>>2]=d;if(d){e=d+16|0;d=c[e>>2]|0;f=(a[d+159>>0]|0)==5&1;while(1){d=c[c[d+180>>2]>>2]|0;if(!d){g=11;break}h=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;if((h|0)!=(FA(h)|0)){g=9;break}gk(d);d=c[e>>2]|0}if((g|0)==9)ma(79941,79881,346,79973);else if((g|0)==11){h=f;d=c[i>>2]|0;g=12;break}}else{h=0;d=e;g=12}}while(0);a:do if((g|0)==12){d=c[d+224>>2]|0;if(!d){j=0;k=h}else{e=d+16|0;d=c[e>>2]|0;f=(a[d+159>>0]|0)==3&1;while(1){d=c[c[d+172>>2]>>2]|0;if(!d){j=f;k=h;break a}i=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((i|0)!=(FA(i)|0))break;gk(d);d=c[e>>2]|0}ma(79986,79881,353,79973)}}while(0);c[b>>2]=j;c[b+4>>2]=k;return}function pj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+16|0;i=c[j>>2]|0;if((c[i+228>>2]|0)==0?(c[i+224>>2]|0)==0:0)d=0;else e=3;a:do if((e|0)==3){g=bo(a)|0;i=d+4|0;h=c[d>>2]&65535;d=0;while(1){if(!g)break a;if((g|0)==(FA(g)|0)){f=g+16|0;e=c[f>>2]|0;if((c[e+184>>2]|0)==0?(k=c[(c[j>>2]|0)+228>>2]|0,!((k|0)==0|(g|0)==(k|0))):0){d=$g(g,k,0)|0;e=c[d+16>>2]|0;b[e+170>>1]=c[i>>2];c[e+156>>2]=0;e=c[f>>2]|0}if((c[e+176>>2]|0)==0?(l=c[(c[j>>2]|0)+224>>2]|0,!((l|0)==0|(g|0)==(l|0))):0){d=$g(l,g,0)|0;f=c[d+16>>2]|0;b[f+170>>1]=h;c[f+156>>2]=0}}g=co(a,g)|0}}while(0);return (d|0)!=0|0}function qj(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=bo(d)|0;k=d+16|0;f=c[k>>2]|0;a:do if(g){b[f+236>>1]=32767;b[f+238>>1]=-1;j=(e|0)==0;while(1){if(!g)break;f=FA(g)|0;i=c[g+16>>2]|0;e=c[i+232>>2]|0;do if((f|0)!=(g|0)){if(!j)if(!e)e=0;else break;e=e+(c[(c[f+16>>2]|0)+232>>2]|0)|0;c[i+232>>2]=e}while(0);f=c[k>>2]|0;h=f+238|0;if((e|0)>(b[h>>1]|0))b[h>>1]=e;f=f+236|0;if((e|0)<(b[f>>1]|0))b[f>>1]=e;switch(a[i+159>>0]|0){case 6:case 0:break;default:HA(g)}g=co(d,g)|0}if((Uf(d)|0)==(d|0)){if((c[42179]|0)==100)e=1;else{uj(d);break}while(1){f=c[k>>2]|0;if((e|0)>(c[f+180>>2]|0))break a;tj(c[(c[f+184>>2]|0)+(e<<2)>>2]|0);e=e+1|0}}}else{b[f+238>>1]=0;b[f+236>>1]=0}while(0);return}function rj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=b+16|0;e=0;while(1){d=c[j>>2]|0;if((e|0)>=(c[d+220>>2]|0))break;i=c[(c[d+216>>2]|0)+(e<<2)>>2]|0;c[d+192>>2]=i;d=i;while(1){if(!d)break;i=d+16|0;sj((c[i>>2]|0)+172|0);sj((c[i>>2]|0)+180|0);i=c[i>>2]|0;a[i+157>>0]=0;d=c[i+164>>2]|0}e=e+1|0}i=bo(b)|0;while(1){if(!i)break;h=Om(b,i)|0;while(1){if(!h)break;f=h+16|0;d=c[f>>2]|0;g=c[d+172>>2]|0;if((g|0)!=0?(k=g+16|0,(h|0)==(c[(c[k>>2]|0)+116>>2]|0)):0){d=bo(b)|0;while(1){if(!d)break;e=Om(b,d)|0;while(1){if(!e)break;if((h|0)!=(e|0)?(l=(c[e+16>>2]|0)+172|0,m=c[l>>2]|0,(m|0)!=0&(g|0)==(m|0)):0)c[l>>2]=0;e=Qm(b,e)|0}d=co(b,d)|0}XI(c[k>>2]|0);XI(g);d=c[f>>2]|0}c[d+172>>2]=0;h=Qm(b,h)|0}i=co(b,i)|0}XI(c[(c[j>>2]|0)+216>>2]|0);m=c[j>>2]|0;c[m+216>>2]=0;c[m+220>>2]=0;return}function sj(a){a=a|0;var b=0,d=0;d=a+4|0;b=c[d>>2]|0;while(1){if((b|0)<=-1)break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+-1|0}c[d>>2]=0;return}function tj(a){a=a|0;var d=0,f=0,g=0;d=a+16|0;f=c[d>>2]|0;g=c[(c[(c[f+264>>2]|0)+16>>2]|0)+232>>2]|0;a=f+236|0;b[a>>1]=g+(e[a>>1]|0);a=f+238|0;b[a>>1]=g+(e[a>>1]|0);a=1;while(1){if((a|0)>(c[f+180>>2]|0))break;tj(c[(c[f+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0;f=c[d>>2]|0}return}function uj(b){b=b|0;var d=0;d=Hp(Uf(b)|0)|0;while(1){if(!d)break;if((a[(c[d+16>>2]|0)+274>>0]|0)==7)vj(b,d);d=Ip(d)|0}return}function vj(a,b){a=a|0;b=b|0;var d=0;d=(c[b+16>>2]|0)+200|0;do if((c[d>>2]|0)==0?(c[d>>2]=a,wj(a,b),bo(b)|0):0){xj(a,b);if((c[42179]|0)==100){lj(b,0);yj(b);break}else{hj(b);break}}while(0);return}function wj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=b+16|0;g=bo(d)|0;while(1){if(!g)break;i=co(d,g)|0;j=g+16|0;if(!(a[(c[j>>2]|0)+159>>0]|0))f=1;else{po(d,g)|0;g=i;continue}while(1){e=c[h>>2]|0;b=c[e+180>>2]|0;if((f|0)>=(b|0))break;if(Ao(c[(c[e+184>>2]|0)+(f<<2)>>2]|0,g)|0){k=7;break}f=f+1|0}if((k|0)==7){k=0;b=c[(c[h>>2]|0)+180>>2]|0}if((f|0)<(b|0))po(d,g)|0;c[(c[j>>2]|0)+212>>2]=0;g=i}e=bo(d)|0;while(1){if(!e)break;b=Om(Uf(d)|0,e)|0;while(1){if(!b)break;if(Ao(d,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)dn(d,b,1)|0;b=Qm(Uf(d)|0,b)|0}e=co(d,e)|0}return}function xj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+16|0;d=c[e>>2]|0;g=d+180|0;a=c[g>>2]|0;f=a+1|0;c[g>>2]=f;d=c[d+184>>2]|0;if(!d)a=qw((a<<2)+8|0)|0;else a=sw(d,a+2|0,4,f)|0;c[(c[e>>2]|0)+184>>2]=a;c[a+(f<<2)>>2]=b;cw(b);return}function yj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[b+16>>2]|0;d=g+192|0;h=0;while(1){d=c[d>>2]|0;if(!d)break;f=c[d+16>>2]|0;if(!(c[f+232>>2]|0))e=(a[f+156>>0]|0)==0?d:h;else e=h;d=f+164|0;h=e}if(!h)ma(79866,79881,238,79888);c[g+264>>2]=h;d=bo(b)|0;while(1){if(!d){d=13;break}e=d+16|0;if(!((d|0)==(h|0)?1:(c[(c[e>>2]|0)+216>>2]|0)<2)){d=11;break}GA(d,h)|0;a[(c[e>>2]|0)+159>>0]=7;d=co(b,d)|0}if((d|0)==11)ma(79903,79881,242,79888);else if((d|0)==13)return}function zj(b){b=b|0;var d=0;if(!(Bj(b)|0)){d=PA(Hm(b,80018)|0,17284,17308)|0;a[(c[b+16>>2]|0)+274>>0]=d;b=d}else b=7;return b|0}function Aj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=bo(d)|0;a:do if(g|0){j=e&255;i=g+16|0;f=g;h=j;while(1){a[(c[f+16>>2]|0)+159>>0]=h;f=co(d,f)|0;if(!f)break;GA(g,f)|0;h=a[(c[i>>2]|0)+159>>0]|0}switch(e|0){case 3:case 2:{b=b+16|0;f=c[b>>2]|0;h=c[f+224>>2]|0;if(h){g=GA(h,g)|0;f=c[b>>2]|0}c[f+224>>2]=g;break}case 5:case 4:{b=b+16|0;f=c[b>>2]|0;h=c[f+228>>2]|0;if(h){g=GA(h,g)|0;f=c[b>>2]|0}c[f+228>>2]=g;break}default:break a}switch(e|0){case 3:{f=f+224|0;break}case 5:{f=f+228|0;break}default:break a}a[(c[(c[f>>2]|0)+16>>2]|0)+159>>0]=j}while(0);return}function Bj(a){a=a|0;return (SJ(Cn(a)|0,92983,7)|0)==0|0}function Cj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;g=m;if(!(Xj(b)|0)){do if(cB(b)|0)if(!d){c[(c[b+16>>2]|0)+204>>2]=0;d=b;break}else{c[(c[b+16>>2]|0)+204>>2]=(c[(c[d+16>>2]|0)+204>>2]|0)+1;Yj(b,d);d=b;break}while(0);e=Hp(b)|0;while(1){if(!e)break;Cj(e,d);e=Ip(e)|0}a:do if(cB(b)|0){e=bo(b)|0;while(1){if(!e)break a;f=(c[e+16>>2]|0)+212|0;if(!(c[f>>2]|0))c[f>>2]=b;e=co(b,e)|0}}while(0);switch(Zj(b)|0){case 3:{d=d+16|0;a[(c[d>>2]|0)+241>>0]=1;k=19;break}case 2:{d=d+16|0;k=19;break}case 5:{d=d+16|0;a[(c[d>>2]|0)+242>>0]=1;k=21;break}case 4:{d=d+16|0;k=21;break}case 1:{_j(b)|0;break}case 6:break;default:{e=Cn(b)|0;f=Hm(b,80018)|0;c[g>>2]=e;c[g+4>>2]=f;Zl(0,80201,g)|0}}if((k|0)==19){k=_j(b)|0;k=$j(k,c[(c[d>>2]|0)+208>>2]|0)|0;c[(c[d>>2]|0)+208>>2]=k}else if((k|0)==21){k=_j(b)|0;k=$j(k,c[(c[d>>2]|0)+212>>2]|0)|0;c[(c[d>>2]|0)+212>>2]=k}if((cB(b)|0?(h=b+16|0,i=c[h>>2]|0,j=c[i+208>>2]|0,j|0):0)?(j|0)==(c[i+212>>2]|0):0){j=_j(b)|0;k=c[h>>2]|0;c[k+208>>2]=j;c[k+212>>2]=j}}l=m;return}function Dj(a,b){a=a|0;b=b|0;var d=0,e=0;c[41933]=0;d=bo(a)|0;while(1){if(!d)break;if((Kj(d)|0)==(d|0)){e=Nj(b,Cn(d)|0)|0;c[(c[d+16>>2]|0)+148>>2]=e}d=co(a,d)|0}d=bo(a)|0;while(1){if(!d)break;b=d+16|0;if(!(c[(c[b>>2]|0)+148>>2]|0)){e=c[(c[(Kj(d)|0)+16>>2]|0)+148>>2]|0;c[(c[b>>2]|0)+148>>2]=e}d=co(a,d)|0}return}function Ej(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=bo(a)|0;while(1){if(!h)break;d=c[(c[h+16>>2]|0)+148>>2]|0;i=Om(a,h)|0;while(1){if(!i)break;do if((Sj(i)|0)==0?(j=i+-48|0,k=c[(c[(Kj(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)|0)+16>>2]|0)+148>>2]|0,(d|0)!=(k|0)):0){f=c[i>>2]&3;g=i+48|0;e=((f|0)==3?i:g)+40|0;f=c[(c[(c[((f|0)==2?i:j)+40>>2]|0)+16>>2]|0)+212>>2]|0;if(!(Tj(i)|0)){if((Rj(c[(c[(c[e>>2]|0)+16>>2]|0)+212>>2]|0)|0)==0?(Rj(f)|0)==0:0){Uj(b,d,k,i);break}Vj(b,d,k,i);break}else{f=Kj(c[e>>2]|0)|0;e=c[i>>2]&3;if((f|0)!=(c[(c[(c[(c[(c[((e|0)==3?i:g)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+212>>2]|0)?(g=Kj(c[((e|0)==2?i:j)+40>>2]|0)|0,(g|0)!=(c[(c[(c[(c[(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+208>>2]|0)):0)e=k;else{e=d;d=k}Uj(b,d,e,i);break}}while(0);i=Qm(a,i)|0}h=co(a,h)|0}return}function Fj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((cB(a)|0)!=0?(Rj(a)|0)!=0:0){g=bo(a)|0;while(1){if(!g)break;if(!(Rm(a,g)|0)){f=c[(c[(Kj(g)|0)+16>>2]|0)+148>>2]|0;if(!d)d=Nj(b,80099)|0;$m(b,d,f,0,1)|0}if(!(Om(a,g)|0)){f=c[(c[(Kj(g)|0)+16>>2]|0)+148>>2]|0;if(!e)e=Nj(b,80104)|0;$m(b,f,e,0,1)|0}g=co(a,g)|0}if((e|0)!=0&(d|0)!=0){Qj($m(b,d,e,0,1)|0,0,1e3);f=d}else f=d}else f=d;d=Hp(a)|0;while(1){if(!d)break;Fj(d,b,f,e);d=Ip(d)|0}return}function Gj(b){b=b|0;var d=0,e=0;d=bo(b)|0;while(1){if(!d)break;e=c[d+16>>2]|0;a[e+158>>0]=0;a[e+157>>0]=0;d=co(b,d)|0}d=bo(b)|0;while(1){if(!d)break;Oj(b,d);d=co(b,d)|0}return}function Hj(a){a=a|0;var b=0,d=0,e=0,f=0;b=bo(a)|0;while(1){if(!b)break;c[(c[b+16>>2]|0)+128>>2]=0;b=co(a,b)|0}b=0;e=bo(a)|0;while(1){if(!e)break;d=b+1|0;if(!(c[(c[e+16>>2]|0)+128>>2]|0)){Mj(a,e,d);b=d}e=co(a,e)|0}a:do if((b|0)>1){f=Nj(a,80093)|0;d=1;e=bo(a)|0;while(1){if(!e)break a;if((c[(c[e+16>>2]|0)+128>>2]|0)==(d|0)){$m(a,f,e,0,1)|0;d=d+1|0}e=co(a,e)|0}}while(0);return b|0}function Ij(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=bo(a)|0;while(1){if(!g)break;h=g+16|0;f=Om(a,g)|0;while(1){if(!f)break;b=c[h>>2]|0;d=c[b+180>>2]|0;if(!d)b=rw((c[b+184>>2]<<2)+8|0)|0;else b=tw(d,(c[b+184>>2]<<2)+8|0)|0;d=c[h>>2]|0;c[d+180>>2]=b;d=d+184|0;e=c[d>>2]|0;c[d>>2]=e+1;c[b+(e<<2)>>2]=f;e=c[h>>2]|0;c[(c[e+180>>2]|0)+(c[e+184>>2]<<2)>>2]=0;e=f+-48|0;b=c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0;d=c[b+172>>2]|0;if(!d)b=rw((c[b+176>>2]<<2)+8|0)|0;else b=tw(d,(c[b+176>>2]<<2)+8|0)|0;c[(c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0)+172>>2]=b;i=c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0;b=c[i+172>>2]|0;i=i+176|0;d=c[i>>2]|0;c[i>>2]=d+1;c[b+(d<<2)>>2]=f;e=c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0;c[(c[e+172>>2]|0)+(c[e+176>>2]<<2)>>2]=0;f=Qm(a,f)|0}g=co(a,g)|0}return}function Jj(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+16|0;o=c[n>>2]|0;b[o+236>>1]=32767;b[o+238>>1]=-1;a:do if((f|0)>1){h=qw((f<<2)+4|0)|0;g=f+1|0;f=1;while(1){if((f|0)==(g|0)){m=h;o=h;break a}c[h+(f<<2)>>2]=32767;f=f+1|0}}else{m=0;o=0}while(0);i=(m|0)==0;h=bo(a)|0;while(1){if(!h)break;j=c[(c[(c[(Kj(h)|0)+16>>2]|0)+148>>2]|0)+16>>2]|0;k=c[j+232>>2]|0;l=c[h+16>>2]|0;c[l+232>>2]=k;f=c[n>>2]|0;g=f+238|0;if((k|0)>(b[g>>1]|0))b[g>>1]=k;f=f+236|0;if((k|0)<(b[f>>1]|0))b[f>>1]=k;if(!i){j=c[j+128>>2]|0;c[l+128>>2]=j;l=m+(j<<2)|0;j=c[l>>2]|0;c[l>>2]=(j|0)<(k|0)?j:k}h=co(a,h)|0}j=(m|0)!=0;b:do if(!j){m=b[(c[n>>2]|0)+236>>1]|0;g=m<<16>>16;if(m<<16>>16>0){f=bo(a)|0;while(1){if(!f)break;m=(c[f+16>>2]|0)+232|0;c[m>>2]=(c[m>>2]|0)-g;f=co(a,f)|0}f=c[n>>2]|0;n=f+236|0;b[n>>1]=(e[n>>1]|0)-g;f=f+238|0;b[f>>1]=(e[f>>1]|0)-g;f=0}else f=0}else{f=bo(a)|0;while(1){if(!f){f=1;break b}l=c[f+16>>2]|0;n=l+232|0;c[n>>2]=(c[n>>2]|0)-(c[m+(c[l+128>>2]<<2)>>2]|0);f=co(a,f)|0}}while(0);Lj(a,f);i=bo(d)|0;while(1){if(!i)break;g=i+16|0;f=c[g>>2]|0;h=c[f+172>>2]|0;if(h){XI(h);f=c[g>>2]|0}f=c[f+180>>2]|0;if(f|0)XI(f);i=co(d,i)|0}XI(c[(c[(bo(a)|0)+16>>2]|0)+112>>2]|0);f=bo(a)|0;while(1){if(!f)break;c[(c[f+16>>2]|0)+112>>2]=0;f=co(a,f)|0}if(j)XI(o);return}function Kj(a){a=a|0;var b=0,d=0,e=0;b=a+16|0;d=(c[b>>2]|0)+152|0;e=c[d>>2]|0;if(e){if((e|0)!=(a|0)){e=Kj(e)|0;c[(c[b>>2]|0)+152>>2]=e;return e|0}}else c[d>>2]=a;return a|0}function Lj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=a+16|0;e=1;while(1){f=c[i>>2]|0;if((e|0)>(c[f+180>>2]|0))break;Lj(c[(c[f+184>>2]|0)+(e<<2)>>2]|0,0);e=e+1|0}if((d|0)!=0|(c[f+200>>2]|0)!=0){b[f+236>>1]=32767;b[f+238>>1]=-1;e=0;h=bo(a)|0;while(1){if(!h)break;g=c[(c[h+16>>2]|0)+232>>2]|0;d=c[i>>2]|0;f=d+238|0;if((g|0)>(b[f>>1]|0))b[f>>1]=g;d=d+236|0;if((g|0)<(b[d>>1]|0)){b[d>>1]=g;e=h}h=co(a,h)|0}c[(c[i>>2]|0)+264>>2]=e}return}function Mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[b+16>>2]|0)+128|0;a:do if(!(c[e>>2]|0)){c[e>>2]=d;e=Om(a,b)|0;while(1){if(!e)break;Mj(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,d);e=Qm(a,e)|0}e=Rm(a,b)|0;while(1){if(!e)break a;Mj(a,c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,d);e=Sm(a,e)|0}}while(0);return}function Nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=mo(a,b,1)|0;b=f+16|0;c[(c[b>>2]|0)+176>>2]=0;e=qw(20)|0;d=c[b>>2]|0;c[d+172>>2]=e;c[d+184>>2]=0;d=qw(20)|0;b=c[b>>2]|0;c[b+180>>2]=d;d=c[41933]|0;e=b+168|0;if(!d){c[e>>2]=0;c[(c[a+16>>2]|0)+192>>2]=f}else{c[e>>2]=d;c[(c[d+16>>2]|0)+164>>2]=f}c[41933]=f;c[b+164>>2]=0;return f|0}function Oj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=d+16|0;e=c[h>>2]|0;f=e+157|0;if(!(a[f>>0]|0)){a[f>>0]=1;a[e+158>>0]=1;d=Om(b,d)|0;while(1){if(!d)break;e=Qm(b,d)|0;f=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;g=c[f+16>>2]|0;if(a[g+158>>0]|0){Pj(b,d);d=e;continue}if(a[g+157>>0]|0){d=e;continue}Oj(b,f);d=e}a[(c[h>>2]|0)+158>>0]=0}return}function Pj(a,b){a=a|0;b=b|0;var d=0,f=0,g=0;d=c[b>>2]&3;g=b+-48|0;f=b+48|0;d=$m(a,c[((d|0)==2?b:g)+40>>2]|0,c[((d|0)==3?b:f)+40>>2]|0,0,0)|0;if(!d){d=c[b>>2]&3;d=$m(a,c[((d|0)==2?b:g)+40>>2]|0,c[((d|0)==3?b:f)+40>>2]|0,0,1)|0}g=c[b+16>>2]|0;Qj(d,e[g+170>>1]|0,c[g+156>>2]|0);po(a,b)|0;return}function Qj(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0;a=c[a+16>>2]|0;g=a+170|0;h=e[g>>1]|0;b[g>>1]=(h|0)>(d|0)?h:d;d=a+156|0;c[d>>2]=(c[d>>2]|0)+f;return}function Rj(a){a=a|0;return (EA(Hm(a,80109)|0,0)|0)&255|0}function Sj(b){b=b|0;var d=0,e=0;d=c[42232]|0;if((((d|0)!=0?(e=Im(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0)?(DA(e)|0)<<24>>24==0:0)b=1;else b=0;return b|0}function Tj(a){a=a|0;var b=0,d=0;d=c[a>>2]&3;b=c[(c[(c[((d|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;a=c[(c[(c[((d|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;if((b|0)==(a|0))return 1;else{d=Wj(b,a)|0;return ((d|0)==(b|0)|(d|0)==(a|0))&1|0}return 0}function Uj(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;h=j;g=$m(a,b,d,0,0)|0;if(!g){g=$m(a,d,b,0,0)|0;if(!g){g=$m(a,b,d,0,1)|0;if(!g){b=Cn(b)|0;f=Cn(d)|0;c[h>>2]=b;c[h+4>>2]=f;Zl(1,80126,h)|0}else i=4}else i=4}else i=4;if((i|0)==4){i=c[f+16>>2]|0;Qj(g,e[i+170>>1]|0,c[i+156>>2]|0)}l=j;return}function Vj(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+112|0;j=m;i=m+4|0;h=Rm(a,d)|0;while(1){if(!h){k=6;break}n=Om(a,c[((c[h>>2]&3|0)==3?h:h+48|0)+40>>2]|0)|0;if(n|0?(c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)==(f|0):0)break;h=Sm(a,h)|0}if((k|0)==6){n=c[41934]|0;c[41934]=n+1;c[j>>2]=n;lL(i,80117,j)|0;i=Nj(a,i)|0;n=$m(a,i,d,0,1)|0;i=$m(a,i,f,0,1)|0;f=c[g+16>>2]|0;k=f+156|0;n=(c[n+16>>2]|0)+156|0;c[n>>2]=(c[n>>2]|0)+((c[k>>2]|0)*1e3|0);n=c[i+16>>2]|0;j=n+170|0;b[j>>1]=b[(c[((e[j>>1]|0)>(e[f+170>>1]|0)?i:g)+16>>2]|0)+170>>1]|0;n=n+156|0;c[n>>2]=(c[n>>2]|0)+(c[k>>2]|0)}l=m;return}function Wj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;a:while(1){e=a+16|0;while(1){if((a|0)==(b|0))break a;f=c[e>>2]|0;d=c[b+16>>2]|0;if((c[f+204>>2]|0)>=(c[d+204>>2]|0))break;b=c[d+200>>2]|0}a=c[f+200>>2]|0}return a|0}function Xj(a){a=a|0;return (bo(a)|0)==0|0}function Yj(a,b){a=a|0;b=b|0;c[(c[a+16>>2]|0)+200>>2]=b;xj(b,a);wj(b,a);return}function Zj(b){b=b|0;var c=0;b=Hm(b,80018)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0)if(uJ(b,80028)|0)if(uJ(b,80032)|0)if(uJ(b,80039)|0)if(uJ(b,80043)|0)if(!(uJ(b,80023)|0))b=1;else c=8;else b=5;else b=4;else b=3;else b=2;else c=8;if((c|0)==8)b=6;return b|0}function _j(a){a=a|0;var b=0,c=0;c=bo(a)|0;a:do if(!c)b=0;else{b=Kj(c)|0;while(1){c=co(a,c)|0;if(!c)break a;$j(b,c)|0}}while(0);return b|0}function $j(a,b){a=a|0;b=b|0;if(b){a=Kj(a)|0;c[(c[(Kj(b)|0)+16>>2]|0)+152>>2]=a}return a|0}function ak(a,b,d){a=a|0;b=b|0;d=d|0;Mo(b,80077,c[d>>2]|0,1)|0;return}function bk(a,b,d){a=a|0;b=b|0;d=d|0;Mo(b,80244,c[d+4>>2]|0,1)|0;return}function ck(a,b,d){a=a|0;b=b|0;d=d|0;Mo(b,80229,c[d+8>>2]|0,1)|0;return}function dk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+240|0;m=p+120|0;n=p;c[42236]=xm(b,2,80259,0)|0;k=xm(b,2,80268,0)|0;c[42237]=k;a:do if((k|0)!=0|(c[42236]|0)!=0){k=bo(b)|0;while(1){if(!k)break a;j=0;d=0;i=Tm(b,k)|0;while(1){if(!i){f=0;break}e=c[i>>2]|0;g=e&3;f=c[((g|0)==2?i:i+-48|0)+40>>2]|0;h=i+48|0;b:do if((f|0)!=(c[((g|0)==3?i:h)+40>>2]|0)){g=c[42236]|0;do if((f|0)==(k|0)&(g|0)!=0){f=Im(i,g)|0;if(!(a[f>>0]|0)){e=c[i>>2]|0;break}else{e=j;d=ek(m,d,k,i,f)|0;break b}}while(0);f=c[42237]|0;if((f|0?(c[((e&3|0)==3?i:h)+40>>2]|0)==(k|0):0)?(o=Im(i,f)|0,(a[o>>0]|0)!=0):0)e=ek(n,j,k,i,o)|0;else e=j}else e=j;while(0);j=e;i=Um(b,i,k)|0}while(1){if((f|0)>=(d|0)){e=0;break}e=m+(f*24|0)+4|0;if((c[m+(f*24|0)+8>>2]|0)>1)fk(k,e);e=c[e>>2]|0;if(e|0)XI(e);f=f+1|0}while(1){if((e|0)>=(j|0))break;d=n+(e*24|0)+4|0;if((c[n+(e*24|0)+8>>2]|0)>1)fk(k,d);d=c[d>>2]|0;if(d|0)XI(d);e=e+1|0}k=co(b,k)|0}}while(0);l=p;return}function ek(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=l;l=l+16|0;k=p;m=p+12|0;n=p+8|0;o=0;while(1){if((o|0)>=(d|0)){j=10;break}j=c[b+(o*24|0)>>2]|0;if((a[j>>0]|0)==(a[g>>0]|0)?(uJ(j,g)|0)==0:0){j=5;break}o=o+1|0}do if((j|0)==5){k=b+(o*24|0)+4|0;j=c[k>>2]|0;if(!j){j=b+(o*24|0)+8|0;g=j;j=rw((c[j>>2]<<2)+8|0)|0}else{q=b+(o*24|0)+8|0;g=q;j=tw(j,(c[q>>2]<<2)+8|0)|0}c[k>>2]=j;r=c[g>>2]|0;q=r+1|0;c[g>>2]=q;c[j+(r<<2)>>2]=f;c[(c[k>>2]|0)+(q<<2)>>2]=0;j=13}else if((j|0)==10)if((d|0)>4){r=Cn(e)|0;c[k>>2]=5;c[k+4>>2]=r;Zl(1,80277,k)|0;break}else{s=b+(o*24|0)+8|0;c[s>>2]=0;k=qw(8)|0;r=b+(o*24|0)+4|0;c[r>>2]=k;q=c[s>>2]|0;j=q+1|0;c[s>>2]=j;c[k+(q<<2)>>2]=f;c[(c[r>>2]|0)+(j<<2)>>2]=0;c[b+(o*24|0)>>2]=g;c[b+(o*24|0)+12>>2]=0;h[b+(o*24|0)+16>>3]=0.0;d=d+1|0;j=13;break}while(0);if((j|0)==13){vt(f,m,n);j=(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(e|0)?c[n>>2]|0:c[m>>2]|0;if(j){r=b+(o*24|0)+12|0;s=c[r>>2]|0;c[r>>2]=s+1;if(!s)i=+zt(f,j);else i=0.0;h[b+(o*24|0)+16>>3]=i}}l=p;return d|0}function fk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=l;l=l+80|0;t=x+68|0;u=x+64|0;r=x;v=d+4|0;n=c[v>>2]|0;w=b+16|0;i=0;p=0.0;q=0.0;while(1){if((i|0)>=(n|0))break;f=c[(c[d>>2]|0)+(i<<2)>>2]|0;g=c[f>>2]&3;e=c[((g|0)==2?f:f+-48|0)+40>>2]|0;if((e|0)==(b|0))e=c[((g|0)==3?f:f+48|0)+40>>2]|0;g=c[e+16>>2]|0;s=c[w>>2]|0;k=+h[g+16>>3]-+h[s+16>>3];m=+h[g+24>>3]-+h[s+24>>3];o=+NJ(k,m);i=i+1|0;p=k/o+p;q=m/o+q}j=+NJ(p,q);s=c[w>>2]|0;k=+h[s+16>>3];m=+h[s+24>>3];y=+h[s+96>>3]+ +h[s+88>>3];o=+h[s+80>>3];s=y>o+ +(c[(c[(qo(b)|0)+16>>2]|0)+252>>2]|0);e=c[w>>2]|0;if(s)o=+h[e+96>>3]+ +h[e+88>>3];else{o=+h[e+80>>3];o=o+ +(c[(c[(qo(b)|0)+16>>2]|0)+252>>2]|0);e=c[w>>2]|0}y=+h[e+16>>3]+o*(p/j);j=+h[e+24>>3]+o*(q/j);h[r>>3]=k;n=r+8|0;h[n>>3]=m;h[r+16>>3]=(y+k*2.0)*.3333333333333333;h[r+24>>3]=(j+m*2.0)*.3333333333333333;h[r+32>>3]=(y*2.0+k)*.3333333333333333;h[r+40>>3]=(j*2.0+m)*.3333333333333333;h[r+48>>3]=y;h[r+56>>3]=j;Bz(b,r);s=c[w>>2]|0;j=+h[r>>3]-+h[s+16>>3];k=+h[n>>3]-+h[s+24>>3];j=+(~~(j+(j>=0.0?.5:-.5))|0);k=+(~~(k+(k>=0.0?.5:-.5))|0);y=+h[s+88>>3];s=~~((y+j)*256.0/(+h[s+96>>3]+y))&255;r=0;while(1){if((r|0)>=(c[v>>2]|0))break;n=c[(c[d>>2]|0)+(r<<2)>>2]|0;vt(n,t,u);while(1){if(!n)break;else g=n;while(1){if(!g){i=n;break}e=c[g>>2]|0;i=g+-48|0;if((c[((e&3|0)==2?g:i)+40>>2]|0)==(b|0)){e=c[g+16>>2]|0;h[e+56>>3]=j;h[e+64>>3]=k;h[e+72>>3]=0.0;c[e+80>>2]=0;a[e+84>>0]=1;a[e+85>>0]=0;a[e+86>>0]=0;a[e+87>>0]=0;a[e+88>>0]=s;a[e+89>>0]=0;c[e+92>>2]=0;e=c[g>>2]|0}f=g+16|0;if((c[((e&3|0)==3?g:g+48|0)+40>>2]|0)==(b|0)){e=c[f>>2]|0;h[e+16>>3]=j;h[e+24>>3]=k;h[e+32>>3]=0.0;c[e+40>>2]=0;a[e+44>>0]=1;a[e+45>>0]=0;a[e+46>>0]=0;a[e+47>>0]=0;a[e+48>>0]=s;a[e+49>>0]=0;c[e+52>>2]=0}if((a[(c[f>>2]|0)+112>>0]|0)!=1){g=0;continue}e=c[(c[((c[g>>2]&3|0)==2?g:i)+40>>2]|0)+16>>2]|0;if((a[e+156>>0]|0)!=1){g=0;continue}if((c[e+184>>2]|0)!=1){g=0;continue}g=c[c[e+180>>2]>>2]|0}while(1){if(!i)break;e=c[i>>2]|0;if((c[((e&3|0)==2?i:i+-48|0)+40>>2]|0)==(b|0)){e=c[i+16>>2]|0;h[e+56>>3]=j;h[e+64>>3]=k;h[e+72>>3]=0.0;c[e+80>>2]=0;a[e+84>>0]=1;a[e+85>>0]=0;a[e+86>>0]=0;a[e+87>>0]=0;a[e+88>>0]=s;a[e+89>>0]=0;c[e+92>>2]=0;e=c[i>>2]|0}f=i+48|0;g=i+16|0;if((c[((e&3|0)==3?i:f)+40>>2]|0)==(b|0)){e=c[g>>2]|0;h[e+16>>3]=j;h[e+24>>3]=k;h[e+32>>3]=0.0;c[e+40>>2]=0;a[e+44>>0]=1;a[e+45>>0]=0;a[e+46>>0]=0;a[e+47>>0]=0;a[e+48>>0]=s;a[e+49>>0]=0;c[e+52>>2]=0}if((a[(c[g>>2]|0)+112>>0]|0)!=1){i=0;continue}e=c[(c[((c[i>>2]&3|0)==3?i:f)+40>>2]|0)+16>>2]|0;if((a[e+156>>0]|0)!=1){i=0;continue}if((c[e+176>>2]|0)!=1){i=0;continue}i=c[c[e+172>>2]>>2]|0}n=c[(c[n+16>>2]|0)+172>>2]|0}r=r+1|0}a[(c[w>>2]|0)+145>>0]=1;l=x;return}function gk(a){a=a|0;var b=0,d=0,e=0;Wg(a);b=c[a>>2]&3;d=a+-48|0;e=a+48|0;b=Rg(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0)|0;if(!b){b=c[a>>2]&3;$g(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0,a)|0}else hh(a,b);return}function hk(b){b=b|0;var d=0,e=0,f=0,g=0;f=b+16|0;e=0;while(1){b=c[f>>2]|0;if((e|0)>=(c[b+220>>2]|0))break;d=c[(c[b+216>>2]|0)+(e<<2)>>2]|0;c[b+192>>2]=d;b=d;d=b;while(1){if(!d)break;g=c[d+16>>2]|0;a[g+157>>0]=0;d=c[g+164>>2]|0}while(1){if(!b)break;ik(b);b=c[(c[b+16>>2]|0)+164>>2]|0}e=e+1|0}return}function ik(b){b=b|0;var d=0,e=0,f=0,g=0;g=b+16|0;d=c[g>>2]|0;b=d+157|0;if(!(a[b>>0]|0)){a[b>>0]=1;a[d+158>>0]=1;b=0;while(1){f=c[(c[d+180>>2]|0)+(b<<2)>>2]|0;if(!f)break;d=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;e=c[d+16>>2]|0;if(!(a[e+158>>0]|0)){if(!(a[e+157>>0]|0))ik(d)}else{gk(f);b=b+-1|0}b=b+1|0;d=c[g>>2]|0}a[d+158>>0]=0}return}function jk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=bo(a)|0;b=0;while(1){if(!e)break;d=Om(a,e)|0;while(1){if(!d)break;g=c[d>>2]&3;h=c[(c[(c[((g|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;g=c[(c[(c[((g|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;f=h-g|0;d=Qm(a,d)|0;b=((h|0)==(g|0)?0:((f|0)>-1?f:0-f|0)+-1|0)+b|0}e=co(a,e)|0}return b|0}function kk(b){b=b|0;var d=0,e=0,f=0,g=0;e=bo(b)|0;while(1){if(!e)break;g=c[e+16>>2]|0;f=c[g+176>>2]|0;g=g+172|0;d=0;while(1){if((d|0)>=(f|0))break;a[(c[(c[(c[g>>2]|0)+(d<<2)>>2]|0)+16>>2]|0)+112>>0]=0;d=d+1|0}e=co(b,e)|0}return}function lk(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;o=q;j=c[b+24>>2]|0;mk(a);k=(j|0)==-1;m=b+8|0;i=k^1;n=c[13918]|0;f=1797693134862315708145274.0e284;g=0;while(1){if(!(k|(g|0)<(j|0)))break;d=bo(a)|0;while(1){if(!d)break;c[(c[d+16>>2]|0)+232>>2]=0;d=co(a,d)|0}ij(a);e=+nk(a);h[m>>3]=e;if(0){h[o>>3]=e;vL(n,80329,o)|0;e=+h[m>>3]}if(!(!(e<=+h[b>>3])&(!(f<=e)|i))){p=9;break}ok(a);f=e;g=g+1|0}if((p|0)==9){p=b+20|0;c[b+16>>2]=c[p>>2];c[p>>2]=g}ij(a);pk(a);qk();h[m>>3]=+nk(a);l=q;return}function mk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0;c[41938]=rw((ln(a)|0)*24|0)|0;c[41937]=0;b=bo(a)|0;while(1){if(!b)break;c[(c[b+16>>2]|0)+120>>2]=-1;b=co(a,b)|0}i=bo(a)|0;while(1){if(!i)break;j=i+16|0;do if(!(c[(c[j>>2]|0)+216>>2]|0)){f=qw(4)|0;g=c[41938]|0;k=c[41937]|0;c[g+(k*24|0)>>2]=f;c[f>>2]=i;c[g+(k*24|0)+4>>2]=1;j=c[j>>2]|0;h[g+(k*24|0)+8>>3]=+h[j+32>>3];h[g+(k*24|0)+16>>3]=+h[j+40>>3];c[j+120>>2]=k;c[41937]=k+1}else{g=FA(i)|0;k=g+16|0;b=c[k>>2]|0;d=c[b+120>>2]|0;if((d|0)>-1){g=c[41938]|0;f=c[g+(d*24|0)>>2]|0;e=g+(d*24|0)+4|0;k=c[e>>2]|0;c[e>>2]=k+1;c[f+(k<<2)>>2]=i;k=c[j>>2]|0;j=g+(d*24|0)+8|0;h[j>>3]=+h[j>>3]+ +h[k+32>>3];j=g+(d*24|0)+16|0;l=+h[j>>3];m=+h[k+40>>3];h[j>>3]=l<m?m:l;c[k+120>>2]=d;break}d=qw(c[b+216>>2]<<2)|0;e=c[41938]|0;f=c[41937]|0;b=e+(f*24|0)|0;c[b>>2]=d;c[d>>2]=g;if((g|0)==(i|0)){h[e+(f*24|0)+8>>3]=+h[(c[k>>2]|0)+32>>3];d=1;b=i}else{c[(c[b>>2]|0)+4>>2]=i;n=c[k>>2]|0;b=c[j>>2]|0;h[e+(f*24|0)+8>>3]=+h[b+32>>3]+ +h[n+32>>3];d=2;b=+h[n+40>>3]<+h[b+40>>3]?i:g}c[e+(f*24|0)+4>>2]=d;h[e+(f*24|0)+16>>3]=+h[(c[b+16>>2]|0)+40>>3];c[(c[k>>2]|0)+120>>2]=f;c[(c[j>>2]|0)+120>>2]=f;c[41937]=f+1}while(0);i=co(a,i)|0}return}function nk(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,g=0,i=0.0,j=0.0;pk(a);g=c[41935]|0;e=c[a+16>>2]|0;b=+(O(c[e+252>>2]|0,g+-1|0)|0);f=c[41936]|0;e=e+248|0;a=0;d=0.0;while(1){if((a|0)>=(g|0))break;i=+h[f+(a*40|0)+24>>3]+ +(O(c[e>>2]|0,c[f+(a*40|0)+16>>2]|0)|0);j=+h[f+(a*40|0)+32>>3]+b;a=a+1|0;b=j;d=d<i?i:d}return +(d/b)}function ok(a){a=a|0;var b=0;c[41939]=qw((ln(a)|0)<<2)|0;b=0;while(1){if((b|0)>=(ln(a)|0))break;c[(c[41939]|0)+(b<<2)>>2]=b;b=b+1|0}pk(a);rk(a);sk(a);return}function pk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0.0,k=0,l=0;c[41935]=0;b=c[41936]|0;if(b|0){e=0;while(1){if((e|0)>=(c[41937]|0))break;d=c[b+(e*40|0)+4>>2]|0;if(d){XI(d);b=c[41936]|0}d=c[b+(e*40|0)+8>>2]|0;if(d){XI(d);b=c[41936]|0}e=e+1|0}XI(b)}c[41936]=qw((c[41937]|0)*40|0)|0;b=0;while(1){d=c[41937]|0;if((b|0)>=(d|0))break;k=qw(d<<2)|0;c[(c[41936]|0)+(b*40|0)+4>>2]=k;k=qw(c[41937]<<2)|0;l=c[41936]|0;c[l+(b*40|0)+8>>2]=k;c[l+(b*40|0)>>2]=b;c[l+(b*40|0)+12>>2]=0;c[l+(b*40|0)+16>>2]=0;l=l+(b*40|0)+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;b=b+1|0}e=bo(a)|0;while(1){if(!e)break;d=Om(a,e)|0;while(1){if(!d)break;i=c[d>>2]|0;f=d+-48|0;g=c[41936]|0;b=c[(c[(c[((i&3|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;while(1){b=b+1|0;if((b|0)>=(c[(c[(c[((i&3|0)==2?d:f)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;i=g+(b*40|0)+16|0;c[i>>2]=(c[i>>2]|0)+1;i=c[d>>2]|0}d=Qm(a,d)|0}e=co(a,e)|0}i=c[41937]|0;k=c[41938]|0;l=c[41936]|0;d=a+16|0;b=0;while(1){if((b|0)>=(i|0))break;e=(c[c[k+(b*24|0)>>2]>>2]|0)+16|0;f=c[(c[e>>2]|0)+232>>2]|0;if((f|0)>=(c[41935]|0))c[41935]=f+1;g=l+(f*40|0)+24|0;j=+h[g>>3];h[g>>3]=j+ +h[k+(b*24|0)+8>>3]*72.0+(j>0.0?+(c[(c[d>>2]|0)+248>>2]|0):0.0);g=l+(f*40|0)+32|0;j=+h[k+(b*24|0)+16>>3]*72.0;if(+h[g>>3]<j)h[g>>3]=j;c[(c[l+(f*40|0)+4>>2]|0)+(c[l+(f*40|0)+12>>2]<<2)>>2]=k+(b*24|0);a=l+((c[(c[e>>2]|0)+232>>2]|0)*40|0)+12|0;c[a>>2]=(c[a>>2]|0)+1;b=b+1|0}return}function qk(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=c[41935]|0;l=c[41936]|0;j=0;b=0;a=0;while(1){if((j|0)>=(k|0))break;d=l+(j*40|0)|0;i=c[l+(j*40|0)+12>>2]|0;e=(b|0)==0;a:do if(i)if(!e){if((c[d>>2]|0)>(a|0)){f=l+(j*40|0)+4|0;d=0;while(1){if((d|0)>=(i|0))break a;g=c[(c[f>>2]|0)+(d<<2)>>2]|0;h=c[g+4>>2]|0;e=0;while(1){if((e|0)>=(h|0))break;m=(c[(c[(c[g>>2]|0)+(e<<2)>>2]|0)+16>>2]|0)+232|0;c[m>>2]=(c[m>>2]|0)-b;e=e+1|0}d=d+1|0}}}else b=0;else{if(e)a=c[d>>2]|0;b=b+1|0}while(0);j=j+1|0}return}function rk(a){a=a|0;var b=0;b=c[41939]|0;nL(b,ln(a)|0,4,15);return}function sk(b){b=b|0;var d=0.0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0;j=c[41935]|0;k=c[41936]|0;g=c[41939]|0;i=0;while(1){if((i|0)>=(j|0)){e=0;d=0.0;break}e=c[g+(i<<2)>>2]|0;f=i+1|0;if((c[k+(e*40|0)+12>>2]|0)<2)i=f;else{l=4;break}}if((l|0)==4)if((j|0)>(f|0))d=+h[k+((c[g+(f<<2)>>2]|0)*40|0)+24>>3];else d=0.0;a:do if((i|0)!=(j|0)){nL(c[k+(e*40|0)+4>>2]|0,c[k+(e*40|0)+12>>2]|0,4,16);g=c[41936]|0;r=+h[g+(e*40|0)+24>>3];r=!(d<=r*.25)&!(d>=r*.75)?d:r*.5;s=c[g+(e*40|0)+12>>2]|0;q=b+16|0;n=0;o=0;d=0.0;f=0;p=0;while(1){if((p|0)>=(f+s|0))break a;do if(!(c[(c[g+(e*40|0)+8>>2]|0)+(p<<2)>>2]|0)){l=c[(c[g+(e*40|0)+4>>2]|0)+(p<<2)>>2]|0;b=l+8|0;m=+h[b>>3]*72.0+d+(d>0.0?+(c[(c[q>>2]|0)+248>>2]|0):0.0);i=(o|0)!=0;if(!(i&!(m<=r))){j=i?n:l;i=i?o:1;d=m;break}j=n+4|0;k=l+4|0;i=0;while(1){if((i|0)<(c[j>>2]|0))g=0;else break;while(1){if((g|0)>=(c[k>>2]|0))break;a[(c[($g(c[(c[n>>2]|0)+(i<<2)>>2]|0,c[(c[l>>2]|0)+(g<<2)>>2]|0,0)|0)+16>>2]|0)+112>>0]=1;g=g+1|0}i=i+1|0}g=c[41936]|0;c[(c[g+(e*40|0)+8>>2]|0)+(p<<2)>>2]=1;j=g+(e*40|0)+12|0;c[j>>2]=(c[j>>2]|0)+-1;j=g+(e*40|0)+16|0;c[j>>2]=(c[j>>2]|0)+1;j=g+(e*40|0)+24|0;h[j>>3]=+h[b>>3]*-72.0-+(c[(c[q>>2]|0)+248>>2]|0)+ +h[j>>3];j=n;i=o}else{j=n;i=o;f=f+1|0}while(0);n=j;o=i;p=p+1|0}}while(0);return}function tk(a,b){a=a|0;b=b|0;a=uk(c[a>>2]|0)|0;b=uk(c[b>>2]|0)|0;return ((b|0)<(a|0)&1)-((b|0)>(a|0)&1)|0}function uk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+4|0;d=0;b=0;while(1){if((d|0)>=(c[f>>2]|0))break;e=c[(c[a>>2]|0)+(d<<2)>>2]|0;g=qo(e)|0;e=Om(g,e)|0;while(1){if(!e)break;e=Qm(g,e)|0;b=b+1|0}d=d+1|0}return b|0}function vk(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[41936]|0;e=+h[f+((c[b>>2]|0)*40|0)+24>>3];d=+h[f+((c[a>>2]|0)*40|0)+24>>3];return (e>d&1)-(e<d&1)|0}function wk(a){a=a|0;var b=0;b=bo(a)|0;while(1){if(!b)break;c[(c[b+16>>2]|0)+216>>2]=0;b=co(a,b)|0}return}function xk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+16|0;e=g+8|0;d=g+20|0;c[d>>2]=5;a=Hm(a,84568)|0;if(a|0?(c[e>>2]=g,c[e+4>>2]=d,(_L(a,80344,e)|0)>=1):0)Zl(0,80351,f)|0;c[b+24>>2]=0;c[b+32>>2]=0;l=g;return 0}function yk(b){b=b|0;var d=0,e=0;d=c[42232]|0;if((((d|0)!=0?(e=Im(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0)?(DA(e)|0)<<24>>24==0:0)b=1;else b=0;return b|0}function zk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;Uk(a);b=bo(a)|0;while(1){if(!b)break;d=Om(a,b)|0;while(1){if(!d)break;do if(((c[(c[d+16>>2]|0)+172>>2]|0)==0?(yk(d)|0)==0:0)?(e=d+48|0,f=FA(c[((c[d>>2]&3|0)==3?d:e)+40>>2]|0)|0,g=d+-48|0,h=FA(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)|0,(f|0)!=(h|0)):0){if((c[(c[f+16>>2]|0)+212>>2]|0)==0?(c[(c[h+16>>2]|0)+212>>2]|0)==0:0){i=Rg(f,h)|0;if(!i){$g(f,h,d)|0;break}else{hh(d,i);break}}i=c[d>>2]&3;Ak(a,c[((i|0)==3?d:e)+40>>2]|0,c[((i|0)==2?d:g)+40>>2]|0,d)}while(0);d=Qm(a,d)|0}b=co(a,b)|0}return}function Ak(b,d,f,g){b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=c[g>>2]&3;h=c[(c[((j|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0;i=c[h+212>>2]|0;if(!i)k=0;else k=(c[h+232>>2]|0)-(c[(c[(c[(c[i+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;h=c[(c[((j|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0;i=c[h+212>>2]|0;if(!i)h=0;else h=(c[(c[(c[(c[i+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)-(c[h+232>>2]|0)|0;j=g+16|0;k=h+k+(e[(c[j>>2]|0)+170>>1]|0)|0;b=eh(b)|0;a[(c[b+16>>2]|0)+156>>0]=2;i=FA(d)|0;d=FA(f)|0;f=Li(b,i,(k|0)>0?0.0:+(0-k|0),(c[(c[j>>2]|0)+156>>2]|0)*10|0)|0;c[(c[(Li(b,d,+(((k|0)>0?k:0)|0),c[(c[j>>2]|0)+156>>2]|0)|0)+16>>2]|0)+116>>2]=g;c[(c[f+16>>2]|0)+116>>2]=g;return}function Bk(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=c[d>>2]&3;i=(j|0)==3?d:d+48|0;j=(j|0)==2?d:d+-48|0;j=c[(c[(c[((c[(c[(c[i+40>>2]|0)+16>>2]|0)+232>>2]|0)>(c[(c[(c[j+40>>2]|0)+16>>2]|0)+232>>2]|0)?i:j)+40>>2]|0)+16>>2]|0)+232>>2]|0;i=d+16|0;d=(c[i>>2]|0)+172|0;if(c[d>>2]|0)ma(80440,80462,148,80471);c[d>>2]=f;h=(g|0)==0;do{d=c[i>>2]|0;if(h)g=c[f+16>>2]|0;else{g=c[f+16>>2]|0;k=g+168|0;b[k>>1]=(e[k>>1]|0)+(e[d+168>>1]|0)}k=g+154|0;b[k>>1]=(e[k>>1]|0)+(e[d+154>>1]|0);g=g+156|0;c[g>>2]=(c[g>>2]|0)+(c[d+156>>2]|0);d=f+-48|0;g=c[((c[f>>2]&3|0)==2?f:d)+40>>2]|0;if((c[(c[g+16>>2]|0)+232>>2]|0)==(j|0))break;Ck(a,g);f=c[c[(c[(c[((c[f>>2]&3|0)==2?f:d)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((f|0)!=0);return}function Ck(a,b){a=a|0;b=b|0;var d=0.0;d=+((c[(c[a+16>>2]|0)+248>>2]|0)/2|0|0);b=c[b+16>>2]|0;a=b+88|0;h[a>>3]=+h[a>>3]+d;b=b+96|0;h[b>>3]=+h[b>>3]+d;return}function Dk(a,b){a=a|0;b=b|0;var d=0,e=0;if(((((a|0)!=0&(b|0)!=0?(e=c[a>>2]&3,d=c[b>>2]&3,(c[((e|0)==3?a:a+48|0)+40>>2]|0)==(c[((d|0)==3?b:b+48|0)+40>>2]|0)):0)?(c[((e|0)==2?a:a+-48|0)+40>>2]|0)==(c[((d|0)==2?b:b+-48|0)+40>>2]|0):0)?(c[(c[a+16>>2]|0)+96>>2]|0)==(c[(c[b+16>>2]|0)+96>>2]|0):0)?(gj(a,b)|0)!=0:0)a=1;else a=0;return a|0}function Ek(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b+16|0;d=c[r>>2]|0;c[d+192>>2]=0;c[d+232>>2]=0;Uk(b);d=1;while(1){e=c[r>>2]|0;if((d|0)>(c[e+180>>2]|0))break;Vk(b,c[(c[e+184>>2]|0)+(d<<2)>>2]|0);d=d+1|0}h=bo(b)|0;while(1){if(!h)break;g=Om(b,h)|0;while(1){if(!g)break;d=c[g>>2]|0;e=(c[(c[((d&3|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+160|0;f=a[e>>0]|0;if(f<<24>>24<3){a[e>>0]=f+1<<24>>24;d=c[g>>2]|0}d=(c[(c[((d&3|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+160|0;e=a[d>>0]|0;if(e<<24>>24<3)a[d>>0]=e+1<<24>>24;g=Qm(b,g)|0}h=co(b,h)|0}m=bo(b)|0;while(1){if(!m)break;if((c[(c[m+16>>2]|0)+212>>2]|0)==0?(m|0)==(FA(m)|0):0){ah(b,m);l=(c[r>>2]|0)+232|0;c[l>>2]=(c[l>>2]|0)+1}d=0;l=Om(b,m)|0;while(1){if(!l)break;k=l+16|0;h=c[k>>2]|0;a:do if(!(c[h+172>>2]|0)){if(Fk(l)|0){if(!(Dk(d,l)|0)){Gk(b,l);d=l;break}e=c[(c[d+16>>2]|0)+172>>2]|0;if(e|0){Bk(b,l,e,0);Xg(l);break}k=c[l>>2]&3;if((c[(c[(c[((k|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)!=(c[(c[(c[((k|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;hh(l,d);Xg(l);break}if(d){i=c[l>>2]&3;e=l+48|0;f=c[((i|0)==3?l:e)+40>>2]|0;g=c[d>>2]&3;if((f|0)==(c[((g|0)==3?d:d+48|0)+40>>2]|0)?(n=c[((i|0)==2?l:l+-48|0)+40>>2]|0,(n|0)==(c[((g|0)==2?d:d+-48|0)+40>>2]|0)):0){if((c[(c[f+16>>2]|0)+232>>2]|0)==(c[(c[n+16>>2]|0)+232>>2]|0)){hh(l,d);Xg(l);break}if(((c[h+96>>2]|0)==0?(o=d+16|0,(c[(c[o>>2]|0)+96>>2]|0)==0):0)?(gj(l,d)|0)!=0:0)if(!(a[174072]|0)){Bk(b,l,c[(c[o>>2]|0)+172>>2]|0,1);Xg(l);break}else{a[(c[k>>2]|0)+112>>0]=6;break}else i=e}else i=e}else i=l+48|0;h=c[l>>2]&3;e=c[((h|0)==3?l:i)+40>>2]|0;j=l+-48|0;if((e|0)==(c[((h|0)==2?l:j)+40>>2]|0)){Xg(l);d=l;break}e=FA(e)|0;f=FA(c[((c[l>>2]&3|0)==2?l:j)+40>>2]|0)|0;h=c[l>>2]&3;if((c[((h|0)==3?l:i)+40>>2]|0)==(e|0)?(c[((h|0)==2?l:j)+40>>2]|0)==(f|0):0){g=c[(c[e+16>>2]|0)+232>>2]|0;h=c[(c[f+16>>2]|0)+232>>2]|0;if((g|0)==(h|0)){fh(b,l);d=l;break}if((h|0)>(g|0)){Hk(b,e,f,l);d=l;break}e=$m(b,f,e,0,0)|0;do if(e|0?(p=c[e>>2]&3,q=c[((p|0)==2?e:e+-48|0)+40>>2]|0,(q|0)!=(c[((c[l>>2]&3|0)==2?l:j)+40>>2]|0)):0){f=e+16|0;if(!(c[(c[f>>2]|0)+172>>2]|0))Hk(b,c[((p|0)==3?e:e+48|0)+40>>2]|0,q,e);if((c[(c[k>>2]|0)+96>>2]|0)==0?(c[(c[f>>2]|0)+96>>2]|0)==0:0){if(!(gj(l,e)|0))break;if(!(a[174072]|0)){Xg(l);Bk(b,l,c[(c[f>>2]|0)+172>>2]|0,1);break a}else{a[(c[k>>2]|0)+112>>0]=6;a[(c[f>>2]|0)+153>>0]=1;break a}}}while(0);d=c[l>>2]&3;Hk(b,c[((d|0)==2?l:j)+40>>2]|0,c[((d|0)==3?l:i)+40>>2]|0,l);d=l}}else d=l;while(0);l=Qm(b,l)|0}m=co(b,m)|0}if((Uf(b)|0)!=(b|0)){d=c[(c[r>>2]|0)+216>>2]|0;if(!d)d=rw(4)|0;else d=tw(d,4)|0;r=c[r>>2]|0;c[r+216>>2]=d;c[d>>2]=c[r+192>>2]}return}function Fk(b){b=b|0;var d=0;d=c[b>>2]&3;if((a[(c[(c[((d|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+159>>0]|0)==7)b=1;else b=(a[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+159>>0]|0)==7&1;return b|0}function Gk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=Kk(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0;g=Kk(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;i=(c[(c[f+16>>2]|0)+232>>2]|0)>(c[(c[g+16>>2]|0)+232>>2]|0);e=i?f:g;f=i?g:f;g=f+16|0;i=e+16|0;a:do if((c[(c[g>>2]|0)+212>>2]|0)!=(c[(c[i>>2]|0)+212>>2]|0)){h=Rg(f,e)|0;if(h|0){Bk(b,d,h,1);break}if((c[(c[g>>2]|0)+232>>2]|0)!=(c[(c[i>>2]|0)+232>>2]|0)){Hk(b,f,e,d);e=(c[d+16>>2]|0)+172|0;while(1){e=c[e>>2]|0;if(!e)break a;f=e+-48|0;if((c[(c[(c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(c[(c[i>>2]|0)+232>>2]|0))break a;a[(c[e+16>>2]|0)+112>>0]=5;e=c[(c[(c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0)+16>>2]|0)+180>>2]|0}}}while(0);return}function Hk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=e+16|0;f=c[k>>2]|0;if(!(c[f+96>>2]|0))j=-1;else j=((c[(c[d+16>>2]|0)+232>>2]|0)+(c[(c[b+16>>2]|0)+232>>2]|0)|0)/2|0;if(c[f+172>>2]|0)ma(80483,80462,89,80508);i=d+16|0;h=c[(c[b+16>>2]|0)+232>>2]|0;while(1){g=h+1|0;f=c[(c[i>>2]|0)+232>>2]|0;if((h|0)>=(f|0))break;if((g|0)<(f|0)){if((g|0)==(j|0))f=Ik(a,e)|0;else f=Jk(a)|0;c[(c[f+16>>2]|0)+232>>2]=g}else f=d;ui($g(b,f,e)|0);h=g;b=f}if(!(c[(c[k>>2]|0)+172>>2]|0))ma(80519,80462,103,80508);else return}function Ik(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0.0;i=d+16|0;g=c[(c[i>>2]|0)+96>>2]|0;e=+h[g+24>>3];f=+h[g+32>>3];g=eh(b)|0;d=g+16|0;c[(c[d>>2]|0)+104>>2]=c[(c[i>>2]|0)+96>>2];j=+(c[(c[(ro(g)|0)+16>>2]|0)+248>>2]|0);h[(c[d>>2]|0)+88>>3]=j;if(!(a[(c[i>>2]|0)+114>>0]|0)){b=(c[(c[(ro(b)|0)+16>>2]|0)+116>>2]&1|0)==0;i=c[d>>2]|0;h[i+80>>3]=b?f:e;h[i+96>>3]=b?e:f}return g|0}function Jk(a){a=a|0;var b=0;b=eh(a)|0;Ck(a,b);return b|0}function Kk(b){b=b|0;var d=0;d=c[b+16>>2]|0;if((a[d+159>>0]|0)==7)b=c[(c[(c[(c[d+212>>2]|0)+16>>2]|0)+268>>2]|0)+(c[d+232>>2]<<2)>>2]|0;else b=FA(b)|0;return b|0}function Lk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=Uf(a)|0;h=bo(a)|0;while(1){if(!h)break;b=Tm(j,h)|0;i=0;while(1){if(!b)break;l=Um(j,b,h)|0;if(Ao(a,b)|0){k=i;b=l;i=k;continue}k=(c[b>>2]&3|0)==2?b:b+-48|0;m=(Dk(i,k)|0)==0;e=c[k>>2]&3;b=c[((e|0)==3?k:k+48|0)+40>>2]|0;d=c[(c[b+16>>2]|0)+232>>2]|0;e=c[((e|0)==2?k:k+-48|0)+40>>2]|0;f=c[(c[e+16>>2]|0)+232>>2]|0;g=(d|0)==(f|0);if(!m){c[(c[k+16>>2]|0)+172>>2]=g?i:0;b=c[(c[i+16>>2]|0)+172>>2]|0;if(!b){m=i;b=l;i=m;continue}Bk(a,k,b,0);Yg(k);m=i;b=l;i=m;continue}if(!g)if((f|0)>(d|0)){Mk(b,e,k);b=l;i=k;continue}else{Mk(e,b,k);b=l;i=k;continue}b=Tg(b,e)|0;if(!b){fh(j,k);b=l;i=k;continue}if((k|0)==(b|0)){m=i;b=l;i=m;continue}Yg(k);if(c[(c[k+16>>2]|0)+172>>2]|0){m=i;b=l;i=m;continue}hh(k,b);m=i;b=l;i=m}h=co(a,h)|0}return}function Mk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=Nk(a)|0;e=Nk(b)|0;Ok(f,e,d,c[(c[d+16>>2]|0)+172>>2]|0,(f|0)==(a|0)&(e|0)==(b|0)?1:5);return}function Nk(b){b=b|0;var d=0,e=0,f=0;d=c[b+16>>2]|0;e=c[d+212>>2]|0;if((e|0)!=0?(f=c[e+16>>2]|0,(a[f+272>>0]|0)==0):0)b=c[(c[f+268>>2]|0)+(c[d+232>>2]<<2)>>2]|0;return b|0}function Ok(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=d+16|0;k=c[(c[n>>2]|0)+232>>2]|0;o=e+16|0;i=c[(c[o>>2]|0)+232>>2]|0;if((i|0)<=(k|0))ma(80544,80572,81,80582);m=c[g>>2]&3;if(!((c[((m|0)==3?g:g+48|0)+40>>2]|0)==(d|0)?(c[((m|0)==2?g:g+-48|0)+40>>2]|0)==(e|0):0))l=5;a:do if((l|0)==5){if((b[(c[g+16>>2]|0)+168>>1]|0)>1){c[(c[f+16>>2]|0)+172>>2]=0;if(((i-k|0)==1?(j=Rg(d,e)|0,j|0):0)?gj(f,j)|0:0){hh(f,j);if(a[(c[n>>2]|0)+156>>0]|0)break;if(a[(c[o>>2]|0)+156>>0]|0)break;Xg(f);break}m=h&255;h=d;l=c[(c[n>>2]|0)+232>>2]|0;while(1){i=c[(c[o>>2]|0)+232>>2]|0;if((l|0)>=(i|0))break a;if((l|0)<(i+-1|0)){i=Uf(d)|0;j=g+-48|0;i=Pk(i,c[((c[g>>2]&3|0)==2?g:j)+40>>2]|0)|0;k=g}else{i=e;j=g+-48|0;k=g}a[(c[($g(h,i,f)|0)+16>>2]|0)+112>>0]=m;n=(c[g+16>>2]|0)+168|0;b[n>>1]=(b[n>>1]|0)+-1<<16>>16;h=i;l=l+1|0;g=c[c[(c[(c[((c[k>>2]&3|0)==2?g:j)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}}do if((i-k|0)==1){g=Rg(d,e)|0;if(g|0?gj(f,g)|0:0){c[(c[f+16>>2]|0)+172>>2]=g;m=c[g+16>>2]|0;a[m+112>>0]=h;m=m+168|0;b[m>>1]=(b[m>>1]|0)+1<<16>>16;if(a[(c[n>>2]|0)+156>>0]|0)break;if(a[(c[o>>2]|0)+156>>0]|0)break;Xg(f);break}c[(c[f+16>>2]|0)+172>>2]=0;g=$g(d,e,f)|0;a[(c[g+16>>2]|0)+112>>0]=h}while(0);i=c[(c[o>>2]|0)+232>>2]|0;if((i-(c[(c[n>>2]|0)+232>>2]|0)|0)>1){if((c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)==(d|0))l=i;else{n=f+16|0;c[(c[n>>2]|0)+172>>2]=0;l=$g(d,c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0,f)|0;c[(c[n>>2]|0)+172>>2]=l;Wg(g);g=l;l=c[(c[o>>2]|0)+232>>2]|0}while(1){i=c[g>>2]&3;j=c[((i|0)==2?g:g+-48|0)+40>>2]|0;k=c[j+16>>2]|0;if((c[k+232>>2]|0)==(l|0))break;g=c[c[k+180>>2]>>2]|0}if((j|0)!=(e|0)){a[(c[($g(c[((i|0)==3?g:g+48|0)+40>>2]|0,e,f)|0)+16>>2]|0)+112>>0]=h;Wg(g)}}}while(0);return}function Pk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=b+16|0;b=c[d>>2]|0;e=c[b+232>>2]|0;Qk(a,e,c[b+236>>2]|0,2);b=eh(a)|0;d=c[d>>2]|0;f=c[b+16>>2]|0;h[f+88>>3]=+h[d+88>>3];h[f+96>>3]=+h[d+96>>3];c[f+232>>2]=c[d+232>>2];d=(c[d+236>>2]|0)+1|0;c[f+236>>2]=d;c[(c[(c[(c[a+16>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(d<<2)>>2]=b;return b|0}function Qk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=a+16|0;f=c[(c[h>>2]|0)+196>>2]|0;i=c[f+(b<<6)+4>>2]|0;a:do if((e|0)<1){d=d-e|0;while(1){g=d+1|0;a=c[f+(b<<6)>>2]|0;if((g|0)>=(a|0))break;a=c[i+(g<<2)>>2]|0;f=d+e|0;c[(c[a+16>>2]|0)+236>>2]=f;c[i+(f<<2)>>2]=a;d=g;f=c[(c[h>>2]|0)+196>>2]|0}g=e+-1|0;d=g+a|0;while(1){if((d|0)>=(a|0))break a;c[i+(d<<2)>>2]=0;f=c[(c[h>>2]|0)+196>>2]|0;d=d+1|0;a=c[f+(b<<6)>>2]|0}}else{g=e+-1|0;a=c[f+(b<<6)>>2]|0;while(1){a=a+-1|0;if((a|0)<=(d|0))break;j=c[i+(a<<2)>>2]|0;f=g+a|0;c[(c[j+16>>2]|0)+236>>2]=f;c[i+(f<<2)>>2]=j}f=e+d|0;a=d;while(1){a=a+1|0;if((a|0)>=(f|0))break;c[i+(a<<2)>>2]=0}a=c[(c[h>>2]|0)+196>>2]|0;f=a;a=c[a+(b<<6)>>2]|0}while(0);c[f+(b<<6)>>2]=g+a;return}function Rk(a){a=a|0;var b=0;Ek(a);b=c[a+16>>2]|0;c[b+220>>2]=1;c[c[b+216>>2]>>2]=c[b+192>>2];ri(a);Yh(a,0);Sk(a);Lk(a);Tk(a);return}function Sk(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Uf(d)|0;l=d+16|0;f=c[l>>2]|0;j=b[f+236>>1]|0;e=j<<16>>16;m=k+16|0;if(j<<16>>16>0)a[(c[(c[m>>2]|0)+196>>2]|0)+(e+-1<<6)+49>>0]=0;j=e;while(1){if((j|0)>(b[f+238>>1]|0))break;i=c[(c[(c[(c[f+268>>2]|0)+(j<<2)>>2]|0)+16>>2]|0)+236>>2]|0;Qk(k,j,i,c[(c[f+196>>2]|0)+(j<<6)>>2]|0);g=0;h=i;while(1){f=c[l>>2]|0;e=c[f+196>>2]|0;if((g|0)>=(c[e+(j<<6)>>2]|0))break;e=c[(c[e+(j<<6)+4>>2]|0)+(g<<2)>>2]|0;c[(c[(c[(c[m>>2]|0)+196>>2]|0)+(j<<6)+4>>2]|0)+(h<<2)>>2]=e;f=c[e+16>>2]|0;c[f+236>>2]=h;if((a[f+156>>0]|0)==1)c[e+24>>2]=ro(k)|0;ch(d,e);ah(k,e);f=(c[m>>2]|0)+232|0;c[f>>2]=(c[f>>2]|0)+1;g=g+1|0;h=h+1|0}h=c[(c[m>>2]|0)+196>>2]|0;c[e+(j<<6)+4>>2]=(c[h+(j<<6)+4>>2]|0)+(i<<2);a[h+(j<<6)+49>>0]=0;j=j+1|0}e=c[m>>2]|0;if((j|0)<(b[e+238>>1]|0))a[(c[e+196>>2]|0)+(j<<6)+49>>0]=0;a[f+272>>0]=1;return}function Tk(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+16|0;d=c[i>>2]|0;h=b[d+236>>1]|0;while(1){if((h|0)>(b[d+238>>1]|0))break;f=c[(c[d+268>>2]|0)+(h<<2)>>2]|0;g=f+16|0;while(1){d=c[g>>2]|0;e=c[c[d+180>>2]>>2]|0;if(!e)break;Wg(e)}while(1){d=c[c[d+172>>2]>>2]|0;if(!d)break;Wg(d);d=c[g>>2]|0}ch(Uf(a)|0,f);c[(c[(c[i>>2]|0)+268>>2]|0)+(h<<2)>>2]=0;h=h+1|0;d=c[i>>2]|0}return}function Uk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;f=bo(b)|0;while(1){if(!f)break;e=f+16|0;d=c[e>>2]|0;if((a[d+159>>0]|0)==7){HA(f);d=c[e>>2]|0}c[d+212>>2]=0;f=co(b,f)|0}m=b+16|0;k=1;while(1){d=c[m>>2]|0;if((k|0)>(c[d+180>>2]|0))break;h=c[(c[d+184>>2]|0)+(k<<2)>>2]|0;i=h+16|0;d=bo(h)|0;a:while(1){if(!d)break;j=co(h,d)|0;e=d+16|0;if(a[(c[e>>2]|0)+159>>0]|0){f=Cn(d)|0;g=Cn(b)|0;c[n>>2]=f;c[n+4>>2]=g;Zl(0,80591,n)|0;po(h,d)|0;d=j;continue}IA(d,c[(c[i>>2]|0)+264>>2]|0);g=c[e>>2]|0;c[g+212>>2]=h;a[g+159>>0]=7;g=Om(h,d)|0;while(1){if(!g){d=j;continue a}d=c[(c[g+16>>2]|0)+172>>2]|0;b:do if(d|0)do{e=d+-48|0;f=c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break b;c[f+212>>2]=h;d=c[c[(c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((d|0)!=0);while(0);g=Qm(h,g)|0}}k=k+1|0}l=o;return}function Vk(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=e+16|0;g=qw((b[(c[k>>2]|0)+238>>1]<<2)+8|0)|0;f=c[k>>2]|0;c[f+268>>2]=g;g=0;h=b[f+236>>1]|0;while(1){if((h|0)>(b[f+238>>1]|0))break;f=eh(d)|0;c[(c[(c[k>>2]|0)+268>>2]|0)+(h<<2)>>2]=f;j=c[f+16>>2]|0;c[j+232>>2]=h;a[j+159>>0]=7;c[j+212>>2]=e;if(g|0){j=(c[($g(g,f,0)|0)+16>>2]|0)+154|0;b[j>>1]=(b[j>>1]|0)*1e3}g=f;h=h+1|0;f=c[k>>2]|0}j=bo(e)|0;while(1){f=c[k>>2]|0;if(!j)break;h=(c[(c[f+268>>2]|0)+(c[(c[j+16>>2]|0)+232>>2]<<2)>>2]|0)+16|0;f=(c[h>>2]|0)+216|0;c[f>>2]=(c[f>>2]|0)+1;f=Om(e,j)|0;while(1){if(!f)break;i=c[f>>2]|0;d=f+-48|0;g=c[(c[(c[((i&3|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;while(1){if((g|0)>=(c[(c[(c[((i&3|0)==2?f:d)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;i=(c[(c[c[(c[h>>2]|0)+180>>2]>>2]|0)+16>>2]|0)+168|0;b[i>>1]=(b[i>>1]|0)+1<<16>>16;g=g+1|0;i=c[f>>2]|0}f=Qm(e,f)|0}j=co(e,j)|0}d=b[f+238>>1]|0;i=f+268|0;f=b[f+236>>1]|0;while(1){if((f|0)>(d|0))break;g=(c[(c[(c[i>>2]|0)+(f<<2)>>2]|0)+16>>2]|0)+216|0;h=c[g>>2]|0;if((h|0)>1)c[g>>2]=h+-1;f=f+1|0}return}function Wk(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=(c[(c[e+16>>2]|0)+212>>2]|0)+16|0;e=c[k>>2]|0;j=f+1|0;if((j|0)!=(a[e+273>>0]|0)){i=b[e+236>>1]|0;while(1){h=b[e+238>>1]|0;if((i|0)>(h<<16>>16|0))break;li(d,c[(c[e+268>>2]|0)+(i<<2)>>2]|0);i=i+1|0;e=c[k>>2]|0}i=b[e+236>>1]|0;while(1){if((i|0)>(h<<16>>16|0))break;mi(g,c[(c[e+268>>2]|0)+(i<<2)>>2]|0,f);d=c[k>>2]|0;i=i+1|0;h=b[d+238>>1]|0;e=d}a[e+273>>0]=j}return}function Xk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=bo(b)|0;while(1){if(!h)break;c[(c[h+16>>2]|0)+212>>2]=0;g=Om(b,h)|0;while(1){if(!g)break;d=c[(c[g+16>>2]|0)+172>>2]|0;a:do if(d|0)do{e=d+-48|0;f=c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break a;c[f+212>>2]=0;d=c[c[(c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((d|0)!=0);while(0);g=Qm(b,g)|0}h=co(b,h)|0}Yk(b);return}function Yk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=b+16|0;d=1;while(1){f=c[e>>2]|0;if((d|0)>(c[f+180>>2]|0))break;Yk(c[(c[f+184>>2]|0)+(d<<2)>>2]|0);d=d+1|0}i=bo(b)|0;while(1){if(!i)break;d=(c[i+16>>2]|0)+212|0;if(!(c[d>>2]|0))c[d>>2]=b;h=Om(b,i)|0;while(1){if(!h)break;d=c[(c[h+16>>2]|0)+172>>2]|0;a:do if(d|0)do{e=c[d>>2]|0;g=d+-48|0;f=c[(c[((e&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break a;f=f+212|0;if(!(c[f>>2]|0)){c[f>>2]=b;e=c[d>>2]|0}d=c[c[(c[(c[((e&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((d|0)!=0);while(0);h=Qm(b,h)|0}i=co(b,i)|0}return}function Zk(a){a=a|0;var b=0,c=0,d=0;d=dB(a)|0;c=bo(a)|0;while(1){if(!c)break;b=Om(a,c)|0;while(1){if(!b)break;_k(b,d);b=Qm(a,b)|0}c=co(a,c)|0}Jl(d)|0;return}function _k(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+320|0;H=M+296|0;G=M+280|0;x=M+136|0;w=M+120|0;n=M+104|0;i=M+88|0;f=M+80|0;E=M+16|0;z=M;j=M+264|0;k=M+248|0;m=M+232|0;o=M+216|0;A=M+200|0;B=M+184|0;y=M+168|0;D=M+152|0;g=$k(Hm(a,80645)|0,b)|0;q=$k(Hm(a,80651)|0,b)|0;r=(q|0)!=0;b=(g|0)!=0;do if(b|r?(L=a+16|0,e=c[(c[L>>2]|0)+8>>2]|0,e|0):0){if((c[e+4>>2]|0)>1){K=Cn(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)|0;L=Cn(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)|0;c[f>>2]=K;c[f+4>>2]=L;Zl(0,80657,f)|0;break}I=c[e>>2]|0;e=c[I+4>>2]|0;p=c[a>>2]&3;s=a+-48|0;t=c[((p|0)==2?a:s)+40>>2]|0;u=a+48|0;p=c[((p|0)==3?a:u)+40>>2]|0;J=rw(48)|0;v=I+12|0;c[J+12>>2]=c[v>>2];C=I+8|0;c[J+8>>2]=c[C>>2];do if(b){h=(c[g+16>>2]|0)+16|0;g=(c[t+16>>2]|0)+16|0;c[H>>2]=c[g>>2];c[H+4>>2]=c[g+4>>2];c[H+8>>2]=c[g+8>>2];c[H+12>>2]=c[g+12>>2];if(!(al(H,h)|0)){o=Cn(c[((c[a>>2]&3|0)==3?a:u)+40>>2]|0)|0;F=Cn(c[((c[a>>2]&3|0)==2?a:s)+40>>2]|0)|0;K=Hm(a,80645)|0;c[i>>2]=o;c[i+4>>2]=F;c[i+8>>2]=K;Zl(0,80698,i)|0;K=26;break}b=c[I>>2]|0;c[H>>2]=c[b>>2];c[H+4>>2]=c[b+4>>2];c[H+8>>2]=c[b+8>>2];c[H+12>>2]=c[b+12>>2];if(al(H,h)|0){F=(c[p+16>>2]|0)+16|0;c[H>>2]=c[F>>2];c[H+4>>2]=c[F+4>>2];c[H+8>>2]=c[F+8>>2];c[H+12>>2]=c[F+12>>2];if(al(H,h)|0){o=Cn(c[((c[a>>2]&3|0)==3?a:u)+40>>2]|0)|0;F=Cn(c[((c[a>>2]&3|0)==2?a:s)+40>>2]|0)|0;K=Hm(a,80645)|0;c[n>>2]=o;c[n+4>>2]=F;c[n+8>>2]=K;Zl(0,80741,n)|0;K=26;break}if(!(c[C>>2]|0))ma(80783,80794,369,80805);o=I+16|0;c[G>>2]=c[b>>2];c[G+4>>2]=c[b+4>>2];c[G+8>>2]=c[b+8>>2];c[G+12>>2]=c[b+12>>2];c[H>>2]=c[o>>2];c[H+4>>2]=c[o+4>>2];c[H+8>>2]=c[o+8>>2];c[H+12>>2]=c[o+12>>2];bl(z,G,H,h);F=(c[I>>2]|0)+48|0;c[F>>2]=c[z>>2];c[F+4>>2]=c[z+4>>2];c[F+8>>2]=c[z+8>>2];c[F+12>>2]=c[z+12>>2];F=(c[I>>2]|0)+16|0;c[G>>2]=c[z>>2];c[G+4>>2]=c[z+4>>2];c[G+8>>2]=c[z+8>>2];c[G+12>>2]=c[z+12>>2];c[H>>2]=c[o>>2];c[H+4>>2]=c[o+4>>2];c[H+8>>2]=c[o+8>>2];c[H+12>>2]=c[o+12>>2];cl(j,G,H);c[F>>2]=c[j>>2];c[F+4>>2]=c[j+4>>2];c[F+8>>2]=c[j+8>>2];c[F+12>>2]=c[j+12>>2];F=c[I>>2]|0;b=F+16|0;c[G>>2]=c[b>>2];c[G+4>>2]=c[b+4>>2];c[G+8>>2]=c[b+8>>2];c[G+12>>2]=c[b+12>>2];c[H>>2]=c[o>>2];c[H+4>>2]=c[o+4>>2];c[H+8>>2]=c[o+8>>2];c[H+12>>2]=c[o+12>>2];cl(k,G,H);c[F>>2]=c[k>>2];c[F+4>>2]=c[k+4>>2];c[F+8>>2]=c[k+8>>2];c[F+12>>2]=c[k+12>>2];F=c[I>>2]|0;b=F+32|0;F=F+16|0;c[G>>2]=c[F>>2];c[G+4>>2]=c[F+4>>2];c[G+8>>2]=c[F+8>>2];c[G+12>>2]=c[F+12>>2];c[H>>2]=c[z>>2];c[H+4>>2]=c[z+4>>2];c[H+8>>2]=c[z+8>>2];c[H+12>>2]=c[z+12>>2];cl(m,G,H);c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];c[b+12>>2]=c[m+12>>2];b=c[v>>2]|0;if(!b){F=3;break}F=(It(a,c[I>>2]|0,0,0,J,b)|0)+3|0;break}g=e+-1|0;b=0;while(1){if((b|0)>=(g|0))break;if(dl((c[I>>2]|0)+(b<<4)|0,h)|0)break;b=b+3|0}e=c[v>>2]|0;f=(e|0)!=0;if((b|0)==(g|0))if(f){F=J+32|0;m=I+32|0;n=(c[I>>2]|0)+(g<<4)|0;c[G>>2]=c[m>>2];c[G+4>>2]=c[m+4>>2];c[G+8>>2]=c[m+8>>2];c[G+12>>2]=c[m+12>>2];c[H>>2]=c[n>>2];c[H+4>>2]=c[n+4>>2];c[H+8>>2]=c[n+8>>2];c[H+12>>2]=c[n+12>>2];bl(o,G,H,h);c[F>>2]=c[o>>2];c[F+4>>2]=c[o+4>>2];c[F+8>>2]=c[o+8>>2];c[F+12>>2]=c[o+12>>2];F=g;break}else ma(80822,80794,387,80805);else{if(f)b=It(a,c[I>>2]|0,0,b,J,e)|0;F=b+3|0;break}}else K=26;while(0);if((K|0)==26){b=e+-1|0;if(!(c[v>>2]|0))F=b;else{F=J+32|0;o=I+32|0;c[F>>2]=c[o>>2];c[F+4>>2]=c[o+4>>2];c[F+8>>2]=c[o+8>>2];c[F+12>>2]=c[o+12>>2];F=b}}do if(r){f=(c[q+16>>2]|0)+16|0;r=(c[p+16>>2]|0)+16|0;c[H>>2]=c[r>>2];c[H+4>>2]=c[r+4>>2];c[H+8>>2]=c[r+8>>2];c[H+12>>2]=c[r+12>>2];if(!(al(H,f)|0)){G=Cn(c[((c[a>>2]&3|0)==3?a:u)+40>>2]|0)|0;H=Cn(c[((c[a>>2]&3|0)==2?a:s)+40>>2]|0)|0;K=Hm(a,80651)|0;c[w>>2]=G;c[w+4>>2]=H;c[w+8>>2]=K;Zl(0,80833,w)|0;K=52;break}b=(c[I>>2]|0)+(F<<4)|0;c[H>>2]=c[b>>2];c[H+4>>2]=c[b+4>>2];c[H+8>>2]=c[b+8>>2];c[H+12>>2]=c[b+12>>2];if(al(H,f)|0){E=(c[t+16>>2]|0)+16|0;c[H>>2]=c[E>>2];c[H+4>>2]=c[E+4>>2];c[H+8>>2]=c[E+8>>2];c[H+12>>2]=c[E+12>>2];if(al(H,f)|0){G=Cn(c[((c[a>>2]&3|0)==3?a:u)+40>>2]|0)|0;H=Cn(c[((c[a>>2]&3|0)==2?a:s)+40>>2]|0)|0;K=Hm(a,80651)|0;c[x>>2]=G;c[x+4>>2]=H;c[x+8>>2]=K;Zl(0,80876,x)|0;K=52;break}if(!(c[v>>2]|0))ma(80822,80794,429,80805);x=J+32|0;c[G>>2]=c[b>>2];c[G+4>>2]=c[b+4>>2];c[G+8>>2]=c[b+8>>2];c[G+12>>2]=c[b+12>>2];c[H>>2]=c[x>>2];c[H+4>>2]=c[x+4>>2];c[H+8>>2]=c[x+8>>2];c[H+12>>2]=c[x+12>>2];bl(z,G,H,f);d=F+-3|0;E=(c[I>>2]|0)+(d<<4)|0;c[E>>2]=c[z>>2];c[E+4>>2]=c[z+4>>2];c[E+8>>2]=c[z+8>>2];c[E+12>>2]=c[z+12>>2];E=F+-1|0;b=(c[I>>2]|0)+(E<<4)|0;c[G>>2]=c[z>>2];c[G+4>>2]=c[z+4>>2];c[G+8>>2]=c[z+8>>2];c[G+12>>2]=c[z+12>>2];c[H>>2]=c[x>>2];c[H+4>>2]=c[x+4>>2];c[H+8>>2]=c[x+8>>2];c[H+12>>2]=c[x+12>>2];cl(A,G,H);c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];b=c[I>>2]|0;D=b+(F<<4)|0;b=b+(E<<4)|0;c[G>>2]=c[b>>2];c[G+4>>2]=c[b+4>>2];c[G+8>>2]=c[b+8>>2];c[G+12>>2]=c[b+12>>2];c[H>>2]=c[x>>2];c[H+4>>2]=c[x+4>>2];c[H+8>>2]=c[x+8>>2];c[H+12>>2]=c[x+12>>2];cl(B,G,H);c[D>>2]=c[B>>2];c[D+4>>2]=c[B+4>>2];c[D+8>>2]=c[B+8>>2];c[D+12>>2]=c[B+12>>2];D=c[I>>2]|0;b=D+(F+-2<<4)|0;E=D+(E<<4)|0;c[G>>2]=c[E>>2];c[G+4>>2]=c[E+4>>2];c[G+8>>2]=c[E+8>>2];c[G+12>>2]=c[E+12>>2];c[H>>2]=c[z>>2];c[H+4>>2]=c[z+4>>2];c[H+8>>2]=c[z+8>>2];c[H+12>>2]=c[z+12>>2];cl(y,G,H);c[b>>2]=c[y>>2];c[b+4>>2]=c[y+4>>2];c[b+8>>2]=c[y+8>>2];c[b+12>>2]=c[y+12>>2];b=c[C>>2]|0;if(!b)break;d=Kt(a,c[I>>2]|0,d,d,J,b)|0;break}e=F;while(1){if((e|0)>0)b=0;else break;while(1){if((b|0)==4)break;B=E+(b<<4)|0;A=(c[I>>2]|0)+(e-b<<4)|0;c[B>>2]=c[A>>2];c[B+4>>2]=c[A+4>>2];c[B+8>>2]=c[A+8>>2];c[B+12>>2]=c[A+12>>2];b=b+1|0}if(dl(E,f)|0){b=0;K=43;break}e=e+-3|0}a:do if((K|0)==43)while(1){K=0;if((b|0)==4)break a;K=(c[I>>2]|0)+(e-b<<4)|0;B=E+(b<<4)|0;c[K>>2]=c[B>>2];c[K+4>>2]=c[B+4>>2];c[K+8>>2]=c[B+8>>2];c[K+12>>2]=c[B+12>>2];b=b+1|0;K=43}while(0);if(e|0){d=e+-3|0;b=c[C>>2]|0;if(!b)break;d=Kt(a,c[I>>2]|0,d,F+-3|0,J,b)|0;break}if(!(c[C>>2]|0))ma(80783,80794,452,80805);else{d=J+16|0;E=I+16|0;a=c[I>>2]|0;c[G>>2]=c[E>>2];c[G+4>>2]=c[E+4>>2];c[G+8>>2]=c[E+8>>2];c[G+12>>2]=c[E+12>>2];c[H>>2]=c[a>>2];c[H+4>>2]=c[a+4>>2];c[H+8>>2]=c[a+8>>2];c[H+12>>2]=c[a+12>>2];bl(D,G,H,f);c[d>>2]=c[D>>2];c[d+4>>2]=c[D+4>>2];c[d+8>>2]=c[D+8>>2];c[d+12>>2]=c[D+12>>2];d=0;break}}else K=52;while(0);if((K|0)==52)if(!(c[C>>2]|0))d=0;else{d=J+16|0;K=I+16|0;c[d>>2]=c[K>>2];c[d+4>>2]=c[K+4>>2];c[d+8>>2]=c[K+8>>2];c[d+12>>2]=c[K+12>>2];d=0}b=F-d+1|0;e=J+4|0;c[e>>2]=b;c[J>>2]=rw(b<<4)|0;b=0;while(1){if((b|0)>=(c[e>>2]|0))break;K=(c[J>>2]|0)+(b<<4)|0;a=(c[I>>2]|0)+(d<<4)|0;c[K>>2]=c[a>>2];c[K+4>>2]=c[a+4>>2];c[K+8>>2]=c[a+8>>2];c[K+12>>2]=c[a+12>>2];d=d+1|0;b=b+1|0}XI(c[I>>2]|0);XI(I);c[c[(c[L>>2]|0)+8>>2]>>2]=J}while(0);l=M;return}function $k(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if((b|0)!=0?(a[b>>0]|0)!=0:0){d=eB(d,b)|0;if(!d){c[e>>2]=b;Zl(0,80996,e)|0;d=0}}else d=0;l=f;return d|0}function al(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a>>3];if((+h[b>>3]<=d?d<=+h[b+16>>3]:0)?(c=+h[a+8>>3],+h[b+8>>3]<=c):0)a=c<=+h[b+24>>3]&1;else a=0;return a|0}function bl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0.0,k=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0;C=l;l=l+464|0;n=C+48|0;B=C+32|0;u=C+16|0;v=C;w=C+364|0;x=C+264|0;z=C+164|0;A=C+64|0;q=+h[b>>3];r=+h[b+8>>3];s=+h[d>>3];t=+h[d+8>>3];c[u>>2]=c[e>>2];c[u+4>>2]=c[e+4>>2];c[u+8>>2]=c[e+8>>2];c[u+12>>2]=c[e+12>>2];e=e+16|0;c[v>>2]=c[e>>2];c[v+4>>2]=c[e+4>>2];c[v+8>>2]=c[e+8>>2];c[v+12>>2]=c[e+12>>2];k=+h[u>>3];if((s<k?(f=r+ +(~~((k-q)*(r-t)/(q-s))|0),f>=+h[u+8>>3]):0)?f<=+h[v+8>>3]:0){o=f;p=k}else i=4;do if((i|0)==4){j=+h[v>>3];if(s>j){g=r+ +(~~((j-q)*(r-t)/(q-s))|0);f=+h[u+8>>3];if(g>=f?g<=+h[v+8>>3]:0){o=g;p=j;break}}else f=+h[u+8>>3];if(t<f?(m=q+ +(~~((f-r)*(q-s)/(r-t))|0),!(!(m>=k)|!(m<=j))):0){o=f;p=m;break}f=+h[v+8>>3];if(t>f?(y=q+ +(~~((f-r)*(q-s)/(r-t))|0),!(!(y>=k)|!(y<=j))):0){o=f;p=y;break};c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];w=il(n,w)|0;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];x=il(n,x)|0;c[n>>2]=c[u>>2];c[n+4>>2]=c[u+4>>2];c[n+8>>2]=c[u+8>>2];c[n+12>>2]=c[u+12>>2];z=il(n,z)|0;c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];c[n+12>>2]=c[v+12>>2];A=il(n,A)|0;c[B>>2]=w;c[B+4>>2]=x;c[B+8>>2]=z;c[B+12>>2]=A;Zl(1,80918,B)|0;ma(123205,80794,78,80970)}while(0);h[a>>3]=p;h[a+8>>3]=o;l=C;return}function cl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=(+h[c+8>>3]+ +h[b+8>>3])*.5;h[a>>3]=(+h[c>>3]+ +h[b>>3])*.5;h[a+8>>3]=d;return}function dl(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+80|0;j=m+16|0;k=m;e=0;while(1){if((e|0)==4)break;i=j+(e<<4)|0;g=a+(e<<4)|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];e=e+1|0}e=b+8|0;i=b+24|0;d=+el(a,0.0,1.0,+h[b>>3],+h[e>>3],+h[i>>3]);if(d>=0.0&d<2.0)KA(k,j,3,d,a,0);else d=2.0;g=b+16|0;f=+el(a,0.0,d>1.0?1.0:d,+h[g>>3],+h[e>>3],+h[i>>3]);if(f>=0.0&f<d){KA(k,j,3,f,a,0);d=f}f=+fl(a,0.0,d>1.0?1.0:d,+h[e>>3],+h[b>>3],+h[g>>3]);if(f>=0.0&f<d){KA(k,j,3,f,a,0);d=f}f=+fl(a,0.0,d>1.0?1.0:d,+h[i>>3],+h[b>>3],+h[g>>3]);if(f>=0.0&f<d){KA(k,j,3,f,a,0);d=f}l=m;return d<2.0|0}function el(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,i=0,j=0,k=0,m=0;m=l;l=l+144|0;j=m+80|0;k=m+16|0;i=m;a:do if(!(b==c)){switch(hl(a,d)|0){case 0:{b=-1.0;break a}case 1:{if(+B(+(+h[a+48>>3]-d))<=.005){b=+h[a+56>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}KA(i,a,3,.5,j,k);g=(c+b)*.5;b=+el(j,b,g,d,e,f);if(!(b>=0.0))b=+el(k,g,c,d,e,f)}while(0);l=m;return +b}function fl(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,i=0,j=0,k=0,m=0;m=l;l=l+144|0;j=m+80|0;k=m+16|0;i=m;a:do if(!(b==c)){switch(gl(a,d)|0){case 0:{b=-1.0;break a}case 1:{if(+B(+(+h[a+56>>3]-d))<=.005){b=+h[a+48>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}KA(i,a,3,.5,j,k);g=(c+b)*.5;b=+fl(j,b,g,d,e,f);if(!(b>=0.0))b=+fl(k,g,c,d,e,f)}while(0);l=m;return +b}function gl(a,b){a=a|0;b=+b;var c=0,d=0,e=0,f=0.0,g=0,i=0;f=+h[a+8>>3];e=f<b?-1:f>b&1;c=1;d=e;e=(e|0)==0&1;while(1){if((c|0)==4)break;f=+h[a+(c<<4)+8>>3];i=f<b?-1:f>b&1;g=e+((d|0)!=0&(i|0)!=(d|0)&1)|0;c=c+1|0;d=i;e=g}return e|0}function hl(a,b){a=a|0;b=+b;var c=0,d=0,e=0,f=0.0,g=0,i=0;f=+h[a>>3];e=f<b?-1:f>b&1;c=1;d=e;e=(e|0)==0&1;while(1){if((c|0)==4)break;f=+h[a+(c<<4)>>3];i=f<b?-1:f>b&1;g=e+((d|0)!=0&(i|0)!=(d|0)&1)|0;c=c+1|0;d=i;e=g}return e|0}function il(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0;c=l;l=l+16|0;d=c;e=+h[a+8>>3];h[d>>3]=+h[a>>3];h[d+8>>3]=e;lL(b,80984,d)|0;l=c;return b|0}function jl(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;s=v;u=4;t=WI(40)|0;c[t>>2]=0;r=a+16|0;e=c[r>>2]|0;a:do if(((b[e+238>>1]|0)-(b[e+236>>1]|0)|0)>=2){m=1;d=e;e=c[e+196>>2]|0;b:while(1){n=m+1|0;if(!(c[e+(n<<6)>>2]|0)){q=15;break}else k=0;while(1){h=c[e+(m<<6)>>2]|0;if((k|0)>=(h|0)){m=n;continue b}j=c[(c[e+(m<<6)+4>>2]|0)+(k<<2)>>2]|0;o=0;d=_(18,j|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,u|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){d=z;break b}if(d<<24>>24){i=k;d=h;while(1){g=i+1|0;if((g|0)>=(d|0))break;o=0;d=$(17,j|0,c[(c[e+(m<<6)+4>>2]|0)+(g<<2)>>2]|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,t|0,u|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){d=z;break b}if(!(d<<24>>24))break;d=c[(c[r>>2]|0)+196>>2]|0;i=g;e=d;d=c[d+(m<<6)>>2]|0}if((g-k|0)>1){o=0;ka(6,a|0,m|0,k|0,i|0,1);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=ON(c[d>>2]|0,t|0,u|0)|0;if(!e)Ua(d|0,p|0);z=p}else e=-1;if((e|0)==1){d=z;break b}}}e=c[r>>2]|0;k=k+1|0;d=e;e=c[e+196>>2]|0}}c:do if((q|0)==15){while(1){if((m|0)>0)k=0;else break;while(1){e=c[d+196>>2]|0;h=c[e+(m<<6)>>2]|0;if((k|0)>=(h|0))break;j=c[(c[e+(m<<6)+4>>2]|0)+(k<<2)>>2]|0;o=0;d=_(19,j|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,t|0,u|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){d=z;break c}if(d<<24>>24){i=k;d=h;while(1){g=i+1|0;if((g|0)>=(d|0))break;o=0;d=$(18,j|0,c[(c[e+(m<<6)+4>>2]|0)+(g<<2)>>2]|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,t|0,u|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){d=z;break c}if(!(d<<24>>24))break;d=c[(c[r>>2]|0)+196>>2]|0;i=g;e=d;d=c[d+(m<<6)>>2]|0}if((g-k|0)>1){o=0;ka(6,a|0,m|0,k|0,i|0,0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=ON(c[d>>2]|0,t|0,u|0)|0;if(!e)Ua(d|0,p|0);z=p}else e=-1;if((e|0)==1){d=z;break c}}}k=k+1|0;d=c[r>>2]|0}m=m+-1|0;q=15}t=NN(167760,1,t|0,u|0)|0;u=z;o=0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=ON(c[d>>2]|0,t|0,u|0)|0;if(!e)Ua(d|0,p|0);z=p}else e=-1;if((e|0)==1)d=z;else d=0}while(0);d:while(1){if(d){o=0;aa(11,3,81024,s|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=ON(c[d>>2]|0,t|0,u|0)|0;if(!e)Ua(d|0,p|0);z=p}else e=-1;if((e|0)==1){d=z;continue}else break}else f=1;while(1){d=c[r>>2]|0;if((f|0)>(c[d+180>>2]|0))break a;o=0;fa(85,c[(c[d+184>>2]|0)+(f<<2)>>2]|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=ON(c[d>>2]|0,t|0,u|0)|0;if(!e)Ua(d|0,p|0);z=p}else e=-1;if((e|0)==1){d=z;continue d}f=f+1|0}}}while(0);XI(t|0);l=v;return}function kl(b){b=b|0;b=c[b+16>>2]|0;if(((a[b+156>>0]|0)==1?(c[b+176>>2]|0)==1:0)?(c[b+184>>2]|0)==1:0)b=(c[b+104>>2]|0)==0&1;else b=0;return b|0}function ll(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+80|0;h=i+40|0;g=i;e=c[c[(c[a+16>>2]|0)+172>>2]>>2]|0;a=c[c[(c[b+16>>2]|0)+172>>2]>>2]|0;if(((kl(b)|0)<<24>>24!=0?(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)==(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0):0)?(rl(e,a)|0)<<24>>24!=0:0){d=(c[a+16>>2]|0)+16|0;f=g;a=(c[e+16>>2]|0)+16|0;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));f=h;a=d;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));a=(Vf(g,h)|0)==0&1}else a=0;l=i;return a|0}function ml(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=a+16|0;q=c[(c[(c[(c[t>>2]|0)+196>>2]|0)+(b<<6)+4>>2]|0)+(d<<2)>>2]|0;p=d+1|0;m=(f|0)==1;n=q+16|0;l=p;while(1){if((l|0)>(e|0)){g=e;s=p;break}o=c[(c[(c[(c[t>>2]|0)+196>>2]|0)+(b<<6)+4>>2]|0)+(l<<2)>>2]|0;k=o+16|0;a:do if(m)while(1){d=c[k>>2]|0;j=c[c[d+180>>2]>>2]|0;if(!j)break a;h=c[(c[n>>2]|0)+180>>2]|0;i=j+-48|0;f=0;while(1){d=c[h+(f<<2)>>2]|0;if(!d){r=8;break}if((c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)==(c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0))break;else f=f+1|0}if((r|0)==8){r=0;d=$g(q,c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0,j)|0}while(1){f=c[c[(c[k>>2]|0)+172>>2]>>2]|0;if(!f)break;hh(f,d);Wg(f)}Wg(j)}else while(1){d=c[k>>2]|0;j=c[c[d+172>>2]>>2]|0;if(!j)break a;h=c[(c[n>>2]|0)+172>>2]|0;i=j+48|0;f=0;while(1){d=c[h+(f<<2)>>2]|0;if(!d){r=17;break}if((c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)==(c[((c[j>>2]&3|0)==3?j:i)+40>>2]|0))break;else f=f+1|0}if((r|0)==17){r=0;d=$g(c[((c[j>>2]&3|0)==3?j:i)+40>>2]|0,q,j)|0}while(1){f=c[c[(c[k>>2]|0)+180>>2]>>2]|0;if(!f)break;hh(f,d);Wg(f)}Wg(j)}while(0);if((c[d+176>>2]|0)!=(0-(c[d+184>>2]|0)|0)){r=23;break}ch(a,o);l=l+1|0}if((r|0)==23)ma(81160,81204,115,81211);while(1){g=g+1|0;d=c[(c[t>>2]|0)+196>>2]|0;f=d+(b<<6)|0;if((g|0)>=(c[f>>2]|0))break;e=c[d+(b<<6)+4>>2]|0;r=c[e+(g<<2)>>2]|0;c[e+(s<<2)>>2]=r;c[(c[r+16>>2]|0)+236>>2]=s;s=s+1|0}c[f>>2]=s;c[(c[d+(b<<6)+4>>2]|0)+(s<<2)>>2]=0;return}function nl(b){b=b|0;b=c[b+16>>2]|0;if(((a[b+156>>0]|0)==1?(c[b+184>>2]|0)==1:0)?(c[b+176>>2]|0)==1:0)b=(c[b+104>>2]|0)==0&1;else b=0;return b|0}function ol(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+80|0;h=i+40|0;g=i;e=c[c[(c[a+16>>2]|0)+180>>2]>>2]|0;a=c[c[(c[b+16>>2]|0)+180>>2]>>2]|0;if(((nl(b)|0)<<24>>24!=0?(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)==(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0):0)?(rl(e,a)|0)<<24>>24!=0:0){d=(c[a+16>>2]|0)+56|0;f=g;a=(c[e+16>>2]|0)+56|0;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));f=h;a=d;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));a=(Vf(g,h)|0)==0&1}else a=0;l=i;return a|0}function pl(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;p=r+16|0;o=r;m=d+16|0;f=c[m>>2]|0;e=b[f+236>>1]|0;while(1){if((e|0)>(b[f+238>>1]|0))break;c[(c[f+268>>2]|0)+(e<<2)>>2]=0;e=e+1|0;f=c[m>>2]|0}hj(d);j=bo(d)|0;while(1){if(!j)break;ql(d,j);i=Om(d,j)|0;while(1){if(!i)break;else f=i;while(1){e=c[(c[f+16>>2]|0)+172>>2]|0;if(!e)break;else f=e}h=i+-48|0;while(1){e=f+-48|0;g=c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0;if((c[(c[g+16>>2]|0)+232>>2]|0)>=(c[(c[(c[((c[i>>2]&3|0)==2?i:h)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;ql(d,g);f=c[c[(c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}i=Qm(d,i)|0}j=co(d,j)|0}e=c[m>>2]|0;i=b[e+236>>1]|0;while(1){if((i|0)>(b[e+238>>1]|0)){k=1;n=e;break}e=c[(c[e+268>>2]|0)+(i<<2)>>2]|0;j=c[(c[(c[(Uf(d)|0)+16>>2]|0)+196>>2]|0)+(i<<6)+4>>2]|0;f=e+16|0;if((c[j+(c[(c[f>>2]|0)+236>>2]<<2)>>2]|0)!=(e|0)){q=17;break}h=c[(c[(c[(Uf(d)|0)+16>>2]|0)+196>>2]|0)+(i<<6)+4>>2]|0;e=c[m>>2]|0;f=c[e+196>>2]|0;c[f+(i<<6)+4>>2]=h+(c[(c[(c[(c[e+268>>2]|0)+(i<<2)>>2]|0)+16>>2]|0)+236>>2]<<2);e=-1;h=0;a:while(1){if((h|0)>=(c[f+(i<<6)>>2]|0))break;f=c[(c[f+(i<<6)+4>>2]|0)+(h<<2)>>2]|0;if(!f)break;g=c[f+16>>2]|0;b:do if(!(a[g+156>>0]|0))if(!(Ao(d,f)|0))break a;else e=h;else{f=c[c[g+172>>2]>>2]|0;while(1){if(!f)break b;g=c[(c[f+16>>2]|0)+116>>2]|0;if(!g)break;else f=g}if(Ao(d,c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)|0){j=(Ao(d,c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)|0)==0;e=j?e:h}}while(0);h=h+1|0;f=c[(c[m>>2]|0)+196>>2]|0}if((e|0)==-1){c[p>>2]=Cn(d)|0;c[p+4>>2]=i;Zl(0,81124,p)|0}j=c[m>>2]|0;c[(c[j+196>>2]|0)+(i<<6)>>2]=e+1;i=i+1|0;e=j}if((q|0)==17){p=Cn(e)|0;q=c[(c[f>>2]|0)+236>>2]|0;c[o>>2]=p;c[o+4>>2]=q;c[o+8>>2]=i;Zl(1,81066,o)|0;Ua(167760,1)}while(1){if((k|0)>(c[n+180>>2]|0))break;pl(c[(c[n+184>>2]|0)+(k<<2)>>2]|0);k=k+1|0;n=c[m>>2]|0}l=r;return}function ql(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+16>>2]|0;a=(c[(c[a+16>>2]|0)+268>>2]|0)+(c[d+232>>2]<<2)|0;e=c[a>>2]|0;if(!((e|0)!=0?(c[(c[e+16>>2]|0)+236>>2]|0)<=(c[d+236>>2]|0):0))c[a>>2]=b;return}function rl(b,d){b=b|0;d=d|0;var e=0,f=0;while(1){f=c[b+16>>2]|0;if(!(a[f+112>>0]|0))break;b=c[f+116>>2]|0}while(1){e=c[d+16>>2]|0;if(!(a[e+112>>0]|0))break;d=c[e+116>>2]|0}if((a[f+153>>0]|0)==0?(a[e+153>>0]|0)==0:0){f=c[d>>2]&3;e=c[b>>2]&3;b=(O((c[(c[(c[((e|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((e|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0,(c[(c[(c[((f|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((f|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)|0)>0&1}else b=0;return b|0}function sl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+544|0;j=k+528|0;tl(j,k+512|0,k);e=(a[173890]|0)+1<<24>>24;a[173890]=e<<24>>24==0?1:e;e=c[b+16>>2]|0;c[e+220>>2]=0;c[e+232>>2]=0;e=(d|0)>0;d=bo(b)|0;while(1){if(!d)break;if(e?(h=c[d+16>>2]|0,i=c[h+212>>2]|0,(i|0)!=0):0){g=c[(c[(c[i+16>>2]|0)+268>>2]|0)+(c[h+232>>2]<<2)>>2]|0;f=7}else f=6;if((f|0)==6?(f=0,(d|0)==(FA(d)|0)):0){g=d;f=7}if((f|0)==7?(0,(a[(c[g+16>>2]|0)+157>>0]|0)!=(a[173890]|0)):0){ul(b);vl(j,b,g);wl(b)}d=co(b,d)|0}xl(j);l=k;return}function tl(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=d;c[b+4>>2]=d+512;c[b+12>>2]=0;c[b+8>>2]=0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=d;return}function ul(a){a=a|0;c[(c[a+16>>2]|0)+192>>2]=0;c[41979]=0;return}function vl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;p=q;yl(b,e);k=p+8|0;m=p+16|0;n=p+24|0;a:while(1){o=zl(b)|0;if(!o)break;e=o+16|0;if((a[(c[e>>2]|0)+157>>0]|0)==(a[173890]|0))continue;Al(d,o);h=c[e>>2]|0;g=h+180|0;j=c[g+4>>2]|0;i=p;c[i>>2]=c[g>>2];c[i+4>>2]=j;i=h+172|0;j=c[i+4>>2]|0;g=k;c[g>>2]=c[i>>2];c[g+4>>2]=j;g=h+188|0;j=c[g+4>>2]|0;i=m;c[i>>2]=c[g>>2];c[i+4>>2]=j;h=h+196|0;i=c[h+4>>2]|0;j=n;c[j>>2]=c[h>>2];c[j+4>>2]=i;j=3;while(1){if((j|0)<=-1)continue a;e=c[p+(j<<3)>>2]|0;b:do if(e|0){i=(c[p+(j<<3)+4>>2]|0)+-1|0;h=e+(i<<2)|0;while(1){if((i|0)<=-1)break b;f=c[h>>2]|0;g=c[f>>2]&3;e=c[((g|0)==2?f:f+-48|0)+40>>2]|0;if((e|0)==(o|0))e=c[((g|0)==3?f:f+48|0)+40>>2]|0;if((a[(c[e+16>>2]|0)+157>>0]|0)!=(a[173890]|0)?(e|0)==(FA(e)|0):0)yl(b,e);h=h+-4|0;i=i+-1|0}}while(0);j=j+-1|0}}l=q;return}function wl(a){a=a|0;var b=0,d=0,e=0,f=0;d=a+16|0;b=c[d>>2]|0;f=b+220|0;e=c[f>>2]|0;a=e+1|0;c[f>>2]=a;b=c[b+216>>2]|0;if(!b)a=rw(a<<2)|0;else a=tw(b,a<<2)|0;f=c[d>>2]|0;c[f+216>>2]=a;c[a+(e<<2)>>2]=c[f+192>>2];return}function xl(a){a=a|0;var b=0;a=c[(c[a>>2]|0)+12>>2]|0;while(1){if(!a)break;b=c[a+12>>2]|0;XI(c[a>>2]|0);XI(a);a=b}return}function yl(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;h=k+8|0;g=k;j=b+8|0;f=c[j>>2]|0;i=b+4|0;b=c[i>>2]|0;if((f|0)==(c[b+4>>2]|0)){f=c[b+12>>2]|0;if(!f){f=qw(16)|0;if(!f)Zl(1,83932,g)|0;c[f+8>>2]=c[i>>2];c[f+12>>2]=0;b=qw(4e6)|0;c[f>>2]=b;if(!b){Zl(1,81224,h)|0;b=c[f>>2]|0}c[f+4>>2]=b+4e6;c[(c[i>>2]|0)+12>>2]=f}c[i>>2]=f;f=c[f>>2]|0;c[j>>2]=f}a[(c[e+16>>2]|0)+157>>0]=(d[173890]|0)+1;c[j>>2]=f+4;c[f>>2]=e;l=k;return}function zl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+8|0;b=c[f>>2]|0;d=a+4|0;e=c[d>>2]|0;if((b|0)==(c[e>>2]|0))if((e|0)==(c[a>>2]|0))b=0;else{b=c[e+8>>2]|0;c[d>>2]=b;b=c[b+4>>2]|0;c[f>>2]=b;g=4}else g=4;if((g|0)==4){b=b+-4|0;c[f>>2]=b;b=c[b>>2]|0}return b|0}function Al(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=c[b+16>>2]|0;g=f+232|0;c[g>>2]=(c[g>>2]|0)+1;g=c[d+16>>2]|0;a[g+157>>0]=a[173890]|0;b=c[41979]|0;e=g+168|0;if(!b){c[e>>2]=0;c[f+192>>2]=d}else{c[e>>2]=b;c[(c[b+16>>2]|0)+164>>2]=d}c[41979]=d;c[g+164>>2]=0;return}function Bl(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0;m=b+16|0;d=(c[m>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;g=d+16|0;d=c[g>>2]|0;e=c[d+188>>2]|0;a:do if(!e)f=0;else{f=0;while(1){e=c[e+(f<<2)>>2]|0;if(!e){f=0;break a}Cl(e);d=c[g>>2]|0;f=f+1|0;e=c[d+188>>2]|0}}while(0);while(1){if((f|0)>=(c[d+208>>2]|0))break;e=c[(c[d+204>>2]|0)+(f<<2)>>2]|0;l=c[e>>2]&3;if((c[(c[(c[((l|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)==(c[(c[(c[((l|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)){Cl(e);d=c[g>>2]|0}f=f+1|0}d=d+164|0}l=c[m>>2]|0;d=c[l+196>>2]|0;if(!((c[d+56>>2]|0)==0?(c[l+180>>2]|0)<=0:0))i=13;b:do if((i|0)==13){i=c[d+4>>2]|0;g=0;c:while(1){d=c[i+(g<<2)>>2]|0;if(!d)break b;e=c[(c[d+16>>2]|0)+196>>2]|0;d=0;while(1){f=c[e+(d<<2)>>2]|0;if(!f)break;l=c[f+16>>2]|0;if(c[l+96>>2]|0?(a[l+113>>0]|0)==0:0)break c;d=d+1|0}g=g+1|0}Dl(b)}while(0);ti(b);e=0;d=(c[m>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;l=d+16|0;d=c[l>>2]|0;f=c[d+188>>2]|0;d:do if(f){k=0;while(1){g=c[f+(k<<2)>>2]|0;if(!g){k=0;break}i=c[g+16>>2]|0;j=c[i+96>>2]|0;do if(j)if(!(a[i+113>>0]|0)){El(g);f=c[l>>2]|0;e=1;d=f;f=c[f+188>>2]|0;break}else{h[i+136>>3]=+h[((c[(c[m>>2]|0)+116>>2]&1|0)==0?j+24|0:j+32|0)>>3];break}while(0);k=k+1|0}while(1){if((k|0)>=(c[d+208>>2]|0))break d;i=c[(c[d+204>>2]|0)+(k<<2)>>2]|0;j=c[i>>2]&3;g=c[((j|0)==3?i:i+48|0)+40>>2]|0;j=c[((j|0)==2?i:i+-48|0)+40>>2]|0;do if(!((g|0)==(j|0)?1:(c[(c[g+16>>2]|0)+232>>2]|0)!=(c[(c[j+16>>2]|0)+232>>2]|0))){f=i;do{j=c[f+16>>2]|0;f=c[j+172>>2]|0}while((f|0)!=0);f=a[j+113>>0]|0;g=c[i+16>>2]|0;a[g+113>>0]=f;g=c[g+96>>2]|0;if(g)if(!(f<<24>>24)){El(i);e=1;d=c[l>>2]|0;break}else{o=+h[((c[(c[m>>2]|0)+116>>2]&1|0)==0?g+24|0:g+32|0)>>3];j=j+136|0;n=+h[j>>3];h[j>>3]=o>n?o:n;break}}while(0);k=k+1|0}}while(0);d=d+164|0}if(e|0){mh(b);Ah(b)}return e|0}function Cl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[b>>2]&3;i=c[((d|0)==3?b:b+48|0)+40>>2]|0;f=i+16|0;g=c[(c[f>>2]|0)+236>>2]|0;d=c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;h=(g|0)<(d|0);e=h?d:g;i=c[(c[(Uf(i)|0)+16>>2]|0)+196>>2]|0;f=i+(c[(c[f>>2]|0)+232>>2]<<6)+4|0;d=h?g:d;a:while(1){d=d+1|0;if((d|0)>=(e|0))break;g=c[(c[(c[f>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;switch(a[g+156>>0]|0){case 0:break a;case 1:break;default:continue a}if(c[g+104>>2]|0)break}if((d|0)==(e|0))do{i=c[b+16>>2]|0;a[i+113>>0]=1;b=c[i+172>>2]|0}while((b|0)!=0);return}function Dl(a){a=a|0;var d=0,e=0,f=0,g=0;g=a+16|0;a=c[g>>2]|0;if(b[a+236>>1]|0)ma(81281,81264,190,81300);d=(b[a+238>>1]|0)+3|0;a=c[a+196>>2]|0;if(!a)a=rw(d<<6)|0;else a=tw(a,d<<6)|0;d=a+64|0;a=c[g>>2]|0;c[a+196>>2]=d;a=b[a+238>>1]|0;while(1){if((a|0)<=-1)break;f=a+-1|0;e=d+(a<<6)|0;a=d+(f<<6)|0;d=e+64|0;do{c[e>>2]=c[a>>2];e=e+4|0;a=a+4|0}while((e|0)<(d|0));a=f;d=c[(c[g>>2]|0)+196>>2]|0}c[d+(a<<6)+8>>2]=0;c[d+(a<<6)>>2]=0;e=qw(8)|0;g=c[g>>2]|0;f=c[g+196>>2]|0;c[f+(a<<6)+12>>2]=e;c[f+(a<<6)+4>>2]=e;c[f+(a<<6)+56>>2]=0;h[f+(a<<6)+24>>3]=1.0;h[f+(a<<6)+16>>3]=1.0;h[f+(a<<6)+40>>3]=1.0;h[f+(a<<6)+32>>3]=1.0;g=g+236|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;return}function El(b){b=b|0;var d=0,e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0;j=b+16|0;if(c[(c[j>>2]|0)+96>>2]|0){m=b+48|0;k=Uf(c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0)|0;d=c[(c[(c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0)+16>>2]|0)+232>>2]|0;l=Fl(k,b)|0;n=k+16|0;e=c[n>>2]|0;g=c[e+196>>2]|0;o=d+-1|0;i=c[c[g+(o<<6)+4>>2]>>2]|0;if(!i)f=+h[g+(d<<6)+24>>3]+ +h[(c[(c[c[g+(d<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +(c[e+252>>2]|0);else f=+h[(c[i+16>>2]|0)+24>>3]-+h[g+(o<<6)+16>>3];d=Gl(k,o,l)|0;k=c[(c[j>>2]|0)+96>>2]|0;q=+h[k+24>>3];p=+h[k+32>>3];j=(c[(c[n>>2]|0)+116>>2]&1|0)==0;r=j?p:q;g=d+16|0;e=c[g>>2]|0;h[e+80>>3]=r;l=~~(r*.5);p=(j?q:p)*.5;h[e+96>>3]=p;h[e+88>>3]=p;c[e+104>>2]=k;h[e+24>>3]=+(l+~~f|0);e=$g(d,c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0,b)|0;e=c[e+16>>2]|0;h[e+16>>3]=-+h[(c[g>>2]|0)+88>>3];h[e+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0)+16>>2]|0)+96>>3];a[e+112>>0]=4;e=b+-48|0;d=$g(d,c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0,b)|0;g=c[g>>2]|0;d=c[d+16>>2]|0;h[d+16>>3]=+h[g+96>>3];h[d+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)+16>>2]|0)+88>>3];a[d+112>>0]=4;d=c[(c[n>>2]|0)+196>>2]|0;e=d+(o<<6)+16|0;f=+(l|0);if(+h[e>>3]<f)h[e>>3]=f;d=d+(o<<6)+24|0;if(+h[d>>3]<f)h[d>>3]=f;c[g+112>>2]=b}return}function Fl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;j=n+8|0;f=n+4|0;g=n;d=c[b>>2]&3;e=c[((d|0)==3?b:b+48|0)+40>>2]|0;k=(c[(c[e+16>>2]|0)+232>>2]|0)+-1|0;a=c[(c[a+16>>2]|0)+196>>2]|0;h=c[a+(k<<6)+4>>2]|0;a=c[a+(k<<6)>>2]|0;k=j+8|0;c[k>>2]=-1;c[j>>2]=-1;m=j+12|0;c[m>>2]=a;i=j+4|0;c[i>>2]=a;Hl(e,c[((d|0)==2?b:b+-48|0)+40>>2]|0,f,g);f=c[f>>2]|0;g=c[g>>2]|0;d=0;e=a;b=-1;while(1){if((d|0)>=(e|0))break;e=e+-1|0;Il(c[h+(d<<2)>>2]|0,j,f,g);if((d|0)!=(e|0))Il(c[h+(e<<2)>>2]|0,j,f,g);a=c[i>>2]|0;b=c[j>>2]|0;if((a-b|0)<2)break;else d=d+1|0}if((b|0)>(a|0))a=(c[m>>2]|0)+(c[k>>2]|0)|0;else a=a+b|0;l=n;return (a+1|0)/2|0|0}function Gl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=a+16|0;f=c[(c[g>>2]|0)+196>>2]|0;e=f+(b<<6)|0;f=c[f+(b<<6)+4>>2]|0;if(!f)f=rw((c[e>>2]<<2)+8|0)|0;else f=tw(f,(c[e>>2]<<2)+8|0)|0;e=c[(c[g>>2]|0)+196>>2]|0;c[e+(b<<6)+4>>2]=f;e=c[e+(b<<6)>>2]|0;while(1){if((e|0)<=(d|0))break;h=e+-1|0;i=c[f+(h<<2)>>2]|0;c[f+(e<<2)>>2]=i;i=(c[i+16>>2]|0)+236|0;c[i>>2]=(c[i>>2]|0)+1;e=h}h=eh(a)|0;i=f+(d<<2)|0;c[i>>2]=h;h=c[h+16>>2]|0;c[h+236>>2]=d;c[h+232>>2]=b;g=(c[(c[g>>2]|0)+196>>2]|0)+(b<<6)|0;h=(c[g>>2]|0)+1|0;c[g>>2]=h;c[f+(h<<2)>>2]=0;return c[i>>2]|0}function Hl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a=c[(c[a+16>>2]|0)+236>>2]|0;b=c[(c[b+16>>2]|0)+236>>2]|0;f=(a|0)>(b|0);c[d>>2]=f?b:a;c[e>>2]=f?a:b;return}function Il(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+16|0;h=m+4|0;g=m;b=c[b+16>>2]|0;do if((a[b+156>>0]|0)==1){k=c[b+236>>2]|0;if(c[b+176>>2]|0){i=c[b+180>>2]|0;b=0;g=0;h=0;while(1){j=c[i+(h<<2)>>2]|0;if(!j)break;n=c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;j=(n|0)>(e|0);b=j?((n|0)<(f|0)?b:1):b;g=j?g:1;h=h+1|0}if(g<<24>>24!=0&b<<24>>24==0){c[d>>2]=k+1;break}if(!(g<<24>>24==0&b<<24>>24!=0))break;c[d+4>>2]=k+-1;break}if((c[b+184>>2]|0)!=2)ma(81244,81264,63,81271);i=c[b+180>>2]|0;n=c[i>>2]|0;i=c[i+4>>2]|0;Hl(c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0,c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0,h,g);i=c[g>>2]|0;if((i|0)<=(e|0)){c[d>>2]=k;c[d+8>>2]=k;break}b=c[h>>2]|0;if((b|0)>=(f|0)){c[d+4>>2]=k;c[d+12>>2]=k;break}g=(b|0)<(e|0);h=(i|0)>(f|0);if(!(h&g)){if(!(!g?!((i|0)<(f|0)&(b|0)==(e|0)):0))c[d+8>>2]=k;if(!h?!((i|0)==(f|0)&(b|0)>(e|0)):0)break;c[d+12>>2]=k}}while(0);l=m;return}function Jl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;do if((a|0)!=0?(c[a+24>>2]|0)<=0:0){h=c[a+4>>2]|0;g=h+32|0;b=c[g>>2]|0;if(b){b=cb[b&31](a,2,0,h)|0;if((b|0)<0){b=-1;break}}else b=0;if(c[a+28>>2]|0)Vl(a,0)|0;f=(b|0)==0;if(f){bb[c[c[a+16>>2]>>2]&31](a,0,64)|0;if((Rl(a)|0)>0){b=-1;break}d=a+8|0;b=c[d>>2]|0;if((c[b+12>>2]|0)>0){e=a+12|0;cb[c[e>>2]&31](a,c[b+8>>2]|0,0,h)|0;b=c[d>>2]|0}else e=a+12|0;cb[c[e>>2]&31](a,b,0,h)|0}b=c[a+20>>2]|0;if(b){if(f&(b|0)==1)cb[c[a+12>>2]&31](a,a,0,h)|0}else XI(a);b=c[g>>2]|0;if(!b)b=0;else{cb[b&31](a,6,0,h)|0;b=0}}else b=-1;while(0);return b|0}function Kl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=a+4|0;n=c[f>>2]|0;a:do if(n)if(b){m=c[c[a+16>>2]>>2]|0;g=a+8|0;if(c[c[g>>2]>>2]&4096|0)Ql(a,0)|0;e=c[n+32>>2]|0;if(e|0?(cb[e&31](a,3,b,n)|0)<0:0){b=0;break}c[f>>2]=b;e=c[b+28>>2]|0;c[a+12>>2]=(e|0)==0?19:e;e=c[c[g>>2]>>2]|0;if(!(e&112)){do if(!(e&2))if(!(e&3))if(!(d&1))break;else{b=n;break a}else if((d&3|0)==3){b=n;break a}else break;else if(d&2|0){b=n;break a}while(0);h=Nl(a)|0;e=c[g>>2]|0;l=c[e>>2]|0;c[e>>2]=l&-4097;c[e+4>>2]=0;c[e+16>>2]=0;b:do if(l&3|0){l=c[e+8>>2]|0;f=l+(c[e+12>>2]<<2)|0;e=l;while(1){if(e>>>0>=f>>>0)break b;c[e>>2]=0;e=e+4|0}}while(0);i=(d&2|0)==0;j=b+8|0;k=b+4|0;l=b+24|0;while(1){if(!h){b=n;break a}d=c[h>>2]|0;if(i){e=c[j>>2]|0;if((e|0)<0)e=c[h+8>>2]|0;else e=h+(0-e)|0;g=c[k>>2]|0;e=e+(c[b>>2]|0)|0;if((g|0)<0)e=c[e>>2]|0;f=c[l>>2]|0;if(!f)e=Tl(0,e,g)|0;else e=bb[f&31](a,e,b)|0;c[h+4>>2]=e}bb[m&31](a,h,32)|0;h=d}}else b=n}else b=n;else{c[f>>2]=b;n=c[b+28>>2]|0;c[a+12>>2]=(n|0)==0?19:n}while(0);return b|0}function Ll(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=(c|0)==0;do if(!b)if(a)a=0;else a=WI(c)|0;else if(a){XI(b);a=0;break}else{a=ZI(b,c)|0;break}while(0);return a|0}function Ml(a){a=a|0;var b=0,d=0,e=0;e=a+8|0;b=c[e>>2]|0;d=c[b>>2]|0;a:do if(!(d&12)){if(!(d&3)){d=b+8|0;a=c[d>>2]|0;c[d>>2]=0;break}a=Nl(a)|0;d=c[e>>2]|0;b=c[d+8>>2]|0;d=b+(c[d+12>>2]<<2)|0;while(1){if(b>>>0>=d>>>0)break a;c[b>>2]=0;b=b+4|0}}else a=c[b+4>>2]|0;while(0);e=c[e>>2]|0;c[e>>2]=c[e>>2]&-4097;c[e+16>>2]=0;c[e+4>>2]=0;return a|0}function Nl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+8|0;a=c[g>>2]|0;b=c[a>>2]|0;if(!(b&4096)){a:do if(!(b&3)){if(b&112|0){a=c[a+8>>2]|0;break}a=c[a+4>>2]|0;if(!a)a=0;else{while(1){b=a+4|0;d=c[b>>2]|0;if(!d){e=a;break}c[b>>2]=c[d>>2];c[d>>2]=a;a=d}while(1){b=c[e>>2]|0;if(!b)break a;d=c[b+4>>2]|0;if(!d){e=b;continue}while(1){c[b+4>>2]=c[d>>2];c[d>>2]=b;b=c[d+4>>2]|0;if(!b)break;else{f=d;d=b;b=f}}c[e>>2]=d;e=d}}}else{e=c[a+8>>2]|0;f=e+(c[a+12>>2]<<2)|0;b=0;a=0;while(1){if(e>>>0>=f>>>0)break a;d=c[e>>2]|0;if(d){if(!b){b=d;a=d}else c[b>>2]=d;while(1){d=c[b>>2]|0;if(!d)break;else b=d}c[e>>2]=b}e=e+4|0}}while(0);g=c[g>>2]|0;c[g+4>>2]=a;c[g>>2]=c[g>>2]|4096}else a=c[a+4>>2]|0;return a|0}function Ol(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=a+8|0;if(c[c[s>>2]>>2]&4096|0)Ql(a,0)|0;r=c[a+4>>2]|0;m=c[r>>2]|0;n=c[r+4>>2]|0;q=r+8|0;u=c[q>>2]|0;o=c[r+20>>2]|0;p=a+20|0;f=c[p>>2]&-32769;c[p>>2]=f;a:do if(!b){if(d&384|0){f=c[s>>2]|0;e=c[f+8>>2]|0;if(!e){e=0;break}if(d&256){e=c[e+4>>2]|0;c[f+4>>2]=e;if(!e){e=0;break}}else c[f+4>>2]=e;if((u|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-u)|0;break}}if(d&4098|0){e=c[s>>2]|0;if(c[e>>2]&144|0){e=0;break}e=c[e+8>>2]|0;if(!e){e=0;break}else{h=e;t=84;break}}if(!(d&64))e=0;else{i=r+16|0;b:do if((c[i>>2]|0)!=0|(u|0)<0){j=a+12|0;k=(u|0)<0;f=0-u|0;e=c[(c[s>>2]|0)+8>>2]|0;while(1){if(!e)break b;g=c[e>>2]|0;h=c[i>>2]|0;if(h|0){if(k)b=c[e+8>>2]|0;else b=e+f|0;ib[h&127](a,b,r)}if((c[q>>2]|0)>=0){e=g;continue}cb[c[j>>2]&31](a,e,0,r)|0;e=g}}while(0);e=c[s>>2]|0;c[e+4>>2]=0;c[e+8>>2]=0;c[(c[s>>2]|0)+16>>2]=0;e=0}}else{if(d&2049|0){g=r+12|0;e=c[g>>2]|0;h=(d&1|0)==0;if(!(h|(e|0)==0)){e=bb[e&31](a,b,r)|0;if(!e){e=0;break}else f=e}else f=b;do if((u|0)>-1)h=f+u|0;else{e=cb[c[a+12>>2]&31](a,0,12,r)|0;if(e|0){c[e+8>>2]=f;h=e;break}if(!(c[g>>2]|0)){e=0;break a}e=c[r+16>>2]|0;if(h|(e|0)==0){e=0;break a}ib[e&127](a,f,r);e=0;break a}while(0);g=c[s>>2]|0;e=c[g>>2]|0;do if(!(e&128)){if(!(e&16))if(!(e&32)){t=51;break}else{t=48;break}f=c[g+4>>2]|0;e=(f|0)!=0;if(!(d&8192)){if(!e){t=48;break}if((f|0)==(c[g+8>>2]|0)){t=48;break}r=f+4|0;a=c[r>>2]|0;c[h+4>>2]=a;c[a>>2]=h;c[h>>2]=f;c[r>>2]=h;break}else{if(!e){t=51;break}e=c[f>>2]|0;if(!e){t=51;break}c[h>>2]=e;c[e+4>>2]=h;c[h+4>>2]=f;c[f>>2]=h;break}}else if(!(d&8192))t=48;else t=51;while(0);if((t|0)==48){e=c[g+8>>2]|0;c[h>>2]=e;if(!e)e=h;else c[h+4>>2]=c[e+4>>2];c[e+4>>2]=h;c[(c[s>>2]|0)+8>>2]=h}else if((t|0)==51){f=g+8|0;e=c[f>>2]|0;if(!e){c[f>>2]=h;e=h}else{r=e+4|0;c[c[r>>2]>>2]=h;c[h+4>>2]=c[r>>2]}c[e+4>>2]=h;c[h>>2]=0}e=c[s>>2]|0;f=e+16|0;g=c[f>>2]|0;if((g|0)>-1)c[f>>2]=g+1;c[e+4>>2]=h;if((u|0)<0){e=c[h+8>>2]|0;break}else{e=h+(0-u)|0;break}}h=c[s>>2]|0;do if(!(d&512)){e=c[h+4>>2]|0;if(e|0){if((u|0)<0)g=c[e+8>>2]|0;else g=e+(0-u)|0;if((g|0)==(b|0))break}e=b+m|0;if((n|0)<0){b=c[e>>2]|0;t=68}else{b=e;t=68}}else t=68;while(0);if((t|0)==68){g=(u|0)<0;i=(n|0)<0;j=(o|0)==0;k=(n|0)<1;l=0-u|0;e=h+8|0;do{e=c[e>>2]|0;if(!e){e=0;break a}if(g)f=c[e+8>>2]|0;else f=e+l|0;f=f+m|0;if(i)f=c[f>>2]|0;do if(j)if(k){f=uJ(b,f)|0;break}else{f=$K(b,f,n)|0;break}else f=cb[o&31](a,b,f,r)|0;while(0)}while((f|0)!=0);f=c[p>>2]|0}c[p>>2]=f|32768;if(!(d&4098)){do if(!(d&8)){f=c[s>>2]|0;if(!(d&16)){c[f+4>>2]=e;break}if((e|0)==(c[f+8>>2]|0)){c[f+4>>2]=0;e=0;break a}else{e=e+4|0;t=108;break}}else{f=c[s>>2]|0;t=108}while(0);if((t|0)==108){e=c[e>>2]|0;c[f+4>>2]=e;if(!e){e=0;break}}if((u|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-u)|0;break}}else{h=e;t=84}}while(0);if((t|0)==84){e=c[h>>2]|0;if(e){c[e+4>>2]=c[h+4>>2];e=c[h>>2]|0}f=(c[s>>2]|0)+8|0;g=c[f>>2]|0;if((h|0)==(g|0)){c[f>>2]=e;e=c[(c[s>>2]|0)+8>>2]|0;if(e|0)c[e+4>>2]=c[h+4>>2]}else{f=h+4|0;c[c[f>>2]>>2]=e;e=g+4|0;if((h|0)==(c[e>>2]|0))c[e>>2]=c[f>>2]}e=c[s>>2]|0;f=e+4|0;if((h|0)==(c[f>>2]|0))g=c[h>>2]|0;else g=0;c[f>>2]=g;t=e+16|0;c[t>>2]=(c[t>>2]|0)+-1;if((u|0)<0)e=c[h+8>>2]|0;else e=h+(0-u)|0;f=c[r+16>>2]|0;if(!((d&2|0)==0|(f|0)==0))ib[f&127](a,e,r);if((c[q>>2]|0)<0)cb[c[a+12>>2]&31](a,h,0,r)|0}return e|0}function Pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j;a:do if((a|0)!=0&(b|0)!=0?(f=WI(40)|0,(f|0)!=0):0){c[f>>2]=0;c[f+16>>2]=0;c[f+4>>2]=0;Kl(f,a,0)|0;d=f+20|0;i=a+32|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;d=c[i>>2]|0;do if(d){c[g>>2]=0;d=cb[d&31](f,1,g,a)|0;if((d|0)>=0)if(d){e=c[g>>2]|0;if(e|0)if(!(c[b+4>>2]&c[e>>2])){d=f;h=12;break}else{d=f;break}d=a+28|0;if(!(c[d>>2]|0)){d=f;h=12}else{XI(f);e=cb[c[d>>2]&31](0,0,40,a)|0;if(!e){d=0;break a}c[e>>2]=0;c[e+16>>2]=0;c[e+4>>2]=0;Kl(e,a,0)|0;c[e+20>>2]=1;c[e+24>>2]=0;c[e+32>>2]=0;c[e+28>>2]=0;d=e;f=e;h=11}}else{d=f;h=11}else{d=f;h=12}}else{d=f;h=11}while(0);if((h|0)==11){e=cb[c[d+12>>2]&31](d,0,28,a)|0;c[g>>2]=e;if(!e){d=f;h=12}else{c[e>>2]=c[b+4>>2];g=e+4|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0}}if((h|0)==12){XI(d);d=0;break}c[d+8>>2]=e;c[d>>2]=c[b>>2];c[d+16>>2]=b;e=c[i>>2]|0;if(e)cb[e&31](d,5,f,a)|0}else d=0;while(0);l=j;return d|0}function Ql(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=c[c[a+16>>2]>>2]|0;j=a+8|0;g=c[j>>2]|0;h=c[g>>2]|0;d=h&4096;if(!b)if(!d)b=-1;else{e=d;b=c[g+4>>2]|0;i=5}else if(!(c[g+16>>2]|0)){e=0;i=5}else b=-1;a:do if((i|0)==5){c[g>>2]=h&-4097;if(!(h&3)){d=g+4|0;if(!(h&12)){c[d>>2]=0;d=g+8|0}c[d>>2]=b;if(e|0){b=0;break}c[(c[j>>2]|0)+16>>2]=-1;b=0;break}c[g+4>>2]=0;if(!e){c[g+16>>2]=0;while(1){if(!b){b=0;break a}j=c[b>>2]|0;bb[f&31](a,b,32)|0;b=j}}e=c[g+8>>2]|0;a=e+(c[g+12>>2]<<2)|0;while(1){if(e>>>0>=a>>>0){b=0;break a}d=c[e>>2]|0;if(d){c[e>>2]=b;b=c[d>>2]|0;c[d>>2]=0}e=e+4|0}}while(0);return b|0}function Rl(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;d=c[b>>2]|0;if(c[d>>2]&4096){Ql(a,0)|0;d=c[b>>2]|0}e=d+16|0;a=c[e>>2]|0;do if((a|0)<0){b=c[d>>2]|0;if(b&12|0){a=Sl(c[d+4>>2]|0)|0;c[e>>2]=a;break}if(b&112){a=0;b=d+8|0;while(1){b=c[b>>2]|0;if(!b)break;a=a+1|0}c[e>>2]=a}}while(0);return a|0}function Sl(a){a=a|0;var b=0;if(!a)return 0;else{b=Sl(c[a+4>>2]|0)|0;return b+1+(Sl(c[a>>2]|0)|0)|0}return 0}function Tl(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;g=c;if((e|0)>=1){h=c+e+-1|0;g=(h>>>0<c>>>0?c:h)+(1-g)&-2;f=c;while(1){if(f>>>0>=h>>>0)break;b=O(((d[f>>0]|0)<<8)+b+(d[f+1>>0]|0)|0,17109811)|0;f=f+2|0}f=c+g|0;if(f>>>0>h>>>0)c=e;else{c=e;b=O(((d[f>>0]|0)<<8)+b|0,17109811)|0}}else{while(1){f=a[c>>0]|0;if(!(f<<24>>24))break;h=a[c+1>>0]|0;e=O(((f&255)<<8)+b+(h&255)|0,17109811)|0;b=e;c=c+(h<<24>>24?2:1)|0}c=c-g|0}return O(b+c|0,17109811)|0}function Ul(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=l;l=l+128|0;z=G+120|0;r=G;F=a+8|0;e=c[F>>2]|0;if(c[e>>2]&4096){Ql(a,0)|0;e=c[F>>2]|0}E=c[a+4>>2]|0;A=c[E>>2]|0;B=c[E+4>>2]|0;x=E+8|0;D=c[x>>2]|0;C=c[E+20>>2]|0;t=a+20|0;c[t>>2]=c[t>>2]&-32769;h=c[e+4>>2]|0;a:do if(!b)if((d&448|0)==0|(h|0)==0)e=0;else{if(!(d&64)){b:do if(!(d&256)){e=h;while(1){f=e+4|0;g=c[f>>2]|0;if(!g)break b;c[f>>2]=c[g>>2];c[g>>2]=e;e=g}}else{e=h;while(1){f=c[e>>2]|0;if(!f)break b;a=f+4|0;c[e>>2]=c[a>>2];c[a>>2]=e;e=f}}while(0);c[(c[F>>2]|0)+4>>2]=e;if((D|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-D)|0;break}}b=E+16|0;if((c[b>>2]|0)!=0|(D|0)<0){j=a+12|0;k=(D|0)<0;i=0-D|0;e=h;do{h=e;while(1){e=h+4|0;f=c[e>>2]|0;if(!f)break;c[e>>2]=c[f>>2];c[f>>2]=h;h=f}e=c[h>>2]|0;f=c[b>>2]|0;if(f|0){if(k)g=c[h+8>>2]|0;else g=h+i|0;ib[f&127](a,g,E)}if((c[x>>2]|0)<0)cb[c[j>>2]&31](a,h,0,E)|0}while((e|0)!=0);e=c[F>>2]|0}c[e+16>>2]=0;c[e+4>>2]=0;e=0}else{y=a+16|0;u=(d&4098|0)==0;c:do if(u|(c[(c[y>>2]|0)+4>>2]|0)!=8)v=45;else{k=(B|0)<0;e=b+A|0;if(k)e=c[e>>2]|0;i=(C|0)==0;j=(B|0)<1;g=bb[c[a>>2]&31](a,b,4)|0;while(1){if(!g){v=45;break c}f=g+A|0;if(k)f=c[f>>2]|0;do if(i)if(j){f=uJ(e,f)|0;break}else{f=$K(e,f,B)|0;break}else f=cb[C&31](a,e,f,E)|0;while(0);if(f|0){v=45;break c}if((g|0)==(b|0))break;g=bb[c[a>>2]&31](a,g,8)|0}h=c[(c[F>>2]|0)+4>>2]|0;c[z>>2]=c[h+4>>2];c[z+4>>2]=c[h>>2];e=z;v=180}while(0);d:do if((v|0)==45){do if(!(d&2565)){if(d&32|0){if((D|0)<0)g=c[b+8>>2]|0;else g=b+(0-D)|0;e=g+A|0;if((B|0)<0)f=c[e>>2]|0;else f=e;if(!h){e=b;f=z;h=z;v=198;break}else{e=b;s=f;j=b;v=64;break}}if(h){if((D|0)<0)e=c[h+8>>2]|0;else e=h+(0-D)|0;if((e|0)!=(b|0)){f=b+A|0;if((B|0)<0){g=b;e=0;s=c[f>>2]|0;j=0;v=64}else{g=b;e=0;s=f;j=0;v=64}}else{e=0;g=b;f=z;k=z;j=0;v=141}}else{e=0;g=b;f=z;h=z;v=198}}else{if(!(d&512)){e=b+A|0;if((B|0)<0)f=c[e>>2]|0;else f=e}else f=b;if(!h){e=0;g=b;f=z;h=z;v=198}else{g=b;e=0;s=f;j=0;v=64}}while(0);e:do if((v|0)==64){f:do if((c[(c[y>>2]|0)+4>>2]|0)==4?(q=c[(c[F>>2]|0)+24>>2]|0,!((d&516|0)==0|(q|0)==0)):0){b=(D|0)<0;m=(B|0)<0;n=(C|0)==0;o=(B|0)<1;p=0-D|0;k=0;f=h;while(1){if((k|0)>=(q|0)){f=z;k=z;m=0;break}if(b)i=c[f+8>>2]|0;else i=f+p|0;i=i+A|0;if(m)i=c[i>>2]|0;do if(n)if(o){i=uJ(s,i)|0;break}else{i=$K(s,i,B)|0;break}else i=cb[C&31](a,s,i,E)|0;while(0);if(!i){v=80;break}c[r+(k<<2)>>2]=i;f=c[((i|0)<0?f+4|0:f)>>2]|0;if(!f){e=0;break a}else k=k+1|0}if((v|0)==80)if(b){e=c[f+8>>2]|0;break a}else{e=f+p|0;break a}while(1){if((m|0)>=(q|0))break f;do if((c[r+(m<<2)>>2]|0)<0){i=h+4|0;b=c[i>>2]|0;if((c[r+((m|1)<<2)>>2]|0)<0){c[i>>2]=c[b>>2];c[b>>2]=h;c[f+4>>2]=b;f=b;h=k;i=b+4|0;break}else{c[k>>2]=b;c[f+4>>2]=h;f=h;h=b;i=b;break}}else{i=c[h>>2]|0;if((c[r+((m|1)<<2)>>2]|0)>0){p=i+4|0;c[h>>2]=c[p>>2];c[p>>2]=h;c[k>>2]=i;h=i;break}else{c[f+4>>2]=i;c[k>>2]=h;f=i;i=i+4|0;break}}while(0);k=h;m=m+2|0;h=c[i>>2]|0}}else{f=z;k=z}while(0);n=(D|0)<0;o=(B|0)<0;p=(C|0)!=0;q=(B|0)<1;r=0-D|0;i=h;g:while(1){h=i;while(1){if(n)i=c[h+8>>2]|0;else i=h+r|0;i=i+A|0;if(o)i=c[i>>2]|0;do if(!p)if(q){i=uJ(s,i)|0;break}else{i=$K(s,i,B)|0;break}else i=cb[C&31](a,s,i,E)|0;while(0);if(!i){v=140;break g}if((i|0)>=0)break;b=h+4|0;m=c[b>>2]|0;if(!m){v=121;break g}if(n)i=c[m+8>>2]|0;else i=m+r|0;i=i+A|0;if(o)i=c[i>>2]|0;do if(!p)if(q){i=uJ(s,i)|0;break}else{i=$K(s,i,B)|0;break}else i=cb[C&31](a,s,i,E)|0;while(0);if((i|0)>=0){v=118;break}c[b>>2]=c[m>>2];c[m>>2]=h;c[f+4>>2]=m;h=c[m+4>>2]|0;if(!h){f=m;h=k;v=198;break e}else f=m}if((v|0)==118){v=0;if(!i){v=119;break}c[k>>2]=m;c[f+4>>2]=h;i=c[m>>2]|0;if(!i){f=h;h=m;v=198;break e}else{f=h;k=m;continue}}b=c[h>>2]|0;if(!b){v=139;break}if(n)i=c[b+8>>2]|0;else i=b+r|0;i=i+A|0;if(o)i=c[i>>2]|0;do if(!p)if(q){i=uJ(s,i)|0;break}else{i=$K(s,i,B)|0;break}else i=cb[C&31](a,s,i,E)|0;while(0);if((i|0)>0){i=b+4|0;c[h>>2]=c[i>>2];c[i>>2]=h;c[k>>2]=b;i=c[b>>2]|0;if(!i){h=b;v=198;break e}else{k=b;continue}}if(!i){v=137;break}c[f+4>>2]=b;c[k>>2]=h;i=c[b+4>>2]|0;if(!i){f=b;v=198;break e}else{f=b;k=h}}if((v|0)==119){c[f+4>>2]=h;f=h;h=m;v=141;break}else if((v|0)==121){c[f+4>>2]=h;f=h;h=k;v=198;break}else if((v|0)==137){c[k>>2]=h;k=h;h=b;v=141;break}else if((v|0)==139){c[k>>2]=h;v=198;break}else if((v|0)==140)if(!h){h=k;v=198;break}else{v=141;break}}while(0);do if((v|0)==141){c[t>>2]=c[t>>2]|32768;i=h+4|0;c[k>>2]=c[i>>2];c[f+4>>2]=c[h>>2];if(!(d&516)){if(d&8|0){c[i>>2]=c[z>>2];c[h>>2]=0;c[z>>2]=h;v=169;break}if(d&16|0){v=z+4|0;c[h>>2]=c[v>>2];c[i>>2]=0;c[v>>2]=h;v=175;break}if(!u){e=f;v=180;break d}if(d&2049|0){if(c[(c[y>>2]|0)+4>>2]&4|0){e=h;break}c[i>>2]=0;e=z+4|0;c[h>>2]=c[e>>2];c[e>>2]=h;e=h;v=205;break}if(!(d&32)){e=0;break a}if(!(c[(c[y>>2]|0)+4>>2]&4)){c[e+4>>2]=0;x=z+4|0;c[e>>2]=c[x>>2];c[x>>2]=j;e=(c[F>>2]|0)+16|0;c[e>>2]=(c[e>>2]|0)+1;e=h;break}e=c[E+16>>2]|0;if(e|0)ib[e&127](a,g,E);if((c[x>>2]|0)<0){cb[c[a+12>>2]&31](a,j,0,E)|0;e=h}else e=h}else e=h}else if((v|0)==198){c[f+4>>2]=0;c[h>>2]=0;if(!(d&8))if(!(d&16)){if(d&516|0){e=f;break d}if(!(d&2049)){if(!(d&32)){g=0;e=f;break d}x=(c[F>>2]|0)+16|0;c[x>>2]=(c[x>>2]|0)+1}else{e=0;v=205}}else v=175;else v=169}while(0);if((v|0)==169){h=z+4|0;e=c[h>>2]|0;if(!e){e=f;break}while(1){f=e+4|0;g=c[f>>2]|0;if(!g)break;c[f>>2]=c[g>>2];c[g>>2]=e;e=g}c[h>>2]=c[e>>2]}else if((v|0)==175){e=c[z>>2]|0;if(!e){e=f;break}while(1){f=c[e>>2]|0;if(!f)break;x=f+4|0;c[e>>2]=c[x>>2];c[x>>2]=e;e=f}c[z>>2]=c[e+4>>2]}else if((v|0)==205){i=E+12|0;h=c[i>>2]|0;j=(d&1|0)==0;if(!(j|(h|0)==0))g=bb[h&31](a,g,E)|0;do if(g){if((D|0)>-1){e=g+D|0;v=215;break}e=cb[c[a+12>>2]&31](a,0,12,E)|0;if(e|0){c[e+8>>2]=g;break}if((c[i>>2]|0)!=0?(w=c[E+16>>2]|0,!(j|(w|0)==0)):0){ib[w&127](a,g,E);v=215}else v=215}else v=215;while(0);if((v|0)==215)if(!e){e=f;break}f=(c[F>>2]|0)+16|0;g=c[f>>2]|0;if((g|0)>-1)c[f>>2]=g+1}c[e+4>>2]=c[z>>2];c[e>>2]=c[z+4>>2];h:do if(!((d&516|0)==0?1:(c[(c[y>>2]|0)+4>>2]&8|0)==0)){m=(D|0)<0;if(m)f=c[e+8>>2]|0;else f=e+(0-D)|0;n=(B|0)<0;f=f+A|0;if(n)f=c[f>>2]|0;j=(C|0)==0;k=(B|0)<1;b=0-D|0;while(1){i=e+4|0;g=c[i>>2]|0;if(!g)break h;while(1){h=c[g>>2]|0;if(!h)break;z=h+4|0;c[g>>2]=c[z>>2];c[z>>2]=g;g=h}c[i>>2]=g;if(m)h=c[g+8>>2]|0;else h=g+b|0;h=h+A|0;if(n)h=c[h>>2]|0;do if(j)if(k){h=uJ(f,h)|0;break}else{h=$K(f,h,B)|0;break}else h=cb[C&31](a,f,h,E)|0;while(0);if(h|0)break h;c[i>>2]=c[g>>2];c[g>>2]=e;e=g}}while(0);c[(c[F>>2]|0)+4>>2]=e;if((D|0)<0){e=c[e+8>>2]|0;break a}else{e=e+(0-D)|0;break a}}while(0);if((v|0)==180){if((D|0)<0)g=c[h+8>>2]|0;else g=h+(0-D)|0;f=c[E+16>>2]|0;if(!((d&2|0)==0|(f|0)==0))ib[f&127](a,g,E);if((c[x>>2]|0)<0)cb[c[a+12>>2]&31](a,h,0,E)|0;a=(c[F>>2]|0)+16|0;E=c[a>>2]|0;c[a>>2]=(E|0)<1?-1:E+-1|0}do{f=e+4|0;e=c[f>>2]|0}while((e|0)!=0);c[f>>2]=c[z>>2];c[(c[F>>2]|0)+4>>2]=c[z+4>>2];e=d&2|0?g:0}while(0);l=G;return e|0}function Vl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(c[c[a+8>>2]>>2]&4096|0)Ql(a,0)|0;f=(b|0)!=0;if(f){if(c[c[b+8>>2]>>2]&4096|0)Ql(b,0)|0;if((c[b+16>>2]|0)==(c[a+16>>2]|0)){d=b;e=7}else b=0}else{d=0;e=7}a:do if((e|0)==7){while(1){if(!d)break;if((d|0)==(a|0)){b=0;break a}d=c[d+28>>2]|0;e=7}d=a+28|0;e=c[d>>2]|0;if(e|0){g=e+24|0;c[g>>2]=(c[g>>2]|0)+-1}c[a+32>>2]=0;c[d>>2]=0;if(f){c[d>>2]=b;c[a>>2]=12;g=b+24|0;c[g>>2]=(c[g>>2]|0)+1;break}else{c[a>>2]=c[c[a+16>>2]>>2];b=e;break}}while(0);return b|0}function Wl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if(!(d&99)){if((d&516|0)==0?(e=c[(c[a+16>>2]|0)+4>>2]|0,!((d&384|0)!=0&(e&12|0)==0)):0){if(e&12|0){if(!(d&408)){e=0;break}o=(d&136|0)!=0;p=(d&272|0)!=0;l=0;f=0;e=0;n=a;while(1){if(!n)break;m=bb[c[c[n+16>>2]>>2]&31](n,b,d)|0;do if(!m)g=l;else{h=c[n+4>>2]|0;i=c[h+4>>2]|0;j=c[h+20>>2]|0;g=m+(c[h>>2]|0)|0;if((i|0)<0)k=c[g>>2]|0;else k=g;if(e|0){do if(!j)if((i|0)<1){g=uJ(k,f)|0;break}else{g=$K(k,f,i)|0;break}else g=cb[j&31](n,k,f,h)|0;while(0);if(!(o&(g|0)<0|p&(g|0)>0)){g=l;break}}g=n;f=k;e=m}while(0);l=g;n=c[n+28>>2]|0}c[a+32>>2]=l;break}if(!(d&24)){e=0;break}j=a+32|0;f=c[j>>2]|0;if(f){e=c[(c[f+4>>2]|0)+8>>2]|0;g=c[(c[f+8>>2]|0)+4>>2]|0;if((e|0)<0)e=c[g+8>>2]|0;else e=g+(0-e)|0;if((e|0)==(b|0))e=b;else{f=a;h=32}}else{f=a;h=32}do if((h|0)==32){while(1){if(!f){h=33;break}e=bb[c[c[f+16>>2]>>2]&31](f,b,4)|0;if(e|0){h=36;break}f=c[f+28>>2]|0;h=32}if((h|0)==33){c[j>>2]=0;e=0;break a}else if((h|0)==36){c[j>>2]=f;break}}while(0);i=(d<<4&128^128)+128|0;e=bb[c[c[f+16>>2]>>2]&31](f,e,d)|0;while(1){h=f+16|0;while(1){if(!e)break;else g=a;while(1){if((g|0)==(f|0))break a;if(bb[c[c[g+16>>2]>>2]&31](g,e,4)|0)break;g=c[g+28>>2]|0}e=bb[c[c[h>>2]>>2]&31](f,e,d)|0}f=c[f+28>>2]|0;c[j>>2]=f;if(!f){e=0;break a}e=bb[c[c[f+16>>2]>>2]&31](f,0,i)|0}}else f=a;while(1){if(!f){f=0;e=0;break}e=bb[c[c[f+16>>2]>>2]&31](f,b,d)|0;if(e|0)break;f=c[f+28>>2]|0}c[a+32>>2]=f}else e=bb[c[c[a+16>>2]>>2]&31](a,b,d)|0;while(0);return e|0}function Xl(a){a=a|0;var b=0;b=c[41980]|0;c[41980]=a;return b|0}function Yl(a){a=a|0;var b=0;b=c[41981]|0;c[41981]=a;return b|0}function Zl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=_l(a,b,f)|0;l=e;return d|0}function _l(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=l;l=l+16|0;e=g;f=(a|0)==3;h=f?c[41983]|0:(a|0)==2?1:a;c[41983]=h;i=c[41984]|0;c[41984]=i>>>0>h>>>0?i:h;do if(h>>>0<(c[41981]|0)>>>0){a=c[41982]|0;if(!a){a=wN()|0;c[41982]=a;if(!a){a=1;break}}if(!f){zN(a)|0;a=c[41982]|0}IK(a,b,d)|0;a=0}else{if(c[41980]|0){$l(a,b,d);a=0;break}if(f)a=c[13918]|0;else{i=c[13918]|0;c[e>>2]=(a|0)==1?81312:81318;vL(i,81326,e)|0;a=i}IK(a,b,d)|0;a=0}while(0);l=g;return a|0}function $l(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((c[41985]|0)==0?(f=WI(c[4354]|0)|0,c[41985]=f,(f|0)==0):0)SL(81331,c[13918]|0)|0;else e=4;do if((e|0)==4){if((a|0)!=3){$a[c[41980]&31]((a|0)==1?81312:81318)|0;$a[c[41980]&31](81990)|0}while(1){a=HK(c[41985]|0,c[4354]|0,b,d)|0;e=c[4354]|0;if((a|0)>-1&(a|0)<(e|0)){e=7;break}e=e<<1;f=a+1|0;f=(e|0)>(f|0)?e:f;c[4354]=f;if(!(ZI(c[41985]|0,f)|0)){e=9;break}}if((e|0)==7){$a[c[41980]&31](c[41985]|0)|0;break}else if((e|0)==9){SL(81331,c[13918]|0)|0;break}}while(0);return}function am(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;_l(1,a,e)|0;l=d;return}function bm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if(!e){e=(d|0)==0?1024:d;d=e;e=WI(e)|0;f=1}else f=0;c[b+12>>2]=f;c[b>>2]=e;c[b+8>>2]=e+d;c[b+4>>2]=e;a[e>>0]=0;return}function cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;f=c[a>>2]|0;g=(c[h>>2]|0)-f|0;e=g<<1;g=g+b|0;e=g>>>0>e>>>0?g:e;g=a+4|0;b=f;f=(c[g>>2]|0)-f|0;d=a+12|0;if(!(c[d>>2]|0)){i=WI(e)|0;PN(i|0,b|0,f|0)|0;c[d>>2]=1;b=i}else b=ZI(b,e)|0;c[a>>2]=b;c[g>>2]=b+f;c[h>>2]=b+e;return 0}function dm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=a+4|0;e=c[f>>2]|0;if((e+d|0)>>>0>(c[a+8>>2]|0)>>>0){cm(a,d)|0;e=c[f>>2]|0}PN(e|0,b|0,d|0)|0;c[f>>2]=(c[f>>2]|0)+d;return d|0}function em(a,b){a=a|0;b=b|0;return dm(a,b,oJ(b)|0)|0}function fm(a){a=a|0;if(c[a+12>>2]|0)XI(c[a>>2]|0);return}function gm(a){a=a|0;var b=0,e=0;b=a+4|0;e=c[b>>2]|0;if(e>>>0>(c[a>>2]|0)>>>0){c[b>>2]=e+-1;a=d[e>>0]|0}else a=-1;return a|0}function hm(a,b,d){a=a|0;b=b|0;d=d|0;ap(c[41987]|0,c[b+8>>2]|0)|0;ap(c[41987]|0,c[b+12>>2]|0)|0;Yn(c[41987]|0,b);return}function im(a,b){a=a|0;b=b|0;var c=0;c=Ko(a,81379,0)|0;if((b|0)!=0&(c|0)==0){jm(a);c=Ko(a,81379,0)|0}return c|0}function jm(a){a=a|0;var b=0,c=0,d=0;d=ro(a)|0;uq(d,d,86,0,1)|0;c=bo(d)|0;while(1){if(!c)break;lm(a,c);b=Om(d,c)|0;while(1){if(!b)break;mm(a,b);b=Qm(d,b)|0}c=co(d,c)|0}return}function km(b){b=b|0;var c=0;c=b+24|0;a[c>>0]=a[c>>0]|64;rm(b);c=Jp(b)|0;om((c|0)==0?b:c,b);return}function lm(a,b){a=a|0;b=b|0;var d=0;d=nm(b)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))om(a,b);return}function mm(a,b){a=a|0;b=b|0;var d=0;d=nm(b)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))om(a,b);return}function nm(a){a=a|0;return Ko(a,81367,0)|0}function om(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Mo(b,81367,16,0)|0;f=pm(a,c[b>>2]&3)|0;e=d+8|0;a:do if(!(c[e>>2]|0)){a=ro(a)|0;c[e>>2]=pm(a,c[b>>2]&3)|0;a=qm(b)|0;d=d+12|0;c[d>>2]=Xn(qo(b)|0,((a|0)>4?a:4)<<2)|0;a=bb[c[f>>2]&31](f,0,128)|0;while(1){if(!a)break a;e=qo(b)|0;e=_o(e,c[a+12>>2]|0)|0;c[(c[d>>2]|0)+(c[a+16>>2]<<2)>>2]=e;a=bb[c[f>>2]&31](f,a,8)|0}}while(0);return}function pm(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;a=im(a,0)|0;a:do if(!a)a=0;else switch(b|0){case 0:{a=c[a+16>>2]|0;break a}case 1:{a=c[a+8>>2]|0;break a}case 2:case 3:{a=c[a+12>>2]|0;break a}default:{c[d>>2]=b;Zl(1,81392,d)|0;a=0;break a}}while(0);l=e;return a|0}function qm(a){a=a|0;var b=0;b=ro(qo(a)|0)|0;a=pm(b,c[a>>2]&3)|0;if(!a)a=0;else a=Rl(a)|0;return a|0}function rm(a){a=a|0;var b=0,d=0,e=0,f=0;d=Mo(a,81379,20,0)|0;e=d+8|0;c[e>>2]=Np(a,17420,c[4353]|0)|0;f=d+12|0;c[f>>2]=Np(a,17420,c[4353]|0)|0;d=d+16|0;c[d>>2]=Np(a,17420,c[4353]|0)|0;b=Jp(a)|0;if(!b){b=c[41986]|0;if(!((b|0)==0|(b|0)==(a|0))){b=im(b,0)|0;sm(c[b+8>>2]|0,c[e>>2]|0,a,1);sm(c[b+12>>2]|0,c[f>>2]|0,a,2);sm(c[b+16>>2]|0,c[d>>2]|0,a,0)}}else{a=im(b,0)|0;Vl(c[e>>2]|0,c[a+8>>2]|0)|0;Vl(c[f>>2]|0,c[a+12>>2]|0)|0;Vl(c[d>>2]|0,c[a+16>>2]|0)|0}return}function sm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=bb[c[b>>2]&31](b,0,128)|0;while(1){if(!g)break;h=tm(e,c[g+8>>2]|0,c[g+12>>2]|0,c[g+16>>2]|0,f)|0;a[h+22>>0]=a[g+22>>0]|0;a[h+21>>0]=a[g+21>>0]|0;bb[c[d>>2]&31](d,h,1)|0;g=bb[c[b>>2]&31](b,g,8)|0}return}function tm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=Xn(b,24)|0;a[h+20>>0]=g;c[h+8>>2]=_o(b,d)|0;c[h+12>>2]=_o(b,e)|0;c[h+16>>2]=f;return h|0}function um(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+32|0;e=d;c[e+8>>2]=b;b=bb[c[a>>2]&31](a,e,4)|0;l=d;return b|0}function vm(a,b){a=a|0;b=b|0;var c=0;c=Vl(a,0)|0;b=um(a,b)|0;Vl(a,c)|0;return b|0}function wm(a,b){a=a|0;b=b|0;a=nm(a)|0;if(!a)a=0;else a=um(c[a+8>>2]|0,b)|0;return a|0}function xm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=l;l=l+16|0;g=h;if(!b){b=c[41986]|0;if(!b){a[g>>0]=a[17456]|0;a[g+1>>0]=a[17457]|0;a[g+2>>0]=a[17458]|0;a[g+3>>0]=a[17459]|0;b=fn(0,g,0)|0;c[41986]=b}}if(!f)b=zm(b,d,e)|0;else b=ym(b,d,e,f)|0;l=h;return b|0}function ym(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=ro(a)|0;im(a,1)|0;g=pm(a,b)|0;f=vm(g,d)|0;a:do if(!f){f=um(g,d)|0;if(f|0){f=tm(a,d,e,c[f+16>>2]|0,b)|0;bb[c[g>>2]&31](g,f,1)|0;h=16;break}g=pm(i,b)|0;f=tm(a,d,e,Rl(g)|0,b)|0;bb[c[g>>2]&31](g,f,1)|0;switch(b|0){case 0:{uq(i,i,52,f,1)|0;h=16;break a}case 1:{d=bo(i)|0;while(1){if(!d){h=16;break a}Am(a,d,f);d=co(i,d)|0}}case 2:case 3:{g=bo(i)|0;while(1){if(!g){h=16;break a}d=Om(i,g)|0;while(1){if(!d)break;Am(a,d,f);d=Qm(i,d)|0}g=co(i,g)|0}}default:break a}}else{h=f+12|0;ap(a,c[h>>2]|0)|0;c[h>>2]=_o(a,e)|0;h=16}while(0);if((h|0)==16)if((b|0)==0&(f|0)!=0)Bm(a,f,e)|0;uo(a,a,f);return f|0}function zm(a,b,c){a=a|0;b=b|0;c=c|0;a=pm(a,b)|0;if(!a)a=0;else a=um(a,c)|0;return a|0}function Am(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;b=nm(b)|0;f=d+16|0;e=c[f>>2]|0;if((e|0)>3){g=c[a+64>>2]|0;b=b+12|0;e=e<<2;c[b>>2]=cb[c[(c[g>>2]|0)+8>>2]&31](c[g+12>>2]|0,c[b>>2]|0,e,e+4|0)|0}else b=b+12|0;g=_o(a,c[d+12>>2]|0)|0;c[(c[b>>2]|0)+(c[f>>2]<<2)>>2]=g;return}function Bm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=qo(a)|0;g=(nm(a)|0)+12|0;i=b+16|0;ap(h,c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]|0)|0;f=_o(h,d)|0;c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]=f;do if(!(c[a>>2]&3)){e=c[(im(h,0)|0)+16>>2]|0;f=b+8|0;g=vm(e,c[f>>2]|0)|0;if(!g){i=tm(h,c[f>>2]|0,d,c[i>>2]|0,c[a>>2]&3)|0;bb[c[e>>2]&31](e,i,1)|0;break}else{i=g+12|0;ap(h,c[i>>2]|0)|0;c[i>>2]=_o(h,d)|0;break}}while(0);uo(h,a,b);return 0}function Cm(a,b,d){a=a|0;b=b|0;d=d|0;a=pm(a,b)|0;do if(a){b=c[a>>2]|0;if(!d){a=bb[b&31](a,0,128)|0;break}else{a=bb[b&31](a,d,8)|0;break}}else a=0;while(0);return a|0}function Dm(a){a=a|0;var b=0;c[41987]=a;b=nm(a)|0;if(b|0){Em(a,b);Oo(a,c[b>>2]|0)|0}b=im(a,0)|0;if(b)if(((Pp(a,c[b+8>>2]|0)|0)==0?(Pp(a,c[b+12>>2]|0)|0)==0:0)?(Pp(a,c[b+16>>2]|0)|0)==0:0){Oo(a,c[b>>2]|0)|0;b=0}else b=1;else b=0;return b|0}function Em(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=qo(a)|0;e=qm(a)|0;b=b+12|0;a=0;while(1){d=c[b>>2]|0;if((a|0)>=(e|0))break;ap(f,c[d+(a<<2)>>2]|0)|0;a=a+1|0}Yn(f,d);return}function Fm(a){a=a|0;var b=0;b=nm(a)|0;if(b|0){Em(a,b);Oo(a,81367)|0}return}function Gm(a){a=a|0;var b=0;b=nm(a)|0;if(b|0){Em(a,b);Oo(a,81367)|0}return}function Hm(a,b){a=a|0;b=b|0;b=wm(a,b)|0;if(!b)b=0;else{a=c[(nm(a)|0)+12>>2]|0;b=c[a+(c[b+16>>2]<<2)>>2]|0}return b|0}function Im(a,b){a=a|0;b=b|0;a=c[(nm(a)|0)+12>>2]|0;return c[a+(c[b+16>>2]<<2)>>2]|0}function Jm(a,b,c){a=a|0;b=b|0;c=c|0;b=wm(a,b)|0;if(!b)b=-1;else{Bm(a,b,c)|0;b=0}return b|0}function Km(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=qo(a)|0;f=xm(f,c[a>>2]&3,b,0)|0;if(!f){f=qo(a)|0;f=xm(f,c[a>>2]&3,b,e)|0}Bm(a,f,d)|0;return 0}function Lm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=qo(a)|0;f=c[a>>2]|0;a:do if(!((c[b>>2]^f)&3)){d=1;e=0;while(1){e=Cm(g,f&3,e)|0;if(!e)break a;d=wm(b,c[e+8>>2]|0)|0;if(!d){d=1;break a}f=Im(a,e)|0;Bm(b,d,f)|0;if(bp(f)|0)cp(Im(b,d)|0);d=0;f=c[a>>2]|0}}else d=1;while(0);return d|0}function Mm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a=c[b+40>>2]|0;f=c[d+40>>2]|0;if((a|0)==(f|0)){e=(c[b>>2]|0)>>>4;a=(c[d>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}else{e=(c[a>>2]|0)>>>4;a=(c[f>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}if((g|0)==6)a=0;return a|0}function Nm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;a=(c[b+40>>2]|0)+8|0;g=c[a>>2]|0;a=c[a+4>>2]|0;f=(c[d+40>>2]|0)+8|0;e=c[f>>2]|0;f=c[f+4>>2]|0;do if(!(a>>>0<f>>>0|(a|0)==(f|0)&g>>>0<e>>>0))if(a>>>0>f>>>0|(a|0)==(f|0)&g>>>0>e>>>0)a=1;else{e=b+8|0;a=c[e>>2]|0;e=c[e+4>>2]|0;if(!((a|0)==0&(e|0)==0)?(i=d+8|0,h=c[i>>2]|0,i=c[i+4>>2]|0,!((h|0)==0&(i|0)==0)):0){if(e>>>0<i>>>0|(e|0)==(i|0)&a>>>0<h>>>0){a=-1;break}if(e>>>0>i>>>0|(e|0)==(i|0)&a>>>0>h>>>0){a=1;break}}a=0}else a=-1;while(0);return a|0}function Om(a,b){a=a|0;b=b|0;var d=0;b=Pm(a,b)|0;if(!b)b=0;else{d=a+44|0;a=b+32|0;Ql(c[d>>2]|0,c[a>>2]|0)|0;b=c[d>>2]|0;b=bb[c[b>>2]&31](b,0,128)|0;c[a>>2]=Ml(c[d>>2]|0)|0}return b|0}function Pm(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+48|0;d=e;if((c[b+24>>2]|0)==(a|0))a=b+28|0;else{c[d+16>>2]=b;a=c[a+40>>2]|0;a=bb[c[a>>2]&31](a,d,4)|0}l=e;return a|0}function Qm(a,b){a=a|0;b=b|0;var d=0,e=0;d=Pm(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;if(!d)a=0;else{e=a+44|0;d=d+32|0;Ql(c[e>>2]|0,c[d>>2]|0)|0;a=c[e>>2]|0;a=bb[c[a>>2]&31](a,b,8)|0;c[d>>2]=Ml(c[e>>2]|0)|0}return a|0}function Rm(a,b){a=a|0;b=b|0;var d=0;b=Pm(a,b)|0;if(!b)b=0;else{d=a+44|0;a=b+28|0;Ql(c[d>>2]|0,c[a>>2]|0)|0;b=c[d>>2]|0;b=bb[c[b>>2]&31](b,0,128)|0;c[a>>2]=Ml(c[d>>2]|0)|0}return b|0}function Sm(a,b){a=a|0;b=b|0;var d=0,e=0;d=Pm(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;if(!d)a=0;else{e=a+44|0;d=d+28|0;Ql(c[e>>2]|0,c[d>>2]|0)|0;a=c[e>>2]|0;a=bb[c[a>>2]&31](a,b,8)|0;c[d>>2]=Ml(c[e>>2]|0)|0}return a|0}function Tm(a,b){a=a|0;b=b|0;var c=0;c=Om(a,b)|0;if(!c)c=Rm(a,b)|0;return c|0}function Um(a,b,d){a=a|0;b=b|0;d=d|0;a:do if((c[b>>2]&3|0)==2){b=Qm(a,b)|0;if(!b){b=0;do{if(!b)b=Rm(a,d)|0;else b=Sm(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0))}}else do{b=Sm(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0));while(0);return b|0}function Vm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+32|0;f=h+16|0;g=h;if((rn(a)|0)!=0?(c[g>>2]=0,c[g+4>>2]=0,c[g+8>>2]=0,c[g+12>>2]=0,c[f>>2]=c[g>>2],c[f+4>>2]=c[g+4>>2],c[f+8>>2]=c[g+8>>2],c[f+12>>2]=c[g+12>>2],(Zm(a,b,e,f)|0)!=0):0)f=0;else f=((d[a+24>>0]|0)>>>2&1^1)&255|(b|0)!=(e|0);l=h;return f|0}function Wm(a,b){a=a|0;b=b|0;Ym(a,b);return}function Xm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;ho(b,d,1)|0;ho(b,e,1)|0;h=Xn(b,96)|0;i=h+48|0;l=jn(b,2)|0;j=c[i>>2]|0;k=c[h>>2]|0;m=h+8|0;c[m>>2]=f;c[m+4>>2]=g;m=h+56|0;c[m>>2]=f;c[m+4>>2]=g;g=l<<4;c[h>>2]=k&12|g|2;c[i>>2]=j&12|g|3;c[h+88>>2]=d;c[h+40>>2]=e;Ym(b,h);if(a[b+24>>0]&64){Mo(h,81367,16,0)|0;mm(b,h)}so(b,h);return h|0}function Ym(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;i=l;l=l+16|0;d=i;h=c[b>>2]&3;g=(h|0)==2?b:b+-48|0;h=(h|0)==3?b:b+48|0;e=c[h+40>>2]|0;f=c[g+40>>2]|0;while(1){if(!a)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];if(Zm(a,e,f,d)|0)break;j=Pm(a,e)|0;m=a+44|0;_m(c[m>>2]|0,j+32|0,g);k=a+48|0;_m(c[k>>2]|0,j+24|0,g);j=Pm(a,f)|0;_m(c[m>>2]|0,j+28|0,h);_m(c[k>>2]|0,j+20|0,h);a=Jp(a)|0}l=i;return}function Zm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+48|0;f=h;if(!((b|0)==0|(d|0)==0)?(c[f>>2]=c[e>>2],c[f+4>>2]=c[e+4>>2],c[f+8>>2]=c[e+8>>2],c[f+12>>2]=c[e+12>>2],c[f+40>>2]=b,g=Pm(a,d)|0,(g|0)!=0):0){e=a+48|0;g=g+20|0;Ql(c[e>>2]|0,c[g>>2]|0)|0;a=c[e>>2]|0;a=bb[c[a>>2]&31](a,f,4)|0;c[g>>2]=Ml(c[e>>2]|0)|0}else a=0;l=h;return a|0}function _m(a,b,d){a=a|0;b=b|0;d=d|0;Ql(a,c[b>>2]|0)|0;bb[c[a>>2]&31](a,d,1)|0;c[b>>2]=Ml(a)|0;return}function $m(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+48|0;i=n+24|0;k=n+16|0;j=n;do if(!(zn(a,2,e,k,0)|0))if(!e){if(f|0?(rn(a)|0)==0:0){m=18;break};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;m=7}else m=17;else{o=j;c[o>>2]=0;c[o+4>>2]=0;o=k;g=c[o+4>>2]|0;m=j+8|0;c[m>>2]=c[o>>2];c[m+4>>2]=g;c[j>>2]=2;m=7}while(0);a:do if((m|0)==7){c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];g=Zm(a,b,d,i)|0;b:do if(!g){if(qn(a)|0?(c[i>>2]=c[j>>2],c[i+4>>2]=c[j+4>>2],c[i+8>>2]=c[j+8>>2],c[i+12>>2]=c[j+12>>2],h=Zm(a,d,b,i)|0,h|0):0){g=h;break}do if(f|0){g=ro(a)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];g=Zm(g,b,d,i)|0;if(!g){if(!(qn(a)|0))break;g=ro(a)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];g=Zm(g,d,b,i)|0;if(!g)break}Wm(a,g);break b}while(0);m=17;break a}while(0)}while(0);if((m|0)==17)if(!f)g=0;else m=18;if((m|0)==18)if((Vm(a,b,d)|0)!=0?(zn(a,2,e,k,1)|0)!=0:0){g=k;g=Xm(a,b,d,c[g>>2]|0,c[g+4>>2]|0)|0;Dn(a,2,g)}else g=0;l=n;return g|0}function an(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=(c[b>>2]&3|0)==3;g=d?b+-48|0:b;d=d?b:b+48|0;b=c[g+40>>2]|0;h=Pm(a,c[d+40>>2]|0)|0;f=a+44|0;bn(c[f>>2]|0,h+32|0,g);e=a+48|0;bn(c[e>>2]|0,h+24|0,g);b=Pm(a,b)|0;bn(c[f>>2]|0,b+28|0,d);bn(c[e>>2]|0,b+20|0,d);return}function bn(a,b,d){a=a|0;b=b|0;d=d|0;Ql(a,c[b>>2]|0)|0;bb[c[a>>2]&31](a,d,2)|0;c[b>>2]=Ml(a)|0;return}function cn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;d=(c[d>>2]&3|0)==2?d:d+-48|0;g=c[d>>2]&3;h=c[((g|0)==3?d:d+48|0)+40>>2]|0;g=c[((g|0)==2?d:d+-48|0)+40>>2]|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];if(Zm(b,h,g,f)|0){if((ro(b)|0)==(b|0)){if(a[b+24>>0]&64)Gm(d);wo(b,d);Uo(d);h=d+8|0;Bn(b,2,c[h>>2]|0,c[h+4>>2]|0)}if(!(uq(b,d,53,0,0)|0))if((ro(b)|0)==(b|0)){Yn(b,d);d=0}else d=0;else d=-1}else d=-1;l=e;return d|0}function dn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;e=h;f=ho(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0,d)|0;g=ho(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,d)|0;do if((f|0)!=0&(g|0)!=0){c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];e=Zm(a,f,g,e)|0;f=(e|0)==0;if(!((d|0)!=0&f)){if(f)break}else{Ym(a,b);e=b}d=c[e>>2]&3;l=h;return ((d|0)==(c[b>>2]&3|0)?e:e+(((d|0)==3?-1:1)*48|0)|0)|0}while(0);l=h;return 0}function en(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=b+8|0;e=d+8|0;e=EN(c[b>>2]|0,c[b+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;return ((e|0)==0?0:e>>31|1)|0}function fn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l+16|0;g=h;j=gn(e)|0;f=ab[c[(c[j>>2]|0)+4>>2]&63](c[j+12>>2]|0,72)|0;c[f>>2]=c[f>>2]&-4;i=f+64|0;c[i>>2]=j;k=f+24|0;d=c[d>>2]|0;c[k>>2]=d;a[k>>0]=d&255|8;c[f+60>>2]=f;e=ab[c[c[j+4>>2]>>2]&63](f,e)|0;c[(c[i>>2]|0)+16>>2]=e;if(zn(f,0,b,g,1)|0){i=g;j=c[i+4>>2]|0;k=f+8|0;c[k>>2]=c[i>>2];c[k+4>>2]=j}k=hn(f)|0;Dn(k,0,f);l=h;return k|0}function gn(b){b=b|0;var d=0,e=0,f=0,g=0;d=(b|0)!=0;if(d){e=c[b>>2]|0;e=(e|0)==0?17792:e}else e=17792;g=$a[c[e>>2]&31](b)|0;f=ab[c[e+4>>2]&63](g,80)|0;c[f>>2]=e;c[f+12>>2]=g;if(d){g=c[b+4>>2]|0;c[f+4>>2]=(g|0)==0?17668:g;b=c[b+8>>2]|0;b=(b|0)==0?17768:b}else{c[f+4>>2]=17668;b=17768}c[f+8>>2]=b;a[f+52>>0]=1;return f|0}function hn(b){b=b|0;var d=0,e=0;c[b+36>>2]=Np(b,17848,c[4353]|0)|0;c[b+40>>2]=Np(b,17812,c[4353]|0)|0;d=(ro(b)|0)==(b|0);c[b+44>>2]=Np(b,d?17460:17496,c[4353]|0)|0;d=(ro(b)|0)==(b|0);c[b+48>>2]=Np(b,d?17532:17568,c[4353]|0)|0;c[b+52>>2]=Np(b,17604,c[4353]|0)|0;d=Jp(b)|0;if(!((d|0)!=0?(e=jn(d,0)|0,c[b>>2]=c[b>>2]&15|e<<4,e=c[d+52>>2]|0,bb[c[e>>2]&31](e,b,1)|0,!(a[d+24>>0]&64)):0))km(b);so(b,b);return b|0}function jn(a,b){a=a|0;b=b|0;var d=0;d=(c[a+64>>2]|0)+24+(b<<3)|0;b=d;b=DN(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;a=z;c[d>>2]=b;c[d+4>>2]=a;z=a;return b|0}function kn(b){b=b|0;var d=0,e=0,f=0,g=0;f=Jp(b)|0;g=(f|0)==0;if(g?(d=b+64|0,(c[(c[c[d>>2]>>2]|0)+16>>2]|0)!=0):0){wo(b,b);g=b+8|0;Bn(b,0,c[g>>2]|0,c[g+4>>2]|0);d=c[d>>2]|0;gb[c[(c[d>>2]|0)+16>>2]&127](c[d+12>>2]|0);d=0}else e=4;do if((e|0)==4){d=Hp(b)|0;while(1){if(!d)break;e=Ip(d)|0;kn(d)|0;d=e}d=bo(b)|0;while(1){if(!d)break;e=co(b,d)|0;oo(b,d)|0;d=e}Mn(b);wo(b,b);if(((((Pp(b,c[b+40>>2]|0)|0)==0?(Pp(b,c[b+36>>2]|0)|0)==0:0)?(Pp(b,c[b+48>>2]|0)|0)==0:0)?(Pp(b,c[b+44>>2]|0)|0)==0:0)?(Pp(b,c[b+52>>2]|0)|0)==0:0){if(a[b+24>>0]&64?Dm(b)|0:0){d=-1;break}Uo(b);e=b+8|0;Bn(b,0,c[e>>2]|0,c[e+4>>2]|0);if(!g){Kp(f,b)|0;Yn(f,b);d=0;break}d=b+64|0;while(1){e=c[d>>2]|0;f=c[e+48>>2]|0;if(!f)break;zo(b,c[f>>2]|0)|0}gb[c[(c[e+4>>2]|0)+20>>2]&127](c[e+16>>2]|0);if(!(Vo(b)|0)){d=c[d>>2]|0;g=c[d+12>>2]|0;f=(c[d>>2]|0)+12|0;hb[c[f>>2]&31](g,b);hb[c[f>>2]&31](g,d);d=0}else d=-1}else d=-1}while(0);return d|0}function ln(a){a=a|0;return Rl(c[a+40>>2]|0)|0}function mn(a){a=a|0;var b=0,c=0,d=0;b=0;c=bo(a)|0;while(1){if(!c)break;d=(nn(a,c,0,1)|0)+b|0;b=d;c=co(a,c)|0}return b|0}function nn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=Pm(a,b)|0;if(f){if(!e)b=0;else b=on(c[a+44>>2]|0,f+32|0)|0;if(d)b=(on(c[a+44>>2]|0,f+28|0)|0)+b|0}else b=0;return b|0}function on(a,b){a=a|0;b=b|0;var d=0;Ql(a,c[b>>2]|0)|0;d=Rl(a)|0;c[b>>2]=Ml(a)|0;return d|0}function pn(b){b=b|0;return a[b+24>>0]&1|0}function qn(a){a=a|0;return (pn(a)|0)==0|0}function rn(a){a=a|0;return (d[a+24>>0]|0)>>>1&1|0}function sn(a,b){a=a|0;b=b|0;return a|0}function tn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;if(!d){f=1328;d=c[f>>2]|0;f=c[f+4>>2]|0;c[e>>2]=d;c[e+4>>2]=f;f=DN(d|0,f|0,2,0)|0;e=1328;c[e>>2]=f;c[e+4>>2]=z}else{if(!f)a=Xo(a,d)|0;else a=_o(a,d)|0;c[e>>2]=a;c[e+4>>2]=0}return 1}function un(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function vn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((c&1|0)==0&0==0)ap(a,c)|0;return}function wn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ((c&1|0)==0&0==0?c:0)|0}function xn(a){a=a|0;return}function yn(a,b,c){a=a|0;b=b|0;c=c|0;return}function zn(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;i=(e|0)!=0;do if(i){if((a[e>>0]|0)!=37?(h=c[b+64>>2]|0,h=db[c[(c[h+4>>2]|0)+4>>2]&3](c[h+16>>2]|0,d,e,f,g)|0,h|0):0)break;h=En(b,d,e,f)|0;if(!h)j=5}else j=5;while(0);if((j|0)==5)if(g){h=c[b+64>>2]|0;h=db[c[(c[h+4>>2]|0)+4>>2]&3](c[h+16>>2]|0,d,0,f,g)|0;if(i&(h|0)!=0){j=f;Fn(b,d,e,c[j>>2]|0,c[j+4>>2]|0)}}else h=0;return h|0}function An(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[a+64>>2]|0;return cb[c[(c[a+4>>2]|0)+8>>2]&31](c[a+16>>2]|0,b,d,e)|0}function Bn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Kn(a,b,d,e)|0;a=c[a+64>>2]|0;kb[c[(c[a+4>>2]|0)+12>>2]&31](c[a+16>>2]|0,b,d,e);return}function Cn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;d=qo(a)|0;f=a+8|0;b=f;b=In(d,c[a>>2]&3,c[b>>2]|0,c[b+4>>2]|0)|0;do if(!b){b=c[d+64>>2]|0;d=c[(c[b+4>>2]|0)+16>>2]|0;if(d|0?(e=f,e=cb[d&31](c[b+16>>2]|0,c[a>>2]&3,c[e>>2]|0,c[e+4>>2]|0)|0,e|0):0){b=e;break}if((c[a>>2]&3|0)==2)b=0;else{e=c[f>>2]|0;f=c[f+4>>2]|0;c[g>>2]=37;b=g+8|0;c[b>>2]=e;c[b+4>>2]=f;lL(173891,81419,g)|0;b=173891}}while(0);l=h;return b|0}function Dn(a,b,d){a=a|0;b=b|0;d=d|0;a=c[a+64>>2]|0;ib[c[(c[a+4>>2]|0)+24>>2]&127](c[a+16>>2]|0,b,d);return}function En(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i;b=c[(c[a+64>>2]|0)+56+(((b|0)==3?2:b)<<2)>>2]|0;if(((b|0)!=0?(f=Xo(a,d)|0,(f|0)!=0):0)?(c[h+24>>2]=f,g=bb[c[b>>2]&31](b,h,4)|0,(g|0)!=0):0){d=g+16|0;h=c[d+4>>2]|0;b=e;c[b>>2]=c[d>>2];c[b+4>>2]=h;b=1}else b=0;l=i;return b|0}function Fn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=Xn(a,32)|0;g=h+16|0;c[g>>2]=e;c[g+4>>2]=f;c[h+24>>2]=_o(a,d)|0;e=(b|0)==3?2:b;g=a+64|0;d=c[g>>2]|0;b=c[d+56+(e<<2)>>2]|0;if(!b){f=Np(a,17696,c[4353]|0)|0;c[(c[g>>2]|0)+56+(e<<2)>>2]=f;b=c[g>>2]|0}else{f=b;b=d}b=c[b+68+(e<<2)>>2]|0;if(!b){b=Np(a,17732,c[4353]|0)|0;c[(c[g>>2]|0)+68+(e<<2)>>2]=b}bb[c[f>>2]&31](f,h,1)|0;bb[c[b>>2]&31](b,h,1)|0;return}function Gn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=b+16|0;b=c[a>>2]|0;a=c[a+4>>2]|0;d=d+16|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (a>>>0>d>>>0|(a|0)==(d|0)&b>>>0>e>>>0?1:(a>>>0<d>>>0|(a|0)==(d|0)&b>>>0<e>>>0)<<31>>31)|0}function Hn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b+24>>2]|0;e=c[d+24>>2]|0;return (b>>>0>e>>>0?1:(b>>>0<e>>>0)<<31>>31)|0}function In(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Jn(a,b,d,e)|0;if(!a)a=0;else a=c[a+24>>2]|0;return a|0}function Jn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+32|0;f=g;a=c[(c[a+64>>2]|0)+68+(((b|0)==3?2:b)<<2)>>2]|0;if(!a)a=0;else{b=f+16|0;c[b>>2]=d;c[b+4>>2]=e;a=bb[c[a>>2]&31](a,f,4)|0}l=g;return a|0}function Kn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=(b|0)==3?2:b;b=Jn(a,f,d,e)|0;if(!b)b=0;else{e=a+64|0;d=c[(c[e>>2]|0)+56+(f<<2)>>2]|0;bb[c[d>>2]&31](d,b,2)|0;e=c[(c[e>>2]|0)+68+(f<<2)>>2]|0;bb[c[e>>2]&31](e,b,2)|0;ap(a,c[b+24>>2]|0)|0;Yn(a,b);b=1}return b|0}function Ln(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[41987]=b;g=c[b+64>>2]|0;f=0;while(1){if((f|0)==3)break;h=g+56+(f<<2)|0;d=c[h>>2]|0;a:do if(d|0){d=bb[c[d>>2]&31](d,0,128)|0;while(1){if(!d)break a;e=c[h>>2]|0;e=bb[c[e>>2]&31](e,d,8)|0;if((a[c[d+24>>2]>>0]|0)!=37){d=e;continue}i=d+16|0;Kn(b,f,c[i>>2]|0,c[i+4>>2]|0)|0;d=e}}while(0);f=f+1|0}return}function Mn(a){a=a|0;c[41987]=a;a=a+64|0;Nn((c[a>>2]|0)+56|0);Nn((c[a>>2]|0)+68|0);return}function Nn(a){a=a|0;var b=0,d=0,e=0;b=0;while(1){if((b|0)==3)break;d=a+(b<<2)|0;e=c[d>>2]|0;if(e|0){Jl(e)|0;c[d>>2]=0}b=b+1|0}return}function On(a,b,c){a=a|0;b=b|0;c=c|0;if(!(cL(b,c,a)|0))a=0;else a=oJ(b)|0;return a|0}function Pn(a,b){a=a|0;b=b|0;return SL(b,a)|0}function Qn(a){a=a|0;return LL(a)|0}function Rn(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+32|0;e=b+12|0;d=b;c[4446]=c[4443];c[4447]=c[4444];c[e>>2]=a;c[e+4>>2]=oJ(a)|0;c[e+8>>2]=0;c[d>>2]=17792;c[d+4>>2]=17668;c[d+8>>2]=17780;a=cr(e,d)|0;dp(0);l=b;return a|0}function Sn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((e|0)!=0?(h=b+8|0,f=c[h>>2]|0,(f|0)<(c[b+4>>2]|0)):0){i=(c[b>>2]|0)+f|0;b=0;g=a[i>>0]|0;f=d;d=i;while(1){d=d+1|0;a[f>>0]=g;b=b+1|0;if(!(g<<24>>24!=10&(b|0)<(e|0)))break;g=a[d>>0]|0;if(!(g<<24>>24))break;else f=f+1|0}c[h>>2]=(c[h>>2]|0)+b}else b=0;return b|0}function Tn(a){a=a|0;return 0}function Un(a,b){a=a|0;b=b|0;a=WI(b)|0;RN(a|0,0,b|0)|0;return a|0}function Vn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=ZI(b,d)|0;if(d>>>0>c>>>0)RN(a+c|0,0,d-c|0)|0;return a|0}function Wn(a,b){a=a|0;b=b|0;XI(b);return}function Xn(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;a=c[a+64>>2]|0;a=ab[c[(c[a>>2]|0)+4>>2]&63](c[a+12>>2]|0,b)|0;if(!a)Zl(1,81425,d)|0;l=d;return a|0}function Yn(a,b){a=a|0;b=b|0;if(b|0){a=c[a+64>>2]|0;hb[c[(c[a>>2]|0)+12>>2]&31](c[a+12>>2]|0,b)}return}function Zn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=(c[b+16>>2]|0)+8|0;b=c[a>>2]|0;a=c[a+4>>2]|0;d=(c[d+16>>2]|0)+8|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (a>>>0<d>>>0|(a|0)==(d|0)&b>>>0<e>>>0?-1:(a>>>0>d>>>0|(a|0)==(d|0)&b>>>0>e>>>0)&1)|0}function _n(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+16>>2]|0;if((a+28|0)!=(b|0))Yn(c[a+24>>2]|0,b);return}function $n(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=(c[c[b+16>>2]>>2]|0)>>>4;e=(c[c[d+16>>2]>>2]|0)>>>4;return (b>>>0<e>>>0?-1:b>>>0>e>>>0&1)|0}function ao(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=167040;c[e>>2]=b;c[e+4>>2]=d;c[41992]=167032;a=c[a+40>>2]|0;a=bb[c[a>>2]&31](a,167952,4)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function bo(a){a=a|0;a=c[a+36>>2]|0;a=bb[c[a>>2]&31](a,0,128)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function co(a,b){a=a|0;b=b|0;var d=0;b=Pm(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=bb[c[d>>2]&31](d,b,8)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function eo(a){a=a|0;a=c[a+36>>2]|0;a=bb[c[a>>2]&31](a,0,256)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function fo(a,b){a=a|0;b=b|0;var d=0;b=Pm(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=bb[c[d>>2]&31](d,b,16)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function go(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ao(a,b,c)|0;do if((d|0)!=0&(e|0)==0){e=ro(a)|0;if((e|0)!=(a|0)?(f=ao(e,b,c)|0,f|0):0){ho(a,f,1)|0;e=f;break}if(!(An(a,1,b,c)|0))e=0;else{e=jn(a,1)|0;e=io(a,b,c,e,z)|0;jo(a,e);ko(a,e)}}while(0);return e|0}function ho(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ro(a)|0;if((e|0)==(c[b+24>>2]|0)){e=b+8|0;e=ao(a,c[e>>2]|0,c[e+4>>2]|0)|0;if((d|0)!=0&(e|0)==0){e=Jp(a)|0;if(!e)e=0;else{d=ho(e,b,d)|0;lo(a,d);return d|0}}}else e=0;return e|0}function io(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;g=Xn(b,64)|0;h=c[g>>2]|0;i=g+8|0;c[i>>2]=d;c[i+4>>2]=e;c[g>>2]=h&12|f<<4|1;c[g+24>>2]=ro(b)|0;if(a[(ro(b)|0)+24>>0]&64)Mo(g,81367,16,0)|0;return g|0}function jo(a,b){a=a|0;b=b|0;do{lo(a,b);a=Jp(a)|0}while((a|0)!=0);return}function ko(b,c){b=b|0;c=c|0;if(a[(ro(b)|0)+24>>0]&64)lm(b,c);so(b,c);return}function lo(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+40|0;Rl(c[e>>2]|0)|0;if((ro(a)|0)==(a|0))d=b+28|0;else d=Xn(a,36)|0;c[d+16>>2]=b;e=c[e>>2]|0;bb[c[e>>2]&31](e,d,1)|0;e=c[a+36>>2]|0;bb[c[e>>2]&31](e,d,1)|0;return}function mo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j;h=ro(a)|0;if(zn(a,1,b,g,0)|0){e=g;e=ao(a,c[e>>2]|0,c[e+4>>2]|0)|0;if(!e)if(!((d|0)==0|(h|0)==(a|0))?(f=g,f=ao(h,c[f>>2]|0,c[f+4>>2]|0)|0,(f|0)!=0):0)e=ho(a,f,1)|0;else i=6}else i=6;if((i|0)==6)if((d|0)!=0?(zn(a,1,b,g,1)|0)!=0:0){i=g;h=c[i>>2]|0;i=c[i+4>>2]|0;e=jn(a,1)|0;e=io(a,h,i,e,z)|0;jo(a,e);ko(a,e);Dn(a,1,e)}else e=0;l=j;return e|0}function no(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[42001]=b;d=Tm(a,b)|0;while(1){if(!d)break;e=Um(a,d,b)|0;an(a,d,0);d=e}e=c[a+40>>2]|0;bb[c[e>>2]&31](e,167988,2)|0;e=c[a+36>>2]|0;bb[c[e>>2]&31](e,167988,2)|0;return}function oo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d+8|0;e=f;if(ao(b,c[e>>2]|0,c[e+4>>2]|0)|0){if((ro(b)|0)==(b|0)){e=Tm(b,d)|0;while(1){if(!e)break;g=Um(b,e,d)|0;cn(b,e)|0;e=g}if(a[b+24>>0]&64)Fm(d);wo(b,d);Uo(d);g=f;Bn(b,1,c[g>>2]|0,c[g+4>>2]|0)}if(!(uq(b,d,54,0,0)|0))if((ro(b)|0)==(b|0)){Yn(b,d);e=0}else e=0;else e=-1}else e=-1;return e|0}function po(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;e=h;d=c[b>>2]|0;do if(!(d&3))if((Jp(b)|0)==(a|0)){d=c[b>>2]|0;g=5;break}else{Zl(1,81451,e)|0;f=-1;break}else g=5;while(0);a:do if((g|0)==5)switch(d&3){case 1:{f=oo(a,b)|0;break a}case 2:case 3:{f=cn(a,b)|0;break a}case 0:{f=kn(b)|0;break a}default:{}}while(0);l=h;return f|0}function qo(a){a=a|0;var b=0;switch(c[a>>2]&3){case 2:case 3:{b=c[(c[a+40>>2]|0)+24>>2]|0;break}case 1:{b=c[a+24>>2]|0;break}case 0:{b=a;break}default:{}}return b|0}function ro(a){a=a|0;var b=0;switch(c[a>>2]&3){case 2:case 3:{b=(c[a+40>>2]|0)+24|0;break}case 1:{b=a+24|0;break}case 0:{b=a+60|0;break}default:{}}return c[b>>2]|0}function so(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))Co(b,d,100,0);else to(b,d,c[e+48>>2]|0);return}function to(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d|0){to(a,b,c[d+8>>2]|0);switch(c[b>>2]&3){case 0:{e=c[d>>2]|0;break}case 1:{e=(c[d>>2]|0)+12|0;break}case 2:{e=(c[d>>2]|0)+24|0;break}default:break a}e=c[e>>2]|0;if(e|0)ib[e&127](a,b,c[d+4>>2]|0)}while(0);return}function uo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=c[b+64>>2]|0;if(!(a[f+52>>0]|0))Co(b,d,101,e);else vo(b,d,e,c[f+48>>2]|0);return}function vo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a:do if(e|0){vo(a,b,d,c[e+8>>2]|0);switch(c[b>>2]&3){case 0:{f=(c[e>>2]|0)+4|0;break}case 1:{f=(c[e>>2]|0)+16|0;break}case 2:{f=(c[e>>2]|0)+28|0;break}default:break a}f=c[f>>2]|0;if(f|0)kb[f&31](a,b,c[e+4>>2]|0,d)}while(0);return}function wo(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))Co(b,d,102,0);else xo(b,d,c[e+48>>2]|0);return}function xo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d|0){xo(a,b,c[d+8>>2]|0);switch(c[b>>2]&3){case 0:{e=(c[d>>2]|0)+8|0;break}case 1:{e=(c[d>>2]|0)+20|0;break}case 2:{e=(c[d>>2]|0)+32|0;break}default:break a}e=c[e>>2]|0;if(e|0)ib[e&127](a,b,c[d+4>>2]|0)}while(0);return}function yo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Xn(a,12)|0;c[e>>2]=b;c[e+4>>2]=d;d=(c[a+64>>2]|0)+48|0;c[e+8>>2]=c[d>>2];c[d>>2]=e;return}function zo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(c[a+64>>2]|0)+48|0;d=c[e>>2]|0;a:do if(!d)d=-1;else{if((c[d>>2]|0)!=(b|0)){while(1){if(!d){d=-1;break a}e=d+8|0;f=c[e>>2]|0;if((c[f>>2]|0)==(b|0))break;else d=f}if(f)c[e>>2]=c[f+8>>2]}else c[e>>2]=c[d+8>>2];Yn(a,d);d=0}while(0);return d|0}function Ao(a,b){a=a|0;b=b|0;var d=0;d=ro(a)|0;a:do if((d|0)==(ro(b)|0))switch(c[b>>2]&3){case 0:{while(1){if((b|0)==(a|0)){b=1;break a}b=Jp(b)|0;if(!b){b=0;break}}break}case 1:{b=b+8|0;b=(go(a,c[b>>2]|0,c[b+4>>2]|0,0)|0)!=0;break a}default:{b=(dn(a,b,0)|0)!=0;break a}}else b=0;while(0);return b&1|0}function Bo(a){a=a|0;return c[a>>2]&3|0}function Co(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;f=Mo(a,81475,44,0)|0;switch(c|0){case 100:{e=Do(f,b,100)|0;if(!(Eo(e,b)|0))Fo(e,a,b,d)|0;break}case 101:{if(((Eo(Do(f,b,100)|0,b)|0)==0?(Eo(Do(f,b,102)|0,b)|0)==0:0)?(e=Do(f,b,101)|0,(Eo(e,b)|0)==0):0)Fo(e,a,b,d)|0;break}case 102:{Go(Do(f,b,100)|0,b);Go(Do(f,b,101)|0,b);e=Do(f,b,102)|0;if(!(Eo(e,b)|0))Fo(e,a,b,d)|0;break}default:Zl(1,81487,g)|0}l=h;return}function Do(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;e=g;a:do switch(c[b>>2]&3){case 0:switch(d|0){case 100:{d=a+8|0;break a}case 101:{d=a+20|0;break a}case 102:{d=a+32|0;break a}default:{f=14;break a}}case 1:switch(d|0){case 100:{d=a+12|0;break a}case 101:{d=a+24|0;break a}case 102:{d=a+36|0;break a}default:{f=14;break a}}case 2:switch(d|0){case 100:{d=a+16|0;break a}case 101:{d=a+28|0;break a}case 102:{d=a+40|0;break a}default:{f=14;break a}}default:f=14}while(0);if((f|0)==14){Zl(1,81521,e)|0;d=0}a=c[d>>2]|0;if(!a){a=qo(b)|0;a=Np(a,17884,c[4353]|0)|0;c[d>>2]=a}l=g;return a|0}function Eo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=Ho(b)|0;b=e+8|0;c[b>>2]=f;c[b+4>>2]=z;b=bb[c[a>>2]&31](a,e,4)|0;l=d;return b|0}function Fo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Xn(qo(d)|0,32)|0;c[f+20>>2]=d;g=Ho(d)|0;d=f+8|0;c[d>>2]=g;c[d+4>>2]=z;c[f+16>>2]=b;if(e|0){g=Xn(b,8)|0;c[f+24>>2]=g;c[g>>2]=e}bb[c[a>>2]&31](a,f,1)|0;return f|0}function Go(a,b){a=a|0;b=b|0;b=Eo(a,b)|0;if(b|0)bb[c[a>>2]&31](a,b,2)|0;return}function Ho(a){a=a|0;a=a+8|0;z=c[a+4>>2]|0;return c[a>>2]|0}function Io(a,b,d){a=a|0;b=b|0;d=d|0;Jo(b);Yn(c[b+16>>2]|0,b);return}function Jo(a){a=a|0;var b=0,d=0;b=a+16|0;a=c[a+24>>2]|0;while(1){if(!a)break;d=c[a+4>>2]|0;Yn(c[b>>2]|0,a);a=d}return}function Ko(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;i=k;h=c[b+16>>2]|0;f=h;while(1){if(!f){f=0;break}g=c[f>>2]|0;if((g|0)==(d|0)){j=7;break}if((a[d>>0]|0)==(a[g>>0]|0)?(uJ(d,g)|0)==0:0){j=7;break}f=c[f+4>>2]|0;if((f|0)==(h|0)){f=0;break}}do if((j|0)==7){if(!(c[b>>2]&4)){if((f|0)==(h|0)&(e|0)==0){f=h;break}Lo(b,f,e);break}if(e)if((h|0)==(f|0))f=h;else Zl(1,81546,i)|0}while(0);l=k;return f|0}function Lo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a+16>>2]=b;e=c[a>>2]|0;d=d<<2&4;c[a>>2]=e&-5|d;if(e&2|0){e=(e&3|0)==3?-1:1;c[a+(e*48|0)+16>>2]=b;e=a+(e*48|0)|0;c[e>>2]=c[e>>2]&-5|d}return}function Mo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=qo(a)|0;f=Ko(a,b,0)|0;a:do if((d|0)!=0&(f|0)==0){d=Xn(h,d)|0;c[d>>2]=_o(h,b)|0;switch(c[a>>2]&3){case 0:{No(a,d);g=d;break a}case 1:{No(a,d);g=d;break a}case 2:case 3:{No(a,d);g=d;break a}default:{}}}else g=f;while(0);if(e|0)Ko(a,b,1)|0;return g|0}function No(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+16>>2]|0;do if(d){e=d+4|0;f=c[e>>2]|0;if((f|0)==(d|0)){c[e>>2]=b;e=d;d=b;break}else{c[b+4>>2]=f;e=b;break}}else{e=b;d=b}while(0);c[d+4>>2]=e;if(!(c[a>>2]&4))Lo(a,b,0);return}function Oo(a,b){a=a|0;b=b|0;var d=0,e=0;e=qo(a)|0;d=Ko(a,b,0)|0;if(!d)b=-1;else{Po(a,d);if(!(c[a>>2]&3)){Qo(e,a,d);b=d}else{uq(ro(e)|0,a,55,d,0)|0;b=d}ap(e,c[d>>2]|0)|0;Yn(e,b);b=0}return b|0}function Po(a,b){a=a|0;b=b|0;var d=0;a=c[a+16>>2]|0;do{d=a+4|0;a=c[d>>2]|0}while((a|0)!=(b|0));c[d>>2]=c[b+4>>2];return}function Qo(a,b,d){a=a|0;b=b|0;d=d|0;if((c[b+16>>2]|0)==(d|0)){a=c[d+4>>2]|0;Lo(b,(a|0)==(d|0)?0:a,0)}return}function Ro(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=(d|0)>-1;g=f?d:0-d|0;a:do switch(b|0){case 0:{Mo(a,c,g,e)|0;if(!f){b=Hp(a)|0;while(1){if(!b)break a;Ro(b,0,c,d,e);b=Ip(b)|0}}break}case 3:case 2:case 1:{d=(b|0)==1;b=bo(a)|0;while(1){if(!b)break a;b:do if(d)Mo(b,c,g,e)|0;else{f=Om(a,b)|0;while(1){if(!f)break b;Mo(f,c,g,e)|0;f=Qm(a,f)|0}}while(0);b=co(a,b)|0}}default:{}}while(0);return}function So(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;a:do switch(b|0){case 0:{uq(a,a,56,c,1)|0;break}case 3:case 2:case 1:{e=(b|0)==1;d=bo(a)|0;while(1){if(!d)break a;b:do if(e)Oo(d,c)|0;else{b=Om(a,d)|0;while(1){if(!b)break b;Oo(b,c)|0;b=Qm(a,b)|0}}while(0);d=co(a,d)|0}}default:{}}while(0);return}function To(a,b,c){a=a|0;b=b|0;c=c|0;Oo(b,c)|0;return}function Uo(a){a=a|0;var b=0,d=0,e=0;d=qo(a)|0;b=a+16|0;a=c[b>>2]|0;if(a|0)do{e=a;a=c[a+4>>2]|0;ap(d,c[e>>2]|0)|0;Yn(d,e)}while((a|0)!=(c[b>>2]|0));c[b>>2]=0;return}function Vo(a){a=a|0;return Pp(a,Wo(a)|0)|0}function Wo(a){a=a|0;var b=0,d=0;if(!a)d=168024;else d=(c[a+64>>2]|0)+20|0;b=c[d>>2]|0;if(!b){b=Np(a,17920,c[4353]|0)|0;c[d>>2]=b;a=167096;c[a>>2]=-2147483648;c[a+4>>2]=0;a=167104;c[a>>2]=2147483647;c[a+4>>2]=-1}return b|0}function Xo(a,b){a=a|0;b=b|0;return Yo(Wo(a)|0,b)|0}function Yo(a,b){a=a|0;b=b|0;a=Zo(a,b)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function Zo(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+32|0;e=d;c[e+16>>2]=b;b=bb[c[a>>2]&31](a,e,4)|0;l=d;return b|0}function _o(a,b){a=a|0;b=b|0;var d=0,e=0;if(!b)d=0;else{e=Wo(a)|0;d=Zo(e,b)|0;if(!d){d=(oJ(b)|0)+24|0;if(!a)d=WI(d)|0;else d=Xn(a,d)|0;a=d+8|0;c[a>>2]=1;c[a+4>>2]=0;a=d+20|0;tK(a,b)|0;c[d+16>>2]=a;bb[c[e>>2]&31](e,d,1)|0}else{e=d+8|0;b=e;b=DN(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;c[e>>2]=b;c[e+4>>2]=z}d=c[d+16>>2]|0}return d|0}function $o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!b)d=0;else{e=Wo(a)|0;d=Zo(e,b)|0;if(!d){d=(oJ(b)|0)+24|0;if(!a)d=WI(d)|0;else d=Xn(a,d)|0;g=167096;f=c[g+4>>2]|0;a=d+8|0;c[a>>2]=c[g>>2]|1;c[a+4>>2]=f;a=d+20|0;tK(a,b)|0;c[d+16>>2]=a;bb[c[e>>2]&31](e,d,1)|0}else{g=d+8|0;f=g;f=DN(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;c[g>>2]=f;c[g+4>>2]=z}d=c[d+16>>2]|0}return d|0}function ap(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if((b|0)!=0?(d=Wo(a)|0,e=Zo(d,b)|0,(e|0)!=0):0)if((c[e+16>>2]|0)==(b|0)?(b=e+8|0,g=b,g=DN(c[g>>2]|0,c[g+4>>2]|0,-1,-1)|0,f=z,b,c[b>>2]=g,c[b+4>>2]=f,b=167104,(g|0)==0&(f|0)==0|(c[b>>2]|0)==0&(c[b+4>>2]|0)==0):0){Op(a,d,e)|0;a=0}else a=0;else a=-1;return a|0}function bp(a){a=a|0;var b=0;if(!a)a=0;else{a=a+-12|0;b=167096;a=c[b>>2]&c[a>>2]}return a|0}function cp(a){a=a|0;var b=0,d=0,e=0;if(a|0){d=167096;a=a+-12|0;e=a;b=c[e+4>>2]|c[d+4>>2];c[a>>2]=c[e>>2]|c[d>>2];c[a+4>>2]=b}return}function dp(a){a=a|0;c[42011]=a;c[4489]=1;return}function ep(a,b){a=a|0;b=b|0;c[42012]=a;c[42013]=b;c[42014]=0;return}function fp(){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!(c[42015]|0)){c[42015]=1;if(!(c[42016]|0))c[42016]=1;if(!(c[42007]|0))c[42007]=c[13853];if(!(c[42008]|0))c[42008]=c[13885];k=c[42017]|0;if(!((k|0)!=0?(c[k>>2]|0)!=0:0)){gp();k=hp(c[42007]|0,16384)|0;c[c[42017]>>2]=k}ip()}a:while(1){j=c[42018]|0;a[j>>0]=a[173923]|0;e=(c[(c[c[42017]>>2]|0)+28>>2]|0)+(c[42016]|0)|0;f=j;b:while(1){h=f;while(1){f=c[17960+(d[h>>0]<<2)>>2]|0;if(b[56680+(e<<1)>>1]|0){c[42019]=e;c[42020]=h}c:while(1){g=f&255;do{f=g+(b[56866+(e<<1)>>1]|0)|0;if((e|0)==(b[57076+(f<<1)>>1]|0))break c;k=b[57612+(e<<1)>>1]|0;e=k<<16>>16}while(k<<16>>16<=92);f=c[18984+(g<<2)>>2]|0}e=b[57822+(f<<1)>>1]|0;f=h+1|0;if((b[56866+(e<<1)>>1]|0)==219)break;else h=f}d:while(1){k=j;e:while(1){e=b[56680+(e<<1)>>1]|0;if(!(e<<16>>16)){e=b[56680+(c[42019]<<1)>>1]|0;f=c[42020]|0}else e=e<<16>>16;c[42009]=j;i=f;c[42010]=i-k;a[173923]=a[f>>0]|0;a[f>>0]=0;c[42018]=f;f:while(1){switch(e|0){case 1:{m=27;break a}case 12:{m=53;break a}case 13:{m=55;break a}case 14:{m=57;break a}case 15:{m=61;break a}case 16:{m=65;break a}case 17:{m=67;break a}case 18:{m=69;break a}case 19:{m=72;break a}case 20:{m=75;break a}case 21:{m=78;break a}case 23:{m=86;break a}case 33:{m=118;break a}case 39:case 38:case 37:case 36:{l=0;break a}case 2:{m=29;break b}case 3:{m=32;break b}case 4:{m=35;break b}case 5:{m=37;break b}case 6:{m=39;break b}case 7:{m=42;break b}case 8:{m=44;break b}case 9:{m=47;break b}case 10:{m=49;break b}case 11:{m=51;break b}case 22:{m=83;break b}case 24:{m=89;break b}case 25:{m=92;break b}case 26:{m=95;break b}case 27:{m=98;break b}case 28:{m=101;break b}case 29:{m=104;break b}case 30:{m=109;break b}case 31:{m=112;break b}case 32:{m=115;break b}case 34:{m=121;break b}case 0:break f;case 35:break;default:{m=134;break a}}h=c[42009]|0;a[f>>0]=a[173923]|0;e=c[42017]|0;g=c[e>>2]|0;if(!(c[g+44>>2]|0)){n=c[g+16>>2]|0;c[42022]=n;c[g>>2]=c[42007];g=c[e>>2]|0;c[g+44>>2]=1;e=n}else e=c[42022]|0;if((c[42018]|0)>>>0<=((c[g+4>>2]|0)+e|0)>>>0){m=128;break e}switch(rp()|0){case 0:{m=132;break d}case 2:{m=133;break e}case 1:break;default:continue a}c[42018]=c[42009];e=(((c[42016]|0)+-1|0)/2|0)+36|0}a[f>>0]=a[173923]|0;f=c[42020]|0;e=c[42019]|0}if((m|0)==128){m=0;g=i-h|0;h=c[42009]|0;f=h+(g+-1)|0;c[42018]=f;e=pp()|0;i=qp(e)|0;j=c[42009]|0;if(!i)continue;else{m=129;break}}else if((m|0)==133){m=0;f=(c[(c[c[42017]>>2]|0)+4>>2]|0)+(c[42022]|0)|0;c[42018]=f;e=pp()|0;j=c[42009]|0;continue}}if((m|0)==129){m=0;f=h+g|0;c[42018]=f;e=i;continue}else if((m|0)==132){m=0;f=(c[42009]|0)+(i-h+-1)|0;c[42018]=f;e=pp()|0;j=c[42009]|0;continue}}switch(m|0){case 29:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;c[4489]=(c[4489]|0)+1;continue a}case 32:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;c[42016]=3;continue a}case 35:{m=0;e=c[42010]|0;if(!e)continue a;c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;continue a}case 37:{m=0;e=c[42010]|0;if(!e)continue a;c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;continue a}case 39:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;c[42016]=1;continue a}case 42:{m=0;e=c[42010]|0;if(!e)continue a;c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;continue a}case 44:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;jp();continue a}case 47:{m=0;e=c[42010]|0;if(!e)continue a;c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;continue a}case 49:{m=0;e=c[42010]|0;if(!e)continue a;c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;continue a}case 51:{m=0;e=c[42010]|0;if(!e)continue a;c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;continue a}case 83:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;c[42016]=5;lp();continue a}case 89:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;np(83707);continue a}case 92:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;np(81579);continue a}case 95:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;c[4489]=(c[4489]|0)+1;continue a}case 98:{m=0;f=c[42010]|0;e=c[42009]|0;if(f|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[e+(f+-1)>>0]|0)==10&1;np(e);continue a}case 101:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;c[42016]=7;c[42021]=1;lp();continue a}case 104:{m=0;e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;n=(c[42021]|0)+-1|0;c[42021]=n;if(!n){m=108;break a}np(c[42009]|0);continue a}case 109:{m=0;f=c[42010]|0;e=c[42009]|0;if(f|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[e+(f+-1)>>0]|0)==10&1;c[42021]=(c[42021]|0)+1;np(e);continue a}case 112:{m=0;f=c[42010]|0;e=c[42009]|0;if(f|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[e+(f+-1)>>0]|0)==10&1;np(e);c[4489]=(c[4489]|0)+1;continue a}case 115:{m=0;f=c[42010]|0;e=c[42009]|0;if(f|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[e+(f+-1)>>0]|0)==10&1;np(e);continue a}case 121:{m=0;f=c[42010]|0;e=c[42009]|0;if(f|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[e+(f+-1)>>0]|0)==10&1;TL(e,f,1,c[42008]|0)|0;continue a}}}switch(m|0){case 27:{e=c[42010]|0;if(!e)l=-1;else{c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;l=-1}break}case 53:{e=c[42010]|0;if(!e)l=259;else{c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;l=259}break}case 55:{e=c[42010]|0;if(!e)l=260;else{c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;l=260}break}case 57:{e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;if(!(c[42014]|0)){c[42014]=258;l=258}else l=258;break}case 61:{e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;if(!(c[42014]|0)){c[42014]=261;l=261}else l=261;break}case 65:{e=c[42010]|0;if(!e)l=263;else{c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;l=263}break}case 67:{e=c[42010]|0;if(!e)l=262;else{c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;l=262}break}case 69:{e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;l=(c[42014]|0)==261?264:45;break}case 72:{e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;l=(c[42014]|0)==258?264:45;break}case 75:{f=c[42010]|0;e=c[42009]|0;if(f|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[e+(f+-1)>>0]|0)==10&1;c[42037]=_o(c[41987]|0,e)|0;l=267;break}case 78:{e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;if(kp()|0){m=(c[42010]|0)+-1|0;a[f>>0]=a[173923]|0;n=j+m|0;c[42018]=n;c[42009]=j;c[42010]=m;a[173923]=a[n>>0]|0;a[n>>0]=0;c[42018]=n}c[42037]=_o(c[41987]|0,c[42009]|0)|0;l=267;break}case 86:{e=c[42010]|0;if(e|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[(c[42009]|0)+(e+-1)>>0]|0)==10&1;c[42016]=1;mp();l=268;break}case 108:{c[42016]=1;op();l=268;break}case 118:{f=c[42010]|0;e=c[42009]|0;if(f|0)c[(c[c[42017]>>2]|0)+28>>2]=(a[e+(f+-1)>>0]|0)==10&1;l=a[e>>0]|0;break}case 134:{sp(81582);break}}return l|0}function gp(){var a=0,b=0,d=0;b=c[42017]|0;do if(!b){a=zp(4)|0;c[42017]=a;if(!a)sp(81940);else{c[a>>2]=0;a=1;d=9;break}}else{a=c[42028]|0;if(0>=(a+-1|0)>>>0){a=a+8|0;b=tp(b,a<<2)|0;c[42017]=b;if(!b)sp(81940);else{d=b+(c[42028]<<2)|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;d=9;break}}}while(0);if((d|0)==9)c[42028]=a;return}function hp(a,b){a=a|0;b=b|0;var d=0;d=zp(48)|0;if(!d)sp(81895);c[d+12>>2]=b;b=zp(b+2|0)|0;c[d+4>>2]=b;if(!b)sp(81895);else{c[d+20>>2]=1;vp(d,a);return d|0}return 0}function ip(){var b=0,d=0;d=c[42017]|0;b=c[d>>2]|0;c[42022]=c[b+16>>2];b=c[b+8>>2]|0;c[42018]=b;c[42009]=b;c[42007]=c[c[d>>2]>>2];a[173923]=a[b>>0]|0;return}function jp(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=l;l=l+32|0;f=g;d=g+16|0;e=g+12|0;h=c[42009]|0;b=h+1|0;i=(SJ(b,81879,4)|0)==0;b=i?h+5|0:b;c[f>>2]=e;c[f+4>>2]=g+20;c[f+8>>2]=d;f=_L(b,81884,f)|0;if((f|0)>0?(c[4489]=(c[e>>2]|0)+-1,(f|0)!=1):0){d=b+(c[d>>2]|0)|0;b=d;a:while(1){e=a[b>>0]|0;switch(e<<24>>24){case 0:case 34:break a;default:{}}b=b+1|0}if((b|0)!=(d|0)&e<<24>>24==34){a[b>>0]=0;yp(d,b-d|0)}}l=g;return}function kp(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+2080|0;i=j+8|0;f=j;b=j+1056|0;d=j+32|0;h=j+16|0;k=a[(c[42009]|0)+((c[42010]|0)+-1)>>0]|0;e=k<<24>>24==46;if(e|((k&255)+-48|0)>>>0<10)if(e?(xp()|0)!=0:0)g=4;else b=0;else g=4;if((g|0)==4){k=c[42011]|0;bm(h,1024,b);em(h,81790)|0;em(h,c[42009]|0)|0;c[f>>2]=c[4489];lL(d,81834,f)|0;em(h,d)|0;em(h,(k|0)==0?81784:k)|0;em(h,81851)|0;d=h+4|0;b=c[d>>2]|0;if(b>>>0>=(c[h+8>>2]|0)>>>0){cm(h,1)|0;b=c[d>>2]|0}a[b>>0]=0;b=c[h>>2]|0;c[d>>2]=b;c[i>>2]=b;Zl(0,81876,i)|0;fm(h);b=1}l=j;return b|0}function lp(){var b=0;b=c[42023]|0;if(!b){b=WI(1024)|0;c[42023]=b;c[42025]=b+1024}c[42024]=b;a[b>>0]=0;return}function mp(){c[42037]=_o(c[41987]|0,c[42023]|0)|0;a[c[42023]>>0]=0;return}function np(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[42024]|0;d=c[42023]|0;if(e>>>0>d>>>0){e=e+-1|0;f=3}a:while(1){if((f|0)==3)c[42024]=e;f=c[42025]|0;g=f;do{h=b;b=b+1|0;h=a[h>>0]|0;i=e;e=e+1|0;a[i>>0]=h;if(!(h<<24>>24))break a}while(e>>>0<f>>>0);c[42024]=e;f=d;i=g-f<<1;d=ZI(d,i)|0;c[42023]=d;c[42025]=d+i;e=d+(e-f)|0;f=3}c[42024]=e;return}function op(){c[42037]=$o(c[41987]|0,c[42023]|0)|0;a[c[42023]>>0]=0;return}function pp(){var d=0,e=0,f=0,g=0,h=0;h=c[42018]|0;g=c[42009]|0;e=(c[(c[c[42017]>>2]|0)+28>>2]|0)+(c[42016]|0)|0;while(1){if(g>>>0>=h>>>0)break;d=a[g>>0]|0;if(!(d<<24>>24))d=1;else d=c[17960+((d&255)<<2)>>2]|0;if(b[56680+(e<<1)>>1]|0){c[42019]=e;c[42020]=g}a:while(1){f=d&255;do{d=f+(b[56866+(e<<1)>>1]|0)|0;if((e|0)==(b[57076+(d<<1)>>1]|0))break a;d=b[57612+(e<<1)>>1]|0;e=d<<16>>16}while(d<<16>>16<=92);d=c[18984+(f<<2)>>2]|0}g=g+1|0;e=b[57822+(d<<1)>>1]|0}return e|0}function qp(a){a=a|0;var d=0;if(b[56680+(a<<1)>>1]|0){d=c[42018]|0;c[42019]=a;c[42020]=d}while(1){d=(b[56866+(a<<1)>>1]|0)+1|0;if((a|0)==(b[57076+(d<<1)>>1]|0))break;a=b[57612+(a<<1)>>1]|0}d=b[57822+(d<<1)>>1]|0;return (d<<16>>16==92?0:d<<16>>16)|0}function rp(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=c[42017]|0;g=c[j>>2]|0;i=c[g+4>>2]|0;f=c[42009]|0;l=c[42018]|0;k=l;if(l>>>0>(i+((c[42022]|0)+1)|0)>>>0)sp(81637);h=k-f|0;if(!(c[g+40>>2]|0))b=(h|0)==1?1:2;else{l=h+-1|0;h=i;g=0;while(1){if((g|0)>=(l|0))break;a[h>>0]=a[f>>0]|0;h=h+1|0;f=f+1|0;g=g+1|0}f=c[j>>2]|0;do if((c[f+44>>2]|0)==2){c[42022]=0;c[f+16>>2]=0;e=f;m=17}else{while(1){i=f+12|0;h=c[i>>2]|0;g=h-l+-1|0;if(g|0){m=16;break}g=f+4|0;j=c[g>>2]|0;if(!(c[f+20>>2]|0)){m=12;break}f=h<<1;f=(f|0)==0?(h>>>3)+h|0:f;c[i>>2]=f;f=tp(j,f+2|0)|0;c[g>>2]=f;if(!f)break;j=f+(k-j)|0;c[42018]=j;f=c[c[42017]>>2]|0;k=j}if((m|0)==12)c[g>>2]=0;else if((m|0)==16){d=bb[c[c[(c[42012]|0)+8>>2]>>2]&31](c[42013]|0,(c[f+4>>2]|0)+l|0,g>>>0<8192?g:8192)|0;e=c[c[42017]>>2]|0;c[42022]=d;c[e+16>>2]=d;if(!d){m=17;break}else{b=0;break}}sp(81693)}while(0);do if((m|0)==17)if(!l){up(c[42007]|0);b=1;d=c[42022]|0;e=c[c[42017]>>2]|0;break}else{c[e+44>>2]=2;b=2;d=0;break}while(0);f=d+l|0;do if(f>>>0>(c[e+12>>2]|0)>>>0){m=tp(c[e+4>>2]|0,f+(d>>>1)|0)|0;d=c[42017]|0;c[(c[d>>2]|0)+4>>2]=m;d=c[(c[d>>2]|0)+4>>2]|0;if(!d)sp(81737);else{n=c[42022]|0;o=d;break}}else{n=d;o=c[e+4>>2]|0}while(0);n=n+l|0;c[42022]=n;a[o+n>>0]=0;o=c[42017]|0;a[(c[(c[o>>2]|0)+4>>2]|0)+((c[42022]|0)+1)>>0]=0;c[42009]=c[(c[o>>2]|0)+4>>2]}return b|0}function sp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=c[13918]|0;c[b>>2]=a;vL(d,81633,b)|0;Ma(2)}function tp(a,b){a=a|0;b=b|0;return ZI(a,b)|0}function up(a){a=a|0;var b=0,d=0,e=0;d=c[42017]|0;if((d|0)!=0?(b=c[d>>2]|0,(b|0)!=0):0)e=4;else{gp();b=hp(c[42007]|0,16384)|0;d=c[42017]|0;c[d>>2]=b;if(!d)b=0;else e=4}vp(b,a);ip();return}function vp(a,b){a=a|0;b=b|0;var d=0;d=c[(gJ()|0)>>2]|0;wp(a);c[a>>2]=b;c[a+40>>2]=1;b=c[42017]|0;if(!b)b=0;else b=c[b>>2]|0;if((b|0)!=(a|0)){c[a+32>>2]=1;c[a+36>>2]=0}c[a+24>>2]=0;c[(gJ()|0)>>2]=d;return}function wp(b){b=b|0;var d=0;if(b|0){c[b+16>>2]=0;d=b+4|0;a[c[d>>2]>>0]=0;a[(c[d>>2]|0)+1>>0]=0;c[b+8>>2]=c[d>>2];c[b+28>>2]=1;c[b+44>>2]=0;d=c[42017]|0;if(!d)d=0;else d=c[d>>2]|0;if((d|0)==(b|0))ip()}return}function xp(){var b=0,d=0;d=c[42009]|0;b=(c[42010]|0)+-2|0;while(1){if((b|0)<=-1){b=0;break}if((a[d+b>>0]|0)==46){b=1;break}else b=b+-1|0}return b|0}function yp(a,b){a=a|0;b=b|0;var d=0;d=c[42026]|0;if((d|0)<(b|0)){if(!d)d=WI(b+1|0)|0;else d=ZI(c[42027]|0,b+1|0)|0;c[42027]=d;c[42026]=b}else d=c[42027]|0;tK(d,a)|0;c[42011]=c[42027];return}function zp(a){a=a|0;return WI(a)|0}function Ap(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+2112|0;k=m+32|0;i=m+24|0;h=m+16|0;g=m+8|0;f=m;d=m+56|0;j=m+40|0;bm(j,1024,m+1080|0);e=c[42011]|0;if(e|0){em(j,e)|0;em(j,81990)|0}em(j,b)|0;c[f>>2]=c[4489];lL(d,81993,f)|0;em(j,d)|0;a:do if(!(a[c[42009]>>0]|0))switch(((c[42016]|0)+-1|0)/2|0|0){case 2:{c[g>>2]=16384;lL(d,82013,g)|0;em(j,d)|0;b=c[42023]|0;if(!(a[b>>0]|0))break a;i=oJ(b)|0;em(j,82075)|0;b=c[42023]|0;if((i|0)>80)a[b+80>>0]=0;em(j,b)|0;break a}case 3:{c[h>>2]=16384;lL(d,82094,h)|0;em(j,d)|0;b=c[42023]|0;if(!(a[b>>0]|0))break a;i=oJ(b)|0;em(j,82162)|0;b=c[42023]|0;if((i|0)>80)a[b+80>>0]=0;em(j,b)|0;break a}case 1:{c[i>>2]=16384;lL(d,82181,i)|0;em(j,d)|0;break a}default:break a}else{em(j,82005)|0;em(j,c[42009]|0)|0;d=j+4|0;b=c[d>>2]|0;if(b>>>0>=(c[j+8>>2]|0)>>>0){cm(j,1)|0;b=c[d>>2]|0}c[d>>2]=b+1;a[b>>0]=39}while(0);e=j+4|0;b=c[e>>2]|0;d=j+8|0;if(b>>>0>=(c[d>>2]|0)>>>0){cm(j,1)|0;b=c[e>>2]|0}c[e>>2]=b+1;a[b>>0]=10;b=c[e>>2]|0;if(b>>>0>=(c[d>>2]|0)>>>0){cm(j,1)|0;b=c[e>>2]|0}a[b>>0]=0;i=c[j>>2]|0;c[e>>2]=i;c[k>>2]=i;Zl(1,81876,k)|0;fm(j);l=m;return}function Bp(){Cp(c[42009]|0);return}function Cp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=c[42018]|0;a[j>>0]=a[173923]|0;i=c[42017]|0;e=c[i>>2]|0;d=c[e+4>>2]|0;if(j>>>0<(d+2|0)>>>0){f=d+((c[42022]|0)+2)|0;g=d+((c[e+12>>2]|0)+2)|0;k=d;h=e;while(1){if(f>>>0<=k>>>0)break;e=f+-1|0;k=g+-1|0;a[k>>0]=a[e>>0]|0;h=c[i>>2]|0;f=e;g=k;k=c[h+4>>2]|0}e=g-f|0;d=j+e|0;j=c[h+12>>2]|0;c[42022]=j;c[h+16>>2]=j;if(d>>>0<(k+2|0)>>>0)sp(82240);else{l=b+e|0;m=d}}else{l=b;m=j}b=m+-1|0;a[b>>0]=64;c[42009]=l;a[173923]=a[b>>0]|0;c[42018]=b;return}function Dp(){var a=0;a=c[42017]|0;if(!a)a=0;else a=c[a>>2]|0;wp(a);return}function Ep(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+80|0;f=e;g=a+52|0;Qp(a,c[g>>2]|0,17604);a=f+8|0;c[a>>2]=b;c[a+4>>2]=d;d=c[g>>2]|0;d=bb[c[d>>2]&31](d,f,4)|0;l=e;return d|0}function Fp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ep(b,d,e)|0;if(!f){f=Xn(b,72)|0;c[f+64>>2]=c[b+64>>2];g=f+24|0;h=c[b+24>>2]|0;c[g>>2]=h;a[g>>0]=h&255&-9;c[f+56>>2]=b;c[f+60>>2]=c[b+60>>2];b=f+8|0;c[b>>2]=d;c[b+4>>2]=e;hn(f)|0}return f|0}function Gp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;if(!(((b|0)!=0?(zn(a,0,b,f,0)|0)!=0:0)?(e=f,e=Ep(a,c[e>>2]|0,c[e+4>>2]|0)|0,(e|0)!=0):0))if((d|0)!=0?(zn(a,0,b,f,1)|0)!=0:0){e=f;e=Fp(a,c[e>>2]|0,c[e+4>>2]|0)|0;Dn(a,0,e)}else e=0;l=g;return e|0}function Hp(a){a=a|0;a=c[a+52>>2]|0;return bb[c[a>>2]&31](a,0,128)|0}function Ip(a){a=a|0;var b=0;b=Jp(a)|0;if(!b)a=0;else{b=c[b+52>>2]|0;a=bb[c[b>>2]&31](b,a,8)|0}return a|0}function Jp(a){a=a|0;return c[a+56>>2]|0}function Kp(a,b){a=a|0;b=b|0;a=c[a+52>>2]|0;return bb[c[a>>2]&31](a,b,2)|0}function Lp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[42029]|0;e=(b|0)!=0;do if(!a)if(e){XI(b);a=0;break}else{a=WI(d)|0;break}else if(e){Yn(a,b);a=0;break}else{a=Xn(a,d)|0;break}while(0);return a|0}function Mp(a,b,d){a=a|0;b=b|0;d=d|0;a=c[42029]|0;if(!a)XI(b);else Yn(a,b);return}function Np(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b+28|0;f=c[e>>2]|0;c[e>>2]=2;c[42029]=a;d=Pl(b,d)|0;c[e>>2]=f;c[42029]=0;return d|0}function Op(a,b,d){a=a|0;b=b|0;d=d|0;c[42029]=a;return bb[c[b>>2]&31](b,d,2)|0}function Pp(a,b){a=a|0;b=b|0;var d=0,e=0;d=(Kl(b,0,0)|0)+28|0;e=c[d>>2]|0;c[d>>2]=2;c[42029]=a;if(!(Jl(b)|0)){c[d>>2]=e;c[42029]=0;a=0}else a=1;return a|0}function Qp(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0?(Kl(b,0,0)|0)!=(c|0):0)Kl(b,c,0)|0;return}function Rp(a,b){a=a|0;b=b|0;if(!(bp(a)|0))b=Tp(a,b)|0;else Sp(a,b)|0;return b|0}function Sp(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a[c>>0]=60;e=c;while(1){d=e+1|0;f=a[b>>0]|0;if(!(f<<24>>24))break;a[d>>0]=f;b=b+1|0;e=d}a[d>>0]=62;a[e+2>>0]=0;return c|0}function Tp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((b|0)!=0?(a[b>>0]|0)!=0:0){a[d>>0]=34;l=a[b>>0]|0;q=0;g=((l+-45&255)<2|((l&255)+-48|0)>>>0<10)&1;h=0;i=0;j=0;e=d+1|0;f=b+1|0;b:while(1){k=e;while(1){if(!(l<<24>>24))break b;e=l&255;c:do if(l<<24>>24==34){a[k>>0]=92;m=g;n=1;k=k+1|0}else{if(!g){n=l<<24>>24>-1&(l<<24>>24!=95&(cK(e)|0)==0);m=0;n=n?1:h;break}switch(l<<24>>24){case 45:{n=(j|0)==0;m=n?g:0;n=n?h:1;break c}case 46:{n=(i|0)==0;m=n?g:0;n=n?h:1;i=i+1|0;break c}default:{n=(e+-48|0)>>>0<10;m=n?g:0;n=n?h:1;break c}}}while(0);e=k+1|0;a[k>>0]=l;p=f+1|0;o=a[f>>0]|0;j=j+1|0;f=c[4795]|0;if(!f){g=m;h=n;k=e;f=p;l=o;continue}g=o&255;h=o<<24>>24!=0;if((q&h?!(l<<24>>24==92|l<<24>>24>-1&((l+-45&255)>1&(cK(l<<24>>24)|0)==0)^1):0)?!(o<<24>>24>-1&((o+-45&255)>1&(cK(g)|0)==0)):0)break;if((j|0)<(f|0)|h^1){g=m;h=n;k=e;f=p;l=o;continue}if(l<<24>>24==92|l<<24>>24>-1&((cK(l<<24>>24)|0)==0&(l+-45&255)>1)^1){q=1;g=m;h=n;l=o;f=p;continue b}if(o<<24>>24>-1&((o+-45&255)>1&(cK(g)|0)==0)){q=1;g=m;h=n;l=o;f=p;continue b}a[e>>0]=92;a[k+2>>0]=10;g=m;h=1;j=0;k=k+3|0;f=p;l=o}a[e>>0]=92;a[k+2>>0]=10;q=0;g=m;h=1;j=0;l=o;e=k+3|0;f=p}a[k>>0]=34;a[k+1>>0]=0;if(!h){if((j|0)==1?((a[b>>0]|0)+-45&255)<2:0){b=d;break}else e=19184;while(1){f=c[e>>2]|0;if(!f)break a;if(!(eK(f,b)|0)){b=d;break}else e=e+4|0}}else b=d}else b=82272;while(0);return b|0}function Up(a){a=a|0;return Rp(a,Vp(a)|0)|0}function Vp(a){a=a|0;var b=0;b=((oJ(a)|0)<<1)+2|0;b=b>>>0>1024?b:1024;a=c[42031]|0;if(b>>>0>(c[42030]|0)>>>0){if(!a)a=WI(b)|0;else a=ZI(a,b)|0;c[42031]=a;c[42030]=b}return a|0}function Wp(a,b){a=a|0;b=b|0;a=Hp(a)|0;while(1){if(!a){a=0;break}if((Xp(a)|0)==0?ho(a,b,0)|0:0){a=1;break}a=Ip(a)|0}return a|0}function Xp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=Cn(b)|0;if((h|0)!=0?(a[h>>0]|0)!=37:0)d=0;else e=3;a:do if((e|0)==3){d=nm(b)|0;b:do if(d|0?(f=nm(Jp(b)|0)|0,f|0):0){h=Rl(c[(nm(ro(b)|0)|0)+8>>2]|0)|0;g=d+12|0;e=f+12|0;d=0;while(1){if((d|0)>=(h|0))break b;f=c[(c[g>>2]|0)+(d<<2)>>2]|0;if((f|0?(i=c[(c[e>>2]|0)+(d<<2)>>2]|0,i|0):0)?uJ(f,i)|0:0){d=0;break a}d=d+1|0}}while(0);d=im(b,0)|0;if(d)if((Rl(c[d+8>>2]|0)|0)>0)d=0;else return (Rl(c[d+12>>2]|0)|0)<1|0;else d=1}while(0);return d|0}function Yp(b,d){b=b|0;d=d|0;var e=0,f=0;c[42032]=0;e=Hm(b,82282)|0;if((e|0?((a[e>>0]|0)+-48|0)>>>0<10:0)?(f=xL(e,0,10)|0,(f|0)==0|(f|0)>59):0)c[4795]=f;Zp(b,1);if(((_p(b,d,1)|0)!=-1?($p(b,d)|0)!=-1:0)?(aq(b,d)|0)!=-1:0){c[4795]=128;b=$a[c[(c[(c[b+64>>2]|0)+8>>2]|0)+8>>2]&31](d)|0}else b=-1;return b|0}function Zp(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[a>>2]&-9;d=Hp(a)|0;while(1){if(!d)break;Zp(d,0);d=Ip(d)|0}a:do if(b|0){b=bo(a)|0;while(1){if(!b)break a;c[b>>2]=c[b>>2]&-9;d=Om(a,b)|0;while(1){if(!d)break;c[d>>2]=c[d>>2]&-9;d=Qm(a,d)|0}b=co(a,b)|0}}while(0);return}function _p(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;if((e|0)==0?(Jp(b)|0)!=0:0){i=0;g=174177;k=94280}else{k=(a[b+24>>0]&1)==0?174177:82326;g=(rn(b)|0)==0;c[42033]=xm(b,2,96242,0)|0;c[42034]=xm(b,2,96251,0)|0;i=1;g=g?174177:82329}f=Cn(b)|0;if((f|0)!=0?(a[f>>0]|0)!=37:0){h=1;j=87582}else{h=0;j=174177;f=174177}do if((bq(b,d)|0)!=-1?(cq(b,d,g)|0)!=-1:0){g=(h|0)==0;if(h|i|0){if((cq(b,d,k)|0)==-1){f=-1;break}if((cq(b,d,87575)|0)==-1){f=-1;break}}if(!g?(nq(b,d,f)|0)==-1:0){f=-1;break}if(((cq(b,d,j)|0)!=-1?(cq(b,d,82337)|0)!=-1:0)?(c[42032]=(c[42032]|0)+1,(sq(b,d,e)|0)!=-1):0){c[b>>2]=c[b>>2]|8;f=0}else f=-1}else f=-1;while(0);return f|0}function $p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:do if((dq(a,b)|0)==-1)d=-1;else{k=im(ro(a)|0,0)|0;i=(k|0)==0;j=k+12|0;k=k+8|0;h=bo(a)|0;while(1){if(!h){d=0;break a}if(eq(a,h,(c[h>>2]|0)>>>4,0)|0){if(i)d=0;else d=c[k>>2]|0;if((fq(h,b,d)|0)==-1){d=-1;break a}}g=Om(a,h)|0;d=h;while(1){if(!g)break;f=g+-48|0;e=c[((c[g>>2]&3|0)==2?g:f)+40>>2]|0;if((d|0)!=(e|0)?(eq(a,e,(c[h>>2]|0)>>>4,0)|0)!=0:0){if(i)d=0;else d=c[k>>2]|0;if((fq(c[((c[g>>2]&3|0)==2?g:f)+40>>2]|0,b,d)|0)==-1){d=-1;break a}d=c[((c[g>>2]&3|0)==2?g:f)+40>>2]|0}if(gq(a,g)|0){if(i)e=0;else e=c[j>>2]|0;if((hq(g,b,e)|0)==-1){d=-1;break a}}g=Qm(a,g)|0}h=co(a,h)|0}}while(0);return d|0}function aq(a,b){a=a|0;b=b|0;c[42032]=(c[42032]|0)+-1;if((bq(a,b)|0)==-1)a=-1;else a=((cq(a,b,95774)|0)==-1)<<31>>31;return a|0}function bq(a,b){a=a|0;b=b|0;var d=0;d=c[42032]|0;while(1){if((d|0)<=0){d=0;break}if((cq(a,b,134899)|0)==-1){d=-1;break}else d=d+-1|0}return d|0}function cq(a,b,d){a=a|0;b=b|0;d=d|0;return ab[c[(c[(c[a+64>>2]|0)+8>>2]|0)+4>>2]&63](b,d)|0}function dq(a,b){a=a|0;b=b|0;a=Hp(a)|0;while(1){if(!a){a=0;break}if(!(Xp(a)|0)){if((_p(a,b,0)|0)==-1){a=-1;break}if(($p(a,b)|0)==-1){a=-1;break}if((aq(a,b)|0)==-1){a=-1;break}}else dq(a,b)|0;a=Ip(a)|0}return a|0}function eq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if((Wp(a,b)|0)==0?(pq(a,b,c,d)|0)!=0:0)if((qq(a,b)|0)==0?(rq(b)|0)==0:0)e=5;else a=1;else e=5;if((e|0)==5)a=0;return a|0}function fq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=qo(a)|0;do if((bq(d,b)|0)!=-1?(iq(a,b)|0)!=-1:0){if((kq(a)|0)==0?(lq(a,b,c)|0)==-1:0){a=-1;break}a=cq(d,b,82293)|0}else a=-1;while(0);return a|0}function gq(a,b){a=a|0;b=b|0;a=Hp(a)|0;while(1){if(!a){a=1;break}if((Xp(a)|0)==0?dn(a,b,0)|0:0){a=0;break}a=Ip(a)|0}return a|0}function hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]&3;g=c[((e|0)==3?a:a+48|0)+40>>2]|0;e=c[((e|0)==2?a:a+-48|0)+40>>2]|0;f=qo(g)|0;do if((((((bq(f,b)|0)!=-1?(iq(g,b)|0)!=-1:0)?(jq(a,b,c[42033]|0)|0)!=-1:0)?(g=(pn(qo(g)|0)|0)!=0,(cq(f,b,g?85039:85044)|0)!=-1):0)?(iq(e,b)|0)!=-1:0)?(jq(a,b,c[42034]|0)|0)!=-1:0){if(!(kq(a)|0)){if((lq(a,b,d)|0)==-1){a=-1;break}}else if((mq(a,b,1)|0)==-1){a=-1;break}a=cq(f,b,82293)|0}else a=-1;while(0);return a|0}function iq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;g=i;d=i+8|0;e=Cn(a)|0;f=qo(a)|0;if(!e){j=a+8|0;a=c[j+4>>2]|0;e=g;c[e>>2]=c[j>>2];c[e+4>>2]=a;lL(d,82313,g)|0;if((cq(f,b,d)|0)==-1)a=-1;else h=4}else if((nq(f,b,e)|0)==-1)a=-1;else h=4;if((h|0)==4)a=0;l=i;return a|0}function jq(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((d|0)!=0?(e=qo(b)|0,f=Im(b,d)|0,(a[f>>0]|0)!=0):0)if((cq(e,c,92961)|0)==-1)b=-1;else{do if(bp(f)|0){if((nq(e,c,f)|0)==-1){b=-1;break a}}else{b=TJ(f,58)|0;if(!b)if((oq(e,c,f,0)|0)==-1){b=-1;break a}else break;a[b>>0]=0;if((oq(e,c,f,0)|0)==-1){b=-1;break a}if((cq(e,c,92961)|0)==-1){b=-1;break a}if((oq(e,c,b+1|0,0)|0)==-1){b=-1;break a}a[b>>0]=58}while(0);b=0}else b=0;while(0);return b|0}function kq(a){a=a|0;return (c[a>>2]|0)>>>3&1|0}function lq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:do if(!(c[a>>2]&2)){e=0;k=4}else{switch(mq(a,b,0)|0){case -1:{e=-1;break a}case 0:{e=0;k=4;break a}default:{}}e=1;k=4}while(0);b:do if((k|0)==4){f=nm(a)|0;j=qo(a)|0;c:do if(f){i=f+12|0;h=bb[c[d>>2]&31](d,0,128)|0;while(1){if(!h)break c;do if(c[a>>2]&2){g=c[42033]|0;if(g|0?(c[h+16>>2]|0)==(c[g+16>>2]|0):0)break;g=c[42034]|0;if(!((g|0)!=0?(c[h+16>>2]|0)==(c[g+16>>2]|0):0))k=12}else k=12;while(0);if((k|0)==12){k=0;f=h+16|0;if((c[(c[i>>2]|0)+(c[f>>2]<<2)>>2]|0)!=(c[h+12>>2]|0)){g=e+1|0;if(e){if((cq(j,b,82308)|0)==-1){e=-1;break b}if((bq(j,b)|0)==-1){e=-1;break b}}else{if((bq(j,b)|0)==-1){e=-1;break b}if((cq(j,b,82305)|0)==-1){e=-1;break b}c[42032]=(c[42032]|0)+1}if((nq(j,b,c[h+8>>2]|0)|0)==-1){e=-1;break b}if((cq(j,b,82311)|0)==-1){e=-1;break b}if((nq(j,b,c[(c[i>>2]|0)+(c[f>>2]<<2)>>2]|0)|0)==-1){e=-1;break b}else e=g}}h=bb[c[d>>2]&31](d,h,8)|0}}while(0);if((e|0)>0){if((cq(j,b,82303)|0)==-1){e=-1;break}c[42032]=(c[42032]|0)+-1}c[a>>2]=c[a>>2]|8;e=0}while(0);return e|0}function mq(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;e=Cn(b)|0;b=qo(b)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0)if((cq(b,c,82296)|0)!=-1?(nq(b,c,e)|0)!=-1:0)if((d|0)!=0?(cq(b,c,82303)|0)==-1:0)b=-1;else{b=1;f=7}else b=-1;else{b=0;f=7}return b|0}function nq(a,b,c){a=a|0;b=b|0;c=c|0;return oq(a,b,c,1)|0}function oq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!d)c=Tp(c,Vp(c)|0)|0;else c=Up(c)|0;return cq(a,b,c)|0}function pq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a:do if(0<e>>>0|(0==(e|0)?(c[b>>2]|0)>>>4>>>0<d>>>0:0))b=0;else{b=Rm(a,b)|0;while(1){if(!b){b=1;break a}if(0<e>>>0|(0==(e|0)?(c[c[b+40>>2]>>2]|0)>>>4>>>0<d>>>0:0)){b=0;break a}b=Sm(a,b)|0}}while(0);return b|0}function qq(a,b){a=a|0;b=b|0;if(!(Rm(a,b)|0))a=(Om(a,b)|0)==0&1;else a=0;return a|0}function rq(a){a=a|0;var b=0,d=0,e=0;a=nm(a)|0;a:do if(!a)a=0;else{d=a+8|0;e=c[d>>2]|0;b=a+12|0;a=bb[c[e>>2]&31](e,0,128)|0;while(1){if(!a){a=0;break a}if((c[(c[b>>2]|0)+(c[a+16>>2]<<2)>>2]|0)!=(c[a+12>>2]|0)){a=1;break a}e=c[d>>2]|0;a=bb[c[e>>2]&31](e,a,8)|0}}while(0);return a|0}function sq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=im(a,0)|0;if(e)if(((tq(a,b,96286,c[e+16>>2]|0,d)|0)!=-1?(tq(a,b,96273,c[e+8>>2]|0,d)|0)!=-1:0)?(tq(a,b,96237,c[e+12>>2]|0,d)|0)!=-1:0)f=5;else a=-1;else f=5;if((f|0)==5)a=0;return a|0}function tq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=(g|0)!=0;if(m)l=0;else l=Vl(f,0)|0;k=(l|0)==0;j=bb[c[f>>2]&31](f,0,128)|0;g=0;while(1){if(!j){n=23;break}i=j+12|0;n=c[i>>2]|0;if((n|0)!=0?(a[n>>0]|0)!=0:0)n=12;else n=7;do if((n|0)==7){n=0;if(!(a[j+22>>0]|0)){if(!k){h=bb[c[l>>2]&31](l,j,4)|0;o=c[h+12>>2]|0;if(o|0?a[o>>0]|0:0){n=12;break}if(!(a[h+22>>0]|0))n=12}}else n=12}while(0);if((n|0)==12){n=0;h=g+1|0;if(g){if((cq(b,d,82308)|0)==-1){g=-1;break}if((bq(b,d)|0)==-1){g=-1;break}}else{if((bq(b,d)|0)==-1){g=-1;break}if((cq(b,d,e)|0)==-1){g=-1;break}if((cq(b,d,82305)|0)==-1){g=-1;break}c[42032]=(c[42032]|0)+1}if((nq(b,d,c[j+8>>2]|0)|0)==-1){g=-1;break}if((cq(b,d,82311)|0)==-1){g=-1;break}if((nq(b,d,c[i>>2]|0)|0)==-1){g=-1;break}else g=h}j=bb[c[f>>2]&31](f,j,8)|0}do if((n|0)==23){if((g|0)>0){c[42032]=(c[42032]|0)+-1;if((g|0)!=1){if((cq(b,d,134901)|0)==-1){g=-1;break}if((bq(b,d)|0)==-1){g=-1;break}}g=(cq(b,d,82340)|0)==-1;if(m|g){g=g<<31>>31;break}}else if(m){g=0;break}Vl(f,l)|0;g=0}while(0);return g|0}function uq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;switch(c[b>>2]&3){case 0:{g=19;break}case 1:{g=20;break}case 3:case 2:{g=21;break}default:{}}b=ab[g&63](a,b)|0;if(!b)b=-1;else{yq(a,b,d,e,g,f);b=0}return b|0}function vq(a,b){a=a|0;b=b|0;if((qo(b)|0)!=(a|0))b=dn(a,b,0)|0;return b|0}function wq(a,b){a=a|0;b=b|0;if((qo(b)|0)!=(a|0))b=ho(a,b,0)|0;return b|0}function xq(a,b){a=a|0;b=b|0;return a|0}function yq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=(f|0)!=0;if(h)ib[c&127](a,b,d);g=Hp(a)|0;while(1){if(!g)break;i=ab[e&63](g,b)|0;if(i|0)yq(g,i,c,d,e,f);g=Ip(g)|0}if(!h)ib[c&127](a,b,d);return}function zq(){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+1200|0;r=t+800|0;g=t;c[42035]=0;c[42036]=-2;f=r;i=200;n=g;p=0;q=0;o=r;a:while(1){b[o>>1]=p;if((f+(i<<1)+-2|0)>>>0>o>>>0)k=i;else{m=o-f>>1;e=m+1|0;if(i>>>0>9999){s=75;break}k=i<<1;k=k>>>0<1e4?k:1e4;h=WI(k*6|3)|0;if(h){PN(h|0,f|0,e<<1|0)|0;i=h+(k>>>1<<2)|0;PN(i|0,n|0,e<<2|0)|0;if((f|0)==(r|0)){e=0;f=h}else{XI(f);e=0;f=h}}else{e=4;i=n}j=(e|0)==0;h=f+(m<<1)|0;switch((j?((f+(k<<1)+-2|0)>>>0>h>>>0?0:9):e)&15){case 9:{e=1;s=76;break a}case 4:{s=75;break a}case 0:{g=j?i+(m<<2)|0:g;n=i;o=j?h:o;break}default:{e=0;break a}}}if((p|0)==6){e=0;s=76;break}e=a[82344+p>>0]|0;j=e<<24>>24;do if(e<<24>>24!=-18){h=c[42036]|0;if((h|0)==-2){h=fp()|0;c[42036]=h}if((h|0)>=1)if(h>>>0<269)i=d[82424+h>>0]|0;else i=2;else{c[42036]=0;i=0}h=i+j|0;if(h>>>0<=59?(i|0)==(d[82693+h>>0]|0):0){p=a[82753+h>>0]|0;e=p<<24>>24;if(p<<24>>24<1){h=0-e|0;s=23;break}else{c[42036]=-2;g=g+4|0;c[g>>2]=c[42037];j=(q|0)==0?0:q+-1|0;h=o;break}}else s=22}else s=22;while(0);if((s|0)==22){s=0;p=a[82813+p>>0]|0;h=p&255;if(!(p<<24>>24)){h=c[42036]|0;b:do switch(q|0){case 0:{c[42035]=(c[42035]|0)+1;Ap(125369);h=o;break}case 3:if((h|0)<1)if(!h){e=1;s=76;break a}else{h=o;break b}else{c[42036]=-2;h=o;break b}default:h=o}while(0);while(1){if(e<<24>>24==18)break;if((h|0)==(f|0)){e=1;s=76;break a}e=h+-2|0;g=g+-4|0;h=e;e=a[82344+(b[e>>1]|0)>>0]|0}g=g+4|0;c[g>>2]=c[42037];e=1;j=3}else s=23}do if((s|0)==23){s=0;i=d[82893+h>>0]|0;e=c[g+(1-i<<2)>>2]|0;c:do switch(h|0){case 2:{Aq();Bq();break}case 3:{if(c[42038]|0){Aq();Bq();kn(c[42038]|0)|0;c[41987]=0;c[42038]=0}break}case 6:{Cq(c[g>>2]|0,c[g+-4>>2]|0,c[g+-8>>2]|0);break}case 7:{e=c[g>>2]|0;break}case 8:{e=0;break}case 9:{e=1;break}case 10:{e=0;break}case 11:{e=0;break}case 12:{e=1;break}case 21:if(!(c[g+-4>>2]|0)){Eq();break c}else{Dq();break c}case 24:{Fq();break}case 25:{Fq();break}case 26:{e=1;break}case 27:{e=0;break}case 30:{Gq(c[g>>2]|0,0,0);break}case 31:{Gq(c[g+-8>>2]|0,c[g>>2]|0,0);break}case 32:{Gq(c[g+-16>>2]|0,c[g+-8>>2]|0,c[g>>2]|0);break}case 33:{Hq(c[g+-8>>2]|0,c[g+-4>>2]|0);break}case 34:{Hq(258,0);break}case 35:{e=258;break}case 36:{e=259;break}case 37:{e=260;break}case 38:{e=c[g+-4>>2]|0;break}case 39:{e=0;break}case 48:{Iq(c[g+-8>>2]|0,c[g>>2]|0);break}case 49:{Iq(c[g>>2]|0,0);break}case 51:{Jq(c[g>>2]|0);break}case 52:{Kq();break}case 53:{e=c[g>>2]|0;break}case 54:{e=0;break}case 55:{e=0;break}case 59:{e=c[g>>2]|0;break}case 60:{e=c[g>>2]|0;break}case 61:{e=c[g>>2]|0;break}case 62:{e=Lq(c[g+-8>>2]|0,c[g>>2]|0)|0;break}default:{}}while(0);i=0-i|0;p=g+(i<<2)|0;i=o+(i<<1)|0;g=p+4|0;c[p+4>>2]=e;e=(d[82956+h>>0]|0)+-24|0;p=b[i>>1]|0;h=p+(a[83019+e>>0]|0)|0;if(h>>>0<60?(d[82693+h>>0]|0)==(p|0):0){e=a[82753+h>>0]|0;j=q;h=i;break}e=a[83054+e>>0]|0;j=q;h=i}while(0);i=k;p=e;q=j;o=h+2|0}if((s|0)==75){Ap(125382);e=2;s=76}if((s|0)==76)if((f|0)!=(r|0))XI(f);l=t;return e|0}function Aq(){var a=0,b=0;a=c[42039]|0;while(1){if(!a)break;Tq(a+8|0);Tq((c[42039]|0)+24|0);Tq((c[42039]|0)+16|0);b=Mq(c[42039]|0)|0;c[42039]=b;a=b}return}function Bq(){Bp();Ln(c[42038]|0);return}function Cq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;g=h;f=c[42038]|0;if(!f){a[168160]=d&1|(e&255)<<1&2|a[168160]&-12|8;f=c[42041]|0;a[g>>0]=a[168160]|0;a[g+1>>0]=a[168161]|0;a[g+2>>0]=a[168162]|0;a[g+3>>0]=a[168163]|0;f=fn(b,g,f)|0;c[42038]=f}c[41987]=f;c[42039]=Nq(c[42039]|0,f)|0;ap(0,b)|0;l=h;return}function Dq(){var b=0,d=0,e=0,f=0,g=0,h=0;Sq(2);e=c[42039]|0;f=a[83089]|0;h=0;b=e+24|0;while(1){d=c[b>>2]|0;if(!d)break;if(((c[d>>2]|0)==267?(g=c[d+4>>2]|0,(a[g>>0]|0)==f<<24>>24):0)?(uJ(g,83089)|0)==0:0)b=c[d+8>>2]|0;else b=h;h=b;b=d+12|0}b=e+16|0;a:while(1){e=c[b>>2]|0;b=e+12|0;if(!(c[b>>2]|0))break;d=e+4|0;if((c[e>>2]|0)==262){e=c[d>>2]|0;d=bo(e)|0;while(1){if(!d)continue a;g=ho(c[c[42039]>>2]|0,d,0)|0;_q(g,0,c[b>>2]|0,h);d=co(e,d)|0}}else while(1){d=c[d>>2]|0;if(!d)continue a;_q(c[d+4>>2]|0,c[d+8>>2]|0,c[b>>2]|0,h);d=d+12|0}}Tq((c[42039]|0)+8|0);Tq((c[42039]|0)+16|0);Tq((c[42039]|0)+24|0);c[(c[42039]|0)+4>>2]=0;return}function Eq(){var a=0;Sq(1);a=(c[42039]|0)+8|0;while(1){a=c[a>>2]|0;if(!a)break;Zq(c[a+4>>2]|0);a=a+12|0}Tq((c[42039]|0)+8|0);Tq((c[42039]|0)+24|0);Tq((c[42039]|0)+16|0);c[(c[42039]|0)+4>>2]=0;return}function Fq(){var a=0,b=0;a=c[42039]|0;b=c[a+8>>2]|0;if(!b){b=c[a+4>>2]|0;if(!b)b=0;else{b=Yq(b)|0;a=c[42039]|0}c[a+4>>2]=0}else{b=Xq(b)|0;a=c[42039]|0;c[a+12>>2]=0;c[a+8>>2]=0}if(b|0)Pq(a+16|0,b);return}function Gq(a,b,d){a=a|0;b=b|0;d=d|0;if(d)b=Vq(b,d)|0;d=Wq(mo(c[c[42039]>>2]|0,a,1)|0,b)|0;Pq((c[42039]|0)+8|0,d);ap(c[42038]|0,a)|0;return}function Hq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if(d|0)Rq();d=(c[42039]|0)+24|0;while(1){d=c[d>>2]|0;if(!d)break;if(!(c[d+8>>2]|0))Rq();d=d+12|0}g=(b|0)==260?2:(b|0)==259&1;Sq(g);b=c[42039]|0;d=b+24|0;while(1){f=c[d>>2]|0;if(!f)break;do if((c[f>>2]|0)!=267){d=c[f+4>>2]|0;e=c[b>>2]|0;if(!((a[d+21>>0]|0)!=0&(e|0)==(c[42038]|0))){d=xm(e,g,c[d+8>>2]|0,c[f+8>>2]|0)|0;b=c[42039]|0;if((c[b>>2]|0)!=(c[42038]|0))break}a[d+22>>0]=1}while(0);d=f+12|0}Tq(b+24|0);return}function Iq(a,b){a=a|0;b=b|0;b=Oq(a,b)|0;Pq((c[42039]|0)+24|0,b);return}function Jq(a){a=a|0;var b=0;b=c[42039]|0;c[42039]=Nq(b,Gp(c[b>>2]|0,a,1)|0)|0;ap(c[42038]|0,a)|0;return}function Kq(){var a=0,b=0;a=c[42039]|0;b=c[a>>2]|0;a=Mq(a)|0;c[42039]=a;c[a+4>>2]=b;return}function Lq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+1024|0;f=g;d=oJ(a)|0;d=d+1+(oJ(b)|0)|0;if(d>>>0<1025)d=f;else d=WI(d)|0;tK(d,a)|0;EL(d,b)|0;e=_o(c[42038]|0,d)|0;ap(c[42038]|0,a)|0;ap(c[42038]|0,b)|0;if((d|0)!=(f|0))XI(d);l=g;return e|0}function Mq(a){a=a|0;var b=0;b=c[(c[42039]|0)+32>>2]|0;Yn(c[42038]|0,a);return b|0}function Nq(a,b){a=a|0;b=b|0;var d=0;d=Xn(c[42038]|0,36)|0;c[d+32>>2]=a;c[d>>2]=b;return d|0}function Oq(a,b){a=a|0;b=b|0;return Qq(267,a,b)|0}function Pq(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;if(e|0)c[e+12>>2]=b;c[d>>2]=b;if(!(c[a>>2]|0))c[a>>2]=b;return}function Qq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Xn(c[42038]|0,16)|0;c[e>>2]=a;c[e+4>>2]=b;c[e+8>>2]=d;return e|0}+function AI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;H=l;l=l+112|0;E=H+80|0;D=H+64|0;C=H+48|0;G=4;F=WI(40)|0;c[F>>2]=0;w=H+32|0;x=H+16|0;y=H;A=H+96|0;G=NN(169976,1,F|0,G|0)|0;F=z;o=0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1)e=z;else e=0;a:while(1){if(e|0){e=-2;break}g=a+4|0;o=0;fa(94,c[g>>2]|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}c[42533]=0;c[42534]=0;o=0;fa(95,c[g>>2]<<1|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}m=(c[42536]|0)/2|0;c[42537]=m;c[42538]=m+-1;m=c[g>>2]|0;g=c[a>>2]|0;e=0;f=-1;i=t;while(1){if((e|0)>=(m|0))break;I=+h[g+(e<<4)>>3];v=i>I;u=v?e:f;e=e+1|0;f=u;i=v?I:i}v=g+(f<<4)|0;c[x>>2]=c[v>>2];c[x+4>>2]=c[v+4>>2];c[x+8>>2]=c[v+8>>2];c[x+12>>2]=c[v+12>>2];v=g+(((f|0)==0?m:f)+-1<<4)|0;c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];v=g+(((f|0)==(m+-1|0)?0:f+1|0)<<4)|0;c[y>>2]=c[v>>2];c[y+4>>2]=c[v+4>>2];c[y+8>>2]=c[v+8>>2];c[y+12>>2]=c[v+12>>2];I=+h[x>>3];if((+h[w>>3]==I?I==+h[y>>3]:0)?+h[y+8>>3]>+h[x+8>>3]:0)v=15;else v=12;b:do if((v|0)==12){v=0;o=0;e=aa(17,w|0,x|0,y|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,G|0,F|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}if((e|0)==1){g=c[42540]|0;e=c[42541]|0;f=0;while(1){if((f|0)>=(m|0))break b;j=c[a>>2]|0;if(!(((f|0)>0?(B=f+-1|0,+h[j+(f<<4)>>3]==+h[j+(B<<4)>>3]):0)?+h[j+(f<<4)+8>>3]==+h[j+(B<<4)+8>>3]:0)){u=c[42533]|0;c[g+(u<<3)>>2]=j+(f<<4);c[g+(u<<3)+4>>2]=g+(((u|0)%(m|0)|0)<<3);c[e+(u<<2)>>2]=g+(u<<3);c[42533]=u+1}f=f+1|0}}else v=15}while(0);c:do if((v|0)==15){v=0;j=c[42540]|0;e=c[42541]|0;g=m;while(1){f=g+-1|0;if((g|0)<=0)break c;k=c[a>>2]|0;if(((g|0)<(m|0)?+h[k+(f<<4)>>3]==+h[k+(g<<4)>>3]:0)?+h[k+(f<<4)+8>>3]==+h[k+(g<<4)+8>>3]:0){g=f;continue}g=c[42533]|0;c[j+(g<<3)>>2]=k+(f<<4);c[j+(g<<3)+4>>2]=j+(((g|0)%(m|0)|0)<<3);c[e+(g<<2)>>2]=j+(g<<3);c[42533]=g+1;g=f}}while(0);o=0;ga(27,e|0,c[42533]|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}j=0;e=c[42534]|0;d:while(1){if((j|0)>=(e|0)){s=0;break}k=j+1|0;g=k;while(1){if((g|0)>=(e|0)){j=k;continue d}o=0;ga(28,j|0,g|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue a}g=g+1|0;e=c[42534]|0}}while(1){if((s|0)>=(e|0))break;o=0;f=$(39,s|0,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=ON(c[g>>2]|0,G|0,F|0)|0;if(!j)Ua(g|0,p|0);z=p}else j=-1;if((j|0)==1){e=z;continue a}if(f|0)break;s=s+1|0}if((s|0)==(e|0)){e=c[13918]|0;o=0;c[C>>2]=125503;c[C+4>>2]=192;c[C+8>>2]=125514;aa(13,e|0,125484,C|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}else{v=41;break}}u=b+16|0;k=0;while(1){if((k|0)>=(e|0))break;o=0;f=$(39,k|0,u|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=ON(c[g>>2]|0,G|0,F|0)|0;if(!j)Ua(g|0,p|0);z=p}else j=-1;if((j|0)==1){e=z;continue a}if(f|0)break;k=k+1|0}if((k|0)==(e|0)){e=c[13918]|0;o=0;c[D>>2]=125503;c[D+4>>2]=200;c[D+8>>2]=125547;aa(13,e|0,125484,D|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}else{v=48;break}}o=0;e=$(40,s|0,k|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=ON(c[f>>2]|0,G|0,F|0)|0;if(!g)Ua(f|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue}if(!e){e=c[13918]|0;o=0;c[E>>2]=125503;c[E+4>>2]=207;c[E+8>>2]=125585;aa(13,e|0,125484,E|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}o=0;fa(96,2);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}else{v=53;break}}if((s|0)==(k|0)){o=0;fa(96,2);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=ON(c[e>>2]|0,G|0,F|0)|0;if(!f)Ua(e|0,p|0);z=p}else f=-1;if((f|0)==1){e=z;continue}else{v=56;break}}c[A>>2]=b;c[A+4>>2]=0;f=A+8|0;c[f>>2]=u;c[A+12>>2]=0;o=0;ga(29,1,A|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue}c[42539]=c[42537];q=s;e:while(1){if((q|0)==-1){g=f;e=0;break}r=c[42543]|0;c[r+(q*52|0)>>2]=2;e=0;while(1){if((e|0)>=3){v=65;break}v=c[r+(q*52|0)+4+(e<<4)+12>>2]|0;if(v|0?(c[v>>2]|0)==1:0){v=68;break}e=e+1|0}if((v|0)==65){v=0;if((e|0)==3){e=c[42535]|0;k=c[e+(c[42538]<<2)>>2]|0;o=0;e=aa(17,u|0,c[c[e+(c[42537]<<2)>>2]>>2]|0,c[k>>2]|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=ON(c[g>>2]|0,G|0,F|0)|0;if(!j)Ua(g|0,p|0);z=p}else j=-1;if((j|0)==1){e=z;continue a}j=(e|0)==1;n=j?f:k;j=j?k:f}else v=68}if((v|0)==68){v=0;k=c[r+(q*52|0)+4+(e<<4)>>2]|0;m=c[r+(q*52|0)+4+(e<<4)+4>>2]|0;o=0;e=aa(17,c[k>>2]|0,c[c[r+(q*52|0)+4+(((e+1|0)%3|0)<<4)+4>>2]>>2]|0,c[m>>2]|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=ON(c[g>>2]|0,G|0,F|0)|0;if(!j)Ua(g|0,p|0);z=p}else j=-1;if((j|0)==1){e=z;continue a}j=(e|0)==1;n=j?k:m;j=j?m:k}do if((q|0)==(s|0)){o=0;ga(29,2,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}o=0;ga(29,1,n|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}e=0}else{m=c[42535]|0;if((c[m+(c[42537]<<2)>>2]|0)!=(n|0)?(c[m+(c[42538]<<2)>>2]|0)!=(n|0):0){o=0;j=_(29,n|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}o=0;ga(30,2,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}o=0;ga(29,1,n|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}if((j|0)<=(c[42539]|0)){e=0;break}c[42539]=j;e=0;break}o=0;k=_(29,j|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}o=0;ga(30,1,k|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}o=0;ga(29,2,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=ON(c[e>>2]|0,G|0,F|0)|0;if(!g)Ua(e|0,p|0);z=p}else g=-1;if((g|0)==1){e=z;continue a}if((k|0)>=(c[42539]|0)){e=0;break}c[42539]=k;e=0}while(0);while(1){if((e|0)>=3){q=-1;continue e}g=c[r+(q*52|0)+4+(e<<4)+12>>2]|0;if(g|0?(c[g>>2]|0)==1:0)break;e=e+1|0}q=(g-(c[42543]|0)|0)/52|0}while(1){if(!g)break;g=c[g+4>>2]|0;e=e+1|0}o=0;fa(96,e|0);g=o;o=0;if((g|0)!=0&(p|0)!=0){j=ON(c[g>>2]|0,G|0,F|0)|0;if(!j)Ua(g|0,p|0);z=p}else j=-1;if((j|0)==1)e=z;else{v=94;break}}if((v|0)==41)e=-1;else if((v|0)==48)e=-1;else if((v|0)==53){c[d+4>>2]=2;e=c[42542]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];F=e+16|0;c[F>>2]=c[u>>2];c[F+4>>2]=c[u+4>>2];c[F+8>>2]=c[u+8>>2];c[F+12>>2]=c[u+12>>2];c[d>>2]=e;e=0}else if((v|0)==56){c[d+4>>2]=2;e=c[42542]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];F=e+16|0;c[F>>2]=c[u>>2];c[F+4>>2]=c[u+4>>2];c[F+8>>2]=c[u+8>>2];c[F+12>>2]=c[u+12>>2];c[d>>2]=e;e=0}else if((v|0)==94){c[d+4>>2]=e;g=c[42542]|0;while(1){e=e+-1|0;if(!f)break;F=g+(e<<4)|0;E=c[f>>2]|0;c[F>>2]=c[E>>2];c[F+4>>2]=c[E+4>>2];c[F+8>>2]=c[E+8>>2];c[F+12>>2]=c[E+12>>2];f=c[f+4>>2]|0}c[d>>2]=g;e=0}XI(G|0);l=H;return e|0}function BI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+64|0;e=h+48|0;g=h+32|0;f=h+16|0;d=h;if((c[42546]|0)<(a|0)){b=c[42540]|0;if(!b){g=WI(a<<3)|0;c[42540]=g;if(!g){g=c[13918]|0;c[d>>2]=125503;c[d+4>>2]=523;c[d+8>>2]=125753;vL(g,125484,d)|0;Ua(169976,1)}g=WI(a<<2)|0;c[42541]=g;if(!g){g=c[13918]|0;c[f>>2]=125503;c[f+4>>2]=527;c[f+8>>2]=125772;vL(g,125484,f)|0;Ua(169976,1)}}else{f=ZI(b,a<<3)|0;c[42540]=f;if(!f){f=c[13918]|0;c[g>>2]=125503;c[g+4>>2]=533;c[g+8>>2]=125792;vL(f,125484,g)|0;Ua(169976,1)}g=ZI(c[42541]|0,a<<2)|0;c[42541]=g;if(!g){g=c[13918]|0;c[e>>2]=125503;c[e+4>>2]=539;c[e+8>>2]=125812;vL(g,125484,e)|0;Ua(169976,1)}}c[42546]=a}l=h;return}function CI(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+32|0;e=f+16|0;d=f;if((c[42536]|0)<(a|0)){b=c[42535]|0;if(!b){e=WI(a<<2)|0;c[42535]=e;if(!e){e=c[13918]|0;c[d>>2]=125503;c[d+4>>2]=573;c[d+8>>2]=125708;vL(e,125484,d)|0;Ua(169976,1)}}else{d=ZI(b,a<<2)|0;c[42535]=d;if(!d){d=c[13918]|0;c[e>>2]=125503;c[e+4>>2]=580;c[e+8>>2]=125730;vL(d,125484,e)|0;Ua(169976,1)}}c[42536]=a}l=f;return}function DI(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+h[b+8>>3];e=+h[b>>3];d=(+h[c>>3]-e)*(+h[a+8>>3]-d)-(+h[a>>3]-e)*(+h[c+8>>3]-d);return (d>0.0?1:d<0.0?2:3)|0}function EI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;a:while(1){if((b|0)>3)e=0;else{b=9;break}while(1){if((e|0)>=(b|0)){b=8;break a}f=e+1|0;d=(f|0)%(b|0)|0;g=(e+2|0)%(b|0)|0;if(!(MI(e,g,a,b)|0))e=f;else break}NI(c[a+(e<<2)>>2]|0,c[a+(d<<2)>>2]|0,c[a+(g<<2)>>2]|0);b=b+-1|0;while(1){if((d|0)>=(b|0))continue a;g=d+1|0;c[a+(d<<2)>>2]=c[a+(g<<2)>>2];d=g}}if((b|0)==8){a=c[13918]|0;c[h>>2]=125503;c[h+4>>2]=324;c[h+8>>2]=125648;vL(a,125484,h)|0}else if((b|0)==9)NI(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0);l=i;return}function FI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=c[42543]|0;j=i+(a*52|0)|0;k=i+(b*52|0)|0;g=0;while(1){if((g|0)==3)break;l=i+(a*52|0)+4+(g<<4)|0;m=i+(a*52|0)+4+(g<<4)+4|0;n=i+(a*52|0)+4+(g<<4)+12|0;f=0;while(1){if((f|0)==3)break;o=c[c[l>>2]>>2]|0;h=c[c[i+(b*52|0)+4+(f<<4)>>2]>>2]|0;if((o|0)==(h|0)){d=c[c[i+(b*52|0)+4+(f<<4)+4>>2]>>2]|0;if((c[c[m>>2]>>2]|0)==(d|0))e=10;else e=8}else{d=c[c[i+(b*52|0)+4+(f<<4)+4>>2]>>2]|0;e=8}if(((e|0)==8?(e=0,(o|0)==(d|0)):0)?(c[c[m>>2]>>2]|0)==(h|0):0)e=10;if((e|0)==10){c[n>>2]=k;c[i+(b*52|0)+4+(f<<4)+12>>2]=j}f=f+1|0}g=g+1|0}return}function GI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[42543]|0;d=0;e=0;while(1){if((e|0)==3)break;d=d+((DI(c[c[f+(a*52|0)+4+(e<<4)>>2]>>2]|0,c[c[f+(a*52|0)+4+(e<<4)+4>>2]>>2]|0,b)|0)!=2&1)|0;e=e+1|0}return ((d|0)==3|(d|0)==0)&1|0}function HI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[42543]|0;e=d+(a*52|0)|0;a:do if(!(c[e>>2]|0)){c[e>>2]=1;if((a|0)==(b|0))d=1;else{f=0;while(1){if((f|0)>=3)break;e=c[d+(a*52|0)+4+(f<<4)+12>>2]|0;if(e){if(HI((e-d|0)/52|0,b)|0){d=1;break a}d=c[42543]|0}f=f+1|0}c[d+(a*52|0)>>2]=0;d=0}}else d=0;while(0);return d|0}function II(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+32|0;e=f+16|0;d=f;if((c[42544]|0)<(a|0)){b=c[42542]|0;if(!b){e=WI(a<<4)|0;c[42542]=e;if(!e){e=c[13918]|0;c[d>>2]=125503;c[d+4>>2]=593;c[d+8>>2]=125611;vL(e,125484,d)|0;Ua(169976,1)}}else{d=ZI(b,a<<4)|0;c[42542]=d;if(!d){d=c[13918]|0;c[e>>2]=125503;c[e+4>>2]=599;c[e+8>>2]=125629;vL(d,125484,e)|0;Ua(169976,1)}}c[42544]=a}l=f;return}function JI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[42538]|0;e=c[42537]|0;f=(d|0)>=(e|0);if((a|0)==1)if(f){c[b+4>>2]=c[(c[42535]|0)+(e<<2)>>2];a=170148;d=-1}else{a=170148;d=-1}else if(f){c[b+4>>2]=c[(c[42535]|0)+(d<<2)>>2];a=170152;d=1}else{a=170152;d=1}f=(c[a>>2]|0)+d|0;c[a>>2]=f;c[(c[42535]|0)+(f<<2)>>2]=b;return}function KI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=c[42539]|0;g=c[42535]|0;b=c[42537]|0;while(1){if((b|0)>=(f|0)){e=4;break}d=b+1|0;if((DI(c[c[g+(d<<2)>>2]>>2]|0,c[c[g+(b<<2)>>2]>>2]|0,c[a>>2]|0)|0)==1)break;else b=d}a:do if((e|0)==4){b=c[42538]|0;while(1){if((b|0)<=(f|0)){b=f;break a}d=b+-1|0;if((DI(c[c[g+(d<<2)>>2]>>2]|0,c[c[g+(b<<2)>>2]>>2]|0,c[a>>2]|0)|0)==2)break;else b=d}}while(0);return b|0}function LI(a,b){a=a|0;b=b|0;c[((a|0)==1?170152:170148)>>2]=b;return}function MI(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=c[c[d+(((a+-1+e|0)%(e|0)|0)<<2)>>2]>>2]|0;i=c[c[d+(a<<2)>>2]>>2]|0;g=c[c[d+(((a+1|0)%(e|0)|0)<<2)>>2]>>2]|0;k=(DI(f,i,g)|0)==1;j=c[c[d+(b<<2)>>2]>>2]|0;if(k)if((DI(i,j,f)|0)==1){f=DI(j,i,g)|0;g=1;h=5}else f=0;else{f=DI(i,j,g)|0;g=2;h=5}a:do if((h|0)==5)if((f|0)==(g|0)){f=0;while(1){if((f|0)>=(e|0)){f=1;break a}g=f;f=f+1|0;h=(f|0)%(e|0)|0;if((h|0)==(b|0)|((g|0)==(b|0)|((g|0)==(a|0)|(h|0)==(a|0))))continue;if(PI(i,j,c[c[d+(g<<2)>>2]>>2]|0,c[c[d+(h<<2)>>2]>>2]|0)|0){f=0;break}}}else f=0;while(0);return f|0}function NI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[42534]|0;f=c[42545]|0;if((e|0)<(f|0))h=e;else{OI(f+20|0);h=c[42534]|0}g=c[42543]|0;c[42534]=h+1;f=g+(h*52|0)|0;c[f>>2]=0;c[g+(h*52|0)+4>>2]=a;c[g+(h*52|0)+8>>2]=b;c[g+(h*52|0)+16>>2]=0;c[g+(h*52|0)+20>>2]=b;c[g+(h*52|0)+24>>2]=d;c[g+(h*52|0)+32>>2]=0;c[g+(h*52|0)+36>>2]=d;c[g+(h*52|0)+40>>2]=a;c[g+(h*52|0)+48>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(h*52|0)+4+(e<<4)+8>>2]=f;e=e+1|0}return}function OI(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+32|0;e=f+16|0;d=f;if((c[42545]|0)<(a|0)){b=c[42543]|0;if(!b){e=WI(a*52|0)|0;c[42543]=e;if(!e){e=c[13918]|0;c[d>>2]=125503;c[d+4>>2]=552;c[d+8>>2]=125669;vL(e,125484,d)|0;Ua(169976,1)}}else{d=ZI(b,a*52|0)|0;c[42543]=d;if(!d){d=c[13918]|0;c[e>>2]=125503;c[e+4>>2]=558;c[e+8>>2]=125688;vL(d,125484,e)|0;Ua(169976,1)}}c[42545]=a}l=f;return}function PI(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=DI(a,b,c)|0;if((((f|0)!=3?(g=DI(a,b,d)|0,(g|0)!=3):0)?(h=DI(c,d,a)|0,(h|0)!=3):0)?(e=DI(c,d,b)|0,(e|0)!=3):0)return ((f|0)==1^(g|0)==1)&((h|0)==1^(e|0)==1)&1|0;if(((QI(a,b,c)|0)==0?(QI(a,b,d)|0)==0:0)?(QI(c,d,a)|0)==0:0)return (QI(c,d,b)|0)!=0|0;return 1}function QI(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;e=+h[a>>3];g=+h[b>>3]-e;f=+h[a+8>>3];d=+h[b+8>>3]-f;e=+h[c>>3]-e;f=+h[c+8>>3]-f;if((DI(a,b,c)|0)==3?f*d+e*g>=0.0:0)a=f*f+e*e<=d*d+g*g&1;else a=0;return a|0}function RI(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0;d=+h[a+24>>3];a:do if(d<1.0e-07&d>-1.0e-07)a=SI(a,b)|0;else{g=+h[a+16>>3]/(d*3.0);f=+h[a+8>>3]/d;e=g*g;d=g*2.0*e-g*f+ +h[a>>3]/d;e=f*.3333333333333333-e;e=e*e*4.0*e;f=d*d+e;if(!(f<0.0)){i=(+C(+f)-d)*.5;e=+GJ(i);d=+GJ(-d-i)+e;h[b>>3]=d;if(f>0.0)a=1;else{d=d*-.5;h[b+16>>3]=d;a=1;c=7}}else{i=+K(+(+C(+-f)),+-d);d=+GJ(+C(+-e)*.5)*2.0;h[b>>3]=d*+E(+(i*.3333333333333333));h[b+8>>3]=+E(+((i+6.283185307179586)*.3333333333333333))*d;d=+E(+((i+-6.283185307179586)*.3333333333333333))*d;a=2;c=7}if((c|0)==7){h[b+(a<<3)>>3]=d;a=3}c=0;while(1){if((c|0)>=(a|0))break a;j=b+(c<<3)|0;h[j>>3]=+h[j>>3]-g;c=c+1|0}}while(0);return a|0}function SI(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+16>>3];do if(!(c<1.0e-07&c>-1.0e-07)){d=+h[a+8>>3]/(c*2.0);c=d*d-+h[a>>3]/c;if(!(c<0.0))if(c==0.0){h[b>>3]=-d;a=1;break}else{c=+C(+c)-d;h[b>>3]=c;h[b+8>>3]=d*-2.0-c;a=2;break}else a=0}else a=TI(a,b)|0;while(0);return a|0}function TI(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a+8>>3];c=+h[a>>3];if(d<1.0e-07&d>-1.0e-07)a=c<1.0e-07&c>-1.0e-07?4:0;else{h[b>>3]=-c/d;a=1}return a|0}function UI(a){a=a|0;XI(c[a>>2]|0);XI(a);return}function VI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=c[a+4>>2]|0;i=(e*3|0)+-2|0;d=c[42548]|0;if((i|0)>(c[42547]|0)){if(!d)d=WI(i<<4)|0;else d=ZI(d,i<<4)|0;c[42548]=d;c[42547]=i;h=d;g=d}else{h=d;g=d}f=c[a>>2]|0;c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];QN(h+16|0,f|0,16)|0;e=e+-1|0;d=1;a=2;while(1){if((d|0)>=(e|0))break;j=h+(a+2<<4)|0;k=h+(a+1<<4)|0;m=h+(a<<4)|0;l=f+(d<<4)|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];QN(k|0,l|0,16)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];d=d+1|0;a=a+3|0}l=h+(a<<4)|0;m=f+(d<<4)|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];QN(h+(a+1<<4)|0,m|0,16)|0;c[b+4>>2]=i;c[b>>2]=g;return}function WI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+16|0;p=x;do if(a>>>0<245){m=a>>>0<11?16:a+11&-8;a=m>>>3;o=c[42549]|0;d=o>>>a;if(d&3|0){b=(d&1^1)+a|0;a=170236+(b<<1<<2)|0;d=a+8|0;e=c[d>>2]|0;f=e+8|0;g=c[f>>2]|0;if((g|0)==(a|0))c[42549]=o&~(1<<b);else{c[g+12>>2]=a;c[d>>2]=g}w=b<<3;c[e+4>>2]=w|3;w=e+w+4|0;c[w>>2]=c[w>>2]|1;w=f;l=x;return w|0}n=c[42551]|0;if(m>>>0>n>>>0){if(d|0){b=2<<a;b=d<<a&(b|0-b);b=(b&0-b)+-1|0;i=b>>>12&16;b=b>>>i;d=b>>>5&8;b=b>>>d;g=b>>>2&4;b=b>>>g;a=b>>>1&2;b=b>>>a;e=b>>>1&1;e=(d|i|g|a|e)+(b>>>e)|0;b=170236+(e<<1<<2)|0;a=b+8|0;g=c[a>>2]|0;i=g+8|0;d=c[i>>2]|0;if((d|0)==(b|0)){a=o&~(1<<e);c[42549]=a}else{c[d+12>>2]=b;c[a>>2]=d;a=o}w=e<<3;h=w-m|0;c[g+4>>2]=m|3;f=g+m|0;c[f+4>>2]=h|1;c[g+w>>2]=h;if(n|0){e=c[42554]|0;b=n>>>3;d=170236+(b<<1<<2)|0;b=1<<b;if(!(a&b)){c[42549]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[42551]=h;c[42554]=f;w=i;l=x;return w|0}j=c[42550]|0;if(j){d=(j&0-j)+-1|0;i=d>>>12&16;d=d>>>i;h=d>>>5&8;d=d>>>h;k=d>>>2&4;d=d>>>k;e=d>>>1&2;d=d>>>e;a=d>>>1&1;a=c[170500+((h|i|k|e|a)+(d>>>a)<<2)>>2]|0;d=(c[a+4>>2]&-8)-m|0;e=c[a+16+(((c[a+16>>2]|0)==0&1)<<2)>>2]|0;if(!e){k=a;h=d}else{do{i=(c[e+4>>2]&-8)-m|0;k=i>>>0<d>>>0;d=k?i:d;a=k?e:a;e=c[e+16+(((c[e+16>>2]|0)==0&1)<<2)>>2]|0}while((e|0)!=0);k=a;h=d}i=k+m|0;if(i>>>0>k>>>0){f=c[k+24>>2]|0;b=c[k+12>>2]|0;do if((b|0)==(k|0)){a=k+20|0;b=c[a>>2]|0;if(!b){a=k+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}c[a>>2]=0;d=b}else{d=c[k+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[k+28>>2]|0;a=170500+(b<<2)|0;if((k|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[42550]=j&~(1<<b);break}}else{c[f+16+(((c[f+16>>2]|0)!=(k|0)&1)<<2)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[k+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[k+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(h>>>0<16){w=h+m|0;c[k+4>>2]=w|3;w=k+w+4|0;c[w>>2]=c[w>>2]|1}else{c[k+4>>2]=m|3;c[i+4>>2]=h|1;c[i+h>>2]=h;if(n|0){e=c[42554]|0;b=n>>>3;d=170236+(b<<1<<2)|0;b=1<<b;if(!(o&b)){c[42549]=o|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[42551]=h;c[42554]=i}w=k+8|0;l=x;return w|0}else n=m}else n=m}else n=m}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;k=c[42550]|0;if(k){e=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{o=(a+1048320|0)>>>16&8;v=a<<o;n=(v+520192|0)>>>16&4;v=v<<n;j=(v+245760|0)>>>16&2;j=14-(n|o|j)+(v<<j>>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;d=c[170500+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;v=57}else{a=0;i=d;h=m<<((j|0)==31?0:25-(j>>>1)|0);d=0;while(1){f=(c[i+4>>2]&-8)-m|0;if(f>>>0<e>>>0)if(!f){e=0;d=i;a=i;v=61;break a}else{a=i;e=f}f=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;d=(f|0)==0|(f|0)==(i|0)?d:f;f=(i|0)==0;if(f){v=57;break}else h=h<<((f^1)&1)}}while(0);if((v|0)==57){if((d|0)==0&(a|0)==0){a=2<<j;a=k&(a|0-a);if(!a){n=m;break}o=(a&0-a)+-1|0;i=o>>>12&16;o=o>>>i;h=o>>>5&8;o=o>>>h;j=o>>>2&4;o=o>>>j;n=o>>>1&2;o=o>>>n;d=o>>>1&1;a=0;d=c[170500+((h|i|j|n|d)+(o>>>d)<<2)>>2]|0}if(!d){i=a;h=e}else v=61}if((v|0)==61)while(1){v=0;n=(c[d+4>>2]&-8)-m|0;o=n>>>0<e>>>0;e=o?n:e;a=o?d:a;d=c[d+16+(((c[d+16>>2]|0)==0&1)<<2)>>2]|0;if(!d){i=a;h=e;break}else v=61}if((i|0)!=0?h>>>0<((c[42551]|0)-m|0)>>>0:0){g=i+m|0;if(g>>>0<=i>>>0){w=0;l=x;return w|0}f=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}c[a>>2]=0}else{w=c[i+8>>2]|0;c[w+12>>2]=b;c[b+8>>2]=w}while(0);do if(f){a=c[i+28>>2]|0;d=170500+(a<<2)|0;if((i|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=k&~(1<<a);c[42550]=e;break}}else{c[f+16+(((c[f+16>>2]|0)!=(i|0)&1)<<2)>>2]=b;if(!b){e=k;break}}c[b+24>>2]=f;a=c[i+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[i+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b;e=k}else e=k}else e=k;while(0);do if(h>>>0>=16){c[i+4>>2]=m|3;c[g+4>>2]=h|1;c[g+h>>2]=h;b=h>>>3;if(h>>>0<256){d=170236+(b<<1<<2)|0;a=c[42549]|0;b=1<<b;if(!(a&b)){c[42549]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=g;c[b+12>>2]=g;c[g+8>>2]=b;c[g+12>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)b=31;else{v=(b+1048320|0)>>>16&8;w=b<<v;u=(w+520192|0)>>>16&4;w=w<<u;b=(w+245760|0)>>>16&2;b=14-(u|v|b)+(w<<b>>>15)|0;b=h>>>(b+7|0)&1|b<<1}else b=0;d=170500+(b<<2)|0;c[g+28>>2]=b;a=g+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<<b;if(!(e&a)){c[42550]=e|a;c[d>>2]=g;c[g+24>>2]=d;c[g+12>>2]=g;c[g+8>>2]=g;break}a=h<<((b|0)==31?0:25-(b>>>1)|0);d=c[d>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(h|0)){v=97;break}e=d+16+(a>>>31<<2)|0;b=c[e>>2]|0;if(!b){v=96;break}else{a=a<<1;d=b}}if((v|0)==96){c[e>>2]=g;c[g+24>>2]=d;c[g+12>>2]=g;c[g+8>>2]=g;break}else if((v|0)==97){v=d+8|0;w=c[v>>2]|0;c[w+12>>2]=g;c[v>>2]=g;c[g+8>>2]=w;c[g+12>>2]=d;c[g+24>>2]=0;break}}else{w=h+m|0;c[i+4>>2]=w|3;w=i+w+4|0;c[w>>2]=c[w>>2]|1}while(0);w=i+8|0;l=x;return w|0}else n=m}else n=m}else n=-1;while(0);d=c[42551]|0;if(d>>>0>=n>>>0){b=d-n|0;a=c[42554]|0;if(b>>>0>15){w=a+n|0;c[42554]=w;c[42551]=b;c[w+4>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=n|3}else{c[42551]=0;c[42554]=0;c[a+4>>2]=d|3;w=a+d+4|0;c[w>>2]=c[w>>2]|1}w=a+8|0;l=x;return w|0}i=c[42552]|0;if(i>>>0>n>>>0){u=i-n|0;c[42552]=u;w=c[42555]|0;v=w+n|0;c[42555]=v;c[v+4>>2]=u|1;c[w+4>>2]=n|3;w=w+8|0;l=x;return w|0}if(!(c[42667]|0)){c[42669]=4096;c[42668]=4096;c[42670]=-1;c[42671]=-1;c[42672]=0;c[42660]=0;c[42667]=p&-16^1431655768;a=4096}else a=c[42669]|0;j=n+48|0;k=n+47|0;h=a+k|0;f=0-a|0;m=h&f;if(m>>>0<=n>>>0){w=0;l=x;return w|0}a=c[42659]|0;if(a|0?(o=c[42657]|0,p=o+m|0,p>>>0<=o>>>0|p>>>0>a>>>0):0){w=0;l=x;return w|0}b:do if(!(c[42660]&4)){d=c[42555]|0;c:do if(d){e=170644;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(s=e+4|0,(a+(c[s>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){v=118;break c}else e=a}b=h-i&f;if(b>>>0<2147483647){a=SN(b|0)|0;if((a|0)==((c[e>>2]|0)+(c[s>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;v=135;break b}}else{e=a;v=126}}else b=0}else v=118;while(0);do if((v|0)==118){d=SN(0)|0;if((d|0)!=(-1|0)?(b=d,q=c[42668]|0,r=q+-1|0,b=((r&b|0)==0?0:(r+b&0-q)-b|0)+m|0,q=c[42657]|0,r=b+q|0,b>>>0>n>>>0&b>>>0<2147483647):0){s=c[42659]|0;if(s|0?r>>>0<=q>>>0|r>>>0>s>>>0:0){b=0;break}a=SN(b|0)|0;if((a|0)==(d|0)){h=b;g=d;v=135;break b}else{e=a;v=126}}else b=0}while(0);do if((v|0)==126){d=0-b|0;if(!(j>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=b;g=e;v=135;break b}a=c[42669]|0;a=k-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;v=135;break b}if((SN(a|0)|0)==(-1|0)){SN(d|0)|0;b=0;break}else{h=a+b|0;g=e;v=135;break b}}while(0);c[42660]=c[42660]|4;v=133}else{b=0;v=133}while(0);if(((v|0)==133?m>>>0<2147483647:0)?(g=SN(m|0)|0,s=SN(0)|0,t=s-g|0,u=t>>>0>(n+40|0)>>>0,!((g|0)==(-1|0)|u^1|g>>>0<s>>>0&((g|0)!=(-1|0)&(s|0)!=(-1|0))^1)):0){h=u?t:b;v=135}if((v|0)==135){b=(c[42657]|0)+h|0;c[42657]=b;if(b>>>0>(c[42658]|0)>>>0)c[42658]=b;j=c[42555]|0;do if(j){b=170644;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){v=143;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((v|0)==143?(c[b+12>>2]&8|0)==0:0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){c[d>>2]=e+h;w=(c[42552]|0)+h|0;u=j+8|0;u=(u&7|0)==0?0:0-u&7;v=j+u|0;u=w-u|0;c[42555]=v;c[42552]=u;c[v+4>>2]=u|1;c[j+w+4>>2]=40;c[42556]=c[42671];break}if(g>>>0<(c[42553]|0)>>>0)c[42553]=g;a=g+h|0;b=170644;while(1){if((c[b>>2]|0)==(a|0)){v=151;break}b=c[b+8>>2]|0;if(!b){a=170644;break}}if((v|0)==151)if(!(c[b+12>>2]&8)){c[b>>2]=g;m=b+4|0;c[m>>2]=(c[m>>2]|0)+h;m=g+8|0;m=g+((m&7|0)==0?0:0-m&7)|0;b=a+8|0;b=a+((b&7|0)==0?0:0-b&7)|0;k=m+n|0;i=b-m-n|0;c[m+4>>2]=n|3;do if((j|0)!=(b|0)){if((c[42554]|0)==(b|0)){w=(c[42551]|0)+i|0;c[42551]=w;c[42554]=k;c[k+4>>2]=w|1;c[k+w>>2]=w;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;d:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[42549]=c[42549]&~(1<<e);break}else{c[a+12>>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){a=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}c[d>>2]=0}else{w=c[b+8>>2]|0;c[w+12>>2]=a;c[a+8>>2]=w}while(0);if(!g)break;d=c[b+28>>2]|0;e=170500+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){c[g+16+(((c[g+16>>2]|0)!=(b|0)&1)<<2)>>2]=a;if(!a)break d}else{c[e>>2]=a;if(a|0)break;c[42550]=c[42550]&~(1<<d);break d}while(0);c[a+24>>2]=g;d=b+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=170236+(b<<1<<2)|0;a=c[42549]|0;b=1<<b;if(!(a&b)){c[42549]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}v=(b+1048320|0)>>>16&8;w=b<<v;u=(w+520192|0)>>>16&4;w=w<<u;b=(w+245760|0)>>>16&2;b=14-(u|v|b)+(w<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=170500+(b<<2)|0;c[k+28>>2]=b;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[42550]|0;d=1<<b;if(!(a&d)){c[42550]=a|d;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(f|0)){v=192;break}e=d+16+(a>>>31<<2)|0;b=c[e>>2]|0;if(!b){v=191;break}else{a=a<<1;d=b}}if((v|0)==191){c[e>>2]=k;c[k+24>>2]=d;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((v|0)==192){v=d+8|0;w=c[v>>2]|0;c[w+12>>2]=k;c[v>>2]=k;c[k+8>>2]=w;c[k+12>>2]=d;c[k+24>>2]=0;break}}else{w=(c[42552]|0)+i|0;c[42552]=w;c[42555]=k;c[k+4>>2]=w|1}while(0);w=m+8|0;l=x;return w|0}else a=170644;while(1){b=c[a>>2]|0;if(b>>>0<=j>>>0?(w=b+(c[a+4>>2]|0)|0,w>>>0>j>>>0):0)break;a=c[a+8>>2]|0}f=w+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0<f>>>0?j:a;b=a+8|0;d=h+-40|0;u=g+8|0;u=(u&7|0)==0?0:0-u&7;v=g+u|0;u=d-u|0;c[42555]=v;c[42552]=u;c[v+4>>2]=u|1;c[g+d+4>>2]=40;c[42556]=c[42671];d=a+4|0;c[d>>2]=27;c[b>>2]=c[42661];c[b+4>>2]=c[42662];c[b+8>>2]=c[42663];c[b+12>>2]=c[42664];c[42661]=g;c[42662]=h;c[42664]=0;c[42663]=b;b=a+24|0;do{v=b;b=b+4|0;c[b>>2]=7}while((v+8|0)>>>0<w>>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=170236+(b<<1<<2)|0;a=c[42549]|0;b=1<<b;if(!(a&b)){c[42549]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{v=(b+1048320|0)>>>16&8;w=b<<v;u=(w+520192|0)>>>16&4;w=w<<u;d=(w+245760|0)>>>16&2;d=14-(u|v|d)+(w<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=170500+(d<<2)|0;c[j+28>>2]=d;c[j+20>>2]=0;c[f>>2]=0;b=c[42550]|0;a=1<<d;if(!(b&a)){c[42550]=b|a;c[e>>2]=j;c[j+24>>2]=e;c[j+12>>2]=j;c[j+8>>2]=j;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(g|0)){v=213;break}e=d+16+(a>>>31<<2)|0;b=c[e>>2]|0;if(!b){v=212;break}else{a=a<<1;d=b}}if((v|0)==212){c[e>>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}else if((v|0)==213){v=d+8|0;w=c[v>>2]|0;c[w+12>>2]=j;c[v>>2]=j;c[j+8>>2]=w;c[j+12>>2]=d;c[j+24>>2]=0;break}}}else{w=c[42553]|0;if((w|0)==0|g>>>0<w>>>0)c[42553]=g;c[42661]=g;c[42662]=h;c[42664]=0;c[42558]=c[42667];c[42557]=-1;c[42562]=170236;c[42561]=170236;c[42564]=170244;c[42563]=170244;c[42566]=170252;c[42565]=170252;c[42568]=170260;c[42567]=170260;c[42570]=170268;c[42569]=170268;c[42572]=170276;c[42571]=170276;c[42574]=170284;c[42573]=170284;c[42576]=170292;c[42575]=170292;c[42578]=170300;c[42577]=170300;c[42580]=170308;c[42579]=170308;c[42582]=170316;c[42581]=170316;c[42584]=170324;c[42583]=170324;c[42586]=170332;c[42585]=170332;c[42588]=170340;c[42587]=170340;c[42590]=170348;c[42589]=170348;c[42592]=170356;c[42591]=170356;c[42594]=170364;c[42593]=170364;c[42596]=170372;c[42595]=170372;c[42598]=170380;c[42597]=170380;c[42600]=170388;c[42599]=170388;c[42602]=170396;c[42601]=170396;c[42604]=170404;c[42603]=170404;c[42606]=170412;c[42605]=170412;c[42608]=170420;c[42607]=170420;c[42610]=170428;c[42609]=170428;c[42612]=170436;c[42611]=170436;c[42614]=170444;c[42613]=170444;c[42616]=170452;c[42615]=170452;c[42618]=170460;c[42617]=170460;c[42620]=170468;c[42619]=170468;c[42622]=170476;c[42621]=170476;c[42624]=170484;c[42623]=170484;w=h+-40|0;u=g+8|0;u=(u&7|0)==0?0:0-u&7;v=g+u|0;u=w-u|0;c[42555]=v;c[42552]=u;c[v+4>>2]=u|1;c[g+w+4>>2]=40;c[42556]=c[42671]}while(0);b=c[42552]|0;if(b>>>0>n>>>0){u=b-n|0;c[42552]=u;w=c[42555]|0;v=w+n|0;c[42555]=v;c[v+4>>2]=u|1;c[w+4>>2]=n|3;w=w+8|0;l=x;return w|0}}c[(gJ()|0)>>2]=12;w=0;l=x;return w|0}function XI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=c[42553]|0;a=c[a+-4>>2]|0;b=a&-8;j=d+b|0;do if(!(a&1)){e=c[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+b|0;if(h>>>0<f>>>0)return;if((c[42554]|0)==(h|0)){a=j+4|0;b=c[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}c[42551]=g;c[a>>2]=b&-2;c[h+4>>2]=g|1;c[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=c[h+8>>2]|0;b=c[h+12>>2]|0;if((b|0)==(a|0)){c[42549]=c[42549]&~(1<<d);i=h;b=g;break}else{c[a+12>>2]=b;c[b+8>>2]=a;i=h;b=g;break}}f=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){d=h+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}c[b>>2]=0}else{i=c[h+8>>2]|0;c[i+12>>2]=a;c[a+8>>2]=i}while(0);if(f){b=c[h+28>>2]|0;d=170500+(b<<2)|0;if((c[d>>2]|0)==(h|0)){c[d>>2]=a;if(!a){c[42550]=c[42550]&~(1<<b);i=h;b=g;break}}else{c[f+16+(((c[f+16>>2]|0)!=(h|0)&1)<<2)>>2]=a;if(!a){i=h;b=g;break}}c[a+24>>2]=f;b=h+16|0;d=c[b>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}b=c[b+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=c[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((c[42555]|0)==(j|0)){j=(c[42552]|0)+b|0;c[42552]=j;c[42555]=i;c[i+4>>2]=j|1;if((i|0)!=(c[42554]|0))return;c[42554]=0;c[42551]=0;return}if((c[42554]|0)==(j|0)){j=(c[42551]|0)+b|0;c[42551]=j;c[42554]=h;c[i+4>>2]=j|1;c[h+j>>2]=j;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){b=c[j+8>>2]|0;a=c[j+12>>2]|0;if((a|0)==(b|0)){c[42549]=c[42549]&~(1<<d);break}else{c[b+12>>2]=a;c[a+8>>2]=b;break}}else{g=c[j+24>>2]|0;a=c[j+12>>2]|0;do if((a|0)==(j|0)){d=j+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}c[b>>2]=0;d=a}else{d=c[j+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[j+28>>2]|0;b=170500+(a<<2)|0;if((c[b>>2]|0)==(j|0)){c[b>>2]=d;if(!d){c[42550]=c[42550]&~(1<<a);break}}else{c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=d;if(!d)break}c[d+24>>2]=g;a=j+16|0;b=c[a>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}a=c[a+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[i+4>>2]=f|1;c[h+f>>2]=f;if((i|0)==(c[42554]|0)){c[42551]=f;return}}else{c[a>>2]=e&-2;c[i+4>>2]=b|1;c[h+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=170236+(a<<1<<2)|0;b=c[42549]|0;a=1<<a;if(!(b&a)){c[42549]=b|a;a=d;b=d+8|0}else{b=d+8|0;a=c[b>>2]|0}c[b>>2]=i;c[a+12>>2]=i;c[i+8>>2]=a;c[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{h=(a+1048320|0)>>>16&8;j=a<<h;g=(j+520192|0)>>>16&4;j=j<<g;a=(j+245760|0)>>>16&2;a=14-(g|h|a)+(j<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=170500+(a<<2)|0;c[i+28>>2]=a;c[i+20>>2]=0;c[i+16>>2]=0;b=c[42550]|0;d=1<<a;do if(b&d){b=f<<((a|0)==31?0:25-(a>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(f|0)){a=73;break}e=d+16+(b>>>31<<2)|0;a=c[e>>2]|0;if(!a){a=72;break}else{b=b<<1;d=a}}if((a|0)==72){c[e>>2]=i;c[i+24>>2]=d;c[i+12>>2]=i;c[i+8>>2]=i;break}else if((a|0)==73){h=d+8|0;j=c[h>>2]|0;c[j+12>>2]=i;c[h>>2]=i;c[i+8>>2]=j;c[i+12>>2]=d;c[i+24>>2]=0;break}}else{c[42550]=b|d;c[e>>2]=i;c[i+24>>2]=e;c[i+12>>2]=i;c[i+8>>2]=i}while(0);j=(c[42557]|0)+-1|0;c[42557]=j;if(!j)a=170652;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[42557]=-1;return}function YI(a,b){a=a|0;b=b|0;var d=0;if(a){d=O(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;a=WI(d)|0;if(!a)return a|0;if(!(c[a+-4>>2]&3))return a|0;RN(a|0,0,d|0)|0;return a|0}function ZI(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=WI(b)|0;return b|0}if(b>>>0>4294967231){c[(gJ()|0)>>2]=12;b=0;return b|0}d=_I(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=WI(b)|0;if(!d){b=0;return b|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;PN(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;XI(a);b=d;return b|0}function _I(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+4|0;m=c[l>>2]|0;d=m&-8;i=a+d|0;if(!(m&3)){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[42669]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;k=a+b|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|3;m=i+4|0;c[m>>2]=c[m>>2]|1;$I(k,d);return a|0}if((c[42555]|0)==(i|0)){k=(c[42552]|0)+d|0;d=k-b|0;e=a+b|0;if(k>>>0<=b>>>0){a=0;return a|0}c[l>>2]=m&1|b|2;c[e+4>>2]=d|1;c[42555]=e;c[42552]=d;return a|0}if((c[42554]|0)==(i|0)){e=(c[42551]|0)+d|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){k=a+b|0;e=a+e|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|1;c[e>>2]=d;e=e+4|0;c[e>>2]=c[e>>2]&-2;e=k}else{c[l>>2]=m&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[42551]=d;c[42554]=e;return a|0}e=c[i+4>>2]|0;if(e&2|0){a=0;return a|0}j=(e&-8)+d|0;if(j>>>0<b>>>0){a=0;return a|0}k=j-b|0;f=e>>>3;do if(e>>>0<256){e=c[i+8>>2]|0;d=c[i+12>>2]|0;if((d|0)==(e|0)){c[42549]=c[42549]&~(1<<f);break}else{c[e+12>>2]=d;c[d+8>>2]=e;break}}else{h=c[i+24>>2]|0;d=c[i+12>>2]|0;do if((d|0)==(i|0)){f=i+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){f=0;break}else g=f}else g=e;while(1){f=d+20|0;e=c[f>>2]|0;if(e|0){d=e;g=f;continue}e=d+16|0;f=c[e>>2]|0;if(!f)break;else{d=f;g=e}}c[g>>2]=0;f=d}else{f=c[i+8>>2]|0;c[f+12>>2]=d;c[d+8>>2]=f;f=d}while(0);if(h|0){d=c[i+28>>2]|0;e=170500+(d<<2)|0;if((c[e>>2]|0)==(i|0)){c[e>>2]=f;if(!f){c[42550]=c[42550]&~(1<<d);break}}else{c[h+16+(((c[h+16>>2]|0)!=(i|0)&1)<<2)>>2]=f;if(!f)break}c[f+24>>2]=h;d=i+16|0;e=c[d>>2]|0;if(e|0){c[f+16>>2]=e;c[e+24>>2]=f}d=c[d+4>>2]|0;if(d|0){c[f+20>>2]=d;c[d+24>>2]=f}}}while(0);if(k>>>0<16){c[l>>2]=j|m&1|2;m=a+j+4|0;c[m>>2]=c[m>>2]|1;return a|0}else{i=a+b|0;c[l>>2]=m&1|b|2;c[i+4>>2]=k|3;m=a+j+4|0;c[m>>2]=c[m>>2]|1;$I(i,k);return a|0}return 0}function $I(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){f=c[a>>2]|0;if(!(d&3))return;h=a+(0-f)|0;b=f+b|0;if((c[42554]|0)==(h|0)){a=i+4|0;d=c[a>>2]|0;if((d&3|0)!=3)break;c[42551]=b;c[a>>2]=d&-2;c[h+4>>2]=b|1;c[i>>2]=b;return}e=f>>>3;if(f>>>0<256){a=c[h+8>>2]|0;d=c[h+12>>2]|0;if((d|0)==(a|0)){c[42549]=c[42549]&~(1<<e);break}else{c[a+12>>2]=d;c[d+8>>2]=a;break}}g=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){e=h+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){a=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}c[d>>2]=0}else{f=c[h+8>>2]|0;c[f+12>>2]=a;c[a+8>>2]=f}while(0);if(g){d=c[h+28>>2]|0;e=170500+(d<<2)|0;if((c[e>>2]|0)==(h|0)){c[e>>2]=a;if(!a){c[42550]=c[42550]&~(1<<d);break}}else{c[g+16+(((c[g+16>>2]|0)!=(h|0)&1)<<2)>>2]=a;if(!a)break}c[a+24>>2]=g;d=h+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(d){c[a+20>>2]=d;c[d+24>>2]=a}}}else h=a;while(0);a=i+4|0;e=c[a>>2]|0;if(!(e&2)){if((c[42555]|0)==(i|0)){i=(c[42552]|0)+b|0;c[42552]=i;c[42555]=h;c[h+4>>2]=i|1;if((h|0)!=(c[42554]|0))return;c[42554]=0;c[42551]=0;return}if((c[42554]|0)==(i|0)){i=(c[42551]|0)+b|0;c[42551]=i;c[42554]=h;c[h+4>>2]=i|1;c[h+i>>2]=i;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){a=c[i+8>>2]|0;b=c[i+12>>2]|0;if((b|0)==(a|0)){c[42549]=c[42549]&~(1<<d);break}else{c[a+12>>2]=b;c[b+8>>2]=a;break}}else{g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){d=i+16|0;a=d+4|0;b=c[a>>2]|0;if(!b){b=c[d>>2]|0;if(!b){d=0;break}else a=d}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);if(g|0){b=c[i+28>>2]|0;a=170500+(b<<2)|0;if((c[a>>2]|0)==(i|0)){c[a>>2]=d;if(!d){c[42550]=c[42550]&~(1<<b);break}}else{c[g+16+(((c[g+16>>2]|0)!=(i|0)&1)<<2)>>2]=d;if(!d)break}c[d+24>>2]=g;b=i+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}b=c[b+4>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}}while(0);c[h+4>>2]=f|1;c[h+f>>2]=f;if((h|0)==(c[42554]|0)){c[42551]=f;return}}else{c[a>>2]=e&-2;c[h+4>>2]=b|1;c[h+b>>2]=b;f=b}b=f>>>3;if(f>>>0<256){d=170236+(b<<1<<2)|0;a=c[42549]|0;b=1<<b;if(!(a&b)){c[42549]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=h;c[b+12>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;return}b=f>>>8;if(b)if(f>>>0>16777215)b=31;else{g=(b+1048320|0)>>>16&8;i=b<<g;e=(i+520192|0)>>>16&4;i=i<<e;b=(i+245760|0)>>>16&2;b=14-(e|g|b)+(i<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}else b=0;e=170500+(b<<2)|0;c[h+28>>2]=b;c[h+20>>2]=0;c[h+16>>2]=0;a=c[42550]|0;d=1<<b;if(!(a&d)){c[42550]=a|d;c[e>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;return}a=f<<((b|0)==31?0:25-(b>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(f|0)){b=69;break}e=d+16+(a>>>31<<2)|0;b=c[e>>2]|0;if(!b){b=68;break}else{a=a<<1;d=b}}if((b|0)==68){c[e>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;return}else if((b|0)==69){g=d+8|0;i=c[g>>2]|0;c[i+12>>2]=h;c[g>>2]=h;c[h+8>>2]=i;c[h+12>>2]=d;c[h+24>>2]=0;return}}function aJ(a,b){a=a|0;b=b|0;if(a>>>0<9){b=WI(b)|0;return b|0}else{b=bJ(a,b)|0;return b|0}return 0}function bJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;a=a>>>0>16?a:16;if(a+-1&a){d=16;while(1)if(d>>>0<a>>>0)d=d<<1;else{a=d;break}}if((-64-a|0)>>>0<=b>>>0){c[(gJ()|0)>>2]=12;h=0;return h|0}g=b>>>0<11?16:b+11&-8;d=WI(g+12+a|0)|0;if(!d){h=0;return h|0}f=d+-8|0;do if(a+-1&d){e=(d+a+-1&0-a)+-8|0;b=f;e=(e-b|0)>>>0>15?e:e+a|0;b=e-b|0;a=d+-4|0;i=c[a>>2]|0;d=(i&-8)-b|0;if(!(i&3)){c[e>>2]=(c[f>>2]|0)+b;c[e+4>>2]=d;a=e;b=e;break}else{i=e+4|0;c[i>>2]=d|c[i>>2]&1|2;d=e+d+4|0;c[d>>2]=c[d>>2]|1;c[a>>2]=b|c[a>>2]&1|2;c[i>>2]=c[i>>2]|1;$I(f,b);a=e;b=e;break}}else{a=f;b=f}while(0);a=a+4|0;d=c[a>>2]|0;if(d&3|0?(h=d&-8,h>>>0>(g+16|0)>>>0):0){i=h-g|0;f=b+g|0;c[a>>2]=g|d&1|2;c[f+4>>2]=i|3;h=b+h+4|0;c[h>>2]=c[h>>2]|1;$I(f,i)}i=b+8|0;return i|0}function cJ(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=hJ(c[a+60>>2]|0)|0;a=fJ(Da(6,d|0)|0)|0;l=b;return a|0}function dJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+32|0;f=k;i=k+16|0;c[i>>2]=d;g=i+4|0;j=b+48|0;m=c[j>>2]|0;c[g>>2]=e-((m|0)!=0&1);h=b+44|0;c[i+8>>2]=c[h>>2];c[i+12>>2]=m;c[f>>2]=c[b+60>>2];c[f+4>>2]=i;c[f+8>>2]=2;f=fJ(ua(145,f|0)|0)|0;if((f|0)>=1){i=c[g>>2]|0;if(f>>>0>i>>>0){g=c[h>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-i);if(!(c[j>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else c[b>>2]=c[b>>2]|f&48^16;l=k;return f|0}function eJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((fJ(ta(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;l=f;return a|0}function fJ(a){a=a|0;if(a>>>0>4294963200){c[(gJ()|0)>>2]=0-a;a=-1}return a|0}function gJ(){return 170692}function hJ(a){a=a|0;return a|0}function iJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+32|0;f=g;c[b+36>>2]=9;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21523,c[f+8>>2]=g+16,Ca(54,f|0)|0):0)a[b+75>>0]=-1;f=jJ(b,d,e)|0;l=g;return f|0}function jJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+48|0;k=n+16|0;g=n;f=n+32|0;i=a+28|0;e=c[i>>2]|0;c[f>>2]=e;j=a+20|0;e=(c[j>>2]|0)-e|0;c[f+4>>2]=e;c[f+8>>2]=b;c[f+12>>2]=d;e=e+d|0;h=a+60|0;c[g>>2]=c[h>>2];c[g+4>>2]=f;c[g+8>>2]=2;g=fJ(va(146,g|0)|0)|0;a:do if((e|0)!=(g|0)){b=2;while(1){if((g|0)<0)break;e=e-g|0;p=c[f+4>>2]|0;o=g>>>0>p>>>0;f=o?f+8|0:f;b=b+(o<<31>>31)|0;p=g-(o?p:0)|0;c[f>>2]=(c[f>>2]|0)+p;o=f+4|0;c[o>>2]=(c[o>>2]|0)-p;c[k>>2]=c[h>>2];c[k+4>>2]=f;c[k+8>>2]=b;g=fJ(va(146,k|0)|0)|0;if((e|0)==(g|0)){m=3;break a}}c[a+16>>2]=0;c[i>>2]=0;c[j>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[f+4>>2]|0)|0}else m=3;while(0);if((m|0)==3){p=c[a+44>>2]|0;c[a+16>>2]=p+(c[a+48>>2]|0);c[i>>2]=p;c[j>>2]=p}l=n;return d|0}function kJ(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;b=fJ(Ea(91,e|0)|0)|0;l=d;return b|0}function lJ(){return}function mJ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=l;l=l+32|0;h=i;do if((g&4095|0)==0&(((g|0)<0)<<31>>31&-4096|0)==0){if(b>>>0>2147483646){c[(gJ()|0)>>2]=12;a=-1;break}c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=d;c[h+12>>2]=e;c[h+16>>2]=f;c[h+20>>2]=g>>12;a=fJ(wa(192,h|0)|0)|0}else{c[(gJ()|0)>>2]=22;a=-1}while(0);l=i;return a|0}function nJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(oJ(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=O(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function oJ(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function pJ(b,e){b=b|0;e=e|0;var f=0,g=0;g=0;while(1){if((d[125833+g>>0]|0)==(b|0)){b=2;break}f=g+1|0;if((f|0)==87){f=125921;g=87;b=5;break}else g=f}if((b|0)==2)if(!g)f=125921;else{f=125921;b=5}if((b|0)==5)while(1){do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);g=g+-1|0;if(!g)break;else b=5}return qJ(f,c[e+20>>2]|0)|0}function qJ(a,b){a=a|0;b=b|0;return rJ(a,b)|0}function rJ(a,b){a=a|0;b=b|0;if(!b)b=0;else b=sJ(c[b>>2]|0,c[b+4>>2]|0,a)|0;return (b|0?b:a)|0}function sJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(c[b>>2]|0)+1794895138|0;h=tJ(c[b+8>>2]|0,o)|0;f=tJ(c[b+12>>2]|0,o)|0;g=tJ(c[b+16>>2]|0,o)|0;a:do if((h>>>0<d>>>2>>>0?(n=d-(h<<2)|0,f>>>0<n>>>0&g>>>0<n>>>0):0)?((g|f)&3|0)==0:0){n=f>>>2;m=g>>>2;l=0;while(1){j=h>>>1;k=l+j|0;i=k<<1;g=i+n|0;f=tJ(c[b+(g<<2)>>2]|0,o)|0;g=tJ(c[b+(g+1<<2)>>2]|0,o)|0;if(!(g>>>0<d>>>0&f>>>0<(d-g|0)>>>0)){f=0;break a}if(a[b+(g+f)>>0]|0){f=0;break a}f=uJ(e,b+g|0)|0;if(!f)break;f=(f|0)<0;if((h|0)==1){f=0;break a}else{l=f?l:k;h=f?j:h-j|0}}f=i+m|0;g=tJ(c[b+(f<<2)>>2]|0,o)|0;f=tJ(c[b+(f+1<<2)>>2]|0,o)|0;if(f>>>0<d>>>0&g>>>0<(d-f|0)>>>0)f=(a[b+(f+g)>>0]|0)==0?b+f|0:0;else f=0}else f=0;while(0);return f|0}function tJ(a,b){a=a|0;b=b|0;var c=0;c=MN(a|0)|0;return ((b|0)==0?a:c)|0}function uJ(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24)b=e;else{do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));b=e}return (d&255)-(b&255)|0}function vJ(a){a=a|0;return pJ(a,c[(wJ()|0)+188>>2]|0)|0}function wJ(){return xJ()|0}function xJ(){return 55800}function yJ(a,b,c){a=+a;b=+b;c=c|0;var d=0.0,e=0.0,f=0.0;f=a*a;d=f*(f*f)*(f*1.58969099521155e-10+-2.5050760253406863e-08)+(f*(f*2.7557313707070068e-06+-1.984126982985795e-04)+.00833333333332249);e=f*a;if(!c)a=e*(f*d+-.16666666666666632)+a;else a=a-(e*.16666666666666632+(f*(b*.5-e*d)-b));return +a}function zJ(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,k=0.0,l=0.0,m=0.0;h[j>>3]=a;b=c[j>>2]|0;d=c[j+4>>2]|0;e=(d|0)<0;do if(e|d>>>0<1048576){if((b|0)==0&(d&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[j>>3]=a*18014398509481984.0;d=c[j+4>>2]|0;e=-1077;b=c[j>>2]|0;f=9;break}}else if(d>>>0<=2146435071)if((b|0)==0&0==0&(d|0)==1072693248)a=0.0;else{e=-1023;f=9}while(0);if((f|0)==9){f=d+614242|0;c[j>>2]=b;c[j+4>>2]=(f&1048575)+1072079006;m=+h[j>>3]+-1.0;k=m*(m*.5);i=m/(m+2.0);l=i*i;g=l*l;h[j>>3]=m-k;d=c[j+4>>2]|0;c[j>>2]=0;c[j+4>>2]=d;a=+h[j>>3];g=m-a-k+i*(k+(g*(g*(g*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(g*(g*(g*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));l=a*1.4426950407214463;k=+(e+(f>>>20)|0);i=l+k;a=i+(l+(k-i)+(g*1.4426950407214463+(g+a)*1.6751713164886512e-10))}return +a}function AJ(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=JN(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){a=+AJ(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;a=+h[j>>3]}}return +a}function BJ(a,b){a=+a;b=+b;var c=0.0,d=0.0,e=0.0,f=0.0;c=a*a;d=c*c;e=c*.5;f=1.0-e;return +(f+(1.0-f-e+(c*(c*(c*(c*2.480158728947673e-05+-.001388888888887411)+.0416666666666666)+d*d*(c*(2.087572321298175e-09-c*1.1359647557788195e-11)+-2.7557314351390663e-07))-a*b)))}function CJ(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,k=0.0,l=0.0,m=0.0;h[j>>3]=a;b=c[j>>2]|0;d=c[j+4>>2]|0;e=(d|0)<0;do if(e|d>>>0<1048576){if((b|0)==0&(d&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[j>>3]=a*18014398509481984.0;d=c[j+4>>2]|0;e=-1077;b=c[j>>2]|0;f=9;break}}else if(d>>>0<=2146435071)if((b|0)==0&0==0&(d|0)==1072693248)a=0.0;else{e=-1023;f=9}while(0);if((f|0)==9){f=d+614242|0;c[j>>2]=b;c[j+4>>2]=(f&1048575)+1072079006;k=+h[j>>3]+-1.0;i=k*(k*.5);l=k/(k+2.0);m=l*l;g=m*m;h[j>>3]=k-i;d=c[j+4>>2]|0;c[j>>2]=0;c[j+4>>2]=d;a=+h[j>>3];g=k-a-i+l*(i+(g*(g*(g*.15313837699209373+.22222198432149784)+.3999999999940942)+m*(g*(g*(g*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));m=a*.4342944818781689;i=+(e+(f>>>20)|0);l=i*.30102999566361177;k=l+m;a=k+(m+(l-k)+(g*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function DJ(a,b){a=+a;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=l;l=l+48|0;m=r+16|0;n=r;h[j>>3]=a;d=c[j>>2]|0;i=c[j+4>>2]|0;o=JN(d|0,i|0,63)|0;q=i&2147483647;do if(q>>>0<1074752123)if((i&1048575|0)!=598523){d=(o|0)!=0;if(q>>>0<1073928573)if(d){g=a+1.5707963267341256;k=g+6.077100506506192e-11;h[b>>3]=k;h[b+8>>3]=g-k+6.077100506506192e-11;d=-1;break}else{g=a+-1.5707963267341256;k=g+-6.077100506506192e-11;h[b>>3]=k;h[b+8>>3]=g-k+-6.077100506506192e-11;d=1;break}else if(d){g=a+3.1415926534682512;k=g+1.2154201013012384e-10;h[b>>3]=k;h[b+8>>3]=g-k+1.2154201013012384e-10;d=-2;break}else{g=a+-3.1415926534682512;k=g+-1.2154201013012384e-10;h[b>>3]=k;h[b+8>>3]=g-k+-1.2154201013012384e-10;d=2;break}}else p=21;else{if(q>>>0<1075594812)if(q>>>0<1075183037){if((q|0)==1074977148){p=21;break}if(!o){g=a+-4.712388980202377;k=g+-1.8231301519518578e-10;h[b>>3]=k;h[b+8>>3]=g-k+-1.8231301519518578e-10;d=3;break}else{g=a+4.712388980202377;k=g+1.8231301519518578e-10;h[b>>3]=k;h[b+8>>3]=g-k+1.8231301519518578e-10;d=-3;break}}else{if((q|0)==1075388923){p=21;break}if(!o){g=a+-6.2831853069365025;k=g+-2.430840202602477e-10;h[b>>3]=k;h[b+8>>3]=g-k+-2.430840202602477e-10;d=4;break}else{g=a+6.2831853069365025;k=g+2.430840202602477e-10;h[b>>3]=k;h[b+8>>3]=g-k+2.430840202602477e-10;d=-4;break}}if(q>>>0>=1094263291){if(q>>>0>2146435071){k=a-a;h[b+8>>3]=k;h[b>>3]=k;d=0;break}c[j>>2]=d;c[j+4>>2]=i&1048575|1096810496;a=+h[j>>3];d=0;do{k=+(~~a|0);h[m+(d<<3)>>3]=k;a=(a-k)*16777216.0;d=d+1|0}while((d|0)!=2);h[m+16>>3]=a;if(a==0.0){d=1;while(1)if(+h[m+(d<<3)>>3]==0.0)d=d+-1|0;else break}else d=2;d=EJ(m,n,(q>>>20)+-1046|0,d+1|0,1)|0;a=+h[n>>3];if(!o){h[b>>3]=a;h[b+8>>3]=+h[n+8>>3];break}else{h[b>>3]=-a;h[b+8>>3]=-+h[n+8>>3];d=0-d|0;break}}else p=21}while(0);if((p|0)==21){g=a*.6366197723675814+6755399441055744.0+-6755399441055744.0;d=~~g;e=a-g*1.5707963267341256;f=g*6.077100506506192e-11;a=e-f;h[b>>3]=a;h[j>>3]=a;p=JN(c[j>>2]|0,c[j+4>>2]|0,52)|0;i=q>>>20;if((i-(p&2047)|0)>16){f=g*6.077100506303966e-11;k=e-f;f=g*2.0222662487959506e-21-(e-k-f);a=k-f;h[b>>3]=a;h[j>>3]=a;q=JN(c[j>>2]|0,c[j+4>>2]|0,52)|0;s=g*2.0222662487111665e-21;e=k-s;g=g*8.4784276603689e-32-(k-e-s);if((i-(q&2047)|0)>49){a=e-g;h[b>>3]=a;f=g}else e=k}h[b+8>>3]=e-a-f}l=r;return d|0}function EJ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;H=l;l=l+560|0;C=H+480|0;z=H+320|0;G=H+160|0;E=H;D=c[56044+(f<<2)>>2]|0;p=e+-1|0;y=(d+-3|0)/24|0;y=(y|0)>0?y:0;B=O(y,-24)|0;j=d+-24+B|0;if((D+p|0)>=0){n=D+e|0;k=y-p|0;m=0;while(1){if((k|0)<0)g=0.0;else g=+(c[56060+(k<<2)>>2]|0);h[z+(m<<3)>>3]=g;m=m+1|0;if((m|0)==(n|0))break;else k=k+1|0}}o=(e|0)>0;n=0;while(1){if(o){m=n+p|0;g=0.0;k=0;do{g=g+ +h[a+(k<<3)>>3]*+h[z+(m-k<<3)>>3];k=k+1|0}while((k|0)!=(e|0))}else g=0.0;h[E+(n<<3)>>3]=g;if((n|0)<(D|0))n=n+1|0;else break}t=(j|0)>0;u=24-j|0;v=23-j|0;w=(e|0)>0;x=(j|0)==0;k=D;a:while(1){g=+h[E+(k<<3)>>3];o=(k|0)>0;if(o){m=k;n=0;while(1){i=+(~~(g*5.9604644775390625e-08)|0);c[C+(n<<2)>>2]=~~(g-i*16777216.0);s=m;m=m+-1|0;g=+h[E+(m<<3)>>3]+i;if((s|0)<=1)break;else n=n+1|0}}g=+FJ(g,j);g=g-+A(+(g*.125))*8.0;m=~~g;g=g-+(m|0);do if(!t)if(!x)if(!(g>=.5)){p=0;s=m;break}else{n=2;F=20;break}else{n=c[C+(k+-1<<2)>>2]>>23;F=19;break}else{s=C+(k+-1<<2)|0;n=c[s>>2]|0;F=n>>u;n=n-(F<<u)|0;c[s>>2]=n;n=n>>v;m=F+m|0;F=19}while(0);if((F|0)==19){F=0;if((n|0)>0)F=20;else{p=n;s=m}}if((F|0)==20){F=0;s=m+1|0;if(o){m=0;r=0;do{p=C+(r<<2)|0;q=c[p>>2]|0;if(!m)if(!q)m=0;else{m=1;o=16777216;F=23}else{o=16777215;F=23}if((F|0)==23){F=0;c[p>>2]=o-q}r=r+1|0}while((r|0)!=(k|0))}else m=0;b:do if(t){switch(j|0){case 1:{o=8388607;break}case 2:{o=4194303;break}default:break b}r=C+(k+-1<<2)|0;c[r>>2]=c[r>>2]&o}while(0);if((n|0)==2){g=1.0-g;if(!m)p=2;else{p=2;g=g-+FJ(1.0,j)}}else p=n}if(!(g==0.0)){F=42;break}if((k|0)>(D|0)){m=0;n=k;do{n=n+-1|0;m=c[C+(n<<2)>>2]|m}while((n|0)>(D|0));if(m){F=41;break}else m=1}else m=1;while(1)if(!(c[C+(D-m<<2)>>2]|0))m=m+1|0;else break;o=m+k|0;if((m|0)<=0){k=o;continue}while(1){n=k+1|0;m=k+e|0;h[z+(m<<3)>>3]=+(c[56060+(n+y<<2)>>2]|0);if(w){g=0.0;k=0;do{g=g+ +h[a+(k<<3)>>3]*+h[z+(m-k<<3)>>3];k=k+1|0}while((k|0)!=(e|0))}else g=0.0;h[E+(n<<3)>>3]=g;if((n|0)<(o|0))k=n;else{k=o;continue a}}}if((F|0)==41)while(1){F=0;j=j+-24|0;k=k+-1|0;if(!(c[C+(k<<2)>>2]|0))F=41;else{o=k;break}}else if((F|0)==42){g=+FJ(g,0-j|0);if(g>=16777216.0){i=+(~~(g*5.9604644775390625e-08)|0);c[C+(k<<2)>>2]=~~(g-i*16777216.0);j=B+d|0;k=k+1|0;g=i}c[C+(k<<2)>>2]=~~g;o=k}n=(o|0)>-1;if(n){g=+FJ(1.0,j);j=o;while(1){h[E+(j<<3)>>3]=g*+(c[C+(j<<2)>>2]|0);if((j|0)>0){g=g*5.9604644775390625e-08;j=j+-1|0}else break}if(n){k=o;while(1){m=o-k|0;j=0;g=0.0;while(1){g=g+ +h[10840+(j<<3)>>3]*+h[E+(j+k<<3)>>3];if((j|0)>=(D|0)|(j|0)>=(m|0))break;else j=j+1|0}h[G+(m<<3)>>3]=g;if((k|0)>0)k=k+-1|0;else break}}}switch(f|0){case 0:{if(n){g=0.0;j=o;while(1){g=g+ +h[G+(j<<3)>>3];if((j|0)>0)j=j+-1|0;else break}}else g=0.0;i=(p|0)==0?g:-g;F=73;break}case 2:case 1:{if(n){g=0.0;j=o;while(1){g=g+ +h[G+(j<<3)>>3];if((j|0)>0)j=j+-1|0;else break}}else g=0.0;k=(p|0)==0;h[b>>3]=k?g:-g;g=+h[G>>3]-g;if((o|0)>=1){j=1;while(1){g=g+ +h[G+(j<<3)>>3];if((j|0)==(o|0))break;else j=j+1|0}}i=k?g:-g;b=b+8|0;F=73;break}case 3:{if((o|0)>0){j=o;g=+h[G+(o<<3)>>3];do{F=j;j=j+-1|0;E=G+(j<<3)|0;i=+h[E>>3];I=g;g=i+g;h[G+(F<<3)>>3]=I+(i-g);h[E>>3]=g}while((F|0)>1);k=(o|0)>1;if(k){j=o;g=+h[G+(o<<3)>>3];do{F=j;j=j+-1|0;E=G+(j<<3)|0;I=+h[E>>3];i=g;g=I+g;h[G+(F<<3)>>3]=i+(I-g);h[E>>3]=g}while((F|0)>2);if(k){j=o;i=0.0;while(1){i=i+ +h[G+(j<<3)>>3];if((j|0)>2)j=j+-1|0;else break}}else i=0.0}else i=0.0}else i=0.0;g=+h[G>>3];if(!p){h[b>>3]=g;g=+h[G+8>>3]}else{h[b>>3]=-g;i=-i;g=-+h[G+8>>3]}h[b+8>>3]=g;b=b+16|0;F=73;break}default:{}}if((F|0)==73)h[b>>3]=i;l=H;return s&7|0}function FJ(a,b){a=+a;b=b|0;var d=0,e=0;if((b|0)<=1023){if((b|0)<-1022){a=a*2.2250738585072014e-308;e=(b|0)<-2044;d=b+2044|0;a=e?a*2.2250738585072014e-308:a;b=e?((d|0)>-1022?d:-1022):b+1022|0}}else{a=a*8988465674311579538646525.0e283;d=(b|0)>2046;e=b+-2046|0;a=d?a*8988465674311579538646525.0e283:a;b=d?((e|0)<1023?e:1023):b+-1023|0}d=KN(b+1023|0,0,52)|0;e=z;c[j>>2]=d;c[j+4>>2]=e;return +(a*+h[j>>3])}function GJ(a){a=+a;var b=0,d=0,e=0,f=0.0,g=0.0;h[j>>3]=a;d=c[j+4>>2]|0;b=d&2147483647;do if(b>>>0>2146435071)a=a+a;else{if(b>>>0<1048576){h[j>>3]=a*18014398509481984.0;d=c[j+4>>2]|0;b=d&2147483647;if(!b)break;else e=696219795}else e=715094163;c[j>>2]=0;c[j+4>>2]=((b>>>0)/3|0)+e|d&-2147483648;f=+h[j>>3];g=f*f*(f/a);h[j>>3]=(g*(g*g)*(g*.14599619288661245+-.758397934778766)+(g*(g*1.6214297201053545+-1.8849797954337717)+1.87595182427177))*f;d=DN(c[j>>2]|0,c[j+4>>2]|0,-2147483648,0)|0;e=z;c[j>>2]=d&-1073741824;c[j+4>>2]=e;f=+h[j>>3];a=a/(f*f);a=(a-f)/(f+f+a)*f+f}while(0);return +a}function HJ(a,b){a=+a;b=+b;var d=0,e=0;h[j>>3]=a;e=c[j>>2]|0;d=c[j+4>>2]|0;h[j>>3]=b;d=c[j+4>>2]&-2147483648|d&2147483647;c[j>>2]=e;c[j+4>>2]=d;return +(+h[j>>3])}function IJ(a,b){a=+a;b=+b;return +(+HJ(a,b))}function JJ(a,b){a=+a;b=b|0;return +(+FJ(a,b))}function KJ(a,b){a=+a;b=+b;return +(+LJ(a,b))}function LJ(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h[j>>3]=a;i=c[j>>2]|0;l=c[j+4>>2]|0;h[j>>3]=b;n=c[j>>2]|0;o=c[j+4>>2]|0;e=JN(i|0,l|0,52)|0;e=e&2047;m=JN(n|0,o|0,52)|0;m=m&2047;p=l&-2147483648;g=KN(n|0,o|0,1)|0;k=z;a:do if(!((g|0)==0&(k|0)==0)?(f=MJ(b)|0,d=z&2147483647,!((e|0)==2047|(d>>>0>2146435072|(d|0)==2146435072&f>>>0>0))):0){d=KN(i|0,l|0,1)|0;f=z;if(!(f>>>0>k>>>0|(f|0)==(k|0)&d>>>0>g>>>0))return +((d|0)==(g|0)&(f|0)==(k|0)?a*0.0:a);if(!e){d=KN(i|0,l|0,12)|0;f=z;if((f|0)>-1|(f|0)==-1&d>>>0>4294967295){e=0;do{e=e+-1|0;d=KN(d|0,f|0,1)|0;f=z}while((f|0)>-1|(f|0)==-1&d>>>0>4294967295)}else e=0;i=KN(i|0,l|0,1-e|0)|0;g=z}else g=l&1048575|1048576;if(!m){f=KN(n|0,o|0,12)|0;k=z;if((k|0)>-1|(k|0)==-1&f>>>0>4294967295){d=0;do{d=d+-1|0;f=KN(f|0,k|0,1)|0;k=z}while((k|0)>-1|(k|0)==-1&f>>>0>4294967295)}else d=0;n=KN(n|0,o|0,1-d|0)|0;m=d;l=z}else l=o&1048575|1048576;f=EN(i|0,g|0,n|0,l|0)|0;d=z;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;b:do if((e|0)>(m|0)){while(1){if(k){if((f|0)==0&(d|0)==0)break}else{f=i;d=g}i=KN(f|0,d|0,1)|0;g=z;e=e+-1|0;f=EN(i|0,g|0,n|0,l|0)|0;d=z;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;if((e|0)<=(m|0))break b}b=a*0.0;break a}while(0);if(k){if((f|0)==0&(d|0)==0){b=a*0.0;break}}else{d=g;f=i}if(d>>>0<1048576|(d|0)==1048576&f>>>0<0)do{f=KN(f|0,d|0,1)|0;d=z;e=e+-1|0}while(d>>>0<1048576|(d|0)==1048576&f>>>0<0);if((e|0)>0){o=DN(f|0,d|0,0,-1048576)|0;d=z;e=KN(e|0,0,52)|0;d=d|z;e=o|e}else{e=JN(f|0,d|0,1-e|0)|0;d=z}c[j>>2]=e;c[j+4>>2]=d|p;b=+h[j>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function MJ(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}function NJ(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,g=0,i=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=l;l=l+32|0;m=q+24|0;n=q+16|0;o=q+8|0;p=q;h[j>>3]=a;t=c[j>>2]|0;g=c[j+4>>2]|0;h[j>>3]=b;e=c[j>>2]|0;g=g&2147483647;f=c[j+4>>2]&2147483647;i=g>>>0<f>>>0|(g|0)==(f|0)&t>>>0<e>>>0;s=i?e:t;r=i?f:g;e=i?t:e;f=i?g:f;g=JN(s|0,r|0,52)|0;i=JN(e|0,f|0,52)|0;c[j>>2]=s;c[j+4>>2]=r;a=+h[j>>3];c[j>>2]=e;c[j+4>>2]=f;k=+h[j>>3];do if((i|0)!=2047){if(!((e|0)==0&(f|0)==0|(g|0)==2047)){if((g-i|0)>64){a=a+k;break}if((g|0)>1533){d=5260135901548373507240989.0e186;b=a*1.90109156629516e-211;a=k*1.90109156629516e-211}else{t=(i|0)<573;d=t?1.90109156629516e-211:1.0;b=t?a*5260135901548373507240989.0e186:a;a=t?k*5260135901548373507240989.0e186:k}OJ(m,n,b);OJ(o,p,a);a=d*+C(+(+h[p>>3]+ +h[n>>3]+ +h[o>>3]+ +h[m>>3]))}}else a=k;while(0);l=q;return +a}function OJ(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0;e=c*134217729.0;e=e+(c-e);d=c-e;c=c*c;h[a>>3]=c;h[b>>3]=d*d+(e*e-c+e*2.0*d);return}function PJ(a,b,d){a=+a;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0.0,k=0,m=0;k=l;l=l+16|0;g=k;h[j>>3]=a;f=c[j+4>>2]&2147483647;do if(f>>>0<1072243196)if(f>>>0<1044816030){h[b>>3]=a;h[d>>3]=1.0;break}else{h[b>>3]=+yJ(a,0.0,0);h[d>>3]=+BJ(a,0.0);break}else{if(f>>>0>2146435071){i=a-a;h[d>>3]=i;h[b>>3]=i;break}f=DJ(a,g)|0;m=g+8|0;e=+yJ(+h[g>>3],+h[m>>3],1);a=+BJ(+h[g>>3],+h[m>>3]);switch(f&3){case 0:{h[b>>3]=e;i=a;break}case 1:{h[b>>3]=a;i=-e;break}case 2:{h[b>>3]=-e;i=-a;break}case 3:{h[b>>3]=-a;i=e;break}default:{}}h[d>>3]=i}while(0);l=k;return}function QJ(a,b){a=+a;b=b|0;return +(+AJ(a,b))}function RJ(a){a=a|0;if(a>>>0<131072)a=(d[127725+((d[127725+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=0;return a|0}function SJ(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(!e)f=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))f=0;else while(1){e=e+-1|0;g=a[c>>0]|0;if(!(f<<24>>24==g<<24>>24&((e|0)!=0&g<<24>>24!=0)))break a;b=b+1|0;c=c+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){f=0;break}}while(0);f=(f&255)-(d[c>>0]|0)|0}return f|0}function TJ(b,c){b=b|0;c=c|0;b=nJ(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function UJ(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function VJ(a,b,c){a=a|0;b=b|0;c=c|0;c=XJ(a,b,c,-1,0)|0;return c|0}function WJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=O(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function XJ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+128|0;h=j;c[h>>2]=0;i=h+4|0;c[i>>2]=a;c[h+44>>2]=a;g=h+8|0;c[g>>2]=(a|0)<0?-1:a+2147483647|0;c[h+76>>2]=-1;YJ(h,0);d=ZJ(h,d,1,e,f)|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+108>>2]|0)-(c[g>>2]|0));l=j;return d|0}function YJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;c[a+100>>2]=(b|0)!=0&(f|0)>(b|0)?e+b|0:d;return}function ZJ(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(gJ()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=_J(b)|0}while((UJ(i)|0)!=0);b:do switch(i|0){case 43:case 45:{i=((i|0)==45)<<31>>31;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;p=i;i=d[j>>0]|0;break b}else{p=i;i=_J(b)|0;break b}}default:p=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=_J(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=_J(b)|0;if((d[130894+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){YJ(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if(e>>>0>(d[130894+i>>0]|0)>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;YJ(b,0);c[(gJ()|0)>>2]=22;h=0;g=0;break a}}while(0);c:do if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;j=e;do{i=(i*10|0)+j|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;e=d[e>>0]|0}else e=_J(b)|0;j=e+-48|0}while(j>>>0<10&i>>>0<429496729);f=0}else{e=i;i=0;f=0}k=e+-48|0;if(k>>>0<10){j=e;do{e=CN(i|0,f|0,10,0)|0;l=z;m=((k|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&e>>>0>~k>>>0){e=10;n=72;break c}i=DN(e|0,l|0,k|0,m|0)|0;f=z;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=_J(b)|0;k=j+-48|0}while(k>>>0<10&(f>>>0<429496729|(f|0)==429496729&i>>>0<2576980378));if(k>>>0>9){j=p;e=f}else{e=10;n=72}}else{j=p;e=f}}else n=46;while(0);d:do if((n|0)==46){if(!(e+-1&e)){n=a[131150+((e*23|0)>>>5&7)>>0]|0;f=a[130894+i>>0]|0;j=f&255;if(e>>>0>j>>>0){i=0;k=j;do{i=k|i<<n;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=_J(b)|0;f=a[130894+j>>0]|0;k=f&255}while(i>>>0<134217728&e>>>0>k>>>0);k=0}else{j=i;k=0;i=0}l=JN(-1,-1,n|0)|0;m=z;if(e>>>0<=(f&255)>>>0|(m>>>0<k>>>0|(m|0)==(k|0)&l>>>0<i>>>0)){f=k;n=72;break}else j=k;while(1){i=KN(i|0,j|0,n|0)|0;k=z;i=i|f&255;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=_J(b)|0;f=a[130894+j>>0]|0;if(e>>>0<=(f&255)>>>0|(k>>>0>m>>>0|(k|0)==(m|0)&i>>>0>l>>>0)){f=k;n=72;break d}else j=k}}f=a[130894+i>>0]|0;j=f&255;if(e>>>0>j>>>0){i=0;k=j;do{i=k+(O(i,e)|0)|0;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=_J(b)|0;f=a[130894+j>>0]|0;k=f&255}while(i>>>0<119304647&e>>>0>k>>>0);k=0}else{j=i;i=0;k=0}if(e>>>0>(f&255)>>>0){n=HN(-1,-1,e|0,0)|0;o=z;m=k;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&i>>>0>n>>>0){f=m;n=72;break d}k=CN(i|0,m|0,e|0,0)|0;l=z;f=f&255;if(l>>>0>4294967295|(l|0)==-1&k>>>0>~f>>>0){f=m;n=72;break d}i=DN(k|0,l|0,f|0,0)|0;k=z;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=_J(b)|0;f=a[130894+j>>0]|0;if(e>>>0<=(f&255)>>>0){f=k;n=72;break}else m=k}}else{f=k;n=72}}while(0);if((n|0)==72)if(e>>>0>(d[130894+j>>0]|0)>>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=_J(b)|0}while(e>>>0>(d[130894+i>>0]|0)>>>0);c[(gJ()|0)>>2]=34;j=(g&1|0)==0&0==0?p:0;e=h;i=g}else{j=p;e=f}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(e>>>0<h>>>0|(e|0)==(h|0)&i>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(j|0)!=0)){c[(gJ()|0)>>2]=34;g=DN(g|0,h|0,-1,-1)|0;h=z;break}if(e>>>0>h>>>0|(e|0)==(h|0)&i>>>0>g>>>0){c[(gJ()|0)>>2]=34;break}}g=((j|0)<0)<<31>>31;g=EN(i^j|0,e^g|0,j|0,g|0)|0;h=z}while(0);z=h;return g|0}function _J(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;h=c[f>>2]|0;if((h|0)!=0?(c[b+108>>2]|0)>=(h|0):0)i=4;else{e=$J(b)|0;if((e|0)>=0){g=c[f>>2]|0;f=b+8|0;if(g){j=c[f>>2]|0;h=c[b+4>>2]|0;f=g-(c[b+108>>2]|0)|0;g=j;if((j-h|0)<(f|0))f=g;else f=h+(f+-1)|0}else{g=c[f>>2]|0;f=g}c[b+100>>2]=f;f=b+4|0;if(!g)f=c[f>>2]|0;else{f=c[f>>2]|0;j=b+108|0;c[j>>2]=g+1-f+(c[j>>2]|0)}f=f+-1|0;if((e|0)!=(d[f>>0]|0|0))a[f>>0]=e}else i=4}if((i|0)==4){c[b+100>>2]=0;e=-1}return e|0}function $J(a){a=a|0;var b=0,e=0;e=l;l=l+16|0;b=e;if((aK(a)|0)==0?(bb[c[a+32>>2]&31](a,b,1)|0)==1:0)a=d[b>>0]|0;else a=-1;l=e;return a|0}function aK(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+28|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)bb[c[b+36>>2]&31](b,0,0)|0;c[b+16>>2]=0;c[e>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(!(d&4)){e=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=e;c[b+4>>2]=e;d=d<<27>>31}else{c[b>>2]=d|32;d=-1}return d|0}function bK(a){a=a|0;return (a+-48|0)>>>0<10|0}function cK(a){a=a|0;return ((a+-48|0)>>>0<10|(dK(a)|0)!=0)&1|0}function dK(a){a=a|0;return ((a|32)+-97|0)>>>0<26|0}function eK(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;e=a[b>>0]|0;a:do if(!(e<<24>>24))e=0;else{g=e&255;while(1){f=a[c>>0]|0;if(!(f<<24>>24))break a;if(e<<24>>24!=f<<24>>24?(g=fK(g)|0,(g|0)!=(fK(f&255)|0)):0)break a;b=b+1|0;c=c+1|0;e=a[b>>0]|0;if(!(e<<24>>24)){e=0;break}else g=e&255}}while(0);g=fK(e&255)|0;return g-(fK(d[c>>0]|0)|0)|0}function fK(a){a=a|0;var b=0;b=(gK(a)|0)==0;return (b?a:a|32)|0}function gK(a){a=a|0;return (a+-65|0)>>>0<26|0}function hK(a){a=a|0;return iK(a,0)|0}function iK(c,f){c=c|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=(f<<1)+-1|0;l=f+-1|0;a:do if(!((c+-43008|0)>>>0<22272|((c+-11776|0)>>>0<30784|((c+-1536|0)>>>0<2560|(jK(c)|0)==0)))){g=(f|0)!=0;if(g&(c+-4256|0)>>>0<46){if((c|0)>4293)switch(c|0){case 4295:case 4301:break;default:break a}c=c+7264|0;break}if((c+-11520|0)>>>0<38&(g^1)){c=c+-7264|0;break}else g=0;do{i=a[59170+(g<<2)+2>>0]|0;j=i<<24>>24;h=c-(e[59170+(g<<2)>>1]|0)|0;if((h-(l&j)|0)>>>0<(d[59170+(g<<2)+3>>0]|0)>>>0){m=11;break}g=g+1|0}while((g|0)!=61);if((m|0)==11)if(i<<24>>24==1){c=f+c-(h&1)|0;break}else{c=(O(k,j)|0)+c|0;break}i=1-f|0;g=b[58682+(i<<1)>>1]|0;b:do if(g<<16>>16){h=0;while(1){if((g&65535|0)==(c|0))break;h=h+1|0;g=b[58682+(h<<2)+(i<<1)>>1]|0;if(!(g<<16>>16))break b}c=e[58682+(h<<2)+(f<<1)>>1]|0;break a}while(0);return ((c+-66600+(f*40|0)|0)>>>0<40?c+-40+(f*80|0)|0:c)|0}while(0);return c|0}function jK(a){a=a|0;if(a>>>0<131072)a=(d[131159+((d[131159+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=a>>>0<196606&1;return a|0}function kK(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function lK(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;if(!e)b=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))b=0;else{h=b;b=f;f=f&255;while(1){e=e+-1|0;g=a[c>>0]|0;if(!((e|0)!=0&g<<24>>24!=0))break a;if(b<<24>>24!=g<<24>>24?(f=fK(f)|0,(f|0)!=(fK(g&255)|0)):0)break a;h=h+1|0;c=c+1|0;f=a[h>>0]|0;if(!(f<<24>>24)){b=0;break}else{b=f;f=f&255}}}while(0);b=fK(b&255)|0;b=b-(fK(d[c>>0]|0)|0)|0}return b|0}function mK(a){a=a|0;if(a>>>0>=255)if((a+-57344|0)>>>0<8185|(a>>>0<8232|(a+-8234|0)>>>0<47062))a=1;else return (a&65534|0)!=65534&(a+-65532|0)>>>0<1048580&1|0;else a=(a+1&127)>>>0>32&1;return a|0}function nK(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+16|0;g=k;i=(f|0)==0?170760:f;f=c[i>>2]|0;a:do if(!d)if(!f)f=0;else j=17;else{h=(b|0)==0?g:b;if(!e)f=-2;else{if(!f){f=a[d>>0]|0;if(f<<24>>24>-1){c[h>>2]=f&255;f=f<<24>>24!=0&1;break}g=(c[c[(rK()|0)+188>>2]>>2]|0)==0;f=a[d>>0]|0;if(g){c[h>>2]=f<<24>>24&57343;f=1;break}f=(f&255)+-194|0;if(f>>>0>50){j=17;break}f=c[55208+(f<<2)>>2]|0;g=e+-1|0;if(g){d=d+1|0;j=11}}else{g=e;j=11}b:do if((j|0)==11){b=a[d>>0]|0;m=(b&255)>>>3;if((m+-16|m+(f>>26))>>>0>7){j=17;break a}while(1){d=d+1|0;f=(b&255)+-128|f<<6;g=g+-1|0;if((f|0)>=0)break;if(!g)break b;b=a[d>>0]|0;if((b&-64)<<24>>24!=-128){j=17;break a}}c[i>>2]=0;c[h>>2]=f;f=e-g|0;break a}while(0);c[i>>2]=f;f=-2}}while(0);if((j|0)==17){c[i>>2]=0;c[(gJ()|0)>>2]=84;f=-1}l=k;return f|0}function oK(a,b){a=a|0;b=b|0;if(!a)a=0;else a=pK(a,b,0)|0;return a|0}function pK(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[c[(qK()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{c[(gJ()|0)>>2]=84;b=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(gJ()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function qK(){return xJ()|0}function rK(){return xJ()|0}function sK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+272|0;n=p+8|0;o=p;do if(!(a[d>>0]|0)){d=Na(134135)|0;if(d|0?a[d>>0]|0:0)break;d=Na(134142+(b*12|0)|0)|0;if(d|0?a[d>>0]|0:0)break;d=Na(134214)|0;if(d|0?a[d>>0]|0:0)break;d=134219}while(0);e=0;a:do{switch(a[d+e>>0]|0){case 47:case 0:break a;default:{}}e=e+1|0}while(e>>>0<15);f=a[d>>0]|0;if(f<<24>>24!=46?(a[d+e>>0]|0)==0:0)if(f<<24>>24==67)m=15;else{k=d;m=16}else{d=134219;m=15}if((m|0)==15)if(!(a[d+1>>0]|0))m=18;else{k=d;m=16}b:do if((m|0)==16)if((uJ(k,134219)|0)!=0?(uJ(k,134227)|0)!=0:0){d=c[42691]|0;if(d|0)do{if(!(uJ(k,d+8|0)|0))break b;d=c[d+24>>2]|0}while((d|0)!=0);pa(170768);d=c[42691]|0;c:do if(d|0){while(1){if(!(uJ(k,d+8|0)|0))break;d=c[d+24>>2]|0;if(!d)break c}Fa(170768);break b}while(0);d:do if(((c[42676]|0)==0?(g=Na(134233)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){i=254-e|0;j=e+1|0;f=g;while(1){h=nJ(f,58)|0;d=a[h>>0]|0;g=h-f+((d<<24>>24!=0)<<31>>31)|0;if(g>>>0<i>>>0){PN(n|0,f|0,g|0)|0;f=n+g|0;a[f>>0]=47;PN(f+1|0,k|0,e|0)|0;a[n+(j+g)>>0]=0;f=qa(n|0,o|0)|0;if(f|0)break;d=a[h>>0]|0}f=h+(d<<24>>24!=0&1)|0;if(!(a[f>>0]|0)){m=41;break d}}d=WI(28)|0;if(!d){kJ(f,c[o>>2]|0)|0;m=41;break}else{c[d>>2]=f;c[d+4>>2]=c[o>>2];o=d+8|0;PN(o|0,k|0,e|0)|0;a[o+e>>0]=0;c[d+24>>2]=c[42691];c[42691]=d;break}}else m=41;while(0);if((m|0)==41){d=WI(28)|0;if(d){c[d>>2]=c[13790];c[d+4>>2]=c[13791];o=d+8|0;PN(o|0,k|0,e|0)|0;a[o+e>>0]=0;c[d+24>>2]=c[42691];c[42691]=d}}Fa(170768);d=(b|0)==0&(d|0)==0?55160:d}else{d=k;m=18}while(0);do if((m|0)==18){if((b|0)==0?(a[d+1>>0]|0)==46:0){d=55160;break}d=0}while(0);l=p;return d|0}function tK(a,b){a=a|0;b=b|0;uK(a,b)|0;return a|0}function uK(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009|0)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function vK(a){a=a|0;return ((a|0)==32|(a|0)==9)&1|0}function wK(a){a=a|0;if(!a)a=0;else a=(xK(56324,a)|0)!=0&1;return a|0}function xK(a,b){a=a|0;b=b|0;var d=0;if(!b)a=a+((kK(a)|0)<<2)|0;else{while(1){d=c[a>>2]|0;if((d|0)==0|(d|0)==(b|0))break;else a=a+4|0}a=d|0?a:0}return a|0}function yK(a,b){a=a|0;b=b|0;do switch(b|0){case 1:{a=zK(a)|0;break}case 2:{a=jK(a)|0;break}case 3:{a=AK(a)|0;break}case 4:{a=BK(a)|0;break}case 5:{a=bK(a)|0;break}case 6:{a=CK(a)|0;break}case 7:{a=DK(a)|0;break}case 8:{a=mK(a)|0;break}case 9:{a=RJ(a)|0;break}case 10:{a=wK(a)|0;break}case 11:{a=EK(a)|0;break}case 12:{a=FK(a)|0;break}default:a=0}while(0);return a|0}function zK(a){a=a|0;if(!(bK(a)|0))a=(jK(a)|0)!=0&1;else a=1;return a|0}function AK(a){a=a|0;return vK(a)|0}function BK(a){a=a|0;return ((a+-65529|0)>>>0<3|((a&-2|0)==8232|(a>>>0<32|(a+-127|0)>>>0<33)))&1|0}function CK(a){a=a|0;if(!(wK(a)|0))a=(mK(a)|0)!=0&1;else a=0;return a|0}function DK(a){a=a|0;return (hK(a)|0)!=(a|0)|0}function EK(a){a=a|0;return (GK(a)|0)!=(a|0)|0}function FK(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function GK(a){a=a|0;return iK(a,1)|0}function HK(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+128|0;g=n+124|0;m=n;h=m;i=56412;j=h+124|0;do{c[h>>2]=c[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));if((d+-1|0)>>>0>2147483646)if(!d){b=g;d=1;k=4}else{c[(gJ()|0)>>2]=75;d=-1}else k=4;if((k|0)==4){k=-2-b|0;k=d>>>0>k>>>0?k:d;c[m+48>>2]=k;g=m+20|0;c[g>>2]=b;c[m+44>>2]=b;d=b+k|0;b=m+16|0;c[b>>2]=d;c[m+28>>2]=d;d=IK(m,e,f)|0;if(k){m=c[g>>2]|0;a[m+(((m|0)==(c[b>>2]|0))<<31>>31)>>0]=0}}l=n;return d|0}function IK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+224|0;n=s+120|0;p=s+80|0;q=s;r=s+136|0;f=p;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[n>>2]=c[e>>2];if((JK(0,d,n,q,p)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)o=KK(b)|0;else o=0;e=c[b>>2]|0;m=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;f=b+48|0;if(!(c[f>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=r;i=b+28|0;c[i>>2]=r;j=b+20|0;c[j>>2]=r;c[f>>2]=80;k=b+16|0;c[k>>2]=r+80;e=JK(b,d,n,q,p)|0;if(h){bb[c[b+36>>2]&31](b,0,0)|0;e=(c[j>>2]|0)==0?-1:e;c[g>>2]=h;c[f>>2]=0;c[k>>2]=0;c[i>>2]=0;c[j>>2]=0}}else e=JK(b,d,n,q,p)|0;f=c[b>>2]|0;c[b>>2]=f|m;if(o|0)LK(b);e=(f&32|0)==0?e:-1}l=s;return e|0}function JK(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+64|0;D=H+16|0;E=H;B=H+24|0;F=H+8|0;G=H+20|0;c[D>>2]=e;x=(d|0)!=0;y=B+40|0;A=y;B=B+39|0;C=F+4|0;k=0;j=0;p=0;a:while(1){do if((j|0)>-1)if((k|0)>(2147483647-j|0)){c[(gJ()|0)>>2]=75;j=-1;break}else{j=k+j|0;break}while(0);k=a[e>>0]|0;if(!(k<<24>>24)){w=86;break}else m=e;b:while(1){switch(k<<24>>24){case 37:{k=m;w=9;break b}case 0:{k=m;break b}default:{}}v=m+1|0;c[D>>2]=v;k=a[v>>0]|0;m=v}c:do if((w|0)==9)while(1){w=0;if((a[m+1>>0]|0)!=37)break c;k=k+1|0;m=m+2|0;c[D>>2]=m;if((a[m>>0]|0)==37)w=9;else break}while(0);k=k-e|0;if(x)MK(d,e,k);if(k|0){e=m;continue}n=m+1|0;k=(a[n>>0]|0)+-48|0;if(k>>>0<10){v=(a[m+2>>0]|0)==36;t=v?k:-1;p=v?1:p;n=v?m+3|0:n}else t=-1;c[D>>2]=n;k=a[n>>0]|0;v=(k<<24>>24)+-32|0;if(v>>>0>31|(1<<v&75913|0)==0)m=0;else{m=0;do{m=1<<(k<<24>>24)+-32|m;n=n+1|0;c[D>>2]=n;k=a[n>>0]|0;v=(k<<24>>24)+-32|0}while(!(v>>>0>31|(1<<v&75913|0)==0))}if(k<<24>>24==42){o=n+1|0;k=(a[o>>0]|0)+-48|0;if(k>>>0<10?(a[n+2>>0]|0)==36:0){c[i+(k<<2)>>2]=10;k=c[g+((a[o>>0]|0)+-48<<3)>>2]|0;p=1;n=n+3|0}else{if(p|0){j=-1;break}if(x){p=(c[f>>2]|0)+(4-1)&~(4-1);k=c[p>>2]|0;c[f>>2]=p+4;p=0;n=o}else{k=0;p=0;n=o}}c[D>>2]=n;u=(k|0)<0;k=u?0-k|0:k;u=u?m|8192:m}else{k=NK(D)|0;if((k|0)<0){j=-1;break}u=m;n=c[D>>2]|0}do if((a[n>>0]|0)==46){if((a[n+1>>0]|0)!=42){c[D>>2]=n+1;m=NK(D)|0;n=c[D>>2]|0;break}o=n+2|0;m=(a[o>>0]|0)+-48|0;if(m>>>0<10?(a[n+3>>0]|0)==36:0){c[i+(m<<2)>>2]=10;m=c[g+((a[o>>0]|0)+-48<<3)>>2]|0;n=n+4|0;c[D>>2]=n;break}if(p|0){j=-1;break a}if(x){v=(c[f>>2]|0)+(4-1)&~(4-1);m=c[v>>2]|0;c[f>>2]=v+4}else m=0;c[D>>2]=o;n=o}else m=-1;while(0);s=0;while(1){if(((a[n>>0]|0)+-65|0)>>>0>57){j=-1;break a}v=n+1|0;c[D>>2]=v;o=a[(a[n>>0]|0)+-65+(134246+(s*58|0))>>0]|0;q=o&255;if((q+-1|0)>>>0<8){s=q;n=v}else break}if(!(o<<24>>24)){j=-1;break}r=(t|0)>-1;do if(o<<24>>24==19)if(r){j=-1;break a}else w=48;else{if(r){c[i+(t<<2)>>2]=q;r=g+(t<<3)|0;t=c[r+4>>2]|0;w=E;c[w>>2]=c[r>>2];c[w+4>>2]=t;w=48;break}if(!x){j=0;break a}OK(E,q,f)}while(0);if((w|0)==48?(w=0,!x):0){k=0;e=v;continue}n=a[n>>0]|0;n=(s|0)!=0&(n&15|0)==3?n&-33:n;t=u&-65537;u=(u&8192|0)==0?u:t;d:do switch(n|0){case 110:switch((s&255)<<24>>24){case 0:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 1:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 2:{k=c[E>>2]|0;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;k=0;e=v;continue a}case 3:{b[c[E>>2]>>1]=j;k=0;e=v;continue a}case 4:{a[c[E>>2]>>0]=j;k=0;e=v;continue a}case 6:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 7:{k=c[E>>2]|0;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;k=0;e=v;continue a}default:{k=0;e=v;continue a}}case 112:{n=120;m=m>>>0>8?m:8;e=u|8;w=60;break}case 88:case 120:{e=u;w=60;break}case 111:{n=E;e=c[n>>2]|0;n=c[n+4>>2]|0;r=QK(e,n,y)|0;s=A-r|0;o=0;q=134710;m=(u&8|0)==0|(m|0)>(s|0)?m:s+1|0;s=u;w=66;break}case 105:case 100:{n=E;e=c[n>>2]|0;n=c[n+4>>2]|0;if((n|0)<0){e=EN(0,0,e|0,n|0)|0;n=z;o=E;c[o>>2]=e;c[o+4>>2]=n;o=1;q=134710;w=65;break d}else{o=(u&2049|0)!=0&1;q=(u&2048|0)==0?((u&1|0)==0?134710:134712):134711;w=65;break d}}case 117:{n=E;o=0;q=134710;e=c[n>>2]|0;n=c[n+4>>2]|0;w=65;break}case 99:{a[B>>0]=c[E>>2];e=B;o=0;q=134710;r=y;n=1;m=t;break}case 109:{n=vJ(c[(gJ()|0)>>2]|0)|0;w=70;break}case 115:{n=c[E>>2]|0;n=n|0?n:134720;w=70;break}case 67:{c[F>>2]=c[E>>2];c[C>>2]=0;c[E>>2]=F;r=-1;n=F;w=74;break}case 83:{e=c[E>>2]|0;if(!m){SK(d,32,k,0,u);e=0;w=83}else{r=m;n=e;w=74}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{k=TK(d,+h[E>>3],k,m,u,n)|0;e=v;continue a}default:{o=0;q=134710;r=y;n=m;m=u}}while(0);e:do if((w|0)==60){u=E;t=c[u>>2]|0;u=c[u+4>>2]|0;r=PK(t,u,y,n&32)|0;q=(e&8|0)==0|(t|0)==0&(u|0)==0;o=q?0:2;q=q?134710:134710+(n>>4)|0;s=e;e=t;n=u;w=66}else if((w|0)==65){r=RK(e,n,y)|0;s=u;w=66}else if((w|0)==70){w=0;u=WJ(n,0,m)|0;s=(u|0)==0;e=n;o=0;q=134710;r=s?n+m|0:u;n=s?m:u-n|0;m=t}else if((w|0)==74){w=0;q=n;e=0;m=0;while(1){o=c[q>>2]|0;if(!o)break;m=oK(G,o)|0;if((m|0)<0|m>>>0>(r-e|0)>>>0)break;e=m+e|0;if(r>>>0>e>>>0)q=q+4|0;else break}if((m|0)<0){j=-1;break a}SK(d,32,k,e,u);if(!e){e=0;w=83}else{o=0;while(1){m=c[n>>2]|0;if(!m){w=83;break e}m=oK(G,m)|0;o=m+o|0;if((o|0)>(e|0)){w=83;break e}MK(d,G,m);if(o>>>0>=e>>>0){w=83;break}else n=n+4|0}}}while(0);if((w|0)==66){w=0;n=(e|0)!=0|(n|0)!=0;u=(m|0)!=0|n;n=A-r+((n^1)&1)|0;e=u?r:y;r=y;n=u?((m|0)>(n|0)?m:n):m;m=(m|0)>-1?s&-65537:s}else if((w|0)==83){w=0;SK(d,32,k,e,u^8192);k=(k|0)>(e|0)?k:e;e=v;continue}t=r-e|0;s=(n|0)<(t|0)?t:n;u=s+o|0;k=(k|0)<(u|0)?u:k;SK(d,32,k,u,m);MK(d,q,o);SK(d,48,k,u,m^65536);SK(d,48,s,t,0);MK(d,e,t);SK(d,32,k,u,m^8192);e=v}f:do if((w|0)==86)if(!d)if(p){j=1;while(1){e=c[i+(j<<2)>>2]|0;if(!e)break;OK(g+(j<<3)|0,e,f);e=j+1|0;if((j|0)<9)j=e;else{j=e;break}}if((j|0)<10)while(1){if(c[i+(j<<2)>>2]|0){j=-1;break f}if((j|0)<9)j=j+1|0;else{j=1;break}}else j=1}else j=0;while(0);l=H;return j|0}function KK(a){a=a|0;return 0}function LK(a){a=a|0;return}function MK(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))VK(b,d,a)|0;return}function NK(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;f=(a[e>>0]|0)+-48|0;if(f>>>0<10){d=0;do{d=f+(d*10|0)|0;e=e+1|0;c[b>>2]=e;f=(a[e>>0]|0)+-48|0}while(f>>>0<10)}else d=0;return d|0}function OK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function PK(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[134758+(b&15)>>0]|0|f;b=JN(b|0,c|0,4)|0;c=z}while(!((b|0)==0&(c|0)==0));return e|0}function QK(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=JN(b|0,c|0,3)|0;c=z}while(!((b|0)==0&(c|0)==0));return d|0}function RK(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){while(1){e=IN(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e&255|48;e=b;b=HN(b|0,c|0,10,0)|0;if(!(c>>>0>9|(c|0)==9&e>>>0>4294967295))break;else c=z}c=b}else c=b;if(c)while(1){d=d+-1|0;a[d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}return d|0}function SK(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;RN(f|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{MK(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}MK(a,f,e)}l=g;return}function TK(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+560|0;m=H+8|0;u=H;G=H+524|0;F=G;n=H+512|0;c[u>>2]=0;E=n+12|0;UK(e)|0;if((z|0)<0){e=-e;C=1;B=134727}else{C=(h&2049|0)!=0&1;B=(h&2048|0)==0?((h&1|0)==0?134728:134733):134730}UK(e)|0;do if(0==0&(z&2146435072|0)==2146435072){G=(i&32|0)!=0;j=C+3|0;SK(b,32,f,j,h&-65537);MK(b,B,C);MK(b,e!=e|0.0!=0.0?(G?134895:134754):G?134746:134750,3);SK(b,32,f,j,h^8192)}else{r=+QJ(e,u)*2.0;j=r!=0.0;if(j)c[u>>2]=(c[u>>2]|0)+-1;w=i|32;if((w|0)==97){p=i&32;s=(p|0)==0?B:B+9|0;q=C|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[s>>0]|0)==45){e=-(e+(-r-e));break}else{e=r+e-e;break}}else e=r;while(0);k=c[u>>2]|0;j=(k|0)<0?0-k|0:k;j=RK(j,((j|0)<0)<<31>>31,E)|0;if((j|0)==(E|0)){j=n+11|0;a[j>>0]=48}a[j+-1>>0]=(k>>31&2)+43;o=j+-2|0;a[o>>0]=i+15;m=(g|0)<1;n=(h&8|0)==0;j=G;do{D=~~e;k=j+1|0;a[j>>0]=p|d[134758+D>>0];e=(e-+(D|0))*16.0;if((k-F|0)==1?!(n&(m&e==0.0)):0){a[k>>0]=46;j=j+2|0}else j=k}while(e!=0.0);if((g|0)!=0?(-2-F+j|0)<(g|0):0){k=j-F|0;j=g+2|0}else{j=j-F|0;k=j}E=E-o|0;F=E+q+j|0;SK(b,32,f,F,h);MK(b,s,q);SK(b,48,f,F,h^65536);MK(b,G,k);SK(b,48,j-k|0,0,0);MK(b,o,E);SK(b,32,f,F,h^8192);j=F;break}k=(g|0)<0?6:g;if(j){j=(c[u>>2]|0)+-28|0;c[u>>2]=j;e=r*268435456.0}else{e=r;j=c[u>>2]|0}D=(j|0)<0?m:m+288|0;m=D;do{y=~~e>>>0;c[m>>2]=y;m=m+4|0;e=(e-+(y>>>0))*1.0e9}while(e!=0.0);if((j|0)>0){n=D;p=m;while(1){o=(j|0)<29?j:29;j=p+-4|0;if(j>>>0>=n>>>0){m=0;do{x=KN(c[j>>2]|0,0,o|0)|0;x=DN(x|0,z|0,m|0,0)|0;y=z;v=IN(x|0,y|0,1e9,0)|0;c[j>>2]=v;m=HN(x|0,y|0,1e9,0)|0;j=j+-4|0}while(j>>>0>=n>>>0);if(m){n=n+-4|0;c[n>>2]=m}}m=p;while(1){if(m>>>0<=n>>>0)break;j=m+-4|0;if(!(c[j>>2]|0))m=j;else break}j=(c[u>>2]|0)-o|0;c[u>>2]=j;if((j|0)>0)p=m;else break}}else n=D;if((j|0)<0){g=((k+25|0)/9|0)+1|0;t=(w|0)==102;do{s=0-j|0;s=(s|0)<9?s:9;if(n>>>0<m>>>0){o=(1<<s)+-1|0;p=1e9>>>s;q=0;j=n;do{y=c[j>>2]|0;c[j>>2]=(y>>>s)+q;q=O(y&o,p)|0;j=j+4|0}while(j>>>0<m>>>0);j=(c[n>>2]|0)==0?n+4|0:n;if(!q){n=j;j=m}else{c[m>>2]=q;n=j;j=m+4|0}}else{n=(c[n>>2]|0)==0?n+4|0:n;j=m}m=t?D:n;m=(j-m>>2|0)>(g|0)?m+(g<<2)|0:j;j=(c[u>>2]|0)+s|0;c[u>>2]=j}while((j|0)<0);j=n;g=m}else{j=n;g=m}y=D;if(j>>>0<g>>>0){m=(y-j>>2)*9|0;o=c[j>>2]|0;if(o>>>0>=10){n=10;do{n=n*10|0;m=m+1|0}while(o>>>0>=n>>>0)}}else m=0;t=(w|0)==103;v=(k|0)!=0;n=k-((w|0)!=102?m:0)+((v&t)<<31>>31)|0;if((n|0)<(((g-y>>2)*9|0)+-9|0)){n=n+9216|0;s=D+4+(((n|0)/9|0)+-1024<<2)|0;n=(n|0)%9|0;if((n|0)<8){o=10;while(1){o=o*10|0;if((n|0)<7)n=n+1|0;else break}}else o=10;p=c[s>>2]|0;q=(p>>>0)%(o>>>0)|0;n=(s+4|0)==(g|0);if(!(n&(q|0)==0)){r=(((p>>>0)/(o>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;x=(o|0)/2|0;e=q>>>0<x>>>0?.5:n&(q|0)==(x|0)?1.0:1.5;if(C){x=(a[B>>0]|0)==45;e=x?-e:e;r=x?-r:r}n=p-q|0;c[s>>2]=n;if(r+e!=r){x=n+o|0;c[s>>2]=x;if(x>>>0>999999999){m=s;while(1){n=m+-4|0;c[m>>2]=0;if(n>>>0<j>>>0){j=j+-4|0;c[j>>2]=0}x=(c[n>>2]|0)+1|0;c[n>>2]=x;if(x>>>0>999999999)m=n;else break}}else n=s;m=(y-j>>2)*9|0;p=c[j>>2]|0;if(p>>>0>=10){o=10;do{o=o*10|0;m=m+1|0}while(p>>>0>=o>>>0)}}else n=s}else n=s;n=n+4|0;n=g>>>0>n>>>0?n:g;x=j}else{n=g;x=j}w=n;while(1){if(w>>>0<=x>>>0){u=0;break}j=w+-4|0;if(!(c[j>>2]|0))w=j;else{u=1;break}}g=0-m|0;do if(t){j=k+((v^1)&1)|0;if((j|0)>(m|0)&(m|0)>-5){o=i+-1|0;k=j+-1-m|0}else{o=i+-2|0;k=j+-1|0}j=h&8;if(!j){if(u?(A=c[w+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){n=0;j=10;do{j=j*10|0;n=n+1|0}while(!((A>>>0)%(j>>>0)|0|0))}else n=0;else n=9;j=((w-y>>2)*9|0)+-9|0;if((o|32|0)==102){s=j-n|0;s=(s|0)>0?s:0;k=(k|0)<(s|0)?k:s;s=0;break}else{s=j+m-n|0;s=(s|0)>0?s:0;k=(k|0)<(s|0)?k:s;s=0;break}}else s=j}else{o=i;s=h&8}while(0);t=k|s;p=(t|0)!=0&1;q=(o|32|0)==102;if(q){v=0;j=(m|0)>0?m:0}else{j=(m|0)<0?g:m;j=RK(j,((j|0)<0)<<31>>31,E)|0;n=E;if((n-j|0)<2)do{j=j+-1|0;a[j>>0]=48}while((n-j|0)<2);a[j+-1>>0]=(m>>31&2)+43;j=j+-2|0;a[j>>0]=o;v=j;j=n-j|0}j=C+1+k+p+j|0;SK(b,32,f,j,h);MK(b,B,C);SK(b,48,f,j,h^65536);if(q){o=x>>>0>D>>>0?D:x;s=G+9|0;p=s;q=G+8|0;n=o;do{m=RK(c[n>>2]|0,0,s)|0;if((n|0)==(o|0)){if((m|0)==(s|0)){a[q>>0]=48;m=q}}else if(m>>>0>G>>>0){RN(G|0,48,m-F|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}MK(b,m,p-m|0);n=n+4|0}while(n>>>0<=D>>>0);if(t|0)MK(b,134774,1);if(n>>>0<w>>>0&(k|0)>0)while(1){m=RK(c[n>>2]|0,0,s)|0;if(m>>>0>G>>>0){RN(G|0,48,m-F|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}MK(b,m,(k|0)<9?k:9);n=n+4|0;m=k+-9|0;if(!(n>>>0<w>>>0&(k|0)>9)){k=m;break}else k=m}SK(b,48,k+9|0,9,0)}else{t=u?w:x+4|0;if((k|0)>-1){u=G+9|0;s=(s|0)==0;g=u;p=0-F|0;q=G+8|0;o=x;do{m=RK(c[o>>2]|0,0,u)|0;if((m|0)==(u|0)){a[q>>0]=48;m=q}do if((o|0)==(x|0)){n=m+1|0;MK(b,m,1);if(s&(k|0)<1){m=n;break}MK(b,134774,1);m=n}else{if(m>>>0<=G>>>0)break;RN(G|0,48,m+p|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}while(0);F=g-m|0;MK(b,m,(k|0)>(F|0)?F:k);k=k-F|0;o=o+4|0}while(o>>>0<t>>>0&(k|0)>-1)}SK(b,48,k+18|0,18,0);MK(b,v,E-v|0)}SK(b,32,f,j,h^8192)}while(0);l=H;return ((j|0)<(f|0)?f:j)|0}function UK(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}function VK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(WK(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;f=i;if((g-i|0)>>>0<d>>>0){f=bb[c[e+36>>2]&31](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){i=d;while(1){if(!i){h=0;g=b;break b}g=i+-1|0;if((a[b+g>>0]|0)==10)break;else i=g}f=bb[c[e+36>>2]&31](e,b,i)|0;if(f>>>0<i>>>0)break a;h=i;g=b+i|0;d=d-i|0;f=c[j>>2]|0}else{h=0;g=b}while(0);PN(f|0,g|0,d|0)|0;c[j>>2]=(c[j>>2]|0)+d;f=h+d|0}while(0);return f|0}function WK(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;e=c[b+44>>2]|0;c[b+28>>2]=e;c[b+20>>2]=e;c[b+16>>2]=e+(c[b+48>>2]|0);b=0}else{c[b>>2]=d|32;b=-1}return b|0}function XK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;PN(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function YK(b){b=b|0;var c=0,d=0,e=0,f=0;e=a[b>>0]|0;c=1;d=134776;f=97;while(1){if(e<<24>>24==f<<24>>24?(uJ(b,d)|0)==0:0)break;d=d+6|0;f=a[d>>0]|0;if(!(f<<24>>24)){c=0;break}else c=c+1|0}return c|0}function ZK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;do if(b>>>0>6)d=0;else{pa(170776);if((b|0)!=6){d=_K(b,d)|0;Fa(170776);break}if(!d){d=176250;b=0}else{b=g;e=134849;f=b+16|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));f=0;do{b=nJ(d,59)|0;e=b-d|0;if((e|0)<16){PN(g|0,d|0,e|0)|0;a[g+e>>0]=0;d=(a[b>>0]|0)==0?d:b+1|0}_K(f,g)|0;f=f+1|0}while((f|0)!=6);d=176250;b=0}while(1){f=c[170736+(b<<2)>>2]|0;f=f|0?f+8|0:134865;e=oJ(f)|0;PN(d|0,f|0,e|0)|0;f=d+e|0;a[f>>0]=59;b=b+1|0;if((b|0)==6)break;else d=d+(e+1)|0}a[f>>0]=0;Fa(170776);d=176250}while(0);l=h;return d|0}function _K(a,b){a=a|0;b=b|0;if(!b)a=c[170736+(a<<2)>>2]|0;else{b=sK(a,b)|0;c[170736+(a<<2)>>2]=b;a=b}return (a|0?a+8|0:134865)|0}function $K(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function aL(a){a=a|0;return bL(a)|0}function bL(a){a=a|0;return LN(a|0)|0}function cL(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((c[f+76>>2]|0)>-1)m=KK(f)|0;else m=0;g=e+-1|0;if((e|0)<2){n=f+74|0;l=a[n>>0]|0;a[n>>0]=l+255|l;if(m|0)LK(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){k=f+4|0;l=f+8|0;e=b;while(1){h=c[k>>2]|0;o=h;p=(c[l>>2]|0)-o|0;i=WJ(h,10,p)|0;j=(i|0)==0;i=j?p:1-o+i|0;i=i>>>0<g>>>0?i:g;PN(e|0,h|0,i|0)|0;h=(c[k>>2]|0)+i|0;c[k>>2]=h;e=e+i|0;i=g-i|0;if(!(j&(i|0)!=0)){n=17;break a}if(h>>>0>=(c[l>>2]|0)>>>0){g=$J(f)|0;if((g|0)<0)break;else j=g}else{c[k>>2]=h+1;j=d[h>>0]|0}g=i+-1|0;h=e+1|0;a[e>>0]=j;if(!((g|0)!=0&(j&255|0)!=10)){e=h;n=17;break a}else e=h}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)n=17;else b=0}else{e=b;n=17}while(0);if((n|0)==17)if(!b)b=0;else a[e>>0]=0;if(m)LK(f)}return b|0}function dL(b,c){b=b|0;c=c|0;var d=0;d=a[c>>0]|0;do if(d<<24>>24){b=TJ(b,d<<24>>24)|0;if(b){if(a[c+1>>0]|0)if(a[b+1>>0]|0){if(!(a[c+2>>0]|0)){b=eL(b,c)|0;break}if(a[b+2>>0]|0){if(!(a[c+3>>0]|0)){b=fL(b,c)|0;break}if(a[b+3>>0]|0)if(!(a[c+4>>0]|0)){b=gL(b,c)|0;break}else{b=hL(b,c)|0;break}else b=0}else b=0}else b=0}else b=0}while(0);return b|0}function eL(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;g=(d[c>>0]|0)<<8|(d[c+1>>0]|0);f=d[b>>0]|0;while(1){c=b+1|0;e=a[c>>0]|0;if(!(e<<24>>24))break;f=f<<8&65280|e&255;if((f|0)==(g|0))break;else b=c}return (e<<24>>24?b:0)|0}function fL(b,c){b=b|0;c=c|0;var e=0,f=0;f=(d[c+1>>0]|0)<<16|(d[c>>0]|0)<<24|(d[c+2>>0]|0)<<8;e=b+2|0;c=a[e>>0]|0;b=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(c&255)<<8;if(!((b|0)==(f|0)|c<<24>>24==0))do{e=e+1|0;c=a[e>>0]|0;b=(b|c&255)<<8}while(!((b|0)==(f|0)|c<<24>>24==0));return (c<<24>>24?e+-2|0:0)|0}function gL(b,c){b=b|0;c=c|0;var e=0,f=0;f=(d[c+1>>0]|0)<<16|(d[c>>0]|0)<<24|(d[c+2>>0]|0)<<8|(d[c+3>>0]|0);c=b+3|0;e=a[c>>0]|0;b=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(d[b+2>>0]|0)<<8|e&255;if(!(e<<24>>24==0|(b|0)==(f|0)))do{c=c+1|0;e=a[c>>0]|0;b=b<<8|e&255}while(!(e<<24>>24==0|(b|0)==(f|0)));return (e<<24>>24?c+-3|0:0)|0}function hL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+1056|0;t=v+1024|0;u=v;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t+16>>2]=0;c[t+20>>2]=0;c[t+24>>2]=0;c[t+28>>2]=0;e=a[d>>0]|0;a:do if(e<<24>>24){s=0;do{if(!(a[b+s>>0]|0)){e=0;break a}r=t+(((e&255)>>>5&255)<<2)|0;c[r>>2]=c[r>>2]|1<<(e&31);s=s+1|0;c[u+((e&255)<<2)>>2]=s;e=a[d+s>>0]|0}while(e<<24>>24!=0);m=s>>>0>1;if(m){f=0;k=-1;g=1;b:while(1){h=1;e=f;while(1){f=g;c:while(1){j=1;while(1){g=a[d+(j+k)>>0]|0;i=a[d+f>>0]|0;if(g<<24>>24!=i<<24>>24)break c;if((j|0)==(h|0))break;j=j+1|0;f=j+e|0;if(f>>>0>=s>>>0){n=h;e=k;break b}}e=h+e|0;f=e+1|0;if(f>>>0>=s>>>0){n=h;e=k;break b}}h=f-k|0;if((g&255)<=(i&255))break;g=f+1|0;if(g>>>0>=s>>>0){n=h;e=k;break b}else e=f}g=e+2|0;if(g>>>0>=s>>>0){n=1;break}else{f=e+1|0;k=e}}if(m){h=0;m=-1;i=1;while(1){f=1;g=h;while(1){h=i;d:while(1){k=1;while(1){i=a[d+(k+m)>>0]|0;j=a[d+h>>0]|0;if(i<<24>>24!=j<<24>>24)break d;if((k|0)==(f|0))break;k=k+1|0;h=k+g|0;if(h>>>0>=s>>>0){i=n;g=m;h=26;break a}}g=f+g|0;h=g+1|0;if(h>>>0>=s>>>0){i=n;g=m;h=26;break a}}f=h-m|0;if((i&255)>=(j&255))break;i=h+1|0;if(i>>>0>=s>>>0){i=n;g=m;h=26;break a}else g=h}i=g+2|0;if(i>>>0>=s>>>0){i=n;f=1;h=26;break}else{h=g+1|0;m=g}}}else{i=n;f=1;g=-1;h=26}}else{i=1;e=-1;f=1;g=-1;h=26}}else{i=1;e=-1;s=0;f=1;g=-1;h=26}while(0);e:do if((h|0)==26){q=(g+1|0)>>>0>(e+1|0)>>>0;f=q?f:i;q=q?g:e;r=q+1|0;if(!($K(d,d+f|0,r)|0))p=s-f|0;else{f=s-q+-1|0;p=0;f=(q>>>0>f>>>0?q:f)+1|0}k=s|63;m=s+-1|0;n=(p|0)!=0;o=s-f|0;e=b;j=0;g=b;while(1){h=e;do if((g-h|0)>>>0<s>>>0){i=WJ(g,0,k)|0;if(i)if((i-h|0)>>>0<s>>>0){e=0;break e}else break;else{i=g+k|0;break}}else i=g;while(0);g=a[e+m>>0]|0;f:do if(!(1<<(g&31)&c[t+(((g&255)>>>5&255)<<2)>>2])){h=0;g=s}else{g=s-(c[u+((g&255)<<2)>>2]|0)|0;if(g|0){h=0;g=n&(j|0)!=0&g>>>0<f>>>0?o:g;break}g=r>>>0>j>>>0?r:j;h=a[d+g>>0]|0;g:do if(!(h<<24>>24))g=r;else{while(1){if(h<<24>>24!=(a[e+g>>0]|0))break;g=g+1|0;h=a[d+g>>0]|0;if(!(h<<24>>24)){g=r;break g}}h=0;g=g-q|0;break f}while(0);while(1){if(g>>>0<=j>>>0)break e;g=g+-1|0;if((a[d+g>>0]|0)!=(a[e+g>>0]|0)){h=p;g=f;break}}}while(0);e=e+g|0;j=h;g=i}}while(0);l=v;return e|0}function iL(a,b,c){a=a|0;b=b|0;c=c|0;jL(a,b,c)|0;return a|0}function jL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;a:do if(!((g^b)&3)){f=(e|0)!=0;if(f&(g&3|0)!=0)do{g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0}while(f&(d&3|0)!=0);if(f){if(a[d>>0]|0){b:do if(e>>>0>3){f=d;while(1){d=c[f>>2]|0;if((d&-2139062144^-2139062144)&d+-16843009|0){d=f;break b}c[b>>2]=d;e=e+-4|0;d=f+4|0;b=b+4|0;if(e>>>0>3)f=d;else break}}while(0);h=11}}else e=0}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);RN(b|0,0,e|0)|0;return b|0}function kL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+32|0;f=g;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;e=a[d>>0]|0;do if(!(e<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==e<<24>>24)d=d+1|0;else break;d=d-b|0;break}do{h=f+(((e&255)>>>5&255)<<2)|0;c[h>>2]=c[h>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{if(!(c[f+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);l=g;return d|0}function lL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=mL(a,b,f)|0;l=e;return d|0}function mL(a,b,c){a=a|0;b=b|0;c=c|0;return HK(a,2147483647,b,c)|0}function nL(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+208|0;j=m+8|0;k=m;h=O(d,b)|0;i=k;c[i>>2]=1;c[i+4>>2]=0;a:do if(h|0){i=0-d|0;c[j+4>>2]=d;c[j>>2]=d;f=2;b=d;g=d;while(1){b=b+d+g|0;c[j+(f<<2)>>2]=b;if(b>>>0<h>>>0){n=g;f=f+1|0;g=b;b=n}else break}g=a+h+i|0;if(g>>>0>a>>>0){h=g;f=1;b=1;do{do if((b&3|0)!=3){b=f+-1|0;if((c[j+(b<<2)>>2]|0)>>>0<(h-a|0)>>>0)oL(a,d,e,f,j);else qL(a,d,e,k,f,0,j);if((f|0)==1){rL(k,1);f=0;break}else{rL(k,b);f=1;break}}else{oL(a,d,e,f,j);pL(k,2);f=f+2|0}while(0);b=c[k>>2]|1;c[k>>2]=b;a=a+d|0}while(a>>>0<g>>>0)}else{f=1;b=1}qL(a,d,e,k,f,0,j);g=k+4|0;while(1){if((f|0)==1&(b|0)==1){if(!(c[g>>2]|0))break a}else if((f|0)>=2){rL(k,2);n=f+-2|0;c[k>>2]=c[k>>2]^7;pL(k,1);qL(a+(0-(c[j+(n<<2)>>2]|0))+i|0,d,e,k,f+-1|0,1,j);rL(k,1);b=c[k>>2]|1;c[k>>2]=b;h=a+i|0;qL(h,d,e,k,n,1,j);a=h;f=n;continue}b=sL(k)|0;pL(k,b);a=a+i|0;f=b+f|0;b=c[k>>2]|0}}while(0);l=m;return}function oL(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+240|0;m=n;c[m>>2]=a;a:do if((e|0)>1){k=0-b|0;g=a;j=e;e=1;while(1){h=g+k|0;i=j+-2|0;g=h+(0-(c[f+(i<<2)>>2]|0))|0;if((ab[d&63](a,g)|0)>-1?(ab[d&63](a,h)|0)>-1:0)break a;a=e+1|0;e=m+(e<<2)|0;if((ab[d&63](g,h)|0)>-1){c[e>>2]=g;e=j+-1|0}else{c[e>>2]=h;g=h;e=i}if((e|0)<=1){e=a;break a}j=e;e=a;a=c[m>>2]|0}}else e=1;while(0);uL(b,m,e);l=n;return}function pL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[f>>2]|0;c[a>>2]=e;c[f>>2]=0;b=b+-32|0;d=0}else{d=c[f>>2]|0;e=c[a>>2]|0}c[a>>2]=d<<32-b|e>>>b;c[f>>2]=d>>>b;return}function qL(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+240|0;n=p+232|0;o=p;q=c[e>>2]|0;c[n>>2]=q;j=c[e+4>>2]|0;k=n+4|0;c[k>>2]=j;c[o>>2]=a;a:do if((q|0)!=1|(j|0)!=0?(m=0-b|0,i=a+(0-(c[h+(f<<2)>>2]|0))|0,(ab[d&63](i,a)|0)>=1):0){e=1;g=(g|0)==0;j=i;while(1){if(g&(f|0)>1){g=a+m|0;i=c[h+(f+-2<<2)>>2]|0;if((ab[d&63](g,j)|0)>-1){i=10;break a}if((ab[d&63](g+(0-i)|0,j)|0)>-1){i=10;break a}}g=e+1|0;c[o+(e<<2)>>2]=j;q=sL(n)|0;pL(n,q);f=q+f|0;if(!((c[n>>2]|0)!=1|(c[k>>2]|0)!=0)){e=g;a=j;i=10;break a}a=j+(0-(c[h+(f<<2)>>2]|0))|0;if((ab[d&63](a,c[o>>2]|0)|0)<1){a=j;e=g;g=0;i=9;break}else{q=j;e=g;g=1;j=a;a=q}}}else{e=1;i=9}while(0);if((i|0)==9?(g|0)==0:0)i=10;if((i|0)==10){uL(b,o,e);oL(a,b,d,f,h)}l=p;return}function rL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[a>>2]|0;c[f>>2]=e;c[a>>2]=0;b=b+-32|0;d=0}else{d=c[a>>2]|0;e=c[f>>2]|0}c[f>>2]=d>>>(32-b|0)|e<<b;c[a>>2]=d<<b;return}function sL(a){a=a|0;var b=0;b=tL((c[a>>2]|0)+-1|0)|0;if(!b){b=tL(c[a+4>>2]|0)|0;return ((b|0)==0?0:b+32|0)|0}else return b|0;return 0}function tL(a){a=a|0;var b=0;if(a)if(!(a&1)){b=a;a=0;do{a=a+1|0;b=b>>>1}while(!(b&1|0))}else a=0;else a=32;return a|0}function uL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,a|0):0)while(1){f=a>>>0<256?a:256;PN(e|0,c[b>>2]|0,f|0)|0;e=0;do{i=b+(e<<2)|0;e=e+1|0;PN(c[i>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[i>>2]=(c[i>>2]|0)+f}while((e|0)!=(d|0));a=a-f|0;if(!a)break a;e=c[g>>2]|0}while(0);l=h;return}function vL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=IK(a,b,f)|0;l=e;return d|0}function wL(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;oa(0,e|0)|0;d=0;e=(c[e+4>>2]|0)*65537^(e>>>4)+b;while(1){a[b+d>>0]=(e&15)+65|e<<1&32;d=d+1|0;if((d|0)==6)break;else e=e>>>5}l=f;return b|0}function xL(a,b,c){a=a|0;b=b|0;c=c|0;c=XJ(a,b,c,-2147483648,0)|0;return c|0}function yL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+32|0;f=h;e=a[d>>0]|0;a:do if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;do{i=f+(((e&255)>>>5&255)<<2)|0;c[i>>2]=c[i>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);e=a[b>>0]|0;if(!(e<<24>>24))d=b;else{d=b;do{if(c[f+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)|0)break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}}else g=3;while(0);if((g|0)==3)d=nJ(b,e<<24>>24)|0;l=h;return d-b|0}function zL(b,d){b=b|0;d=d|0;var e=0;if(!b){b=c[42696]|0;if(!b)b=0;else e=3}else e=3;do if((e|0)==3){b=b+(kL(b,d)|0)|0;if(!(a[b>>0]|0)){c[42696]=0;b=0;break}d=b+(yL(b,d)|0)|0;c[42696]=d;if(!(a[d>>0]|0)){c[42696]=0;break}else{c[42696]=d+1;a[d>>0]=0;break}}while(0);return b|0}function AL(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=c&255;do{if(!d){c=0;break}d=d+-1|0;c=b+d|0}while((a[c>>0]|0)!=e<<24>>24);return c|0}function BL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if(!b){b=c[e>>2]|0;if(!b)b=0;else f=3}else f=3;do if((f|0)==3){b=b+(kL(b,d)|0)|0;if(!(a[b>>0]|0)){c[e>>2]=0;b=0;break}d=b+(yL(b,d)|0)|0;c[e>>2]=d;if(!(a[d>>0]|0)){c[e>>2]=0;break}else{c[e>>2]=d+1;a[d>>0]=0;break}}while(0);return b|0}function CL(a){a=a|0;var b=0,c=0;c=(oJ(a)|0)+1|0;b=WI(c)|0;if(!b)b=0;else PN(b|0,a|0,c|0)|0;return b|0}function DL(a,b){a=a|0;b=b|0;return AL(a,b,(oJ(a)|0)+1|0)|0}function EL(a,b){a=a|0;b=b|0;tK(a+(oJ(a)|0)|0,b)|0;return a|0}function FL(b,c){b=b|0;c=c|0;c=b+(yL(b,c)|0)|0;return (a[c>>0]|0?c:0)|0}function GL(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(KK(a)|0)==0;a=(c[a>>2]|0)>>>4&1}else a=(c[a>>2]|0)>>>4&1;return a|0}function HL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((c[a+76>>2]|0)>-1)f=KK(a)|0;else f=0;IL(a);g=(c[a>>2]&1|0)!=0;if(!g){e=JL()|0;d=c[a+52>>2]|0;b=a+56|0;if(d|0)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b|0)c[b+52>>2]=d;if((c[e>>2]|0)==(a|0))c[e>>2]=b;KL()}b=LL(a)|0;b=$a[c[a+12>>2]&31](a)|0|b;d=c[a+92>>2]|0;if(d|0)XI(d);if(g){if(f|0)LK(a)}else XI(a);return b|0}function IL(a){a=a|0;var b=0;if(c[a+68>>2]|0){b=c[a+116>>2]|0;a=a+112|0;if(b|0)c[b+112>>2]=c[a>>2];a=c[a>>2]|0;if(!a)a=(NL()|0)+232|0;else a=a+116|0;c[a>>2]=b}return}function JL(){pa(170788);return 170796}function KL(){Fa(170788);return}function LL(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=ML(a)|0;break}d=(KK(a)|0)==0;b=ML(a)|0;if(!d)LK(a)}else{if(!(c[13917]|0))b=0;else b=LL(c[13917]|0)|0;a=c[(JL()|0)>>2]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=KK(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=ML(a)|0|b;if(d|0)LK(a);a=c[a+56>>2]|0}while((a|0)!=0);KL()}while(0);return b|0}function ML(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(bb[c[a+36>>2]&31](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0<g>>>0)bb[c[a+40>>2]&31](a,e-g|0,1)|0;c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function NL(){return xJ()|0}function OL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+64|0;n=o+40|0;k=o+24|0;j=o+16|0;g=o;m=o+56|0;f=a[d>>0]|0;if(WJ(134882,f<<24>>24,4)|0){e=WI(1156)|0;if(!e)e=0;else{h=e;i=h+124|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));if(!(TJ(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(TJ(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;za(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[j>>2]=b;c[j+4>>2]=3;f=za(221,j|0)|0;if(!(f&1024)){c[k>>2]=b;c[k+4>>2]=4;c[k+8>>2]=f|1024;za(221,k|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+132;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21523,c[n+8>>2]=m,(Ca(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=6;c[e+36>>2]=9;c[e+40>>2]=7;c[e+12>>2]=15;if(!(c[42675]|0))c[e+76>>2]=-1;PL(e)|0}}else{c[(gJ()|0)>>2]=22;e=0}l=o;return e|0}function PL(a){a=a|0;var b=0,d=0;b=JL()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;KL();return a|0}function QL(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j;a:do if(!e)b=0;else{do if(f|0){i=(b|0)==0?g:b;b=a[e>>0]|0;if(b<<24>>24>-1){c[i>>2]=b&255;b=b<<24>>24!=0&1;break a}h=(c[c[(RL()|0)+188>>2]>>2]|0)==0;b=a[e>>0]|0;if(h){c[i>>2]=b<<24>>24&57343;b=1;break a}b=(b&255)+-194|0;if(b>>>0<=50){g=e+1|0;h=c[55208+(b<<2)>>2]|0;if(f>>>0<4?h&-2147483648>>>((f*6|0)+-6|0)|0:0)break;b=d[g>>0]|0;f=b>>>3;if((f+-16|f+(h>>26))>>>0<=7){b=b+-128|h<<6;if((b|0)>=0){c[i>>2]=b;b=2;break a}g=(d[e+2>>0]|0)+-128|0;if(g>>>0<=63){g=g|b<<6;if((g|0)>=0){c[i>>2]=g;b=3;break a}b=(d[e+3>>0]|0)+-128|0;if(b>>>0<=63){c[i>>2]=b|g<<6;b=4;break a}}}}}while(0);c[(gJ()|0)>>2]=84;b=-1}while(0);l=j;return b|0}function RL(){return xJ()|0}function SL(a,b){a=a|0;b=b|0;var c=0;c=oJ(a)|0;return ((TL(a,1,c,b)|0)!=(c|0))<<31>>31|0}function TL(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=O(d,b)|0;d=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){g=(KK(e)|0)==0;a=VK(a,f,e)|0;if(!g)LK(e)}else a=VK(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function UL(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;j=m;k=e&255;a[j>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(WK(b)|0)){h=c[g>>2]|0;i=4}else f=-1;else i=4;do if((i|0)==4){i=b+20|0;g=c[i>>2]|0;if(g>>>0<h>>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[i>>2]=g+1;a[g>>0]=k;break}if((bb[c[b+36>>2]&31](b,j,1)|0)==1)f=d[j>>0]|0;else f=-1}while(0);l=m;return f|0}function VL(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=b;e=134867;f=d+15|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));if(!c){a[b+14>>0]=48;a[b+15>>0]=0}else{e=c;d=14;while(1){d=d+1|0;if(e>>>0<10)break;else e=(e>>>0)/10|0}a[b+d>>0]=0;while(1){d=d+-1|0;a[b+d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}}return}function WL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g+40|0;e=g+8|0;d=g;c[d>>2]=a;c[d+4>>2]=b;d=ya(197,d|0)|0;if((d|0)==-9?(c[e>>2]=a,c[e+4>>2]=1,(za(221,e|0)|0)>=0):0){VL(e,a);c[f>>2]=e;c[f+4>>2]=b;b=fJ(xa(195,f|0)|0)|0}else b=fJ(d)|0;l=g;return b|0}function XL(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;b=fJ(Aa(33,e|0)|0)|0;l=d;return b|0}function YL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;h=i+32|0;g=i+16|0;e=i;if(WJ(134882,a[d>>0]|0,4)|0){f=ZL(d)|0;c[e>>2]=b;c[e+4>>2]=f|32768;c[e+8>>2]=438;e=fJ(Ba(5,e|0)|0)|0;if((e|0)>=0){if(f&524288|0){c[g>>2]=e;c[g+4>>2]=2;c[g+8>>2]=1;za(221,g|0)|0}b=OL(e,d)|0;if(!b){c[h>>2]=e;Da(6,h|0)|0;b=0}}else b=0}else{c[(gJ()|0)>>2]=22;b=0}l=i;return b|0}function ZL(b){b=b|0;var c=0,d=0,e=0;d=(TJ(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(TJ(b,120)|0)==0;d=e?d:d|128;b=(TJ(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function _L(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=$L(a,b,f)|0;l=e;return d|0}function $L(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+128|0;e=g;f=e;h=f+124|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));c[e+32>>2]=18;c[e+44>>2]=a;c[e+76>>2]=-1;c[e+84>>2]=a;h=bM(e,b,d)|0;l=g;return h|0}function aM(a,b,c){a=a|0;b=b|0;c=c|0;return jM(a,b,c)|0}function bM(b,e,f){b=b|0;e=e|0;f=f|0;var i=0,j=0,k=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;P=l;l=l+288|0;J=P+8|0;K=P+17|0;L=P;M=P+16|0;if((c[b+76>>2]|0)>-1)O=KK(b)|0;else O=0;i=a[e>>0]|0;a:do if(i<<24>>24){B=b+4|0;C=b+100|0;D=b+108|0;E=b+8|0;F=K+10|0;G=K+33|0;A=J+4|0;H=K+1|0;I=K+1|0;m=e;t=0;e=0;k=0;j=0;b:while(1){c:do if(!(UJ(i&255)|0)){i=i<<24>>24==37;d:do if(i){p=m+1|0;n=a[p>>0]|0;e:do switch(n<<24>>24){case 37:break d;case 42:{y=0;m=m+2|0;break}default:{i=(n&255)+-48|0;if(i>>>0<10?(a[m+2>>0]|0)==36:0){y=cM(f,i)|0;m=m+3|0;break e}m=(c[f>>2]|0)+(4-1)&~(4-1);y=c[m>>2]|0;c[f>>2]=m+4;m=p}}while(0);i=a[m>>0]|0;n=i&255;if((n+-48|0)>>>0<10){p=0;do{p=(p*10|0)+-48+n|0;m=m+1|0;i=a[m>>0]|0;n=i&255}while((n+-48|0)>>>0<10)}else p=0;i=i<<24>>24==109;x=(y|0)!=0;k=i?0:k;j=i?0:j;m=i?m+1|0:m;i=x&i;n=m+1|0;switch(a[m>>0]|0){case 104:{w=(a[n>>0]|0)==104;q=w?-2:-1;m=w?m+2|0:n;break}case 108:{w=(a[n>>0]|0)==108;q=w?3:1;m=w?m+2|0:n;break}case 106:{q=3;m=n;break}case 116:case 122:{q=1;m=n;break}case 76:{q=2;m=n;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{q=0;break}default:{N=135;break b}}s=d[m>>0]|0;u=(s&47|0)==3;s=u?s|32:s;u=u?1:q;r=s&255;switch(r<<24>>24){case 99:{p=(p|0)>1?p:1;w=t;break}case 91:{w=t;break}case 110:{dM(y,u,t,((t|0)<0)<<31>>31);n=t;break c}default:{YJ(b,0);do{n=c[B>>2]|0;if(n>>>0<(c[C>>2]|0)>>>0){c[B>>2]=n+1;n=d[n>>0]|0}else n=_J(b)|0}while((UJ(n)|0)!=0);if(!(c[C>>2]|0))n=c[B>>2]|0;else{n=(c[B>>2]|0)+-1|0;c[B>>2]=n}w=(c[D>>2]|0)+t+n-(c[E>>2]|0)|0}}YJ(b,p);n=c[B>>2]|0;q=c[C>>2]|0;if(n>>>0<q>>>0)c[B>>2]=n+1;else{if((_J(b)|0)<0){N=135;break b}q=c[C>>2]|0}if(q|0)c[B>>2]=(c[B>>2]|0)+-1;f:do switch(r<<24>>24){case 91:case 99:case 115:{v=(s|0)==99;g:do if((s|16|0)==115){RN(H|0,-1,256)|0;a[K>>0]=0;if((s|0)==115){a[G>>0]=0;a[F>>0]=0;a[F+1>>0]=0;a[F+2>>0]=0;a[F+3>>0]=0;a[F+4>>0]=0}}else{s=m+1|0;n=(a[s>>0]|0)==94;t=n&1;m=n?m+2|0:s;RN(I|0,n&1|0,256)|0;a[K>>0]=0;n=a[m>>0]|0;switch(n<<24>>24){case 45:{n=46;N=63;break}case 93:{n=94;N=63;break}default:{}}while(1){if((N|0)==63){N=0;a[K+n>>0]=t^1;n=m+1|0;m=n;n=a[n>>0]|0}h:do switch(n<<24>>24){case 0:{N=135;break b}case 93:break g;case 45:{s=m+1|0;n=a[s>>0]|0;switch(n<<24>>24){case 93:case 0:{n=45;break h}default:{}}m=a[m+-1>>0]|0;if((m&255)<(n&255)){r=(t^1)&255;m=m&255;do{m=m+1|0;a[K+m>>0]=r;n=a[s>>0]|0}while((m|0)<(n&255|0));m=s}else m=s;break}default:{}}while(0);n=(n&255)+1|0;N=63}}while(0);n=v?p+1|0:31;s=(u|0)==1;i:do if(s){if(i){j=WI(n<<2)|0;if(!j){k=0;j=0;i=1;N=135;break b}}else j=y;c[J>>2]=0;c[A>>2]=0;r=n;k=0;j:while(1){q=(j|0)==0;do{k:while(1){n=c[B>>2]|0;if(n>>>0<(c[C>>2]|0)>>>0){c[B>>2]=n+1;n=d[n>>0]|0}else n=_J(b)|0;if(!(a[K+(n+1)>>0]|0))break j;a[M>>0]=n;switch(nK(L,M,1,J)|0){case -1:{k=0;N=135;break b}case -2:break;default:break k}}if(!q){c[j+(k<<2)>>2]=c[L>>2];k=k+1|0}}while(!(i&(k|0)==(r|0)));k=r<<1|1;n=ZI(j,k<<2)|0;if(!n){k=0;i=1;N=135;break b}else{u=r;r=k;j=n;k=u}}if(!(eM(J)|0)){k=0;N=135;break b}else{n=k;k=0;r=j}}else{if(i){k=WI(n)|0;if(!k){k=0;j=0;i=1;N=135;break b}else{q=n;j=0}while(1){do{n=c[B>>2]|0;if(n>>>0<(c[C>>2]|0)>>>0){c[B>>2]=n+1;n=d[n>>0]|0}else n=_J(b)|0;if(!(a[K+(n+1)>>0]|0)){n=j;r=0;j=0;break i}a[k+j>>0]=n;j=j+1|0}while((j|0)!=(q|0));j=q<<1|1;n=ZI(k,j)|0;if(!n){j=0;i=1;N=135;break b}else{u=q;q=j;k=n;j=u}}}if(!y){k=q;while(1){j=c[B>>2]|0;if(j>>>0<k>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=_J(b)|0;if(!(a[K+(j+1)>>0]|0)){n=0;k=0;r=0;j=0;break i}k=c[C>>2]|0}}else{n=0;k=q;while(1){j=c[B>>2]|0;if(j>>>0<k>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=_J(b)|0;if(!(a[K+(j+1)>>0]|0)){k=y;r=0;j=0;break i}a[y+n>>0]=j;n=n+1|0;k=c[C>>2]|0}}}while(0);if(!(c[C>>2]|0))q=c[B>>2]|0;else{q=(c[B>>2]|0)+-1|0;c[B>>2]=q}q=q-(c[E>>2]|0)+(c[D>>2]|0)|0;if(!q){N=137;break b}if(!((q|0)==(p|0)|v^1)){N=137;break b}do if(i)if(s){c[y>>2]=r;break}else{c[y>>2]=k;break}while(0);if(!v){if(r|0)c[r+(n<<2)>>2]=0;if(!k){k=0;break f}a[k+n>>0]=0}break}case 120:case 88:case 112:{n=16;N=123;break}case 111:{n=8;N=123;break}case 117:case 100:{n=10;N=123;break}case 105:{n=0;N=123;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{o=+fM(b,u,0);if((c[D>>2]|0)==((c[E>>2]|0)-(c[B>>2]|0)|0)){N=137;break b}if(y)switch(u|0){case 0:{g[y>>2]=o;break f}case 1:{h[y>>3]=o;break f}case 2:{h[y>>3]=o;break f}default:break f}break}default:{}}while(0);do if((N|0)==123){N=0;n=ZJ(b,n,0,-1,-1)|0;if((c[D>>2]|0)==((c[E>>2]|0)-(c[B>>2]|0)|0)){N=137;break b}if(x&(s|0)==112){c[y>>2]=n;break}else{dM(y,u,n,z);break}}while(0);e=e+(x&1)|0;n=(c[D>>2]|0)+w+(c[B>>2]|0)-(c[E>>2]|0)|0;break c}while(0);m=m+(i&1)|0;YJ(b,0);i=c[B>>2]|0;if(i>>>0<(c[C>>2]|0)>>>0){c[B>>2]=i+1;i=d[i>>0]|0}else i=_J(b)|0;if((i|0)!=(d[m>>0]|0)){N=22;break b}n=t+1|0}else{while(1){i=m+1|0;if(!(UJ(d[i>>0]|0)|0))break;else m=i}YJ(b,0);do{i=c[B>>2]|0;if(i>>>0<(c[C>>2]|0)>>>0){c[B>>2]=i+1;i=d[i>>0]|0}else i=_J(b)|0}while((UJ(i)|0)!=0);if(!(c[C>>2]|0))i=c[B>>2]|0;else{i=(c[B>>2]|0)+-1|0;c[B>>2]=i}n=(c[D>>2]|0)+t+i-(c[E>>2]|0)|0}while(0);m=m+1|0;i=a[m>>0]|0;if(!(i<<24>>24))break a;else t=n}if((N|0)==22){if(c[C>>2]|0)c[B>>2]=(c[B>>2]|0)+-1;if((e|0)!=0|(i|0)>-1)break;else{i=0;N=136}}else if((N|0)==135){i=i&1;if(!e)N=136}else if((N|0)==137)i=i&1;if((N|0)==136)e=-1;if(i){XI(k);XI(j)}}else e=0;while(0);if(O|0)LK(b);l=P;return e|0}function cM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+16|0;d=e;c[d>>2]=c[a>>2];while(1){f=(c[d>>2]|0)+(4-1)&~(4-1);a=c[f>>2]|0;c[d>>2]=f+4;if(b>>>0>1)b=b+-1|0;else break}l=e;return a|0}function dM(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;a:do if(d|0)switch(e|0){case -2:{a[d>>0]=f;break a}case -1:{b[d>>1]=f;break a}case 0:{c[d>>2]=f;break a}case 1:{c[d>>2]=f;break a}case 3:{e=d;c[e>>2]=f;c[e+4>>2]=g;break a}default:break a}while(0);return}function eM(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0&1;return a|0}function fM(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;switch(e|0){case 0:{l=-149;m=24;j=4;break}case 1:{l=-1074;m=53;j=4;break}case 2:{l=-1074;m=53;j=4;break}default:g=0.0}a:do if((j|0)==4){o=b+4|0;n=b+100|0;do{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=_J(b)|0}while((UJ(e)|0)!=0);b:do switch(e|0){case 43:case 45:{i=1-(((e|0)==45&1)<<1)|0;e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;h=d[e>>0]|0;break b}else{h=_J(b)|0;break b}}default:{h=e;i=1}}while(0);e=0;do{if((h|32|0)!=(a[134886+e>>0]|0))break;do if(e>>>0<7){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=_J(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{j=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{j=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[134895+e>>0]|0))break d;do if(e>>>0<2){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=_J(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=_J(b)|0;if((e|0)==40)e=1;else{if(!(c[n>>2]|0)){g=s;break a}c[o>>2]=(c[o>>2]|0)+-1;g=s;break a}while(1){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0}else h=_J(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=s;break a}h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!k){c[(gJ()|0)>>2]=22;YJ(b,0);g=0.0;break a}if(!e){g=s;break a}while(1){e=e+-1|0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!e){g=s;break a}}}case 0:{if((h|0)==48){e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=_J(b)|0;if((e|32|0)==120){g=+gM(b,m,l,i,f);break a}if(!(c[n>>2]|0))e=48;else{c[o>>2]=(c[o>>2]|0)+-1;e=48}}else e=h;g=+hM(b,e,m,l,i,f);break a}default:{if(c[n>>2]|0)c[o>>2]=(c[o>>2]|0)+-1;c[(gJ()|0)>>2]=22;YJ(b,0);g=0.0;break a}}}}while(0);if((j|0)==23){h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[o>>2]=(c[o>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(i|0)*t}while(0);return +g}function gM(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=a+4|0;i=c[y>>2]|0;x=a+100|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;j=d[i>>0]|0;l=0}else{j=_J(a)|0;l=0}a:while(1){switch(j|0){case 46:{w=8;break a}case 48:break;default:{s=0;n=0;o=1.0;h=0.0;i=0;m=j;t=l;v=0;u=0;l=0;j=0;break a}}i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;j=d[i>>0]|0;l=1;continue}else{j=_J(a)|0;l=1;continue}}if((w|0)==8){i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;j=d[i>>0]|0}else j=_J(a)|0;if((j|0)==48){l=0;j=0;do{i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;m=d[i>>0]|0}else m=_J(a)|0;l=DN(l|0,j|0,-1,-1)|0;j=z}while((m|0)==48);s=1;n=0;o=1.0;h=0.0;i=0;t=1;v=0;u=0}else{s=1;n=0;o=1.0;h=0.0;i=0;m=j;t=l;v=0;u=0;l=0;j=0}}while(1){q=m+-48|0;p=m|32;if(q>>>0>=10){r=(m|0)==46;if(!(r|(p+-97|0)>>>0<6))break;if(r)if(!s){s=1;k=o;r=t;l=u;j=v;q=u;p=v}else{m=46;break}else w=20}else w=20;if((w|0)==20){w=0;m=(m|0)>57?p+-87|0:q;do if(!((v|0)<0|(v|0)==0&u>>>0<8))if((v|0)<0|(v|0)==0&u>>>0<14){o=o*.0625;k=o;h=h+o*+(m|0);break}else{t=(n|0)!=0|(m|0)==0;n=t?n:1;k=o;h=t?h:h+o*.5;break}else{k=o;i=m+(i<<4)|0}while(0);q=DN(u|0,v|0,1,0)|0;r=1;p=z}m=c[y>>2]|0;if(m>>>0<(c[x>>2]|0)>>>0){c[y>>2]=m+1;o=k;m=d[m>>0]|0;t=r;v=p;u=q;continue}else{o=k;m=_J(a)|0;t=r;v=p;u=q;continue}}do if(!t){i=(c[x>>2]|0)==0;if(!i)c[y>>2]=(c[y>>2]|0)+-1;if(g){if(!i)c[y>>2]=(c[y>>2]|0)+-1;if(!((s|0)==0|i))c[y>>2]=(c[y>>2]|0)+-1}else YJ(a,0);h=+(f|0)*0.0}else{p=(s|0)==0;q=p?u:l;p=p?v:j;if((v|0)<0|(v|0)==0&u>>>0<8){l=u;j=v;while(1){i=i<<4;w=l;l=DN(l|0,j|0,1,0)|0;if(!((j|0)<0|(j|0)==0&w>>>0<7)){n=i;break}else j=z}}else n=i;if((m|32|0)==112){j=iM(a,g)|0;i=z;if((j|0)==0&(i|0)==-2147483648){if(!g){YJ(a,0);h=0.0;break}if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}}}else if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}l=KN(q|0,p|0,2)|0;l=DN(l|0,z|0,-32,-1)|0;l=DN(l|0,z|0,j|0,i|0)|0;i=z;if(!n){h=+(f|0)*0.0;break}y=0-e|0;g=((y|0)<0)<<31>>31;if((i|0)>(g|0)|(i|0)==(g|0)&l>>>0>y>>>0){c[(gJ()|0)>>2]=34;h=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}y=e+-106|0;g=((y|0)<0)<<31>>31;if((i|0)<(g|0)|(i|0)==(g|0)&l>>>0<y>>>0){c[(gJ()|0)>>2]=34;h=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((n|0)>-1){j=n;do{y=!(h>=.5);j=j<<1|(y^1)&1;h=h+(y?h:h+-1.0);l=DN(l|0,i|0,-1,-1)|0;i=z}while((j|0)>-1);o=h;m=j}else{o=h;m=n}y=((b|0)<0)<<31>>31;e=EN(32,0,e|0,((e|0)<0)<<31>>31|0)|0;i=DN(e|0,z|0,l|0,i|0)|0;e=z;if((e|0)<(y|0)|(e|0)==(y|0)&i>>>0<b>>>0)if((i|0)>0)w=59;else{j=0;i=84;w=61}else{i=b;w=59}if((w|0)==59)if((i|0)<53){j=i;i=84-i|0;w=61}else{k=0.0;h=+(f|0)}if((w|0)==61){h=+(f|0);k=+IJ(+FJ(1.0,i),h);i=j}f=(m&1|0)==0&(o!=0.0&(i|0)<32);h=(f?0.0:o)*h+(k+h*+((m+(f&1)|0)>>>0))-k;if(!(h!=0.0))c[(gJ()|0)>>2]=34;h=+JJ(h,l)}while(0);return +h}function hM(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0;J=l;l=l+512|0;G=J;H=f+e|0;I=0-H|0;D=a+4|0;E=a+100|0;k=0;a:while(1){switch(b|0){case 46:{A=6;break a}case 48:break;default:{v=0;p=k;q=0;o=0;break a}}b=c[D>>2]|0;if(b>>>0<(c[E>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0;k=1;continue}else{b=_J(a)|0;k=1;continue}}if((A|0)==6){b=c[D>>2]|0;if(b>>>0<(c[E>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=_J(a)|0;if((b|0)==48){k=0;b=0;while(1){k=DN(k|0,b|0,-1,-1)|0;o=z;b=c[D>>2]|0;if(b>>>0<(c[E>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=_J(a)|0;if((b|0)==48)b=o;else{v=1;p=1;q=k;break}}}else{v=1;p=k;q=0;o=0}}c[G>>2]=0;n=b+-48|0;m=(b|0)==46;b:do if(m|n>>>0<10){C=G+496|0;w=0;k=0;u=0;x=v;y=p;A=n;p=0;n=0;c:while(1){do if(m)if(!x){x=1;q=p;o=n}else break c;else{p=DN(p|0,n|0,1,0)|0;n=z;v=(b|0)!=48;if((k|0)>=125){if(!v)break;c[C>>2]=c[C>>2]|1;break}m=G+(k<<2)|0;if(!w)b=A;else b=b+-48+((c[m>>2]|0)*10|0)|0;c[m>>2]=b;w=w+1|0;y=(w|0)==9;w=y?0:w;k=k+(y&1)|0;u=v?p:u;y=1}while(0);b=c[D>>2]|0;if(b>>>0<(c[E>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=_J(a)|0;A=b+-48|0;m=(b|0)==46;if(!(m|A>>>0<10)){v=x;m=y;A=29;break b}}b=w;m=(y|0)!=0;A=37}else{w=0;k=0;u=0;m=p;p=0;n=0;A=29}while(0);do if((A|0)==29){C=(v|0)==0;q=C?p:q;o=C?n:o;m=(m|0)!=0;if(!(m&(b|32|0)==101))if((b|0)>-1){b=w;A=37;break}else{b=w;A=39;break}m=iM(a,h)|0;b=z;if((m|0)==0&(b|0)==-2147483648){if(!h){YJ(a,0);i=0.0;break}if(!(c[E>>2]|0)){m=0;b=0}else{c[D>>2]=(c[D>>2]|0)+-1;m=0;b=0}}y=DN(m|0,b|0,q|0,o|0)|0;b=w;o=z;A=41}while(0);if((A|0)==37)if(c[E>>2]|0){c[D>>2]=(c[D>>2]|0)+-1;if(m){y=q;A=41}else A=40}else A=39;if((A|0)==39)if(m){y=q;A=41}else A=40;do if((A|0)==40){c[(gJ()|0)>>2]=22;YJ(a,0);i=0.0}else if((A|0)==41){m=c[G>>2]|0;if(!m){i=+(g|0)*0.0;break}if(((n|0)<0|(n|0)==0&p>>>0<10)&((y|0)==(p|0)&(o|0)==(n|0))?(e|0)>30|(m>>>e|0)==0:0){i=+(g|0)*+(m>>>0);break}a=(f|0)/-2|0;E=((a|0)<0)<<31>>31;if((o|0)>(E|0)|(o|0)==(E|0)&y>>>0>a>>>0){c[(gJ()|0)>>2]=34;i=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=f+-106|0;E=((a|0)<0)<<31>>31;if((o|0)<(E|0)|(o|0)==(E|0)&y>>>0<a>>>0){c[(gJ()|0)>>2]=34;i=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(b){if((b|0)<9){n=G+(k<<2)|0;m=c[n>>2]|0;while(1){m=m*10|0;if((b|0)>=8)break;else b=b+1|0}c[n>>2]=m}k=k+1|0}if((u|0)<9?(u|0)<=(y|0)&(y|0)<18:0){if((y|0)==9){i=+(g|0)*+((c[G>>2]|0)>>>0);break}if((y|0)<9){i=+(g|0)*+((c[G>>2]|0)>>>0)/+(c[56536+(8-y<<2)>>2]|0);break}a=e+27+(O(y,-3)|0)|0;b=c[G>>2]|0;if((a|0)>30|(b>>>a|0)==0){i=+(g|0)*+(b>>>0)*+(c[56536+(y+-10<<2)>>2]|0);break}}b=(y|0)%9|0;if(!b){b=0;n=0}else{u=(y|0)>-1?b:b+9|0;p=c[56536+(8-u<<2)>>2]|0;if(k){q=1e9/(p|0)|0;n=0;o=0;m=y;b=0;do{D=G+(b<<2)|0;E=c[D>>2]|0;a=((E>>>0)/(p>>>0)|0)+n|0;c[D>>2]=a;n=O(q,(E>>>0)%(p>>>0)|0)|0;a=(b|0)==(o|0)&(a|0)==0;m=a?m+-9|0:m;o=a?o+1&127:o;b=b+1|0}while((b|0)!=(k|0));if(!n)n=o;else{c[G+(k<<2)>>2]=n;n=o;k=k+1|0}}else{n=0;k=0;m=y}b=0;y=9-u+m|0}d:while(1){u=(y|0)<18;v=(y|0)==18;w=G+(n<<2)|0;while(1){if(!u){if(!v){m=y;break d}if((c[w>>2]|0)>>>0>=9007199){m=18;break d}}m=0;x=k;k=k+127|0;while(1){o=k&127;p=G+(o<<2)|0;k=KN(c[p>>2]|0,0,29)|0;k=DN(k|0,z|0,m|0,0)|0;m=z;if(m>>>0>0|(m|0)==0&k>>>0>1e9){q=HN(k|0,m|0,1e9,0)|0;k=IN(k|0,m|0,1e9,0)|0}else q=0;c[p>>2]=k;a=(o|0)==(n|0);x=(k|0)==0&(((o|0)!=(x+127&127|0)|a)^1)?o:x;if(a)break;else{m=q;k=o+-1|0}}b=b+-29|0;if(q|0)break;else k=x}n=n+127&127;k=x+127&127;m=G+((x+126&127)<<2)|0;if((n|0)==(x|0))c[m>>2]=c[m>>2]|c[G+(k<<2)>>2];else k=x;c[G+(n<<2)>>2]=q;y=y+9|0}e:while(1){w=k+1&127;x=G+((k+127&127)<<2)|0;while(1){q=(m|0)==18;v=(m|0)>27?9:1;y=n;while(1){p=0;while(1){n=p+y&127;if((n|0)==(k|0)){F=2;A=88;break}n=c[G+(n<<2)>>2]|0;o=c[56568+(p<<2)>>2]|0;if(n>>>0<o>>>0){F=2;A=88;break}if(n>>>0>o>>>0)break;n=p+1|0;if((p|0)<1)p=n;else{F=n;A=88;break}}if((A|0)==88?(A=0,q&(F|0)==2):0){i=0.0;o=0;break e}b=v+b|0;if((y|0)==(k|0))y=k;else break}q=(1<<v)+-1|0;u=1e9>>>v;p=0;n=y;o=y;do{D=G+(o<<2)|0;E=c[D>>2]|0;a=(E>>>v)+p|0;c[D>>2]=a;p=O(E&q,u)|0;a=(o|0)==(n|0)&(a|0)==0;m=a?m+-9|0:m;n=a?n+1&127:n;o=o+1&127}while((o|0)!=(k|0));if(!p)continue;if((w|0)!=(n|0))break;c[x>>2]=c[x>>2]|1}c[G+(k<<2)>>2]=p;k=w}do{n=o+y&127;m=k+1&127;if((n|0)==(k|0)){c[G+(m+-1<<2)>>2]=0;k=m}i=i*1.0e9+ +((c[G+(n<<2)>>2]|0)>>>0);o=o+1|0}while((o|0)!=2);t=+(g|0);j=i*t;o=b+53|0;p=o-f|0;q=(p|0)<(e|0);n=q?((p|0)>0?p:0):e;if((n|0)<53){K=+IJ(+FJ(1.0,105-n|0),j);r=+KJ(j,+FJ(1.0,53-n|0));s=K;i=r;r=K+(j-r)}else{s=0.0;i=0.0;r=j}m=y+2&127;if((m|0)!=(k|0)){m=c[G+(m<<2)>>2]|0;do if(m>>>0>=5e8){if((m|0)!=5e8){i=t*.75+i;break}if((y+3&127|0)==(k|0)){i=t*.5+i;break}else{i=t*.75+i;break}}else{if((m|0)==0?(y+3&127|0)==(k|0):0)break;i=t*.25+i}while(0);if((53-n|0)>1?!(+KJ(i,1.0)!=0.0):0)j=i+1.0;else j=i}else j=i;i=r+j-s;do if((o&2147483647|0)>(-2-H|0)){H=!(+B(+i)>=9007199254740992.0);b=b+((H^1)&1)|0;i=H?i:i*.5;if((b+50|0)<=(I|0)?!(j!=0.0&(q&((n|0)!=(p|0)|H))):0)break;c[(gJ()|0)>>2]=34}while(0);i=+JJ(i,b)}while(0);l=J;return +i}function iM(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;h=a+4|0;e=c[h>>2]|0;i=a+100|0;if(e>>>0<(c[i>>2]|0)>>>0){c[h>>2]=e+1;e=d[e>>0]|0}else e=_J(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[h>>2]|0;if(e>>>0<(c[i>>2]|0)>>>0){c[h>>2]=e+1;e=d[e>>0]|0}else e=_J(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[i>>2]|0)!=0:0)c[h>>2]=(c[h>>2]|0)+-1;break}default:f=0}if((e+-48|0)>>>0>9)if(!(c[i>>2]|0)){f=-2147483648;e=0}else{c[h>>2]=(c[h>>2]|0)+-1;f=-2147483648;e=0}else{g=0;do{g=e+-48+(g*10|0)|0;e=c[h>>2]|0;if(e>>>0<(c[i>>2]|0)>>>0){c[h>>2]=e+1;e=d[e>>0]|0}else e=_J(a)|0}while((e+-48|0)>>>0<10&(g|0)<214748364);b=((g|0)<0)<<31>>31;if((e+-48|0)>>>0<10)do{b=CN(g|0,b|0,10,0)|0;g=z;e=DN(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;g=DN(e|0,z|0,b|0,g|0)|0;b=z;e=c[h>>2]|0;if(e>>>0<(c[i>>2]|0)>>>0){c[h>>2]=e+1;e=d[e>>0]|0}else e=_J(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&g>>>0<2061584302));if((e+-48|0)>>>0<10)do{e=c[h>>2]|0;if(e>>>0<(c[i>>2]|0)>>>0){c[h>>2]=e+1;e=d[e>>0]|0}else e=_J(a)|0}while((e+-48|0)>>>0<10);if(c[i>>2]|0)c[h>>2]=(c[h>>2]|0)+-1;i=(f|0)!=0;e=EN(0,0,g|0,b|0)|0;f=i?z:b;e=i?e:g}z=f;return e|0}function jM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=WJ(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0<d>>>0?f:d;PN(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function kM(a,b,c){a=a|0;b=b|0;c=c|0;return lM(a,b,c)|0}function lM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+76>>2]|0)>-1){e=(KK(a)|0)==0;b=mM(a,b,d)|0;if(!e)LK(a)}else b=mM(a,b,d)|0;return b|0}function mM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((d|0)==1)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;e=a+20|0;f=a+28|0;if((c[e>>2]|0)>>>0>(c[f>>2]|0)>>>0?(bb[c[a+36>>2]&31](a,0,0)|0,(c[e>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[f>>2]=0;c[e>>2]=0;if((bb[c[a+40>>2]&31](a,b,d)|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function nM(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;while(1){e=a[b>>0]|0;c=e<<24>>24;f=b+1|0;if(!(UJ(c)|0))break;else b=f}switch(c|0){case 45:{b=1;g=5;break}case 43:{b=0;g=5;break}default:{h=0;d=b;b=e}}if((g|0)==5){h=b;d=f;b=a[f>>0]|0}c=(b<<24>>24)+-48|0;if(c>>>0<10){b=0;do{d=d+1|0;b=(b*10|0)-c|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10)}else b=0;return (h|0?b:0-b|0)|0}function oM(a){a=a|0;return +(+pM(a,0))}function pM(a,b){a=a|0;b=b|0;return +(+qM(a,b,1))}function qM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=l;l=l+128|0;h=i;f=h;g=f+124|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;YJ(h,0);e=+fM(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b|0)c[b>>2]=d|0?a+d|0:a;l=i;return +e}function rM(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!c)b=0;else{h=b;while(1){g=c>>>1;b=h+(O(g,d)|0)|0;f=ab[e&63](a,b)|0;if(!f)break a;if((c|0)==1){b=0;break a}f=(f|0)<0;c=f?g:c-g|0;if(!c){b=0;break}else h=f?h:b}}while(0);return b|0}function sM(a,c){a=a|0;c=c|0;var d=0,f=0,g=0;g=a+2|0;f=a+4|0;d=CN((e[c+2>>1]|0)<<16|(e[c>>1]|0)|0,e[c+4>>1]|0|0,(e[g>>1]|0)<<16|(e[a>>1]|0)|0,e[f>>1]|0|0)|0;c=DN(d|0,z|0,e[c+6>>1]|0|0,0)|0;d=z;b[a>>1]=c;a=JN(c|0,d|0,16)|0;b[g>>1]=a;b[f>>1]=d;z=d&65535;return c|0}function tM(a){a=a|0;b[86936]=b[29334]|0;b[86937]=b[29335]|0;b[86938]=b[29336]|0;b[29334]=b[a>>1]|0;b[29335]=b[a+2>>1]|0;b[29336]=b[a+4>>1]|0;return 173872}function uM(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=13070;b[d+2>>1]=a;b[d+4>>1]=a>>>16;tM(d)|0;l=c;return}function vM(a){a=a|0;var b=0;b=sM(a,58674)|0;b=KN(b|0,z|0,4)|0;a=z|1072693248;c[j>>2]=b;c[j+4>>2]=a;return +(+h[j>>3]+-1.0)}function wM(){return +(+vM(58668))}function xM(a,b){a=a|0;b=b|0;if(!a)b=YI(1,24)|0;else{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0}return b|0}function yM(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b|0)do{XI(c[b>>2]|0);d=b;b=c[b+4>>2]|0;XI(d)}while((b|0)!=0);XI(a);return}function zM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;h=a+16|0;a:do if(!(c[h>>2]|0)){k=a+12|0;g=c[k>>2]|0;if(g>>>0<f>>>0){do if(b)if(!d){c[h>>2]=1;b=0;break a}else{h=a+8|0;c[h>>2]=d;g=1024;b=d;break}else{g=f<<3;g=g>>>0>1024?g:1024;j=WI(8)|0;if(!j){c[h>>2]=1;b=0;break a}b=WI(g)|0;c[j>>2]=b;d=b;if(!b){XI(j);c[h>>2]=1;b=0;break a}c[j+4>>2]=0;h=a+4|0;i=c[h>>2]|0;if(i|0)c[i+4>>2]=j;if(!(c[a>>2]|0))c[a>>2]=j;c[h>>2]=j;h=a+8|0;c[h>>2]=d}while(0);c[k>>2]=g}else{h=a+8|0;b=c[h>>2]|0;d=b}d=d+f&3;d=((d|0)==0?0:4-d|0)+f|0;c[h>>2]=b+d;c[k>>2]=g-d;if(e)RN(b|0,0,d|0)|0}else b=0;while(0);return b|0}function AM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=l;l=l+48|0;i=v;t=BM()|0;a:do if(!t)b=12;else{u=xM(0,0)|0;if(!u){CM(t);b=12;break}e=i+8|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[i>>2]=u;c[i+4>>2]=t;c[i+16>>2]=b;c[i+32>>2]=d;e=i+28|0;c[e>>2]=-1;b=DM(i)|0;b:do if(!b){h=i+20|0;f=c[h>>2]|0;c[a>>2]=f+-1;j=c[i+8>>2]|0;b=c[e>>2]|0;if((b|0)<(f|0)){g=YI(1,68)|0;if(g){r=b>>>31^1;c[g+60>>2]=r;c[g+28>>2]=f;if((d&8|0)==0|(r|0)!=0){b=EM(0,t,j,g)|0;if(b|0){h=0;i=0;f=0;e=0;break}f=c[g+40>>2]|0;if((f|0)>0){b=(f<<2)+4|0;e=WI(b)|0;if(!e){h=0;i=0;b=12;f=0;e=0;break}c[g+32>>2]=e;RN(e|0,-1,b|0)|0}else e=0;r=YI(f<<1|1,4)|0;c[g+36>>2]=r;if(!r){h=0;i=0;b=12;f=0;e=0;break}b=YI(c[h>>2]|0,12)|0;if(!b){h=0;i=0;b=12;f=0;e=0;break}c[g+16>>2]=b;b=EM(u,t,j,g)|0;if(!b)b=e;else{h=0;i=0;f=0;e=0;break}}else b=0;r=i+24|0;b=FM(u,t,j,r,b)|0;if(!b){b=c[r>>2]|0;c[r>>2]=b+1;b=GM(u,0,0,b)|0;if((b|0)!=0?(s=HM(u,j,b)|0,(s|0)!=0):0){b=IM(u,t,s)|0;if(!b){e=c[r>>2]|0;b=e<<2;p=WI(b)|0;if(p){q=WI(b)|0;if(q){if((e|0)>0)RN(p|0,0,e<<2|0)|0;JM(s,0,p,0)|0;f=c[r>>2]|0;if((f|0)>0){b=0;e=0;do{c[q+(e<<2)>>2]=b;o=p+(e<<2)|0;b=b+1+(c[o>>2]|0)|0;c[o>>2]=0;e=e+1|0}while((e|0)<(f|0));m=b}else m=0;n=YI(m+1|0,32)|0;if(n){c[g>>2]=n;o=g+4|0;c[o>>2]=m;b=JM(s,n,p,q)|0;if(!b){c[g+20>>2]=0;f=s+24|0;b=c[f>>2]|0;e=0;while(1){e=e+1|0;if((c[b>>2]|0)<=-1)break;else b=b+32|0}k=YI(e,32)|0;if(!k){h=p;i=q;b=12;f=p;e=q}else{c[g+8>>2]=k;e=c[f>>2]|0;f=c[e>>2]|0;if((f|0)>-1){b=0;do{c[k+(b<<5)+8>>2]=n+(c[q+(f<<2)>>2]<<5);c[k+(b<<5)+12>>2]=f;i=k+(b<<5)+16|0;c[i>>2]=0;j=e+12|0;h=c[j>>2]|0;if(h|0){f=0;do{w=f;f=f+1|0}while((c[h+(w<<2)>>2]|0)>-1);f=f<<2;h=WI(f)|0;c[i>>2]=h;if(!h){h=p;i=q;b=12;f=p;e=q;break b}PN(h|0,c[j>>2]|0,f|0)|0}c[k+(b<<5)+20>>2]=c[e+16>>2];b=b+1|0;e=e+32|0;f=c[e>>2]|0}while((f|0)>-1)}else b=0;c[k+(b<<5)+8>>2]=0;c[o>>2]=m;c[g+12>>2]=n+(c[q+(c[c[s+28>>2]>>2]<<2)>>2]<<5);c[g+52>>2]=c[r>>2];c[g+56>>2]=d;yM(u);CM(t);XI(p);XI(q);c[a+4>>2]=g;b=0;break a}}else{h=p;i=q;f=p;e=q}}else{h=p;i=q;b=12;f=p;e=q}}else{h=p;i=q;b=12;f=p;e=0}}else{h=p;i=0;b=12;f=0;e=0}}else{h=0;i=0;f=0;e=0}}else{h=0;i=0;b=12;f=0;e=0}}else{h=0;i=0;f=0;e=0}}else{h=0;i=0;b=12;f=0;e=0}}else{g=0;h=0;i=0;b=6;f=0;e=0}}else{g=0;h=0;i=0;f=0;e=0}while(0);yM(u);CM(t);if(h|0)XI(f);if(i|0)XI(e);c[a+4>>2]=g;KM(a)}while(0);l=v;return b|0}function BM(){var a=0,b=0;a=WI(20)|0;do if(a){b=WI(2048)|0;c[a+16>>2]=b;if(!b){XI(a);a=0;break}else{c[a>>2]=512;c[a+4>>2]=1024e3;c[a+8>>2]=128;c[a+12>>2]=0;break}}while(0);return a|0}function CM(a){a=a|0;XI(c[a+16>>2]|0);XI(a);return}function DM(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+16|0;p=u+4|0;q=u;r=c[b+32>>2]&1;s=b+16|0;e=c[s>>2]|0;t=c[b+4>>2]|0;d=OM(t,0)|0;a:do if(!d){m=(r|0)!=0;n=b+8|0;o=b+12|0;d=0;k=1;b:while(1){g=0;h=d;f=0;c:while(1){d=a[e>>0]|0;if(m){if(d<<24>>24==40)break;if((h|0)!=0&d<<24>>24==41)j=13;else j=14}else if(d<<24>>24==92)switch(a[e+1>>0]|0){case 40:break c;case 41:{j=13;break}default:j=14}else j=14;if((j|0)==13){j=0;i=GM(c[b>>2]|0,-1,-1,-1)|0;c[n>>2]=i;if(!i){d=12;break a}else i=f}else if((j|0)==14){j=0;d=bN(b,e)|0;if(d|0)break a;i=f;e=c[o>>2]|0}d:while(1){e:while(1){d=a[e>>0]|0;switch(d<<24>>24){case 42:case 92:break;default:{if(!m)break e;switch(d<<24>>24){case 123:case 63:case 43:break;default:break e}}}d=d<<24>>24==92;if(m&d)break;f=e+1|0;if(d)switch(a[f>>0]|0){case 123:case 63:case 43:break;default:break e}e=d?f:e;if((!m?(e|0)==((c[s>>2]|0)+1|0):0)?(a[e+-1>>0]|0)==94:0)break;if((a[e>>0]|0)==123){e=cN(e+1|0,r,p,q)|0;if(!e){j=28;break b}d=c[q>>2]|0;f=c[b>>2]|0;if(!d)d=GM(f,-1,-1,-1)|0;else j=36}else{c[p>>2]=0;c[q>>2]=-1;d=a[e>>0]|0;if(d<<24>>24==43){c[p>>2]=1;d=a[e>>0]|0}if(d<<24>>24==63){c[q>>2]=1;d=1}else d=-1;e=e+1|0;f=c[b>>2]|0;j=36}if((j|0)==36){j=0;d=YM(f,c[n>>2]|0,c[p>>2]|0,d,0)|0}c[n>>2]=d;if(!d){d=12;break a}}d=HM(c[b>>2]|0,g,c[n>>2]|0)|0;f=a[e>>0]|0;f:do if(m){if(f<<24>>24==124){j=40;break d}if((h|0)!=0&f<<24>>24==41|f<<24>>24==0)j=47;else{g=d;f=i;continue c}}else{switch(f<<24>>24){case 0:{j=47;break f}case 92:break;default:{g=d;f=i;continue c}}switch(a[e+1>>0]|0){case 124:case 41:break;default:{g=d;f=i;continue c}}d=ZM(c[b>>2]|0,i,d)|0;if((a[e+1>>0]|0)==124){f=2;break d}if(!h){d=8;break a}e=e+2|0;f=92}while(0);if((j|0)==47){j=0;d=ZM(c[b>>2]|0,i,d)|0;e=f<<24>>24==41?e+1|0:e}d=dN(b,d,PM(t)|0)|0;if(d|0)break a;d=f<<24>>24==0;f=(h|0)<1;if(f&d){j=50;break b}if(f|d){d=8;break a}g=QM(t)|0;h=h+-1|0;i=QM(t)|0}if((j|0)==40){f=1;d=ZM(c[b>>2]|0,i,d)|0}g=0;e=e+f|0;f=d}d=NM(t,f)|0;if(d|0)break a;d=NM(t,g)|0;if(d|0)break a;d=OM(t,k)|0;if(d|0)break a;d=h+1|0;k=k+1|0;e=m?e+1|0:e+2|0}if((j|0)==28){d=10;break}else if((j|0)==50){c[b+20>>2]=k;d=0;break}}while(0);l=u;return d|0}function EM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=MM(d)|0;y=(b|0)==0|(f|0)==0;if(!y){c[f+48>>2]=0;c[c[f+36>>2]>>2]=-1}h=c[f+28>>2]|0;z=WI((h<<3)+8|0)|0;do if(!z)g=12;else{c[z>>2]=-1;A=WI((h<<2)+4|0)|0;if(!A){XI(z);g=12;break}c[A>>2]=-1;g=0;while(1)if(g>>>0>h>>>0)break;else g=g+1|0;NM(d,e)|0;g=OM(d,0)|0;a:do if((g|0)!=0|(MM(d)|0)<=(x|0)){e=z;n=0;h=0;m=0;l=-1}else{u=f+32|0;v=f+36|0;w=f+16|0;e=z;n=0;h=0;m=0;t=1;l=-1;s=0;while(1){b:do switch(PM(d)|0){case 6:{i=PM(d)|0;g=0;do{j=e+(g<<2)|0;g=g+1|0}while((c[j>>2]|0)>-1);c[j>>2]=i<<1|1;c[e+(g<<2)>>2]=-1;g=0;while(1)if((c[A+(g<<2)>>2]|0)>-1)g=g+1|0;else break;c[A+(g+-1<<2)>>2]=-1;g=0;j=t;i=s;break}case 0:{q=QM(d)|0;r=q+12|0;j=c[r>>2]|0;if((j|0)>-1){g=0;do{i=e+(g<<2)|0;g=g+1|0}while((c[i>>2]|0)>-1);c[i>>2]=j<<1;c[e+(g<<2)>>2]=-1;if(!y){g=0;while(1)if((c[A+(g<<2)>>2]|0)>-1)g=g+1|0;else break;i=(c[w>>2]|0)+(j*12|0)+8|0;c[i>>2]=0;if((g|0)>0){g=WI((g<<2)+4|0)|0;if(!g){g=12;j=t;i=s;break b}c[i>>2]=g;i=c[A>>2]|0;if((i|0)>-1){k=0;j=g;do{c[j>>2]=i;k=k+1|0;i=c[A+(k<<2)>>2]|0;j=g+(k<<2)|0}while((i|0)>-1);g=j}c[g>>2]=-1}}g=OM(d,c[r>>2]|0)|0;if(g|0){j=t;i=s;break b}g=OM(d,6)|0;if(g|0){j=t;i=s;break b}}c:do switch(c[q>>2]|0){case 0:{p=c[c[q+4>>2]>>2]|0;if((p|0)>-1|(p|0)==-4?(c[e>>2]|0)>-1:0){if(y){c[q+20>>2]=1;g=0}else{g=_M(b,q,m)|0;c[(c[u>>2]|0)+(m<<2)>>2]=s;if((l|0)>-1){j=c[v>>2]|0;i=0;while(1){k=j+(i<<2)|0;o=i+1|0;if((c[k>>2]|0)>-1)i=o;else break}c[k>>2]=m;c[j+(o<<2)>>2]=l;c[j+(i+2<<2)>>2]=-1;h=h+1|0;l=-1}$M(e,f,m)}c[e>>2]=-1;p=t+1|0;o=s;n=n+1|0;m=t}else{p=t;g=0;o=s}break}case 1:{j=c[q+4>>2]|0;k=c[j>>2]|0;j=c[j+4>>2]|0;g=NM(d,q)|0;if(!g){g=OM(d,5)|0;if(!g){g=NM(d,j)|0;if(!g){g=OM(d,0)|0;if(!g){i=k+20|0;g=OM(d,(c[i>>2]|0)+t|0)|0;if(!g){if((c[i>>2]|0)>0){i=(c[j+20>>2]|0)>0;g=i?t:-1;i=t+(i&1)|0}else{g=-1;i=t}g=OM(d,g)|0;if(!g){g=OM(d,4)|0;if(!g){g=NM(d,k)|0;if(!g){p=i;g=OM(d,0)|0;o=s}else{p=i;o=s}}else{p=i;o=s}}else{p=i;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}break}case 2:{i=c[q+4>>2]|0;if(y){if((c[e>>2]|0)>-1)g=1;else g=(a[i+12>>0]&1)!=0;g=OM(d,g&1)|0;if(g|0){p=t;o=s;break c}}else{g=OM(d,m)|0;if(g|0){p=t;o=s;break c}g=OM(d,a[i+12>>0]&1)|0;if(g|0){p=t;o=s;break c}}g=NM(d,q)|0;if(!g){g=OM(d,1)|0;if(!g){g=NM(d,c[i>>2]|0)|0;if(!g){g=OM(d,0)|0;if(!g){if((c[e>>2]|0)<=-1?(a[i+12>>0]&1)==0:0){p=t;g=0;o=0;break c}if(y)g=0;else{g=_M(b,q,m)|0;c[(c[u>>2]|0)+(m<<2)>>2]=(a[i+12>>0]&1)==0?s:1;if((l|0)>-1){j=c[v>>2]|0;i=0;while(1){k=j+(i<<2)|0;o=i+1|0;if((c[k>>2]|0)>-1)i=o;else break}c[k>>2]=m;c[j+(o<<2)>>2]=l;c[j+(i+2<<2)>>2]=-1;h=h+1|0;l=-1}$M(e,f,m)}c[e>>2]=-1;p=t+1|0;o=0;n=n+1|0;m=t}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}break}case 3:{j=c[q+4>>2]|0;k=c[j>>2]|0;j=c[j+4>>2]|0;i=(c[e>>2]|0)>-1;p=t+1|0;g=OM(d,i?p:t)|0;if(!g){g=OM(d,i?t:m)|0;if(!g){g=NM(d,e)|0;if(!g){g=OM(d,(c[e>>2]|0)>>>31^1)|0;if(!g){g=NM(d,q)|0;if(!g){g=NM(d,j)|0;if(!g){g=NM(d,k)|0;if(!g){g=OM(d,3)|0;if(!g){g=NM(d,j)|0;if(!g){g=OM(d,0)|0;if(!g){g=OM(d,2)|0;if(g|0){p=t;o=s;break c}g=NM(d,k)|0;if(g|0){p=t;o=s;break c}g=OM(d,0)|0;if(g|0){p=t;o=s;break c}if((c[e>>2]|0)>-1){if(y)g=0;else{g=_M(b,q,m)|0;c[(c[u>>2]|0)+(m<<2)>>2]=s;if((l|0)>-1){j=c[v>>2]|0;i=0;while(1){k=j+(i<<2)|0;o=i+1|0;if((c[k>>2]|0)>-1)i=o;else break}c[k>>2]=m;c[j+(o<<2)>>2]=l;c[j+(i+2<<2)>>2]=-1;h=h+1|0;l=-1}$M(e,f,m)}c[e>>2]=-1;n=n+1|0;m=t;i=p}else{g=0;i=t}t=(c[q+16>>2]|0)>0;p=t?i+2|0:i;o=s;m=t?i+1|0:m}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}break}default:{p=t;g=0;o=s}}while(0);j=c[r>>2]|0;if((j|0)>-1){i=0;do{k=A+(i<<2)|0;i=i+1|0}while((c[k>>2]|0)>-1);c[k>>2]=j;c[A+(i<<2)>>2]=-1;j=p;i=o}else{j=p;i=o}break}case 1:{g=QM(d)|0;if(y){i=c[(c[c[g+4>>2]>>2]|0)+20>>2]|0;c[g+20>>2]=(PM(d)|0)+i;i=0;l=-1}else{q=PM(d)|0;r=PM(d)|0;i=q;l=(q|0)==0?l:r}g=0;j=t;i=y?s:(i|0)==0&1;break}case 4:{i=PM(d)|0;j=PM(d)|0;g=0;m=(i|0)>-1?i:m;i=s;break}case 5:{g=QM(d)|0;if(y){j=c[g+4>>2]|0;c[g+20>>2]=(c[(c[j+4>>2]|0)+20>>2]|0)+(c[(c[j>>2]|0)+20>>2]|0);g=0;j=t;i=s}else{g=0;j=t;i=s}break}case 2:{while(1)if((c[e>>2]|0)>-1)e=e+4|0;else{g=0;j=t;i=s;break}break}case 3:{j=QM(d)|0;o=QM(d)|0;g=QM(d)|0;e=PM(d)|0;if(y){r=c[g+4>>2]|0;s=g+16|0;c[g+20>>2]=(c[(c[r>>2]|0)+20>>2]|0)+e+(c[(c[r+4>>2]|0)+20>>2]|0)+((c[s>>2]|0)>0?2:0);g=s}else g=g+16|0;e=QM(d)|0;i=PM(d)|0;k=PM(d)|0;if((c[g>>2]|0)>0){if(y)g=0;else{g=aN(b,j,i)|0;c[(c[u>>2]|0)+(i<<2)>>2]=1;if(!g)g=aN(b,o,k)|0;c[(c[u>>2]|0)+(k<<2)>>2]=1}n=n+2|0;j=t;i=1}else{g=0;j=t;i=1}break}default:{g=0;j=t;i=s}}while(0);if((g|0)!=0|(MM(d)|0)<=(x|0))break a;else{t=j;s=i}}}while(0);if(!y?($M(e,f,m),(l|0)>-1):0){i=c[f+36>>2]|0;e=0;while(1){j=i+(e<<2)|0;k=e+1|0;if((c[j>>2]|0)>-1)e=k;else break}c[j>>2]=m;c[i+(k<<2)>>2]=l;c[i+(e+2<<2)>>2]=-1;h=h+1|0}c[f+48>>2]=n;c[f+40>>2]=n;c[f+44>>2]=h;XI(z);XI(A)}while(0);return g|0}function FM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+16|0;t=y+12|0;x=y+8|0;u=y+4|0;v=y;w=MM(b)|0;c[t>>2]=0;c[x>>2]=0;d=NM(b,d)|0;a:do if(!d){d=OM(b,0)|0;if(!d){b:do if((MM(b)|0)>(w|0)){g=0;i=0;j=0;c:while(1){q=PM(b)|0;r=QM(b)|0;d:do switch(q|0){case 0:{switch(c[r>>2]|0){case 0:{d=c[r+4>>2]|0;r=c[d>>2]|0;if(!((r|0)>-1|(r|0)==-4)){d=j;break d}r=d+8|0;d=(c[r>>2]|0)+j|0;c[r>>2]=d;if((d|0)<=(c[x>>2]|0)){d=j;break d}c[x>>2]=d;d=j;break d}case 3:{h=c[r+4>>2]|0;d=NM(b,c[h+4>>2]|0)|0;if(d|0)break b;d=OM(b,0)|0;if(d|0)break b;d=NM(b,c[h>>2]|0)|0;if(d|0)break b;break}case 1:{h=c[r+4>>2]|0;d=NM(b,c[h+4>>2]|0)|0;if(d|0)break b;d=OM(b,0)|0;if(d|0)break b;d=NM(b,c[h>>2]|0)|0;if(d|0)break b;break}case 2:{h=c[r+4>>2]|0;d=OM(b,j)|0;if(d|0)break b;d=NM(b,r)|0;if(d|0)break b;d=OM(b,1)|0;if(d|0)break b;d=NM(b,c[h>>2]|0)|0;if(d|0)break b;d=OM(b,0)|0;if(d|0)break b;if((c[h+4>>2]|0)<=1?(c[h+8>>2]|0)<=1:0)d=j;else{c[t>>2]=0;d=0}i=i+1|0;break d}default:{d=j;break d}}d=OM(b,0)|0;if(!d)d=j;else break b;break}case 1:{p=r+4|0;o=c[p>>2]|0;q=PM(b)|0;c[t>>2]=q;n=o+4|0;j=c[n>>2]|0;if((j|0)<=1)if((c[o+8>>2]|0)>1){c[u>>2]=0;if((j|0)>0)s=30;else{d=q;h=0;s=37}}else d=q;else{c[u>>2]=0;s=30}e:do if((s|0)==30){d=XM(a,b,c[o>>2]|0,(j|0)>1?1:2,t,f,v,x)|0;if(!d){h=0;k=q;m=1}else{s=34;break c}while(1){d=c[v>>2]|0;if(!h)h=d;else h=HM(a,h,d)|0;if(!h){d=12;s=34;break c}j=c[n>>2]|0;if((m|0)>=(j|0)){d=k;s=37;break e}k=c[t>>2]|0;m=m+1|0;d=XM(a,b,c[o>>2]|0,(m|0)<(j|0)?1:2,t,f,v,x)|0;if(d|0){s=34;break c}}}while(0);if((s|0)==37){s=0;n=o+8|0;k=c[n>>2]|0;if((k|0)==-1){k=c[t>>2]|0;d=XM(a,b,c[o>>2]|0,0,t,0,u,x)|0;if(d|0)break c;j=YM(a,c[u>>2]|0,0,-1,0)|0;c[u>>2]=j;if(!j){d=12;break c}else d=k}else if((j|0)<(k|0)){k=j;j=0;while(1){m=c[t>>2]|0;d=XM(a,b,c[o>>2]|0,0,t,0,v,x)|0;if(d|0){s=49;break c}if(!j){d=c[v>>2]|0;c[u>>2]=d}else{d=HM(a,c[v>>2]|0,j)|0;c[u>>2]=d}if(!d){d=12;s=49;break c}j=GM(a,-1,-1,-1)|0;if(!j){d=12;s=49;break c}j=ZM(a,j,d)|0;c[u>>2]=j;if(!j){d=12;s=49;break c}k=k+1|0;if((k|0)>=(c[n>>2]|0)){d=m;break}}}else j=0;c[t>>2]=d;if(h){if(j){h=HM(a,h,j)|0;s=54}}else{h=j;s=54}if((s|0)==54){s=0;if(!h){d=12;break c}}c[p>>2]=c[h+4>>2];c[r>>2]=c[h>>2]}i=i+-1|0;h=d-q+g|0;if(!i){c[t>>2]=h;g=h;i=0;d=h}else g=h;break}default:d=j}while(0);if((MM(b)|0)>(w|0))j=d;else{d=0;break b}}break a}else{d=0;g=0}while(0);w=(c[e>>2]|0)+g|0;x=c[x>>2]|0;c[e>>2]=(x|0)>(w|0)?x:w}}while(0);l=y;return d|0}function GM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=zM(a,0,0,1,20)|0;a=WM(a,0,f)|0;if(!a)a=0;else{c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e}return a|0}function HM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(b){e=zM(a,0,0,1,8)|0;a=WM(a,1,e)|0;if(!a)d=0;else{c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0);d=a}}return d|0}function IM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;j=o+4|0;k=o;m=MM(b)|0;d=NM(b,d)|0;a:do if(!d){d=OM(b,0)|0;if(!d)if((MM(b)|0)>(m|0)){b:while(1){h=PM(b)|0;i=QM(b)|0;c:do switch(h|0){case 0:switch(c[i>>2]|0){case 0:{g=c[i+4>>2]|0;f=c[g>>2]|0;if((f|0)==-4){c[i+8>>2]=0;d=g+8|0;h=RM(a,c[d>>2]|0,0,1114111,0,0,-1)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=RM(a,c[d>>2]|0,0,1114111,0,0,c[g+4>>2]|0)|0;c[i+28>>2]=h;if(!h){d=12;break a}else break c}d=i+8|0;if((f|0)<0){c[d>>2]=1;h=SM(a)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=SM(a)|0;c[i+28>>2]=h;if(!h){d=12;break a}else break c}else{c[d>>2]=0;d=g+8|0;e=g+4|0;h=RM(a,c[d>>2]|0,f,c[e>>2]|0,0,0,-1)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=RM(a,c[d>>2]|0,c[g>>2]|0,c[e>>2]|0,c[g+12>>2]|0,c[g+16>>2]|0,-1)|0;c[i+28>>2]=h;if(!h){d=12;break a}else break c}}case 3:{d=NM(b,i)|0;if(d|0)break a;d=OM(b,1)|0;if(d|0)break a;e=i+4|0;d=NM(b,c[(c[e>>2]|0)+4>>2]|0)|0;if(d|0)break a;d=OM(b,0)|0;if(d|0)break a;d=NM(b,c[c[e>>2]>>2]|0)|0;if(d|0)break a;d=OM(b,0)|0;if(!d)break c;else break a}case 1:{d=NM(b,i)|0;if(d|0)break a;d=OM(b,2)|0;if(d|0)break a;e=i+4|0;d=NM(b,c[(c[e>>2]|0)+4>>2]|0)|0;if(d|0)break a;d=OM(b,0)|0;if(d|0)break a;d=NM(b,c[c[e>>2]>>2]|0)|0;if(d|0)break a;d=OM(b,0)|0;if(!d)break c;else break a}case 2:{d=NM(b,i)|0;if(d|0)break a;d=OM(b,3)|0;if(d|0)break a;d=NM(b,c[c[i+4>>2]>>2]|0)|0;if(d|0)break a;d=OM(b,0)|0;if(!d)break c;else break a}default:break c}case 1:{d=c[i+4>>2]|0;e=c[d>>2]|0;f=d+4|0;g=c[f>>2]|0;if(!(c[e+8>>2]|0))h=(c[g+8>>2]|0)!=0;else h=1;c[i+8>>2]=h&1;h=TM(a,c[e+24>>2]|0,c[g+24>>2]|0,0,0)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=TM(a,c[(c[d>>2]|0)+28>>2]|0,c[(c[f>>2]|0)+28>>2]|0,0,0)|0;c[i+28>>2]=h;if(!h){d=12;break a}break}case 3:{h=c[i+4>>2]|0;d=c[h>>2]|0;if(!(c[h+4>>2]|0))e=1;else e=(c[d+8>>2]|0)!=0&1;c[i+8>>2]=e;c[i+24>>2]=c[d+24>>2];c[i+28>>2]=c[d+28>>2];break}case 2:{g=c[i+4>>2]|0;d=c[g>>2]|0;e=d+8|0;if(!(c[e>>2]|0))f=0;else f=(c[(c[g+4>>2]|0)+8>>2]|0)!=0;c[i+8>>2]=f&1;if(c[e>>2]|0){d=UM(b,d,0,0,j)|0;if(d|0)break b;e=WI((c[j>>2]<<2)+4|0)|0;if(!e){d=12;break b}c[e>>2]=-1;c[k>>2]=0;d=UM(b,c[g>>2]|0,e,k,0)|0;if(d|0){n=45;break b}d=g+4|0;h=i+24|0;c[h>>2]=TM(a,c[(c[d>>2]|0)+24>>2]|0,c[(c[g>>2]|0)+24>>2]|0,e,c[k>>2]|0)|0;XI(e);if(!(c[h>>2]|0)){d=12;break b}else f=d}else{c[i+24>>2]=c[d+24>>2];f=g+4|0}d=c[f>>2]|0;if(c[d+8>>2]|0){d=UM(b,d,0,0,j)|0;if(d|0)break b;e=WI((c[j>>2]<<2)+4|0)|0;if(!e){d=12;break b}c[e>>2]=-1;c[k>>2]=0;d=UM(b,c[f>>2]|0,e,k,0)|0;if(d|0){n=52;break b}i=i+28|0;c[i>>2]=TM(a,c[(c[g>>2]|0)+28>>2]|0,c[(c[f>>2]|0)+28>>2]|0,e,c[k>>2]|0)|0;XI(e);if(!(c[i>>2]|0)){d=12;break b}}else c[i+28>>2]=c[d+28>>2];break}default:{}}while(0);if((MM(b)|0)<=(m|0)){d=0;break a}}if((n|0)==45)XI(e);else if((n|0)==52)XI(e)}else d=0}while(0);l=o;return d|0}function JM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:while(1){switch(c[a>>2]|0){case 2:{a=c[a+4>>2]|0;if((c[a+8>>2]|0)==-1?(h=c[a>>2]|0,h=LM(c[h+28>>2]|0,c[h+24>>2]|0,b,d,e)|0,(h|0)!=0):0){a=h;break a}break}case 3:{f=c[a+4>>2]|0;a=JM(c[f>>2]|0,b,d,e)|0;if(a|0)break a;a=f+4|0;break}case 1:{f=c[a+4>>2]|0;g=f+4|0;a=LM(c[(c[f>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+24>>2]|0,b,d,e)|0;if(a|0)break a;a=JM(c[f>>2]|0,b,d,e)|0;if(!a)a=g;else break a;break}default:{a=0;break a}}a=c[a>>2]|0}return a|0}function KM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=c[a+4>>2]|0;if(h|0){e=h+4|0;a=c[h>>2]|0;if(c[e>>2]|0){d=0;do{if(c[a+(d<<5)+8>>2]|0){b=c[a+(d<<5)+16>>2]|0;if(b){XI(b);a=c[h>>2]|0}b=c[a+(d<<5)+28>>2]|0;if(b){XI(b);a=c[h>>2]|0}}d=d+1|0}while(d>>>0<(c[e>>2]|0)>>>0)}if(a|0)XI(a);d=h+8|0;a=c[d>>2]|0;if(a|0){if(c[a+8>>2]|0){while(1){b=c[a+16>>2]|0;if(b|0)XI(b);if(!(c[a+40>>2]|0))break;else a=a+32|0}a=c[d>>2]|0}XI(a)}f=h+16|0;a=c[f>>2]|0;if(a|0){g=h+28|0;b=c[g>>2]|0;if(b){e=0;do{d=c[a+(e*12|0)+8>>2]|0;if(d){XI(d);b=c[g>>2]|0;a=c[f>>2]|0}e=e+1|0}while(e>>>0<b>>>0)}XI(a)}a=c[h+32>>2]|0;if(a|0)XI(a);a=c[h+20>>2]|0;if(a|0)XI(a);a=c[h+36>>2]|0;if(a|0)XI(a);XI(h)}return}function LM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;g=c[a>>2]|0;h=(g|0)>-1;a:do if(!d)if(h){h=b+32|0;do{if((c[b>>2]|0)>-1?(y=e+(g<<2)|0,c[y>>2]=(c[y>>2]|0)+1,(c[h>>2]|0)>-1):0){g=h;do{y=e+(c[a>>2]<<2)|0;c[y>>2]=(c[y>>2]|0)+1;g=g+32|0}while((c[g>>2]|0)>-1)}a=a+32|0;g=c[a>>2]|0}while((g|0)>-1);g=0}else g=0;else if(h)while(1){h=c[b>>2]|0;b:do if((h|0)>-1){p=a+4|0;q=a+8|0;r=a+16|0;s=a+20|0;t=a+24|0;u=a+28|0;v=a+12|0;e=-1;g=b;while(1){o=h;while(1){if((o|0)!=(e|0))break;g=g+32|0;h=c[g>>2]|0;if((h|0)>-1)o=h;else break b}l=d+(c[f+(c[a>>2]<<2)>>2]<<5)|0;while(1){h=l+8|0;if(!(c[h>>2]|0))break;else l=l+32|0}c[l+40>>2]=0;c[l>>2]=c[p>>2];c[l+4>>2]=c[q>>2];c[h>>2]=d+(c[f+(o<<2)>>2]<<5);c[l+12>>2]=o;h=c[s>>2]|0;e=c[g+16>>2]|c[r>>2]|(h|0?4:0)|(c[t>>2]|0?8:0);i=l+20|0;c[i>>2]=e;j=c[u>>2]|0;if((j|0)>-1){c[i>>2]=e|256;h=j}c[l+24>>2]=h;e=c[t>>2]|0;if(!e)c[l+28>>2]=0;else{h=0;do{n=h;h=h+1|0}while((c[e+(n<<2)>>2]|0)!=0);h=WI(h<<2)|0;c[l+28>>2]=h;if(!h){g=12;break a}k=c[t>>2]|0;e=c[k>>2]|0;if(e){j=0;i=h;do{c[i>>2]=e;j=j+1|0;e=c[k+(j<<2)>>2]|0;i=h+(j<<2)|0}while((e|0)!=0);h=i}c[h>>2]=0}e=c[v>>2]|0;if(!e)h=0;else{h=0;while(1)if((c[e+(h<<2)>>2]|0)>-1)h=h+1|0;else break}k=g+12|0;i=c[k>>2]|0;if(!i)e=0;else{e=0;while(1)if((c[i+(e<<2)>>2]|0)>-1)e=e+1|0;else break}j=l+16|0;i=c[j>>2]|0;if(i|0)XI(i);c[j>>2]=0;h=e+h|0;if((h|0)>0){n=WI((h<<2)+4|0)|0;c[j>>2]=n;if(!n){g=12;break a}e=c[v>>2]|0;if((e|0)!=0?(w=c[e>>2]|0,(w|0)>-1):0){h=0;i=w;do{c[n+(h<<2)>>2]=i;h=h+1|0;i=c[e+(h<<2)>>2]|0}while((i|0)>-1);m=h}else m=0;j=c[k>>2]|0;if((j|0)!=0?(x=c[j>>2]|0,(x|0)>-1):0){k=(m|0)>0;h=m;i=0;l=x;do{c:do if(k){e=0;while(1){if((c[n+(e<<2)>>2]|0)==(l|0))break c;e=e+1|0;if((e|0)>=(m|0)){y=39;break}}}else y=39;while(0);if((y|0)==39){y=0;c[n+(h<<2)>>2]=l;h=h+1|0}i=i+1|0;l=c[j+(i<<2)>>2]|0}while((l|0)>-1)}else h=m;c[n+(h<<2)>>2]=-1}g=g+32|0;h=c[g>>2]|0;if((h|0)<=-1)break;else e=o}}while(0);a=a+32|0;if((c[a>>2]|0)<=-1){g=0;break}}else g=0;while(0);return g|0}function MM(a){a=a|0;return c[a+12>>2]|0}function NM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[f>>2]=b;c[e>>2]=c[f>>2];b=VM(a,e)|0;l=d;return b|0}function OM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[f>>2]=b;c[e>>2]=c[f>>2];b=VM(a,e)|0;l=d;return b|0}function PM(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;d=a+12|0;a=(c[d>>2]|0)+-1|0;c[d>>2]=a;return c[b+(a<<2)>>2]|0}function QM(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;d=a+12|0;a=(c[d>>2]|0)+-1|0;c[d>>2]=a;return c[b+(a<<2)>>2]|0}function RM(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;a=zM(a,0,0,1,64)|0;if(!a)a=0;else{c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;c[a+20>>2]=f;c[a+24>>2]=g;c[a+28>>2]=h;c[a+32>>2]=-1;c[a+36>>2]=-1;c[a+40>>2]=-1}return a|0}function SM(a){a=a|0;a=zM(a,0,0,1,32)|0;if(!a)a=0;else{c[a>>2]=-1;c[a+4>>2]=-1;c[a+8>>2]=-1}return a|0}function TM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(e|0)==0;if(o)n=0;else{g=0;while(1)if((c[e+(g<<2)>>2]|0)>-1)g=g+1|0;else{n=g;break}}h=0;while(1)if((c[b+(h<<5)>>2]|0)>-1)h=h+1|0;else{g=0;break}while(1)if((c[d+(g<<5)>>2]|0)>-1)g=g+1|0;else break;g=zM(a,0,0,1,(g+h<<5)+32|0)|0;a:do if(!g)g=0;else{h=c[b>>2]|0;if((h|0)>-1){m=(n|0)>0;i=0;while(1){c[g+(i<<5)>>2]=h;c[g+(i<<5)+4>>2]=c[b+(i<<5)+4>>2];c[g+(i<<5)+8>>2]=c[b+(i<<5)+8>>2];c[g+(i<<5)+16>>2]=c[b+(i<<5)+16>>2]|f;c[g+(i<<5)+20>>2]=c[b+(i<<5)+20>>2];c[g+(i<<5)+24>>2]=c[b+(i<<5)+24>>2];c[g+(i<<5)+28>>2]=c[b+(i<<5)+28>>2];l=b+(i<<5)+12|0;j=c[l>>2]|0;h=(j|0)==0;if(o&h)h=0;else{if(h)k=0;else{h=0;while(1)if((c[j+(h<<2)>>2]|0)>-1)h=h+1|0;else{k=h;break}}h=zM(a,0,0,0,(k+n<<2)+4|0)|0;if(!h){g=0;break a}if((k|0)>0){l=c[l>>2]|0;j=0;do{c[h+(j<<2)>>2]=c[l+(j<<2)>>2];j=j+1|0}while((j|0)!=(k|0))}else k=0;if(m){j=0;do{c[h+(j+k<<2)>>2]=c[e+(j<<2)>>2];j=j+1|0}while((j|0)!=(n|0));j=n}else j=0;c[h+(j+k<<2)>>2]=-1}c[g+(i<<5)+12>>2]=h;i=i+1|0;h=c[b+(i<<5)>>2]|0;if((h|0)<=-1){n=i;break}}}else n=0;i=c[d>>2]|0;h=g+(n<<5)|0;if((i|0)>-1){m=0;l=n;do{c[h>>2]=i;c[g+(l<<5)+4>>2]=c[d+(m<<5)+4>>2];c[g+(l<<5)+8>>2]=c[d+(m<<5)+8>>2];c[g+(l<<5)+16>>2]=c[d+(m<<5)+16>>2];c[g+(l<<5)+20>>2]=c[d+(m<<5)+20>>2];c[g+(l<<5)+24>>2]=c[d+(m<<5)+24>>2];c[g+(l<<5)+28>>2]=c[d+(m<<5)+28>>2];j=d+(m<<5)+12|0;h=c[j>>2]|0;if(!h)h=0;else{i=0;while(1)if((c[h+(i<<2)>>2]|0)>-1)i=i+1|0;else break;h=zM(a,0,0,0,(i<<2)+4|0)|0;if(!h){g=0;break a}if((i|0)>0){k=c[j>>2]|0;j=0;do{c[h+(j<<2)>>2]=c[k+(j<<2)>>2];j=j+1|0}while((j|0)!=(i|0))}else i=0;c[h+(i<<2)>>2]=-1}c[g+(l<<5)+12>>2]=h;m=m+1|0;i=c[d+(m<<5)>>2]|0;l=m+n|0;h=g+(l<<5)|0}while((i|0)>-1)}c[h>>2]=-1}while(0);return g|0}function UM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=MM(a)|0;p=(f|0)!=0;if(p)c[f>>2]=0;b=NM(a,b)|0;a:do if(!b){m=(d|0)==0;l=(e|0)==0;if((MM(a)|0)>(o|0))while(1){b=QM(a)|0;b:do switch(c[b>>2]|0){case 0:{b=c[b+4>>2]|0;switch(c[b>>2]|0){case -3:break;case -2:{if(l)break b;c[e>>2]=c[e>>2]|c[b+4>>2];break b}default:break b}h=c[b+4>>2]|0;if((h|0)>-1){c:do if(!m){b=0;while(1){i=d+(b<<2)|0;j=c[i>>2]|0;if((j|0)<=-1)break;if((j|0)==(h|0))break c;else b=b+1|0}c[i>>2]=h;c[d+(b+1<<2)>>2]=-1}while(0);if(p)c[f>>2]=(c[f>>2]|0)+1}break}case 3:{b=c[b+4>>2]|0;h=c[b>>2]|0;if(c[h+8>>2]|0){k=h;n=6;break b}b=c[b+4>>2]|0;if(c[b+8>>2]|0){k=b;n=6}break}case 1:{b=c[b+4>>2]|0;h=NM(a,c[b>>2]|0)|0;if(h|0){g=h;break a}k=c[b+4>>2]|0;n=6;break}case 2:{b=c[c[b+4>>2]>>2]|0;if(c[b+8>>2]|0){k=b;n=6}break}default:{}}while(0);if((n|0)==6?(n=0,g=NM(a,k)|0,g|0):0)break a;if((MM(a)|0)<=(o|0)){g=0;break a}}else g=0}else g=b;while(0);return g|0}function VM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;g=k;d=a+12|0;e=c[d>>2]|0;j=c[a>>2]|0;if((e|0)>=(j|0)){d=c[a+4>>2]|0;if((j|0)<(d|0)?(f=(c[a+8>>2]|0)+j|0,f=(f|0)>(d|0)?d:f,h=a+16|0,i=ZI(c[h>>2]|0,f<<2)|0,(i|0)!=0):0){c[a>>2]=f;c[h>>2]=i;c[g>>2]=c[b>>2];VM(a,g)|0;d=0}else d=12}else{c[(c[a+16>>2]|0)+(e<<2)>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+1;d=0}l=k;return d|0}function WM(a,b,d){a=a|0;b=b|0;d=d|0;a=zM(a,0,0,1,32)|0;if((d|0)!=0&(a|0)!=0){c[a+4>>2]=d;c[a>>2]=b;c[a+8>>2]=-1;c[a+12>>2]=-1}else a=0;return a|0}function XM(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=MM(d)|0;NM(d,e)|0;e=OM(d,0)|0;a:do if(!e){q=(f&1|0)==0;p=(f&2|0)!=0;o=0;l=1;e=i;while(1){if((MM(d)|0)>(r|0))n=e;else{f=o;e=0;break a}b:while(1){c:while(1){switch(PM(d)|0){case 1:{i=7;break c}case 0:{e=QM(d)|0;switch(c[e>>2]|0){case 0:{i=9;break b}case 3:{i=19;break b}case 1:{i=26;break b}case 2:{i=33;break c}default:{}}break}default:{}}if((MM(d)|0)<=(r|0)){f=o;e=0;break a}}if((i|0)==7)e=QM(d)|0;else if((i|0)==33){f=c[e+4>>2]|0;e=NM(d,c[f>>2]|0)|0;if(e|0){f=o;break a}e=OM(d,0)|0;if(e|0){f=o;break a}e=YM(b,c[f>>2]|0,c[f+4>>2]|0,c[f+8>>2]|0,a[f+12>>0]&1)|0;c[n>>2]=e;if(!e){f=o;e=12;break a}e=c[e+4>>2]|0}if((MM(d)|0)>(r|0))n=e;else{f=o;e=0;break a}}if((i|0)==9){m=c[e+4>>2]|0;i=c[m+8>>2]|0;f=c[m>>2]|0;e=c[m+4>>2]|0;if(!((f|0)>-1|(f|0)==-4))if(q|(f|0)!=-3)if((f|0)==-3)if(p&(l|0)!=0){c[h+(e<<2)>>2]=1;f=-3;k=o;l=0}else{f=-3;k=o}else k=o;else{e=-1;f=-1;i=-1;k=o}else{i=(c[g>>2]|0)+i|0;k=o+1|0}e=GM(b,f,e,i)|0;c[n>>2]=e;if(!e)e=12;else{e=c[e+4>>2]|0;c[e+12>>2]=c[m+12>>2];c[e+16>>2]=c[m+16>>2];e=0}if((i|0)>(c[j>>2]|0)){c[j>>2]=i;f=n}else f=n}else if((i|0)==19){i=c[e+4>>2]|0;f=i+4|0;e=ZM(b,c[i>>2]|0,c[f>>2]|0)|0;c[n>>2]=e;if(!e){f=o;e=12;break a}m=c[e+4>>2]|0;e=NM(d,c[f>>2]|0)|0;if(e|0){f=o;break a}e=OM(d,0)|0;if(e|0){f=o;break a}e=NM(d,m+4|0)|0;if(e|0){f=o;break a}e=OM(d,1)|0;if(e|0){f=o;break a}e=NM(d,c[i>>2]|0)|0;if(e|0){f=o;break a}k=o;f=m;e=OM(d,0)|0}else if((i|0)==26){m=c[e+4>>2]|0;i=m+4|0;e=HM(b,c[m>>2]|0,c[i>>2]|0)|0;c[n>>2]=e;if(!e){f=o;e=12;break a}f=c[e+4>>2]|0;c[f>>2]=0;k=f+4|0;c[k>>2]=0;e=NM(d,c[i>>2]|0)|0;if(e|0){f=o;break a}e=OM(d,0)|0;if(e|0){f=o;break a}e=NM(d,k)|0;if(e|0){f=o;break a}e=OM(d,1)|0;if(e|0){f=o;break a}e=NM(d,c[m>>2]|0)|0;if(e|0){f=o;break a}k=o;e=OM(d,0)|0}if(!e){o=k;e=f}else{f=k;break}}}else f=0;while(0);c[g>>2]=(c[g>>2]|0)+f;return e|0}function YM(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=zM(b,0,0,1,16)|0;b=WM(b,2,h)|0;if(!b)b=0;else{c[h>>2]=d;c[h+4>>2]=e;c[h+8>>2]=f;h=h+12|0;a[h>>0]=a[h>>0]&-2|g&1;c[b+16>>2]=c[d+16>>2]}return b|0}function ZM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(b){e=zM(a,0,0,1,8)|0;a=WM(a,3,e)|0;if((d|0)!=0&(a|0)!=0){c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0);d=a}else d=0}return d|0}function _M(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zM(a,0,0,0,8)|0;if(((e|0)!=0?(d=GM(a,-3,d,-1)|0,c[e>>2]=d,(d|0)!=0):0)?(f=zM(a,0,0,0,32)|0,c[e+4>>2]=f,(f|0)!=0):0){a=b+4|0;c[f+4>>2]=c[a>>2];c[f>>2]=c[b>>2];c[f+8>>2]=-1;c[f+12>>2]=-1;f=f+16|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[a>>2]=e;c[b>>2]=1;a=0}else a=12;return a|0}function $M(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=c[a>>2]|0;if((f|0)>-1){g=c[b+16>>2]|0;e=0;b=f;do{f=b>>>1;c[((b&1|0)==0?g+(f*12|0)|0:g+(f*12|0)+4|0)>>2]=d;e=e+1|0;b=c[a+(e<<2)>>2]|0}while((b|0)>-1)}c[a>>2]=-1;return}function aN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zM(a,0,0,0,8)|0;if(((e|0)!=0?(d=GM(a,-3,d,-1)|0,c[e+4>>2]=d,(d|0)!=0):0)?(f=zM(a,0,0,0,32)|0,c[e>>2]=f,(f|0)!=0):0){a=b+4|0;c[f+4>>2]=c[a>>2];c[f>>2]=c[b>>2];c[f+8>>2]=-1;c[f+12>>2]=-1;f=f+16|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[a>>2]=e;c[b>>2]=1;a=0}else a=12;return a|0}function bN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+16|0;j=m;i=b+32|0;h=c[i>>2]|0;g=h&1;a:do switch(a[d>>0]|0){case 91:{e=fN(b,d+1|0)|0;break}case 92:{e=d+1|0;f=gN(e)|0;if(f|0){e=bN(b,f)|0;c[b+12>>2]=d+2;break a}f=a[e>>0]|0;switch(f|0){case 0:{e=5;break a}case 98:{f=GM(c[b>>2]|0,-2,64,-1)|0;break}case 66:{f=GM(c[b>>2]|0,-2,128,-1)|0;break}case 60:{f=GM(c[b>>2]|0,-2,16,-1)|0;break}case 62:{f=GM(c[b>>2]|0,-2,32,-1)|0;break}case 120:{h=d+2|0;i=(a[h>>0]|0)==123;g=i?8:2;h=i?d+3|0:h;e=0;f=0;do{d=hN(a[h+e>>0]|0)|0;if((d|0)<0)break;f=d+(f<<4)|0;e=e+1|0}while((f|0)<1114112&(e|0)<(g|0));e=h+e|0;if(i){if((a[e>>0]|0)!=125){e=9;break a}e=e+1|0}j=c[b>>2]|0;i=b+24|0;k=c[i>>2]|0;c[i>>2]=k+1;f=GM(j,f,f,k)|0;e=e+-1|0;break}case 63:case 43:case 123:if(!g){e=13;break a}else{k=37;break a}case 124:{if(g|0){k=37;break a}e=GM(c[b>>2]|0,-1,-1,-1)|0;k=45;break a}default:{if(!((g|0)==0&(f+-49|0)>>>0<9)){k=37;break a}j=f+-48|0;k=c[b>>2]|0;i=b+24|0;f=c[i>>2]|0;c[i>>2]=f+1;f=GM(k,-4,j,f)|0;k=b+28|0;i=c[k>>2]|0;c[k>>2]=(j|0)<(i|0)?i:j}}d=e+1|0;e=f;k=45;break}case 46:{e=c[b>>2]|0;g=b+24|0;f=c[g>>2]|0;c[g>>2]=f+1;if(h&4){f=GM(e,0,9,f)|0;k=c[b>>2]|0;e=c[g>>2]|0;c[g>>2]=e+1;e=GM(k,11,1114111,e)|0;if((f|0)!=0&(e|0)!=0)e=ZM(c[b>>2]|0,f,e)|0;else e=0}else e=GM(e,0,1114111,f)|0;d=d+1|0;k=45;break}case 94:{if((g|0)==0?(c[b+16>>2]|0)!=(d|0):0){e=d;k=37;break a}d=d+1|0;e=GM(c[b>>2]|0,-2,1,-1)|0;k=45;break}case 36:{e=d+1|0;if((g|0)==0?a[e>>0]|0:0){e=d;k=37;break a}d=e;e=GM(c[b>>2]|0,-2,2,-1)|0;k=45;break}case 63:case 43:case 123:case 42:{if(!g){e=d;k=37}else e=13;break}case 124:{if(!g){e=d;k=37}else k=36;break}case 0:{k=36;break}default:{e=d;k=37}}while(0);if((k|0)==36){e=GM(c[b>>2]|0,-1,-1,-1)|0;k=45}else if((k|0)==37){h=QL(j,e,-1)|0;if((h|0)<0)e=2;else{do if(c[i>>2]&2){if((EK(c[j>>2]|0)|0)==0?(DK(c[j>>2]|0)|0)==0:0){k=43;break}i=c[b>>2]|0;n=hK(c[j>>2]|0)|0;g=hK(c[j>>2]|0)|0;f=b+24|0;g=GM(i,n,g,c[f>>2]|0)|0;n=c[b>>2]|0;i=GK(c[j>>2]|0)|0;d=GK(c[j>>2]|0)|0;d=GM(n,i,d,c[f>>2]|0)|0;if((g|0)!=0&(d|0)!=0)g=ZM(c[b>>2]|0,g,d)|0;else g=0}else k=43;while(0);if((k|0)==43){g=c[j>>2]|0;f=b+24|0;g=GM(c[b>>2]|0,g,g,c[f>>2]|0)|0}c[f>>2]=(c[f>>2]|0)+1;d=e+h|0;e=g;k=45}}if((k|0)==45)if(!e)e=12;else{c[b+8>>2]=e;c[b+12>>2]=d;e=0}l=m;return e|0}function cN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j+4|0;g=j;b=eN(b,i)|0;if((a[b>>0]|0)==44){b=eN(b+1|0,g)|0;h=c[g>>2]|0;g=c[i>>2]|0}else{i=c[i>>2]|0;c[g>>2]=i;h=i;g=i}do if(!(g>>>0>255|((h|0)>255|(h|0)>-1&(h|0)<(g|0)))){if(!d)if((a[b>>0]|0)==92)b=b+1|0;else{b=0;break}if((a[b>>0]|0)==125){c[e>>2]=g;c[f>>2]=h;b=b+1|0}else b=0}else b=0;while(0);l=j;return b|0}function dN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((c[b+12>>2]|0)>-1){e=GM(c[a>>2]|0,-1,-1,-1)|0;if((e|0)!=0?(f=HM(c[a>>2]|0,e,b)|0,(f|0)!=0):0){e=c[b+16>>2]|0;c[f+16>>2]=e;g=6}else e=12}else{f=b;e=c[b+16>>2]|0;g=6}if((g|0)==6){c[f+12>>2]=d;c[f+16>>2]=e+1;c[a+8>>2]=f;e=0}return e|0}function eN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;c[d>>2]=-1;if(((a[b>>0]|0)+-48|0)>>>0<10){c[d>>2]=0;e=b;g=0;f=a[b>>0]|0;while(1){g=(g*10|0)+-48+(f<<24>>24)|0;c[d>>2]=g;b=e+1|0;f=a[b>>0]|0;if((g|0)>255|((f<<24>>24)+-48|0)>>>0>9)break;else e=b}}return b|0}function fN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+288|0;e=s+264|0;g=s;c[e>>2]=c[b>>2];h=e+8|0;c[h>>2]=0;c[e+12>>2]=32;p=WI(128)|0;r=e+4|0;c[r>>2]=p;if(!p)d=12;else{f=g+4|0;c[f>>2]=0;p=(a[d>>0]|0)==94;c[g>>2]=p&1;d=iN(b,p?d+1|0:d,e,g)|0;a:do if(!d){p=(c[g>>2]|0)==0;if(!p){nL(c[r>>2]|0,c[h>>2]|0,4,41);d=kN(e)|0;if(!d){d=12;e=0;break}c[d>>2]=1114112;c[d+4>>2]=1114112;c[d+8>>2]=-1;d=c[f>>2]|0;if(d){e=d<<2;f=zM(c[b>>2]|0,0,0,0,e+4|0)|0;if(!f){d=12;e=0;break}PN(f|0,g+8|0,e|0)|0;c[f+(d<<2)>>2]=0}else f=0}else f=0;m=c[h>>2]|0;if((m|0)>0){n=c[r>>2]|0;o=b+24|0;e=0;d=0;k=0;while(1){j=c[n+(k<<2)>>2]|0;g=c[j>>2]|0;h=j+4|0;i=c[h>>2]|0;do if(!p)if((g|0)>(d|0)){c[j>>2]=d;c[h>>2]=g+-1;d=i+1|0;q=14;break}else{j=i+1|0;d=(j|0)>=(d|0)?j:d;break}else q=14;while(0);if((q|0)==14){q=0;c[j+8>>2]=c[o>>2];c[j+16>>2]=f;j=WM(c[b>>2]|0,0,j)|0;e=ZM(c[b>>2]|0,e,j)|0;if(!e){d=12;e=0;break a}}k=k+1|0;if((k|0)>=(m|0)){d=0;break}}}else{d=0;e=0}}else e=0;while(0);XI(c[r>>2]|0);r=b+24|0;c[r>>2]=(c[r>>2]|0)+1;c[b+8>>2]=e}l=s;return d|0}function gN(b){b=b|0;var d=0;d=a[b>>0]|0;b=0;while(1){if((a[56576+(b<<3)>>0]|0)==d<<24>>24)break;b=b+1|0;if((b|0)==12){b=12;break}}return c[56576+(b<<3)+4>>2]|0}function hN(a){a=a|0;var b=0;b=a+-48|0;if(b>>>0<10)return b|0;else{b=a|32;return ((b+-97|0)>>>0<6?b+-87|0:-1)|0}return 0}function iN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+32|0;o=t;q=t+4|0;i=QL(o,d,-1)|0;g=a[d>>0]|0;a:do if((i|0)>=1){r=f+4|0;n=b+32|0;h=d;j=i;b:while(1){i=(h|0)==(d|0);if(!(i|g<<24>>24!=93)){s=5;break}c:do if(!(i|g<<24>>24!=45)){switch(a[h+1>>0]|0){case 93:break c;case 45:break;default:{g=11;break a}}if((a[h+2>>0]|0)==93){g=11;break a}}while(0);d:do if(g<<24>>24==91){switch(a[h+1>>0]|0){case 61:case 46:{g=3;break a}case 58:break;default:{s=17;break d}}i=h+2|0;g=0;e:while(1){switch(a[i+g>>0]|0){case 0:{s=16;break b}case 58:break e;default:{}}if((g|0)<13)g=g+1|0;else{s=16;break b}}PN(q|0,i|0,g|0)|0;a[q+g>>0]=0;j=YK(q)|0;if(!j){s=16;break b}h=i+(g+2)|0;if((a[i+(g+1)>>0]|0)!=93){s=16;break b}if(!(c[f>>2]|0)){g=1114111;m=0;k=1;s=25}else{g=c[r>>2]|0;if((g|0)>63){g=12;break a}c[r>>2]=g+1;c[f+8+(g<<2)>>2]=j}}else s=17;while(0);if((s|0)==17){s=0;i=c[o>>2]|0;h=h+j|0;if((a[h>>0]|0)==45?(p=h+1|0,(a[p>>0]|0)!=93):0){h=QL(o,p,-1)|0;g=c[o>>2]|0;if((h|0)<1|(i|0)>(g|0)){g=11;break a}j=0;m=i;h=p+h|0;k=0;s=25}else{j=0;g=i;m=i;k=0;s=25}}if((s|0)==25){s=0;i=kN(e)|0;if(!i){g=12;break a}c[i>>2]=m;c[i+4>>2]=g;c[i+12>>2]=j;c[i+8>>2]=-1;if(!(k|(c[n>>2]&2|0)==0)?(lN(e,m,g)|0)!=0:0){g=12;break a}}j=QL(o,h,-1)|0;g=a[h>>0]|0;if((j|0)<1){s=3;break a}}if((s|0)==5){c[b+12>>2]=h+1;g=0;break}else if((s|0)==16){g=4;break}}else s=3;while(0);if((s|0)==3)g=g<<24>>24?2:7;l=t;return g|0}function jN(a,b){a=a|0;b=b|0;return (c[c[a>>2]>>2]|0)-(c[c[b>>2]>>2]|0)|0}function kN(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=c[h>>2]|0;e=a+12|0;f=c[e>>2]|0;if((d|0)>=(f|0))if((f|0)<=32767?(c[e>>2]=f<<1,g=a+4|0,b=ZI(c[g>>2]|0,f<<3)|0,(b|0)!=0):0){c[g>>2]=b;d=c[h>>2]|0;i=6}else b=0;else{b=c[a+4>>2]|0;i=6}if((i|0)==6){c[h>>2]=d+1;i=zM(c[a>>2]|0,0,0,1,20)|0;c[b+(d<<2)>>2]=i;b=i}return b|0}function lN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;a:do if((b|0)>(d|0))b=0;else while(1){b:do if(!(DK(b)|0)){if(!(EK(b)|0)){b=b+1|0;break}f=GK(b)|0;e=f;while(1){g=b+1|0;e=e+1|0;if((b|0)>=(d|0)){h=f;b=g;g=12;break b}if((GK(g)|0)==(e|0))b=g;else{h=f;b=g;g=12;break}}}else{f=hK(b)|0;e=f;while(1){g=b+1|0;e=e+1|0;if((b|0)>=(d|0)){h=f;b=g;g=12;break b}if((hK(g)|0)==(e|0))b=g;else{h=f;b=g;g=12;break}}}while(0);if((g|0)==12){g=0;f=kN(a)|0;if(!f){b=-1;break a}c[f>>2]=h;c[f+4>>2]=e+-1;c[f+8>>2]=-1}if((b|0)>(d|0)){b=0;break}}while(0);return b|0}function mN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;k=n;i=c[a+4>>2]|0;j=i+56|0;h=(c[j>>2]&8|0)==0?d:0;a=c[i+40>>2]|0;if((a|0)>0&(h|0)!=0){a=WI(a<<2)|0;if(!a)a=12;else{g=a;d=a;m=3}}else{g=0;d=0;m=3}if((m|0)==3){if(!(c[i+60>>2]|0))a=oN(i,b,g,f,k)|0;else a=nN(i,b,g,f,k)|0;if(!a)pN(h,e,c[j>>2]|0,i,g,c[k>>2]|0);if(g)XI(d)}l=n;return a|0}function nN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;V=l;l=l+16|0;T=V;c[T>>2]=0;o=e&1;R=e&2;S=a+56|0;n=c[S>>2]&4;U=xM(0,0)|0;a:do if(U){p=zM(U,0,0,0,32)|0;if(!p){yM(U);e=12;break}c[p+24>>2]=0;c[p+28>>2]=0;Q=a+40|0;q=c[Q>>2]|0;if(q){e=WI(q<<2)|0;if(!e){m=0;k=0;j=e;e=12;i=0;h=0;g=0}else{j=e;i=e;C=6}}else{j=0;i=0;C=6}b:do if((C|0)==6){e=c[a+28>>2]|0;if(e){e=WI(e<<3)|0;if(!e){m=e;k=0;e=12;h=0;g=0;break}else{m=e;h=e}}else{m=0;h=0}P=a+52|0;e=c[P>>2]|0;if(e){e=WI(e<<2)|0;if(!e){k=e;e=12;g=0;break}else{k=e;g=e}}else{k=0;g=0}K=a+8|0;L=a+12|0;M=(d|0)==0;N=(d|0)!=0;O=a+32|0;J=(n|0)!=0;I=(o|0)==0;s=b;e=1;r=-1;v=-1;n=q;B=0;c:while(1){if((n|0)>0){o=0;do{c[j+(o<<2)>>2]=-1;if(!M){c[d+(o<<2)>>2]=-1;n=c[Q>>2]|0}o=o+1|0}while((o|0)<(n|0))}n=c[P>>2]|0;if((n|0)>0)RN(g|0,0,n<<2|0)|0;G=e+r|0;e=QL(T,s,4)|0;if((e|0)<1)if((e|0)<0){e=1;break b}else e=1;F=s+e|0;H=c[T>>2]|0;n=c[K>>2]|0;o=n+8|0;if(c[o>>2]|0){w=(G|0)!=0;x=(B|0)==95;y=(G|0)==0;A=J&(B|0)==10;z=(G|0)<1&I;u=n;n=0;t=0;s=o;while(1){r=u+20|0;o=c[r>>2]|0;d:do if(o)if((o&1|0)==0|z|A){if(o&2|0?(E=c[T>>2]|0,!((E|R|0)==0|J&(E|0)==10)):0){q=t;break}do if(o&16|0){if(x){q=t;break d}if(zK(B)|0){q=t;break d}o=c[T>>2]|0;if((o|0)==95)break;if(!(zK(o)|0)){q=t;break d}}while(0);o=c[r>>2]|0;if(o&32){if(x){o=c[T>>2]|0;if((o|0)==95){q=t;break}}else{E=(zK(B)|0)==0;o=c[T>>2]|0;if(E|(o|0)==95){q=t;break}}if(zK(o)|0){q=t;break}o=c[r>>2]|0}q=c[T>>2]|0;do if((q|0)!=0&(w&(o&64|0)!=0)){if(x)o=1;else{o=(zK(B)|0)!=0;q=c[T>>2]|0}if((q|0)==95)if(o){q=t;break d}else break;else if(o^(zK(q)|0)!=0)break;else{q=t;break d}}while(0);if(!(c[r>>2]&128)){C=49;break}o=c[T>>2]|0;if(y|(o|0)==0){q=t;break}if(x)q=1;else{q=(zK(B)|0)!=0;o=c[T>>2]|0}if((o|0)==95)if(q){C=49;break}else{q=t;break}else if(q^(zK(o)|0)!=0){q=t;break}else{C=49;break}}else q=t;else C=49;while(0);do if((C|0)==49){C=0;if(!t){n=c[u+16>>2]|0;q=c[s>>2]|0;break}q=p+28|0;o=c[q>>2]|0;if(!o){o=zM(U,0,0,0,32)|0;if(!o){C=53;break c}c[o+24>>2]=p;c[o+28>>2]=0;E=zM(U,0,0,0,c[Q>>2]<<2)|0;c[o+20>>2]=E;if(!E){C=60;break c}c[q>>2]=o;p=o}else p=o;c[p>>2]=G;c[p+4>>2]=F;c[p+8>>2]=c[s>>2];c[p+12>>2]=c[u+12>>2];c[p+16>>2]=c[T>>2];if((c[Q>>2]|0)>0){q=c[p+20>>2]|0;o=0;do{c[q+(o<<2)>>2]=c[j+(o<<2)>>2];o=o+1|0}while((o|0)<(c[Q>>2]|0))}o=c[u+16>>2]|0;if(!o)q=t;else{q=c[o>>2]|0;if((q|0)<=-1){q=t;break}r=c[p+20>>2]|0;do{o=o+4|0;c[r+(q<<2)>>2]=G;q=c[o>>2]|0}while((q|0)>-1);q=t}}while(0);s=u+40|0;if(!(c[s>>2]|0))break;else{u=u+32|0;t=q}}if(n){o=c[n>>2]|0;if((o|0)>-1)do{c[j+(o<<2)>>2]=G;n=n+4|0;o=c[n>>2]|0}while((o|0)>-1)}else n=0;if(!q)C=171;else{s=G;r=F;w=q;x=n;C=79}}else{n=0;C=171}e:while(1){if((C|0)==79){if((w|0)==(c[L>>2]|0)){if((v|0)>=(s|0)){if(!(N&(v|0)==(s|0))){n=x;C=171;continue}n=c[Q>>2]|0;if(!(rN(n,c[O>>2]|0,j,d)|0)){n=x;C=171;continue}}else{if(M){v=s;n=x;C=171;continue}n=c[Q>>2]|0}if((n|0)>0)n=0;else{v=s;n=x;C=171;continue}while(1){c[d+(n<<2)>>2]=c[j+(n<<2)>>2];n=n+1|0;if((n|0)>=(c[Q>>2]|0)){v=s;n=x;C=171;continue e}}}u=w+8|0;if((c[u>>2]|0)!=0?(c[w+20>>2]&256|0)!=0:0){o=c[w+24>>2]|0;pN(o+1|0,m,c[S>>2]&-9,a,j,s);E=c[m+(o<<3)>>2]|0;o=(c[m+(o<<3)+4>>2]|0)-E|0;if(SJ(b+E|0,r+-1|0,o)|0){n=x;C=171;continue}E=(o|0)==0;n=E&1;q=c[w+12>>2]|0;if(E?c[k+(q<<2)>>2]|0:0){n=x;C=171;continue}c[k+(q<<2)>>2]=n;o=o+-1|0;r=r+o|0;o=o+s|0;q=c[T>>2]|0;n=QL(T,r,4)|0;if((n|0)<1)if((n|0)<0){e=1;break b}else n=1;D=r+n|0;E=n}else{q=c[T>>2]|0;if(!q){n=x;C=171;continue}n=QL(T,r,4)|0;if((n|0)<1)if((n|0)<0){e=1;break b}else n=1;o=s;D=r+n|0;E=n}s=o+e|0;if(!(c[u>>2]|0)){e=E;n=x;C=171;continue}y=(s|0)!=0;z=(q|0)==95;A=(s|0)==0;C=J&(q|0)==10;B=(s|0)<1&I;t=0;n=x;while(1){f:do if((c[w>>2]|0)>>>0<=q>>>0){if((c[w+4>>2]|0)>>>0<q>>>0)break;r=w+20|0;e=c[r>>2]|0;do if(e|0){if(!((e&1|0)==0|B|C))break f;if(e&2|0?(x=c[T>>2]|0,!((x|R|0)==0|J&(x|0)==10)):0)break f;do if(e&16|0){if(z)break f;if(zK(q)|0)break f;e=c[T>>2]|0;if((e|0)==95)break;if(!(zK(e)|0))break f}while(0);e=c[r>>2]|0;if(e&32){if(z){e=c[T>>2]|0;if((e|0)==95)break f}else{x=(zK(q)|0)==0;e=c[T>>2]|0;if(x|(e|0)==95)break f}if(zK(e)|0)break f;e=c[r>>2]|0}o=c[T>>2]|0;do if((o|0)!=0&(y&(e&64|0)!=0)){if(z)e=1;else{e=(zK(q)|0)!=0;o=c[T>>2]|0}if((o|0)==95)if(e)break f;else break;else if(e^(zK(o)|0)!=0)break;else break f}while(0);do if(c[r>>2]&128|0){e=c[T>>2]|0;if(A|(e|0)==0)break f;if(z)o=1;else{o=(zK(q)|0)!=0;e=c[T>>2]|0}if((e|0)==95)if(o)break;else break f;else if(o^(zK(e)|0)!=0)break f;else break}while(0);e=c[r>>2]|0;do if(e&4){if(c[S>>2]&2|0)break;if(!(yK(q,c[w+24>>2]|0)|0))break f;e=c[r>>2]|0}while(0);do if(e&4|0){if(!(c[S>>2]&2))break;x=GK(q)|0;e=w+24|0;if(yK(x,c[e>>2]|0)|0)break;x=hK(q)|0;if(!(yK(x,c[e>>2]|0)|0))break f}while(0);if(!(c[r>>2]&8))break;if(qN(c[w+28>>2]|0,q,c[S>>2]&2)|0)break f}while(0);if(!t){t=c[u>>2]|0;n=c[w+16>>2]|0;break}o=p+28|0;e=c[o>>2]|0;if(!e){e=zM(U,0,0,0,32)|0;if(!e){C=145;break c}c[e+24>>2]=p;c[e+28>>2]=0;x=zM(U,0,0,0,c[Q>>2]<<2)|0;c[e+20>>2]=x;if(!x){C=152;break c}c[o>>2]=e;p=e}else p=e;c[p>>2]=s;c[p+4>>2]=D;c[p+8>>2]=c[u>>2];c[p+12>>2]=c[w+12>>2];c[p+16>>2]=c[T>>2];if((c[Q>>2]|0)>0){o=c[p+20>>2]|0;e=0;do{c[o+(e<<2)>>2]=c[j+(e<<2)>>2];e=e+1|0}while((e|0)<(c[Q>>2]|0))}e=c[w+16>>2]|0;if(!e)break;o=c[e>>2]|0;if((o|0)<=-1)break;r=c[p+20>>2]|0;do{c[r+(o<<2)>>2]=s;e=e+4|0;o=c[e>>2]|0}while((o|0)>-1)}while(0);u=w+40|0;if(!(c[u>>2]|0))break;else w=w+32|0}if(!t){e=E;C=171;continue}if(n){e=c[n>>2]|0;if((e|0)>-1){do{n=n+4|0;c[j+(e<<2)>>2]=s;e=c[n>>2]|0}while((e|0)>-1);q=v;o=D;e=E}else{q=v;o=D;e=E}}else{q=v;o=D;e=E;n=0}}else if((C|0)==171){C=0;r=c[p+24>>2]|0;if(!r)break;t=c[p+8>>2]|0;if(c[t+20>>2]&256|0)c[k+(c[p+12>>2]<<2)>>2]=0;s=c[p>>2]|0;u=c[p+4>>2]|0;c[T>>2]=c[p+16>>2];q=c[Q>>2]|0;if((q|0)>0){p=c[p+20>>2]|0;o=0;do{c[j+(o<<2)>>2]=c[p+(o<<2)>>2];o=o+1|0}while((o|0)<(q|0));p=r;q=v;o=u}else{p=r;q=v;o=u}}r=o;v=q;w=t;x=n;C=79}n=(v|0)>-1;if(n|(c[T>>2]|0)==0){C=180;break}c[T>>2]=H;s=F;r=G;n=c[Q>>2]|0;B=H}if((C|0)==53){yM(U);if(j|0)XI(i);if(m|0)XI(h);if(!k){e=12;break a}XI(g);e=12;break a}else if((C|0)==60){yM(U);if(j|0)XI(i);if(m|0)XI(h);if(!k){e=12;break a}XI(g);e=12;break a}else if((C|0)==145){yM(U);if(j|0)XI(i);if(m|0)XI(h);if(!k){e=12;break a}XI(g);e=12;break a}else if((C|0)==152){yM(U);if(j|0)XI(i);if(m|0)XI(h);if(!k){e=12;break a}XI(g);e=12;break a}else if((C|0)==180){c[f>>2]=v;e=(n^1)&1;break}}while(0);yM(U);if(j|0)XI(i);if(m|0)XI(h);if(k)XI(g)}else e=12;while(0);l=V;return e|0}+function oN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;W=l;l=l+16|0;T=W;c[T>>2]=0;k=e&1;Q=e&2;R=a+56|0;j=c[R>>2]&4;if(!d)N=0;else N=c[a+40>>2]|0;P=N<<2;i=c[a+52>>2]|0;h=i<<3;g=h+8|0;e=P+12+h+(g+(O(P,i)|0)<<1)|0;U=WI(e)|0;if(!U)e=12;else{RN(U|0,0,e|0)|0;e=U+P|0;m=e&3;m=e+((m|0)==0?0:4-m|0)|0;e=m+g|0;n=e&3;n=e+((n|0)==0?0:4-n|0)|0;e=n+g|0;M=e&3;M=e+((M|0)==0?0:4-M|0)|0;e=M+h|0;g=e&3;h=(i|0)>0;if(h){e=e+((g|0)==0?0:4-g|0)|0;g=0;while(1){c[n+(g<<3)+4>>2]=e;e=e+P|0;c[m+(g<<3)+4>>2]=e;g=g+1|0;if((g|0)>=(i|0))break;else e=e+P|0}if(h){e=0;do{c[M+(e<<3)>>2]=-1;e=e+1|0}while((e|0)<(i|0))}}e=QL(T,b,4)|0;if((e|0)<1)if((e|0)<0)e=1;else{i=1;V=11}else{i=e;V=11}a:do if((V|0)==11){L=a+8|0;K=(j|0)!=0;E=(k|0)==0;F=(N|0)>0;G=a+12|0;H=(N|0)<1;I=a+44|0;J=a+32|0;C=a+36|0;D=(N|0)==0;h=0;v=b+i|0;u=0;j=0;e=-1;g=m;A=U;x=m;w=n;while(1){if((e|0)<0){a=c[L>>2]|0;k=a+8|0;b:do if(c[k>>2]|0){p=(u|0)!=0;q=(h|0)==95;r=(u|0)==0;t=K&(h|0)==10;s=(u|0)<1&E;while(1){c:while(1){o=a+12|0;if((c[M+(c[o>>2]<<3)>>2]|0)>=(u|0))break;n=a+20|0;b=c[n>>2]|0;if(!b){V=46;break}d:do if((b&1|0)==0|s|t){if(b&2|0?(B=c[T>>2]|0,!((B|Q|0)==0|K&(B|0)==10)):0)break;do if(b&16|0){if(q)break d;if(zK(h)|0)break d;b=c[T>>2]|0;if((b|0)==95)break;if(!(zK(b)|0))break d}while(0);b=c[n>>2]|0;if(b&32){if(q){b=c[T>>2]|0;if((b|0)==95)break}else{B=(zK(h)|0)==0;b=c[T>>2]|0;if(B|(b|0)==95)break}if(zK(b)|0)break;b=c[n>>2]|0}m=c[T>>2]|0;do if((m|0)!=0&(p&(b&64|0)!=0)){if(q)b=1;else{b=(zK(h)|0)!=0;m=c[T>>2]|0}if((m|0)==95)if(b)break d;else break;else if(b^(zK(m)|0)!=0)break;else break d}while(0);if(!(c[n>>2]&128)){V=46;break c}b=c[T>>2]|0;if(r|(b|0)==0)break;if(q)m=1;else{m=(zK(h)|0)!=0;b=c[T>>2]|0}if((b|0)==95)if(m){V=46;break c}else break;else if(m^(zK(b)|0)!=0)break;else{V=46;break c}}while(0);k=a+40|0;if(!(c[k>>2]|0))break b;else a=a+32|0}if((V|0)==46){V=0;c[g>>2]=c[k>>2];if(F)RN(c[g+4>>2]|0,-1,P|0)|0;k=c[a+16>>2]|0;if(k|0?(S=c[k>>2]|0,(S|0)>-1):0){m=g+4|0;b=S;do{if((b|0)<(N|0))c[(c[m>>2]|0)+(b<<2)>>2]=u;k=k+4|0;b=c[k>>2]|0}while((b|0)>-1)}k=(c[g>>2]|0)!=(c[G>>2]|0);if(k|H){j=k?j:1;e=k?e:u;k=g+4|0}else{k=g+4|0;j=c[k>>2]|0;e=0;do{c[d+(e<<2)>>2]=c[j+(e<<2)>>2];e=e+1|0}while((e|0)!=(N|0));j=1;e=u}B=c[o>>2]|0;c[M+(B<<3)>>2]=u;c[M+(B<<3)+4>>2]=k;g=g+8|0}k=a+40|0;if(!(c[k>>2]|0))break;else a=a+32|0}}while(0);c[g>>2]=0;g=c[T>>2]|0;if(!g)break;else h=g}else{if(D)break;h=c[T>>2]|0;if(!((g|0)!=(x|0)&(h|0)!=0))break}B=u+i|0;g=QL(T,v,4)|0;if((g|0)<1)if((g|0)<0){e=1;break a}else i=1;else i=g;z=v+i|0;if((j|0)!=0&(c[I>>2]|0)!=0){if(!(c[x>>2]|0))g=w;else{o=c[C>>2]|0;p=c[o>>2]|0;q=(p|0)>-1;n=x;g=w;do{m=n+4|0;e:do if(q){k=0;b=p;do{a=c[o+((k|1)<<2)>>2]|0;if((b|0)>=(N|0))break e;j=c[m>>2]|0;if((c[j+(a<<2)>>2]|0)==(c[d+(a<<2)>>2]|0)?(c[j+(b<<2)>>2]|0)<(c[d+(b<<2)>>2]|0):0)break e;k=k+2|0;b=c[o+(k<<2)>>2]|0}while((b|0)>-1);k=m;V=75}else{k=m;j=c[m>>2]|0;V=75}while(0);if((V|0)==75){V=0;c[g>>2]=c[n>>2];v=g+4|0;y=c[v>>2]|0;c[v>>2]=j;c[k>>2]=y;g=g+8|0}n=n+8|0}while((c[n>>2]|0)!=0)}c[g>>2]=0;y=x;j=0}else{y=w;w=x}k=c[w>>2]|0;if(!k){k=A;g=y}else{r=(B|0)!=0;s=(h|0)==95;t=(B|0)==0;v=K&(h|0)==10;u=(B|0)<1&E;q=w;a=A;g=y;while(1){b=k+8|0;if(c[b>>2]|0){p=q+4|0;o=a;n=b;while(1){f:do if((c[k>>2]|0)>>>0<=h>>>0?(c[k+4>>2]|0)>>>0>=h>>>0:0){m=k+20|0;a=c[m>>2]|0;do if(a|0){if(!((a&1|0)==0|u|v)){a=o;break f}if(a&2|0?(A=c[T>>2]|0,!((A|Q|0)==0|K&(A|0)==10)):0){a=o;break f}do if(a&16|0){if(s){a=o;break f}if(zK(h)|0){a=o;break f}a=c[T>>2]|0;if((a|0)==95)break;if(!(zK(a)|0)){a=o;break f}}while(0);a=c[m>>2]|0;if(a&32){if(s){a=c[T>>2]|0;if((a|0)==95){a=o;break f}}else{A=(zK(h)|0)==0;a=c[T>>2]|0;if(A|(a|0)==95){a=o;break f}}if(zK(a)|0){a=o;break f}a=c[m>>2]|0}b=c[T>>2]|0;do if((b|0)!=0&(r&(a&64|0)!=0)){if(s)a=1;else{a=(zK(h)|0)!=0;b=c[T>>2]|0}if((b|0)==95)if(a){a=o;break f}else break;else if(a^(zK(b)|0)!=0)break;else{a=o;break f}}while(0);do if(c[m>>2]&128|0){a=c[T>>2]|0;if(t|(a|0)==0){a=o;break f}if(s)b=1;else{b=(zK(h)|0)!=0;a=c[T>>2]|0}if((a|0)==95)if(b)break;else{a=o;break f}else if(b^(zK(a)|0)!=0){a=o;break f}else break}while(0);a=c[m>>2]|0;do if(a&4){if(c[R>>2]&2|0)break;if(!(yK(h,c[k+24>>2]|0)|0)){a=o;break f}a=c[m>>2]|0}while(0);do if(a&4|0){if(!(c[R>>2]&2))break;A=GK(h)|0;a=k+24|0;if(yK(A,c[a>>2]|0)|0)break;A=hK(h)|0;if(!(yK(A,c[a>>2]|0)|0)){a=o;break f}}while(0);if(!(c[m>>2]&8))break;if(qN(c[k+28>>2]|0,h,c[R>>2]&2)|0){a=o;break f}}while(0);if(F){b=c[p>>2]|0;a=0;do{c[o+(a<<2)>>2]=c[b+(a<<2)>>2];a=a+1|0}while((a|0)!=(N|0))}a=c[k+16>>2]|0;do if(a|0){b=c[a>>2]|0;if((b|0)<=-1)break;do{if((b|0)<(N|0))c[o+(b<<2)>>2]=B;a=a+4|0;b=c[a>>2]|0}while((b|0)>-1)}while(0);a=c[k+12>>2]|0;b=M+(a<<3)|0;if((c[b>>2]|0)>=(B|0)){a=c[M+(a<<3)+4>>2]|0;b=c[a>>2]|0;if(!(rN(N,c[J>>2]|0,o,b)|0)){a=o;break}c[a>>2]=o;if((c[n>>2]|0)!=(c[G>>2]|0)){a=b;break}if(F)e=0;else{j=1;a=b;e=B;break}while(1){c[d+(e<<2)>>2]=c[o+(e<<2)>>2];e=e+1|0;if((e|0)==(N|0)){j=1;a=b;e=B;break f}}}A=c[n>>2]|0;c[g>>2]=A;x=g+4|0;m=c[x>>2]|0;c[x>>2]=o;c[b>>2]=B;c[M+(a<<3)+4>>2]=x;do if((c[G>>2]|0)==(A|0)){if((e|0)==-1)if(F)e=0;else{e=B;j=1;break}else{if(!F)break;if((c[o>>2]|0)>(c[d>>2]|0))break;else e=0}do{c[d+(e<<2)>>2]=c[o+(e<<2)>>2];e=e+1|0}while((e|0)<(N|0));e=B;j=1}while(0);a=m;g=g+8|0}else a=o;while(0);n=k+40|0;if(!(c[n>>2]|0))break;else{k=k+32|0;o=a}}}q=q+8|0;k=c[q>>2]|0;if(!k){k=a;break}}}c[g>>2]=0;v=z;u=B;A=k;x=y}c[f>>2]=e;e=e>>>31}while(0);XI(U)}l=W;return e|0}function pN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((d&8|0)==0&(g|0)>-1?(m=c[e+16>>2]|0,n=c[e+28>>2]|0,l=(a|0)!=0&(n|0)!=0,l):0){k=c[e+48>>2]|0;j=0;do{d=c[m+(j*12|0)>>2]|0;if((d|0)==(k|0))i=g;else i=c[f+(d<<2)>>2]|0;h=b+(j<<3)|0;c[h>>2]=i;d=c[m+(j*12|0)+4>>2]|0;if((d|0)==(k|0))d=g;else d=c[f+(d<<2)>>2]|0;e=b+(j<<3)+4|0;c[e>>2]=d;if((d|0)==-1|(i|0)==-1){c[e>>2]=-1;c[h>>2]=-1}j=j+1|0}while(j>>>0<a>>>0&j>>>0<n>>>0);if(l){d=0;do{i=b+(d<<3)+4|0;j=c[m+(d*12|0)+8>>2]|0;if(j|0?(o=c[j>>2]|0,(o|0)>-1):0){k=b+(d<<3)|0;h=0;f=o;e=c[k>>2]|0;do{if(!((e|0)>=(c[b+(f<<3)>>2]|0)?(c[i>>2]|0)<=(c[b+(f<<3)+4>>2]|0):0)){c[i>>2]=-1;c[k>>2]=-1;e=-1}h=h+1|0;f=c[j+(h<<2)>>2]|0}while((f|0)>-1)}d=d+1|0}while(d>>>0<a>>>0&d>>>0<n>>>0)}else d=0}else d=0;if(d>>>0<a>>>0)RN(b+(d<<3)|0,-1,a-d<<3|0)|0;return}function qN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;a:do if(!e)d=0;else{f=(d|0)==0;d=e;while(1){if(f){if(yK(b,d)|0){d=1;break a}}else{e=hK(b)|0;if(yK(e,c[a>>2]|0)|0){d=1;break a}e=GK(b)|0;if(yK(e,c[a>>2]|0)|0){d=1;break a}}a=a+4|0;d=c[a>>2]|0;if(!d){d=0;break}}}while(0);return d|0}function rN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if((a|0)>0){f=0;while(1){h=c[d+(f<<2)>>2]|0;g=c[e+(f<<2)>>2]|0;if(!(c[b+(f<<2)>>2]|0)){if((h|0)<(g|0)){f=1;break a}if((h|0)>(g|0)){f=0;break a}}else{if((h|0)>(g|0)){f=1;break a}if((h|0)<(g|0)){f=0;break a}}f=f+1|0;if((f|0)>=(a|0)){f=0;break}}}else f=0;while(0);return f|0}function sN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=O(e,d)|0;e=(d|0)==0?0:e;if((c[f+76>>2]|0)>-1)j=KK(f)|0;else j=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;m=(c[f+8>>2]|0)-h|0;i=m>>>0<k>>>0?m:k;if((m|0)>0){PN(b|0,h|0,i|0)|0;c[g>>2]=h+i;g=k-i|0;b=b+i|0}else g=k;a:do if(!g)l=13;else{i=f+32|0;while(1){if(aK(f)|0)break;h=bb[c[i>>2]&31](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g){l=13;break a}else b=b+h|0}if(j|0)LK(f);e=((k-g|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(j)LK(f);return e|0}function tN(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(KK(a)|0)==0;a=uN(a)|0}else a=uN(a)|0;return a|0}function uN(a){a=a|0;var b=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=bb[c[a+40>>2]&31](a,0,b)|0;if((b|0)>=0)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)+(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;return b|0}function vN(a){a=a|0;(c[a+76>>2]|0)>-1?KK(a)|0:0;return c[a+60>>2]|0}function wN(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+48|0;i=k+24|0;h=k+16|0;g=k;d=k+28|0;b=d;e=134988;f=b+20|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));e=d+13|0;b=0;while(1){wL(e)|0;c[g>>2]=d;c[g+4>>2]=32962;c[g+8>>2]=384;f=fJ(Ba(5,g|0)|0)|0;if((f|0)>-1){j=4;break}if((b|0)<99)b=b+1|0;else{b=0;break}}if((j|0)==4){c[h>>2]=d;sa(10,h|0)|0;b=OL(f,135008)|0;if(!b){c[i>>2]=f;Da(6,i|0)|0;b=0}}l=k;return b|0}function xN(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(KK(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0}else b=$J(a)|0}else f=3;do if((f|0)==3){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0;break}else{b=$J(a)|0;break}}while(0);return b|0}function yN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(KK(d)|0)!=0:0){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(i=d+20|0,j=c[i>>2]|0,j>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=j+1;a[j>>0]=f}else e=UL(d,b)|0;LK(d)}else k=3;do if((k|0)==3){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=f;break}e=UL(d,b)|0}while(0);return e|0}function zN(a){a=a|0;return tN(a)|0}function AN(){}function BN(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=O(e,f)|0;d=a>>>16;a=(c>>>16)+(O(e,d)|0)|0;e=b>>>16;b=O(e,f)|0;return (z=(a>>>16)+(O(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function CN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=BN(e,f)|0;a=z;return (z=(O(b,f)|0)+(O(d,e)|0)+a|a&0,c|0|0)|0}function DN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (z=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function EN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (z=d,a-c>>>0|0)|0}function FN(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function GN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (z=n,f)|0}else{if(!g){n=0;f=0;return (z=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (z=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(R(i|0)|0)-(R(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (z=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (z=n,f)|0}g=h-1|0;if(g&h|0){i=(R(h|0)|0)+33-(R(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (z=o,p)|0}else{p=FN(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (z=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (z=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (z=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((FN(i|0)|0)>>>0);return (z=o,p)|0}g=(R(i|0)|0)-(R(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (z=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (z=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=DN(m|0,l|0,-1,-1)|0;d=z;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;EN(k|0,d|0,e|0,n|0)|0;p=z;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=EN(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=z;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (z=o,p)|0}function HN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return GN(a,b,c,d,0)|0}function IN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g|0;GN(a,b,d,e,f)|0;l=g;return (z=c[f+4>>2]|0,c[f>>2]|0)|0}function JN(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}z=0;return b>>>c-32|0}function KN(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}z=a<<c-32;return 0}function LN(a){a=a|0;return (a&255)<<8|a>>8&255|0}function MN(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function NN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;q=q+1|0;c[a>>2]=q;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=q;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;z=e;return d|0}f=f+1|0}e=e*2|0;d=ZI(d|0,8*(e+1|0)|0)|0;d=NN(a|0,b|0,d|0,e|0)|0;z=e;return d|0}function ON(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((f|0)<(d|0)){e=c[b+(f<<3)>>2]|0;if(!e)break;if((e|0)==(a|0))return c[b+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function PN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return La(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function QN(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else PN(b,c,d)|0;return b|0}function RN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function SN(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){W()|0;ra(12);return -1}c[i>>2]=a;if((a|0)>(V()|0)?(U()|0)==0:0){c[i>>2]=b;ra(12);return -1}return b|0}function TN(a){a=a|0;return +Ya[a&1]()}function UN(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return +Za[a&7](+b,+c,+d)}function VN(a){a=a|0;return _a[a&3]()|0}function WN(a,b){a=a|0;b=b|0;return $a[a&31](b|0)|0}function XN(a,b,c){a=a|0;b=b|0;c=c|0;return ab[a&63](b|0,c|0)|0}function YN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return bb[a&31](b|0,c|0,d|0)|0}function ZN(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return cb[a&31](b|0,c|0,d|0,e|0)|0}function _N(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return db[a&3](b|0,c|0,d|0,e|0,f|0)|0}function $N(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return eb[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function aO(a){a=a|0;fb[a&15]()}function bO(a,b){a=a|0;b=b|0;gb[a&127](b|0)}function cO(a,b,c){a=a|0;b=b|0;c=c|0;hb[a&31](b|0,c|0)}function dO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ib[a&127](b|0,c|0,d|0)}function eO(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=g|0;jb[a&15](b|0,c|0,d|0,+e,+f,g|0)}function fO(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;kb[a&31](b|0,c|0,d|0,e|0)}function gO(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;lb[a&7](b|0,c|0,d|0,e|0,f|0)}function hO(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;mb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function iO(){S(0);return 0.0}function jO(a,b,c){a=+a;b=+b;c=+c;S(1);return 0.0}function kO(){S(2);return 0}function lO(a){a=a|0;S(3);return 0}function mO(a,b){a=a|0;b=b|0;S(4);return 0}function nO(a,b,c){a=a|0;b=b|0;c=c|0;S(5);return 0}function oO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(6);return 0}function pO(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;S(7);return 0}function qO(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;S(8);return 0}function rO(){S(9)}function sO(a){a=a|0;S(10)}function tO(a,b){a=a|0;b=b|0;S(11)}function uO(a,b,c){a=a|0;b=b|0;c=c|0;S(12)}function vO(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;S(13)}function wO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(14)}function xO(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;S(15)}function yO(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;S(16)}++// EMSCRIPTEN_END_FUNCS+var Ya=[iO,tA];var Za=[jO,Pu,Ou,Qu,Ru,jO,jO,jO];var _a=[kO,Aw,rx,kO];var $a=[lO,Qg,jg,Qn,Tn,WB,XB,OD,PD,QD,RD,SD,TD,UD,VD,cJ,ub,jr,kl,nl,ww,Bw,mn,rw,bo,IB,qw,NB,OB,KI,lO,lO];var ab=[mO,sn,Pn,Un,tz,uz,lz,hz,Ry,hr,$f,Pg,qh,Uh,ki,vk,tk,ll,ol,xq,wq,vq,ys,Os,Js,Ks,Jt,SL,yN,nA,pB,Hm,tG,Om,Qm,co,JB,uJ,UE,GI,HI,jN,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO,mO];var bb=[nO,Ol,Ul,On,Sn,dG,dJ,eJ,iJ,jJ,XK,Zl,Wl,vL,pA,zx,WC,DI,aM,nO,nO,nO,nO,nO,nO,nO,nO,nO,nO,nO,nO,nO];var cb=[oO,Mm,Lp,Nm,en,un,wn,Hn,Gn,Vn,Zn,$n,tx,xC,vC,tE,fG,BG,AG,Ll,rA,oO,oO,oO,oO,oO,oO,oO,oO,oO,oO,oO];var db=[pO,tn,Sy,mz];var eb=[qO,hI];var fb=[rO,sA,xw,yw,zw,Dw,Ew,Fw,jG,rO,rO,rO,rO,rO,rO,rO];var gb=[sO,yb,zb,Db,Eb,Fb,Zb,_b,wc,xc,yc,zc,Ac,Bc,Cc,Oc,Pc,Sc,Tc,Uc,Vc,Wc,Xc,Yc,id,jd,kd,md,nd,od,pd,qd,rd,sd,td,Ed,Fd,Gd,Id,Jd,Kd,Ld,Md,Nd,Od,Pd,Qd,Sd,de,ee,fe,ge,re,se,te,ve,Ie,Je,Ke,Me,Ne,Oe,Pe,Qe,Re,Se,Te,Ue,bf,cf,df,ef,If,Df,xn,xy,Py,zy,yy,jz,Xx,_x,WD,$D,wf,pl,km,iG,PC,QB,ux,XI,CG,gI,BI,CI,II,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO,sO];var hb=[tO,Ec,Jc,_c,dd,Ad,Yd,me,Be,_e,lf,Wn,Ty,vz,nz,iz,Ny,Oy,rz,sz,ZD,bE,am,ms,Cw,HB,fI,EI,FI,JI,LI,tO];var ib=[uO,Gb,Hb,Kb,vc,Dc,Fc,Ic,Zc,$c,cd,vd,wd,zd,Td,Ud,Xd,he,ie,le,we,xe,Ae,Ve,We,Ze,ff,gf,kf,ak,bk,ck,hm,yn,_n,Io,Mp,es,zv,sx,Zx,hB,wC,uC,XD,YD,_D,aE,cE,eG,TH,SH,Am,an,no,Qo,To,vw,qA,xx,LB,PB,UH,WH,XH,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO,uO];var jb=[vO,At,Bt,Ct,Dt,Et,Ft,Gt,Ht,vO,vO,vO,vO,vO,vO,vO];var kb=[wO,Ib,Gc,ad,ld,xd,Hd,Vd,je,ye,Le,Xe,hf,zf,yf,xf,vf,uf,tf,Yb,sf,rf,vn,Qy,kz,nL,KB,MB,wO,wO,wO,wO];var lb=[xO,Qc,ud,Bd,Rd,ue,ml,RB];var mb=[yO,Jb,Hc,bd,yd,Wd,ke,ze,Ye,jf,SB,yO,yO,yO,yO,yO];return{___errno_location:gJ,___muldi3:CN,___udivdi3:HN,___uremdi3:IN,_bitshift64Lshr:JN,_bitshift64Shl:KN,_dtdisc:Kl,_dtextract:Ml,_dtopen:Pl,_free:XI,_htons:aL,_i64Add:DN,_i64Subtract:EN,_llvm_bswap_i16:LN,_llvm_bswap_i32:MN,_malloc:WI,_memalign:aJ,_memcpy:PN,_memmove:QN,_memset:RN,_realloc:ZI,_saveSetjmp:NN,_sbrk:SN,_testSetjmp:ON,_vizCreateFile:wb,_vizLastErrorMessage:vb,_vizRenderFromString:xb,dynCall_d:TN,dynCall_dddd:UN,dynCall_i:VN,dynCall_ii:WN,dynCall_iii:XN,dynCall_iiii:YN,dynCall_iiiii:ZN,dynCall_iiiiii:_N,dynCall_iiiiiii:$N,dynCall_v:aO,dynCall_vi:bO,dynCall_vii:cO,dynCall_viii:dO,dynCall_viiiddi:eO,dynCall_viiii:fO,dynCall_viiiii:gO,dynCall_viiiiii:hO,establishStackSpace:qb,getTempRet0:tb,runPostSets:AN,setTempRet0:sb,setThrew:rb,stackAlloc:nb,stackRestore:pb,stackSave:ob}})+++// EMSCRIPTEN_END_ASM+(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _dtdisc=Module["_dtdisc"]=asm["_dtdisc"];var _dtextract=Module["_dtextract"]=asm["_dtextract"];var _dtopen=Module["_dtopen"]=asm["_dtopen"];var _free=Module["_free"]=asm["_free"];var _htons=Module["_htons"]=asm["_htons"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i16=Module["_llvm_bswap_i16"]=asm["_llvm_bswap_i16"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memalign=Module["_memalign"]=asm["_memalign"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _realloc=Module["_realloc"]=asm["_realloc"];var _saveSetjmp=Module["_saveSetjmp"]=asm["_saveSetjmp"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _testSetjmp=Module["_testSetjmp"]=asm["_testSetjmp"];var _vizCreateFile=Module["_vizCreateFile"]=asm["_vizCreateFile"];var _vizLastErrorMessage=Module["_vizLastErrorMessage"]=asm["_vizLastErrorMessage"];var _vizRenderFromString=Module["_vizRenderFromString"]=asm["_vizRenderFromString"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_d=Module["dynCall_d"]=asm["dynCall_d"];var dynCall_dddd=Module["dynCall_dddd"]=asm["dynCall_dddd"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiiddi=Module["dynCall_viiiddi"]=asm["dynCall_viiiddi"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];Module["asm"]=asm;Module["ccall"]=ccall;Module["Pointer_stringify"]=Pointer_stringify;Module["UTF8ToString"]=UTF8ToString;if(memoryInitializer){if(!isDataURI(memoryInitializer)){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=exit;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run()+++++ return Module;+};+function Viz(src) {+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];+ var format = options.format === undefined ? "svg" : options.format;+ var engine = options.engine === undefined ? "dot" : options.engine;+ var scale = options.scale;+ var totalMemory = options.totalMemory;+ var files = options.files === undefined ? [] : options.files;+ var images = options.images === undefined ? [] : options.images;+ var i;+ + for (i = 0; i < images.length; i++) {+ files.push({ path: images[i].path, data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg width=\"" + images[i].width + "\" height=\"" + images[i].height + "\"></svg>" });+ }++ if (format == "png-image-element") {+ return Viz.svgXmlToPngImageElement(render(src, "svg", engine, totalMemory, files), scale);+ } else {+ return render(src, format, engine, totalMemory, files);+ }+}++function render(src, format, engine, totalMemory, files) {+ var graphviz = Module({ TOTAL_MEMORY: totalMemory });+ var i;+ + for (i = 0; i < files.length; i++) {+ graphviz["ccall"]("vizCreateFile", "number", ["string", "string"], [files[i].path, files[i].data]);+ }+ + var resultPointer = graphviz["ccall"]("vizRenderFromString", "number", ["string", "string", "string"], [src, format, engine]);+ var resultString = graphviz["Pointer_stringify"](resultPointer);++ var errorMessagePointer = graphviz["ccall"]("vizLastErrorMessage", "number", [], []);+ var errorMessageString = graphviz["Pointer_stringify"](errorMessagePointer);+ + if (errorMessageString != "") {+ throw new Error(errorMessageString);+ }+ + return resultString;+}++// https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding+function b64EncodeUnicode(str) {+ return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {+ return String.fromCharCode('0x' + p1);+ }));+}++Viz.svgXmlToPngImageElement = function(svgXml, scale, callback) {+ if (scale === undefined) {+ if ("devicePixelRatio" in window && window.devicePixelRatio > 1) {+ scale = window.devicePixelRatio;+ } else {+ scale = 1;+ }+ }+ + var pngImage = new Image();++ try {+ if (typeof fabric === "object" && fabric.loadSVGFromString) {+ fabric.loadSVGFromString(svgXml, function(objects, options) {+ // If there's something wrong with the SVG, Fabric may return an empty array of objects. Graphviz appears to give us at least one <g> element back even given an empty graph, so we will assume an error in this case.+ if (objects.length == 0) {+ if (callback !== undefined) {+ callback(new Error("Error loading SVG with Fabric"));+ return;+ } else {+ throw new Error("Error loading SVG with Fabric");+ }+ }+ + var element = document.createElement("canvas");+ element.width = options.width;+ element.height = options.height;+ + var canvas = new fabric.Canvas(element, { enableRetinaScaling: false });+ var obj = fabric.util.groupSVGElements(objects, options);+ canvas.add(obj).renderAll();+ + pngImage.src = canvas.toDataURL({ multiplier: scale });+ pngImage.width = options.width;+ pngImage.height = options.height;+ + if (callback !== undefined) {+ callback(null, pngImage);+ }+ });+ } else {+ var svgImage = new Image();++ svgImage.onload = function() {+ var canvas = document.createElement("canvas");+ canvas.width = svgImage.width * scale;+ canvas.height = svgImage.height * scale;++ var context = canvas.getContext("2d");+ context.drawImage(svgImage, 0, 0, canvas.width, canvas.height);++ pngImage.src = canvas.toDataURL("image/png");+ pngImage.width = svgImage.width;+ pngImage.height = svgImage.height;+ + if (callback !== undefined) {+ callback(null, pngImage);+ }+ }+ + svgImage.onerror = function(e) {+ var error;+ + if ('error' in e) {+ error = e.error;+ } else {+ error = new Error('Error loading SVG');+ }+ + if (callback !== undefined) {+ callback(error);+ } else {+ throw error;+ }+ }+ + svgImage.src = "data:image/svg+xml;base64," + b64EncodeUnicode(svgXml);+ }+ } catch (e) {+ if (callback !== undefined) {+ callback(e);+ } else {+ throw e;+ }+ }+ + if (callback === undefined) {+ return pngImage;+ }+}++Viz.svgXmlToPngBase64 = function(svgXml, scale, callback) {+ Viz.svgXmlToPngImageElement(svgXml, scale, function(err, image) {+ if (err) {+ callback(err);+ } else {+ callback(null, image.src.slice("data:image/png;base64,".length));+ }+ });+}+if (typeof exports === 'object' && typeof module !== 'undefined') {+ module.exports = Viz;+} else if (typeof define === 'function' && define.amd) {+ define(function() { return Viz; });+} else {+ global.Viz = Viz;+}+ })(this);
test/Examples.hs view
@@ -1,18 +1,23 @@-module Main where+module Main (main) where import Data.List import Test.Hspec import Test.Hspec.QuickCheck+import Test.QuickCheck (expectFailure,(===))+ import SMCDEL.Examples import SMCDEL.Examples.DiningCrypto import SMCDEL.Examples.DrinkLogic import SMCDEL.Examples.MuddyChildren+import SMCDEL.Examples.DoorMat+import SMCDEL.Examples.Prisoners import SMCDEL.Examples.RussianCards import SMCDEL.Examples.SumAndProduct import SMCDEL.Examples.WhatSum import SMCDEL.Internal.TexDisplay import SMCDEL.Language import SMCDEL.Other.BDD2Form+import SMCDEL.Other.Planning import SMCDEL.Symbolic.S5 import SMCDEL.Translations.S5 import qualified SMCDEL.Explicit.S5 as Exp@@ -25,58 +30,72 @@ prop "freshp returns a fresh proposition" $ \props -> freshp props `notElem` props prop "simplifying a boolean formula yields something equivalent" $- \(BF bf) -> boolBddOf bf == boolBddOf (simplify bf)+ \(BF bf) -> boolBddOf bf === boolBddOf (simplify bf) prop "simplifying a boolean formula only removes propositions" $ \(BF bf) -> all (`elem` propsInForm bf) (propsInForm (simplify bf)) prop "list of subformulas is already nubbed" $- \f -> nub (subformulas f) == subformulas f+ \f -> nub (subformulas f) === subformulas f prop "formulas are identical iff their show strings are" $- \f g -> ((f::Form) == g) == (show f == show g)+ \f g -> ((f::Form) == g) === (show f == show g) prop "boolean formulas with same prettyprint are equivalent" $ \(BF bf) (BF bg) -> (ppForm bf /= ppForm bg) || boolBddOf bf == boolBddOf bg prop "boolean formulas with same LaTeX are equivalent" $ \(BF bf) (BF bg) -> (tex bf /= tex bg) || boolBddOf bf == boolBddOf bg- it "we can LaTeX the testForm" $ tex testForm == intercalate "\n"+ it "we can LaTeX the testForm" $ tex testForm === intercalate "\n" [ " \\forall \\{ p_{3} \\} ( \\bigvee \\{" , " \\bot , p_{3} ,\\bot \\} \\leftrightarrow \\bigwedge \\{" , "\\top , ( \\top \\oplus K^?_{\\text{Alice}} p_{4} ) ,[Alice,Bob?! p_{5} ] K^?_{\\text{Bob}} p_{5} \\} ) " ]+ it "svgViaTex works for modelA" $+ isInfixOf "stroke-linecap:butt" (svgViaTex modelA)+ prop "svgViaTex can yield strings of different length" $+ expectFailure (\m1 m2 ->+ length (svgViaTex (m1::Exp.KripkeModelS5,0::Exp.World))+ === length (svgViaTex (m2::Exp.KripkeModelS5,0::Exp.World)) ) describe "SMCDEL.Symbolic.S5" $ prop "boolEvalViaBdd agrees on simplified formulas" $ \(BF bf) props -> let truths = nub props in- boolEvalViaBdd truths bf == boolEvalViaBdd truths (simplify bf)+ boolEvalViaBdd truths bf === boolEvalViaBdd truths (simplify bf) describe "SMCDEL.Other.BDD2Form" $ do- prop "boolBddOf . formOf . boolBddOf == boolBddOf" $- \(BF bf) -> (boolBddOf . formOf . boolBddOf) bf == boolBddOf bf prop "boolBddOf . formOf == id" $- \b -> b == boolBddOf (formOf b)+ \b -> b === boolBddOf (formOf b) prop "boolBddOf (Equi bf (formOf (boolBddOf bf))) == boolBddOf Top" $- \(BF bf) -> boolBddOf (Equi bf (formOf (boolBddOf bf))) == boolBddOf Top- describe "SMCDEL.Explicit.S5" $+ \(BF bf) -> boolBddOf (Equi bf (formOf (boolBddOf bf))) === boolBddOf Top+ describe "SMCDEL.Explicit.S5" $ do prop "generatedSubmodel preserves truth" $- \m f -> Exp.eval (m, head $ Exp.worldsOf m) f == Exp.eval (Exp.generatedSubmodel (m, head $ Exp.worldsOf m)) f+ \m f -> let pm = (m::Exp.KripkeModelS5, head $ Exp.worldsOf m)+ in isTrue pm f === isTrue (Exp.generatedSubmodel pm) f+ prop "optimize preserves truth" $+ \m f -> let pm = (m::Exp.KripkeModelS5, head $ Exp.worldsOf m)+ in isTrue pm f === isTrue (optimize (vocabOf m) pm) f+ prop "optimize can shrink the model" $+ expectFailure (\m -> let pm = (m::Exp.KripkeModelS5, head $ Exp.worldsOf m)+ in length (Exp.worldsOf pm) <= length (Exp.worldsOf (optimize (vocabOf m) pm)) ) describe "SMCDEL.Examples" $ do it "modelA: bob knows p, alice does not" $ Exp.eval modelA $ Conj [K bob (PrpF (P 0)), Neg $ K alice (PrpF (P 0))] it "modelB: bob knows p, alice does not know whether he knows whether p" $ Exp.eval modelB $ Conj [K bob (PrpF (P 0)), Neg $ Kw alice (Kw bob (PrpF (P 0)))] it "knsA has two states while knsB has three" $- [2,3] == map (length . statesOf . fst) [knsA,knsB]+ [2,3] === map (length . statesOf . fst) [knsA,knsB] it "redundantModel and minimizedModel are bisimilar" $ Exp.checkBisim [(0,0),(1,0),(2,1)] (fst redundantModel) (fst minimizedModel `Exp.withoutProps` [P 2])+ it "bisiminimizing redundantModel removes world 0" $+ Exp.bisiminimize redundantModel === (fst redundantModel `Exp.withoutWorld` 0, 1) it "findStateMap works for modelB and knsB" $ let (Just g) = findStateMap modelB knsB in equivalentWith modelB knsB g it "findStateMap works for redundantModel and myKNS" $ let (Just g) = findStateMap redundantModel myKNS in equivalentWith redundantModel myKNS g it "findStateMap works for minimizedModel and myKNS" $ let (Just g) = findStateMap minimizedModel myKNS in equivalentWith minimizedModel myKNS g- it "Three Muddy Children" $- evalViaBdd mudScn0 (nobodyknows 3) &&- evalViaBdd mudScn1 (nobodyknows 3) &&- evalViaBdd mudScn2 (Conj [knows i | i <- [1..3]]) &&- length (SMCDEL.Symbolic.S5.statesOf mudKns2) == 1+ describe "Three Muddy Children" $ do+ it "mudScn0: nobodyknows 3" $ evalViaBdd mudScn0 (nobodyknows 3)+ it "mudScn1: nobodyknows 3" $ evalViaBdd mudScn1 (nobodyknows 3)+ it "mudScn2: everyone knows" $ evalViaBdd mudScn2 (Conj [knows i | i <- [1..3]])+ it "mudKns2 has one state" $ length (SMCDEL.Symbolic.S5.statesOf mudKns2) === 1+ it "build result == mudScnInit 3 3" $ buildResult === mudScnInit 3 3 it "Thirsty Logicians: valid for up to 10 agents" $ all thirstyCheck [3..10] it "Dining Crypto: valid for up to 9 agents" $@@ -84,27 +103,39 @@ it "Dining Crypto, dcScn2: Only Alice knows that she paid:" $ evalViaBdd dcScn2 $ Conj [K "1" (PrpF (P 1)), Neg $ K "2" (PrpF (P 1)), Neg $ K "3" (PrpF (P 1))]+ it "Epistemic Planning: door mat plan succeeds" $+ reachesOn (Do "tryTake" tryTake (Check dmGoal Stop)) dmGoal dmStart+ it "Three Prisoners: Explicit Version reaches the goal" $+ endOf prisonExpStory `isTrue` prisonGoal+ it "Three Prisoners: Symbolic Version reaches the goal" $+ endOf prisonSymStory `isTrue` prisonGoal it "Russian Cards: all checks" SMCDEL.Examples.RussianCards.rcAllChecks it "Russian Cards: 102 solutions" $- length (filter checkSet allHandLists) == 102+ length (filter checkSet allHandLists) === 102+ it "Russian Cards: rusSCNfor (3,3,1) == rusSCN" $+ rusSCNfor (3,3,1) === rusSCN it "Sum and Product: There is exactly one solution." $- length sapSolutions == 1+ length sapSolutions === 1 it "Sum and Product: (4,13) is a solution." $ validViaBdd sapKnStruct (Impl (Conj [xIs 4, yIs 13]) sapProtocol) it "Sum and Product: (4,13) is the only solution." $ validViaBdd sapKnStruct (Impl sapProtocol (Conj [xIs 4, yIs 13]))+ it "Sum and Product: explaining the solution." $+ map sapExplainState sapSolutions `shouldBe` ["x = 4, y = 13, x+y = 17 and x*y = 52"] it "What Sum: There are 330 solutions." $- length SMCDEL.Examples.WhatSum.wsSolutions == 330+ length SMCDEL.Examples.WhatSum.wsSolutions === 330+ it "What Sum: The first solution is [('a',1),('b',3),('c',2)]" $+ wsExplainState (head wsSolutions) `shouldBe` [('a',1),('b',3),('c',2)] let ags = map show [1::Int,2,3] describe "SMCDEL.Explicit.K" $ do it "3MC genKrp: Top is Ck and Bot is not Ck" $- ExpK.eval ExpK.myMudGenKrpInit $ Conj [Ck ags Top, Neg (Ck ags Bot)]+ ExpK.eval myMudGenKrpInit $ Conj [Ck ags Top, Neg (Ck ags Bot)] it "3MC genKrp: It is not common knowledge that someone is muddy" $- ExpK.eval ExpK.myMudGenKrpInit $+ ExpK.eval myMudGenKrpInit $ Neg $ Ck (map show [1::Int,2,3]) $ Disj (map (PrpF . P) [1,2,3]) it "3MC genKrp: after announcing makes it common knowledge that someone is muddy" $- ExpK.eval ExpK.myMudGenKrpInit $+ ExpK.eval myMudGenKrpInit $ PubAnnounce (Disj (map (PrpF . P) [1,2,3])) $ Ck (map show [1::Int,2,3]) $ Disj (map (PrpF . P) [1,2,3]) describe "SMCDEL.Symbolic.K" $ do it "3MC genScn: Top is Ck and Bot is not Ck" $
+ test/K.hs view
@@ -0,0 +1,96 @@+module Main (main) where++import Data.Dynamic (toDyn)+import Data.Map.Strict (fromList)+import Data.List (sort)+import Test.Hspec+import Test.Hspec.QuickCheck++import SMCDEL.Internal.Help (alleq)+import SMCDEL.Language+import SMCDEL.Explicit.S5 (Action)+import SMCDEL.Symbolic.S5 (boolBddOf)+import SMCDEL.Explicit.K as ExpK+import SMCDEL.Symbolic.K as SymK+import SMCDEL.Translations.K as TransK++main :: IO ()+main = hspec $ do+ describe "hardcoded myMod and myScn" $ do+ prop "semanticEquivalence" $ alleq . semanticEquivalenceTest+ prop "singleChange: random action model with change" $ \ a f -> alleq $ singleChangeTest a f+ describe "random Kripke models" $ do+ prop "Ck i -> K i" $ \(Ag i) krm f -> ExpK.eval (krm,0) (Ck [i] f `Impl` Ck [i] f)+ prop "semanticEquivExpToSym" $ \krm f -> alleq $ semanticEquivExpToSym (krm,0) f+ prop "diff" $ \krmA krmB -> diffTest (krmA,0) (krmB,0)+ describe "random belief structures" $+ prop "semanticEquivSymToExp" $ \bls f -> alleq $ semanticEquivSymToExp (bls, head (statesOf bls)) f++myMod :: ExpK.PointedModel+myMod = (ExpK.KrM $ fromList wlist, 0) where+ wlist = [ (w, (fromList val, fromList $ relFor val)) | (val,w) <- wvals ]+ vals = map sort (foldl buildTable [[]] [P 0 .. P 4])+ wvals = zip vals [0..]+ buildTable partrows p = [ (p,v):pr | v <-[True,False], pr <- partrows ]+ relFor val = [ (show i, map snd $ seesFrom i val) | i <- [0..5::Int] ]+ seesFrom i val = filter (\(val',_) -> samefor i val val') wvals+ samefor 0 ps qs = ps == qs -- knows everything+ samefor 1 _ _ = False -- insane+ samefor _ _ _ = True++myScn :: SymK.BelScene+myScn =+ let allprops = [P 0 .. P 4]+ in (SymK.BlS allprops+ (boolBddOf Top)+ (fromList $ ("0", SymK.allsamebdd allprops) -- knows everything+ : ("1", SymK.emptyRelBdd) -- insane+ : [(show i, SymK.totalRelBdd) | i<-[2..5::Int]])+ , allprops)++semanticEquivalenceTest :: SimplifiedForm -> [Bool]+semanticEquivalenceTest (SF f) =+ [ ExpK.eval myMod f -- evaluate directly on Kripke+ , SymK.evalViaBdd myScn f -- evaluate equivalent BDD on BlS+ , ExpK.eval (TransK.blsToKripke myScn) f -- evaluate on corresponding Kripke+ , SymK.evalViaBdd (TransK.kripkeToBls myMod) f -- evaluate on corresponding BlS+ ]++singleChangeTest :: ActionModel -> SimplifiedForm -> [Bool]+singleChangeTest myact (SF f) =+ [ not (ExpK.eval myMod (preOf (myact,0::Action)))+ || ExpK.eval (update myMod (myact,0::Action) ) f+ , not (SymK.evalViaBdd (kripkeToBls myMod) (preOf (actionToEvent (myact,0))))+ || SymK.evalViaBdd (update (kripkeToBls myMod) (actionToEvent (myact,0))) f+ , not (ExpK.eval myMod (preOf (eventToAction (actionToEvent (myact,0)))))+ || ExpK.eval (update myMod (eventToAction (actionToEvent (myact,0)))) f+ , not (ExpK.eval (blsToKripke myScn) (preOf (eventToAction (actionToEvent (myact,0)))))+ || ExpK.eval (update (blsToKripke myScn) (eventToAction (actionToEvent (myact,0)))) f+ , not (SymK.evalViaBdd myScn (preOf (actionToEvent (myact,0))))+ || SymK.evalViaBdd (update myScn (actionToEvent (myact,0)) ) f+ -- using dynamic operators:+ , ExpK.eval myMod (box (Dyn "(myact,0)" (toDyn (myact,0::Action))) f)+ , SymK.evalViaBdd myScn (box (Dyn "actionToEvent (myact,0)" (toDyn $ actionToEvent (myact,0::Action))) f)+ ]+ ++ case SymK.reduce (actionToEvent (myact,0)) f of+ Nothing -> []+ Just g -> pure $ SymK.evalViaBdd (kripkeToBls myMod) (simplify g)+ ++ [ SymK.evalViaBddReduce myScn (actionToEvent (myact,0)) f ]++semanticEquivExpToSym :: PointedModel -> SimplifiedForm -> [Bool]+semanticEquivExpToSym pm (SF f) =+ [ ExpK.eval pm f+ , SymK.evalViaBdd (TransK.kripkeToBls pm) f+ ]++semanticEquivSymToExp :: BelScene -> SimplifiedForm -> [Bool]+semanticEquivSymToExp scn (SF f) =+ [ SymK.evalViaBdd scn f+ , ExpK.eval (TransK.blsToKripke scn) f+ ]++diffTest :: PointedModel -> PointedModel -> Bool+diffTest pmA pmB =+ case diffPointed pmA pmB of+ Left b -> checkBisimPointed b pmA pmB+ Right f -> isTrue pmA f && not (isTrue pmB f)
− test/NonS5.hs
@@ -1,70 +0,0 @@-module Main where--import Test.Hspec-import Test.Hspec.QuickCheck-import SMCDEL.Internal.Help (alleq)-import SMCDEL.Language-import SMCDEL.Symbolic.S5 (boolBddOf)-import SMCDEL.Explicit.K as ExpK-import SMCDEL.Symbolic.K as SymK-import SMCDEL.Translations.K as TransK-import SMCDEL.Explicit.K.Change-import SMCDEL.Symbolic.K.Change-import SMCDEL.Translations.K.Change-import Data.Map.Strict (fromList)-import Data.List (sort)--main :: IO ()-main = hspec $ do- describe "SMCDEL.Symbolic.K" $- prop "semantic equivalence" $ alleq . semanticEquivTest- describe "SMCDEL.Other.Change" $- prop "single change" $ \ a f -> alleq $ singleChangeTest a f--myMod :: ExpK.PointedModel-myMod = (ExpK.KrM $ fromList wlist, 0) where- wlist = [ (w, (fromList val, fromList $ relFor val)) | (val,w) <- wvals ]- vals = map sort (foldl buildTable [[]] [P 0 .. P 4])- wvals = zip vals [0..]- buildTable partrows p = [ (p,v):pr | v <-[True,False], pr <- partrows ]- relFor val = [ (show i, map snd $ seesFrom i val) | i <- [0..5::Int] ]- seesFrom i val = filter (\(val',_) -> samefor i val val') wvals- samefor 0 ps qs = ps == qs -- knows everything- samefor 1 _ _ = False -- insane- samefor _ _ _ = True--myScn :: SymK.BelScene-myScn =- let allprops = [P 0 .. P 4]- in (SymK.BlS allprops- (boolBddOf Top)- (fromList $ ("0", SymK.allsamebdd allprops) -- knows everything- : ("1", SymK.emptyRelBdd) -- insane- : [(show i, SymK.totalRelBdd) | i<-[2..5::Int]])- , allprops)--semanticEquivTest :: SimplifiedForm -> [Bool]-semanticEquivTest (SF f) =- [ ExpK.eval myMod f -- evaluate directly on Kripke- , SymK.evalViaBdd myScn f -- evaluate equivalent BDD on BlS- , ExpK.eval (TransK.blsToKripke myScn) f -- evaluate on corresponding Kripke- , SymK.evalViaBdd (TransK.kripkeToBls myMod) f -- evaluate on corresponding BlS- ]--singleChangeTest :: ChangeModel -> SimplifiedForm -> [Bool]-singleChangeTest myact (SF f) =- [ not (ExpK.eval myMod (preOf (myact,0::Action)))- || ExpK.eval (productChange myMod (myact,0) ) f- , not (SymK.evalViaBdd (kripkeToBls myMod) (preOf (actionToEvent (myact,0))))- || SymK.evalViaBdd (transform (kripkeToBls myMod) (actionToEvent (myact,0))) f- , not (ExpK.eval myMod (preOf (eventToAction' (actionToEvent (myact,0)))))- || ExpK.eval (productChange myMod (eventToAction' (actionToEvent (myact,0)))) f- , not (ExpK.eval (blsToKripke myScn) (preOf (eventToAction' (actionToEvent (myact,0)))))- || ExpK.eval (productChange (blsToKripke myScn) (eventToAction' (actionToEvent (myact,0)))) f- , not (SymK.evalViaBdd myScn (preOf (actionToEvent (myact,0))))- || SymK.evalViaBdd (transform myScn (actionToEvent (myact,0)) ) f- ]- ++ case SMCDEL.Symbolic.K.Change.reduce (actionToEvent (myact,0)) f of- Nothing -> []- Just g -> pure $ SymK.evalViaBdd (kripkeToBls myMod) (simplify g)- ++ [ SMCDEL.Symbolic.K.Change.evalViaBddReduce myScn (actionToEvent (myact,0)) f ]
test/Translations.hs view
@@ -1,14 +1,17 @@-module Main where+module Main (main) where +import Data.Dynamic (toDyn) import Data.List (sort) import Test.Hspec import Test.Hspec.QuickCheck+ import SMCDEL.Internal.Help (alleq) import SMCDEL.Language import SMCDEL.Symbolic.S5 as Sym import SMCDEL.Explicit.S5 as Exp import SMCDEL.Translations.S5 import SMCDEL.Examples+import SMCDEL.Internal.TaggedBDD main :: IO () main = hspec $@@ -16,10 +19,12 @@ prop "semantic equivalence" semanticEquivTest prop "semantic validity" semanticValidTest prop "lemma equivalence Kripke" lemmaEquivTestKr+ prop "lemma equivalence KnS" lemmaEquivTestKnS prop "number of states" numOfStatesTest prop "public announcement" pubAnnounceTest prop "group announcement" (\sf gl sg -> alleq $ announceTest sf gl sg) prop "single action" (\am f -> alleq $ singleActionTest am f)+ prop "propulations" propulationTest mymodel :: PointedModelS5 mymodel = (KrMS5 ws rel val, 0) where@@ -61,8 +66,8 @@ pm = (m, head ws) (kns,g) = kripkeToKnsWithG pm -lemmaEquivTestKns :: KnowStruct -> Bool-lemmaEquivTestKns kns = equivalentWith pm scn g where+lemmaEquivTestKnS :: KnowStruct -> Bool+lemmaEquivTestKnS kns = equivalentWith pm scn g where scn = (kns, head $ statesOf kns) (pm,g) = knsToKripkeWithG scn @@ -71,9 +76,13 @@ [ Exp.eval mymodel (PubAnnounce f g) , Sym.eval (kripkeToKns mymodel) (PubAnnounce f g) , Sym.evalViaBdd (kripkeToKns mymodel) (PubAnnounce f g)- , Sym.eval (knowTransform (kripkeToKns mymodel) (actionToEvent (pubAnnounceAction (agentsOf mymodel) f))) g+ , Sym.eval (update (kripkeToKns mymodel) (actionToEvent (pubAnnounceAction (agentsOf mymodel) f))) g+ , Exp.eval mymodel (Dia (Dyn dynName (toDyn $ pubAnnounceAction (agentsOf mymodel) f)) g)+ , Sym.eval (kripkeToKns mymodel) (Dia (Dyn dynName (toDyn $ actionToEvent $ pubAnnounceAction (agentsOf mymodel) f)) g)+ , Sym.evalViaBdd (kripkeToKns mymodel) (Dia (Dyn dynName (toDyn $ actionToEvent $ pubAnnounceAction (agentsOf mymodel) f)) g) ] where f = PrpF prp+ dynName = "publicly announce " ++ show prp announceTest :: SimplifiedForm -> Group -> SimplifiedForm -> [Bool] announceTest (SF f) (Group listeners) (SF g) =@@ -81,23 +90,28 @@ , let -- apply action model to Kripke precon = Exp.eval mymodel f action = groupAnnounceAction (agentsOf mymodel) listeners f- newModel = productUpdate mymodel action+ newModel = update mymodel action in not precon || Exp.eval newModel g+ , Exp.eval mymodel (box (Dyn ("announce " ++ show f ++ " to " ++ show listeners) (toDyn $ groupAnnounceAction (agentsOf mymodel) listeners f)) g) , Sym.eval (kripkeToKns mymodel) (Announce listeners f g) -- on equivalent kns , Sym.evalViaBdd (kripkeToKns mymodel) (Announce listeners f g) -- BDD on equivalent kns , let -- apply equivalent transformer to equivalent kns precon = Sym.eval (kripkeToKns mymodel) f equiTrf = actionToEvent (groupAnnounceAction (agentsOf mymodel) listeners f)- newKns = knowTransform (kripkeToKns mymodel) equiTrf+ newKns = update (kripkeToKns mymodel) equiTrf in not precon || Sym.eval newKns g ] -singleActionTest :: ActionModel -> Form -> [Bool]-singleActionTest myact f = [a,b,c,d,e] where- a = Exp.eval (productUpdate mymodel (myact,0)) f- b = Sym.evalViaBdd (knowTransform (kripkeToKns mymodel) (actionToEvent (myact,0))) f- c = Exp.eval (productUpdate mymodel (eventToAction (actionToEvent (myact,0)))) f- d = case reduce (actionToEvent (myact,0)) f of+singleActionTest :: ActionModelS5 -> Form -> [Bool]+singleActionTest myact f = [a,b,c,d] where+ a = Exp.eval (update mymodel (myact,0::Action)) f+ b = Sym.evalViaBdd (update (kripkeToKns mymodel) (actionToEvent (myact,0::Action))) f+ c = Exp.eval (update mymodel (eventToAction (actionToEvent (myact,0::Action)))) f+ d = case reduce (actionToEvent (myact,0::Action)) f of Nothing -> c Just g -> Sym.evalViaBdd (kripkeToKns mymodel) g- e = Sym.evalViaBddReduce (kripkeToKns mymodel) (actionToEvent (myact,0)) f++propulationTest :: KripkeModelS5 -> Bool+propulationTest m = checkPropu (allsamebdd (vocabOf kns1)) (fst kns1) (fst kns2) (vocabOf kns1) where+ kns1 = kripkeToKns (m,head $ worldsOf m)+ kns2 = kripkeToKns (knsToKripke kns1)