packages feed

visual-graphrewrite (empty) → 0.3

raw patch · 21 files changed

+1734/−0 lines, 21 filesdep +basedep +cairodep +containerssetup-changed

Dependencies added: base, cairo, containers, directory, fgl, gtk, haskell-src, ipprint, lazysmallcheck, parallel, pretty, process, strict-concurrency, svgcairo, value-supply

Files

+ GraphRewrite.hs view
@@ -0,0 +1,17 @@+module GraphRewrite (+                     module GraphRewrite.Internal.Convert,+                     module GraphRewrite.Internal.SimpleHaskell,+                     module GraphRewrite.Internal.RewriteTypes,+                     module GraphRewrite.Internal.Rewrite,+                     module GraphRewrite.Internal.RewriteApp,+                     module GraphRewrite.Internal.Rename,+                     module GraphRewrite.Internal.DeltaFunctions+                    )+where+  import GraphRewrite.Internal.Convert+  import GraphRewrite.Internal.SimpleHaskell hiding (Expr)+  import GraphRewrite.Internal.RewriteTypes+  import GraphRewrite.Internal.Rewrite+  import GraphRewrite.Internal.RewriteApp+  import GraphRewrite.Internal.Rename+  import GraphRewrite.Internal.DeltaFunctions
+ GraphRewrite/Debug.hs view
@@ -0,0 +1,42 @@++import GraphRewrite.Internal.SimpleHaskell+import IPPrint+import Language.Haskell.Syntax+import Language.Haskell.Parser+import GraphRewrite.Internal.Rename+import GraphRewrite.Internal.Convert+import Data.Supply+import qualified Data.IntMap as I+import Data.Map+import GraphRewrite.Internal.RewriteApp+import GraphRewrite.Internal.RewriteTypes+import GraphRewrite.Internal.Rewrite+import GraphRewrite.Internal.DeltaFunctions+import GraphRewrite.Main.Visualize+import Prelude hiding (exp)+import Foreign+import Data.Maybe+import Data.Graph.Inductive.Graphviz++predef = Prelude.map snd deltaNames++sup = unsafePerformIO newEnumSupply :: Supply Int+file = unsafePerformIO $ readFile "sample/SieveOfEratosthenes.hs"+(ids, ids2, ids3) = split3 sup++(Ok (predefBinds,_,_)) = distributeIds predef ids2++m = parseModule file+renamed = rename' predefBinds (convParse m) ids3+(Ok (n,sm)) = renamed+rs = makeRewriteSystem sm n++-------++(i1, i2, i3) = split3 ids++(Ok (nev, modul)) = rename' predefBinds (convParse $ parseModule "result x = let {a = Cons 1 b; b=a} in a") i1+rendsz =  makeRewriteSystem modul nev+pg = let r = (head $ fromJust $ I.lookup 0 (rules rendsz)) in (exp r, graph r)++gr = graphToGr i2 rendsz pg
+ GraphRewrite/Internal/Convert.hs view
@@ -0,0 +1,91 @@+{- |+   This module contains functions for converting a 'Language.Haskell.Parser.ParseResult'+   to our own representation of a Haskell module called 'SimpleHaskell'.+-}++module GraphRewrite.Internal.Convert+where++import GraphRewrite.Internal.SimpleHaskell++import Data.List+import Data.Char++import Language.Haskell.Syntax+import Language.Haskell.Parser++-- | Converts a 'ParseResult' as returned by 'Language.Haskell.Parser' to our internal 'SimpModule' format. Returns an empty 'SimpModule' if the parse failed.+convParse :: ParseResult HsModule -> SimpModule String+convParse (ParseFailed _ _) = []+convParse (ParseOk m)       = convModule m++splitDecls :: [HsDecl] -> ([HsDecl], [HsDecl])+splitDecls l = partition isEnvRelated l+    where+      isEnvRelated d = case d of+                         (HsDataDecl _ _ _ _ _ _) -> True+                         (HsTypeDecl _ _ _ _) -> True+                         _ -> False+++convModule :: HsModule -> SimpModule String+convModule (HsModule _ _m _exp _imp decl) = map convDecl (snd $ splitDecls decl)++convDecl :: HsDecl -> Decl String+convDecl (HsFunBind hsmatch) = FunBind (map convMatch hsmatch)+convDecl (HsPatBind _ pat rhs _decl) = PatBind (convPars pat) (convRhs rhs)+--convDecl (HsDataDecl _ _ (HsIdent a) _ _ _) = DataDecl a+--convDecl (HsDataDecl _ _ (HsSymbol a) _ _ _) = DataDecl a++convMatch :: HsMatch -> FunAlt String+convMatch (HsMatch _ (HsIdent fname) pars expr _) = (fname, map convPars pars, convRhs expr)++convPars :: HsPat -> Patt String+convPars (HsPVar n) = convName n+convPars (HsPLit n) = Lit (convLit n)+convPars (HsPApp qn l) = Apply $ (convQName qn) : (map convPars l)+convPars (HsPParen p) = convPars p+convPars (HsPAsPat n p) = AsPat (head $ nameExpr $ convName n) (convPars p)+--convPars (HsPNeg n) --TBD+convPars (HsPList []) = Cons "[]"+convPars (HsPInfixApp p1 p2 p3) = convPars (HsPApp p2 [p1,p3])+convPars p = error $ "convPars: " ++ show p++convName :: HsName -> Expr String+convName (HsIdent  n)+    | isUpper (head n) = Cons n+    | otherwise        = Var n+convName (HsSymbol n) = Var n --FIXME++convQName :: HsQName -> Expr String+convQName (UnQual n) = convName n+--convQName Qual m n+convQName (Special HsCons) = Cons ":"+convQName (Special HsListCon) = Cons "[]"+++convLit :: HsLiteral -> String+convLit (HsChar n) = show n+convLit (HsString n) = show n+convLit (HsInt n) = show n+convLit (HsFrac n) = show n+convLit (HsCharPrim n) = show n+convLit (HsStringPrim n) = show n+convLit (HsIntPrim n) = show n+convLit (HsFloatPrim n) = show n+convLit (HsDoublePrim n) = show n++convRhs :: HsRhs -> Expr String+convRhs (HsUnGuardedRhs expr) = convExpr expr++convExpr :: HsExp -> Expr String+convExpr (HsVar qn) = convQName qn+convExpr (HsApp exp1 exp2)  = Apply [convExpr exp1, convExpr exp2]+convExpr (HsInfixApp exp1 (HsQVarOp qn) exp2) = Apply [convQName qn, convExpr exp1, convExpr exp2]+convExpr (HsInfixApp exp1 (HsQConOp qn) exp2) = Apply [convQName qn, convExpr exp1, convExpr exp2]+convExpr (HsLit literal)    = Lit (convLit literal)+convExpr (HsLet decls exp)  = Let (map convDecl decls) (convExpr exp)+convExpr (HsCon (UnQual (HsIdent con))) = Cons con+convExpr (HsParen exp) = convExpr exp+convExpr (HsList []) = Cons "[]"+convExpr a = Lit ("UNIMPLEMENTED: " ++ show a)
+ GraphRewrite/Internal/DeltaFunctions.hs view
@@ -0,0 +1,17 @@+module GraphRewrite.Internal.DeltaFunctions+where++data Prec+    = Infixr Int+    | Prefix++deltaNames :: [(Prec, String)]+deltaNames = [(Infixr 5, "++"), (Infixr 5, ":")] ++ map p ["div", "mod", "eqInt", "not", "Cons", "Nil", "succ", "True", "False", "sin", "[]"]  where++    p s = (Prefix, s)++evalDelta :: String -> [String] -> String+evalDelta "sin" [x] = show $ sin $ (read x :: Double)+evalDelta "True" [] = "True"+evalDelta "False" [] = "False"+evalDelta "succ" [n] = show $ (read n) + (1 :: Int)
+ GraphRewrite/Internal/Rename.hs view
@@ -0,0 +1,283 @@+{- |+  This module contains functions for assigning integer identifiers to lexical elements of+  a Haskell source file. This process is called renaming.+-}+module GraphRewrite.Internal.Rename+where++import GraphRewrite.Internal.SimpleHaskell++import Data.Supply++import Control.Monad.Fix++import Data.Map hiding (map, split, filter)+import qualified Data.IntMap as I++import Data.List hiding (lookup, union, insert)+import qualified Data.List as List -- (lookup)+import Data.Maybe++import Prelude hiding (lookup)++-------------------------------------------------++-- | Maps String identifiers to Integer identifiers.+type Binds = Map String Int++-- | Inverse mapping of 'Binds'+type Names = I.IntMap String++-- | An endless supply of Ints+type UniqueIds   = Supply Int++-- type Id = Int++-- | Result monad; error spreads+data Result a+    = Hiba String+    | Ok a+      deriving (Show, Eq)+++--instance Monad Result where+instance Monad (Result) where++        a >>= b = case a of+                Hiba err        -> fail err+                Ok x            -> b x++        fail a = Hiba a++        return a = Ok a++instance MonadFix (Result) where++    mfix f = m   where++        m = f (kiszed m)++        kiszed (Ok a) = a++instance Functor Result where++    fmap f (Ok a) = Ok (f a)+    fmap _ (Hiba err) = Hiba err+------------------------------------------------+swap :: (a, b) -> (b, a)+swap = \(x,y) -> (y,x)++namesToBinds :: Names -> Binds+namesToBinds = fromList . map (swap) . I.toList++bindsToNames :: Binds -> Names+bindsToNames = I.fromList . map (swap) . toList++-- | Assigns 'Int' identifiers to Strings. Each String gets a unique Int.+distributeIds+    :: [String]     -- ^ String identifiers+    -> UniqueIds          -- ^ Unique Ints+    -> Result (Binds, Names, [Int])+                    -- ^ Error if there were at least two duplicate strings, otherwise returns the newly created assignments (String -> Int and Int -> String) and the list of assigned Ints.+distributeIds l ids = case duplicates l of+                        (x:_) -> fail $ "multiple definition: " ++ x+                        _     -> return (fromList $ zip l i, I.fromList $ zip i l, i)+                            where+                              i = take (length l) $ map supplyValue $ split ids++-- | Does the same thing as distributeIds, only for [[String]] lists+distributeIds' :: [[String]] -> UniqueIds -> Result (Binds, Names, [[Int]])+distributeIds' (l:ls) ids = do+  let (ids1, ids2) = split2 ids+  (b, n, i) <- distributeIds l ids1+  (b', n', i') <- distributeIds' ls ids2+  return (union b b', I.union n n', i:i')++distributeIds' [] _ = return (empty, I.empty, [[]])++-- | Find the duplicates in the first argument+duplicates :: Ord a => [a] -> [a]+duplicates = catMaybes . map (listToMaybe . tail) . group . sort++mapFst :: (a -> c) -> (a,b) -> (c,b)+mapFst f (a,b) = (f a, b)+mapSnd :: (b -> c) -> (a,b) -> (a,c)+mapSnd f (a,b) = (a, f b)++-- | Substitutes String identifiers to Int ones in an 'Expr' structure.+renameExpr+    :: Binds        -- ^ Already assigned Strings+    -> Expr String  -- ^ The expression+    -> UniqueIds          -- ^ An endless supply of unique Ints+    -> Result (Names, Expr Int) -- ^ If substitution is successful, returns the new assignments and the converted expression; otherwise returns an error.+renameExpr _ (Lit s) _ = return (I.empty, Lit s)+renameExpr b (Var v) _ = case lookup v b of+        Nothing         -> fail $ "renameExpr - not defined: " ++ v+        Just i          -> return (I.empty, Var i)+renameExpr b (Apply l) ids = fmap (mapSnd Apply) $ renameExprs b l ids+renameExpr b (AsPat n p) ids = do+  let (Just i) = lookup n b -- FIXME: fail properly like above+  (names, e) <- renameExpr b p ids+  return (names, AsPat i e)++renameExpr b (Cons c) _ = case lookup c b of+                              Nothing -> fail $ "not defined: " ++ c+                              Just i  -> return (I.empty, Cons i)+renameExpr b (Let l e) ids = do++  let (ids1, ids2) = split2 ids++  (b', l_names, l') <- renameDecls b l ids1++  (e_names, e') <- renameExpr b' e ids2++  return (I.unions [l_names,  e_names], Let l' e')++-- | This is 'renameExpr' for lists. It applies 'renameExpr' for every 'Expr' in the second parameter.+renameExprs :: Binds -> [Expr String] -> UniqueIds -> Result (Names, [Expr Int])+renameExprs b exprs ids = fmap (mapFst I.unions . unzip) $ sequence [renameExpr b e i | (e,i)<- zip exprs (split ids)]++-- | Substitutes String identifiers to Int ones in a 'Decl' structure.+renameDecl+    :: Binds  -- ^ Already assigned Strings (including function names on the same level)+    -> Decl String  -- ^ The declaration+    -> UniqueIds  -- ^ An endless supply of unique Ints+    -> Result (String, Names, Decl Int )        -- ^ If substitution is successful, returns the name of the 'Decl', the new assignments (this does not include the name of the 'Decl') and the converted declaration; otherwise returns an error.++renameDecl b (FunBind fas@((n,_,_):_)) ids = do++  (names, funalts) <- renameFunAlts b fas ids++  return (n, names, FunBind funalts)++renameDecl b (PatBind p e) ids = do++  (e_names, e') <- renameExpr b e ids++  return (head $ nameExpr p, e_names, PatBind (joinPatts (p, [(b ! (head $ nameExpr p))])) e')++--renameDecl b (DataDecl a) ids = Ok (a, I.empty, DataDecl (-1))+++-- | This is 'renameDecl' for lists. It applies 'renameDecl' to every 'Decl' in the second parameter, properly handling the names of the declarations.+renameDecls :: Binds -> [Decl String] -> UniqueIds+    -> Result (Binds, Names, [Decl Int])     -- ^ If substitution is successful, returns all of the bindings, the new assignments and the list of converted declarations; otherwise returns an error.+renameDecls b decls ids  = do++    let (ids1, ids2) = split2 ids++    let as = map name decls++    (b_, as_, _) <- distributeIds as ids2++    let b' = union b_ b++    (_as, bs, cs) <- fmap unzip3 $ sequence [renameDecl b' d i | (d,i) <- zip decls (split ids1)]++    return (b', I.unions (as_:bs), cs)+++-- | Substitutes the String identifiers in a pattern with the supplied integer(s).+joinPatts :: (Patt String, [Int]) -> Patt Int+joinPatts (Var _, [i]) = Var i+joinPatts (Cons _, [i]) = Cons i+joinPatts (Lit s, _) = Lit s+joinPatts (Apply s, i) = Apply (map joinPatts (zip s i'))+    where+      i' = map (\x -> [x]) i+++-- | Does the substitution in function alternatives.+renameFunAlt :: Binds -> FunAlt String -> UniqueIds -> Result (Names, FunAlt Int)+renameFunAlt b (f, as, e) ids = do --elofeltetel: f mar at van nevezve, es b-ben van errol az info+  let (ids1, ids2, ids3) = split3 ids++  f' <- case lookup f b of+          Just i  -> return i+          Nothing -> fail $ "This shouldn't happen " ++ f++  let as' = removeCons as --don't want to reassign ids to constructors, duh++  (asb, as_names1, _) <- distributeIds' (map nameExpr as') ids1++  (as_names2, _) <- renameExprs (union asb b) as' ids1++  let b' = unions [(namesToBinds as_names2), asb, b]++  tmp <- sequence $ fmap (\x -> renameExpr b' x ids3) as+  let (_as_lonames, as'') = unzip tmp --as_leftover_names++  (e_names, e') <- renameExpr b' e ids2++  return (I.unions ([as_names1, as_names2, e_names]), (f', as'', e'))+    where+      removeCons [] = []+      removeCons ((Cons _):t) = removeCons t+      removeCons ((Apply h):t) = (Apply (removeCons h)):(removeCons t)+      removeCons (h:t) = h:(removeCons t)++-- | This is 'renameFunAlt' for lists. It applies 'renameFunAlt' for every 'FunAlt' in the second parameter.+renameFunAlts :: Binds -> [FunAlt String] -> UniqueIds -> Result (Names, [FunAlt Int])+renameFunAlts b funalts ids = fmap (mapFst I.unions . unzip) $ sequence [renameFunAlt b f i | (f,i) <- zip funalts (split ids)]++-------------------------------------------------++-- | Does the substitution in a 'SimpModule' structure.+rename :: Binds -- ^ Predefined entities+       -> SimpModule String -- ^ The module which needs substitution+       -> UniqueIds --  ^ An endless supply of Ints+       -> Result (Names, SimpModule Int) -- ^ If the substitution is successful, returns the assignments for the global identifiers and the converted 'SimpModule'; otherwise returns an error.+rename predef decls ids = fmap g $ renameDecls predef decls ids+  where g (_,b,c) = (b,c)++rename' :: Binds -> SimpModule String -> UniqueIds -> Result (Names, SimpModule Int)+rename' predef decls ids = do+  (n, m) <- fmap (\(_,y,z) -> (y,z)) $ renameDecls predef decls ids+  return (I.union (I.fromList $ map (\(x,y) -> (y,x)) (toList predef)) n, m)++-- | Resubstitutes String identifiers in place of Int ones. This is useful to check correctness of 'rename'.+invRename :: Names -> SimpModule Int -> Result (SimpModule String)+invRename names decls = sequence $ fmap (invRenameDecl names) decls++invRenameDecl :: Names -> Decl Int -> Result (Decl String)+invRenameDecl names (FunBind alts) =  do+  alts' <- sequence (fmap (invRenameFunAlt names) alts)+  return $ FunBind alts'++invRenameDecl names (PatBind p e)  = do+  p' <- (invRenameExpr names p)+  e' <- (invRenameExpr names e)+  return $ PatBind p' e'++invRenameFunAlt :: Names -> FunAlt Int -> Result (FunAlt String)+invRenameFunAlt names (f, ps, e) = do+  f' <- case I.lookup f names of+         Just s  -> return s+         Nothing -> fail $ "No String identifier found for " ++ show f++  ps' <- sequence $ fmap (invRenameExpr names) ps+  e'  <- invRenameExpr names e++  return (f', ps', e')++invRenameExpr :: Names -> Expr Int -> Result (Expr String)+invRenameExpr names (Let decls e) = do+  decls' <- sequence $ fmap (invRenameDecl names) decls+  e' <- invRenameExpr names e+  return (Let decls' e')++invRenameExpr names (Var v) = case I.lookup v names of+                                Just s  -> return (Var s)+                                Nothing -> fail $ "No String identifier found for " ++ show v++invRenameExpr names (Cons c) = case I.lookup c names of+                                 Just s  -> return (Cons s)+                                 Nothing -> fail $ "No String identifier found for " ++ show c++invRenameExpr names (Apply es) = do+ es' <- sequence (fmap (invRenameExpr names) es)+ return $ Apply es'++invRenameExpr _ (Lit s) = return (Lit s)++
+ GraphRewrite/Internal/Rewrite.hs view
@@ -0,0 +1,148 @@++module GraphRewrite.Internal.Rewrite+    ( rewriteHNF+    , rewriteStep+    , rewriteStep'+    ) where++  import GraphRewrite.Internal.RewriteTypes+  import GraphRewrite.Internal.DeltaFunctions++  import qualified Data.IntMap as I++  import Data.Maybe+  import Prelude hiding (exp)++-------------------- eliminate SRef+++-------------------- flatten SApp in first arguments++++--------------------++  -- | Rewrite an expression to it's Head Normal Form.+  rewriteHNF+      :: RewriteSystem -- ^ A rewrite system which contains rules+      -> Expr          -- ^ Expression to be rewritten+      -> Graph         -- ^ Graph showing images of references+      -> PointedGraph  -- ^ Resulting HNF expression with the hopefully empty graph.+  rewriteHNF rs e g = case rewriteStep rs e g of+                        Nothing     -> (e, g)+                        Just (e, g) -> rewriteHNF rs e g++  -- | Does a rewrite step on the specified expression or returns the original (Expr, Graph) pair. See also 'rewriteStep'.+  rewriteStep' :: RewriteSystem -> Expr -> Graph -> PointedGraph+  rewriteStep' rs e g = fromMaybe (e, g) $ rewriteStep rs e g+++  -- | Does a rewrite step on the specified expression maybe returning the result.+  rewriteStep+      :: RewriteSystem -- ^ A rewrite system which contains rules+      -> Expr          -- ^ Expression to be rewritten+      -> Graph         -- ^ Graph showing images of references+      -> Maybe PointedGraph -- ^ Just the resulting pointed graph or Nothing if rewriting is impossible.+  rewriteStep rs e g =+      case flattenSApp (deref e g) g of+        (SFun ar f, l) -> case rls of+                           Just rls+                               | length l == ar -> firstMatch rs g l rls+                               | length l  > ar -> do+                                       (e, g) <- firstMatch rs g (take ar l) rls+                                       pg <- rewriteStep rs (SApp e (drop ar l)) g+                                       return pg+                               | otherwise      -> Nothing+                           Nothing -> do+                                    let l' = map (fst . rewriteExp) l+                                    f' <- I.lookup f (names rs)+                                    e <- rewriteDelta f' l'+                                    -- a vegeredmeny literalra atiranyitani azokat az eleket, amik a delta fuggvenyre mutattak+                                    return (e, I.empty)+            where+                rls = (I.lookup f (rules rs))+                rewriteExp = (flip (rewriteHNF rs)) g++        _ -> Nothing+  -- | Gets the first matching rule for a list of patterns (function arguments).+  firstMatch :: RewriteSystem -> Graph -> [Expr] -> [Rule] -> Maybe PointedGraph+  firstMatch _ _ _ [] = Nothing+  firstMatch rs g es (rule:rules)+     = case matches rs g es (patts rule) I.empty  of+         (g, Just bs) -> Just (substitute bs (exp rule), g)+         _            -> firstMatch rs g es rules++  -- | Does the rewriting on a delta function and its arguments.+  rewriteDelta :: String -> [Expr] -> Maybe Expr+  rewriteDelta f l = do+    l' <- mapM deLit l+    return (SLit $ evalDelta f l')+      where+        deLit :: Expr -> Maybe String+        deLit (SLit a) = Just a+        deLit _        = Nothing++  -- | Substitutes 'SRef' structures to its images. This is a deep implementation which calls itself recursively for 'SApp'.+  substitute+      :: I.IntMap Expr -- mit mire+      -> Expr          -- miben+      -> Expr+  substitute bs (SRef n) = fromMaybe (error "Internal error: reference target not found") $ I.lookup n bs+  substitute bs (SApp e es) = SApp (substitute bs e) (map (substitute bs) es)+  substitute _ e = e++  -- | Pattern matching for multiple expressions and patterns. See also 'match'.+  matches+    :: RewriteSystem+    -> Graph+    -> [Expr]         -- ^ Expressions+    -> [Expr]         -- ^ Patterns+    -> I.IntMap Expr  -- ^ Binds+    -> (Graph, Maybe (I.IntMap Expr))++  matches _ g [] [] bs = (g, Just bs)+  matches rs g (e:es) (p:ps) bs+    = case match rs g e p bs of+        (g, Just bs)    -> matches rs g es ps bs+        x               -> x++  -- | Does the pattern matching.+  match+    :: RewriteSystem+    -> Graph          -- ^ Images of references+    -> Expr           -- ^ Expression to be matched.+    -> Expr           -- ^ Pattern+    -> I.IntMap Expr  -- ^ Binds+    -> (Graph, Maybe (I.IntMap Expr))+  match _ g e (SHole n) bs = (g, Just (I.insert n e bs))+  match rs g e (SLit y)  bs+        = case rewriteStep' rs e g of+            (SLit x, g)  | x == y      -> (g, Just bs)+            _                          -> (g, Nothing)+  match rs g e (SCons y) bs+        = case rewriteStep' rs e g of+            (SCons x, g)  | x == y     -> (g, Just bs)+            _                          -> (g, Nothing)++  match rs g e (SApp y ys) _+        = case rewriteStep' rs e g of+            (SApp x xs, bs)            -> matches rs g (x:xs) (y:ys) bs+            _                          -> (g, Nothing)+++{-++Apply [Apply [Var "++", Apply [Var "showInt", Apply [Apply [Var "div", Var "n"], Lit "10"]]],+       Apply [Var "showInt", Apply [Apply [Var "mod", Var "n"], Lit "10"]]]++( 1 -> "++", 2 -> "showInt", 3 -> "div", 4 -> "n", 5 -> "mod" )++-->++Apply [Apply [Var 1, Apply [Var 2, Apply [Apply [Var 3, Var 4], Lit "10"]]], Apply [Var 2, Apply [Apply [Var 5, Var 4], Lit "10"]]]++-->++SApp (SFun 2 1) [SApp (SFun 1 2) [SApp (SFun 2 3) [SRef 4,SLit "10"]],SApp (SFun 1 2) [SApp (SFun 2 5) [SRef 4,SLit "10"]]]++-}
+ GraphRewrite/Internal/RewriteApp.hs view
@@ -0,0 +1,85 @@++module GraphRewrite.Internal.RewriteApp+    ( makeRewriteRules, invMakeExpr, makeRewriteSystem )+where+  import Prelude hiding (exp)++  import qualified Data.IntMap as I+  import qualified Data.List as L++  import GraphRewrite.Internal.RewriteTypes+  import qualified GraphRewrite.Internal.SimpleHaskell as SH++  makeRewriteSystem :: SH.SimpModule Int -> I.IntMap String -> RewriteSystem+  makeRewriteSystem m nms = (makeRewriteRules m) { names = nms }++  makeRewriteRules :: SH.SimpModule Int -> RewriteSystem+  makeRewriteRules []    = defaultRS+  makeRewriteRules (h:t) = case I.lookup hid (rules rest) of -- FIXME vv+                             Just rs -> defaultRS { rules = I.insert hid (extend rs h) (rules rest) }+                             Nothing -> defaultRS { rules = I.insert hid (extend [] h) (rules rest) }+      where+        hid  = SH.name' h+        rest = makeRewriteRules t+        extend l (SH.FunBind as)  = L.nub $ l ++ map makeRule as+        extend l (SH.PatBind (SH.Var v) e) = extend l (SH.FunBind [(v, [], e)]) -- special case to handle variable bindings+        extend l _ = l++  makeRule :: SH.FunAlt Int -> Rule+  makeRule (_, ps, e) = fixExpr $ Rule { patts = map makePat ps,+                                         exp = makeExpr e,+                                         graph = makeGraph (e:ps) }++  makePat :: SH.Expr Int -> Expr+  makePat (SH.AsPat _ e) = makeExpr e+  makePat x = makeExpr x++  makeExpr :: SH.Expr Int -> Expr+  makeExpr (SH.Var v) = SHole v+  makeExpr (SH.Cons c) = SCons c+  makeExpr (SH.Lit l) = SLit l+  makeExpr (SH.Let _ e) = makeRefExpr e+  makeExpr (SH.Apply ((SH.Cons c):t)) = SApp (SCons c) (map makeExpr t)+  makeExpr (SH.Apply ((SH.Var v):t))  = SApp (SFun (length t) v) (map makeExpr t) -- ez vajon igy jo?+  makeExpr (SH.Apply (h@(SH.Apply (_:_)):t)) = SApp (fst la) (snd la)+      where+        la = liftApp $ makeExpr h+        liftApp (SApp (SFun a f) l) = (SFun (a + (length t)) f, l ++ (map makeExpr t))+        liftApp (SApp (SCons c) l) = (SCons c, l ++ (map makeExpr t))++  makeRefExpr :: SH.Expr Int -> Expr+  makeRefExpr = holeToRef . makeExpr+      where+        holeToRef (SHole h) = SRef h+        holeToRef (SApp e es) = SApp (holeToRef e) (map holeToRef es)+        holeToRef e = e++  fixExpr :: Rule -> Rule+  fixExpr r@(Rule {exp = e, graph = g}) = r { exp = doFix e }+      where+        doFix x@(SHole h) = case I.lookup h g of+                              Just _ -> SRef h+                              _      -> x+        doFix (SApp e es) = SApp (doFix e) (map doFix es)+        doFix x = x++++  makeGraph :: [SH.Expr Int] -> Graph+  makeGraph (p:ps) = case p of+                       SH.AsPat a e -> I.insert a (makeExpr e) (makeGraph ps)+                       SH.Let ((SH.PatBind p pe):ds) e -> let patid = read (exprID $ makePat p) :: Int in+                                                         I.insert patid (makeRefExpr pe) (makeGraph ((SH.Let ds e):ps))+                       SH.Let [] _ -> makeGraph ps --redundant+                       SH.Let ((SH.FunBind _):_) _ -> error "makeGraph error: FunBinds unsupported in Let"+                       _           -> makeGraph ps++  makeGraph [] = I.empty++  invMakeExpr :: Expr -> SH.Expr Int+  invMakeExpr (SCons c) = SH.Cons c+  invMakeExpr (SLit l)  = SH.Lit l+  invMakeExpr (SFun _ f) = SH.Var f+  invMakeExpr (SHole v) = SH.Lit ("THIS IS A BUG - " ++ show v)+  invMakeExpr (SApp x xs) = SH.Apply (invMakeExpr x : map invMakeExpr xs)+
+ GraphRewrite/Internal/RewriteTypes.hs view
@@ -0,0 +1,165 @@+-- | Types which are specific to a graph rewrite system.+module GraphRewrite.Internal.RewriteTypes+where++  import Data.IntMap+  import Prelude hiding (lookup)++  -- | Arity is a non-negative integer which represents the number of arguments a function can take.+  type Arity = Int++  -- | An expression.+  data Expr+      = SCons Int        -- ^ A constructor token. May occur on either the left or right side of a rule.+      | SFun  Arity Int  -- ^ A function token. May only occur on the right side of a rule (definition).+      | SLit String      -- ^ String literal. Usually handled the same way as a 0 argument constructor.+      | SHole Int        -- ^ Represents join points in a rule. Should not appear in data graphs.+      | SRef Int         -- ^ Refers to an other expressions. Sharing can be expressed with this token in data graphs and right side of rules.+      | SApp Expr [Expr] -- ^ Represents an application. An expression can be applied to a list of expressions. The first one can only be SFun or SCons (or SRef). Can appear everywhere, but if on the right side of a rule, the first expression can only be an SCons.+        deriving (Eq, Show)++  -- | A rewrite system is essentially a mapping of function identifiers to alternative definitions.+  data RewriteSystem = RewriteSystem+      { rules :: IntMap [Rule]+      , names :: IntMap String -- TODO: document this.+      }+                       deriving (Show)++  defaultRS :: RewriteSystem+  defaultRS = RewriteSystem { rules = empty, names = empty }+++  -- | A rule represents a function alternative.+  data Rule = Rule+    { patts :: [Expr]     -- ^ A list of expressions representing pattern bindings.+    , exp   :: Expr       -- ^ The function definition.+    , graph :: Graph      -- ^ Images of references in the definition.+    }+              deriving (Eq, Show)++  -- | A graph is represented by a mapping from integers to expressions.+  type Graph = IntMap Expr++  -- | This is a normal graph with one expression designated as root node.+  type PointedGraph = (Expr, Graph)++  -- | This function tries to eliminate SApp structures nested in the first argument.+  flattenSApp :: Expr -> Graph ->+    ( Expr, [Expr])          -- ^ Symbol to be applied. Can only be SFun, SCons or SLit. & Arguments. In case of SFun, this can not be empty, otherwise this should be empty.+  flattenSApp (SApp x xs) g+    = case deref x g of+      SApp y ys  -> flattenSApp (SApp y (ys ++ xs)) g+      x          -> (x, xs)+  flattenSApp x _       -- SLit, SCons, SFun  esetén+    = (x, [])++  exprID :: Expr -> String+  exprID (SCons c) = show c+  exprID (SFun _ f) = show f+  exprID (SLit l) = l+  exprID (SHole h) = show h+  exprID (SRef r) = show r+  exprID e = exprID $ fst $ flattenSApp e empty++  -- | Replace SRef structure for the referenced expression. Errors out if there is no dereference.+  deref+      :: Expr -- ^ Expression to be dereferenced. If not an SRef then this will be the result.+      -> Graph -- ^ Images of SRefs+      -> Expr -- ^ Dereferenced expression.+  deref (SRef ref) im = case lookup ref im of+                          Just e  -> deref e im+                          Nothing -> error "deref" -- SRef ref+  deref e _ = e++++{-+ f x = x++ Rule+    { patts = [SHole 3]+    , exp   = SHole 3+    , graph = fromList []+    }++------------------------------------------++ f x = y + y where y = x * x++ Rule+    { patts = [SHole 3]+    , exp   = SApp (SFun 2 320) [SRef 0, SRef 0]+    , graph = fromList+        [ (0, SApp (SFun 2 321) [SHole 3, SHole 3])+        ]++----------------------------------------- lehet hogy régi+egy szabály:+++  (++) ((:) x xs) ys   =  (:) x ((++) xs ys)+  (++) _          ys   =  ys++ -->++  (++) ((:) 4@x 5@xs) 2@ys   =  (:) x ((++) xs ys)+  (++) 1@_          2@ys   =  ys++ -->++  Rules (++) [r1, r2]++  r1 = Rule+            [ SApp (SCons (:)) [SHole 4, SHole 5]+            , SHole 2]+            (SApp (SCons (:)) [SHole 4, SApp (SFun (++) [SHole 5, SHole 2])])++  r2 = Rule [ SHole 1, SHole 2] (SHole 2)+----------------------------------------+  app 1@f 2@x = 3@f x++-->+  Rules "app" [Rule [SHole 1, SHole 2] (SApp (SFun "f") [SHole 2])]++----------------------------------------++  f 1@x@((:) 2@a 3@b) = 4@(++) x b++-->+  Rules "f"+    Rule [SRef 1]+         (SApp (SFun (++)) [SRef 1, SHole 3])+         [ 1 |-> Rule [SApp (SCons (:)) [SHole 2, SHole 3]]+----------------------------------------++  result = 1@(f 2@1)++-->+  Rules "result" [Rule [] 1 [1 |-> (SFun "f", [2]), 2 |-> (SLit "1", [])++----------------------------------------++    result = f y++    y = sum [1..10000]++    f x = x + x + y+-->++    result = f y y+      where+        y = 10++    f y x = x + x + y++---------------------------------------++    cycle 1@x = 2@y  where  y = x ++ y++-->+   Rules "cycle" [+        Rule [SHole 1]+             (SRef 1)+             [ 1 -> SApp (SFun (++)) [SHole 1, SRef 1 ]]+-}+
+ GraphRewrite/Internal/SimpleHaskell.hs view
@@ -0,0 +1,67 @@+{- |+   This is our representation of a Haskell module.+-}+module GraphRewrite.Internal.SimpleHaskell+where+  -- | A Simple module consists of zero or more declarations.+  type SimpModule a = [Decl a]++  -- | A declaration is either a function binding or a pattern binding.+  data Decl a+      = FunBind [FunAlt a] -- ^ A function binding consists of one or more function alternatives.+      | PatBind (Patt a) (Expr a) -- ^ A pattern binding consists of a pattern and an expression which is bound to the pattern.+--      | DataDecl a+        deriving (Show, Eq)++  -- | A function alternative is made up by the name of the function, the list of arguments and the expression.+  type FunAlt a = (a, [Patt a], Expr a)++  -- | These things are considered an expression.+  data Expr a+      = Let [Decl a] (Expr a) -- ^ A let expression consists of a list of declarations which's scope is limited to the following expression.+      | Var a -- ^ This is a simple variable identified by the type 'a'.+      | Cons a  -- ^ e.g: Left, Just, Nothing+      | Apply [Expr a] -- ^ Expressions can be applied to each other with this constructor.+      | Lit String -- ^ This is a simple string literal.+      | AsPat a (Patt a) -- ^ This is an alias pattern represented by '@' in Haskell. Should only be inside a Pattern.+        deriving (Show, Eq)++  -- | Convenience alias for an expression+  type SExpr a = Expr a++  -- | A pattern is essentially an expression with the exception that it can not be a Let constructor.+  type Patt a = Expr a++  -- | This function gets the name of a declaration. This is the name of the entity that we declare.+  name :: Decl String -> String+  name (PatBind n  _) = head $nameExpr n+  name (FunBind ((x,_,_):_)) = x+--  name (DataDecl a) = a++  -- | Gets the name of an expression.+  nameExpr :: Expr String -> [String]+  nameExpr (Var n) = [n]+  nameExpr (Cons n) = [n]+  nameExpr (Lit _n) = []+  nameExpr (AsPat p e) = p : nameExpr e+  nameExpr (Apply es) = concat $ map nameExpr es++  name' :: Decl a -> a+  name' (FunBind ((x,_,_):_)) = x+  name' (PatBind n _) = head $ nameExpr' n++  nameExpr' :: Expr a -> [a]+  nameExpr' (Var n) = [n]+  nameExpr' (Cons n) = [n]+  nameExpr' (Apply es) = concat $ map nameExpr' es++++{-+  data Patt a+     = Cons a [Patt a]+     | PVar a -- ^ This is a simple variable identified by the type 'a'.+     | PLit String -- ^ This is a simple string literal.+-}++
+ GraphRewrite/Internal/Test.hs view
@@ -0,0 +1,145 @@+module GraphRewrite.Internal.Test  where++import GraphRewrite.Internal.Rewrite+import GraphRewrite.Internal.RewriteTypes hiding (PointedGraph)++import System.IO.Unsafe+--import Test.ChasingBottoms.TimeOut+import Test.LazySmallCheck+import qualified Data.IntMap as IM+import Data.List++{-+Serial instance needed:+    Graph+    RewriteSystem++-}+++--------------------------- helper functions++infix 1 <=>+(<=>) :: Bool -> Bool -> Bool+(<=>) = (==)++sameSet :: Ord a => [a] -> [a] -> Bool+sameSet a b = sort a == sort b+{-+timeOut2s :: a -> IO a+timeOut2s x = do+    r <- timeOut 2 (return x)+    case r of+        NonTermination      -> error "nontermination"+        Value x             -> return x+        Exception e         -> error (show e)+-}+--------------------------- Serial instances++instance Serial Expr where+    series+        =  cons1 SCons+        \/ cons2 SFun+        \/ cons1 SLit+        \/ cons1 SHole+        \/ cons1 (SRef . natToInt)+        \/ cons2 SApp++newtype DataExpr+    = DataExpr { unDataExpr :: Expr }+        deriving Show++instance Serial DataExpr where+    series+        =  cons1 (DataExpr . SCons)+        \/ cons2 (\x -> DataExpr . SFun x)+        \/ cons1 (DataExpr . SLit)+        \/ cons1 (DataExpr . SRef . natToInt)+        \/ cons2 (\(DataExpr x) ys -> DataExpr $ SApp x $ map unDataExpr ys)++newtype DataGraph+    = DataGraph Graph+        deriving Show++instance Serial DataGraph where+    series = cons1 (DataGraph . IM.fromList . zip [0..] . map unDataExpr)++data Nat+    = Zero+    | Succ Nat+        deriving (Eq, Ord, Show)++instance Num Nat where+    fromInteger 0 = Zero+    fromInteger n | n < 0 = error "fromInteger/Num"+    fromInteger n = Succ (fromInteger (n-1))++    (+) = undefined+    (*) = undefined+    abs = undefined+    signum = undefined++instance Serial Nat where+    series = cons0 Zero \/ cons1 Succ++natToInt :: Nat -> Int+natToInt Zero = 0+natToInt (Succ n) = 1 + natToInt n++---------------------------------++data PointedGraph+    = PGraph Expr Graph+        deriving (Show)++instance Serial PointedGraph where+    series = cons1 mkDataGraph++mkDataGraph :: Nat -> PointedGraph+mkDataGraph n = PGraph (SLit "15") IM.empty++--------------------------- auxiliary predicates and functions++dataExpr :: Expr -> Bool+dataExpr (SHole _)   = False+dataExpr (SApp e es) = dataExpr e && all dataExpr es+dataExpr _           = True++dataGraph :: Graph -> Bool+dataGraph g = all dataExpr (IM.elems g)++ref :: Expr -> Bool+ref (SRef _) = True+ref _        = False++collectRefs :: Expr -> [Int]+collectRefs (SRef i)    = [i]+collectRefs (SApp e es) = collectRefs e ++ concatMap collectRefs es+collectRefs _           = []++allReferenceDefined :: Expr -> Graph -> Bool+allReferenceDefined e g = all (`IM.member` g) (collectRefs e ++ concatMap collectRefs (IM.elems g))++---------------------------++allTests :: IO ()+allTests = do++    let+        p (SCons _)  = True+        p (SFun _ _) = True+        p (SLit _)   = True+        p _          = False++    smallCheck 30 $ \(PGraph e g) -> -- unsafePerformIO $ timeOut2s $+            not (ref e) && allReferenceDefined e g  ==>  p (fst (flattenSApp e g))++{-+    sm $ interpreter "start = f True; f x = x" == "True"++    sm $ \s1 s2 s3 ->   s1 /= s2+            ==>  freeVars (s1 ++ " = 3;" ++ s2 ++ " " ++ s3 ++ " = " ++ s3)+                    `sameSet` [s1, s2]+-}++
+ GraphRewrite/Main.hs view
@@ -0,0 +1,307 @@++--import Paths_visual_graphrewrite (version)+++import GraphRewrite.Internal.Convert+import GraphRewrite.Internal.Rename+import GraphRewrite.Internal.RewriteApp+import GraphRewrite.Internal.RewriteTypes+import GraphRewrite.Internal.DeltaFunctions+import GraphRewrite.Main.CmdLineOpts+import GraphRewrite.Main.Visualize+++import qualified Graphics.UI.Gtk as G+import qualified Graphics.UI.Gtk.Gdk.Events as G+import qualified Graphics.Rendering.Cairo as C+import qualified Graphics.Rendering.Cairo.SVG as C++import Text.PrettyPrint+import Data.Graph.Inductive++import Language.Haskell.Parser -- parseModule+import IPPrint --pprint+import System.Environment --getArgs+import Data.Supply++import qualified Data.Map as D+import qualified Data.IntMap as I++import System.Process+import Control.Concurrent (forkIO, yield)+import System.IO+import Control.Monad+import System.Exit+import qualified Control.Exception as C++import Control.Parallel.Strategies+import System.IO.Unsafe+import Control.Concurrent.MVar.Strict+import System.Directory++import Prelude hiding (exp)++data Session = Session {+      sWindow :: !G.Window,+      sDrawing :: !G.DrawingArea,+      sSVGs :: ![C.SVG],+      cur :: !Int+}++instance NFData Session where+    rnf x = x `seq` ()++predef :: [String]+predef = map snd deltaNames++main :: IO ()+main = do+  args <- getArgs+  options <- parseOptions args+  if showVersion options+    then putStrLn $ "version " -- ++ Data.Version.showVersion version+    else do+      tmp <- readInput (inputFile options)+      let mod = parseModule tmp+    --pprint $ mod+    --putStrLn "-------------------------------------------------------------------------"+      pprint $ convParse $ mod+      ids <- newEnumSupply+      let (ids1, ids2, ids3) = split3 ids+      let (Ok (predefBinds,_,_)) = distributeIds predef ids2+      let (Ok (n,m)) = rename' predefBinds (convParse $parseModule tmp) ids1+      let rs = makeRewriteSystem m n+      pprint rs+      let pgs = map (\x -> (exp x, graph x)) $ concat $ map snd $ I.toList $ rules rs+      let grs = map (\(x,y) -> graphToGr x rs y) (zip (split ids3) pgs)+      G.timeoutAddFull (yield >> return True) G.priorityDefaultIdle 50 -- magic, do not touch+      mapM_ addToSession grs++{-      case rename' predefBinds (convParse $ parseModule tmp) ids1 of+        Ok (n,m) -> pprint m >> pprint n >> pprint (invRename n m) >>+                   pprint (makeRewriteRules m)+        Hiba f   -> pprint$ "HIBA: " ++ f+-}+++readInput :: Maybe String -> IO String+readInput Nothing = getContents+readInput (Just f) = readFile f++nextSVG :: Session -> Session+nextSVG s@(Session _ _ svgs i)+    | i+1 >= length svgs = s { cur = 1 }+    | otherwise          = s { cur = i+1 }++prevSVG :: Session -> Session+prevSVG s@(Session _ _ svgs i)+    | i <= 1    = s { cur = (length svgs) - 1 }+    | otherwise = s { cur = i - 1 }++addToSession :: Gr String String -> IO Int+addToSession gr = do+  noSession <- isEmptyMVar sessionRef+  () <- when noSession $ newSession++  let dot = render $ ppGr gr++  mdot <- findExecutable "dot"+  let exe = case mdot of+              Nothing -> error "dot binary not found. Please install graphviz"+              Just p  -> p++  svgstring <- myReadProcess exe ["-Tsvg"] dot+  svg       <- C.svgNewFromString svgstring++  modifyMVar sessionRef $ \(Session w c svgs i) -> return ((Session w c (svgs ++ [svg]) i), length svgs)++++view :: Gr String String -> IO ()+view gr = do+  i <- addToSession gr++  c <- modifyMVar sessionRef $ \(Session win canvas svgs _cur) -> do+            updateCanvas (svgs !! i) canvas+            return ((Session win canvas svgs i), canvas)++  G.widgetQueueDraw c+  yield+  return ()++updateCanvas :: C.SVG -> G.DrawingArea -> IO Bool+updateCanvas svg canvas = do+  win <- G.widgetGetDrawWindow canvas+  (width, height) <- G.widgetGetSize canvas+  let (w,h)    = (fromIntegral width, fromIntegral height)+      (sw, sh) = C.svgGetSize svg++  G.renderWithDrawable win $ do+                            C.setAntialias C.AntialiasDefault+                            C.setLineCap C.LineCapSquare++                            C.scale (w / fromIntegral sw) (h / fromIntegral sh)+                            C.svgRender svg+  return True++myReadProcess+    :: FilePath                 -- ^ command to run+    -> [String]                 -- ^ any arguments+    -> String                   -- ^ standard input+    -> IO String                -- ^ stdout + stderr+myReadProcess cmd args input = do+    (Just inh, Just outh, _, pid) <-+        createProcess (proc cmd args){ std_in  = CreatePipe,+                                       std_out = CreatePipe,+                                       std_err = Inherit }++    -- fork off a thread to start consuming the output+    output  <- hGetContents outh+    outMVar <- newEmptyMVar+    forkIO $ C.evaluate (length output) >> putMVar outMVar ()++    -- now write and flush any input+    when (not (null input)) $ do hPutStr inh input; hFlush inh+    hClose inh -- done with stdin++    -- wait on the output+    takeMVar outMVar+    hClose outh++    -- wait on the process+    ex <- waitForProcess pid++    case ex of+     ExitSuccess   -> return output+     ExitFailure _ -> return output++handleKeys :: (Monad m, G.WidgetClass w) => D.Map String (w -> m a) -> w -> G.Event -> m Bool+handleKeys m w (G.Key {G.eventKeyName = key}) = case D.lookup key m of+                                                  Just a -> (a w) >> return True+                                                  _      -> return True+keyBindings :: (G.WidgetClass w) => D.Map String (w -> IO ())+keyBindings = D.fromList [("q", G.widgetDestroy)+                         ,("space", const $ do+                             modifyMVar_ sessionRef (return . nextSVG)+                             withMVar sessionRef $ \(Session _ c svgs cur) ->+                                 updateCanvas (svgs !! cur) c+                             return ()+                          )+                         ,("BackSpace", const $ do+                             modifyMVar_ sessionRef (return . prevSVG)+                             withMVar sessionRef $ \(Session _ c svgs cur) ->+                                 updateCanvas (svgs !! cur) c+                             return ()+                          )+                         ]++sessionRef :: MVar a+sessionRef = unsafePerformIO $ newEmptyMVar+{-# NOINLINE sessionRef #-}++newSession :: IO ()+newSession = do+  G.unsafeInitGUIForThreadedRTS+  window <- G.windowNew+  canvas <- G.drawingAreaNew+  svg <- C.svgNewFromString welcome++  G.onKeyPress window $ handleKeys keyBindings window+  G.onDestroy  window (takeMVar sessionRef >> G.mainQuit)++  G.onExposeRect canvas $ const $ do+               withMVar sessionRef $ \(Session _ c svgs cur) ->+                   updateCanvas (svgs !! cur) c+               return ()++  G.set window [G.containerChild G.:= canvas]+  G.windowSetDefaultSize window 400 400+  G.widgetShowAll window+  forkIO G.mainGUI++  let s = Session {+               sWindow = window,+               sDrawing = canvas,+               sSVGs = [svg],+               cur = 0+             }++  putMVar sessionRef $! s++welcome :: String+welcome = unlines+        ["<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"+        ,"<!-- Created with Inkscape (http://www.inkscape.org/) -->"+        ,"<svg"+        ,"   xmlns:dc=\"http://purl.org/dc/elements/1.1/\""+        ,"   xmlns:cc=\"http://creativecommons.org/ns#\""+        ,"   xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\""+        ,"   xmlns:svg=\"http://www.w3.org/2000/svg\""+        ,"   xmlns=\"http://www.w3.org/2000/svg\""+        ,"   xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\""+        ,"   xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\""+        ,"   width=\"400\""+        ,"   height=\"400\""+        ,"   id=\"svg2\""+        ,"   sodipodi:version=\"0.32\""+        ,"   inkscape:version=\"0.46\""+        ,"   version=\"1.0\""+        ,"   sodipodi:docname=\"splash.svg\""+        ,"   inkscape:output_extension=\"org.inkscape.output.svg.inkscape\">"+        ,"  <defs"+        ,"     id=\"defs4\">"+        ,"    <inkscape:perspective"+        ,"       sodipodi:type=\"inkscape:persp3d\""+        ,"       inkscape:vp_x=\"0 : 526.18109 : 1\""+        ,"       inkscape:vp_y=\"0 : 1000 : 0\""+        ,"       inkscape:vp_z=\"744.09448 : 526.18109 : 1\""+        ,"       inkscape:persp3d-origin=\"372.04724 : 350.78739 : 1\""+        ,"       id=\"perspective10\" />"+        ,"  </defs>"+        ,"  <sodipodi:namedview"+        ,"     id=\"base\""+        ,"     pagecolor=\"#ffffff\""+        ,"     bordercolor=\"#666666\""+        ,"     borderopacity=\"1.0\""+        ,"     gridtolerance=\"10000\""+        ,"     guidetolerance=\"10\""+        ,"     objecttolerance=\"10\""+        ,"     inkscape:pageopacity=\"0.0\""+        ,"     inkscape:pageshadow=\"2\""+        ,"     inkscape:zoom=\"1.7\""+        ,"     inkscape:cx=\"200\""+        ,"     inkscape:cy=\"200\""+        ,"     inkscape:document-units=\"px\""+        ,"     inkscape:current-layer=\"layer1\""+        ,"     showgrid=\"false\""+        ,"     inkscape:window-width=\"1680\""+        ,"     inkscape:window-height=\"1020\""+        ,"     inkscape:window-x=\"0\""+        ,"     inkscape:window-y=\"30\" />"+        ,"  <metadata"+        ,"     id=\"metadata7\">"+        ,"    <rdf:RDF>"+        ,"      <cc:Work"+        ,"         rdf:about=\"\">"+        ,"        <dc:format>image/svg+xml</dc:format>"+        ,"        <dc:type"+        ,"           rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />"+        ,"      </cc:Work>"+        ,"    </rdf:RDF>"+        ,"  </metadata>"+        ,"  <g"+        ,"     inkscape:label=\"Layer 1\""+        ,"     inkscape:groupmode=\"layer\""+        ,"     id=\"layer1\">"+        ,"    <path"+        ,"       transform=\"translate(8.8235294,122.94118)\""+        ,"       style=\"font-size:40px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Steve;-inkscape-font-specification:Steve Bold Italic\""+        ,"       d=\"M 142.96344,26.612174 L 142.68344,25.852174 L 142.72344,26.412174 L 142.76344,27.132174 L 142.76344,27.612174 C 142.76341,27.772201 142.73674,27.958867 142.68344,28.172174 C 142.68341,28.358867 142.59008,28.5322 142.40344,28.692174 L 142.00344,27.292174 C 141.95008,27.052202 141.91008,26.825535 141.88344,26.612174 C 141.85675,26.398869 141.79008,26.145536 141.68344,25.852174 C 141.39008,26.198869 141.04341,27.052202 140.64344,28.412174 L 139.20344,33.212174 L 137.60344,37.372174 L 134.56344,45.452174 C 133.47009,48.518847 132.92342,50.305512 132.92344,50.812174 L 132.60344,51.492174 L 131.84344,53.412174 L 130.60344,55.092174 C 130.28342,55.572173 129.63009,55.905506 128.64344,56.092174 C 127.52343,55.292173 126.05676,52.932176 124.24344,49.012174 C 122.45676,45.092184 121.1901,41.678854 120.44344,38.772174 L 119.24344,34.412174 L 118.52344,32.252174 L 118.28344,31.132174 L 118.16344,30.572174 L 117.40344,27.252174 C 117.00344,26.798869 116.68344,26.158869 116.44344,25.332174 C 116.17677,24.478871 116.04344,23.385539 116.04344,22.052174 C 116.04344,21.572207 116.13677,21.225541 116.32344,21.012174 L 116.84344,20.452174 L 118.04344,20.452174 C 118.52344,20.532208 118.8701,20.718875 119.08344,21.012174 C 119.45677,21.545541 119.64343,22.292206 119.64344,23.252174 L 120.08344,25.452174 C 120.88343,29.372199 121.40343,32.092197 121.64344,33.612174 L 122.56344,36.972174 L 122.96344,38.692174 L 126.44344,47.972174 C 126.44343,48.212181 126.64343,48.53218 127.04344,48.932174 C 127.44343,49.305513 127.64343,49.652179 127.64344,49.972174 C 127.64343,50.345512 128.03009,50.732178 128.80344,51.132174 L 130.00344,51.532174 C 131.28342,48.865513 132.47009,46.252182 133.56344,43.692174 C 134.55009,41.398854 135.51009,39.01219 136.44344,36.532174 L 139.16344,28.572174 C 139.80341,26.758869 140.63008,25.425537 141.64344,24.572174 C 141.99008,24.572204 142.32341,24.878871 142.64344,25.492174 C 142.80341,25.865536 142.91008,26.238869 142.96344,26.612174 M 151.56969,20.652174 C 151.56968,21.692207 151.40968,22.38554 151.08969,22.732174 C 150.76968,23.052206 150.08968,23.372205 149.04969,23.692174 L 148.56969,22.132174 C 148.40968,21.332207 148.32968,20.638875 148.32969,20.052174 C 148.32968,19.545543 148.36968,19.185543 148.44969,18.972174 C 148.55635,18.73221 148.75635,18.61221 149.04969,18.612174 C 149.98301,18.61221 150.63635,18.73221 151.00969,18.972174 C 151.38301,19.185543 151.56968,19.745542 151.56969,20.652174 M 167.36969,44.332174 L 167.32969,44.732174 C 167.303,44.865517 167.27633,44.945517 167.24969,44.972174 C 167.24966,47.318848 165.67633,49.332179 162.52969,51.012174 C 158.63634,53.038842 155.14301,54.052175 152.04969,54.052174 C 149.91635,54.052175 148.47635,53.518842 147.72969,52.452174 C 147.54302,52.158843 147.03635,50.665511 146.20969,47.972174 C 145.88968,48.052181 145.48968,48.25218 145.00969,48.572174 L 144.44969,49.012174 L 139.88969,49.012174 L 139.88969,46.492174 C 142.92969,45.692183 145.06302,44.545518 146.28969,43.052174 C 147.03635,42.092187 147.63635,40.505522 148.08969,38.292174 C 148.56968,36.078859 149.14301,34.398861 149.80969,33.252174 L 152.36969,34.252174 C 152.90301,34.492194 153.56968,34.99886 154.36969,35.772174 C 153.06301,37.398858 152.00968,39.278856 151.20969,41.412174 C 150.40968,43.518852 150.00968,45.545517 150.00969,47.492174 C 150.00968,48.69218 150.28968,49.665512 150.84969,50.412174 C 151.40968,51.158844 152.14301,51.532177 153.04969,51.532174 C 153.58301,51.532177 154.71634,51.332177 156.44969,50.932174 C 159.11634,50.318845 161.23634,49.545513 162.80969,48.612174 C 165.07633,47.305515 166.20966,45.745516 166.20969,43.932174 L 166.84969,43.812174 L 167.24969,43.932174 C 167.32966,44.012185 167.36966,44.145518 167.36969,44.332174 M 192.69594,50.692174 C 192.69591,51.332177 192.08258,52.132177 190.85594,53.092174 C 189.36258,54.265508 187.66925,54.852174 185.77594,54.852174 L 175.61594,54.852174 C 172.86926,54.532174 170.78926,54.252174 169.37594,54.012174 C 165.21594,53.292175 163.13594,52.50551 163.13594,51.652174 C 163.13594,50.958844 163.54927,50.292178 164.37594,49.652174 L 169.61594,47.052174 L 171.49594,47.052174 L 171.49594,48.412174 C 170.18926,48.998846 169.41593,49.385513 169.17594,49.572174 L 168.25594,50.452174 C 168.89593,51.092178 170.30926,51.692177 172.49594,52.252174 C 173.58926,52.492176 174.76259,52.678843 176.01594,52.812174 C 177.29592,52.945509 178.70926,53.012176 180.25594,53.012174 C 181.05592,53.012176 181.61592,52.998842 181.93594,52.972174 C 182.25592,52.945509 182.96259,52.838843 184.05594,52.652174 C 186.77592,52.252176 188.58925,51.598844 189.49594,50.692174 C 188.26925,49.758846 185.30925,48.598847 180.61594,47.212174 C 175.38926,45.692183 171.78926,44.372184 169.81594,43.252174 C 166.3226,41.332187 164.57594,38.89219 164.57594,35.932174 C 164.57594,33.798862 165.1626,32.438863 166.33594,31.852174 C 167.0826,31.505531 168.6426,31.332197 171.01594,31.332174 C 172.74926,31.332197 174.00259,31.425531 174.77594,31.612174 C 175.57593,31.772197 176.30926,32.14553 176.97594,32.732174 L 176.97594,34.132174 C 175.61593,34.692194 174.73593,34.972194 174.33594,34.972174 C 174.17593,34.972194 174.05593,34.838861 173.97594,34.572174 C 173.94926,34.305528 173.72259,34.158861 173.29594,34.132174 L 170.53594,35.132174 C 168.69593,35.852193 167.7626,36.425526 167.73594,36.852174 C 167.73593,38.878857 169.8826,40.825521 174.17594,42.692174 L 186.21594,46.852174 C 190.53591,48.29218 192.69591,49.572179 192.69594,50.692174 M 213.67031,40.932174 C 213.67029,44.532184 212.57696,47.718848 210.39031,50.492174 C 207.9903,53.532175 204.84363,55.052174 200.95031,55.052174 C 198.49697,55.052174 196.39031,53.678842 194.63031,50.932174 C 193.21698,48.665513 192.51031,46.425516 192.51031,44.212174 L 192.51031,40.012174 L 192.27031,38.812174 C 192.19031,38.278857 192.12365,37.772191 192.07031,37.292174 C 192.01698,36.812192 191.99031,36.372192 191.99031,35.972174 C 191.99031,34.745527 192.12365,33.638862 192.39031,32.652174 C 192.68365,31.66553 193.19031,30.812198 193.91031,30.092174 L 194.35031,30.052174 L 194.99031,30.012174 L 195.95031,30.132174 C 196.21698,30.212199 196.44364,30.452198 196.63031,30.852174 C 196.81697,31.252197 196.91031,31.692197 196.91031,32.172174 C 196.91031,32.572196 196.87031,33.012196 196.79031,33.492174 C 196.71031,33.945528 196.56364,34.492194 196.35031,35.132174 C 196.27031,35.452193 196.20364,35.67886 196.15031,35.812174 C 196.12364,35.945526 196.00364,36.238859 195.79031,36.692174 L 195.19031,39.132174 C 194.95031,40.332188 194.83031,41.092188 194.83031,41.412174 C 194.83031,44.718851 195.65698,47.478848 197.31031,49.692174 C 198.80364,51.692177 200.80364,52.692176 203.31031,52.692174 C 205.01697,52.692176 206.61696,51.82551 208.11031,50.092174 C 209.92363,48.038847 210.83029,45.465517 210.83031,42.372174 C 210.83029,39.545523 210.31029,37.292191 209.27031,35.612174 C 208.76363,34.758861 208.5103,34.025528 208.51031,33.412174 C 208.5103,32.852196 208.6703,32.46553 208.99031,32.252174 C 209.3103,32.092197 209.77696,32.012197 210.39031,32.012174 C 211.48363,32.012197 212.35029,33.105529 212.99031,35.292174 C 213.44362,36.972192 213.67029,38.85219 213.67031,40.932174 M 251.88656,51.972174 L 251.48656,52.412174 C 250.73986,52.998842 249.39319,53.572175 247.44656,54.132174 C 245.7932,54.585507 244.69987,54.812174 244.16656,54.812174 C 241.68654,54.812174 239.48654,54.212175 237.56656,53.012174 L 232.80656,49.132174 C 230.91321,50.652178 228.59322,52.052177 225.84656,53.332174 C 223.09989,54.585507 220.41989,55.212174 217.80656,55.212174 C 217.24656,55.212174 216.56656,54.945507 215.76656,54.412174 C 214.96656,53.878842 214.56656,53.212176 214.56656,52.412174 C 214.56656,50.038845 215.97989,47.732181 218.80656,45.492174 C 221.95322,43.038852 225.67322,41.812187 229.96656,41.812174 C 231.00655,41.812187 231.68655,41.385521 232.00656,40.532174 C 232.13988,39.865522 232.25988,39.292189 232.36656,38.812174 C 232.49988,38.305524 232.64654,37.825524 232.80656,37.372174 C 231.71321,36.705525 230.27321,36.132193 228.48656,35.652174 C 226.69988,35.172194 225.16655,34.932194 223.88656,34.932174 C 222.95322,34.932194 222.25989,34.95886 221.80656,35.012174 C 221.35322,35.03886 220.57989,35.11886 219.48656,35.252174 C 218.41989,35.35886 217.57989,35.43886 216.96656,35.492174 C 216.37989,35.545527 215.84656,35.572193 215.36656,35.572174 L 213.40656,35.452174 C 212.76656,35.372193 212.23323,35.225527 211.80656,35.012174 C 211.3799,34.798861 211.16657,34.425528 211.16656,33.892174 C 211.16657,33.332195 211.35323,32.878863 211.72656,32.532174 C 211.83323,32.452196 212.20657,32.34553 212.84656,32.212174 L 214.76656,32.092174 C 215.35323,32.092197 215.99323,32.10553 216.68656,32.132174 C 217.37989,32.158863 218.12656,32.212197 218.92656,32.292174 C 219.40656,32.292196 220.11322,32.372196 221.04656,32.532174 C 223.65989,32.532196 226.08655,32.732196 228.32656,33.132174 C 231.28655,33.665528 233.61988,34.532194 235.32656,35.732174 C 237.43321,37.198858 238.48654,39.09219 238.48656,41.412174 C 238.48654,42.078853 238.08654,42.825519 237.28656,43.652174 C 236.48654,44.478851 236.08654,45.35885 236.08656,46.292174 C 236.08654,47.918847 237.12654,49.412179 239.20656,50.772174 C 241.28654,52.132177 243.61987,52.812176 246.20656,52.812174 C 246.73986,52.812176 247.52653,52.718843 248.56656,52.532174 C 249.71319,52.372176 250.53986,52.18551 251.04656,51.972174 L 251.88656,51.972174 M 232.40656,46.692174 L 232.04656,45.092174 C 231.88655,44.532184 231.19321,44.252184 229.96656,44.252174 C 226.65988,44.252184 223.53989,45.27885 220.60656,47.332174 C 218.20656,49.01218 217.00656,50.278845 217.00656,51.132174 C 217.00656,51.58551 217.16656,51.998843 217.48656,52.372174 C 217.64656,52.50551 217.84656,52.612176 218.08656,52.692174 C 218.32656,52.772176 218.63323,52.812176 219.00656,52.812174 C 221.13989,52.812176 223.76655,51.932177 226.88656,50.172174 L 232.40656,46.692174 M 251.33781,53.892174 L 251.05781,54.532174 C 250.84447,54.932174 250.60447,55.15884 250.33781,55.212174 C 249.91114,55.212174 249.49781,54.718841 249.09781,53.732174 C 248.75114,52.718843 248.31114,50.998844 247.77781,48.572174 L 246.05781,40.132174 L 244.81781,33.892174 C 244.33781,31.172198 244.09781,27.998867 244.09781,24.372174 L 244.05781,23.452174 C 244.05781,22.785539 244.13781,22.238873 244.29781,21.812174 C 244.45781,21.358874 244.83115,21.132208 245.41781,21.132174 C 245.84448,21.132208 246.11114,21.292207 246.21781,21.612174 C 246.32448,21.90554 246.39114,22.198873 246.41781,22.492174 C 246.44448,22.758873 246.45781,23.225539 246.45781,23.892174 L 246.45781,26.092174 C 246.45781,27.212202 246.47114,28.265534 246.49781,29.252174 C 246.52448,30.238865 246.59114,31.358864 246.69781,32.612174 C 246.83114,33.838862 247.05781,35.465527 247.37781,37.492174 L 248.37781,41.572174 L 250.29781,49.332174 L 251.33781,53.892174 M 269.99594,40.132174 C 270.07592,40.692188 269.34259,41.105521 267.79594,41.372174 L 265.83594,41.652174 L 258.47594,42.972174 L 254.35594,43.812174 L 252.47594,44.412174 L 251.83594,44.132174 L 251.63594,42.972174 L 253.67594,42.172174 L 254.55594,42.452174 L 261.63594,41.252174 L 266.79594,40.292174 L 266.83594,40.172174 C 266.96926,39.958855 267.51592,39.758856 268.47594,39.572174 L 268.71594,39.412174 L 269.23594,39.252174 C 269.42259,39.252189 269.56925,39.305523 269.67594,39.412174 C 269.80925,39.518856 269.91592,39.758856 269.99594,40.132174 M 91.087187,74.772174 L 90.007188,76.172174 C 89.607154,76.652202 89.260488,76.892202 88.967187,76.892174 L 84.767188,76.892174 C 80.100497,76.892202 75.580502,78.012201 71.207188,80.252174 C 67.287177,82.278863 64.073846,84.852194 61.567188,87.972174 C 59.060518,91.065521 57.807186,93.972185 57.807187,96.692174 C 57.807186,99.17218 58.847185,101.05218 60.927188,102.33217 C 62.633848,103.34551 64.687179,103.85217 67.087187,103.85217 C 68.740508,103.85217 71.113839,103.49218 74.207188,102.77217 C 78.153832,101.83884 80.127164,100.79884 80.127187,99.652174 C 80.127164,98.105514 79.233831,96.812182 77.447187,95.772174 C 75.687168,94.705517 73.48717,94.172185 70.847188,94.172174 L 69.967187,94.012174 C 68.607175,93.638852 67.927176,93.132186 67.927188,92.492174 C 67.927176,91.505521 68.673842,90.838855 70.167187,90.492174 C 71.687172,90.145522 75.287169,89.972189 80.967187,89.972174 L 88.567188,89.972174 L 88.567188,91.652174 L 85.607187,99.212174 C 85.607158,99.825512 85.887158,100.67884 86.447187,101.77217 L 87.287188,103.45217 C 87.287157,104.06551 86.927157,104.61217 86.207188,105.09217 L 83.927188,106.37217 L 82.647188,106.37217 L 81.927188,104.17217 L 81.727187,102.89217 C 81.727162,102.38551 81.820495,101.86551 82.007188,101.33217 L 81.407187,101.33217 L 80.327188,102.41217 C 79.820497,102.81218 79.220498,103.17218 78.527187,103.49217 C 77.860499,103.81217 76.967167,104.14551 75.847188,104.49217 C 74.727169,104.81217 73.473837,105.06551 72.087187,105.25217 C 70.727173,105.43884 69.193841,105.53217 67.487188,105.53217 C 63.087181,105.53217 59.740517,104.62551 57.447187,102.81217 C 55.447188,101.21218 54.447189,99.038846 54.447187,96.292174 C 54.447189,94.292184 55.887188,91.465521 58.767187,87.812174 C 61.913849,83.865528 65.700512,80.558865 70.127188,77.892174 C 75.407168,74.692204 80.71383,73.092206 86.047188,73.092174 C 87.167157,73.092206 88.073822,73.225539 88.767188,73.492174 C 89.033822,73.598872 89.327155,73.745538 89.647188,73.932174 C 89.967154,74.092205 90.447153,74.372204 91.087187,74.772174 M 83.927188,93.932174 L 82.967187,93.652174 L 81.887187,93.732174 L 80.567188,93.732174 L 80.567188,94.612174 L 81.487188,95.732174 L 82.447187,97.132174 L 83.207188,95.372174 L 83.927188,93.932174 M 108.86344,84.292174 C 107.82342,84.505528 106.95675,84.812194 106.26344,85.212174 C 105.70342,85.532193 105.21009,85.692193 104.78344,85.692174 C 104.27676,85.692193 103.82342,85.31886 103.42344,84.572174 C 103.05009,83.798862 102.61009,83.412195 102.10344,83.412174 C 100.85009,83.412195 99.43676,84.558861 97.863438,86.852174 C 96.18343,89.332189 95.343431,91.86552 95.343437,94.452174 C 95.343431,95.412183 95.503431,96.398849 95.823437,97.412174 L 95.823437,105.49217 L 93.543437,105.49217 C 92.983434,105.49217 92.223434,104.21217 91.263437,101.65217 C 90.090103,98.425514 89.503437,94.905517 89.503438,91.092174 L 89.463437,89.612174 L 89.423438,88.372174 C 89.423437,87.518858 89.530104,86.865525 89.743437,86.412174 C 89.983437,85.958859 90.503436,85.412193 91.303438,84.772174 L 92.623437,84.772174 L 92.863438,85.812174 L 92.903437,86.772174 C 92.903434,86.985525 92.903434,87.185525 92.903437,87.372174 C 92.823434,87.692191 92.7701,87.932191 92.743437,88.092174 L 92.583438,89.132174 C 92.583434,89.532189 92.756767,90.025522 93.103437,90.612174 C 94.543432,86.985525 96.250097,84.278861 98.223438,82.492174 C 99.850093,81.025531 101.59676,80.292198 103.46344,80.292174 L 105.42344,81.052174 C 106.62342,81.505531 107.77009,81.838864 108.86344,82.052174 L 108.86344,84.292174 M 145.01156,101.97217 L 144.61156,102.41217 C 143.86486,102.99884 142.51819,103.57218 140.57156,104.13217 C 138.9182,104.58551 137.82487,104.81217 137.29156,104.81217 C 134.81154,104.81217 132.61154,104.21217 130.69156,103.01217 L 125.93156,99.132174 C 124.03821,100.65218 121.71822,102.05218 118.97156,103.33217 C 116.22489,104.58551 113.54489,105.21217 110.93156,105.21217 C 110.37156,105.21217 109.69156,104.94551 108.89156,104.41217 C 108.09156,103.87884 107.69156,103.21218 107.69156,102.41217 C 107.69156,100.03885 109.10489,97.732181 111.93156,95.492174 C 115.07822,93.038852 118.79822,91.812187 123.09156,91.812174 C 124.13155,91.812187 124.81155,91.385521 125.13156,90.532174 C 125.26488,89.865522 125.38488,89.292189 125.49156,88.812174 C 125.62488,88.305524 125.77154,87.825524 125.93156,87.372174 C 124.83821,86.705525 123.39821,86.132193 121.61156,85.652174 C 119.82488,85.172194 118.29155,84.932194 117.01156,84.932174 C 116.07822,84.932194 115.38489,84.95886 114.93156,85.012174 C 114.47822,85.03886 113.70489,85.11886 112.61156,85.252174 C 111.54489,85.35886 110.70489,85.43886 110.09156,85.492174 C 109.50489,85.545527 108.97156,85.572193 108.49156,85.572174 L 106.53156,85.452174 C 105.89156,85.372193 105.35823,85.225527 104.93156,85.012174 C 104.5049,84.798861 104.29157,84.425528 104.29156,83.892174 C 104.29157,83.332195 104.47823,82.878863 104.85156,82.532174 C 104.95823,82.452196 105.33157,82.34553 105.97156,82.212174 L 107.89156,82.092174 C 108.47823,82.092197 109.11823,82.10553 109.81156,82.132174 C 110.50489,82.158863 111.25156,82.212197 112.05156,82.292174 C 112.53156,82.292196 113.23822,82.372196 114.17156,82.532174 C 116.78489,82.532196 119.21155,82.732196 121.45156,83.132174 C 124.41155,83.665528 126.74488,84.532194 128.45156,85.732174 C 130.55821,87.198858 131.61154,89.09219 131.61156,91.412174 C 131.61154,92.078853 131.21154,92.825519 130.41156,93.652174 C 129.61154,94.478851 129.21154,95.35885 129.21156,96.292174 C 129.21154,97.918847 130.25154,99.412179 132.33156,100.77217 C 134.41154,102.13218 136.74487,102.81218 139.33156,102.81217 C 139.86486,102.81218 140.65153,102.71884 141.69156,102.53217 C 142.83819,102.37218 143.66486,102.18551 144.17156,101.97217 L 145.01156,101.97217 M 125.53156,96.692174 L 125.17156,95.092174 C 125.01155,94.532184 124.31821,94.252184 123.09156,94.252174 C 119.78488,94.252184 116.66489,95.27885 113.73156,97.332174 C 111.33156,99.01218 110.13156,100.27885 110.13156,101.13217 C 110.13156,101.58551 110.29156,101.99884 110.61156,102.37217 C 110.77156,102.50551 110.97156,102.61218 111.21156,102.69217 C 111.45156,102.77218 111.75823,102.81218 112.13156,102.81217 C 114.26489,102.81218 116.89155,101.93218 120.01156,100.17217 L 125.53156,96.692174 M 155.86281,92.652174 C 155.86279,94.332184 155.15613,95.71885 153.74281,96.812174 C 152.2228,98.012181 150.1428,98.61218 147.50281,98.612174 C 146.88947,98.61218 146.16947,98.53218 145.34281,98.372174 C 144.51614,98.212181 143.92947,98.132181 143.58281,98.132174 L 142.62281,98.252174 L 141.54281,98.612174 L 141.54281,100.21217 L 142.50281,105.29217 L 143.50281,110.93217 L 144.38281,114.33217 C 144.38281,114.67883 144.35614,114.95883 144.30281,115.17217 L 144.46281,115.33217 L 144.66281,115.73217 C 144.66281,115.91883 144.46281,116.09216 144.06281,116.25217 C 143.68947,116.41216 142.98281,116.49216 141.94281,116.49217 C 141.75614,116.3055 141.59614,116.13216 141.46281,115.97217 C 141.32948,115.83883 141.11614,115.55883 140.82281,115.13217 C 139.99614,113.95883 139.28948,112.5455 138.70281,110.89217 C 137.92948,108.6255 137.54281,106.25217 137.54281,103.77217 L 137.54281,100.21217 C 137.54281,94.745517 137.75615,90.998854 138.18281,88.972174 C 139.11614,84.518861 141.15614,82.292196 144.30281,82.292174 C 146.72947,82.292196 149.2228,83.398862 151.78281,85.612174 C 154.5028,87.932191 155.86279,90.278855 155.86281,92.652174 M 153.06281,93.052174 C 153.0628,91.212188 152.00946,89.478856 149.90281,87.852174 C 148.11614,86.518859 146.3828,85.732193 144.70281,85.492174 L 141.94281,86.452174 C 141.72947,87.305525 141.62281,87.998857 141.62281,88.532174 L 141.82281,91.572174 L 141.94281,94.652174 L 145.10281,95.372174 C 146.27614,95.665516 147.47614,95.812183 148.70281,95.812174 C 150.43613,95.812183 151.59613,95.652183 152.18281,95.332174 C 152.76946,95.012184 153.0628,94.252184 153.06281,93.052174 M 173.56156,106.65217 C 172.70821,107.05217 172.00155,107.4255 171.44156,107.77217 L 170.36156,108.41217 C 168.92155,108.41217 167.86822,107.35884 167.20156,105.25217 C 166.98822,104.55884 166.70822,103.17218 166.36156,101.09217 C 165.77489,97.518848 165.34822,95.59885 165.08156,95.332174 C 164.60155,95.67885 163.88156,96.558849 162.92156,97.972174 C 162.20156,99.918845 161.54822,101.54551 160.96156,102.85217 C 160.37489,104.15884 159.82823,104.94551 159.32156,105.21217 C 159.08156,104.59884 158.88156,103.86551 158.72156,103.01217 C 158.61489,102.18551 158.54823,101.62551 158.52156,101.33217 C 158.52156,101.03884 158.52156,100.79884 158.52156,100.61217 C 158.52156,99.652179 158.44156,98.65218 158.28156,97.612174 C 158.33489,97.292181 158.36156,97.052182 158.36156,96.892174 C 158.36156,96.785515 158.33489,96.612182 158.28156,96.372174 C 158.22823,96.132183 158.10823,95.772183 157.92156,95.292174 L 157.12156,90.652174 L 155.56156,81.572174 L 154.72156,76.492174 L 154.48156,75.332174 L 154.20156,74.052174 C 154.20156,73.705538 154.26823,73.358872 154.40156,73.012174 C 154.48156,72.692206 154.70823,72.30554 155.08156,71.852174 C 156.12156,72.092207 156.84156,73.025539 157.24156,74.652174 C 157.45489,76.438869 157.61489,77.772201 157.72156,78.652174 C 157.93489,80.305532 158.24156,82.532196 158.64156,85.332174 C 158.77489,85.998859 158.93489,86.918858 159.12156,88.092174 C 159.33489,89.265523 159.52156,90.438855 159.68156,91.612174 C 160.05489,94.358851 160.24156,96.558849 160.24156,98.212174 C 160.24156,99.385513 160.17489,100.18551 160.04156,100.61217 L 161.36156,96.052174 C 161.78822,95.19885 162.17489,94.558851 162.52156,94.132174 C 163.24156,93.305519 163.61489,92.865519 163.64156,92.812174 C 163.90822,92.412186 164.18822,92.012187 164.48156,91.612174 C 164.93489,91.025521 165.42822,90.732188 165.96156,90.732174 C 166.84155,90.732188 167.46822,91.612187 167.84156,93.372174 C 168.32155,96.145516 168.70822,97.798848 169.00156,98.332174 C 169.66822,100.14551 170.24155,101.57218 170.72156,102.61217 C 171.65488,104.58551 172.60155,105.57217 173.56156,105.57217 L 173.56156,106.65217 M 192.14469,84.292174 C 191.10467,84.505528 190.238,84.812194 189.54469,85.212174 C 188.98467,85.532193 188.49134,85.692193 188.06469,85.692174 C 187.55801,85.692193 187.10467,85.31886 186.70469,84.572174 C 186.33134,83.798862 185.89134,83.412195 185.38469,83.412174 C 184.13134,83.412195 182.71801,84.558861 181.14469,86.852174 C 179.46468,89.332189 178.62468,91.86552 178.62469,94.452174 C 178.62468,95.412183 178.78468,96.398849 179.10469,97.412174 L 179.10469,105.49217 L 176.82469,105.49217 C 176.26468,105.49217 175.50468,104.21217 174.54469,101.65217 C 173.37135,98.425514 172.78469,94.905517 172.78469,91.092174 L 172.74469,89.612174 L 172.70469,88.372174 C 172.70469,87.518858 172.81135,86.865525 173.02469,86.412174 C 173.26469,85.958859 173.78469,85.412193 174.58469,84.772174 L 175.90469,84.772174 L 176.14469,85.812174 L 176.18469,86.772174 C 176.18468,86.985525 176.18468,87.185525 176.18469,87.372174 C 176.10468,87.692191 176.05135,87.932191 176.02469,88.092174 L 175.86469,89.132174 C 175.86468,89.532189 176.03802,90.025522 176.38469,90.612174 C 177.82468,86.985525 179.53135,84.278861 181.50469,82.492174 C 183.13134,81.025531 184.87801,80.292198 186.74469,80.292174 L 188.70469,81.052174 C 189.90467,81.505531 191.05134,81.838864 192.14469,82.052174 L 192.14469,84.292174 M 220.33281,103.85217 C 220.33278,104.30551 220.09278,104.81217 219.61281,105.37217 C 218.97278,106.09217 218.17279,106.45217 217.21281,106.45217 C 216.54612,106.45217 215.45279,106.33217 213.93281,106.09217 C 212.43946,105.85217 210.43946,105.47884 207.93281,104.97217 C 203.18613,103.98551 200.3728,103.26551 199.49281,102.81217 C 196.55947,101.42551 194.54614,100.27885 193.45281,99.372174 C 193.29281,99.21218 192.99948,98.905513 192.57281,98.452174 C 192.14614,97.998847 191.63948,97.398848 191.05281,96.652174 L 189.37281,96.772174 C 187.82615,96.772182 186.55948,96.398849 185.57281,95.652174 C 184.45282,94.772184 183.89282,93.865518 183.89281,92.932174 C 183.89282,92.398853 184.13282,91.94552 184.61281,91.572174 C 185.06615,91.198854 185.69282,90.958854 186.49281,90.852174 L 187.73281,92.052174 L 188.57281,92.812174 L 191.69281,92.932174 C 191.69281,90.265522 192.94614,87.972191 195.45281,86.052174 C 197.29281,84.692194 199.90614,83.492195 203.29281,82.452174 C 204.22613,82.18553 205.1328,82.012197 206.01281,81.932174 L 208.25281,81.772174 C 210.75946,81.772197 212.95946,82.34553 214.85281,83.492174 C 216.77279,84.612194 217.73279,86.025526 217.73281,87.732174 C 217.73279,88.61219 217.06612,89.638856 215.73281,90.812174 C 214.18612,92.172187 212.02612,93.318852 209.25281,94.252174 C 205.83946,95.345517 201.91947,95.892183 197.49281,95.892174 L 196.73281,95.812174 C 196.38614,95.812183 196.19947,95.905516 196.17281,96.092174 C 196.17281,96.225516 196.45281,96.572182 197.01281,97.132174 L 198.17281,98.132174 L 203.13281,101.13217 C 205.4528,101.93218 208.39946,102.33218 211.97281,102.33217 C 213.22612,102.33218 214.01279,102.09218 214.33281,101.61217 C 214.67946,100.99884 215.46612,100.53218 216.69281,100.21217 L 218.25281,100.21217 L 220.33281,103.85217 M 214.09281,88.492174 C 213.61279,87.158858 212.73279,86.225526 211.45281,85.692174 C 210.41279,85.31886 208.69279,85.132194 206.29281,85.132174 C 203.46613,85.132194 201.03947,85.865526 199.01281,87.332174 C 197.14614,88.665523 195.57281,90.705521 194.29281,93.452174 C 194.69281,93.292185 194.99948,93.212186 195.21281,93.212174 L 195.81281,93.332174 L 196.37281,93.452174 C 199.67947,93.452185 203.3728,92.918852 207.45281,91.852174 C 211.53279,90.758855 213.74612,89.638856 214.09281,88.492174 M 253.83219,79.172174 L 252.11219,85.172174 L 250.43219,90.612174 C 248.99216,94.745517 247.47216,98.118847 245.87219,100.73217 C 243.63216,104.38551 241.41883,106.21217 239.23219,106.21217 C 238.59217,106.21217 237.99217,105.79884 237.43219,104.97217 C 235.83217,101.71884 234.2855,98.69218 232.79219,95.892174 L 232.19219,96.572174 L 231.99219,96.732174 L 232.23219,96.612174 C 232.31217,96.852182 232.35217,97.052182 232.35219,97.212174 C 232.35217,97.638848 231.51217,98.89218 229.83219,100.97217 C 227.88551,103.31884 226.29884,104.49217 225.07219,104.49217 C 223.79218,104.49217 222.45885,103.22551 221.07219,100.69217 C 220.08552,98.878847 219.09885,96.492182 218.11219,93.532174 L 216.91219,89.452174 C 216.67219,88.998856 216.25885,88.57219 215.67219,88.172174 C 215.11219,87.878858 214.80552,87.598858 214.75219,87.332174 C 214.75219,86.238859 214.91219,85.305527 215.23219,84.532174 C 215.68552,83.545529 216.39219,83.052196 217.35219,83.052174 C 218.01885,83.052196 218.81885,84.518861 219.75219,87.452174 C 220.71218,90.358855 221.19218,92.318853 221.19219,93.332174 C 221.19218,93.892185 221.61885,95.065517 222.47219,96.852174 C 223.43218,98.905513 224.44551,100.45218 225.51219,101.49217 C 227.85884,99.545513 229.35218,97.038848 229.99219,93.972174 L 230.43219,87.252174 C 230.43217,85.305527 231.07217,84.332194 232.35219,84.332174 L 232.59219,84.452174 L 233.19219,84.492174 C 233.37884,84.492194 233.57884,84.492194 233.79219,84.492174 C 234.11217,84.412194 234.35217,84.358861 234.51219,84.332174 C 234.51217,84.678861 234.5655,85.27886 234.67219,86.132174 C 234.77884,86.985525 234.95217,88.105524 235.19219,89.492174 C 235.75217,92.852186 236.39217,95.665516 237.11219,97.932174 C 238.07217,100.89218 239.07217,102.37218 240.11219,102.37217 C 241.87216,102.37218 243.47216,100.26551 244.91219,96.052174 C 245.15216,95.35885 245.52549,93.998851 246.03219,91.972174 C 246.53882,89.918855 247.15216,87.345525 247.87219,84.252174 C 248.83216,80.012199 249.67215,77.892201 250.39219,77.892174 C 250.68549,77.892201 250.96549,78.025534 251.23219,78.292174 C 251.87215,78.878867 252.73882,79.1722 253.83219,79.172174 M 271.44156,84.292174 C 270.40154,84.505528 269.53488,84.812194 268.84156,85.212174 C 268.28155,85.532193 267.78821,85.692193 267.36156,85.692174 C 266.85488,85.692193 266.40155,85.31886 266.00156,84.572174 C 265.62822,83.798862 265.18822,83.412195 264.68156,83.412174 C 263.42822,83.412195 262.01489,84.558861 260.44156,86.852174 C 258.76156,89.332189 257.92156,91.86552 257.92156,94.452174 C 257.92156,95.412183 258.08156,96.398849 258.40156,97.412174 L 258.40156,105.49217 L 256.12156,105.49217 C 255.56156,105.49217 254.80156,104.21217 253.84156,101.65217 C 252.66823,98.425514 252.08156,94.905517 252.08156,91.092174 L 252.04156,89.612174 L 252.00156,88.372174 C 252.00156,87.518858 252.10823,86.865525 252.32156,86.412174 C 252.56156,85.958859 253.08156,85.412193 253.88156,84.772174 L 255.20156,84.772174 L 255.44156,85.812174 L 255.48156,86.772174 C 255.48156,86.985525 255.48156,87.185525 255.48156,87.372174 C 255.40156,87.692191 255.34823,87.932191 255.32156,88.092174 L 255.16156,89.132174 C 255.16156,89.532189 255.33489,90.025522 255.68156,90.612174 C 257.12156,86.985525 258.82822,84.278861 260.80156,82.492174 C 262.42822,81.025531 264.17488,80.292198 266.04156,80.292174 L 268.00156,81.052174 C 269.20154,81.505531 270.34821,81.838864 271.44156,82.052174 L 271.44156,84.292174 M 279.06969,70.652174 C 279.06968,71.692207 278.90968,72.38554 278.58969,72.732174 C 278.26968,73.052206 277.58968,73.372205 276.54969,73.692174 L 276.06969,72.132174 C 275.90968,71.332207 275.82968,70.638875 275.82969,70.052174 C 275.82968,69.545543 275.86968,69.185543 275.94969,68.972174 C 276.05635,68.73221 276.25635,68.61221 276.54969,68.612174 C 277.48301,68.61221 278.13635,68.73221 278.50969,68.972174 C 278.88301,69.185543 279.06968,69.745542 279.06969,70.652174 M 294.86969,94.332174 L 294.82969,94.732174 C 294.803,94.865517 294.77633,94.945517 294.74969,94.972174 C 294.74966,97.318848 293.17633,99.332179 290.02969,101.01217 C 286.13634,103.03884 282.64301,104.05217 279.54969,104.05217 C 277.41635,104.05217 275.97635,103.51884 275.22969,102.45217 C 275.04302,102.15884 274.53635,100.66551 273.70969,97.972174 C 273.38968,98.052181 272.98968,98.25218 272.50969,98.572174 L 271.94969,99.012174 L 267.38969,99.012174 L 267.38969,96.492174 C 270.42969,95.692183 272.56302,94.545518 273.78969,93.052174 C 274.53635,92.092187 275.13635,90.505522 275.58969,88.292174 C 276.06968,86.078859 276.64301,84.398861 277.30969,83.252174 L 279.86969,84.252174 C 280.40301,84.492194 281.06968,84.99886 281.86969,85.772174 C 280.56301,87.398858 279.50968,89.278856 278.70969,91.412174 C 277.90968,93.518852 277.50968,95.545517 277.50969,97.492174 C 277.50968,98.69218 277.78968,99.665512 278.34969,100.41217 C 278.90968,101.15884 279.64301,101.53218 280.54969,101.53217 C 281.08301,101.53218 282.21634,101.33218 283.94969,100.93217 C 286.61634,100.31885 288.73634,99.545513 290.30969,98.612174 C 292.57633,97.305515 293.70966,95.745516 293.70969,93.932174 L 294.34969,93.812174 L 294.74969,93.932174 C 294.82966,94.012185 294.86966,94.145518 294.86969,94.332174 M 309.43594,90.852174 L 309.43594,91.292174 C 309.43592,91.558854 309.32925,91.798854 309.11594,92.012174 C 308.92925,92.30552 308.79592,92.518853 308.71594,92.652174 C 308.55592,92.892186 308.27592,93.012186 307.87594,93.012174 C 307.79592,93.012186 307.59592,92.985519 307.27594,92.932174 C 306.58259,92.665519 306.03592,92.478853 305.63594,92.372174 C 304.30259,91.972187 303.24926,91.772187 302.47594,91.772174 C 301.80926,91.772187 301.32926,91.918853 301.03594,92.212174 C 300.92926,92.318853 300.84926,92.678853 300.79594,93.292174 C 300.7426,93.905518 300.71593,94.678851 300.71594,95.612174 C 300.71593,97.398848 300.7826,99.532179 300.91594,102.01217 C 300.9426,102.89218 301.02259,104.06551 301.15594,105.53217 L 299.23594,105.53217 C 298.51593,105.37217 296.99593,104.17217 294.67594,101.93217 C 293.87594,101.15884 293.12927,99.798846 292.43594,97.852174 C 291.39594,94.945517 290.87594,92.812186 290.87594,91.452174 C 290.87594,90.412188 291.99594,89.892189 294.23594,89.892174 C 296.5026,89.892189 297.63593,89.425523 297.63594,88.492174 C 297.63593,88.092191 297.51593,87.265525 297.27594,86.012174 C 297.03593,84.732194 296.80927,83.665528 296.59594,82.812174 C 295.87593,79.878866 295.51593,78.212201 295.51594,77.812174 L 290.51594,63.972174 L 291.39594,62.692174 C 291.63594,62.42555 291.9826,62.278883 292.43594,62.252174 C 292.8626,62.252216 293.87594,64.398881 295.47594,68.692174 C 297.1026,72.985539 298.1426,76.252202 298.59594,78.492174 L 300.39594,89.172174 C 300.5826,89.332189 301.16926,89.518856 302.15594,89.732174 C 303.16926,89.918855 304.03593,90.012189 304.75594,90.012174 C 306.91592,90.012189 308.23592,90.052189 308.71594,90.132174 C 309.19592,90.212189 309.43592,90.452188 309.43594,90.852174 M 298.55594,102.53217 C 298.6626,101.70551 298.72926,101.02551 298.75594,100.49217 C 298.88926,98.89218 298.95593,97.478848 298.95594,96.252174 C 298.95593,95.052184 298.88926,94.092185 298.75594,93.372174 C 298.64926,92.625519 298.43593,92.18552 298.11594,92.052174 C 297.8226,91.918853 297.47593,91.82552 297.07594,91.772174 C 296.7026,91.718854 296.32927,91.692187 295.95594,91.692174 C 295.2626,91.692187 294.59593,91.772187 293.95594,91.932174 C 293.31594,92.092187 292.99594,92.22552 292.99594,92.332174 C 292.99594,92.492186 293.08927,92.945519 293.27594,93.692174 C 293.3826,94.172185 293.5026,94.652184 293.63594,95.132174 C 293.87594,96.278849 294.64927,97.758848 295.95594,99.572174 C 297.12927,101.19884 297.99593,102.18551 298.55594,102.53217 M 334.62969,103.85217 C 334.62966,104.30551 334.38966,104.81217 333.90969,105.37217 C 333.26966,106.09217 332.46966,106.45217 331.50969,106.45217 C 330.843,106.45217 329.74966,106.33217 328.22969,106.09217 C 326.73633,105.85217 324.73633,105.47884 322.22969,104.97217 C 317.48301,103.98551 314.66968,103.26551 313.78969,102.81217 C 310.85635,101.42551 308.84302,100.27885 307.74969,99.372174 C 307.58969,99.21218 307.29635,98.905513 306.86969,98.452174 C 306.44302,97.998847 305.93635,97.398848 305.34969,96.652174 L 303.66969,96.772174 C 302.12302,96.772182 300.85636,96.398849 299.86969,95.652174 C 298.74969,94.772184 298.18969,93.865518 298.18969,92.932174 C 298.18969,92.398853 298.42969,91.94552 298.90969,91.572174 C 299.36303,91.198854 299.98969,90.958854 300.78969,90.852174 L 302.02969,92.052174 L 302.86969,92.812174 L 305.98969,92.932174 C 305.98969,90.265522 307.24302,87.972191 309.74969,86.052174 C 311.58968,84.692194 314.20301,83.492195 317.58969,82.452174 C 318.52301,82.18553 319.42967,82.012197 320.30969,81.932174 L 322.54969,81.772174 C 325.05633,81.772197 327.25633,82.34553 329.14969,83.492174 C 331.06966,84.612194 332.02966,86.025526 332.02969,87.732174 C 332.02966,88.61219 331.36299,89.638856 330.02969,90.812174 C 328.483,92.172187 326.323,93.318852 323.54969,94.252174 C 320.13634,95.345517 316.21634,95.892183 311.78969,95.892174 L 311.02969,95.812174 C 310.68302,95.812183 310.49635,95.905516 310.46969,96.092174 C 310.46968,96.225516 310.74968,96.572182 311.30969,97.132174 L 312.46969,98.132174 L 317.42969,101.13217 C 319.74967,101.93218 322.69634,102.33218 326.26969,102.33217 C 327.523,102.33218 328.30966,102.09218 328.62969,101.61217 C 328.97633,100.99884 329.763,100.53218 330.98969,100.21217 L 332.54969,100.21217 L 334.62969,103.85217 M 328.38969,88.492174 C 327.90967,87.158858 327.02967,86.225526 325.74969,85.692174 C 324.70967,85.31886 322.98967,85.132194 320.58969,85.132174 C 317.76301,85.132194 315.33634,85.865526 313.30969,87.332174 C 311.44301,88.665523 309.86968,90.705521 308.58969,93.452174 C 308.98968,93.292185 309.29635,93.212186 309.50969,93.212174 L 310.10969,93.332174 L 310.66969,93.452174 C 313.97635,93.452185 317.66968,92.918852 321.74969,91.852174 C 325.82967,90.758855 328.043,89.638856 328.38969,88.492174\""+        ,"       id=\"flowRoot2393\" />"+        ,"    <path"+        ,"       style=\"font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swift;-inkscape-font-specification:Swift\""+        ,"       d=\"M 125.23839,287.77805 C 124.53201,287.41021 124.13813,287.03749 124.05675,286.65988 C 123.97537,286.27903 123.93468,285.8884 123.93468,285.48801 C 123.93468,285.35455 123.95909,285.24062 124.00792,285.14621 C 124.09906,284.94114 124.14789,284.8093 124.1544,284.7507 C 124.16417,284.68886 124.20811,284.53424 124.28624,284.28683 C 124.45876,284.00038 124.67524,283.80344 124.93565,283.69601 C 125.14399,283.6179 125.43044,283.57883 125.79503,283.57883 C 126.41677,283.57883 126.90342,283.64068 127.25499,283.76437 C 127.38845,283.81321 127.51866,283.89784 127.64561,284.01828 C 127.75303,284.12245 127.86371,284.2315 127.97765,284.34543 C 128.40407,284.72629 128.64333,284.94602 128.69542,285.00461 C 128.96234,285.30735 129.0958,285.59543 129.09581,285.86887 C 129.0958,285.93398 129.08278,286.06093 129.05675,286.24973 C 129.0307,286.43528 129.01768,286.57037 129.01768,286.655 C 129.01768,286.7494 129.02745,286.82265 129.04698,286.87473 C 128.907,286.77056 128.75726,286.57037 128.59776,286.27414 C 128.40896,285.92258 128.27875,285.6996 128.20714,285.60519 C 128.01508,285.37408 127.66677,285.15761 127.16222,284.95578 C 126.65766,284.75071 126.23611,284.65142 125.89757,284.65793 L 125.9464,284.65793 C 125.73481,284.65793 125.50694,284.79628 125.2628,285.07297 C 125.01866,285.34967 124.89659,285.60357 124.89659,285.83469 C 124.89659,286.31646 125.25955,286.64361 125.98546,286.81613 C 126.33376,286.89752 126.6837,286.97727 127.03526,287.05539 C 127.46169,287.16933 127.77582,287.30279 127.97765,287.45578 C 128.3292,287.72271 128.59613,288.11985 128.77843,288.64719 C 128.93793,289.09966 129.01768,289.59283 129.01768,290.12668 C 129.01768,290.15923 129.02093,290.23247 129.02745,290.34641 C 129.03396,290.44081 129.03396,290.51079 129.02745,290.55637 C 129.02745,290.63775 129.01442,290.70122 128.98839,290.7468 C 128.89398,290.92583 128.53754,291.01535 127.91905,291.01535 C 127.79861,291.01535 127.65212,291.0121 127.4796,291.00558 C 127.31032,290.99907 127.21267,290.99582 127.18663,290.99582 C 126.65277,290.99582 126.32888,290.99256 126.21495,290.98605 C 125.87641,290.96001 125.58995,290.88677 125.35558,290.76633 C 125.04307,290.61333 124.75662,290.33664 124.4962,289.93625 C 124.2781,289.60422 124.11209,289.24777 123.99815,288.86691 L 123.99815,288.20773 C 124.13162,288.27935 124.30414,288.40305 124.51573,288.57883 C 124.57107,288.64393 124.6378,288.76275 124.71593,288.93527 C 124.78429,289.08176 124.8559,289.18918 124.93077,289.25754 C 125.00889,289.32264 125.10167,289.37635 125.20909,289.41867 C 125.36208,289.47727 125.46951,289.52609 125.53136,289.56516 C 125.59646,289.60096 125.68435,289.67583 125.79503,289.78976 C 125.90896,289.90044 126.00336,289.9688 126.07823,289.99484 C 126.53721,290.17062 126.97667,290.25852 127.39659,290.25851 C 127.62445,290.25852 127.73838,289.92811 127.73839,289.2673 C 127.73838,288.92551 127.48448,288.6358 126.97667,288.39816 C 126.5893,288.24517 126.20193,288.0938 125.81456,287.94406 C 125.75596,287.91802 125.60297,287.87571 125.35558,287.81711 C 125.17654,287.77805 125.04958,287.71457 124.97472,287.62668 L 125.23839,287.77805 M 129.90147,286.18625 C 130.08377,286.19276 130.32791,286.24322 130.6339,286.33762 C 130.91384,286.42226 131.1531,286.46457 131.35167,286.46457 C 131.49164,286.46457 131.67068,286.43853 131.88878,286.38644 C 132.10688,286.33437 132.27452,286.30832 132.39171,286.30832 C 132.8865,286.30832 133.49359,286.57362 134.213,287.10422 C 134.69476,287.45904 135.04144,287.78619 135.25304,288.08566 C 135.53949,288.47955 135.68272,288.92388 135.68272,289.41867 C 135.68272,289.36333 135.68923,289.43332 135.70226,289.62863 C 135.70876,289.70676 135.69248,289.76861 135.65343,289.81418 C 135.60134,289.88254 135.51507,289.94276 135.39464,289.99484 C 135.24815,290.06971 135.15049,290.12342 135.10167,290.15598 C 134.78265,290.39686 134.58409,290.54009 134.50597,290.58566 C 134.28461,290.70611 134.05349,290.76633 133.81261,290.76633 C 133.58799,290.76633 133.27061,290.74354 132.86046,290.69797 C 132.4503,290.64914 132.12803,290.62473 131.89366,290.62473 C 131.31423,290.62473 130.97406,290.68169 130.87315,290.79562 C 130.83409,290.83469 130.81781,290.92095 130.82433,291.05441 C 130.83083,291.15532 130.83572,291.25135 130.83897,291.3425 C 130.84223,291.4369 130.85037,291.63872 130.86339,291.94797 C 130.8699,292.1856 130.87315,292.37765 130.87315,292.52414 C 130.87315,292.80409 130.78689,293.05962 130.61436,293.29074 C 130.44184,293.52186 130.2156,293.66997 129.93565,293.73508 L 129.90147,286.18625 M 130.95616,288.00754 C 130.95616,288.58046 131.14171,289.14686 131.5128,289.70676 C 131.80577,289.56027 132.29568,289.47076 132.98253,289.4382 C 133.88422,289.38938 134.41156,289.35194 134.56456,289.3259 C 134.53851,289.05246 134.40505,288.80995 134.16417,288.59836 C 133.9363,288.42909 133.70681,288.25819 133.47569,288.08566 C 133.12087,287.7927 132.90766,287.62668 132.83604,287.58762 C 132.60167,287.44765 132.32823,287.37766 132.01573,287.37766 C 131.30935,287.37766 130.95616,287.58762 130.95616,288.00754 M 142.67979,290.99582 C 142.4389,290.96978 142.14268,290.88026 141.79112,290.72726 C 141.38422,290.55474 141.18402,290.39849 141.19054,290.25851 C 140.4223,290.78911 139.72243,291.05441 139.09093,291.05441 C 138.25108,291.05441 137.55447,290.69797 137.00108,289.98508 C 136.48025,289.31776 136.21983,288.52512 136.21983,287.60715 C 136.21983,286.45481 136.70649,285.87864 137.67979,285.87863 C 138.25922,285.87864 138.78331,285.95188 139.25206,286.09836 C 139.36599,286.13092 139.58897,286.24973 139.92101,286.4548 C 140.20095,286.63059 140.42393,286.71848 140.58995,286.71848 C 140.61599,286.71848 140.72015,286.6078 140.90245,286.38644 C 140.98057,286.26601 141.10427,286.13417 141.27354,285.99094 C 141.44606,285.84771 141.55511,285.75006 141.60069,285.69797 C 141.57465,286.15696 141.60394,286.63059 141.68858,287.11887 C 141.77647,287.5453 141.86761,287.97499 141.96202,288.40793 C 142.15407,289.3259 142.39333,290.18853 142.67979,290.99582 M 140.63878,288.75461 C 140.4988,288.54302 140.26931,288.19634 139.9503,287.71457 C 139.81032,287.52252 139.5906,287.35976 139.29112,287.22629 C 139.0307,287.12538 138.76703,287.02935 138.50011,286.9382 C 138.35362,286.86985 138.20714,286.80312 138.06065,286.73801 C 137.89464,286.65663 137.74815,286.61594 137.6212,286.61594 C 137.16873,286.61594 136.94249,286.92356 136.94249,287.53879 C 136.94249,287.5453 136.94249,287.53391 136.94249,287.50461 C 136.949,287.48508 136.95225,287.47857 136.95226,287.48508 C 136.95876,288.11985 137.13455,288.66346 137.4796,289.11594 C 137.86697,289.61073 138.36664,289.85813 138.97862,289.85812 C 139.00141,289.85813 138.98187,289.85487 138.92003,289.84836 C 138.86143,289.84836 138.83865,289.84836 138.85167,289.84836 C 138.88422,289.84836 139.04047,289.85161 139.32042,289.85812 C 139.51898,289.86464 139.67849,289.86464 139.79893,289.85812 C 139.9682,289.8451 140.11143,289.81418 140.22862,289.76535 C 140.48252,289.6677 140.68597,289.53098 140.83897,289.35519 C 140.93337,289.25754 140.98057,289.19406 140.98058,289.16476 C 140.97406,289.15826 140.96592,289.155 140.95616,289.155 C 140.94639,289.155 140.8406,289.02154 140.63878,288.75461 M 147.9337,286.47433 C 147.39333,286.16184 146.9669,285.94537 146.6544,285.82492 C 146.18565,285.64589 145.71527,285.55637 145.24327,285.55637 C 144.04861,285.55637 143.26248,285.97629 142.88487,286.81613 C 142.84906,286.89101 142.82791,286.97076 142.8214,287.05539 C 142.81489,287.11724 142.81489,287.19699 142.8214,287.29465 C 142.8214,287.41509 142.8214,287.50624 142.8214,287.56808 C 142.81489,287.70806 142.79373,287.90012 142.75792,288.14426 C 142.72211,288.38514 142.70421,288.58534 142.70421,288.74484 C 142.70421,289.64654 143.08995,290.26014 143.86143,290.58566 C 144.37576,290.80702 145.17003,290.91769 146.24425,290.91769 C 147.23708,290.91769 147.87673,290.62798 148.16319,290.04855 C 148.25108,289.87277 148.32432,289.65142 148.38292,289.38449 C 148.45778,289.07199 148.518,288.85878 148.56358,288.74484 C 148.37803,288.85878 148.19086,289.01665 148.00206,289.21848 C 147.75791,289.47564 147.58213,289.64816 147.47472,289.73605 C 147.11338,290.02902 146.54047,290.17551 145.75597,290.17551 C 145.1863,290.17551 144.7029,290.0453 144.30577,289.78488 C 143.85004,289.49191 143.62218,289.08501 143.62218,288.56418 C 143.62218,288.06613 143.78331,287.64784 144.10558,287.3093 C 144.43109,286.9675 144.83962,286.7966 145.33116,286.7966 C 145.6404,286.7966 146.04405,286.92681 146.5421,287.18723 C 147.0434,287.44765 147.44379,287.57785 147.74327,287.57785 C 147.8572,287.57785 147.98415,287.50461 148.12413,287.35812 C 148.23806,287.23769 148.34711,287.11724 148.45128,286.9968 C 148.4057,286.95123 148.12575,286.71034 147.61143,286.27414 L 147.9337,286.47433 M 153.69054,287.41672 C 153.69053,287.39068 153.671,287.33209 153.63194,287.24094 C 153.59288,287.14979 153.5587,287.09446 153.5294,287.07492 C 153.46429,287.02935 153.34222,287.00657 153.16319,287.00656 C 153.06228,287.00657 152.91905,287.0147 152.73351,287.03098 C 152.55121,287.04726 152.43728,287.05539 152.39171,287.05539 C 152.38519,287.05539 152.22243,287.04888 151.90343,287.03586 C 151.70811,287.02935 151.53721,287.03586 151.39073,287.05539 C 151.27029,287.06841 151.11404,287.15468 150.92198,287.31418 C 150.68109,287.50949 150.53136,287.62343 150.47276,287.65598 C 150.80479,287.73736 151.13682,287.81711 151.46886,287.89523 C 151.85622,287.98964 152.2029,288.03684 152.5089,288.03683 C 152.7628,288.03684 153.01019,287.98638 153.25108,287.88547 C 153.54405,287.76503 153.69053,287.60878 153.69054,287.41672 M 154.28136,286.50851 C 154.30088,286.64849 154.37738,286.87798 154.51085,287.19699 C 154.61827,287.47694 154.67198,287.72271 154.67198,287.9343 C 154.67198,288.31516 154.42133,288.56255 153.92003,288.67648 C 153.6889,288.72857 153.27224,288.75461 152.67003,288.75461 C 152.45193,288.75461 152.13454,288.69927 151.71788,288.58859 C 151.30121,288.47466 150.98546,288.4177 150.77061,288.41769 C 150.43858,288.4177 150.27257,288.54139 150.27257,288.78879 C 150.27257,289.23475 150.51182,289.58143 150.99034,289.82883 C 151.37771,290.02089 151.83506,290.11691 152.36241,290.11691 C 152.62282,290.11691 152.92556,290.07622 153.27061,289.99484 C 153.67751,289.9037 153.96397,289.78814 154.12999,289.64816 C 154.21136,289.57981 154.31228,289.45122 154.43272,289.26242 C 154.55316,289.07037 154.64593,288.93853 154.71104,288.86691 L 154.74034,289.52609 C 154.66221,289.8744 154.49945,290.12831 154.25206,290.28781 C 154.11208,290.37896 153.82237,290.49126 153.38292,290.62473 C 152.56911,290.87212 151.93598,290.99582 151.48351,290.99582 C 150.92035,290.99582 150.41254,290.79888 149.96007,290.405 C 149.48806,289.9981 149.25206,289.52121 149.25206,288.97433 C 149.25206,287.7634 149.2488,287.50461 149.24229,288.19797 C 149.24229,287.87571 149.26834,287.62831 149.32042,287.45578 C 149.46039,286.97076 149.75011,286.60129 150.18956,286.34738 C 150.59646,286.11301 151.08311,285.99582 151.64952,285.99582 C 152.3559,285.99582 153.00368,286.06907 153.59288,286.21555 C 153.73285,286.2481 153.88584,286.32134 154.05186,286.43527 C 154.29274,286.58176 154.44574,286.67291 154.51085,286.70871 L 154.28136,286.50851 M 160.33604,291.08859 C 160.1505,291.0007 160.00076,290.83306 159.88683,290.58566 C 159.80219,290.34478 159.71267,290.10878 159.61827,289.87766 C 159.4783,289.53586 159.39529,289.32915 159.36925,289.25754 C 159.29438,289.04921 159.25043,288.83274 159.23741,288.60812 C 159.22439,288.38026 159.25043,288.13287 159.31554,287.86594 C 159.43598,287.41998 159.4962,287.19374 159.4962,287.18723 L 158.25597,287.18723 C 158.32433,286.89426 158.47895,286.69407 158.71983,286.58664 C 158.78494,286.5606 158.91515,286.54595 159.11046,286.54269 C 159.30902,286.53944 159.44412,286.5248 159.51573,286.49875 C 159.64919,286.44993 159.71918,286.35552 159.72569,286.21555 C 159.72569,286.20253 159.71918,286.10976 159.70616,285.93723 C 159.69314,285.7647 159.68663,285.62148 159.68663,285.50754 C 159.68663,285.27317 159.71755,285.15598 159.7794,285.15598 C 160.28396,285.15598 160.64366,285.15273 160.85851,285.14621 C 160.89757,285.26666 160.9171,285.39687 160.9171,285.53683 C 160.9171,285.63124 160.90408,285.76796 160.87804,285.94699 C 160.85199,286.12603 160.83897,286.26275 160.83897,286.35715 C 160.83897,286.43528 160.84548,286.51177 160.85851,286.58664 C 160.97895,286.55409 161.16937,286.50689 161.42979,286.44504 L 163.82726,286.44504 C 162.98741,286.92681 162.18825,287.1677 161.42979,287.16769 C 160.8699,287.1677 160.58995,287.34999 160.58995,287.71457 C 160.58995,287.80897 160.61273,287.92616 160.65831,288.06613 C 160.72341,288.24517 160.75922,288.3591 160.76573,288.40793 C 160.80805,288.59999 160.84223,288.83599 160.86827,289.11594 C 160.90733,289.52935 160.93012,289.77349 160.93663,289.84836 C 160.94965,289.94602 160.99359,290.08762 161.06847,290.27316 C 161.14659,290.45546 161.18565,290.61008 161.18565,290.73703 C 161.18565,290.94862 160.83572,291.05441 160.13585,291.05441 L 160.33604,291.08859 M 168.42198,288.34445 C 168.42198,287.88547 168.21853,287.50624 167.81163,287.20676 C 167.43077,286.93332 166.98969,286.7966 166.48839,286.7966 L 166.62022,286.7966 C 165.63389,286.76405 165.14073,287.19374 165.14073,288.08566 C 165.14073,288.56744 165.32302,289.00363 165.68761,289.39426 C 166.00336,289.72954 166.40049,289.98671 166.87901,290.16574 C 166.89203,290.17225 166.8725,290.19178 166.82042,290.22433 C 166.94086,290.11366 167.13454,289.94113 167.40147,289.70676 C 168.08181,289.1729 168.42198,288.7188 168.42198,288.34445 M 166.97179,291.02512 C 166.78949,290.93397 166.53721,290.83631 166.21495,290.73215 C 165.89268,290.62798 165.64366,290.52544 165.46788,290.42453 C 164.32856,289.76698 163.7589,288.9483 163.7589,287.96848 C 163.7589,287.65272 163.8061,287.35813 163.9005,287.08469 C 164.02094,286.75917 164.18696,286.52642 164.39854,286.38644 C 164.74034,286.17161 165.22048,286.03814 165.83897,285.98605 C 166.05382,285.96653 166.5779,285.95676 167.41124,285.95676 C 168.19574,285.95676 168.77517,286.31321 169.14952,287.02609 C 169.43597,287.57948 169.5792,288.28261 169.57921,289.13547 C 169.5792,289.74419 169.25205,290.21783 168.59776,290.55637 C 168.06716,290.83631 167.45518,290.97629 166.76183,290.97629 L 166.97179,291.02512 M 178.57823,286.47433 C 178.03786,286.16184 177.61143,285.94537 177.29893,285.82492 C 176.83018,285.64589 176.3598,285.55637 175.8878,285.55637 C 174.69314,285.55637 173.90701,285.97629 173.5294,286.81613 C 173.4936,286.89101 173.47244,286.97076 173.46593,287.05539 C 173.45942,287.11724 173.45942,287.19699 173.46593,287.29465 C 173.46593,287.41509 173.46593,287.50624 173.46593,287.56808 C 173.45942,287.70806 173.43826,287.90012 173.40245,288.14426 C 173.36664,288.38514 173.34874,288.58534 173.34874,288.74484 C 173.34874,289.64654 173.73448,290.26014 174.50597,290.58566 C 175.02029,290.80702 175.81456,290.91769 176.88878,290.91769 C 177.88161,290.91769 178.52126,290.62798 178.80772,290.04855 C 178.89561,289.87277 178.96885,289.65142 179.02745,289.38449 C 179.10231,289.07199 179.16254,288.85878 179.20811,288.74484 C 179.02256,288.85878 178.83539,289.01665 178.64659,289.21848 C 178.40245,289.47564 178.22666,289.64816 178.11925,289.73605 C 177.75791,290.02902 177.185,290.17551 176.4005,290.17551 C 175.83083,290.17551 175.34744,290.0453 174.9503,289.78488 C 174.49457,289.49191 174.26671,289.08501 174.26671,288.56418 C 174.26671,288.06613 174.42784,287.64784 174.75011,287.3093 C 175.07563,286.9675 175.48415,286.7966 175.97569,286.7966 C 176.28493,286.7966 176.68858,286.92681 177.18663,287.18723 C 177.68793,287.44765 178.08832,287.57785 178.3878,287.57785 C 178.50173,287.57785 178.62868,287.50461 178.76866,287.35812 C 178.88259,287.23769 178.99164,287.11724 179.09581,286.9968 C 179.05023,286.95123 178.77028,286.71034 178.25597,286.27414 L 178.57823,286.47433 M 182.15733,291.05441 C 181.61046,291.05441 181.17263,290.86887 180.84386,290.49777 C 180.60623,290.21783 180.39952,289.79139 180.22374,289.21848 C 180.12608,288.88319 180.03331,288.4356 179.94542,287.8757 C 179.85753,287.27675 179.77452,286.82753 179.6964,286.52805 C 179.79731,286.55409 179.89008,286.61269 179.97472,286.70383 C 180.06261,286.79172 180.14561,286.87961 180.22374,286.9675 C 180.42556,287.17258 180.62413,287.38254 180.81944,287.59738 C 181.01801,287.80897 181.16612,288.04823 181.26378,288.31516 C 181.3712,288.60162 181.48188,288.88807 181.59581,289.17453 C 181.75531,289.47076 181.99132,289.61887 182.30382,289.61887 C 182.67165,289.61887 182.99555,289.28195 183.2755,288.60812 C 183.5294,287.99289 183.65635,287.25233 183.65636,286.38644 C 183.96234,287.07981 184.19183,287.7927 184.34483,288.52512 C 184.4197,288.766 184.53689,289.13059 184.6964,289.61887 C 184.86892,290.16249 184.95518,290.91769 184.95518,291.88449 C 184.95518,293.11821 184.51573,293.73507 183.63683,293.73508 C 183.02159,293.73507 182.51052,293.51535 182.10362,293.0759 C 181.90505,292.8578 181.60557,292.38742 181.20518,291.66476 C 181.43305,291.67778 181.69346,291.83566 181.98643,292.1384 C 182.33799,292.49647 182.56749,292.70317 182.67491,292.75851 C 182.70746,292.77153 182.76768,292.82036 182.85558,292.905 C 182.92393,292.96685 182.99066,292.99777 183.05577,292.99777 C 183.20876,292.99777 183.36176,292.89686 183.51476,292.69504 C 183.62868,292.54855 183.71169,292.38905 183.76378,292.21652 L 183.76378,290.79562 C 183.60427,290.877 183.43825,290.95838 183.26573,291.03976 C 183.0932,291.11789 182.91254,291.15695 182.72374,291.15695 C 182.42426,291.15695 182.18826,291.10324 182.01573,290.99582 L 182.15733,291.05441 M 190.90245,286.47433 C 190.36208,286.16184 189.93565,285.94537 189.62315,285.82492 C 189.1544,285.64589 188.68402,285.55637 188.21202,285.55637 C 187.01736,285.55637 186.23123,285.97629 185.85362,286.81613 C 185.81781,286.89101 185.79666,286.97076 185.79015,287.05539 C 185.78364,287.11724 185.78364,287.19699 185.79015,287.29465 C 185.79015,287.41509 185.79015,287.50624 185.79015,287.56808 C 185.78364,287.70806 185.76248,287.90012 185.72667,288.14426 C 185.69086,288.38514 185.67296,288.58534 185.67296,288.74484 C 185.67296,289.64654 186.0587,290.26014 186.83018,290.58566 C 187.34451,290.80702 188.13878,290.91769 189.213,290.91769 C 190.20583,290.91769 190.84548,290.62798 191.13194,290.04855 C 191.21983,289.87277 191.29307,289.65142 191.35167,289.38449 C 191.42653,289.07199 191.48675,288.85878 191.53233,288.74484 C 191.34678,288.85878 191.15961,289.01665 190.97081,289.21848 C 190.72666,289.47564 190.55088,289.64816 190.44347,289.73605 C 190.08213,290.02902 189.50922,290.17551 188.72472,290.17551 C 188.15505,290.17551 187.67165,290.0453 187.27452,289.78488 C 186.81879,289.49191 186.59093,289.08501 186.59093,288.56418 C 186.59093,288.06613 186.75206,287.64784 187.07433,287.3093 C 187.39984,286.9675 187.80837,286.7966 188.29991,286.7966 C 188.60915,286.7966 189.0128,286.92681 189.51085,287.18723 C 190.01215,287.44765 190.41254,287.57785 190.71202,287.57785 C 190.82595,287.57785 190.9529,287.50461 191.09288,287.35812 C 191.20681,287.23769 191.31586,287.11724 191.42003,286.9968 C 191.37445,286.95123 191.0945,286.71034 190.58018,286.27414 L 190.90245,286.47433 M 192.71886,290.8884 C 192.71886,290.21457 192.6033,289.36008 192.37218,288.32492 C 192.14431,287.28651 192.03038,286.43039 192.03038,285.75656 L 192.03038,285.08762 C 192.03038,285.06809 192.03038,285.09088 192.03038,285.15598 C 192.02387,285.21783 192.02061,285.24062 192.02061,285.22433 C 192.02061,284.7328 192.03038,284.39752 192.04991,284.21848 C 192.09548,283.8832 192.19477,283.59999 192.34776,283.36887 C 192.37706,283.33307 192.48123,283.32167 192.66026,283.33469 C 192.94672,283.35748 193.07367,283.36887 193.04112,283.36887 C 193.06065,283.36887 193.03949,283.36887 192.97765,283.36887 C 192.92556,283.37538 192.90603,283.37864 192.91905,283.37863 C 193.03949,283.37864 193.11436,283.39003 193.14366,283.41281 C 193.17296,283.43561 193.23806,283.45025 193.33897,283.45676 C 193.27387,283.79531 193.24132,284.16477 193.24132,284.56516 C 193.24132,285.07297 193.32432,285.72076 193.49034,286.50851 C 193.65635,287.29302 193.73936,287.94244 193.73936,288.45676 C 193.73936,289.15663 193.72309,289.59283 193.69054,289.76535 C 193.60915,290.18527 193.40245,290.49289 193.07042,290.6882 C 193.03787,290.70773 192.97764,290.75331 192.88976,290.82492 C 192.84418,290.86724 192.78722,290.8884 192.71886,290.8884 M 199.08116,287.41672 C 199.08116,287.39068 199.06163,287.33209 199.02257,287.24094 C 198.9835,287.14979 198.94932,287.09446 198.92003,287.07492 C 198.85492,287.02935 198.73285,287.00657 198.55382,287.00656 C 198.4529,287.00657 198.30967,287.0147 198.12413,287.03098 C 197.94183,287.04726 197.8279,287.05539 197.78233,287.05539 C 197.77582,287.05539 197.61306,287.04888 197.29405,287.03586 C 197.09874,287.02935 196.92784,287.03586 196.78136,287.05539 C 196.66091,287.06841 196.50466,287.15468 196.31261,287.31418 C 196.07172,287.50949 195.92198,287.62343 195.86339,287.65598 C 196.19542,287.73736 196.52745,287.81711 196.85948,287.89523 C 197.24685,287.98964 197.59353,288.03684 197.89952,288.03683 C 198.15342,288.03684 198.40082,287.98638 198.64171,287.88547 C 198.93467,287.76503 199.08116,287.60878 199.08116,287.41672 M 199.67198,286.50851 C 199.69151,286.64849 199.768,286.87798 199.90147,287.19699 C 200.00889,287.47694 200.0626,287.72271 200.06261,287.9343 C 200.0626,288.31516 199.81195,288.56255 199.31065,288.67648 C 199.07953,288.72857 198.66286,288.75461 198.06065,288.75461 C 197.84255,288.75461 197.52517,288.69927 197.10851,288.58859 C 196.69184,288.47466 196.37608,288.4177 196.16124,288.41769 C 195.82921,288.4177 195.66319,288.54139 195.66319,288.78879 C 195.66319,289.23475 195.90245,289.58143 196.38097,289.82883 C 196.76833,290.02089 197.22569,290.11691 197.75304,290.11691 C 198.01345,290.11691 198.31618,290.07622 198.66124,289.99484 C 199.06814,289.9037 199.35459,289.78814 199.52061,289.64816 C 199.60199,289.57981 199.7029,289.45122 199.82335,289.26242 C 199.94379,289.07037 200.03656,288.93853 200.10167,288.86691 L 200.13097,289.52609 C 200.05284,289.8744 199.89008,290.12831 199.64268,290.28781 C 199.50271,290.37896 199.21299,290.49126 198.77354,290.62473 C 197.95974,290.87212 197.3266,290.99582 196.87413,290.99582 C 196.31098,290.99582 195.80317,290.79888 195.35069,290.405 C 194.87869,289.9981 194.64268,289.52121 194.64268,288.97433 C 194.64268,287.7634 194.63943,287.50461 194.63292,288.19797 C 194.63292,287.87571 194.65896,287.62831 194.71104,287.45578 C 194.85102,286.97076 195.14073,286.60129 195.58018,286.34738 C 195.98708,286.11301 196.47374,285.99582 197.04015,285.99582 C 197.74652,285.99582 198.39431,286.06907 198.98351,286.21555 C 199.12347,286.2481 199.27647,286.32134 199.44249,286.43527 C 199.68337,286.58176 199.83636,286.67291 199.90147,286.70871 L 199.67198,286.50851 M 205.72667,291.08859 C 205.54112,291.0007 205.39138,290.83306 205.27745,290.58566 C 205.19281,290.34478 205.1033,290.10878 205.0089,289.87766 C 204.86892,289.53586 204.78591,289.32915 204.75987,289.25754 C 204.685,289.04921 204.64106,288.83274 204.62804,288.60812 C 204.61501,288.38026 204.64106,288.13287 204.70616,287.86594 C 204.8266,287.41998 204.88682,287.19374 204.88683,287.18723 L 203.64659,287.18723 C 203.71495,286.89426 203.86957,286.69407 204.11046,286.58664 C 204.17556,286.5606 204.30577,286.54595 204.50108,286.54269 C 204.69965,286.53944 204.83474,286.5248 204.90636,286.49875 C 205.03982,286.44993 205.10981,286.35552 205.11632,286.21555 C 205.11632,286.20253 205.10981,286.10976 205.09679,285.93723 C 205.08376,285.7647 205.07725,285.62148 205.07726,285.50754 C 205.07725,285.27317 205.10818,285.15598 205.17003,285.15598 C 205.67458,285.15598 206.03428,285.15273 206.24913,285.14621 C 206.28819,285.26666 206.30772,285.39687 206.30772,285.53683 C 206.30772,285.63124 206.2947,285.76796 206.26866,285.94699 C 206.24262,286.12603 206.2296,286.26275 206.2296,286.35715 C 206.2296,286.43528 206.23611,286.51177 206.24913,286.58664 C 206.36957,286.55409 206.56,286.50689 206.82042,286.44504 L 209.21788,286.44504 C 208.37803,286.92681 207.57888,287.1677 206.82042,287.16769 C 206.26052,287.1677 205.98057,287.34999 205.98058,287.71457 C 205.98057,287.80897 206.00336,287.92616 206.04893,288.06613 C 206.11404,288.24517 206.14984,288.3591 206.15636,288.40793 C 206.19867,288.59999 206.23285,288.83599 206.2589,289.11594 C 206.29796,289.52935 206.32074,289.77349 206.32726,289.84836 C 206.34027,289.94602 206.38422,290.08762 206.45909,290.27316 C 206.53721,290.45546 206.57628,290.61008 206.57628,290.73703 C 206.57628,290.94862 206.22634,291.05441 205.52647,291.05441 L 205.72667,291.08859 M 209.66222,290.82492 C 209.70779,290.63286 209.7436,290.35292 209.76964,289.98508 C 209.79568,289.52609 209.81684,289.2494 209.83311,289.155 C 209.98611,288.00266 210.06261,287.22629 210.06261,286.8259 C 210.06261,285.99257 209.98611,285.23248 209.83311,284.54562 C 209.81033,284.27219 209.75336,283.87506 209.66222,283.35422 C 209.95518,283.51699 210.19119,283.76438 210.37022,284.09641 C 210.48416,284.31126 210.6046,284.63515 210.73155,285.06808 C 210.82595,285.3871 210.89919,285.78912 210.95128,286.27414 C 210.99034,286.68756 211.0294,287.10097 211.06847,287.51437 C 211.35818,287.18235 211.57628,286.95285 211.72276,286.8259 C 212.00271,286.59153 212.28591,286.47434 212.57237,286.47433 C 213.38617,286.47434 213.94607,286.90891 214.25206,287.77805 C 214.51247,288.51047 214.64268,289.31288 214.64268,290.18527 C 214.64268,290.42616 214.61501,290.68983 214.55968,290.97629 C 214.50108,290.97629 214.43923,290.97954 214.37413,290.98605 C 214.31228,290.99256 214.25857,290.99582 214.213,290.99582 C 214.06651,290.99582 213.96397,290.96164 213.90538,290.89328 C 213.85004,290.82167 213.81911,290.72564 213.81261,290.60519 C 213.8126,290.50754 213.8126,290.40825 213.81261,290.30734 C 213.78331,290.13482 213.72634,289.93788 213.64171,289.71652 C 213.55381,289.52447 213.46755,289.32753 213.38292,289.1257 C 213.24945,288.80669 213.11924,288.48443 212.99229,288.15891 C 212.79698,287.82362 212.53656,287.65598 212.21104,287.65598 C 212.15245,287.65598 212.09548,287.69341 212.04015,287.76828 C 211.96853,287.87896 211.92621,287.93755 211.91319,287.94406 C 211.61046,288.2175 211.4005,288.46164 211.28331,288.67648 C 211.12706,288.94341 211.04893,289.24615 211.04893,289.58469 C 211.04893,290.05344 211.04242,290.33339 211.0294,290.42453 C 210.97081,290.79237 210.82107,290.97629 210.58018,290.97629 C 210.49555,290.97629 210.3686,290.93885 210.19933,290.86398 C 210.03331,290.78586 209.91775,290.7468 209.85265,290.7468 C 209.77778,290.7468 209.7143,290.77284 209.66222,290.82492 M 215.30675,289.1257 C 215.30675,289.13872 215.31488,288.9662 215.33116,288.60812 C 215.33767,288.41281 215.32628,288.24843 215.29698,288.11496 C 215.19281,287.81548 215.06749,287.36627 214.92101,286.7673 C 214.89822,286.64035 214.89822,286.49713 214.92101,286.33762 C 214.94054,286.11627 214.9503,285.96978 214.9503,285.89816 C 215.05772,285.93723 215.1977,286.02675 215.37022,286.16672 C 215.54926,286.32623 215.6697,286.4662 215.73155,286.58664 C 215.75759,286.64524 215.78038,286.70546 215.79991,286.7673 C 215.83897,286.86822 215.87804,286.91867 215.9171,286.91867 C 216.09288,286.91867 216.27029,286.86171 216.44933,286.74777 C 216.5893,286.64687 216.73253,286.54595 216.87901,286.44504 C 217.08734,286.31809 217.47146,286.25461 218.03136,286.25461 C 219.29763,286.25461 220.12282,286.63222 220.50694,287.38742 C 220.1684,287.22141 219.68988,287.1384 219.0714,287.1384 C 218.73611,287.1384 218.39268,287.21164 218.04112,287.35812 C 217.89463,287.41672 217.60329,287.56321 217.1671,287.79758 C 217.0141,287.86919 216.85785,287.94569 216.69835,288.02707 C 216.51931,288.12798 216.40701,288.23378 216.36143,288.34445 C 216.33214,288.41281 216.31423,288.48606 216.30772,288.56418 C 216.30772,288.61952 216.31098,288.69927 216.31749,288.80344 C 216.324,288.90435 216.32725,288.97596 216.32726,289.01828 C 216.32725,289.24289 216.324,289.57981 216.31749,290.02902 C 216.31098,290.47499 216.30772,290.80702 216.30772,291.02512 C 216.11567,291.07394 215.90896,291.09836 215.68761,291.09836 C 215.36209,291.09836 215.19281,291.03814 215.17979,290.91769 C 215.16677,290.81678 215.17979,290.71913 215.21886,290.62473 C 215.26443,290.49777 215.29047,290.40988 215.29698,290.36105 C 215.30349,290.31223 215.30675,289.90044 215.30675,289.1257 M 225.29698,288.34445 C 225.29698,287.88547 225.09353,287.50624 224.68663,287.20676 C 224.30577,286.93332 223.86469,286.7966 223.36339,286.7966 L 223.49522,286.7966 C 222.50889,286.76405 222.01573,287.19374 222.01573,288.08566 C 222.01573,288.56744 222.19802,289.00363 222.56261,289.39426 C 222.87836,289.72954 223.27549,289.98671 223.75401,290.16574 C 223.76703,290.17225 223.7475,290.19178 223.69542,290.22433 C 223.81586,290.11366 224.00954,289.94113 224.27647,289.70676 C 224.95681,289.1729 225.29698,288.7188 225.29698,288.34445 M 223.84679,291.02512 C 223.66449,290.93397 223.41221,290.83631 223.08995,290.73215 C 222.76768,290.62798 222.51866,290.52544 222.34288,290.42453 C 221.20356,289.76698 220.6339,288.9483 220.6339,287.96848 C 220.6339,287.65272 220.6811,287.35813 220.7755,287.08469 C 220.89594,286.75917 221.06196,286.52642 221.27354,286.38644 C 221.61534,286.17161 222.09548,286.03814 222.71397,285.98605 C 222.92882,285.96653 223.4529,285.95676 224.28624,285.95676 C 225.07074,285.95676 225.65017,286.31321 226.02452,287.02609 C 226.31097,287.57948 226.4542,288.28261 226.45421,289.13547 C 226.4542,289.74419 226.12705,290.21783 225.47276,290.55637 C 224.94216,290.83631 224.33018,290.97629 223.63683,290.97629 L 223.84679,291.02512 M 227.1964,285.78586 C 227.1964,286.24485 227.28266,286.97564 227.45518,287.97824 C 227.54307,288.46327 227.58702,288.71229 227.58702,288.72531 C 227.65212,288.99875 227.7628,289.22987 227.91905,289.41867 C 228.16319,289.74419 228.40896,290.06971 228.65636,290.39523 C 228.95583,290.70122 229.34646,290.85422 229.82823,290.85422 C 230.41417,290.85422 230.91058,290.5287 231.31749,289.87766 C 231.4184,290.16411 231.49815,290.37082 231.55675,290.49777 C 231.67068,290.72889 231.79437,290.8884 231.92784,290.97629 C 231.94086,290.82329 231.94737,290.67355 231.94737,290.52707 C 231.94737,290.08762 231.87575,289.48703 231.73253,288.72531 C 231.58929,287.96034 231.51768,287.3272 231.51768,286.8259 C 231.51768,286.50689 231.56,286.17323 231.64464,285.82492 C 231.72601,285.52545 231.81065,285.22271 231.89854,284.91672 C 231.47862,285.0567 231.08148,285.38385 230.70714,285.89816 C 230.41417,286.30507 230.26768,286.67128 230.26768,286.9968 C 230.26768,287.0619 230.27094,287.12864 230.27745,287.19699 C 230.33604,287.75689 230.36534,288.17681 230.36534,288.45676 C 230.36534,288.87017 230.2921,289.12408 230.14561,289.21848 C 230.06749,289.27056 229.84125,289.2966 229.4669,289.2966 C 229.29438,289.2966 229.13813,289.2201 228.99815,289.06711 C 228.97211,289.03456 228.8712,288.89133 228.69542,288.63742 C 228.61729,288.51698 228.53428,288.39654 228.4464,288.27609 C 228.33897,288.11008 228.2755,287.97987 228.25597,287.88547 C 228.2169,287.69341 228.19086,287.46392 228.17784,287.19699 C 228.16482,287.00494 228.16156,286.7608 228.16808,286.46457 C 228.17458,285.99908 228.17784,285.76308 228.17784,285.75656 C 227.69607,285.82167 227.45193,285.85422 227.44542,285.85422 C 227.32498,285.85422 227.24197,285.83144 227.1964,285.78586 M 234.50597,286.07883 C 233.81912,286.07883 233.26573,286.37831 232.84581,286.97726 C 232.47472,287.51763 232.28917,288.15728 232.28917,288.89621 C 232.28917,289.24452 232.29568,289.44634 232.3087,289.50168 C 232.32172,289.55702 232.3738,289.63189 232.46495,289.72629 C 232.55935,289.82069 232.65375,289.91021 232.74815,289.99484 C 232.96625,290.24224 233.18923,290.48963 233.4171,290.73703 C 233.67751,290.97792 233.97374,291.09836 234.30577,291.09836 C 234.81358,291.09836 235.27582,290.96327 235.69249,290.69308 C 236.10915,290.4229 236.41351,290.05995 236.60558,289.60422 C 236.63812,289.67258 236.64789,289.99322 236.63487,290.56613 C 236.62836,290.72564 236.64301,290.98931 236.67882,291.35715 C 236.71137,291.75754 236.72764,292.03097 236.72765,292.17746 C 236.72764,292.41834 236.55349,292.62179 236.20518,292.78781 C 235.48578,293.13286 234.83311,293.30539 234.24718,293.30539 C 234.11371,293.33794 233.98676,293.44048 233.86632,293.61301 C 233.74587,293.78879 233.63194,293.89946 233.52452,293.94504 C 233.67426,293.98084 234.22764,293.99875 235.18468,293.99875 C 235.74457,293.99875 236.23448,293.87505 236.6544,293.62766 C 237.12315,293.3477 237.39659,292.96359 237.47472,292.47531 C 237.58864,291.79497 237.64561,290.63612 237.64561,288.99875 C 237.64561,288.88482 237.65049,288.68462 237.66026,288.39816 C 237.67002,288.11171 237.67491,287.89035 237.67491,287.7341 C 237.67491,287.22304 237.62933,286.83404 237.53819,286.56711 C 237.51215,286.48573 237.44867,286.39621 237.34776,286.29855 C 237.20778,286.15207 237.12803,286.06744 237.10851,286.04465 L 236.92784,286.04465 C 236.8725,286.33111 236.78624,286.58827 236.66905,286.81613 C 236.30772,286.65663 235.94639,286.49713 235.58507,286.33762 C 235.16514,286.16509 234.80544,286.07883 234.50597,286.07883 M 234.59874,290.19504 C 233.55056,289.77512 233.02647,289.22824 233.02647,288.55441 C 233.02647,288.12147 233.15017,287.74387 233.39757,287.4216 C 233.64496,287.09934 233.96397,286.93821 234.3546,286.9382 C 234.7973,286.93821 235.19932,287.12864 235.56065,287.50949 C 235.92523,287.8871 236.10752,288.30214 236.10753,288.75461 C 236.10752,288.96294 236.02452,289.1843 235.85851,289.41867 C 235.71853,289.61724 235.56391,289.76047 235.39464,289.84836 C 235.27094,289.93951 235.10167,290.0453 234.88683,290.16574 C 234.84125,290.18527 234.74522,290.19504 234.59874,290.19504 M 238.60753,290.82492 C 238.6531,290.63286 238.68891,290.35292 238.71495,289.98508 C 238.74099,289.52609 238.76215,289.2494 238.77843,289.155 C 238.93142,288.00266 239.00792,287.22629 239.00792,286.8259 C 239.00792,285.99257 238.93142,285.23248 238.77843,284.54562 C 238.75564,284.27219 238.69867,283.87506 238.60753,283.35422 C 238.9005,283.51699 239.1365,283.76438 239.31554,284.09641 C 239.42947,284.31126 239.54991,284.63515 239.67686,285.06808 C 239.77126,285.3871 239.84451,285.78912 239.89659,286.27414 C 239.93565,286.68756 239.97471,287.10097 240.01378,287.51437 C 240.30349,287.18235 240.52159,286.95285 240.66808,286.8259 C 240.94802,286.59153 241.23122,286.47434 241.51768,286.47433 C 242.33148,286.47434 242.89138,286.90891 243.19737,287.77805 C 243.45778,288.51047 243.58799,289.31288 243.588,290.18527 C 243.58799,290.42616 243.56032,290.68983 243.50499,290.97629 C 243.44639,290.97629 243.38454,290.97954 243.31944,290.98605 C 243.25759,290.99256 243.20388,290.99582 243.15831,290.99582 C 243.01182,290.99582 242.90928,290.96164 242.85069,290.89328 C 242.79535,290.82167 242.76443,290.72564 242.75792,290.60519 C 242.75791,290.50754 242.75791,290.40825 242.75792,290.30734 C 242.72862,290.13482 242.67165,289.93788 242.58702,289.71652 C 242.49913,289.52447 242.41286,289.32753 242.32823,289.1257 C 242.19476,288.80669 242.06456,288.48443 241.93761,288.15891 C 241.74229,287.82362 241.48187,287.65598 241.15636,287.65598 C 241.09776,287.65598 241.04079,287.69341 240.98546,287.76828 C 240.91384,287.87896 240.87152,287.93755 240.85851,287.94406 C 240.55577,288.2175 240.34581,288.46164 240.22862,288.67648 C 240.07237,288.94341 239.99425,289.24615 239.99425,289.58469 C 239.99425,290.05344 239.98774,290.33339 239.97472,290.42453 C 239.91612,290.79237 239.76638,290.97629 239.5255,290.97629 C 239.44086,290.97629 239.31391,290.93885 239.14464,290.86398 C 238.97862,290.78586 238.86306,290.7468 238.79796,290.7468 C 238.72309,290.7468 238.65961,290.77284 238.60753,290.82492 M 248.92003,286.07883 C 248.23318,286.07883 247.67979,286.37831 247.25987,286.97726 C 246.88878,287.51763 246.70323,288.15728 246.70323,288.89621 C 246.70323,289.24452 246.70974,289.44634 246.72276,289.50168 C 246.73578,289.55702 246.78787,289.63189 246.87901,289.72629 C 246.97341,289.82069 247.06781,289.91021 247.16222,289.99484 C 247.38031,290.24224 247.6033,290.48963 247.83116,290.73703 C 248.09158,290.97792 248.3878,291.09836 248.71983,291.09836 C 249.22764,291.09836 249.68988,290.96327 250.10655,290.69308 C 250.52322,290.4229 250.82758,290.05995 251.01964,289.60422 C 251.05219,289.67258 251.06195,289.99322 251.04893,290.56613 C 251.04242,290.72564 251.05707,290.98931 251.09288,291.35715 C 251.12543,291.75754 251.1417,292.03097 251.14171,292.17746 C 251.1417,292.41834 250.96755,292.62179 250.61925,292.78781 C 249.89984,293.13286 249.24717,293.30539 248.66124,293.30539 C 248.52777,293.33794 248.40082,293.44048 248.28038,293.61301 C 248.15994,293.78879 248.046,293.89946 247.93858,293.94504 C 248.08832,293.98084 248.64171,293.99875 249.59874,293.99875 C 250.15863,293.99875 250.64854,293.87505 251.06847,293.62766 C 251.53721,293.3477 251.81065,292.96359 251.88878,292.47531 C 252.00271,291.79497 252.05967,290.63612 252.05968,288.99875 C 252.05967,288.88482 252.06455,288.68462 252.07433,288.39816 C 252.08409,288.11171 252.08897,287.89035 252.08897,287.7341 C 252.08897,287.22304 252.0434,286.83404 251.95226,286.56711 C 251.92621,286.48573 251.86273,286.39621 251.76183,286.29855 C 251.62185,286.15207 251.54209,286.06744 251.52257,286.04465 L 251.3419,286.04465 C 251.28656,286.33111 251.2003,286.58827 251.08311,286.81613 C 250.72178,286.65663 250.36045,286.49713 249.99913,286.33762 C 249.57921,286.16509 249.21951,286.07883 248.92003,286.07883 M 249.0128,290.19504 C 247.96462,289.77512 247.44054,289.22824 247.44054,288.55441 C 247.44054,288.12147 247.56423,287.74387 247.81163,287.4216 C 248.05902,287.09934 248.37803,286.93821 248.76866,286.9382 C 249.21137,286.93821 249.61339,287.12864 249.97472,287.50949 C 250.3393,287.8871 250.52159,288.30214 250.52159,288.75461 C 250.52159,288.96294 250.43858,289.1843 250.27257,289.41867 C 250.13259,289.61724 249.97797,289.76047 249.8087,289.84836 C 249.685,289.93951 249.51573,290.0453 249.30089,290.16574 C 249.25531,290.18527 249.15928,290.19504 249.0128,290.19504 M 253.17784,289.1257 C 253.17784,289.13872 253.18598,288.9662 253.20226,288.60812 C 253.20877,288.41281 253.19737,288.24843 253.16808,288.11496 C 253.06391,287.81548 252.93858,287.36627 252.7921,286.7673 C 252.76931,286.64035 252.76931,286.49713 252.7921,286.33762 C 252.81163,286.11627 252.8214,285.96978 252.8214,285.89816 C 252.92882,285.93723 253.06879,286.02675 253.24132,286.16672 C 253.42035,286.32623 253.5408,286.4662 253.60265,286.58664 C 253.62869,286.64524 253.65147,286.70546 253.67101,286.7673 C 253.71007,286.86822 253.74913,286.91867 253.78819,286.91867 C 253.96397,286.91867 254.14138,286.86171 254.32042,286.74777 C 254.46039,286.64687 254.60362,286.54595 254.75011,286.44504 C 254.95844,286.31809 255.34255,286.25461 255.90245,286.25461 C 257.16872,286.25461 257.99392,286.63222 258.37804,287.38742 C 258.03949,287.22141 257.56097,287.1384 256.94249,287.1384 C 256.6072,287.1384 256.26378,287.21164 255.91222,287.35812 C 255.76573,287.41672 255.47439,287.56321 255.03819,287.79758 C 254.8852,287.86919 254.72895,287.94569 254.56944,288.02707 C 254.3904,288.12798 254.2781,288.23378 254.23253,288.34445 C 254.20323,288.41281 254.18533,288.48606 254.17882,288.56418 C 254.17882,288.61952 254.18207,288.69927 254.18858,288.80344 C 254.19509,288.90435 254.19835,288.97596 254.19835,289.01828 C 254.19835,289.24289 254.19509,289.57981 254.18858,290.02902 C 254.18207,290.47499 254.17882,290.80702 254.17882,291.02512 C 253.98676,291.07394 253.78005,291.09836 253.5587,291.09836 C 253.23318,291.09836 253.06391,291.03814 253.05089,290.91769 C 253.03787,290.81678 253.05089,290.71913 253.08995,290.62473 C 253.13552,290.49777 253.16156,290.40988 253.16808,290.36105 C 253.17459,290.31223 253.17784,289.90044 253.17784,289.1257 M 264.96495,290.99582 C 264.72406,290.96978 264.42784,290.88026 264.07628,290.72726 C 263.66937,290.55474 263.46918,290.39849 263.47569,290.25851 C 262.70746,290.78911 262.00759,291.05441 261.37608,291.05441 C 260.53624,291.05441 259.83962,290.69797 259.28624,289.98508 C 258.76541,289.31776 258.50499,288.52512 258.50499,287.60715 C 258.50499,286.45481 258.99164,285.87864 259.96495,285.87863 C 260.54438,285.87864 261.06846,285.95188 261.53722,286.09836 C 261.65115,286.13092 261.87413,286.24973 262.20616,286.4548 C 262.48611,286.63059 262.70909,286.71848 262.87511,286.71848 C 262.90114,286.71848 263.00531,286.6078 263.18761,286.38644 C 263.26573,286.26601 263.38942,286.13417 263.5587,285.99094 C 263.73122,285.84771 263.84027,285.75006 263.88585,285.69797 C 263.8598,286.15696 263.8891,286.63059 263.97374,287.11887 C 264.06162,287.5453 264.15277,287.97499 264.24718,288.40793 C 264.43923,289.3259 264.67849,290.18853 264.96495,290.99582 M 262.92393,288.75461 C 262.78396,288.54302 262.55446,288.19634 262.23546,287.71457 C 262.09548,287.52252 261.87575,287.35976 261.57628,287.22629 C 261.31586,287.12538 261.05219,287.02935 260.78526,286.9382 C 260.63878,286.86985 260.49229,286.80312 260.34581,286.73801 C 260.17979,286.65663 260.03331,286.61594 259.90636,286.61594 C 259.45388,286.61594 259.22764,286.92356 259.22765,287.53879 C 259.22764,287.5453 259.22764,287.53391 259.22765,287.50461 C 259.23416,287.48508 259.23741,287.47857 259.23741,287.48508 C 259.24392,288.11985 259.4197,288.66346 259.76476,289.11594 C 260.15212,289.61073 260.6518,289.85813 261.26378,289.85812 C 261.28656,289.85813 261.26703,289.85487 261.20518,289.84836 C 261.14659,289.84836 261.1238,289.84836 261.13683,289.84836 C 261.16937,289.84836 261.32562,289.85161 261.60558,289.85812 C 261.80414,289.86464 261.96364,289.86464 262.08409,289.85812 C 262.25336,289.8451 262.39659,289.81418 262.51378,289.76535 C 262.76768,289.6677 262.97113,289.53098 263.12413,289.35519 C 263.21853,289.25754 263.26573,289.19406 263.26573,289.16476 C 263.25922,289.15826 263.25108,289.155 263.24132,289.155 C 263.23155,289.155 263.12575,289.02154 262.92393,288.75461 M 265.79991,286.18625 C 265.9822,286.19276 266.22634,286.24322 266.53233,286.33762 C 266.81228,286.42226 267.05154,286.46457 267.25011,286.46457 C 267.39008,286.46457 267.56912,286.43853 267.78722,286.38644 C 268.00531,286.33437 268.17296,286.30832 268.29015,286.30832 C 268.78493,286.30832 269.39203,286.57362 270.11143,287.10422 C 270.5932,287.45904 270.93988,287.78619 271.15147,288.08566 C 271.43793,288.47955 271.58116,288.92388 271.58116,289.41867 C 271.58116,289.36333 271.58767,289.43332 271.60069,289.62863 C 271.6072,289.70676 271.59092,289.76861 271.55186,289.81418 C 271.49978,289.88254 271.41351,289.94276 271.29308,289.99484 C 271.14659,290.06971 271.04893,290.12342 271.00011,290.15598 C 270.68109,290.39686 270.48252,290.54009 270.4044,290.58566 C 270.18304,290.70611 269.95193,290.76633 269.71104,290.76633 C 269.48643,290.76633 269.16905,290.74354 268.7589,290.69797 C 268.34874,290.64914 268.02647,290.62473 267.7921,290.62473 C 267.21267,290.62473 266.8725,290.68169 266.77159,290.79562 C 266.73253,290.83469 266.71625,290.92095 266.72276,291.05441 C 266.72927,291.15532 266.73416,291.25135 266.73741,291.3425 C 266.74067,291.4369 266.7488,291.63872 266.76183,291.94797 C 266.76833,292.1856 266.77159,292.37765 266.77159,292.52414 C 266.77159,292.80409 266.68533,293.05962 266.5128,293.29074 C 266.34028,293.52186 266.11404,293.66997 265.83409,293.73508 L 265.79991,286.18625 M 266.8546,288.00754 C 266.8546,288.58046 267.04014,289.14686 267.41124,289.70676 C 267.70421,289.56027 268.19411,289.47076 268.88097,289.4382 C 269.78265,289.38938 270.31,289.35194 270.463,289.3259 C 270.43695,289.05246 270.30349,288.80995 270.06261,288.59836 C 269.83474,288.42909 269.60525,288.25819 269.37413,288.08566 C 269.01931,287.7927 268.80609,287.62668 268.73448,287.58762 C 268.5001,287.44765 268.22667,287.37766 267.91417,287.37766 C 267.20779,287.37766 266.8546,287.58762 266.8546,288.00754 M 272.24034,290.82492 C 272.28591,290.63286 272.32172,290.35292 272.34776,289.98508 C 272.3738,289.52609 272.39496,289.2494 272.41124,289.155 C 272.56423,288.00266 272.64073,287.22629 272.64073,286.8259 C 272.64073,285.99257 272.56423,285.23248 272.41124,284.54562 C 272.38845,284.27219 272.33149,283.87506 272.24034,283.35422 C 272.53331,283.51699 272.76931,283.76438 272.94835,284.09641 C 273.06228,284.31126 273.18272,284.63515 273.30968,285.06808 C 273.40408,285.3871 273.47732,285.78912 273.5294,286.27414 C 273.56846,286.68756 273.60753,287.10097 273.64659,287.51437 C 273.9363,287.18235 274.1544,286.95285 274.30089,286.8259 C 274.58083,286.59153 274.86404,286.47434 275.1505,286.47433 C 275.9643,286.47434 276.52419,286.90891 276.83018,287.77805 C 277.0906,288.51047 277.2208,289.31288 277.22081,290.18527 C 277.2208,290.42616 277.19314,290.68983 277.1378,290.97629 C 277.0792,290.97629 277.01735,290.97954 276.95226,290.98605 C 276.8904,290.99256 276.83669,290.99582 276.79112,290.99582 C 276.64463,290.99582 276.54209,290.96164 276.48351,290.89328 C 276.42816,290.82167 276.39724,290.72564 276.39073,290.60519 C 276.39073,290.50754 276.39073,290.40825 276.39073,290.30734 C 276.36143,290.13482 276.30446,289.93788 276.21983,289.71652 C 276.13194,289.52447 276.04568,289.32753 275.96104,289.1257 C 275.82758,288.80669 275.69737,288.48443 275.57042,288.15891 C 275.3751,287.82362 275.11469,287.65598 274.78917,287.65598 C 274.73057,287.65598 274.67361,287.69341 274.61827,287.76828 C 274.54665,287.87896 274.50434,287.93755 274.49132,287.94406 C 274.18858,288.2175 273.97862,288.46164 273.86143,288.67648 C 273.70518,288.94341 273.62706,289.24615 273.62706,289.58469 C 273.62706,290.05344 273.62055,290.33339 273.60753,290.42453 C 273.54893,290.79237 273.39919,290.97629 273.15831,290.97629 C 273.07367,290.97629 272.94672,290.93885 272.77745,290.86398 C 272.61143,290.78586 272.49587,290.7468 272.43077,290.7468 C 272.3559,290.7468 272.29242,290.77284 272.24034,290.82492 M 282.1378,286.09836 C 281.796,285.97141 281.45258,285.84771 281.10753,285.72726 C 280.73318,285.60032 280.36697,285.53684 280.0089,285.53683 C 279.39366,285.53684 278.85981,285.66054 278.40733,285.90793 C 277.86046,286.2009 277.58702,286.61431 277.58702,287.14816 C 277.58702,287.59413 277.72862,287.95057 278.01183,288.2175 C 278.29503,288.48443 278.64985,288.61789 279.07628,288.61789 C 279.38227,288.61789 279.76801,288.52186 280.23351,288.3298 C 280.70225,288.13449 281.09288,288.03684 281.40538,288.03683 C 281.71462,288.03684 281.86924,288.16705 281.86925,288.42746 C 281.86924,288.96783 281.30446,289.26731 280.17491,289.3259 C 279.81684,289.34543 279.62478,289.3552 279.59874,289.35519 C 279.1658,289.3552 278.70518,289.25917 278.2169,289.06711 C 278.12901,289.03456 278.04275,288.97759 277.95811,288.89621 C 277.88324,288.83762 277.80024,288.79693 277.70909,288.77414 C 277.77419,288.89458 277.86697,289.09803 277.98741,289.38449 C 278.046,289.62538 278.10297,289.86626 278.15831,290.10715 C 278.22992,290.40012 278.34548,290.60357 278.50499,290.7175 C 278.75889,290.90305 279.1658,290.99582 279.72569,290.99582 C 280.42556,290.99582 281.1531,290.81678 281.90831,290.45871 C 282.21429,290.30897 282.45355,290.01763 282.62608,289.58469 C 282.77256,289.2201 282.8458,288.84087 282.84581,288.44699 C 282.8458,287.90663 282.63259,287.57297 282.20616,287.44601 C 282.04014,287.40045 281.58116,287.37766 280.82921,287.37766 C 280.65342,287.37766 280.37999,287.40858 280.0089,287.47043 C 279.64106,287.52903 279.37087,287.55832 279.19835,287.55832 C 279.03884,287.55832 278.89561,287.54042 278.76866,287.50461 C 278.78819,287.20513 279.00466,286.96588 279.41808,286.78683 C 279.74359,286.64687 280.08376,286.57688 280.43858,286.57687 C 281.42491,286.57688 282.25173,286.90077 282.91905,287.54855 L 282.91905,286.90891 C 282.82465,286.57362 282.64073,286.30344 282.36729,286.09836 C 282.35427,286.06256 282.33474,286.01861 282.3087,285.96652 C 282.28916,286.06744 282.25824,286.11789 282.21593,286.11789 C 282.19639,286.11789 282.17035,286.11138 282.1378,286.09836 M 126.19054,299.76535 C 126.81228,299.76535 127.31358,299.69211 127.69444,299.54562 C 128.15342,299.36659 128.38291,299.09641 128.38292,298.73508 C 128.38291,298.29563 128.1404,297.91314 127.65538,297.58762 C 127.17361,297.25885 126.61859,297.09446 125.99034,297.09445 C 125.9057,297.09446 125.80642,297.15956 125.69249,297.28976 C 125.57856,297.41998 125.52159,297.51601 125.52159,297.57785 C 125.52159,297.80898 125.65668,298.1345 125.92686,298.55441 C 126.19704,298.97434 126.33214,299.27545 126.33214,299.45773 C 126.33214,299.66933 126.20518,299.85162 125.95128,300.00461 L 126.19054,299.76535 M 124.1837,303.3884 C 124.21625,303.26795 124.28298,303.14426 124.3839,303.0173 C 124.53038,302.8285 124.61664,302.71457 124.64268,302.67551 C 124.83474,302.34348 124.95518,301.9203 125.00401,301.40598 C 125.01052,301.29856 125.01378,300.84934 125.01378,300.05832 C 125.01378,299.64491 124.97309,299.22825 124.89171,298.80832 C 124.87218,298.69439 124.78917,298.30702 124.64268,297.64621 C 124.62315,297.41835 124.56619,297.06191 124.47179,296.57687 L 124.47179,295.94699 C 125.08702,296.07395 125.70388,296.19765 126.32237,296.31808 C 127.0613,296.47109 127.65049,296.62734 128.08995,296.78683 C 129.77289,297.3858 130.61436,298.15891 130.61436,299.10617 C 130.61436,299.65956 130.34092,300.04693 129.79405,300.26828 C 129.4197,300.41477 128.79307,300.5108 127.91417,300.55637 C 128.47406,300.52382 128.97699,300.65077 129.42296,300.93723 C 129.86892,301.22369 130.0919,301.57037 130.0919,301.97726 C 130.0919,302.32232 129.88845,302.57134 129.48155,302.72433 C 129.18207,302.83827 128.72959,302.90825 128.12413,302.9343 C 127.66189,302.95708 127.20128,302.97824 126.74229,302.99777 C 125.94802,303.06288 125.04145,303.24191 124.02257,303.53488 L 124.1837,303.3884 M 128.58311,301.84543 C 128.58311,301.71197 128.50336,301.60617 128.34386,301.52805 C 128.21039,301.4662 128.07693,301.40923 127.94347,301.35715 C 127.77094,301.23671 127.60004,301.11789 127.43077,301.0007 C 127.26475,300.88352 127.03852,300.82492 126.75206,300.82492 C 126.49815,300.82492 126.33376,300.83794 126.2589,300.86398 C 126.18728,300.88677 126.14496,300.94374 126.13194,301.03488 C 126.11241,301.18137 126.09613,301.3246 126.08311,301.46457 C 125.95616,302.22629 125.62576,302.70643 125.0919,302.905 C 125.21235,302.87245 125.44184,302.77642 125.78038,302.61691 C 126.02777,302.49647 126.31911,302.41346 126.6544,302.36789 C 126.9669,302.29953 127.47634,302.19862 128.18272,302.06516 C 128.44965,302.02609 128.58311,301.95285 128.58311,301.84543 M 137.6505,303.49582 C 137.40961,303.46978 137.11338,303.38026 136.76183,303.22726 C 136.35492,303.05474 136.15472,302.89849 136.16124,302.75851 C 135.39301,303.28911 134.69314,303.55441 134.06163,303.55441 C 133.22178,303.55441 132.52517,303.19797 131.97179,302.48508 C 131.45095,301.81776 131.19054,301.02512 131.19054,300.10715 C 131.19054,298.95481 131.67719,298.37864 132.6505,298.37863 C 133.22992,298.37864 133.75401,298.45188 134.22276,298.59836 C 134.33669,298.63092 134.55967,298.74973 134.89171,298.9548 C 135.17165,299.13059 135.39463,299.21848 135.56065,299.21848 C 135.58669,299.21848 135.69086,299.1078 135.87315,298.88644 C 135.95127,298.76601 136.07497,298.63417 136.24425,298.49094 C 136.41677,298.34771 136.52582,298.25006 136.5714,298.19797 C 136.54535,298.65696 136.57465,299.13059 136.65929,299.61887 C 136.74717,300.0453 136.83832,300.47499 136.93272,300.90793 C 137.12478,301.8259 137.36403,302.68853 137.6505,303.49582 M 135.60948,301.25461 C 135.4695,301.04302 135.24001,300.69634 134.92101,300.21457 C 134.78103,300.02252 134.5613,299.85976 134.26183,299.72629 C 134.00141,299.62538 133.73773,299.52935 133.47081,299.4382 C 133.32432,299.36985 133.17784,299.30312 133.03136,299.23801 C 132.86534,299.15663 132.71886,299.11594 132.5919,299.11594 C 132.13943,299.11594 131.91319,299.42356 131.91319,300.03879 C 131.91319,300.0453 131.91319,300.03391 131.91319,300.00461 C 131.9197,299.98508 131.92296,299.97857 131.92296,299.98508 C 131.92947,300.61985 132.10525,301.16346 132.4503,301.61594 C 132.83767,302.11073 133.33734,302.35813 133.94933,302.35812 C 133.97211,302.35813 133.95258,302.35487 133.89073,302.34836 C 133.83214,302.34836 133.80935,302.34836 133.82237,302.34836 C 133.85492,302.34836 134.01117,302.35161 134.29112,302.35812 C 134.48969,302.36464 134.64919,302.36464 134.76964,302.35812 C 134.9389,302.3451 135.08213,302.31418 135.19933,302.26535 C 135.45323,302.1677 135.65668,302.03098 135.80968,301.85519 C 135.90407,301.75754 135.95127,301.69406 135.95128,301.66476 C 135.94476,301.65826 135.93663,301.655 135.92686,301.655 C 135.91709,301.655 135.8113,301.52154 135.60948,301.25461 M 142.9044,298.97433 C 142.36403,298.66184 141.9376,298.44537 141.62511,298.32492 C 141.15635,298.14589 140.68598,298.05637 140.21397,298.05637 C 139.01931,298.05637 138.23318,298.47629 137.85558,299.31613 C 137.81977,299.39101 137.79861,299.47076 137.7921,299.55539 C 137.78559,299.61724 137.78559,299.69699 137.7921,299.79465 C 137.7921,299.91509 137.7921,300.00624 137.7921,300.06808 C 137.78559,300.20806 137.76443,300.40012 137.72862,300.64426 C 137.69281,300.88514 137.67491,301.08534 137.67491,301.24484 C 137.67491,302.14654 138.06065,302.76014 138.83214,303.08566 C 139.34646,303.30702 140.14073,303.41769 141.21495,303.41769 C 142.20778,303.41769 142.84743,303.12798 143.1339,302.54855 C 143.22178,302.37277 143.29502,302.15142 143.35362,301.88449 C 143.42849,301.57199 143.48871,301.35878 143.53429,301.24484 C 143.34873,301.35878 143.16156,301.51665 142.97276,301.71848 C 142.72862,301.97564 142.55284,302.14816 142.44542,302.23605 C 142.08409,302.52902 141.51117,302.67551 140.72667,302.67551 C 140.15701,302.67551 139.67361,302.5453 139.27647,302.28488 C 138.82074,301.99191 138.59288,301.58501 138.59288,301.06418 C 138.59288,300.56613 138.75401,300.14784 139.07628,299.8093 C 139.4018,299.4675 139.81033,299.2966 140.30186,299.2966 C 140.61111,299.2966 141.01475,299.42681 141.5128,299.68723 C 142.0141,299.94765 142.41449,300.07785 142.71397,300.07785 C 142.8279,300.07785 142.95485,300.00461 143.09483,299.85812 C 143.20876,299.73769 143.31781,299.61724 143.42198,299.4968 C 143.3764,299.45123 143.09646,299.21034 142.58214,298.77414 L 142.9044,298.97433 M 144.13976,303.47629 C 144.3546,303.04986 144.50271,302.43299 144.58409,301.6257 C 144.63617,301.14068 144.69151,300.65403 144.75011,300.16574 C 144.81195,299.59934 144.84288,299.09966 144.84288,298.66672 C 144.84288,298.2468 144.80219,297.76666 144.72081,297.22629 C 144.60037,296.43853 144.53363,295.99257 144.52061,295.8884 C 144.58246,295.92747 144.79568,296.01373 145.16026,296.14719 C 145.40766,296.23183 145.55089,296.36855 145.58995,296.55734 C 145.6518,296.81777 145.699,297.38417 145.73155,298.25656 C 145.75108,298.75787 145.76085,299.77512 145.76085,301.30832 C 146.28168,301.22043 146.80902,301.03651 147.34288,300.75656 C 147.87673,300.47662 148.29991,300.15272 148.61241,299.78488 C 148.09157,300.71262 147.45193,301.52968 146.69347,302.23605 C 147.00596,302.25559 147.29242,302.39882 147.55284,302.66574 C 147.59841,302.71131 147.79861,302.97173 148.15343,303.44699 C 147.07269,303.44699 146.32237,303.2175 145.90245,302.75851 C 145.80154,302.61203 145.62087,302.39882 145.36046,302.11887 C 145.06749,302.78944 144.66059,303.24191 144.13976,303.47629 M 153.67101,298.59836 C 153.3292,298.47141 152.98578,298.34771 152.64073,298.22726 C 152.26638,298.10032 151.90017,298.03684 151.5421,298.03683 C 150.92686,298.03684 150.39301,298.16054 149.94054,298.40793 C 149.39366,298.7009 149.12022,299.11431 149.12022,299.64816 C 149.12022,300.09413 149.26183,300.45057 149.54503,300.7175 C 149.82823,300.98443 150.18305,301.11789 150.60948,301.11789 C 150.91547,301.11789 151.30121,301.02186 151.76671,300.8298 C 152.23546,300.63449 152.62608,300.53684 152.93858,300.53683 C 153.24782,300.53684 153.40245,300.66705 153.40245,300.92746 C 153.40245,301.46783 152.83767,301.76731 151.70811,301.8259 C 151.35004,301.84543 151.15798,301.8552 151.13194,301.85519 C 150.699,301.8552 150.23839,301.75917 149.75011,301.56711 C 149.66222,301.53456 149.57595,301.47759 149.49132,301.39621 C 149.41645,301.33762 149.33344,301.29693 149.24229,301.27414 C 149.3074,301.39458 149.40017,301.59803 149.52061,301.88449 C 149.57921,302.12538 149.63617,302.36626 149.69151,302.60715 C 149.76313,302.90012 149.87869,303.10357 150.03819,303.2175 C 150.2921,303.40305 150.699,303.49582 151.2589,303.49582 C 151.95876,303.49582 152.6863,303.31678 153.44151,302.95871 C 153.7475,302.80897 153.98676,302.51763 154.15929,302.08469 C 154.30577,301.7201 154.37901,301.34087 154.37901,300.94699 C 154.37901,300.40663 154.16579,300.07297 153.73936,299.94601 C 153.57334,299.90045 153.11436,299.87766 152.36241,299.87766 C 152.18663,299.87766 151.91319,299.90858 151.5421,299.97043 C 151.17426,300.02903 150.90408,300.05832 150.73155,300.05832 C 150.57205,300.05832 150.42882,300.04042 150.30186,300.00461 C 150.32139,299.70513 150.53787,299.46588 150.95128,299.28683 C 151.2768,299.14687 151.61697,299.07688 151.97179,299.07687 C 152.95811,299.07688 153.78493,299.40077 154.45226,300.04855 L 154.45226,299.40891 C 154.35785,299.07362 154.17393,298.80344 153.9005,298.59836 C 153.88747,298.56256 153.86794,298.51861 153.8419,298.46652 C 153.82237,298.56744 153.79144,298.61789 153.74913,298.61789 C 153.72959,298.61789 153.70355,298.61138 153.67101,298.59836 M 155.2628,298.68625 C 155.44509,298.69276 155.68923,298.74322 155.99522,298.83762 C 156.27517,298.92226 156.51443,298.96457 156.713,298.96457 C 156.85297,298.96457 157.03201,298.93853 157.25011,298.88644 C 157.4682,298.83437 157.63585,298.80832 157.75304,298.80832 C 158.24782,298.80832 158.85492,299.07362 159.57433,299.60422 C 160.05609,299.95904 160.40277,300.28619 160.61436,300.58566 C 160.90082,300.97955 161.04405,301.42388 161.04405,301.91867 C 161.04405,301.86333 161.05056,301.93332 161.06358,302.12863 C 161.07009,302.20676 161.05381,302.26861 161.01476,302.31418 C 160.96267,302.38254 160.8764,302.44276 160.75597,302.49484 C 160.60948,302.56971 160.51182,302.62342 160.463,302.65598 C 160.14398,302.89686 159.94541,303.04009 159.86729,303.08566 C 159.64594,303.20611 159.41482,303.26633 159.17393,303.26633 C 158.94932,303.26633 158.63194,303.24354 158.22179,303.19797 C 157.81163,303.14914 157.48936,303.12473 157.25499,303.12473 C 156.67556,303.12473 156.33539,303.18169 156.23448,303.29562 C 156.19542,303.33469 156.17914,303.42095 156.18565,303.55441 C 156.19216,303.65532 156.19705,303.75135 156.2003,303.8425 C 156.20356,303.9369 156.21169,304.13872 156.22472,304.44797 C 156.23123,304.6856 156.23448,304.87765 156.23448,305.02414 C 156.23448,305.30409 156.14822,305.55962 155.97569,305.79074 C 155.80317,306.02186 155.57693,306.16997 155.29698,306.23508 L 155.2628,298.68625 M 156.31749,300.50754 C 156.31749,301.08046 156.50303,301.64686 156.87413,302.20676 C 157.1671,302.06027 157.65701,301.97076 158.34386,301.9382 C 159.24555,301.88938 159.77289,301.85194 159.92589,301.8259 C 159.89984,301.55246 159.76638,301.30995 159.5255,301.09836 C 159.29763,300.92909 159.06814,300.75819 158.83702,300.58566 C 158.4822,300.2927 158.26898,300.12668 158.19737,300.08762 C 157.96299,299.94765 157.68956,299.87766 157.37706,299.87766 C 156.67068,299.87766 156.31749,300.08762 156.31749,300.50754 M 168.04112,303.49582 C 167.80023,303.46978 167.50401,303.38026 167.15245,303.22726 C 166.74554,303.05474 166.54535,302.89849 166.55186,302.75851 C 165.78363,303.28911 165.08376,303.55441 164.45226,303.55441 C 163.61241,303.55441 162.9158,303.19797 162.36241,302.48508 C 161.84158,301.81776 161.58116,301.02512 161.58116,300.10715 C 161.58116,298.95481 162.06781,298.37864 163.04112,298.37863 C 163.62055,298.37864 164.14464,298.45188 164.61339,298.59836 C 164.72732,298.63092 164.9503,298.74973 165.28233,298.9548 C 165.56228,299.13059 165.78526,299.21848 165.95128,299.21848 C 165.97732,299.21848 166.08148,299.1078 166.26378,298.88644 C 166.3419,298.76601 166.4656,298.63417 166.63487,298.49094 C 166.80739,298.34771 166.91644,298.25006 166.96202,298.19797 C 166.93597,298.65696 166.96527,299.13059 167.04991,299.61887 C 167.1378,300.0453 167.22894,300.47499 167.32335,300.90793 C 167.5154,301.8259 167.75466,302.68853 168.04112,303.49582 M 166.00011,301.25461 C 165.86013,301.04302 165.63064,300.69634 165.31163,300.21457 C 165.17165,300.02252 164.95193,299.85976 164.65245,299.72629 C 164.39203,299.62538 164.12836,299.52935 163.86143,299.4382 C 163.71495,299.36985 163.56846,299.30312 163.42198,299.23801 C 163.25596,299.15663 163.10948,299.11594 162.98253,299.11594 C 162.53005,299.11594 162.30382,299.42356 162.30382,300.03879 C 162.30382,300.0453 162.30382,300.03391 162.30382,300.00461 C 162.31033,299.98508 162.31358,299.97857 162.31358,299.98508 C 162.32009,300.61985 162.49587,301.16346 162.84093,301.61594 C 163.2283,302.11073 163.72797,302.35813 164.33995,302.35812 C 164.36273,302.35813 164.3432,302.35487 164.28136,302.34836 C 164.22276,302.34836 164.19997,302.34836 164.213,302.34836 C 164.24555,302.34836 164.4018,302.35161 164.68175,302.35812 C 164.88031,302.36464 165.03982,302.36464 165.16026,302.35812 C 165.32953,302.3451 165.47276,302.31418 165.58995,302.26535 C 165.84385,302.1677 166.0473,302.03098 166.2003,301.85519 C 166.2947,301.75754 166.3419,301.69406 166.3419,301.66476 C 166.33539,301.65826 166.32725,301.655 166.31749,301.655 C 166.30772,301.655 166.20192,301.52154 166.00011,301.25461 M 173.29503,298.97433 C 172.75466,298.66184 172.32823,298.44537 172.01573,298.32492 C 171.54698,298.14589 171.0766,298.05637 170.6046,298.05637 C 169.40994,298.05637 168.6238,298.47629 168.2462,299.31613 C 168.21039,299.39101 168.18923,299.47076 168.18272,299.55539 C 168.17621,299.61724 168.17621,299.69699 168.18272,299.79465 C 168.18272,299.91509 168.18272,300.00624 168.18272,300.06808 C 168.17621,300.20806 168.15505,300.40012 168.11925,300.64426 C 168.08344,300.88514 168.06554,301.08534 168.06554,301.24484 C 168.06554,302.14654 168.45128,302.76014 169.22276,303.08566 C 169.73708,303.30702 170.53135,303.41769 171.60558,303.41769 C 172.59841,303.41769 173.23806,303.12798 173.52452,302.54855 C 173.61241,302.37277 173.68565,302.15142 173.74425,301.88449 C 173.81911,301.57199 173.87933,301.35878 173.92491,301.24484 C 173.73936,301.35878 173.55218,301.51665 173.36339,301.71848 C 173.11924,301.97564 172.94346,302.14816 172.83604,302.23605 C 172.47471,302.52902 171.9018,302.67551 171.11729,302.67551 C 170.54763,302.67551 170.06423,302.5453 169.6671,302.28488 C 169.21137,301.99191 168.9835,301.58501 168.98351,301.06418 C 168.9835,300.56613 169.14464,300.14784 169.4669,299.8093 C 169.79242,299.4675 170.20095,299.2966 170.69249,299.2966 C 171.00173,299.2966 171.40538,299.42681 171.90343,299.68723 C 172.40472,299.94765 172.80511,300.07785 173.1046,300.07785 C 173.21853,300.07785 173.34548,300.00461 173.48546,299.85812 C 173.59938,299.73769 173.70843,299.61724 173.81261,299.4968 C 173.76703,299.45123 173.48708,299.21034 172.97276,298.77414 L 173.29503,298.97433 M 179.05186,299.91672 C 179.05186,299.89068 179.03233,299.83209 178.99327,299.74094 C 178.9542,299.64979 178.92002,299.59446 178.89073,299.57492 C 178.82562,299.52935 178.70355,299.50657 178.52452,299.50656 C 178.42361,299.50657 178.28038,299.5147 178.09483,299.53098 C 177.91254,299.54726 177.79861,299.55539 177.75304,299.55539 C 177.74652,299.55539 177.58376,299.54888 177.26476,299.53586 C 177.06944,299.52935 176.89854,299.53586 176.75206,299.55539 C 176.63161,299.56841 176.47536,299.65468 176.28331,299.81418 C 176.04242,300.00949 175.89268,300.12343 175.83409,300.15598 C 176.16612,300.23736 176.49815,300.31711 176.83018,300.39523 C 177.21755,300.48964 177.56423,300.53684 177.87022,300.53683 C 178.12413,300.53684 178.37152,300.48638 178.61241,300.38547 C 178.90538,300.26503 179.05186,300.10878 179.05186,299.91672 M 179.64268,299.00851 C 179.66221,299.14849 179.73871,299.37798 179.87218,299.69699 C 179.97959,299.97694 180.0333,300.22271 180.03331,300.4343 C 180.0333,300.81516 179.78265,301.06255 179.28136,301.17648 C 179.05023,301.22857 178.63357,301.25461 178.03136,301.25461 C 177.81325,301.25461 177.49587,301.19927 177.07921,301.08859 C 176.66254,300.97466 176.34678,300.9177 176.13194,300.91769 C 175.79991,300.9177 175.63389,301.04139 175.6339,301.28879 C 175.63389,301.73475 175.87315,302.08143 176.35167,302.32883 C 176.73904,302.52089 177.19639,302.61691 177.72374,302.61691 C 177.98415,302.61691 178.28689,302.57622 178.63194,302.49484 C 179.03884,302.4037 179.3253,302.28814 179.49132,302.14816 C 179.57269,302.07981 179.6736,301.95122 179.79405,301.76242 C 179.91449,301.57037 180.00726,301.43853 180.07237,301.36691 L 180.10167,302.02609 C 180.02354,302.3744 179.86078,302.62831 179.61339,302.78781 C 179.47341,302.87896 179.1837,302.99126 178.74425,303.12473 C 177.93044,303.37212 177.2973,303.49582 176.84483,303.49582 C 176.28168,303.49582 175.77387,303.29888 175.3214,302.905 C 174.84939,302.4981 174.61339,302.02121 174.61339,301.47433 C 174.61339,300.2634 174.61013,300.00461 174.60362,300.69797 C 174.60362,300.37571 174.62966,300.12831 174.68175,299.95578 C 174.82172,299.47076 175.11143,299.10129 175.55089,298.84738 C 175.95779,298.61301 176.44444,298.49582 177.01085,298.49582 C 177.71723,298.49582 178.36501,298.56907 178.95421,298.71555 C 179.09418,298.7481 179.24717,298.82134 179.41319,298.93527 C 179.65407,299.08176 179.80707,299.17291 179.87218,299.20871 L 179.64268,299.00851 M 185.69737,303.58859 C 185.51182,303.5007 185.36208,303.33306 185.24815,303.08566 C 185.16352,302.84478 185.074,302.60878 184.9796,302.37766 C 184.83962,302.03586 184.75662,301.82915 184.73058,301.75754 C 184.6557,301.54921 184.61176,301.33274 184.59874,301.10812 C 184.58572,300.88026 184.61176,300.63287 184.67686,300.36594 C 184.79731,299.91998 184.85753,299.69374 184.85753,299.68723 L 183.61729,299.68723 C 183.68565,299.39426 183.84028,299.19407 184.08116,299.08664 C 184.14627,299.0606 184.27647,299.04595 184.47179,299.04269 C 184.67035,299.03944 184.80544,299.0248 184.87706,298.99875 C 185.01052,298.94993 185.08051,298.85552 185.08702,298.71555 C 185.08702,298.70253 185.08051,298.60976 185.06749,298.43723 C 185.05447,298.2647 185.04796,298.12148 185.04796,298.00754 C 185.04796,297.77317 185.07888,297.65598 185.14073,297.65598 C 185.64529,297.65598 186.00499,297.65273 186.21983,297.64621 C 186.25889,297.76666 186.27842,297.89687 186.27843,298.03683 C 186.27842,298.13124 186.2654,298.26796 186.23936,298.44699 C 186.21332,298.62603 186.2003,298.76275 186.2003,298.85715 C 186.2003,298.93528 186.20681,299.01177 186.21983,299.08664 C 186.34027,299.05409 186.5307,299.00689 186.79112,298.94504 L 189.18858,298.94504 C 188.34873,299.42681 187.54958,299.6677 186.79112,299.66769 C 186.23122,299.6677 185.95128,299.84999 185.95128,300.21457 C 185.95128,300.30897 185.97406,300.42616 186.01964,300.56613 C 186.08474,300.74517 186.12055,300.8591 186.12706,300.90793 C 186.16938,301.09999 186.20355,301.33599 186.2296,301.61594 C 186.26866,302.02935 186.29145,302.27349 186.29796,302.34836 C 186.31098,302.44602 186.35492,302.58762 186.42979,302.77316 C 186.50792,302.95546 186.54698,303.11008 186.54698,303.23703 C 186.54698,303.44862 186.19704,303.55441 185.49718,303.55441 L 185.69737,303.58859 M 193.78331,300.84445 C 193.78331,300.38547 193.57985,300.00624 193.17296,299.70676 C 192.7921,299.43332 192.35101,299.2966 191.84972,299.2966 L 191.98155,299.2966 C 190.99522,299.26405 190.50206,299.69374 190.50206,300.58566 C 190.50206,301.06744 190.68435,301.50363 191.04893,301.89426 C 191.36469,302.22954 191.76182,302.48671 192.24034,302.66574 C 192.25336,302.67225 192.23383,302.69178 192.18175,302.72433 C 192.30219,302.61366 192.49587,302.44113 192.7628,302.20676 C 193.44314,301.6729 193.78331,301.2188 193.78331,300.84445 M 192.33311,303.52512 C 192.15082,303.43397 191.89854,303.33631 191.57628,303.23215 C 191.25401,303.12798 191.00499,303.02544 190.82921,302.92453 C 189.68988,302.26698 189.12022,301.4483 189.12022,300.46848 C 189.12022,300.15272 189.16742,299.85813 189.26183,299.58469 C 189.38227,299.25917 189.54828,299.02642 189.75987,298.88644 C 190.10167,298.67161 190.58181,298.53814 191.2003,298.48605 C 191.41514,298.46653 191.93923,298.45676 192.77257,298.45676 C 193.55707,298.45676 194.13649,298.81321 194.51085,299.52609 C 194.7973,300.07948 194.94053,300.78261 194.94054,301.63547 C 194.94053,302.24419 194.61338,302.71783 193.95909,303.05637 C 193.42849,303.33631 192.81651,303.47629 192.12315,303.47629 L 192.33311,303.52512 M 203.93956,298.97433 C 203.39919,298.66184 202.97276,298.44537 202.66026,298.32492 C 202.19151,298.14589 201.72113,298.05637 201.24913,298.05637 C 200.05447,298.05637 199.26834,298.47629 198.89073,299.31613 C 198.85492,299.39101 198.83377,299.47076 198.82726,299.55539 C 198.82074,299.61724 198.82074,299.69699 198.82726,299.79465 C 198.82725,299.91509 198.82725,300.00624 198.82726,300.06808 C 198.82074,300.20806 198.79959,300.40012 198.76378,300.64426 C 198.72797,300.88514 198.71007,301.08534 198.71007,301.24484 C 198.71007,302.14654 199.09581,302.76014 199.86729,303.08566 C 200.38162,303.30702 201.17589,303.41769 202.25011,303.41769 C 203.24294,303.41769 203.88259,303.12798 204.16905,302.54855 C 204.25694,302.37277 204.33018,302.15142 204.38878,301.88449 C 204.46364,301.57199 204.52386,301.35878 204.56944,301.24484 C 204.38389,301.35878 204.19672,301.51665 204.00792,301.71848 C 203.76377,301.97564 203.58799,302.14816 203.48058,302.23605 C 203.11924,302.52902 202.54633,302.67551 201.76183,302.67551 C 201.19216,302.67551 200.70876,302.5453 200.31163,302.28488 C 199.8559,301.99191 199.62804,301.58501 199.62804,301.06418 C 199.62804,300.56613 199.78917,300.14784 200.11143,299.8093 C 200.43695,299.4675 200.84548,299.2966 201.33702,299.2966 C 201.64626,299.2966 202.04991,299.42681 202.54796,299.68723 C 203.04926,299.94765 203.44965,300.07785 203.74913,300.07785 C 203.86306,300.07785 203.99001,300.00461 204.12999,299.85812 C 204.24392,299.73769 204.35297,299.61724 204.45714,299.4968 C 204.41156,299.45123 204.13161,299.21034 203.61729,298.77414 L 203.93956,298.97433 M 207.51866,303.55441 C 206.97178,303.55441 206.53396,303.36887 206.20518,302.99777 C 205.96755,302.71783 205.76085,302.29139 205.58507,301.71848 C 205.48741,301.38319 205.39464,300.9356 205.30675,300.3757 C 205.21886,299.77675 205.13585,299.32753 205.05772,299.02805 C 205.15864,299.05409 205.25141,299.11269 205.33604,299.20383 C 205.42393,299.29172 205.50694,299.37961 205.58507,299.4675 C 205.78689,299.67258 205.98546,299.88254 206.18077,300.09738 C 206.37934,300.30897 206.52745,300.54823 206.62511,300.81516 C 206.73253,301.10162 206.8432,301.38807 206.95714,301.67453 C 207.11664,301.97076 207.35264,302.11887 207.66515,302.11887 C 208.03298,302.11887 208.35687,301.78195 208.63683,301.10812 C 208.89073,300.49289 209.01768,299.75233 209.01768,298.88644 C 209.32367,299.57981 209.55316,300.2927 209.70616,301.02512 C 209.78103,301.266 209.89821,301.63059 210.05772,302.11887 C 210.23024,302.66249 210.31651,303.41769 210.31651,304.38449 C 210.31651,305.61821 209.87705,306.23507 208.99815,306.23508 C 208.38292,306.23507 207.87185,306.01535 207.46495,305.5759 C 207.26638,305.3578 206.9669,304.88742 206.56651,304.16476 C 206.79438,304.17778 207.05479,304.33566 207.34776,304.6384 C 207.69932,304.99647 207.92881,305.20317 208.03624,305.25851 C 208.06879,305.27153 208.12901,305.32036 208.2169,305.405 C 208.28526,305.46685 208.35199,305.49777 208.4171,305.49777 C 208.57009,305.49777 208.72308,305.39686 208.87608,305.19504 C 208.99001,305.04855 209.07302,304.88905 209.12511,304.71652 L 209.12511,303.29562 C 208.9656,303.377 208.79958,303.45838 208.62706,303.53976 C 208.45453,303.61789 208.27387,303.65695 208.08507,303.65695 C 207.78559,303.65695 207.54958,303.60324 207.37706,303.49582 L 207.51866,303.55441 M 216.26378,298.97433 C 215.72341,298.66184 215.29698,298.44537 214.98448,298.32492 C 214.51573,298.14589 214.04535,298.05637 213.57335,298.05637 C 212.37869,298.05637 211.59255,298.47629 211.21495,299.31613 C 211.17914,299.39101 211.15798,299.47076 211.15147,299.55539 C 211.14496,299.61724 211.14496,299.69699 211.15147,299.79465 C 211.15147,299.91509 211.15147,300.00624 211.15147,300.06808 C 211.14496,300.20806 211.1238,300.40012 211.088,300.64426 C 211.05219,300.88514 211.03429,301.08534 211.03429,301.24484 C 211.03429,302.14654 211.42003,302.76014 212.19151,303.08566 C 212.70583,303.30702 213.5001,303.41769 214.57433,303.41769 C 215.56716,303.41769 216.20681,303.12798 216.49327,302.54855 C 216.58116,302.37277 216.6544,302.15142 216.713,301.88449 C 216.78786,301.57199 216.84808,301.35878 216.89366,301.24484 C 216.70811,301.35878 216.52093,301.51665 216.33214,301.71848 C 216.08799,301.97564 215.91221,302.14816 215.80479,302.23605 C 215.44346,302.52902 214.87055,302.67551 214.08604,302.67551 C 213.51638,302.67551 213.03298,302.5453 212.63585,302.28488 C 212.18012,301.99191 211.95225,301.58501 211.95226,301.06418 C 211.95225,300.56613 212.11339,300.14784 212.43565,299.8093 C 212.76117,299.4675 213.1697,299.2966 213.66124,299.2966 C 213.97048,299.2966 214.37413,299.42681 214.87218,299.68723 C 215.37347,299.94765 215.77386,300.07785 216.07335,300.07785 C 216.18728,300.07785 216.31423,300.00461 216.45421,299.85812 C 216.56813,299.73769 216.67718,299.61724 216.78136,299.4968 C 216.73578,299.45123 216.45583,299.21034 215.94151,298.77414 L 216.26378,298.97433 M 218.08018,303.3884 C 218.08018,302.71457 217.96462,301.86008 217.73351,300.82492 C 217.50564,299.78651 217.39171,298.93039 217.39171,298.25656 L 217.39171,297.58762 C 217.39171,297.56809 217.39171,297.59088 217.39171,297.65598 C 217.3852,297.71783 217.38194,297.74062 217.38194,297.72433 C 217.38194,297.2328 217.39171,296.89752 217.41124,296.71848 C 217.45681,296.3832 217.5561,296.09999 217.70909,295.86887 C 217.73839,295.83307 217.84255,295.82167 218.02159,295.83469 C 218.30805,295.85748 218.435,295.86887 218.40245,295.86887 C 218.42198,295.86887 218.40082,295.86887 218.33897,295.86887 C 218.28689,295.87538 218.26736,295.87864 218.28038,295.87863 C 218.40082,295.87864 218.47569,295.89003 218.50499,295.91281 C 218.53429,295.93561 218.59939,295.95025 218.7003,295.95676 C 218.6352,296.29531 218.60264,296.66477 218.60265,297.06516 C 218.60264,297.57297 218.68565,298.22076 218.85167,299.00851 C 219.01768,299.79302 219.10069,300.44244 219.10069,300.95676 C 219.10069,301.65663 219.08441,302.09283 219.05186,302.26535 C 218.97048,302.68527 218.76378,302.99289 218.43175,303.1882 C 218.39919,303.20773 218.33897,303.25331 218.25108,303.32492 C 218.20551,303.36724 218.14854,303.3884 218.08018,303.3884 M 224.44249,299.91672 C 224.44248,299.89068 224.42295,299.83209 224.3839,299.74094 C 224.34483,299.64979 224.31065,299.59446 224.28136,299.57492 C 224.21625,299.52935 224.09418,299.50657 223.91515,299.50656 C 223.81423,299.50657 223.671,299.5147 223.48546,299.53098 C 223.30316,299.54726 223.18923,299.55539 223.14366,299.55539 C 223.13715,299.55539 222.97439,299.54888 222.65538,299.53586 C 222.46006,299.52935 222.28917,299.53586 222.14268,299.55539 C 222.02224,299.56841 221.86599,299.65468 221.67393,299.81418 C 221.43305,300.00949 221.28331,300.12343 221.22472,300.15598 C 221.55675,300.23736 221.88878,300.31711 222.22081,300.39523 C 222.60818,300.48964 222.95486,300.53684 223.26085,300.53683 C 223.51475,300.53684 223.76215,300.48638 224.00304,300.38547 C 224.296,300.26503 224.44248,300.10878 224.44249,299.91672 M 225.03331,299.00851 C 225.05284,299.14849 225.12933,299.37798 225.2628,299.69699 C 225.37022,299.97694 225.42393,300.22271 225.42393,300.4343 C 225.42393,300.81516 225.17328,301.06255 224.67198,301.17648 C 224.44086,301.22857 224.02419,301.25461 223.42198,301.25461 C 223.20388,301.25461 222.8865,301.19927 222.46983,301.08859 C 222.05316,300.97466 221.73741,300.9177 221.52257,300.91769 C 221.19053,300.9177 221.02452,301.04139 221.02452,301.28879 C 221.02452,301.73475 221.26378,302.08143 221.74229,302.32883 C 222.12966,302.52089 222.58702,302.61691 223.11436,302.61691 C 223.37478,302.61691 223.67751,302.57622 224.02257,302.49484 C 224.42946,302.4037 224.71592,302.28814 224.88194,302.14816 C 224.96332,302.07981 225.06423,301.95122 225.18468,301.76242 C 225.30511,301.57037 225.39789,301.43853 225.463,301.36691 L 225.49229,302.02609 C 225.41416,302.3744 225.2514,302.62831 225.00401,302.78781 C 224.86403,302.87896 224.57432,302.99126 224.13487,303.12473 C 223.32107,303.37212 222.68793,303.49582 222.23546,303.49582 C 221.67231,303.49582 221.16449,303.29888 220.71202,302.905 C 220.24002,302.4981 220.00401,302.02121 220.00401,301.47433 C 220.00401,300.2634 220.00076,300.00461 219.99425,300.69797 C 219.99425,300.37571 220.02029,300.12831 220.07237,299.95578 C 220.21235,299.47076 220.50206,299.10129 220.94151,298.84738 C 221.34841,298.61301 221.83507,298.49582 222.40147,298.49582 C 223.10785,298.49582 223.75564,298.56907 224.34483,298.71555 C 224.4848,298.7481 224.6378,298.82134 224.80382,298.93527 C 225.0447,299.08176 225.19769,299.17291 225.2628,299.20871 L 225.03331,299.00851 M 233.79796,301.51828 L 233.79796,301.4548 C 233.79795,301.52968 233.80284,301.6371 233.81261,301.77707 C 233.82237,301.91704 233.82725,302.01958 233.82726,302.08469 C 233.82074,302.19211 233.80121,302.28977 233.76866,302.37766 C 233.60915,302.80409 233.32595,303.08729 232.91905,303.22726 C 232.65863,303.3119 232.22894,303.35422 231.62999,303.35422 C 230.92361,303.35422 230.43695,303.16216 230.17003,302.77805 C 230.14399,302.84315 230.0447,302.97987 229.87218,303.1882 C 229.70291,303.39328 229.6085,303.47954 229.58897,303.44699 C 229.57595,303.3591 229.55642,303.24191 229.53038,303.09543 C 229.32205,302.32395 229.21788,301.50038 229.21788,300.62473 C 229.21788,299.26731 229.27485,298.27447 229.38878,297.64621 C 229.41482,297.49973 229.51248,297.19374 229.68175,296.72824 C 229.81521,296.34088 229.88194,296.0235 229.88194,295.77609 C 230.04796,296.17649 230.21723,296.58014 230.38976,296.98703 C 230.54275,297.41347 230.61925,297.85292 230.61925,298.30539 C 230.61925,298.59185 230.57205,298.97271 230.47765,299.44797 C 230.36697,300.02089 230.30024,300.40988 230.27745,300.61496 C 230.58018,300.29595 230.87803,299.97694 231.17101,299.65793 C 231.57139,299.27056 231.9376,299.07688 232.26964,299.07687 C 232.58213,299.07688 232.72862,299.07688 232.70909,299.07687 C 232.86208,299.08339 232.99555,299.12733 233.10948,299.20871 C 233.56846,299.5147 233.79795,300.28456 233.79796,301.51828 M 232.77745,300.69797 C 232.77745,300.27154 232.75466,300.05832 232.70909,300.05832 C 232.44216,300.05832 232.19639,300.12831 231.97179,300.26828 C 231.88389,300.32688 231.67719,300.49289 231.35167,300.76633 C 231.16287,300.88026 230.97895,300.99745 230.79991,301.11789 C 230.57205,301.27089 230.45811,301.44667 230.45811,301.64523 C 230.45811,301.83404 230.6225,302.06841 230.95128,302.34836 C 231.04242,302.41346 231.1352,302.4802 231.2296,302.54855 C 231.26215,302.56809 231.39561,302.57785 231.62999,302.57785 C 231.64301,302.57785 231.73578,302.58436 231.90831,302.59738 C 232.00922,302.6104 232.10036,302.60389 232.18175,302.57785 C 232.46169,302.48996 232.64073,302.21652 232.71886,301.75754 C 232.75792,301.54921 232.77745,301.19602 232.77745,300.69797 M 240.7169,303.49582 C 240.47601,303.46978 240.17979,303.38026 239.82823,303.22726 C 239.42133,303.05474 239.22113,302.89849 239.22765,302.75851 C 238.45941,303.28911 237.75954,303.55441 237.12804,303.55441 C 236.28819,303.55441 235.59158,303.19797 235.03819,302.48508 C 234.51736,301.81776 234.25694,301.02512 234.25694,300.10715 C 234.25694,298.95481 234.7436,298.37864 235.7169,298.37863 C 236.29633,298.37864 236.82042,298.45188 237.28917,298.59836 C 237.4031,298.63092 237.62608,298.74973 237.95811,298.9548 C 238.23806,299.13059 238.46104,299.21848 238.62706,299.21848 C 238.6531,299.21848 238.75726,299.1078 238.93956,298.88644 C 239.01768,298.76601 239.14138,298.63417 239.31065,298.49094 C 239.48317,298.34771 239.59222,298.25006 239.6378,298.19797 C 239.61175,298.65696 239.64105,299.13059 239.72569,299.61887 C 239.81358,300.0453 239.90472,300.47499 239.99913,300.90793 C 240.19118,301.8259 240.43044,302.68853 240.7169,303.49582 M 238.67589,301.25461 C 238.53591,301.04302 238.30642,300.69634 237.98741,300.21457 C 237.84743,300.02252 237.62771,299.85976 237.32823,299.72629 C 237.06781,299.62538 236.80414,299.52935 236.53722,299.4382 C 236.39073,299.36985 236.24425,299.30312 236.09776,299.23801 C 235.93175,299.15663 235.78526,299.11594 235.65831,299.11594 C 235.20583,299.11594 234.9796,299.42356 234.9796,300.03879 C 234.9796,300.0453 234.9796,300.03391 234.9796,300.00461 C 234.98611,299.98508 234.98936,299.97857 234.98936,299.98508 C 234.99587,300.61985 235.17166,301.16346 235.51671,301.61594 C 235.90408,302.11073 236.40375,302.35813 237.01573,302.35812 C 237.03852,302.35813 237.01898,302.35487 236.95714,302.34836 C 236.89854,302.34836 236.87575,302.34836 236.88878,302.34836 C 236.92133,302.34836 237.07758,302.35161 237.35753,302.35812 C 237.55609,302.36464 237.7156,302.36464 237.83604,302.35812 C 238.00531,302.3451 238.14854,302.31418 238.26573,302.26535 C 238.51963,302.1677 238.72308,302.03098 238.87608,301.85519 C 238.97048,301.75754 239.01768,301.69406 239.01768,301.66476 C 239.01117,301.65826 239.00303,301.655 238.99327,301.655 C 238.9835,301.655 238.87771,301.52154 238.67589,301.25461 M 245.97081,298.97433 C 245.43044,298.66184 245.00401,298.44537 244.69151,298.32492 C 244.22276,298.14589 243.75238,298.05637 243.28038,298.05637 C 242.08572,298.05637 241.29959,298.47629 240.92198,299.31613 C 240.88617,299.39101 240.86502,299.47076 240.85851,299.55539 C 240.85199,299.61724 240.85199,299.69699 240.85851,299.79465 C 240.8585,299.91509 240.8585,300.00624 240.85851,300.06808 C 240.85199,300.20806 240.83084,300.40012 240.79503,300.64426 C 240.75922,300.88514 240.74132,301.08534 240.74132,301.24484 C 240.74132,302.14654 241.12706,302.76014 241.89854,303.08566 C 242.41287,303.30702 243.20714,303.41769 244.28136,303.41769 C 245.27419,303.41769 245.91384,303.12798 246.2003,302.54855 C 246.28819,302.37277 246.36143,302.15142 246.42003,301.88449 C 246.49489,301.57199 246.55511,301.35878 246.60069,301.24484 C 246.41514,301.35878 246.22797,301.51665 246.03917,301.71848 C 245.79502,301.97564 245.61924,302.14816 245.51183,302.23605 C 245.15049,302.52902 244.57758,302.67551 243.79308,302.67551 C 243.22341,302.67551 242.74001,302.5453 242.34288,302.28488 C 241.88715,301.99191 241.65929,301.58501 241.65929,301.06418 C 241.65929,300.56613 241.82042,300.14784 242.14268,299.8093 C 242.4682,299.4675 242.87673,299.2966 243.36827,299.2966 C 243.67751,299.2966 244.08116,299.42681 244.57921,299.68723 C 245.08051,299.94765 245.4809,300.07785 245.78038,300.07785 C 245.89431,300.07785 246.02126,300.00461 246.16124,299.85812 C 246.27517,299.73769 246.38422,299.61724 246.48839,299.4968 C 246.44281,299.45123 246.16286,299.21034 245.64854,298.77414 L 245.97081,298.97433 M 247.20616,303.47629 C 247.421,303.04986 247.56912,302.43299 247.6505,301.6257 C 247.70258,301.14068 247.75792,300.65403 247.81651,300.16574 C 247.87836,299.59934 247.90929,299.09966 247.90929,298.66672 C 247.90929,298.2468 247.8686,297.76666 247.78722,297.22629 C 247.66677,296.43853 247.60004,295.99257 247.58702,295.8884 C 247.64887,295.92747 247.86209,296.01373 248.22667,296.14719 C 248.47406,296.23183 248.61729,296.36855 248.65636,296.55734 C 248.7182,296.81777 248.7654,297.38417 248.79796,298.25656 C 248.81749,298.75787 248.82725,299.77512 248.82726,301.30832 C 249.34809,301.22043 249.87543,301.03651 250.40929,300.75656 C 250.94314,300.47662 251.36631,300.15272 251.67882,299.78488 C 251.15798,300.71262 250.51833,301.52968 249.75987,302.23605 C 250.07237,302.25559 250.35883,302.39882 250.61925,302.66574 C 250.66482,302.71131 250.86501,302.97173 251.21983,303.44699 C 250.1391,303.44699 249.38878,303.2175 248.96886,302.75851 C 248.86794,302.61203 248.68728,302.39882 248.42686,302.11887 C 248.13389,302.78944 247.72699,303.24191 247.20616,303.47629 M 252.09874,298.80832 C 252.18337,299.24127 252.38683,299.75396 252.70909,300.34641 C 253.08669,301.05279 253.32595,301.54595 253.42686,301.8259 C 253.49197,302.02121 253.52126,302.28488 253.51476,302.61691 C 253.50824,303.0173 253.51638,303.28423 253.53917,303.41769 C 253.74425,303.33631 253.94607,303.13286 254.14464,302.80734 C 254.213,302.69341 254.3432,302.52902 254.53526,302.31418 C 254.69477,302.14816 254.80544,301.9854 254.86729,301.8259 C 255.29372,302.53879 255.53298,303.09543 255.58507,303.49582 L 257.42589,298.19797 C 256.8725,298.23053 256.3891,298.60325 255.97569,299.31613 C 255.64366,299.88254 255.42068,300.51568 255.30675,301.21555 C 255.1212,301.07557 254.99262,300.86887 254.92101,300.59543 C 254.85264,300.32199 254.79079,300.05181 254.73546,299.78488 C 254.67035,300.05181 254.55479,300.46848 254.38878,301.03488 C 254.213,301.02186 254.04861,300.92258 253.89561,300.73703 C 253.76866,300.59055 253.64496,300.44081 253.52452,300.28781 C 253.42686,300.19992 253.18761,299.933 252.80675,299.48703 C 252.50727,299.13222 252.25987,298.91249 252.06456,298.82785 L 252.09874,298.80832 M 264.40831,303.49582 C 264.16742,303.46978 263.87119,303.38026 263.51964,303.22726 C 263.11273,303.05474 262.91254,302.89849 262.91905,302.75851 C 262.15082,303.28911 261.45095,303.55441 260.81944,303.55441 C 259.9796,303.55441 259.28298,303.19797 258.7296,302.48508 C 258.20877,301.81776 257.94835,301.02512 257.94835,300.10715 C 257.94835,298.95481 258.435,298.37864 259.40831,298.37863 C 259.98773,298.37864 260.51182,298.45188 260.98058,298.59836 C 261.0945,298.63092 261.31749,298.74973 261.64952,298.9548 C 261.92946,299.13059 262.15245,299.21848 262.31847,299.21848 C 262.3445,299.21848 262.44867,299.1078 262.63097,298.88644 C 262.70909,298.76601 262.83278,298.63417 263.00206,298.49094 C 263.17458,298.34771 263.28363,298.25006 263.32921,298.19797 C 263.30316,298.65696 263.33246,299.13059 263.4171,299.61887 C 263.50498,300.0453 263.59613,300.47499 263.69054,300.90793 C 263.88259,301.8259 264.12185,302.68853 264.40831,303.49582 M 262.36729,301.25461 C 262.22732,301.04302 261.99782,300.69634 261.67882,300.21457 C 261.53884,300.02252 261.31911,299.85976 261.01964,299.72629 C 260.75922,299.62538 260.49555,299.52935 260.22862,299.4382 C 260.08214,299.36985 259.93565,299.30312 259.78917,299.23801 C 259.62315,299.15663 259.47667,299.11594 259.34972,299.11594 C 258.89724,299.11594 258.671,299.42356 258.67101,300.03879 C 258.671,300.0453 258.671,300.03391 258.67101,300.00461 C 258.67751,299.98508 258.68077,299.97857 258.68077,299.98508 C 258.68728,300.61985 258.86306,301.16346 259.20811,301.61594 C 259.59548,302.11073 260.09516,302.35813 260.70714,302.35812 C 260.72992,302.35813 260.71039,302.35487 260.64854,302.34836 C 260.58995,302.34836 260.56716,302.34836 260.58018,302.34836 C 260.61273,302.34836 260.76898,302.35161 261.04893,302.35812 C 261.2475,302.36464 261.407,302.36464 261.52745,302.35812 C 261.69672,302.3451 261.83995,302.31418 261.95714,302.26535 C 262.21104,302.1677 262.41449,302.03098 262.56749,301.85519 C 262.66189,301.75754 262.70909,301.69406 262.70909,301.66476 C 262.70258,301.65826 262.69444,301.655 262.68468,301.655 C 262.67491,301.655 262.56911,301.52154 262.36729,301.25461 M 265.37511,301.6257 C 265.37511,301.63872 265.38324,301.4662 265.39952,301.10812 C 265.40603,300.91281 265.39464,300.74843 265.36534,300.61496 C 265.26117,300.31548 265.13585,299.86627 264.98936,299.2673 C 264.96658,299.14035 264.96658,298.99713 264.98936,298.83762 C 265.0089,298.61627 265.01866,298.46978 265.01866,298.39816 C 265.12608,298.43723 265.26606,298.52675 265.43858,298.66672 C 265.61762,298.82623 265.73806,298.9662 265.79991,299.08664 C 265.82595,299.14524 265.84874,299.20546 265.86827,299.2673 C 265.90733,299.36822 265.94639,299.41867 265.98546,299.41867 C 266.16124,299.41867 266.33865,299.36171 266.51768,299.24777 C 266.65766,299.14687 266.80089,299.04595 266.94737,298.94504 C 267.1557,298.81809 267.53982,298.75461 268.09972,298.75461 C 269.36599,298.75461 270.19118,299.13222 270.5753,299.88742 C 270.23676,299.72141 269.75824,299.6384 269.13976,299.6384 C 268.80446,299.6384 268.46104,299.71164 268.10948,299.85812 C 267.96299,299.91672 267.67165,300.06321 267.23546,300.29758 C 267.08246,300.36919 266.92621,300.44569 266.76671,300.52707 C 266.58767,300.62798 266.47537,300.73378 266.42979,300.84445 C 266.4005,300.91281 266.38259,300.98606 266.37608,301.06418 C 266.37608,301.11952 266.37934,301.19927 266.38585,301.30344 C 266.39236,301.40435 266.39561,301.47596 266.39561,301.51828 C 266.39561,301.74289 266.39236,302.07981 266.38585,302.52902 C 266.37934,302.97499 266.37608,303.30702 266.37608,303.52512 C 266.18402,303.57394 265.97732,303.59836 265.75597,303.59836 C 265.43044,303.59836 265.26117,303.53814 265.24815,303.41769 C 265.23513,303.31678 265.24815,303.21913 265.28722,303.12473 C 265.33279,302.99777 265.35883,302.90988 265.36534,302.86105 C 265.37185,302.81223 265.37511,302.40044 265.37511,301.6257 M 276.66417,300.03879 C 276.66416,300.48475 276.65765,300.7647 276.64464,300.87863 C 276.61534,301.20415 276.53884,301.46294 276.41515,301.655 C 276.33376,301.75591 276.25238,301.85845 276.17101,301.96262 C 276.09287,302.06678 276.04079,302.17421 276.01476,302.28488 C 275.96592,302.48671 275.91872,302.69178 275.87315,302.90012 C 275.82758,303.10519 275.76084,303.29725 275.67296,303.47629 C 275.62738,303.31678 275.57692,303.15728 275.52159,302.99777 C 275.43044,302.75689 275.32139,302.63645 275.19444,302.63644 C 275.13259,302.63645 275.00889,302.72922 274.82335,302.91476 C 274.6085,303.1231 274.4848,303.23378 274.45226,303.2468 C 274.26019,303.34771 273.91351,303.39816 273.41222,303.39816 C 272.32497,303.39816 271.61534,303.15402 271.28331,302.66574 C 271.06847,302.35324 270.88129,301.89426 270.72179,301.28879 C 270.5753,300.71262 270.50206,300.21132 270.50206,299.78488 C 270.50206,299.44634 270.66156,299.15012 270.98058,298.89621 C 271.28331,298.66835 271.61371,298.55442 271.97179,298.55441 C 272.46658,298.55442 272.94672,298.62766 273.41222,298.77414 C 273.84516,298.91412 274.2781,299.05897 274.71104,299.20871 C 274.685,299.28684 274.73871,299.36334 274.87218,299.4382 C 274.84613,299.26243 274.83311,299.08827 274.83311,298.91574 C 274.83311,298.50885 274.95681,297.89524 275.20421,297.07492 C 275.2628,296.85683 275.32302,296.6371 275.38487,296.41574 C 275.44997,296.19114 275.54274,295.98443 275.66319,295.79562 C 275.79014,296.03001 275.93662,296.34088 276.10265,296.72824 C 276.47699,297.60064 276.66416,298.70416 276.66417,300.03879 M 274.83311,300.99582 C 274.86566,300.91119 274.88194,300.84771 274.88194,300.80539 C 274.88194,300.79888 274.84613,300.71587 274.77452,300.55637 C 274.62152,300.24387 274.29112,299.9802 273.78331,299.76535 C 273.33734,299.5733 272.91742,299.47727 272.52354,299.47726 C 271.83018,299.47727 271.4835,299.7442 271.48351,300.27805 C 271.4835,301.06906 271.54373,301.55897 271.66417,301.74777 C 271.95063,302.19374 272.49425,302.41672 273.29503,302.41672 C 273.55219,302.41672 273.85492,302.24257 274.20323,301.89426 C 274.52224,301.57525 274.7322,301.27577 274.83311,300.99582 M 281.95226,298.59836 C 281.61045,298.47141 281.26703,298.34771 280.92198,298.22726 C 280.54763,298.10032 280.18142,298.03684 279.82335,298.03683 C 279.20811,298.03684 278.67426,298.16054 278.22179,298.40793 C 277.67491,298.7009 277.40147,299.11431 277.40147,299.64816 C 277.40147,300.09413 277.54308,300.45057 277.82628,300.7175 C 278.10948,300.98443 278.4643,301.11789 278.89073,301.11789 C 279.19672,301.11789 279.58246,301.02186 280.04796,300.8298 C 280.51671,300.63449 280.90733,300.53684 281.21983,300.53683 C 281.52907,300.53684 281.6837,300.66705 281.6837,300.92746 C 281.6837,301.46783 281.11892,301.76731 279.98936,301.8259 C 279.63129,301.84543 279.43923,301.8552 279.41319,301.85519 C 278.98025,301.8552 278.51964,301.75917 278.03136,301.56711 C 277.94347,301.53456 277.8572,301.47759 277.77257,301.39621 C 277.6977,301.33762 277.61469,301.29693 277.52354,301.27414 C 277.58865,301.39458 277.68142,301.59803 277.80186,301.88449 C 277.86046,302.12538 277.91742,302.36626 277.97276,302.60715 C 278.04438,302.90012 278.15994,303.10357 278.31944,303.2175 C 278.57335,303.40305 278.98025,303.49582 279.54015,303.49582 C 280.24001,303.49582 280.96755,303.31678 281.72276,302.95871 C 282.02875,302.80897 282.26801,302.51763 282.44054,302.08469 C 282.58702,301.7201 282.66026,301.34087 282.66026,300.94699 C 282.66026,300.40663 282.44704,300.07297 282.02061,299.94601 C 281.85459,299.90045 281.39561,299.87766 280.64366,299.87766 C 280.46788,299.87766 280.19444,299.90858 279.82335,299.97043 C 279.45551,300.02903 279.18533,300.05832 279.0128,300.05832 C 278.8533,300.05832 278.71007,300.04042 278.58311,300.00461 C 278.60264,299.70513 278.81912,299.46588 279.23253,299.28683 C 279.55805,299.14687 279.89822,299.07688 280.25304,299.07687 C 281.23936,299.07688 282.06618,299.40077 282.73351,300.04855 L 282.73351,299.40891 C 282.6391,299.07362 282.45518,298.80344 282.18175,298.59836 C 282.16872,298.56256 282.14919,298.51861 282.12315,298.46652 C 282.10362,298.56744 282.07269,298.61789 282.03038,298.61789 C 282.01084,298.61789 281.9848,298.61138 281.95226,298.59836 M 187.77257,315.99582 C 187.46007,315.99582 187.18012,315.93885 186.93272,315.82492 C 186.42491,315.5938 186.06847,315.33501 185.86339,315.04855 C 185.6225,314.70676 185.46625,314.24615 185.39464,313.66672 C 185.35883,313.36724 185.34093,312.85455 185.34093,312.12863 C 185.34093,311.46783 185.34093,311.11301 185.34093,311.06418 C 185.37022,310.59218 185.44021,310.26666 185.55089,310.08762 C 185.61274,309.99322 185.72992,309.88254 185.90245,309.75558 C 186.1238,309.6026 186.25727,309.50331 186.30284,309.45773 C 186.39073,309.37636 186.5307,309.17942 186.72276,308.86691 C 186.87576,308.63255 187.03201,308.48281 187.19151,308.41769 C 187.27289,308.38515 187.37055,308.37538 187.48448,308.3884 C 187.67654,308.40794 187.76931,308.4177 187.7628,308.41769 C 188.2348,308.4177 188.57172,308.45676 188.77354,308.53488 C 189.56781,308.85064 190.08702,309.46425 190.33116,310.3757 C 190.36045,310.47662 190.41416,310.60194 190.49229,310.75168 C 190.57367,310.90142 190.62738,311.02675 190.65343,311.12766 C 190.71202,311.33925 190.74457,311.58502 190.75108,311.86496 C 190.74457,311.5134 190.74131,311.77056 190.74132,312.63644 C 190.74131,313.13775 190.68923,313.52186 190.58507,313.78879 C 190.46462,314.08176 190.23676,314.35845 189.90147,314.61887 C 189.96332,314.67746 190.07725,314.76372 190.24327,314.87766 C 190.38975,314.9688 190.49717,315.06646 190.56554,315.17062 C 190.63715,315.27479 190.70876,315.4229 190.78038,315.61496 C 190.85524,315.80376 190.91872,315.94048 190.97081,316.02512 C 190.89268,315.99907 190.65993,315.89979 190.27257,315.72726 C 189.99913,315.60031 189.75336,315.53684 189.53526,315.53683 C 189.44737,315.53684 189.25368,315.6231 188.95421,315.79562 C 188.58637,316.01047 188.22667,316.11789 187.87511,316.11789 C 187.57888,316.11789 187.37217,316.03 187.25499,315.85422 L 187.77257,315.99582 M 188.26085,314.99484 C 188.36827,315.00786 188.42523,315.01437 188.43175,315.01437 C 188.51963,315.01437 188.56358,314.93137 188.56358,314.76535 C 188.56358,314.37798 188.38943,314.08176 188.04112,313.87668 C 187.90115,313.78879 187.54145,313.65207 186.96202,313.46652 C 187.03038,313.46652 187.12478,313.46164 187.24522,313.45187 C 187.36892,313.44211 187.47146,313.43723 187.55284,313.43723 C 187.95323,313.43723 188.35362,313.56093 188.75401,313.80832 C 188.85492,313.87994 188.95258,313.95481 189.04698,314.03293 C 189.14463,314.1078 189.25694,314.14849 189.3839,314.155 C 189.47829,313.68951 189.52549,313.39979 189.5255,313.28586 C 189.52549,312.0261 189.23741,311.04628 188.66124,310.34641 C 188.55707,310.21295 188.3406,310.01926 188.01183,309.76535 C 187.71234,309.53424 187.50564,309.33404 187.39171,309.16476 C 187.21267,309.23964 187.06619,309.40728 186.95226,309.66769 C 186.86762,309.89231 186.78461,310.11855 186.70323,310.34641 C 186.67719,310.405 186.61697,310.49127 186.52257,310.60519 C 186.45095,310.69309 186.40375,310.78098 186.38097,310.86887 C 186.3419,311.06744 186.32237,311.39621 186.32237,311.85519 C 186.32237,312.77642 186.47862,313.59999 186.79112,314.3259 C 186.8725,314.51145 186.9962,314.68885 187.16222,314.85812 C 187.36404,315.06971 187.55772,315.17551 187.74327,315.17551 C 187.86371,315.17551 187.99066,315.14296 188.12413,315.07785 C 188.33572,314.97694 188.45941,314.91997 188.49522,314.90695 L 188.26085,314.99484 M 197.60655,310.70773 C 196.86762,310.70774 196.29796,310.83795 195.89757,311.09836 C 195.79665,311.16347 195.71365,311.25624 195.64854,311.37668 C 195.58669,311.49713 195.52647,311.61757 195.46788,311.73801 C 195.1684,312.24908 195.00076,312.54205 194.96495,312.61691 C 194.79893,312.96197 194.71593,313.28586 194.71593,313.58859 C 194.71593,313.6537 194.72081,313.67974 194.73058,313.66672 C 194.74034,313.6537 194.75499,313.683 194.77452,313.75461 C 194.86892,314.155 194.96332,314.55539 195.05772,314.95578 C 195.20421,315.38872 195.44672,315.67844 195.78526,315.82492 C 196.01964,315.92583 196.41026,315.97629 196.95714,315.97629 C 197.54307,315.97629 198.06879,315.877 198.53429,315.67844 C 199.08116,315.44406 199.42458,315.10064 199.56456,314.64816 C 199.58734,314.75884 199.59873,315.02902 199.59874,315.45871 L 199.59874,315.39523 C 199.59873,315.76307 199.54502,316.28228 199.43761,316.95285 C 199.33018,317.62342 199.27647,318.13449 199.27647,318.48605 C 199.27647,318.82785 199.40342,319.12407 199.65733,319.37473 C 199.75824,319.20871 200.08213,319.0785 200.62901,318.9841 C 201.15309,318.89295 201.41514,318.83761 201.41515,318.81808 C 201.41514,318.79855 201.3891,318.77739 201.33702,318.75461 C 200.96918,318.60161 200.72504,318.29888 200.6046,317.84641 C 200.546,317.61854 200.5167,317.29139 200.51671,316.86496 L 200.51671,315.33664 C 200.5167,315.09576 200.52321,314.82069 200.53624,314.51144 C 200.54925,314.2022 200.55576,313.98736 200.55577,313.86691 C 200.55576,313.54139 200.52321,313.19472 200.45811,312.82687 C 200.43858,312.73248 200.35069,312.40858 200.19444,311.85519 C 200.09678,311.48411 200.04795,311.14394 200.04796,310.83469 C 199.99261,310.8705 199.91286,310.95513 199.8087,311.08859 C 199.7208,311.18625 199.6264,311.23834 199.5255,311.24484 C 199.47992,311.25136 199.40993,311.21881 199.31554,311.14719 C 199.22439,311.07232 199.16091,311.02838 199.12511,311.01535 C 198.62055,310.81028 198.11436,310.70774 197.60655,310.70773 M 199.16905,313.72531 C 199.16905,313.97271 199.07139,314.2494 198.87608,314.55539 C 198.671,314.89068 198.45779,315.05832 198.23643,315.05832 C 197.35753,315.05832 196.74392,314.9509 196.39561,314.73605 C 196.12218,314.56353 195.93012,314.37798 195.81944,314.17941 C 195.71202,313.97759 195.65831,313.71067 195.65831,313.37863 C 195.65831,313.04986 195.81781,312.69667 196.13683,312.31906 C 196.45583,311.93821 196.76182,311.74778 197.05479,311.74777 C 197.26964,311.74778 197.57725,311.808 197.97765,311.92844 C 198.40407,312.0619 198.66775,312.18723 198.76866,312.30441 C 199.01931,312.62017 199.14463,312.8578 199.14464,313.0173 C 199.14463,313.03684 199.14463,313.08404 199.14464,313.15891 C 199.13812,313.22401 199.13487,313.28261 199.13487,313.33469 C 199.13487,313.45513 199.14626,313.58534 199.16905,313.72531 M 201.27843,310.78586 C 201.27843,311.24485 201.36469,311.97564 201.53722,312.97824 C 201.62511,313.46327 201.66905,313.71229 201.66905,313.72531 C 201.73416,313.99875 201.84483,314.22987 202.00108,314.41867 C 202.24522,314.74419 202.49099,315.06971 202.73839,315.39523 C 203.03787,315.70122 203.42849,315.85422 203.91026,315.85422 C 204.4962,315.85422 204.99262,315.5287 205.39952,314.87766 C 205.50043,315.16411 205.58018,315.37082 205.63878,315.49777 C 205.75271,315.72889 205.8764,315.8884 206.00987,315.97629 C 206.02289,315.82329 206.0294,315.67355 206.0294,315.52707 C 206.0294,315.08762 205.95778,314.48703 205.81456,313.72531 C 205.67133,312.96034 205.59971,312.3272 205.59972,311.8259 C 205.59971,311.50689 205.64203,311.17323 205.72667,310.82492 C 205.80804,310.52545 205.89268,310.22271 205.98058,309.91672 C 205.56065,310.0567 205.16351,310.38385 204.78917,310.89816 C 204.4962,311.30507 204.34971,311.67128 204.34972,311.9968 C 204.34971,312.0619 204.35297,312.12864 204.35948,312.19699 C 204.41807,312.75689 204.44737,313.17681 204.44737,313.45676 C 204.44737,313.87017 204.37413,314.12408 204.22765,314.21848 C 204.14952,314.27056 203.92328,314.2966 203.54893,314.2966 C 203.37641,314.2966 203.22016,314.2201 203.08018,314.06711 C 203.05414,314.03456 202.95323,313.89133 202.77745,313.63742 C 202.69932,313.51698 202.61632,313.39654 202.52843,313.27609 C 202.421,313.11008 202.35753,312.97987 202.338,312.88547 C 202.29893,312.69341 202.27289,312.46392 202.25987,312.19699 C 202.24685,312.00494 202.2436,311.7608 202.25011,311.46457 C 202.25662,310.99908 202.25987,310.76308 202.25987,310.75656 C 201.7781,310.82167 201.53396,310.85422 201.52745,310.85422 C 201.40701,310.85422 201.324,310.83144 201.27843,310.78586 M 206.65929,315.99582 C 206.65929,315.91769 206.65278,315.82492 206.63976,315.7175 C 206.63324,315.63612 206.63324,315.57264 206.63976,315.52707 C 206.64627,315.45871 206.67231,315.37245 206.71788,315.26828 C 206.75043,315.19341 206.80252,315.12831 206.87413,315.07297 C 206.949,315.01437 207.00108,314.96229 207.03038,314.91672 C 207.34288,315.0632 207.66514,315.13645 207.99718,315.13644 C 208.24457,315.13645 208.39594,315.06971 208.45128,314.93625 C 208.45128,314.7149 208.45453,314.37961 208.46104,313.93039 C 208.46755,313.48117 208.47081,313.14589 208.47081,312.92453 C 208.47081,312.5925 208.43988,312.24582 208.37804,311.88449 C 208.31293,311.56549 208.24945,311.24648 208.18761,310.92746 C 208.47406,311.04791 208.77517,311.31483 209.09093,311.72824 C 209.28949,311.99517 209.38878,312.46392 209.38878,313.13449 C 209.38878,313.3884 209.3725,313.73833 209.33995,314.1843 C 209.3074,314.62701 209.29112,314.91509 209.29112,315.04855 C 210.06911,315.04855 210.61436,315.03065 210.92686,314.99484 C 210.7934,315.08273 210.67784,315.17714 210.58018,315.27805 C 210.4044,315.44406 210.29047,315.5466 210.23839,315.58566 C 209.97146,315.81353 209.69151,315.96652 209.39854,316.04465 C 209.15766,316.11301 208.8419,316.14719 208.45128,316.14719 C 208.44151,316.14719 208.45128,316.14719 208.48058,316.14719 C 208.5001,316.1537 208.50662,316.15695 208.50011,316.15695 C 208.3113,316.15695 208.05414,316.12603 207.72862,316.06418 C 207.4031,315.99907 207.15571,315.96652 206.98643,315.96652 C 206.87576,315.96652 206.76671,315.97629 206.65929,315.99582 M 207.99718,310.16574 C 207.99718,310.02577 208.05414,309.88417 208.16808,309.74094 C 208.28201,309.59771 208.39919,309.5261 208.51964,309.52609 C 208.74425,309.5261 208.93305,309.65142 209.08604,309.90207 C 209.24229,310.15273 209.32042,310.42454 209.32042,310.7175 C 209.32042,310.80214 209.28949,310.85911 209.22765,310.8884 C 209.2016,310.89491 209.13812,310.89817 209.03722,310.89816 C 208.83214,310.89817 208.70193,310.85097 208.64659,310.75656 C 208.65635,310.72401 208.64659,310.68658 208.61729,310.64426 C 208.60427,310.63124 208.58148,310.63124 208.54893,310.64426 C 208.51638,310.66054 208.49359,310.66868 208.48058,310.66867 C 208.34711,310.66868 208.23318,310.62148 208.13878,310.52707 C 208.04438,310.43267 207.99718,310.31223 207.99718,310.16574 M 212.38683,316.08859 C 212.20128,316.0007 212.05154,315.83306 211.93761,315.58566 C 211.85297,315.34478 211.76345,315.10878 211.66905,314.87766 C 211.52908,314.53586 211.44607,314.32915 211.42003,314.25754 C 211.34516,314.04921 211.30121,313.83274 211.28819,313.60812 C 211.27517,313.38026 211.30121,313.13287 211.36632,312.86594 C 211.48676,312.41998 211.54698,312.19374 211.54698,312.18723 L 210.30675,312.18723 C 210.37511,311.89426 210.52973,311.69407 210.77061,311.58664 C 210.83572,311.5606 210.96593,311.54595 211.16124,311.54269 C 211.35981,311.53944 211.4949,311.5248 211.56651,311.49875 C 211.69998,311.44993 211.76996,311.35552 211.77647,311.21555 C 211.77647,311.20253 211.76996,311.10976 211.75694,310.93723 C 211.74392,310.7647 211.73741,310.62148 211.73741,310.50754 C 211.73741,310.27317 211.76833,310.15598 211.83018,310.15598 C 212.33474,310.15598 212.69444,310.15273 212.90929,310.14621 C 212.94835,310.26666 212.96788,310.39687 212.96788,310.53683 C 212.96788,310.63124 212.95486,310.76796 212.92882,310.94699 C 212.90277,311.12603 212.88975,311.26275 212.88976,311.35715 C 212.88975,311.43528 212.89626,311.51177 212.90929,311.58664 C 213.02973,311.55409 213.22016,311.50689 213.48058,311.44504 L 215.87804,311.44504 C 215.03819,311.92681 214.23904,312.1677 213.48058,312.16769 C 212.92068,312.1677 212.64073,312.34999 212.64073,312.71457 C 212.64073,312.80897 212.66352,312.92616 212.70909,313.06613 C 212.77419,313.24517 212.81,313.3591 212.81651,313.40793 C 212.85883,313.59999 212.89301,313.83599 212.91905,314.11594 C 212.95811,314.52935 212.9809,314.77349 212.98741,314.84836 C 213.00043,314.94602 213.04437,315.08762 213.11925,315.27316 C 213.19737,315.45546 213.23643,315.61008 213.23643,315.73703 C 213.23643,315.94862 212.8865,316.05441 212.18663,316.05441 L 212.38683,316.08859 M 220.73155,311.09836 C 220.38975,310.97141 220.04633,310.84771 219.70128,310.72726 C 219.32693,310.60032 218.96072,310.53684 218.60265,310.53683 C 217.98741,310.53684 217.45356,310.66054 217.00108,310.90793 C 216.45421,311.2009 216.18077,311.61431 216.18077,312.14816 C 216.18077,312.59413 216.32237,312.95057 216.60558,313.2175 C 216.88878,313.48443 217.2436,313.61789 217.67003,313.61789 C 217.97602,313.61789 218.36176,313.52186 218.82726,313.3298 C 219.296,313.13449 219.68663,313.03684 219.99913,313.03683 C 220.30837,313.03684 220.46299,313.16705 220.463,313.42746 C 220.46299,313.96783 219.89821,314.26731 218.76866,314.3259 C 218.41059,314.34543 218.21853,314.3552 218.19249,314.35519 C 217.75955,314.3552 217.29893,314.25917 216.81065,314.06711 C 216.72276,314.03456 216.6365,313.97759 216.55186,313.89621 C 216.47699,313.83762 216.39399,313.79693 216.30284,313.77414 C 216.36794,313.89458 216.46072,314.09803 216.58116,314.38449 C 216.63975,314.62538 216.69672,314.86626 216.75206,315.10715 C 216.82367,315.40012 216.93923,315.60357 217.09874,315.7175 C 217.35264,315.90305 217.75955,315.99582 218.31944,315.99582 C 219.01931,315.99582 219.74685,315.81678 220.50206,315.45871 C 220.80804,315.30897 221.0473,315.01763 221.21983,314.58469 C 221.36631,314.2201 221.43955,313.84087 221.43956,313.44699 C 221.43955,312.90663 221.22634,312.57297 220.79991,312.44601 C 220.63389,312.40045 220.17491,312.37766 219.42296,312.37766 C 219.24717,312.37766 218.97374,312.40858 218.60265,312.47043 C 218.23481,312.52903 217.96462,312.55832 217.7921,312.55832 C 217.63259,312.55832 217.48936,312.54042 217.36241,312.50461 C 217.38194,312.20513 217.59841,311.96588 218.01183,311.78683 C 218.33734,311.64687 218.67751,311.57688 219.03233,311.57687 C 220.01866,311.57688 220.84548,311.90077 221.5128,312.54855 L 221.5128,311.90891 C 221.4184,311.57362 221.23448,311.30344 220.96104,311.09836 C 220.94802,311.06256 220.92849,311.01861 220.90245,310.96652 C 220.88291,311.06744 220.85199,311.11789 220.80968,311.11789 C 220.79014,311.11789 220.7641,311.11138 220.73155,311.09836\""+        ,"       id=\"text2390\" />"+        ,"  </g>"+        ,"</svg>"+        ]
+ GraphRewrite/Main/CmdLineOpts.hs view
@@ -0,0 +1,57 @@+module GraphRewrite.Main.CmdLineOpts+where++import System.Console.GetOpt+import System.Environment++data Options = Options+    { showVersion   :: Bool             -- ^ just show the version and exit+    , inputFile     :: Maybe String     -- ^ Nothing: stdin+    , outputFile    :: Maybe String     -- ^ Nothing: stdout+    , isVerbose     :: Bool+    }++defaultOptions :: Options+defaultOptions = Options+    { showVersion   = False+    , inputFile     = Nothing+    , outputFile    = Nothing+    , isVerbose     = False+    }++----------------------------------- possible options++options :: [OptDescr (Options -> Options)]+options =+    [ Option ['v']     ["verbose"] (NoArg (\r -> r {isVerbose   = True}))       "verbose output on stderr"+    , Option ['V','?'] ["version"] (NoArg (\r -> r {showVersion = True}))       "show version number"+    , Option ['o']     ["output"]  (ReqArg (\f r -> r {outputFile = Just f}) "FILE")  "output FILE"+    , Option ['i']     ["input"]   (ReqArg (\f r -> r {inputFile  = Just f}) "FILE")  "input FILE"+    ]++----------------------------------- parse options++addInput :: String -> Options -> Options+addInput f r = r {inputFile = Just f}++parseOptions :: [String] -> IO Options+parseOptions argv = do+    progName <- getProgName+    let header = "Usage: " ++ progName ++ " [OPTION...] files..."+    case getOpt Permute options argv of+      (o,n,[]  ) -> let+                        o'  = foldl (flip id) defaultOptions o+                        o'' = foldl (flip addInput) o' n+                    in return o''+      (_,_,errs) -> error (concat errs ++ usageInfo header options)+++{-+id              :: (a -> b) -> a -> b+flip id         :: a -> (a -> b) -> b+foldl (flip id) :: b -> [b -> b] -> b++  foldl (flip id) 3 [(+1),(*2)] == 8+-}++-----------------------------------
+ GraphRewrite/Main/Visualize.hs view
@@ -0,0 +1,126 @@+module GraphRewrite.Main.Visualize+where++-- TODO: use the graphviz package++import GraphRewrite.Internal.DeltaFunctions+import GraphRewrite.Internal.RewriteTypes++import Text.PrettyPrint+import Data.Supply+import Data.Graph.Inductive.Tree+import qualified Data.Graph.Inductive.Graph as IG+import Data.IntMap hiding (map)+import Data.Maybe+import Prelude hiding (lookup)+++gStyle :: String+gStyle = unlines+         [+          "node [fontcolor=\"#1f33b3\", fontsize=12, shape=none, fontname=\"Helvetica\"];"+         ,"edge [color=\"#000000\", style=dotted, fontname=\"Helvetica\", arrowhead=normal, arrowsize=0.3];"+         ]+++dQText :: String -> Doc+dQText = doubleQuotes . text . concatMap quoteChar+ where+    quoteChar :: Char -> String+    quoteChar '\"' = "\\\""+    quoteChar c = [c]++lookupName :: RewriteSystem -> Int -> [Char]+lookupName rs i = fromMaybe "UNDEFINED" $ lookup i (names rs)++-- | RewriteSystem needed for identifier names.+genName :: RewriteSystem -> Expr -> String+genName rs = gName (-1)  where++    gName :: Int{-outerPrec-} -> Expr -> String+    gName _ (SCons c) = lookupName rs c+    gName _ (SFun _ f) = lookupName rs f+    gName _ (SHole h) = lookupName rs h+    gName _ (SRef r) = lookupName rs r+    gName _ (SLit l) = l+    gName p e@(SApp _ _) = rearrange ip $ fn : map (gName $ precedence ip) xs  where++      precedence :: Prec -> Int+      precedence (Infixr i) = i+      precedence Prefix = 10++      rearrange Prefix l = addParents (p>9) $ unwords l+      rearrange _ [a,b,c] = addParents (p>9) $ unwords [b,a,c]+      rearrange _ [a,b] = addParents True $ unwords [b,a]+      rearrange _ [a] = addParents True a++      ip = head $ [ip | (ip, n)<-deltaNames, n == fn] ++ [Prefix]+      fn = gName 10 f++      (f, xs) = flattenSApp e++      flattenSApp :: Expr -> (Expr, [Expr])+      flattenSApp (SApp y ys) = (f, xs ++ ys)    where (f, xs) = flattenSApp y+      flattenSApp x = (x, [])++addParents :: Bool -> String -> String+addParents True s = "(" ++ s ++ ")"+addParents False s = s++++genID :: Supply Int -> Expr -> Int+genID _ (SCons c) = c+genID _ (SFun _ f) = f+genID _ (SHole h) = h+genID ids _ = supplyValue ids+++genLNode :: Supply Int -> RewriteSystem -> Expr -> IG.LNode String+genLNode ids rs e = (genID ids e, genName rs e)++genLEdge :: Supply Int -> Expr -> Expr -> IG.LEdge String+genLEdge ids e f = (genID i e, genID j f, "")+    where+      (i, j) = split2 ids++graphToGr :: Supply Int -> RewriteSystem -> PointedGraph -> Gr String String+graphToGr ids rs (e, g) = insExpr (-1) ids e IG.empty+    where+      insExpr i ids e@(SRef r) gr = let+          refe = fromJust (lookup r g)+          (ids1, ids2) = split2 ids+        in+          if i < 0 then+              let en@(eid, _) = genLNode ids1 rs e in+              IG.insEdge (eid, r, "") $ insExpr r ids2 refe $ IG.insNode en gr+          else+              if IG.gelem i gr then+                  gr+              else+                  IG.insEdge (i, r, "") $ insExpr r ids2 refe $ IG.insNode (i, genName rs e) gr+      insExpr i ids e gr+          | i < 0 = IG.insNode (genLNode ids rs e) gr+          | otherwise = IG.insNode (i, genName rs e) gr++outputDot :: Gr String String -> String -> IO ()+outputDot gr fname = writeFile fname $ render $ ppGr gr --graphviz gr "g" (5,5) (1,1) Portrait++ppGr :: Gr String String -> Doc+ppGr gr = text "digraph g" <+>+          (braces $+                  text gStyle $+$+                  vcat pnodes $+$+                  vcat pedges)+    where+--      f = uncurry (liftM2 (,))+--      (nodes, edges) = (f (labNodes, labEdges)) gr+      (nodes, edges) = (IG.labNodes gr, IG.labEdges gr)+      pnodes = map (\(x,y) -> dQText (show x) <+> (brackets $ text "label =" <+> dQText y)) nodes+      pedges = map (\(x,y,_) -> dQText (show x) <+> text "->" <+> dQText (show y)) edges++{-++insNode (2 SRef 1 $ insNode (1, "b") $ insNode (4, "a") empty++-}
+ LICENSE view
@@ -0,0 +1,25 @@+* Copyright (c) 2008, Zsolt Dollenstein+* All rights reserved.+*+* Redistribution and use in source and binary forms, with or without+* modification, are permitted provided that the following conditions are met:+*     * Redistributions of source code must retain the above copyright+*       notice, this list of conditions and the following disclaimer.+*     * Redistributions in binary form must reproduce the above copyright+*       notice, this list of conditions and the following disclaimer in the+*       documentation and/or other materials provided with the distribution.+*     * Neither the name of the Eotvos Lorand University of Sciences nor the+*       names of its contributors may be used to endorse or promote products+*       derived from this software without specific prior written permission.+*+* THIS SOFTWARE IS PROVIDED BY Zsolt Dollenstein ''AS IS'' AND ANY+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+* DISCLAIMED. IN NO EVENT SHALL Zsolt Dollenstein BE LIABLE FOR ANY+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+
+ Setup.lhs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+> import Distribution.Simple+> main = defaultMain
+ sample/CyclicDefinitions.hs view
@@ -0,0 +1,7 @@+++h = f++f = h++
+ sample/FunctionInLet_does_not_work.hs view
@@ -0,0 +1,5 @@+++t = let f x y = x; z = f 5 in z++
+ sample/Let.hs view
@@ -0,0 +1,1 @@+f = let {a=2; b=a} in b
+ sample/SieveOfEratosthenes.hs view
@@ -0,0 +1,90 @@+--data List a = Nil | Cons a (List a)+--              deriving (Show)++--result :: String+result = showIntList primes++not True  = False+not False = True++showInt 0 = "0"+showInt 1 = "1"+showInt 2 = "2"+showInt 3 = "3"+showInt 4 = "4"+showInt 5 = "5"+showInt 6 = "6"+showInt 7 = "7"+showInt 8 = "8"+showInt 9 = "9"+showInt n = (++) (showInt (div n 10)) (showInt (mod n 10))++showIntList [] = ""+showIntList (h:t) = (++) (showInt h) ((++) ", " (showIntList t))++--primesbelow :: Int -> String+--primesbelow n = showIntList (eratos (enumFT 2 n))++--f :: Int -> Int -> Bool+f h x = not ((eqInt) (mod x h) 0)++--eratos :: [Int] -> [Int]+eratos (h:t) = h : (fil (f h) (eratos t))+eratos [] = []++--enumFT :: Int -> Int -> [Int]+--enumFT f t+--    | f > t = Nil+--    | otherwise = Cons f (enumFT ((+) f 1) t)++--enumF :: Int -> [Int]+enumF f = f : (enumF (succ f))++--primes :: [Int]+primes = eratos (enumF 2)++--fil :: (a -> Bool) -> [a] -> [a]+fil v [] = []                      -- @ (@ fil v) Nil+fil p l@(h:t) = fil' p l (p h)++{-+type Graph = (Int, IntMap X)++type FunMap = IntMap Rule++type Fun = [(Graph, Graph)]++fil = [(g1, g2), (g3, g4)]++g1 = (0, fromList [(0,App (Ref 1) (Ref 2)),(1,App (Fun `fil`) (Ref 3)),(2,Con Nil),(3,Var 0)])+g2 = (0, fromList [(0,Con Nil)])+g3 = (0, fromList [(0,App (Ref 1) (Ref 2)),(1,App (Fun `fil`) (Ref 3)),(2,App ),(3,W)+g4 = (0, fromList   [(0, App (Ref 1) (Ref 5)+                    ,(1, App (Ref 2) (Ref 4)+                    ,(2, App (Fun `fil`) (Ref 3)+                    ,(3, Var 3)+                    ,(4, Var 2)+++-}++fil' p (h:t) True = h : fil p t+fil' p (h:t) False = fil p t+++{-+eratos [2,3,4,5,6,7]+== 2:filter (f 2) (eratos [3,4,5,6,7])+== 2:filter (f 2) (3:filter (f 3) (eratos [4,5,6,7]))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (eratos [5,6,7])))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (5:filter (f 5) (eratos [6,7]))))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (5:filter (f 5) (6:filter (f 6) (eratos [7])))))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (5:filter (f 5) (6:filter (f 6) (7:filter (f 7) (eratos []))))))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (5:filter (f 5) (6:filter (f 6) (7:filter (f 7) [])))))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (5:filter (f 5) (6:filter (f 6) (7:[])))))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (5:filter (f 5) (6:7:[]))))+== 2:filter (f 2) (3:filter (f 3) (4:filter (f 4) (5:6:7:[])))+== 2:filter (f 2) (3:filter (f 3) (4:5:6:7:[]))+== 2:filter (f 2) (3:4:5:7:[])+== 2:3:5:7:[]+-}
+ sample/Test0.hs view
@@ -0,0 +1,5 @@+f a 0 = a+f a b = g b+g a = a++result a = f 2 (f 2 3)
+ visual-graphrewrite.cabal view
@@ -0,0 +1,48 @@++name:                visual-graphrewrite+version:             0.3+synopsis:            Visualize the graph-rewrite steps of a Haskell program+description:         Visualize the graph-rewrite steps of a Haskell program. Currently it only shows the right-hand-sides of rewrite rules (function alternatives).+category:            Development+license:             BSD3+license-file:        LICENSE+author:              Zsolt Dollenstein+maintainer:          zsol@elte.hu+homepage:            http://github.com/zsol/visual-graphrewrite/+build-type:          Simple+cabal-version:       >= 1.6+build-Depends:       base >= 4.1.0.0,+                     containers >= 0.2.0.0,+                     value-supply >= 0.5,+                     lazysmallcheck >= 0.3,+                     haskell-src >= 1.0.1.2,+                     ipprint >= 0.3,+                     strict-concurrency >= 0.2.1,+                     parallel >= 1.1.0.1,+                     directory >= 1.0.0.3,+                     process >= 1.0.1.1,+                     fgl >= 5.4.2.2,+                     pretty >= 1.0.1.0,+                     gtk >= 0.10.0,+                     svgcairo >= 0.10.0,+                     cairo >= 0.10.0+extensions:          PatternGuards+extra-source-files:  sample/*.hs+                     GraphRewrite/Debug.hs++executable:          visual-graphrewrite+main-is:             GraphRewrite/Main.hs+other-modules:       GraphRewrite,+                     GraphRewrite.Internal.Rename,+                     GraphRewrite.Internal.SimpleHaskell,+                     GraphRewrite.Internal.Convert,+                     GraphRewrite.Internal.RewriteApp,+                     GraphRewrite.Internal.RewriteTypes,+                     GraphRewrite.Internal.Rewrite,+                     GraphRewrite.Internal.DeltaFunctions,+                     GraphRewrite.Internal.Test,+                     GraphRewrite.Main.CmdLineOpts,+                     GraphRewrite.Main.Visualize++ghc-options:         -Wall -fno-warn-name-shadowing -fno-warn-incomplete-patterns+